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.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;

/**
 * 自助服务日志表 Mapper 接口
 */
public interface CuSelfServiceLogMapper extends BaseMapper<CuSelfServiceLog> {

    /**
     * 自助服务-查询已申请修改收货地址
     **/
    List<SelfModifyAddressVO> querySelfModifyAddressList(SelfModifyAddressVO selfModifyAddressVO);

    /**
     * 自助服务-查询已申请修改收货地址（管理端）
     **/
    List<SelfModifyAddressVO> querySelfModifyAddressManageList(SelfModifyAddressVO selfModifyAddressVO);

    /**
     * 自助服务-查询申请的最大次数
     **/
    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);

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

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