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.Product;
import com.ylx.massage.domain.vo.H5ProductVo;
import com.ylx.massage.domain.vo.PlatformProductStats;
import org.apache.ibatis.annotations.Param;

/**
 * 商品表(Product)表数据库访问层
 *
 * @author ylx
 * @since 2026-03-26
 */
public interface ProductMapper extends BaseMapper<Product> {

    /**
     * 分页查询商品列表(H5端)-支持排序
     *
     * @param page      分页对象
     * @param product   商品查询参数
     * @param name      商品名称（模糊搜索）
     * @param sortField 排序字段（price:价格, sales:销量, comprehensive:综合排序）
     * @param sortOrder 排序方式（asc:升序, desc:降序）
     * @return Page<Product> 分页结果
     */
    Page<H5ProductVo> selectH5Page(Page<H5ProductVo> page,
                                   @Param("product") Product product,
                                   @Param("name") String name,
                                   @Param("sortField") String sortField,
                                   @Param("sortOrder") String sortOrder);

    /**
     * 查询平台商品总销量（用于综合排序计算）
     *
     * @return PlatformProductStats 平台统计指标
     */
    PlatformProductStats selectPlatformStats();

}
