FollowRecordService.java 2.22 KB
package cn.fw.shirasawa.service.data;

import cn.fw.shirasawa.domain.db.follow.FollowRecord;
import cn.fw.shirasawa.domain.db.follow.SucessFollowRecord;
import cn.fw.shirasawa.domain.dto.FollowRecordPoolDTO;
import cn.fw.shirasawa.domain.query.FollowRecordPoolQuery;
import cn.fw.shirasawa.sdk.enums.BusinessTypeEnum;
import com.baomidou.mybatisplus.extension.service.IService;
import org.springframework.lang.Nullable;

import java.util.List;

/**
 * @author : kurisu
 * @className : FollowRecordService
 * @description : 跟进记录
 * @date: 2020-08-12 11:09
 */
public interface FollowRecordService extends IService<FollowRecord> {

    /**
     * 查询跟进记录
     *
     * @param taskId
     * @return
     */
    List<FollowRecord> getRecordList(final Long taskId);

    /**
     * 逾期
     *
     * @param id
     * @return
     */
    boolean overdue(final Long id);

    /**
     * 批量添加到待办
     *
     * @param list
     * @return
     */
    boolean addTodoBatchById(List<Long> list);

    /**
     * 删除
     *
     * @param taskId
     * @return
     */
    boolean removeByTaskId(Long taskId);

    /**
     * 检查是否应该强制使用电话拨打
     *
     * @param taskId 任务id
     * @param userId 用户id
     * @param times  电话间隔次数
     * @return true- 需要强制  false - 不用强制
     */
    boolean checkCompelCall(Long taskId, Long userId, int times);

    /**
     * 根据业务类型 档案id获取已完成的跟进记录
     *
     * @param bizType
     * @param customerIdList
     * @return
     */
    List<SucessFollowRecord> getCompletedFollowRecord(Integer bizType, List<Long> customerIdList);

    /**
     * 查询跟进记录池数量
     *
     * @param query
     * @return
     */
    long recordPoolCount(FollowRecordPoolQuery query);

    /**
     * 查询跟进记录池数据
     *
     * @param query
     * @return
     */
    List<FollowRecordPoolDTO> recordPoolList(FollowRecordPoolQuery query);

    /**
     * 查询用未完成的剩余跟进数量
     *
     * @param userId
     * @param bizType
     * @param recordId 排除记录的id [nullable]
     * @return
     */
    long recordRemaining(Long userId, BusinessTypeEnum bizType, @Nullable Long recordId);
}