ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteConfigFallbackFactory.java
@@ -11,6 +11,7 @@ import org.springframework.stereotype.Component; import java.util.List; import java.util.Map; /** * 系统配置服务 @@ -47,6 +48,11 @@ public R<SysClassification> getSysClassification(Long classId) { return R.fail("获取分类失败:" + throwable.getMessage()); } @Override public R<Map<Long, SysClassification>> getSysClassificationList(List<Long> classIds) { return R.fail("获取分类失败:" + throwable.getMessage()); } }; } } ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteConfigService.java
@@ -13,6 +13,7 @@ import org.springframework.web.bind.annotation.RequestBody; import java.util.List; import java.util.Map; /** * @author jqs34 @@ -40,4 +41,11 @@ */ @PostMapping("/getSysClassification") public R<SysClassification> getSysClassification(@RequestBody Long classId); /** * 通过ids获取分类 * @return */ @PostMapping("/getSysClassificationList") public R<Map<Long,SysClassification>> getSysClassificationList(@RequestBody List<Long> classIds); } ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/goods/GoodsServiceImpl.java
@@ -1,17 +1,11 @@ package com.ruoyi.goods.service.impl.goods; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.mapper.EntityWrapper; 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.mapper.goods.GoodsMapper; import com.ruoyi.goods.service.activity.ActivityGoodsService; import com.ruoyi.goods.service.goods.GoodsFileService; @@ -19,15 +13,20 @@ 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.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.system.api.service.RemoteConfigService; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.math.BigDecimal; import java.util.Date; import java.util.ArrayList; import java.util.List; import java.util.StringJoiner; import java.util.Map; import java.util.stream.Collectors; /** * <p> @@ -99,17 +98,16 @@ @Override public List<AppSimpleActivityGoodsVo> pageSearchActivityGoods(Page page, AppSearchGoodsPageDto appSearchGoodsPageDto){ List<AppSimpleActivityGoodsVo> appSimpleGoodsVoList = goodsMapper.pageSearchActivityGoods(page,appSearchGoodsPageDto); Integer activityNumber; BigDecimal activityNumberBig; Integer salesNumber; BigDecimal salesNumberBig; int activityNumber; int salesNumber; BigDecimal salesPercent; for(AppSimpleActivityGoodsVo appSimpleActivityGoodsVo : appSimpleGoodsVoList){ activityNumber = appSimpleActivityGoodsVo.getActivityNumber(); salesNumber = appSimpleActivityGoodsVo.getSalesNumber(); activityNumberBig = BigDecimal.valueOf(activityNumber); salesNumberBig = BigDecimal.valueOf(salesNumber); salesPercent = salesNumberBig.divide(activityNumberBig,2,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100.00")); salesPercent = BigDecimal.ZERO; if(activityNumber != 0){ salesPercent = BigDecimal.valueOf(salesNumber).multiply(BigDecimal.valueOf(100)).divide(BigDecimal.valueOf(activityNumber), 2, BigDecimal.ROUND_HALF_UP); } appSimpleActivityGoodsVo.setSalesPercent(salesPercent); } return appSimpleGoodsVoList; @@ -153,17 +151,17 @@ } //商品图片 List<GoodsFile> goodsFileList = goodsFileService.listByGoodsId(goods.getGoodsId()); StringJoiner bannerSJ = new StringJoiner(","); List<String> bannerList = new ArrayList<>(); if(goodsFileList!=null&&!goodsFileList.isEmpty()){ for(GoodsFile goodsFile : goodsFileList){ if(goodsFile.getFileType()==2){ appGoodsInfoVo.setGoodsVideo(goodsFile.getFileUrl()); }else if(goodsFile.getFileType()==3){ bannerSJ.add(goodsFile.getFileUrl()); bannerList.add(goodsFile.getFileUrl()); } } if(bannerSJ!=null&&bannerSJ.length()>0){ appGoodsInfoVo.setGoodsBanners(bannerSJ.toString()); if(!bannerList.isEmpty()){ appGoodsInfoVo.setGoodsBanners(String.join(",", bannerList)); } } return appGoodsInfoVo; @@ -219,15 +217,29 @@ * @return */ @Override public List<MgtGoodsPageVo> pageMgtGoods(Page page, MgtGoodsPageDto mgtGoodsPageDto){ public List<MgtGoodsPageVo> pageMgtGoods(Page page, MgtGoodsPageDto mgtGoodsPageDto) { // 调用goodsMapper的方法获取MgtGoodsPageVo列表 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()); }); // 如果列表不为空 if (mgtGoodsPageVoList != null && !mgtGoodsPageVoList.isEmpty()) { // 获取所有商品分类的ID List<Long> goodsClassIds = mgtGoodsPageVoList.stream() .map(MgtGoodsPageVo::getGoodsClass) .map(Long::valueOf) .collect(Collectors.toList()); // 通过远程服务获取商品分类 Map<Long, SysClassification> sysClassificationMap = remoteConfigService.getSysClassificationList(goodsClassIds).getData(); // 遍历所有商品 mgtGoodsPageVoList.forEach(mgtGoodsPageVo -> { // 获取商品分类 SysClassification sysClassification = sysClassificationMap.get(Long.valueOf(mgtGoodsPageVo.getGoodsClass())); // 如果商品分类不为空,则设置商品分类名称 if (sysClassification != null) { mgtGoodsPageVo.setGoodsClass(sysClassification.getClassName()); } }); } // 返回处理后的商品列表 return mgtGoodsPageVoList; } ruoyi-modules/ruoyi-goods/src/main/resources/mapper/goods/GoodsMapper.xml
@@ -258,12 +258,12 @@ tg.goods_introduction goodsIntroduction, tg.goods_type goodsType, CASE tg.goods_type WHEN 1 THEN "周期" WHEN 2 THEN "服务" WHEN 3 THEN "体验" WHEN 4 THEN "单品" WHEN 1 THEN '周期' WHEN 2 THEN '服务' WHEN 3 THEN '体验' WHEN 4 THEN '单品' END goodsTag, GREATEST(tg.sales_price,IFNULL(tsg.sales_price,'0.00')) salesPrice, GREATEST(tg.sales_price, IFNULL(tsg.sales_price, 0.00)) salesPrice, tag.activity_price activityPrice, tgf.file_url goodsPicture, tg.goods_tags goodsNurses, @@ -271,7 +271,7 @@ tag.sales_number salesNumber FROM t_goods tg INNER JOIN t_activity_goods tag ON tg.goods_id = tag.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 INNER JOIN t_goods_file tgf ON tg.goods_id = tgf.goods_id AND tgf.del_flag = 0 AND tgf.file_type = 1 LEFT JOIN t_shop_goods tsg ON tg.goods_id = tsg.goods_id AND tsg.shop_id = #{param.shopId} WHERE tg.del_flag = 0 AND tg.goods_status = 1 <if test="param.keyword!=null and param.keyword != ''"> @@ -300,8 +300,8 @@ tg.service_num defaultServiceNum, IFNULL(tsg.service_num,tg.service_num) serviceNum FROM t_goods tg LEFT JOIN t_goods_file tgf ON tg.goods_id = tgf.goods_id AND tgf.del_flag = 0 AND tgf.file_type = 1 LEFT JOIN t_shop_goods tsg ON tg.goods_id = tsg.goods_id AND tsg.shop_id = #{param.shopId} INNER JOIN t_goods_file tgf ON tg.goods_id = tgf.goods_id AND tgf.del_flag = 0 AND tgf.file_type = 1 LEFT JOIN t_shop_goods tsg ON tg.goods_id = tsg.goods_id AND tsg.shop_id = #{param.shopId} AND tsg.del_flag = 0 WHERE tg.del_flag = 0 AND tg.goods_status = 1 <if test="param.goodsType != null"> AND tg.goods_type = #{param.goodsType} @@ -311,7 +311,6 @@ </if> ORDER BY tg.create_time DESC </select> <select id="pageMgtGoods" resultType="com.ruoyi.goods.domain.vo.MgtGoodsPageVo"> SELECT tg.goods_id goodsId, ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java
@@ -668,14 +668,13 @@ List<Activeness> activenessList = remoteConfigService.listActiveness().getData(); Date nowDay = DateUtils.getNowDate(); //处理活跃度筛选 if(activenessList!=null&&!activenessList.isEmpty()){ for(Activeness activeness : activenessList){ if(activeness.getActivenessId().equals(merMemberPageDto.getActivenessId())){ merMemberPageDto.setActStartDate(DateUtils.addDays(nowDay,activeness.getEndDay())); merMemberPageDto.setActEndDate(DateUtils.addDays(nowDay,activeness.getStartDay())); } } } activenessList.stream() .filter(activeness -> activeness.getActivenessId().equals(merMemberPageDto.getActivenessId())) .findFirst() .ifPresent(activeness -> { merMemberPageDto.setActStartDate(DateUtils.addDays(nowDay, activeness.getEndDay())); merMemberPageDto.setActEndDate(DateUtils.addDays(nowDay, activeness.getStartDay())); }); //查询获取结果列表 List<MgtMemberPageVo> memberPageVoList = memberMapper.pageMgtMember(page, merMemberPageDto); //处理活跃度返回 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/conslole/ConfigController.java
@@ -11,6 +11,7 @@ import javax.annotation.Resource; import java.util.List; import java.util.Map; /** * @author jqs34 @@ -77,4 +78,15 @@ SysClassification sysClassification = sysClassificationService.getById(classId); return R.ok(sysClassification); } /** * 通过ids获取分类 * @return */ @PostMapping("/getSysClassificationList") public R<Map<Long,SysClassification>> getSysClassificationList(@RequestBody List<Long> classIds) { Map<Long,SysClassification> sysClassificationMap = sysClassificationService.getSysClassificationList(classIds); return R.ok(sysClassificationMap); } } ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/config/SysClassificationService.java
@@ -3,6 +3,9 @@ import com.ruoyi.system.api.domain.poji.config.SysClassification; import com.baomidou.mybatisplus.extension.service.IService; import java.util.List; import java.util.Map; /** * <p> * 分类 服务类 @@ -13,4 +16,11 @@ */ public interface SysClassificationService extends IService<SysClassification> { /** * @description: TODO * @author jqs34 * @date 2023/6/4 12:00 * @version 1.0 */ Map<Long,SysClassification> getSysClassificationList(List<Long> classIds); } ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/config/SysClassificationServiceImpl.java
@@ -6,6 +6,10 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service; import java.util.HashMap; import java.util.List; import java.util.Map; /** * <p> * 分类 服务实现类 @@ -17,4 +21,20 @@ @Service public class SysClassificationServiceImpl extends ServiceImpl<SysClassificationMapper, SysClassification> implements SysClassificationService { /** * @description: TODO * @author jqs34 * @date 2023/6/4 11:59 * @version 1.0 */ @Override public Map<Long,SysClassification> getSysClassificationList(List<Long> classIds){ Map<Long, SysClassification> sysClassificationMap = new HashMap<>(); List<SysClassification> sysClassifications = this.listByIds(classIds); for (SysClassification sysClassification : sysClassifications) { sysClassificationMap.put(sysClassification.getClassId(), sysClassification); } return sysClassificationMap; } } ruoyi-modules/ruoyi-system/src/main/resources/mapper/config/SysClassificationMapper.xml
@@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.ruoyi.system.mapper.SysClassificationMapper"> <mapper namespace="com.ruoyi.system.mapper.config.SysClassificationMapper"> <resultMap type="SysClassification" id="SysClassificationResult"> <result property="classId" column="class_id" /> @@ -10,7 +10,8 @@ <result property="classSort" column="class_sort" /> <result property="relationNum" column="relation_num" /> <result property="createTime" column="create_time" /> </resultMap> </mapper>