package com.ruoyi.ibs.list.mapper;

import com.ruoyi.ibs.customerselect.domain.ListSelectByUser;
import com.ruoyi.ibs.customerselect.domain.ListSelectForUser;
import com.ruoyi.ibs.list.domain.MarketingList;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 
 * @author ruoyi
 */
public interface SysListMapper
{
    /**
     * 总行管理员根据条件分页查询营销清单
     *
     * @param keyword 清单名称或者活动名称关键词
     * @return 营销清单
     */
    public List<MarketingList> selectMarketingList(@Param("keyword") String keyword,@Param("deptId")Long deptId);
    /**
     * 根据条件分页查询营销清单
     * 
     * @param keyword 清单名称或者活动名称关键词
     * @return 营销清单
     */
    public List<MarketingList> selectMarketingList2(@Param("keyword") String keyword,@Param("deptId")Long deptId,@Param("userId")Long userId,@Param("createRole")String createRole);

    /**
     * 超级管理员或者总行管理员根据条件分页查询营销清单
     *
     * @param keyword 清单名称或者活动名称关键词
     * @return 营销清单
     */
    public List<MarketingList> selectMarketingCustomerList(@Param("groupId") String groupId, @Param("campaignId") String campaignId, @Param("keyword") String keyword,@Param("deptId")Long deptId);

    public List<MarketingList> selectMarketingCustomerList2(@Param("groupId") String groupId, @Param("campaignId") String campaignId, @Param("keyword") String keyword,@Param("deptId")Long deptId,@Param("userId")Long userId);


    /**
     * 根据活动名称、客户信息查询总行清单视角
     *
     * @param listSelectByUser 清单名称或者活动名称关键词
     * @return 营销清单
     */
    public List<ListSelectByUser> selectMarketingListByBank(ListSelectByUser listSelectByUser);

    public List<ListSelectByUser> selectMarketingListByOutlet(ListSelectByUser listSelectByUser);

    /**
     * 总行查询清单个人客户信息
     *
     * @param listSelectForUser 清单信息
     * @return 营销清单
     */
    public List<ListSelectForUser> selectCustListByBankRetail(ListSelectForUser listSelectForUser);
    /**
     * 总行查询清单商户客户信息
     *
     * @param listSelectForUser 清单信息
     * @return 营销清单
     */
    public List<ListSelectForUser> selectCustListByBankMerchant(ListSelectForUser listSelectForUser);

    /**
     * 总行查询清单企业客户信息
     *
     * @param listSelectForUser 清单信息
     * @return 营销清单
     */
    public List<ListSelectForUser> selectCustListByBankBusiness(ListSelectForUser listSelectForUser);

    /**
     * 批量导出客群列表
     *
     * @param groupId 清单信息
     * @return 营销清单
     */
    public List<ListSelectForUser> selectCustListForExcel(@Param("groupId") String groupId, @Param("deptId") String deptId, @Param("custIds") List<String> custIds);

}
