package com.ruoyi.ibs.cmpm.mapper;

import com.ruoyi.ibs.cmpm.domain.dto.CustLevelDTO;
import com.ruoyi.ibs.cmpm.domain.dto.CustManagerDTO;
import com.ruoyi.ibs.cmpm.domain.dto.GridCmpmListDTO;
import com.ruoyi.ibs.cmpm.domain.dto.GridCmpmUpdateDTO;
import com.ruoyi.ibs.cmpm.domain.entity.GridCmpm;
import com.ruoyi.ibs.cmpm.domain.vo.DwbRetailCustLevelManagerDetailVO;
import com.ruoyi.ibs.cmpm.domain.vo.GridCmpmClaimVO;
import com.ruoyi.ibs.customerselect.domain.CustBaseInfo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @Author 吴凯程
 * @Date 2025/5/26
 **/
@Mapper
public interface GridCmpmMapper {

    List<GridCmpm> selectManageList(GridCmpmListDTO gridCmpmListDTO);

    List<GridCmpm> selectCommonList(GridCmpmListDTO gridCmpmListDTO);

    GridCmpm getGridCmpmByCustKey(@Param("custId") String custId, @Param("accountNo") String accountNo,
                                  @Param("gridType") String gridType, @Param("deptCode") String deptCode);

    List<GridCmpm> getGridCmpmByUserName(@Param("userName") String userName, @Param("deptCode") String deptCode, @Param("gridType") String gridType);

    List<GridCmpm> queryGridCmpmByCustKey( @Param("deptCode") String deptCode, @Param("gridType") String gridType,
                                           @Param("custIds") List<String> custIds, @Param("accountNos") List<String> accountNos );

    Long updateGridCmpm(GridCmpmUpdateDTO gridCmpmUpdateDTO);

    List<String> getAllCustLevel(@Param("gridType") String gridType);

    String getCustLevel(CustLevelDTO custLevelDTO);

    List<GridCmpmClaimVO> queryClaimList(@Param("deptCode") String deptCode, @Param("gridType") String gridType, @Param("custKey") String custKey);

    List<DwbRetailCustLevelManagerDetailVO> getCustManagerList(CustManagerDTO custManagerDTO);

    int getCustLevelCount(CustManagerDTO custManagerDTO);

//    List<CustInfoRetail> selectCustInfoRetailFromGridCmpm(CustBaseInfo custBaseInfo);

    List<CustBaseInfo> selectCustInfoFromGridCmpm(CustBaseInfo custBaseInfo);

}
