jiangqs
2023-06-01 c680521b6a4759b0c43068e57a6e5cd2b0a90236
商品管理
12个文件已修改
216 ■■■■■ 已修改文件
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteConfigFallbackFactory.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteConfigService.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsController.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/dto/MerGoodsPageDto.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/dto/MgtGoodsPageDto.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/pojo/goods/GoodsTotal.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/vo/MgtGoodsPageVo.java 55 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/mapper/goods/GoodsMapper.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/goods/GoodsService.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/goods/GoodsServiceImpl.java 29 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/resources/mapper/goods/GoodsMapper.xml 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/conslole/ConfigController.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteConfigFallbackFactory.java
@@ -2,6 +2,7 @@
import com.ruoyi.common.core.domain.R;
import com.ruoyi.system.api.domain.poji.config.Activeness;
import com.ruoyi.system.api.domain.poji.config.SysClassification;
import com.ruoyi.system.api.service.RemoteConfigService;
import com.ruoyi.system.api.domain.poji.config.SysTag;
import org.slf4j.Logger;
@@ -41,6 +42,11 @@
            public R<List<Activeness>> listActiveness() {
                return R.fail("获取活跃度失败:" + throwable.getMessage());
            }
            @Override
            public R<SysClassification> getSysClassification(Long classId) {
                return R.fail("获取分类失败:" + throwable.getMessage());
            }
        };
    }
}
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteConfigService.java
@@ -4,6 +4,7 @@
import com.ruoyi.common.core.domain.R;
import com.ruoyi.system.api.domain.poji.activity.ActivityGoods;
import com.ruoyi.system.api.domain.poji.config.Activeness;
import com.ruoyi.system.api.domain.poji.config.SysClassification;
import com.ruoyi.system.api.domain.poji.config.SysTag;
import com.ruoyi.system.api.factory.RemoteActivityFallbackFactory;
import com.ruoyi.system.api.factory.RemoteConfigFallbackFactory;
@@ -32,4 +33,11 @@
    @PostMapping("/config/listActiveness")
    public  R<List<Activeness>> listActiveness();
    /**
     * 通过id获取分类
     * @return
     */
    @PostMapping("/getSysClassification")
    public R<SysClassification> getSysClassification(@RequestBody Long classId);
}
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsController.java
@@ -4,7 +4,9 @@
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.security.utils.SecurityUtils;
import com.ruoyi.goods.domain.dto.MerGoodsPageDto;
import com.ruoyi.goods.domain.dto.MgtGoodsPageDto;
import com.ruoyi.goods.domain.vo.MerGoodsPageVo;
import com.ruoyi.goods.domain.vo.MgtGoodsPageVo;
import com.ruoyi.goods.service.goods.GoodsService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@@ -32,17 +34,17 @@
    @Resource
    private GoodsService goodsService;
    /*@RequestMapping(value = "/pageMgtGoods", method = RequestMethod.POST)
    @RequestMapping(value = "/pageMgtGoods", method = RequestMethod.POST)
    @ApiOperation(value = "分页获取商品列表")
    public R<Page<MerGoodsPageVo>> pageMgtGoods(@RequestBody MerGoodsPageDto merGoodsPageDto) {
    public R<Page<MgtGoodsPageVo>> pageMgtGoods(@RequestBody MgtGoodsPageDto mgtGoodsPageDto) {
        Long userId = SecurityUtils.getUserId();
        Page<MerGoodsPageVo> page = new Page<>();
        page.setSize(merGoodsPageDto.getPageSize());
        page.setCurrent(merGoodsPageDto.getPageNum());
        Page<MgtGoodsPageVo> page = new Page<>();
        page.setSize(mgtGoodsPageDto.getPageSize());
        page.setCurrent(mgtGoodsPageDto.getPageNum());
        page.setOptimizeCountSql(false);
        List<MerGoodsPageVo> merGoodsPageVoList = goodsService.pageMgtGoods(page,merGoodsPageDto);
        List<MgtGoodsPageVo> merGoodsPageVoList = goodsService.pageMgtGoods(page,mgtGoodsPageDto);
        return R.ok(page.setRecords(merGoodsPageVoList));
    }*/
    }
}
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/dto/MerGoodsPageDto.java
@@ -21,10 +21,6 @@
    @ApiModelProperty(value = "商品类型1周期2服务3体验4单品")
    private Integer goodsType;
    @ApiModelProperty(value = "商品分类id")
    private Long goodsClassId;
    @ApiModelProperty(value = "创建时间")
    private String createTime;
}
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/dto/MgtGoodsPageDto.java
@@ -20,4 +20,10 @@
    @ApiModelProperty(value = "商品类型1周期2服务3体验4单品")
    private Integer goodsType;
    @ApiModelProperty(value = "商品分类id")
    private Long goodsClassId;
    @ApiModelProperty(value = "创建时间")
    private String createTime;
}
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/pojo/goods/GoodsTotal.java
@@ -5,6 +5,7 @@
import com.baomidou.mybatisplus.activerecord.Model;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.math.BigDecimal;
import lombok.Data;
import lombok.EqualsAndHashCode;
@@ -44,6 +45,12 @@
    @TableField("buy_user_count")
    private Integer buyUserCount;
    /**
     * 购买人数统计
     */
    @TableField("buy_money_total")
    private BigDecimal buyMoneyTotal;
    @Override
    protected Serializable pkVal() {
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/vo/MgtGoodsPageVo.java
@@ -1,5 +1,13 @@
package com.ruoyi.goods.domain.vo;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
/**
 * @author jqs34
 * @ClassName MgtGoodsPageVo
@@ -7,5 +15,52 @@
 * @date 2023年06月01日
 * @version: 1.0
 */
@Data
public class MgtGoodsPageVo {
    @ApiModelProperty(value = "商品id")
    private String goodsId;
    @ApiModelProperty(value = "商品名称")
    private String goodsName;
    @ApiModelProperty(value = "商品简介")
    private String goodsIntroduction;
    @ApiModelProperty(value = "商品分类")
    private String goodsClass;
    @ApiModelProperty(value = "商品标签")
    private String goodsTags;
    @ApiModelProperty(value = "商品图片")
    private String goodsPicture;
    @ApiModelProperty(value = "商品类型1周期2服务3体验4单品")
    private Integer goodsType;
    @ApiModelProperty(value = "商品建议售价")
    private BigDecimal suggestSalesPrice;;
    @ApiModelProperty(value = "最低售价")
    private BigDecimal mininumPrice;;
    @ApiModelProperty(value = "销量")
    private Integer buyNumCount;
    @ApiModelProperty(value = "销售额")
    private BigDecimal buyMoneyTotal;
    @ApiModelProperty(value = "是否推荐")
    private String recommendFlag;
    @ApiModelProperty(value = "商品状态")
    private String goodsStatus;
    @ApiModelProperty(value = "创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;
}
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/mapper/goods/GoodsMapper.java
@@ -2,10 +2,12 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.goods.domain.dto.MerGoodsPageDto;
import com.ruoyi.goods.domain.dto.MgtGoodsPageDto;
import com.ruoyi.goods.domain.vo.AppSimpleActivityGoodsVo;
import com.ruoyi.goods.domain.vo.AppSimpleGoodsVo;
import com.ruoyi.goods.domain.dto.AppSearchGoodsPageDto;
import com.ruoyi.goods.domain.dto.AppShopGoodsPageDto;
import com.ruoyi.goods.domain.vo.MgtGoodsPageVo;
import com.ruoyi.system.api.domain.poji.goods.Goods;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.goods.domain.vo.MerGoodsPageVo;
@@ -59,4 +61,12 @@
     * @return
     */
    List<MerGoodsPageVo> pageMerShopGoods(Page page, @Param("param")MerGoodsPageDto merGoodsPageDto);
    /**
     * 平台分页获取商品
     * @param page
     * @param mgtGoodsPageDto
     * @return
     */
    List<MgtGoodsPageVo> pageMgtGoods(Page page, @Param("param")MgtGoodsPageDto mgtGoodsPageDto);
}
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/goods/GoodsService.java
@@ -2,12 +2,9 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.goods.domain.dto.*;
import com.ruoyi.goods.domain.vo.AppGoodsInfoVo;
import com.ruoyi.goods.domain.vo.AppSimpleActivityGoodsVo;
import com.ruoyi.goods.domain.vo.AppSimpleGoodsVo;
import com.ruoyi.goods.domain.vo.*;
import com.ruoyi.system.api.domain.poji.goods.Goods;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.goods.domain.vo.MerGoodsPageVo;
import java.util.List;
@@ -70,4 +67,12 @@
     * @param merShopGoodsEditDto
     */
    void editMerShopGoods(MerShopGoodsEditDto merShopGoodsEditDto);
    /**
     * 平台分页获取商品
     * @param page
     * @param mgtGoodsPageDto
     * @return
     */
    List<MgtGoodsPageVo> pageMgtGoods(Page page,MgtGoodsPageDto mgtGoodsPageDto);
}
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/goods/GoodsServiceImpl.java
@@ -7,13 +7,11 @@
import com.ruoyi.common.core.exception.ServiceException;
import com.ruoyi.common.core.utils.DateUtils;
import com.ruoyi.goods.domain.dto.*;
import com.ruoyi.goods.domain.vo.*;
import com.ruoyi.system.api.domain.poji.config.SysClassification;
import com.ruoyi.system.api.domain.poji.goods.Goods;
import com.ruoyi.system.api.domain.poji.goods.GoodsFile;
import com.ruoyi.system.api.domain.poji.goods.ShopGoods;
import com.ruoyi.goods.domain.vo.AppGoodsInfoVo;
import com.ruoyi.goods.domain.vo.AppSimpleActivityGoodsVo;
import com.ruoyi.goods.domain.vo.AppSimpleGoodsVo;
import com.ruoyi.goods.domain.vo.MerGoodsPageVo;
import com.ruoyi.goods.mapper.goods.GoodsMapper;
import com.ruoyi.goods.service.activity.ActivityGoodsService;
import com.ruoyi.goods.service.goods.GoodsFileService;
@@ -21,6 +19,7 @@
import com.ruoyi.goods.service.goods.ShopGoodsService;
import com.ruoyi.system.api.constant.AppErrorConstant;
import com.ruoyi.system.api.domain.poji.activity.ActivityGoods;
import com.ruoyi.system.api.service.RemoteConfigService;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
@@ -52,6 +51,9 @@
    @Resource
    private GoodsFileService goodsFileService;
    @Resource
    private RemoteConfigService remoteConfigService;
    /**
     * 获取推荐商品列表
@@ -209,4 +211,23 @@
        }
        shopGoodsService.saveOrUpdate(shopGoods);
    }
    /**
     * 平台分页获取商品
     * @param page
     * @param mgtGoodsPageDto
     * @return
     */
    @Override
    public List<MgtGoodsPageVo> pageMgtGoods(Page page, MgtGoodsPageDto mgtGoodsPageDto){
        List<MgtGoodsPageVo> mgtGoodsPageVoList = goodsMapper.pageMgtGoods(page, mgtGoodsPageDto);
        if(mgtGoodsPageVoList!=null && !mgtGoodsPageVoList.isEmpty()){
            mgtGoodsPageVoList.stream()
                    .forEach(mgtGoodsPageVo -> {
                        SysClassification sysClassification = remoteConfigService.getSysClassification(Long.valueOf(mgtGoodsPageVo.getGoodsClass())).getData();
                        mgtGoodsPageVo.setGoodsClass(sysClassification.getClassName());
                    });
        }
        return mgtGoodsPageVoList;
    }
}
ruoyi-modules/ruoyi-goods/src/main/resources/mapper/goods/GoodsMapper.xml
@@ -311,4 +311,51 @@
        </if>
        ORDER BY tg.create_time DESC
    </select>
    <select id="pageMgtGoods" resultType="com.ruoyi.goods.domain.vo.MgtGoodsPageVo">
        SELECT
        tg.goods_id goodsId,
        tg.goods_name goodsName,
        tg.goods_introduction goodsIntroduction,
        tg.goods_class_id goodsClass,
        tg.goods_tags goodsTags,
        tgf.file_url goodsPicture,
        CASE tg.goods_type
        WHEN 1 THEN "周期"
        WHEN 2 THEN "服务"
        WHEN 3 THEN "体验"
        WHEN 4 THEN "单品"
        END goodsType,
        tg.sales_price suggestSalesPrice,
        tg.mininum_price mininumPrice,
        CASE tg.recommend_flag
        WHEN 1 THEN "是"
        WHEN 0 THEN "否"
        ELSE "否"
        END recommendFlag,
        CASE tg.goods_status
        WHEN 1 THEN "上架中"
        WHEN 2 THEN "下架中"
        ELSE "下架中"
        END goodsStatus,
        tg.create_time createTime,
        tgt.buy_num_count buyNumCount,
        tgt.buy_money_total buyMoneyTotal
        FROM t_goods tg
        INNER JOIN t_goods_total tgt ON tg.goods_id = tgt.goods_id
        LEFT JOIN t_goods_file tgf ON tg.goods_id = tgf.goods_id AND tgf.del_flag = 0 AND tgf.file_type = 1
        WHERE tg.del_flag = 0
        <if test="param.goodsType != null">
            AND tg.goods_type = #{param.goodsType}
        </if>
        <if test="param.goodsClassId != null and param.goodsClassId != ''">
            AND tg.goods_class_id = #{param.goodsClassId}
        </if>
        <if test="param.createTime != null and param.createTime != ''">
            AND DATEDIFF(tg.create_time, #{param.createTime})
        </if>
        <if test="param.goodsName != null and param.goodsName != ''">
            AND tg.goods_name LIKE CONCAT('%',#{param.goodsName},'%')
        </if>
    </select>
</mapper>
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/conslole/ConfigController.java
@@ -1,9 +1,11 @@
package com.ruoyi.system.controller.conslole;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.system.api.domain.poji.config.SysClassification;
import com.ruoyi.system.api.domain.poji.config.SysTag;
import com.ruoyi.system.api.domain.poji.config.Activeness;
import com.ruoyi.system.service.config.ActivenessService;
import com.ruoyi.system.service.config.SysClassificationService;
import com.ruoyi.system.service.config.SysTagService;
import org.springframework.web.bind.annotation.*;
@@ -26,6 +28,9 @@
    @Resource
    private ActivenessService activenessService;
    @Resource
    private SysClassificationService sysClassificationService;
    /**
     * 获取系统标签
@@ -62,4 +67,14 @@
        return R.ok(activenessList);
    }
    /**
     * 通过id获取分类
     * @return
     */
    @PostMapping("/getSysClassification")
    public R<SysClassification> getSysClassification(@RequestBody Long classId)
    {
        SysClassification sysClassification = sysClassificationService.getById(classId);
        return R.ok(sysClassification);
    }
}