package com.hzs.member.detail.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.hzs.common.domain.member.detail.CuMemberServiceLog;
import com.hzs.common.domain.member.detail.CuMemberServiceLogExt;
import com.hzs.member.detail.vo.CuMemberServiceLogVO;
import com.hzs.member.handlebusiness.vo.BusinessMemberVO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 会员更名、密码修改表 Mapper 接口
 */
public interface CuMemberServiceLogMapper extends BaseMapper<CuMemberServiceLog> {

    Integer selectByMaxApproveNumber(@Param("pkMember") Long pkMember, @Param("editType") int editType, @Param("approveStatus") Integer approveStatus);

    /**
     * 查询用户是否已经存在未审核业务
     **/
    List<CuMemberServiceLogVO> selectServiceLogList(CuMemberServiceLogVO cuMemberServiceLogVO);

    /**
     * 查询
     *
     * @param cuMemberServiceLog
     * @return
     */
    List<CuMemberServiceLogExt> selectByServiceLogList(CuMemberServiceLog cuMemberServiceLog);

    /**
     *  查询会员原值
     **/
    List<BusinessMemberVO> selectOldValue(BusinessMemberVO businessMemberVO);


    /**
     * 根据用户、业务类型查询业务办理仩
     *
     * @param cuMemberServiceLog 业务信息
     * @return List<CuMemberServiceLogExt>
     */
    List<CuMemberServiceLog> selectServiceValue(CuMemberServiceLogExt cuMemberServiceLog);

    /**
     * 查询pk_id最大的业务办理
     *
     * @param pkMember     服务log
     * @param editTypeList 业务办理类型
     */
    List<CuMemberServiceLog> queryMaxCuMemberServiceLog(@Param("pkMember") Long pkMember,
                                                        @Param("editTypeList") List<Integer> editTypeList);

    /**
     * 查询列表信息
     *
     * @param editType
     * @param memberCode
     * @param memberName
     * @return
     */
    List<CuMemberServiceLog> queryList(@Param("editType") Integer editType, @Param("memberCode") String memberCode, @Param("memberName") String memberName, @Param("pkCountry") Integer pkCountry);

    /**
     * 查询展示列表
     *
     * @return
     */
    List<CuMemberServiceLogExt> selectByList(CuMemberServiceLogExt memberServiceLogExt);
}
