package com.hzs.member.self.mapper;


import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.hzs.common.domain.member.self.CuSelfServiceLog;
import com.hzs.common.domain.member.self.CuSelfServiceLogExt;
import com.hzs.common.domain.sale.ext.SaOrderItemsExt;
import com.hzs.member.self.vo.MyOrderItemsVO;
import com.hzs.member.self.vo.SelfModifyAddressVO;
import com.hzs.member.self.vo.DomicileChangeVO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * <p>
 * 自助服务日志表 Mapper 接口
 * </p>
 *
 * @author hzs
 * @since 2023-04-17
 */
public interface CuSelfServiceLogMapper extends BaseMapper<CuSelfServiceLog> {

    /**
     * @description: 自助服务-查询已申请修改收货地址
     * @author: zhang jing
     * @date: 2023/4/17 14:36
     * @param: [selfModifyAddressVO]
     * @return: java.util.List<com.hzs.member.self.vo.SelfModifyAddressVO>
     **/
    List<SelfModifyAddressVO> querySelfModifyAddressList(SelfModifyAddressVO selfModifyAddressVO);
    /**
     * @description: 自助服务-查询已申请修改收货地址（管理端）
     * @author: zhang jing
     * @date: 2023/7/24 11:43
     * @param: [selfModifyAddressVO]
     * @return: java.util.List<com.hzs.member.self.vo.SelfModifyAddressVO>
     **/
    List<SelfModifyAddressVO> querySelfModifyAddressManageList(SelfModifyAddressVO selfModifyAddressVO);


    /**
     * @description: 自助服务-校验是否存在重复审核
     * @author: zhang jing
     * @date: 2023/4/17 16:40
     * @param: [selfModifyAddressVO]
     * @return: java.lang.Integer
     **/
    Integer checkSelfService(CuSelfServiceLog cuSelfServiceLog);

    /**
     * @description: 自助服务-查询申请的最大次数
     * @author: zhang jing
     * @date: 2023/4/17 17:08
     * @param: [selfModifyAddressVO]
     * @return: java.lang.Integer
     **/
    Integer selectByMaxApproveNumber(CuSelfServiceLog cuSelfServiceLog);

    /**
     * 根据业务类型、用户ID查询自助服务
     *
     * @param domicileChangeVO 自助服务信息
     * @return List<SelfModifyAddressVO>
     */
    List<CuSelfServiceLogExt> selectSelfServiceByPkMember(DomicileChangeVO domicileChangeVO);

    /**
     * 查询详情
     *
     * @param pkId
     * @return
     */
    CuSelfServiceLogExt selectDomicileChangeDetail(@Param("pkId") Long pkId);

    /**
     * 根据用户ID和类型查询自动服务
     *
     * @param editType  服务类型
     * @param pkMember  会员ID
     * @param pkCountry 国家ID
     * @return CuSelfServiceLogExt
     */
    CuSelfServiceLogExt selectDomicileChangeByPkMember(@Param("editType") Integer editType, @Param("pkMember") Long pkMember, @Param("pkCountry") Integer pkCountry);

    /**
     * 根据业务类型、业务编号查询自助信息
     *
     * @param editType   业务类型
     * @param businessNo 业务编号
     * @return CuSelfServiceLog
     */
    CuSelfServiceLog selectSelfServiceByBusinessNo(@Param("editType") Integer editType, @Param("businessNo") String businessNo);

    /**
     * 根据业务编号更新审批信息
     */

    Integer updateSelfServiceByBusinessNo(DomicileChangeVO domicileChangeVO);

    /**
     * 根据订单ID查询订单明细列表（前台使用，尽量只查能用到的）
     *
     * @param orderIdList 订单ID列表
     * @return
     */
    List<MyOrderItemsVO> queryListByOrderId(@Param("orderIdList") List<Long> orderIdList);

    Integer showHiddenAddressList(@Param("memberId") Long memberId,
                                  @Param("pkCountry") Integer pkCountry);
}
