From 7e398c0fe67692250a30189553ab16a96e617f54 Mon Sep 17 00:00:00 2001 From: qjq <1766193529@qq.com> Date: Mon, 22 Apr 2024 16:23:41 +0800 Subject: [PATCH] =?UTF-8?q?=E8=8F=9C=E5=93=81=E8=90=A5=E5=85=BB=E5=8D=A0?= =?UTF-8?q?=E6=AF=94=E8=AE=A1=E7=AE=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../CustomerTrafficServiceImpl.java | 4 +- .../app/devuce/DevuceController.java | 6 +-- .../system/dal/mysql/dishes/DishesMapper.java | 5 ++- .../system/enums/Nutrition/NutritionEnum.java | 38 +++++++++++++++++++ .../system/service/devuce/DevuceService.java | 2 +- .../service/devuce/DevuceServiceImpl.java | 12 +++++- .../DishesNutritionServiceImpl.java | 19 ++-------- 7 files changed, 61 insertions(+), 25 deletions(-) create mode 100644 yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/enums/Nutrition/NutritionEnum.java diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/customertraffic/CustomerTrafficServiceImpl.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/customertraffic/CustomerTrafficServiceImpl.java index 6d79e7b1..5de53a13 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/customertraffic/CustomerTrafficServiceImpl.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/customertraffic/CustomerTrafficServiceImpl.java @@ -125,10 +125,10 @@ public class CustomerTrafficServiceImpl implements CustomerTrafficService { return list; }else{ List all = customerTrafficMapper.getAllCustomerNum(storeId, startDate, endDate); - all.sort(Comparator.comparing(CustomerTrafficDetailDO::getCustomerNum)); + all.sort(Comparator.comparing(CustomerTrafficDetailDO::getCreateTime)); List list=new ArrayList<>(); //拆分 - List> split = ListUtil.split(list, 3); + List> split = ListUtil.split(all, 3); for (List dos : split) { CustomerTrafficDetailDO aDo = BeanUtil.toBean(dos.get(0), CustomerTrafficDetailDO.class); aDo.setCustomerNum(dos.stream().mapToInt(CustomerTrafficDetailDO::getCustomerNum).sum()); diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/app/devuce/DevuceController.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/app/devuce/DevuceController.java index 58c11af3..449c7fc5 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/app/devuce/DevuceController.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/app/devuce/DevuceController.java @@ -111,8 +111,8 @@ public class DevuceController { return success(devuceService.getCarteenIdByIp()); } @GetMapping("/nutrition") - @Operation(summary = "根据ip获取门店id") - public CommonResult> getDishesNutrition(@RequestParam("dishesId") Long dishesId) { - return success(devuceService.getDishesNutrition( dishesId)); + @Operation(summary = "获取菜品营养成分") + public CommonResult> getDishesNutrition(@RequestParam("dishesId") Long dishesId,@RequestParam(value = "cId",required = false) String cId) { + return success(devuceService.getDishesNutrition( dishesId,cId)); } } \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/dishes/DishesMapper.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/dishes/DishesMapper.java index d7681aa7..0e8cf59f 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/dishes/DishesMapper.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/dishes/DishesMapper.java @@ -7,6 +7,8 @@ import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; import cn.iocoder.yudao.module.system.controller.admin.dishes.vo.DishesPageReqVO; import cn.iocoder.yudao.module.system.dal.dataobject.dishes.DishesDO; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; /** * 菜品管理 Mapper @@ -31,5 +33,6 @@ public interface DishesMapper extends BaseMapperX { .betweenIfPresent(DishesDO::getCreateTime, reqVO.getCreateTime()) .orderByDesc(DishesDO::getId)); } - + @Select("select b.nickname from member_dining_plates as a INNER JOIN member_user as b on a.user_id=b.id where a.dining_plates_num=#{cId}") + String selectByCidUserName(@Param("cId") String cId); } \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/enums/Nutrition/NutritionEnum.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/enums/Nutrition/NutritionEnum.java new file mode 100644 index 00000000..20d5eacf --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/enums/Nutrition/NutritionEnum.java @@ -0,0 +1,38 @@ +package cn.iocoder.yudao.module.system.enums.Nutrition; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +import java.math.BigDecimal; +import java.math.RoundingMode; + +/** + * @Author:qjq + * @Date:2024/4/22 下午3:56 + */ +@Getter +@AllArgsConstructor +public enum NutritionEnum { + //能量每日推荐 + NL(BigDecimal.valueOf(8400),"能量"), + //蛋白质每日推荐 + DBZ(BigDecimal.valueOf(60),"蛋白质"), + //脂肪每日推荐 + ZF(BigDecimal.valueOf(60),"脂肪"), + //碳水化合物每日推荐 + TSHHW(BigDecimal.valueOf(300),"碳水化合物"); + + private final BigDecimal num; + private final String name; + public static String percentage(String naem,BigDecimal big){ + if(NutritionEnum.NL.getName().equals(naem)){ + return big.divide(NutritionEnum.NL.getNum(),2, RoundingMode.UP).toString()+"%"; + }else if(NutritionEnum.DBZ.getName().equals(naem)){ + return big.divide(NutritionEnum.DBZ.getNum(),2, RoundingMode.UP).toString()+"%"; + }else if (NutritionEnum.ZF.getName().equals(naem)){ + return big.divide(NutritionEnum.ZF.getNum(),2, RoundingMode.UP).toString()+"%"; + }else{ + return big.divide(NutritionEnum.TSHHW.getNum(),2, RoundingMode.UP).toString()+"%"; + } + } +} diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/devuce/DevuceService.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/devuce/DevuceService.java index a4c7e9c6..98d94bfc 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/devuce/DevuceService.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/devuce/DevuceService.java @@ -85,5 +85,5 @@ public interface DevuceService { * @Date: 2024/4/19 下午2:44 * @return */ - List getDishesNutrition(Long dishesId); + List getDishesNutrition(Long dishesId,String cId); } \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/devuce/DevuceServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/devuce/DevuceServiceImpl.java index 998ca6b9..322bea16 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/devuce/DevuceServiceImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/devuce/DevuceServiceImpl.java @@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.system.service.devuce; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.util.ObjUtil; +import cn.hutool.core.util.StrUtil; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; import cn.iocoder.yudao.module.system.controller.app.devuce.vo.DevucePageReqVO; @@ -187,15 +188,22 @@ public class DevuceServiceImpl implements DevuceService { * @Date: 2024/4/19 下午2:44 */ @Override - public List getDishesNutrition(Long dishesId) { + public List getDishesNutrition(Long dishesId,String cId) { List rawDOS = dishesNutritionMapper.selectList(new LambdaQueryWrapperX() .eqIfPresent(DishesNutritionDO::getDishesId, dishesId)); List maps = BeanUtil.copyToList(rawDOS, Map.class); + DishesDO dishesDO = dishesMapper.selectById(dishesId); + String s; + if(StrUtil.isNotBlank(cId)){ + s = dishesMapper.selectByCidUserName(cId); + } else { + s = null; + } maps.forEach(f ->{ - DishesDO dishesDO = dishesMapper.selectById(dishesId); f.put("dishesName",dishesDO.getDishesName()); f.put("dishesImageUrl",dishesDO.getDishesImageUrl()); + f.put("userName",s); }); return maps; } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/dishesnutrition/DishesNutritionServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/dishesnutrition/DishesNutritionServiceImpl.java index b247b5ec..3000d729 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/dishesnutrition/DishesNutritionServiceImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/dishesnutrition/DishesNutritionServiceImpl.java @@ -1,6 +1,5 @@ package cn.iocoder.yudao.module.system.service.dishesnutrition; -import cn.hutool.core.util.NumberUtil; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; @@ -9,6 +8,7 @@ import cn.iocoder.yudao.module.system.controller.admin.dishesnutrition.vo.Dishes import cn.iocoder.yudao.module.system.dal.dataobject.dishesnutrition.DishesNutritionDO; import cn.iocoder.yudao.module.system.dal.mysql.dishesnutrition.DishesNutritionMapper; import cn.iocoder.yudao.module.system.enums.ErrorCodeConstants; +import cn.iocoder.yudao.module.system.enums.Nutrition.NutritionEnum; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; @@ -30,6 +30,7 @@ public class DishesNutritionServiceImpl implements DishesNutritionService { @Resource private DishesNutritionMapper dishesNutritionMapper; + @Override public Long createDishesNutrition(DishesNutritionSaveReqVO createReqVO) { // 插入 @@ -114,20 +115,6 @@ public class DishesNutritionServiceImpl implements DishesNutritionService { * @return */ public void percentage(List createReqVO){ - BigDecimal leftover=new BigDecimal(0); - BigDecimal sum = new BigDecimal(100); - for (int i = 0; i < createReqVO.size(); i++) { - if(i < (createReqVO.size()-1)){ - DishesNutritionSaveReqVO reqVO = createReqVO.get(i); - BigDecimal bigDecimal = new BigDecimal(reqVO.getNutritionNumber()); - BigDecimal div = NumberUtil.div(bigDecimal, sum, 4); - BigDecimal mul = NumberUtil.mul(div, 100); - leftover=leftover.add(mul); - reqVO.setNutritionPer(mul+"%"); - }else{ - BigDecimal sub = NumberUtil.sub(sum, leftover); - createReqVO.get(i).setNutritionPer(sub+"%"); - } - } + createReqVO.forEach(f-> f.setNutritionPer((NutritionEnum.percentage(f.getNutritionName(),new BigDecimal(f.getNutritionNumber()))))); } } \ No newline at end of file