package com.gic.haoban.manage.api.service;

import com.gic.api.base.commons.Page;
import com.gic.haoban.base.api.common.BasePageInfo;
import com.gic.haoban.manage.api.dto.ExternalInfoDTO;
import com.gic.haoban.manage.api.dto.HandoverExternalDTO;
import com.gic.haoban.manage.api.dto.HandoverStaffInfoDTO;

import java.util.List;

/**
 * Created 2021/6/16.
 *
 * @author hua
 */
public interface HandoverOperationApiService {

    /**
     * 定时处理拉取企业微信信息
     */
    public void batchQywxHandoverTimeTask(String params);


    /**
     * 处理企微离职继承
     * "routerName": "dealQywxEnterpriseHandoverMq"
     *
     * @param wxEnterpriseId wx企业标识
     * @author mozhu
     * @date 2022-04-26 17:29:30
     */
    public void dealQywxEnterpriseHandoverMq(String wxEnterpriseId);

    /**
     * 处理企业微信信息
     *
     * @param wxEnterpriseId
     */
    public void dealQywxEnterpriseHandover(String wxEnterpriseId);

    /**
     * 处理企业微信信息 结果处理
     *
     * @param wxEnterpriseId
     */
    public void dealQywxEnterpriseHandoverResult(String wxEnterpriseId);

    /**
     * 获取离职继承所在的门店下的待分配导购列表
     *
     * @param storeId
     * @return
     */
    public List<HandoverStaffInfoDTO> listHandoverStaff(String wxEnterpriseId, String storeId);

    /**
     * 分配的客户列表
     *
     * @param wxEnterpriseId
     * @param staffIds
     * @param transferIds    分配客户列表查询
     * @return
     */
    public Page<HandoverExternalDTO> pageHandoverFriend(String wxEnterpriseId, String search, List<String> staffIds, List<String> transferIds, BasePageInfo pageInfo);

    /**
     * 分配的客户列表
     *
     * @param wxEnterpriseId
     * @param staffIds
     * @param transferIds    分配客户列表查询
     * @return
     */
    public Page<ExternalInfoDTO> pageHandoverFriend(String wxEnterpriseId, String search, List<String> staffIds, List<String> transferIds, BasePageInfo pageInfo, int status);

    /**
     * 分配客户接口
     *
     * @param wxEnterpriseId
     * @param handoverExternalIds
     * @param disStaffId
     */
    public void transferFriend(String wxEnterpriseId, List<String> handoverExternalIds, String disStaffId, String storeId);

    /**
     * 根据id 获取列表
     *
     * @param wxEnterpriseId
     * @param handoverExternalIds
     * @return
     */
    public List<HandoverExternalDTO> listByIds(String wxEnterpriseId, List<String> handoverExternalIds);

    /**
     * 分配记录
     *
     * @param wxEnterpriseId
     * @param storeId
     * @return
     */
    public List<HandoverStaffInfoDTO> listDis(String wxEnterpriseId, String storeId);

    /**
     * 分配记录对应的trandferid
     *
     * @param wxEnterpriseId
     * @param handoverStaffId
     * @return
     */
    public List<String> listTransferIdByHandoverStaffId(String wxEnterpriseId, String handoverStaffId);

    /**
     * 继承记录对应的trandferid
     *
     * @param wxEnterpriseId
     * @param takeoverStaffId
     * @return
     */
    public List<String> listTransferIdByTakeoverStaffId(String wxEnterpriseId, String takeoverStaffId);

    /**
     * 继承记录对应的trandferid
     *
     * @param wxEnterpriseId
     * @param takeoverStaffId
     * @return
     */
    public Integer countTransferIdByTakeoverStaffId(String wxEnterpriseId, String takeoverStaffId);
}
