Merge remote-tracking branch 'origin/master'

This commit is contained in:
zengtao01
2024-04-22 16:24:47 +08:00
7 changed files with 61 additions and 25 deletions

View File

@ -125,10 +125,10 @@ public class CustomerTrafficServiceImpl implements CustomerTrafficService {
return list;
}else{
List<CustomerTrafficDetailDO> all = customerTrafficMapper.getAllCustomerNum(storeId, startDate, endDate);
all.sort(Comparator.comparing(CustomerTrafficDetailDO::getCustomerNum));
all.sort(Comparator.comparing(CustomerTrafficDetailDO::getCreateTime));
List<CustomerTrafficDetailDO> list=new ArrayList<>();
//拆分
List<List<CustomerTrafficDetailDO>> split = ListUtil.split(list, 3);
List<List<CustomerTrafficDetailDO>> split = ListUtil.split(all, 3);
for (List<CustomerTrafficDetailDO> dos : split) {
CustomerTrafficDetailDO aDo = BeanUtil.toBean(dos.get(0), CustomerTrafficDetailDO.class);
aDo.setCustomerNum(dos.stream().mapToInt(CustomerTrafficDetailDO::getCustomerNum).sum());

View File

@ -111,8 +111,8 @@ public class DevuceController {
return success(devuceService.getCarteenIdByIp());
}
@GetMapping("/nutrition")
@Operation(summary = "根据ip获取门店id")
public CommonResult<List<Map>> getDishesNutrition(@RequestParam("dishesId") Long dishesId) {
return success(devuceService.getDishesNutrition( dishesId));
@Operation(summary = "获取菜品营养成分")
public CommonResult<List<Map>> getDishesNutrition(@RequestParam("dishesId") Long dishesId,@RequestParam(value = "cId",required = false) String cId) {
return success(devuceService.getDishesNutrition( dishesId,cId));
}
}

View File

@ -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<DishesDO> {
.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);
}

View File

@ -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()+"%";
}
}
}

View File

@ -85,5 +85,5 @@ public interface DevuceService {
* @Date: 2024/4/19 下午2:44
* @return
*/
List<Map> getDishesNutrition(Long dishesId);
List<Map> getDishesNutrition(Long dishesId,String cId);
}

View File

@ -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<Map> getDishesNutrition(Long dishesId) {
public List<Map> getDishesNutrition(Long dishesId,String cId) {
List<DishesNutritionDO> rawDOS = dishesNutritionMapper.selectList(new LambdaQueryWrapperX<DishesNutritionDO>()
.eqIfPresent(DishesNutritionDO::getDishesId, dishesId));
List<Map> 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;
}

View File

@ -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<DishesNutritionSaveReqVO> 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())))));
}
}