package com.ruoyi.group.service; import com.ruoyi.group.domain.dto.CustGroupQueryDTO; import com.ruoyi.group.domain.dto.GridImportDTO; import com.ruoyi.group.domain.entity.CustGroup; import com.ruoyi.group.domain.vo.CustGroupVO; import org.springframework.web.multipart.MultipartFile; import java.util.List; /** * 客群Service接口 * * @author ruoyi */ public interface ICustGroupService { /** * 查询客群列表 * * @param dto 查询条件 * @return 客群VO列表 */ List listCustGroup(CustGroupQueryDTO dto); /** * 异步创建客群(模板导入) * * @param custGroup 客群实体 * @param file Excel文件 * @return 客群ID */ String createCustGroupByTemplate(CustGroup custGroup, MultipartFile file); /** * 异步创建客群(网格导入) * * @param gridImportDTO 网格导入条件 * @return 客群ID */ String createCustGroupByGrid(GridImportDTO gridImportDTO); /** * 更新客群(网格导入) * * @param gridImportDTO 网格导入条件 * @return 结果消息 */ String updateCustGroupByGrid(GridImportDTO gridImportDTO); /** * 更新客群(模板导入) * * @param custGroup 客群实体 * @param file Excel文件 * @return 结果消息 */ String updateCustGroupByTemplate(CustGroup custGroup, MultipartFile file); /** * 更新客群 * * @param custGroup 客群实体 * @return 结果消息 */ String updateCustGroup(CustGroup custGroup); /** * 删除客群 * * @param idList 客群ID列表 * @return 结果消息 */ String deleteCustGroup(List idList); /** * 获取客群详情 * * @param id 客群ID * @return 客群VO */ CustGroupVO getCustGroup(Long id); /** * 检查客群名称是否存在 * * @param groupName 客群名称 * @return true=存在, false=不存在 */ boolean checkGroupNameExist(String groupName); /** * 查询客群创建状态 * * @param id 客群ID * @return 创建状态:0=创建中, 1=创建成功, 2=创建失败 */ String getCreateStatus(Long id); /** * 手动移除客群客户 * * @param groupId 客群ID * @param memberIds 客群成员ID列表 * @return 结果消息 */ String removeMembers(Long groupId, List memberIds); /** * 更新动态客群(定时任务调用) * 根据原始导入条件重新查询并更新客户列表 */ void updateDynamicCustGroups(); /** * 检查并禁用过期客群(定时任务调用) */ void checkAndDisableExpiredGroups(); }