package com.ylx.massage.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ylx.massage.domain.ProductOrderInfo;
import com.ylx.massage.domain.dto.ProductOrderPageDTO;
import com.ylx.massage.domain.vo.*;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

/**
 * 商品订单信息Mapper接口
 */
@Mapper
public interface ProductOrderInfoMapper extends BaseMapper<ProductOrderInfo> {

    /**
     * 分页查询用户商品订单列表
     *
     * @param page   分页参数
     * @param openId 用户openId
     * @return 订单列表
     */
    Page<ProductOrderListVo> selectProductOrderListByOpenId(Page<ProductOrderListVo> page, @Param("openId") String openId);

    /**
     * 查询订单详情
     *
     * @param orderNo 订单编号
     * @param openId  用户openId
     * @return 订单详情
     */
    ProductOrderDetailVo selectProductOrderDetailByOrderNoAndOpenId(@Param("orderNo") String orderNo, @Param("openId") String openId);

    Page<ProductOrderPageItemVo> adminPage(Page<ProductOrderInfo> page, @Param("dto") ProductOrderPageDTO dto);

    ProductOrderCountVo getOrderTotalCount();

    OrderBaseInfoVo getOrderBaseInfoById(@Param("orderId") Long orderId);
}