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; @@ -31,5 +32,12 @@ @PostMapping("/config/listActiveness") public R<List<Activeness>> 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); } }