From a44526de3a0ea91dc09c8d96c14c2bb8b880b49b Mon Sep 17 00:00:00 2001 From: Helius <wangdoubleone@gmail.com> Date: Sun, 26 Sep 2021 11:19:12 +0800 Subject: [PATCH] fix --- src/main/resources/mapper/modules/MallGoodsMapper.xml | 71 +++++++++++++++++++++++------------ src/main/java/cc/mrbird/febs/mall/dto/MallGoodsQueryDto.java | 8 ++-- 2 files changed, 50 insertions(+), 29 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/mall/dto/MallGoodsQueryDto.java b/src/main/java/cc/mrbird/febs/mall/dto/MallGoodsQueryDto.java index ba61cd9..d4b6314 100644 --- a/src/main/java/cc/mrbird/febs/mall/dto/MallGoodsQueryDto.java +++ b/src/main/java/cc/mrbird/febs/mall/dto/MallGoodsQueryDto.java @@ -26,11 +26,11 @@ @ApiModelProperty(value = "分类ID") private Long categoryId; -// @ApiModelProperty(value = "排序字段, 默认created_time") -// private String order = "created_time"; + @ApiModelProperty(value = "排序类型 1-综合排序 2-销量 3-价格 4-新品优先") + private Integer sortType; // -// @ApiModelProperty(value = "升序/降序", example = "asc/desc") -// private String sort = "desc"; + @ApiModelProperty(value = "升序/降序", example = "asc/desc") + private String sort = "desc"; @ApiModelProperty(value = "是否热卖", example = "1是2否") private Integer isHot; diff --git a/src/main/resources/mapper/modules/MallGoodsMapper.xml b/src/main/resources/mapper/modules/MallGoodsMapper.xml index 3070af0..e8ec726 100644 --- a/src/main/resources/mapper/modules/MallGoodsMapper.xml +++ b/src/main/resources/mapper/modules/MallGoodsMapper.xml @@ -54,33 +54,54 @@ </select> <select id="selectMallGoodsListQueryInPage" resultType="cc.mrbird.febs.mall.vo.MallGoodsListVo"> - select - a.id, - a.goods_name, - a.goods_introdution, - a.thumb, - a.original_price, - a.present_price, - sum(b.sku_volume) saleVolume - from mall_goods a - inner join mall_goods_sku b on a.id=b.goods_id - inner join mall_goods_category c on a.category_id=c.id - <where> - a.is_sale=1 - <if test="record != null"> - <if test="record.isHot != null and record.isHot != ''"> - and a.is_hot = 1 + select * from ( + select + a.id, + a.goods_name, + a.goods_introdution, + a.thumb, + a.original_price, + a.present_price, + a.is_hot, + min(b.present_price) price, + sum(b.sku_volume) saleVolume + from mall_goods a + inner join mall_goods_sku b on a.id=b.goods_id + inner join mall_goods_category c on a.category_id=c.id + <where> + a.is_sale=1 + <if test="record != null"> + <if test="record.isHot != null and record.isHot != ''"> + and a.is_hot = 1 + </if> + <if test="record.categoryId != null and record.categoryId != ''"> + and (c.id = #{record.categoryId} or c.parent_id=#{record.categoryId}) + </if> + <if test="record.query != null and record.query != ''"> + and a.goods_name like CONCAT('%', CONCAT(#{record.query}, '%')) + </if> </if> - <if test="record.categoryId != null and record.categoryId != ''"> - and (c.id = #{record.categoryId} or c.parent_id=#{record.categoryId}) - </if> - <if test="record.query != null and record.query != ''"> - and a.goods_name like CONCAT('%', CONCAT(#{record.query}, '%')) - </if> + </where> + group by a.id + order by a.id desc + ) a + <if test="record.sortType != null"> + <if test="record.sortType == 1"> + order by a.is_hot, a.saleVolume desc, a.id </if> - </where> - group by a.id - order by a.id desc + <if test="record.sortType == 2"> + order by a.saleVolume desc + </if> + <if test="record.sortType == 3 and record.sort == 'asc'"> + order by a.price + </if> + <if test="record.sortType == 3 and record.sort == 'desc'"> + order by a.price desc + </if> + <if test="record.sortType == 4"> + order by a.id desc + </if> + </if> </select> <select id="selectMallGoodsInPage" resultType="cc.mrbird.febs.mall.vo.AdminMallGoodsVo"> -- Gitblit v1.9.1