StammkundePoolService.java 2.46 KB
package cn.fw.valhalla.service.data;

import cn.fw.valhalla.domain.db.pool.StammkundePool;
import cn.fw.valhalla.domain.dto.StammkundeDto;
import cn.fw.valhalla.domain.dto.StammkundePoolDTO;
import cn.fw.valhalla.domain.dto.StammkundePoolReportDTO;
import cn.fw.valhalla.domain.dto.StammkundePoolReportQueryDTO;
import cn.fw.valhalla.domain.enums.DefeatReasonEnum;
import cn.fw.valhalla.domain.query.StammkundePoolQueryVO;
import com.baomidou.mybatisplus.extension.service.IService;
import org.springframework.lang.NonNull;

import java.util.List;

/**
 * @author : kurisu
 * @className : StammkundePoolService
 * @description : 保有客池
 * @date: 2020-11-11 17:24
 */
public interface StammkundePoolService extends IService<StammkundePool> {
    /**
     * 作废有效档案(没有新的顾问接手档案的情况)
     *
     * @param customerId
     * @param groupId
     * @param reason
     * @return
     */
    boolean reject(Long customerId, Long groupId, DefeatReasonEnum reason);

    /**
     * 作废档案
     *
     * @param dto
     * @return
     */
    boolean reject(StammkundeDto dto);

    /**
     * 作废有效档案
     *
     * @param userId
     * @param shopId
     * @param groupId
     * @param reason
     * @return
     */
    boolean reject(Long userId, Long shopId, Long groupId, DefeatReasonEnum reason);

    /**
     * 激活档案
     *
     * @param customerId
     * @param groupId
     * @param shopId
     */
    void aktiv(Long customerId, Long groupId, Long shopId);

    /**
     * 激活档案
     *
     * @param id
     */
    void aktiv(Long id);

    /**
     * 查询可激活的档案
     *
     * @param customerId
     * @param groupId
     * @param shopId
     * @return
     */
    StammkundePool queryAktivAble(Long customerId, Long groupId, Long shopId);

    /**
     * 保有客池
     *
     * @param queryVO
     * @return
     */
    List<StammkundePoolDTO> stammkundeList(StammkundePoolQueryVO queryVO);

    /**
     * 保有客池总数
     *
     * @param queryVO
     * @return
     */
    long stammkundeListCount(StammkundePoolQueryVO queryVO);

    /**
     * 删除保有客数据
     * 用于档案回滚的场景
     *
     * @param customerId
     * @param groupId
     */
    void removeByCustomerId(@NonNull Long customerId, @NonNull Long groupId);

    /**
     * 查询渠道到店统计
     * @param dto
     * @return
     */
    List<StammkundePoolReportDTO> countStammkundePoolList(StammkundePoolReportQueryDTO dto);
}