package com.ydtech.modules.admin.service; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ydtech.extension.BaseIService; import com.ydtech.modules.admin.constants.EnabledEnum; import com.ydtech.modules.admin.model.SysUser; import com.ydtech.modules.admin.model.po.SysChannelGroup; import com.ydtech.modules.admin.model.vo.AddSysChannelGroupVo; import com.ydtech.modules.admin.model.vo.CostSysChannelGroupVo; import com.ydtech.modules.admin.model.vo.SysChannelGroupPageVo; import com.ydtech.modules.admin.model.vo.SysChannelGroupVo; import com.ydtech.modules.order.entity.InsAreaCompany; import com.ydtech.modules.order.entity.InsOrders; import com.ydtech.modules.protocol.entity.po.PtlAgreement; import com.ydtech.modules.protocols.entity.po.InsFeeOrderNew; import com.ydtech.modules.protocols.entity.po.PtlAgreementProductCostsNew; import javax.validation.Valid; import java.util.List; /** * @author dongxin * @description 针对表【sys_channel_group(渠道分组)】的数据库操作Service * @createDate 2024-09-09 18:55:22 */ public interface SysChannelGroupService extends BaseIService { /** * 分页查询 * @param page * @param sysChannelGroupVo * @return */ Page queryPage(Page page, SysChannelGroupVo sysChannelGroupVo); /** * 渠道分组名称唯一校验 * @param sysChannelGroup * @return */ String checkNameUnique(Long id, AddSysChannelGroupVo sysChannelGroup); /** * 新增渠道分组 * @param userName * @param addChannelGroupVo */ void insert(String userName, @Valid AddSysChannelGroupVo addChannelGroupVo); /** * 修改渠道分组 * * @param id * @param userName * @param addChannelGroupVo */ void edit(Long id, String userName, AddSysChannelGroupVo addChannelGroupVo); /** * 分组删除 * @param id */ void delete(Long id); /** * 渠道分组费用设置 * @param costSysChannelGroupVo */ void costSet(@Valid CostSysChannelGroupVo costSysChannelGroupVo); /** * 费用计算 * * @param insFeeOrderNew * @param ptlAgreement * @param ptlAgreementProductCostsNew * @param sysUser * @param insAreaCompany * @param insOrders */ void costCompute(InsFeeOrderNew insFeeOrderNew, PtlAgreement ptlAgreement, PtlAgreementProductCostsNew ptlAgreementProductCostsNew, SysUser sysUser, InsAreaCompany insAreaCompany, InsOrders insOrders); /** * 分组单个查询 * @return */ SysChannelGroup queryById(Long id); /** * 停止/开启 * @param id */ void openOne(Long id); /** * 把修改改为关闭 * * @param enabled 开启关闭状态 */ default boolean updateEnabled(int enabled) { List list = lambdaQuery().eq(SysChannelGroup::getEnabled, EnabledEnum.EE_1.getCode()).list(); if (list.isEmpty()) { return true; } if (EnabledEnum.EE_1.getCode() == enabled) { return lambdaUpdate() .set(SysChannelGroup::getEnabled, EnabledEnum.EE_0.getCode()) .eq(SysChannelGroup::getEnabled, EnabledEnum.EE_1.getCode()) .update(); } return true; } /** * 费用选中列表 * @param costsNewList * @param sysChannelGroupPageVo */ void queryCostList(List costsNewList, @Valid SysChannelGroupPageVo sysChannelGroupPageVo); /** * 获取所有选中费用 * @param id * @return */ List getProductList(Long id); }