xiaoyong931011
2022-12-02 c23f6436ef6f9fb6a17fcef51c2b81958e01e0a9
20221126
5 files modified
84 ■■■■■ changed files
src/main/java/cc/mrbird/febs/mall/controller/ApiMallGoodsController.java 9 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/mapper/MallGoodsMapper.java 3 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/service/IApiMallGoodsService.java 4 ●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallGoodsServiceImpl.java 5 ●●●●● patch | view | raw | blame | history
src/main/resources/mapper/modules/MallGoodsMapper.xml 63 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/controller/ApiMallGoodsController.java
@@ -39,6 +39,15 @@
        return new FebsResponse().success().data(mallGoodsService.findMallGoodsListInPage(queryDto));
    }
    @ApiOperation(value = "获取商城商品", notes = "获取商城商品")
    @ApiResponses({
            @ApiResponse(code = 200, message = "success", response = MallGoodsListVo.class)
    })
    @PostMapping(value = "/goodsListNoPage")
    public FebsResponse goodsListNoPage(@RequestBody MallGoodsQueryDto queryDto) {
        return new FebsResponse().success().data(mallGoodsService.findMallGoodsListNoPage(queryDto));
    }
    @ApiOperation(value = "获取商品详情", notes = "获取商品详情")
    @ApiResponses({
            @ApiResponse(code = 200, message = "success", response = MallGoodsDetailsVo.class)
src/main/java/cc/mrbird/febs/mall/mapper/MallGoodsMapper.java
@@ -52,4 +52,7 @@
    Integer upDateStockAndVolumeByGoodsId(@Param("id")Long id,@Param("cnt")Integer cnt);
    Integer updateStockAndVolumeByGoodsId(@Param("id")Long id,@Param("cnt")Integer cnt);
    List<MallGoodsListVo> selectMallGoodsListQueryNoPage(@Param("record")MallGoodsQueryDto queryDto);
}
src/main/java/cc/mrbird/febs/mall/service/IApiMallGoodsService.java
@@ -11,6 +11,8 @@
import com.baomidou.mybatisplus.extension.service.IService;
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface IApiMallGoodsService extends IService<MallGoods> {
    IPage<MallGoodsListVo> findMallGoodsListInPage(MallGoodsQueryDto queryDto);
@@ -22,4 +24,6 @@
    ApiMallGoodsDeliveryVo findDeliverySetting();
    MallGoodsCommentVo findMallGoodsCommentLevelByGoodsId(Long id);
    List<MallGoodsListVo> findMallGoodsListNoPage(MallGoodsQueryDto queryDto);
}
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallGoodsServiceImpl.java
@@ -54,6 +54,11 @@
    }
    @Override
    public List<MallGoodsListVo> findMallGoodsListNoPage(MallGoodsQueryDto queryDto) {
        return this.baseMapper.selectMallGoodsListQueryNoPage(queryDto);
    }
    @Override
    public MallGoodsDetailsVo findMallGoodsDetailsById(Long id) {
        MallGoods mallGoods = this.baseMapper.selectGoodsDetailById(id);
        if (mallGoods == null) {
src/main/resources/mapper/modules/MallGoodsMapper.xml
@@ -278,4 +278,67 @@
        where id=#{id} and  volume - #{cnt} <![CDATA[ >= ]]> 0
    </update>
    <select id="selectMallGoodsListQueryNoPage" resultType="cc.mrbird.febs.mall.vo.MallGoodsListVo">
        select * from (
        select
        a.id,
        a.goods_name,
        a.goods_introdution goodsIntroduction,
        a.thumb,
        a.original_price,
        a.present_price,
        a.score,
        a.is_hot,
        min(b.id) skuId,
        min(b.present_price) price,
        sum(b.stock) stock,
        sum(b.sku_volume) saleVolume
        from mall_goods a
        left join mall_goods_sku b on a.id=b.goods_id
        left 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 = #{record.isHot}
                </if>
                <if test="record.isNormal != null and record.isNormal != ''">
                    and a.is_normal = #{record.isNormal}
                </if>
                <if test="record.goodsType != null and record.goodsType != '' and record.goodsType != 3">
                    and a.goods_type = #{record.goodsType} and a.present_price != 0
                </if>
                <if test="record.goodsType == 3">
                    and a.present_price = 0
                </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>
        </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>
            <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>
</mapper>