菜品绑定修改
This commit is contained in:
@ -0,0 +1,17 @@
|
|||||||
|
package cn.iocoder.yudao.module.member.api.diningplates;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.module.member.api.diningplates.dto.DiningPlatesRespDTO;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author:qjq
|
||||||
|
* @Date:2024/4/10 下午2:36
|
||||||
|
*/
|
||||||
|
public interface DiningplatesApi {
|
||||||
|
/**
|
||||||
|
* @Description: 根据餐盘查询
|
||||||
|
* @Author: qjq
|
||||||
|
* @Date: 2024/4/10 下午2:41
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
DiningPlatesRespDTO getQueryByDiningPlatesNum(String diningPlatesNum);
|
||||||
|
}
|
@ -0,0 +1,37 @@
|
|||||||
|
package cn.iocoder.yudao.module.member.api.diningplates.dto;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author:qjq
|
||||||
|
* @Date:2024/4/10 下午2:38
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class DiningPlatesRespDTO {
|
||||||
|
public final static String USE = "1";
|
||||||
|
public final static String FREE = "0";
|
||||||
|
public final static String PAY = "1";
|
||||||
|
public final static String TO_PAY = "0";
|
||||||
|
/**
|
||||||
|
* 餐盘编号
|
||||||
|
*/
|
||||||
|
private String diningPlatesNum;
|
||||||
|
/**
|
||||||
|
* 用户id
|
||||||
|
*/
|
||||||
|
private Long userId;
|
||||||
|
/**
|
||||||
|
* 状态:0-空闲,1-正在使用
|
||||||
|
*/
|
||||||
|
private String status;
|
||||||
|
/**
|
||||||
|
* 状态:付费标志(0-无付费,1-正在付费)
|
||||||
|
*/
|
||||||
|
private String payFlag;
|
||||||
|
/**
|
||||||
|
* 绑定时间
|
||||||
|
*/
|
||||||
|
private LocalDateTime bindingTime;
|
||||||
|
}
|
@ -0,0 +1,34 @@
|
|||||||
|
package cn.iocoder.yudao.module.member.api.diningplates;
|
||||||
|
|
||||||
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
|
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||||
|
import cn.iocoder.yudao.module.member.api.diningplates.dto.DiningPlatesRespDTO;
|
||||||
|
import cn.iocoder.yudao.module.member.dal.dataobject.diningplates.DiningPlatesDO;
|
||||||
|
import cn.iocoder.yudao.module.member.dal.mysql.diningplates.DiningPlatesMapper;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author:qjq
|
||||||
|
* @Date:2024/4/10 下午2:42
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
public class DiningplatesApiImpl implements DiningplatesApi{
|
||||||
|
@Resource
|
||||||
|
private DiningPlatesMapper diningPlatesMapper;
|
||||||
|
/**
|
||||||
|
* @param diningPlatesNum
|
||||||
|
* @return
|
||||||
|
* @Description: 根据餐盘查询
|
||||||
|
* @Author: qjq
|
||||||
|
* @Date: 2024/4/10 下午2:41
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public DiningPlatesRespDTO getQueryByDiningPlatesNum(String diningPlatesNum) {
|
||||||
|
DiningPlatesDO diningPlatesDO = diningPlatesMapper.selectOne(new LambdaQueryWrapperX<DiningPlatesDO>()
|
||||||
|
.eq(DiningPlatesDO::getDiningPlatesNum, diningPlatesNum)
|
||||||
|
);
|
||||||
|
return BeanUtil.toBean(diningPlatesDO, DiningPlatesRespDTO.class);
|
||||||
|
}
|
||||||
|
}
|
@ -2,15 +2,7 @@ package cn.iocoder.yudao.module.member.controller.app.user;
|
|||||||
|
|
||||||
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
||||||
import cn.iocoder.yudao.framework.security.core.annotations.PreAuthenticated;
|
import cn.iocoder.yudao.framework.security.core.annotations.PreAuthenticated;
|
||||||
import cn.iocoder.yudao.module.member.controller.app.user.vo.AppBindCardVO;
|
import cn.iocoder.yudao.module.member.controller.app.user.vo.*;
|
||||||
import cn.iocoder.yudao.module.member.controller.app.user.vo.AppMemberUserInfoRespVO;
|
|
||||||
import cn.iocoder.yudao.module.member.controller.app.user.vo.AppMemberUserResetPasswordReqVO;
|
|
||||||
import cn.iocoder.yudao.module.member.controller.app.user.vo.AppMemberUserUpdateMobileByWeixinReqVO;
|
|
||||||
import cn.iocoder.yudao.module.member.controller.app.user.vo.AppMemberUserUpdateMobileReqVO;
|
|
||||||
import cn.iocoder.yudao.module.member.controller.app.user.vo.AppMemberUserUpdatePasswordReqVO;
|
|
||||||
import cn.iocoder.yudao.module.member.controller.app.user.vo.AppMemberUserUpdateReqVO;
|
|
||||||
import cn.iocoder.yudao.module.member.controller.app.user.vo.AppNutritionDayVo;
|
|
||||||
import cn.iocoder.yudao.module.member.controller.app.user.vo.AppWeekVO;
|
|
||||||
import cn.iocoder.yudao.module.member.convert.user.MemberUserConvert;
|
import cn.iocoder.yudao.module.member.convert.user.MemberUserConvert;
|
||||||
import cn.iocoder.yudao.module.member.dal.dataobject.level.MemberLevelDO;
|
import cn.iocoder.yudao.module.member.dal.dataobject.level.MemberLevelDO;
|
||||||
import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberUserDO;
|
import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberUserDO;
|
||||||
@ -18,17 +10,13 @@ import cn.iocoder.yudao.module.member.dal.dataobject.userexpand.UserExpandDO;
|
|||||||
import cn.iocoder.yudao.module.member.service.level.MemberLevelService;
|
import cn.iocoder.yudao.module.member.service.level.MemberLevelService;
|
||||||
import cn.iocoder.yudao.module.member.service.user.MemberUserService;
|
import cn.iocoder.yudao.module.member.service.user.MemberUserService;
|
||||||
import cn.iocoder.yudao.module.member.service.userexpand.UserExpandService;
|
import cn.iocoder.yudao.module.member.service.userexpand.UserExpandService;
|
||||||
|
import cn.iocoder.yudao.module.system.api.dishesnutrition.dto.DishesNutritionRespDTO;
|
||||||
import io.swagger.v3.oas.annotations.Operation;
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.format.annotation.DateTimeFormat;
|
import org.springframework.format.annotation.DateTimeFormat;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.*;
|
||||||
import org.springframework.web.bind.annotation.PutMapping;
|
|
||||||
import org.springframework.web.bind.annotation.RequestBody;
|
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
|
||||||
import org.springframework.web.bind.annotation.RequestParam;
|
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import javax.validation.Valid;
|
import javax.validation.Valid;
|
||||||
@ -136,12 +124,20 @@ public class AppMemberUserController {
|
|||||||
@RequestParam(value = "orderId",required = false)Long orderId){
|
@RequestParam(value = "orderId",required = false)Long orderId){
|
||||||
return success(userService.getUserHeat(userId,startDate,endDate,orderId));
|
return success(userService.getUserHeat(userId,startDate,endDate,orderId));
|
||||||
}
|
}
|
||||||
|
@GetMapping("/heat/dishes")
|
||||||
|
@Operation(summary = "获得会员热量分析")
|
||||||
|
public CommonResult<List<DishesNutritionRespDTO>> getUserHeat(@RequestParam(value = "dishesId",required = false)Long dishesId){
|
||||||
|
return success( userService.getHeatDishes(dishesId));
|
||||||
|
}
|
||||||
|
|
||||||
@PutMapping("/bindFace")
|
@PutMapping("/bindFace")
|
||||||
@Operation(summary = "绑脸")
|
@Operation(summary = "绑脸")
|
||||||
public CommonResult<Boolean> bindFace(Long userId,Long faceId){
|
public CommonResult<Boolean> bindFace(Long userId,Long faceId){
|
||||||
return success(userService.bindFace(userId,faceId));
|
return success(userService.bindFace(userId,faceId));
|
||||||
}
|
}
|
||||||
|
@GetMapping("/dishes")
|
||||||
|
public CommonResult<Map<String,String>> getDishesList(@RequestParam("platesNum") String platesNum){
|
||||||
|
return success(userService.getDishesList(platesNum));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -13,6 +13,7 @@ import cn.iocoder.yudao.module.member.controller.app.user.vo.AppMemberUserUpdate
|
|||||||
import cn.iocoder.yudao.module.member.controller.app.user.vo.AppNutritionDayVo;
|
import cn.iocoder.yudao.module.member.controller.app.user.vo.AppNutritionDayVo;
|
||||||
import cn.iocoder.yudao.module.member.controller.app.user.vo.AppWeekVO;
|
import cn.iocoder.yudao.module.member.controller.app.user.vo.AppWeekVO;
|
||||||
import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberUserDO;
|
import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberUserDO;
|
||||||
|
import cn.iocoder.yudao.module.system.api.dishesnutrition.dto.DishesNutritionRespDTO;
|
||||||
|
|
||||||
import javax.validation.Valid;
|
import javax.validation.Valid;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
@ -214,10 +215,16 @@ public interface MemberUserService {
|
|||||||
AppWeekVO NutritionWeek(String start, String end);
|
AppWeekVO NutritionWeek(String start, String end);
|
||||||
|
|
||||||
List<Map> getUserHeat(Long userId, LocalDateTime startDate,LocalDateTime endDate, Long orderId);
|
List<Map> getUserHeat(Long userId, LocalDateTime startDate,LocalDateTime endDate, Long orderId);
|
||||||
|
List<DishesNutritionRespDTO> getHeatDishes(Long dishesId);
|
||||||
/**
|
/**
|
||||||
* 用户绑定人脸
|
* 用户绑定人脸
|
||||||
*/
|
*/
|
||||||
Boolean bindFace(Long userId,Long faceId);
|
Boolean bindFace(Long userId,Long faceId);
|
||||||
|
/**
|
||||||
|
* @Description:
|
||||||
|
* @Author: qjq
|
||||||
|
* @Date: 2024/4/10 下午2:30
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
Map<String,String> getDishesList(String platesNum);
|
||||||
}
|
}
|
||||||
|
@ -16,25 +16,21 @@ import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
|
|||||||
import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
|
import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
|
||||||
import cn.iocoder.yudao.module.member.controller.admin.user.vo.MemberUserPageReqVO;
|
import cn.iocoder.yudao.module.member.controller.admin.user.vo.MemberUserPageReqVO;
|
||||||
import cn.iocoder.yudao.module.member.controller.admin.user.vo.MemberUserUpdateReqVO;
|
import cn.iocoder.yudao.module.member.controller.admin.user.vo.MemberUserUpdateReqVO;
|
||||||
import cn.iocoder.yudao.module.member.controller.app.user.vo.AppMemberUserResetPasswordReqVO;
|
import cn.iocoder.yudao.module.member.controller.app.user.vo.*;
|
||||||
import cn.iocoder.yudao.module.member.controller.app.user.vo.AppMemberUserUpdateMobileByWeixinReqVO;
|
|
||||||
import cn.iocoder.yudao.module.member.controller.app.user.vo.AppMemberUserUpdateMobileReqVO;
|
|
||||||
import cn.iocoder.yudao.module.member.controller.app.user.vo.AppMemberUserUpdatePasswordReqVO;
|
|
||||||
import cn.iocoder.yudao.module.member.controller.app.user.vo.AppMemberUserUpdateReqVO;
|
|
||||||
import cn.iocoder.yudao.module.member.controller.app.user.vo.AppNutritionDayVo;
|
|
||||||
import cn.iocoder.yudao.module.member.controller.app.user.vo.AppNutritionWeekVO;
|
|
||||||
import cn.iocoder.yudao.module.member.controller.app.user.vo.AppWeekVO;
|
|
||||||
import cn.iocoder.yudao.module.member.convert.auth.AuthConvert;
|
import cn.iocoder.yudao.module.member.convert.auth.AuthConvert;
|
||||||
import cn.iocoder.yudao.module.member.convert.user.MemberUserConvert;
|
import cn.iocoder.yudao.module.member.convert.user.MemberUserConvert;
|
||||||
|
import cn.iocoder.yudao.module.member.dal.dataobject.diningplates.DiningPlatesDO;
|
||||||
import cn.iocoder.yudao.module.member.dal.dataobject.order.DishOrderDO;
|
import cn.iocoder.yudao.module.member.dal.dataobject.order.DishOrderDO;
|
||||||
import cn.iocoder.yudao.module.member.dal.dataobject.orderdetail.OrderDetailDO;
|
import cn.iocoder.yudao.module.member.dal.dataobject.orderdetail.OrderDetailDO;
|
||||||
import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberUserDO;
|
import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberUserDO;
|
||||||
import cn.iocoder.yudao.module.member.dal.mysql.card.CardMapper;
|
import cn.iocoder.yudao.module.member.dal.mysql.card.CardMapper;
|
||||||
|
import cn.iocoder.yudao.module.member.dal.mysql.diningplates.DiningPlatesMapper;
|
||||||
import cn.iocoder.yudao.module.member.dal.mysql.order.DishOrderMapper;
|
import cn.iocoder.yudao.module.member.dal.mysql.order.DishOrderMapper;
|
||||||
import cn.iocoder.yudao.module.member.dal.mysql.orderdetail.OrderDetailMapper;
|
import cn.iocoder.yudao.module.member.dal.mysql.orderdetail.OrderDetailMapper;
|
||||||
import cn.iocoder.yudao.module.member.dal.mysql.user.MemberUserMapper;
|
import cn.iocoder.yudao.module.member.dal.mysql.user.MemberUserMapper;
|
||||||
import cn.iocoder.yudao.module.member.enums.TimePeriodEnum;
|
import cn.iocoder.yudao.module.member.enums.TimePeriodEnum;
|
||||||
import cn.iocoder.yudao.module.member.mq.producer.user.MemberUserProducer;
|
import cn.iocoder.yudao.module.member.mq.producer.user.MemberUserProducer;
|
||||||
|
import cn.iocoder.yudao.module.member.service.card.CardService;
|
||||||
import cn.iocoder.yudao.module.member.service.order.OrderService;
|
import cn.iocoder.yudao.module.member.service.order.OrderService;
|
||||||
import cn.iocoder.yudao.module.member.service.orderdetail.OrderDetailService;
|
import cn.iocoder.yudao.module.member.service.orderdetail.OrderDetailService;
|
||||||
import cn.iocoder.yudao.module.member.service.userexpand.UserExpandService;
|
import cn.iocoder.yudao.module.member.service.userexpand.UserExpandService;
|
||||||
@ -58,15 +54,11 @@ import org.springframework.transaction.support.TransactionSynchronizationManager
|
|||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import javax.validation.Valid;
|
import javax.validation.Valid;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
import java.math.RoundingMode;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.time.format.DateTimeFormatter;
|
import java.time.format.DateTimeFormatter;
|
||||||
import java.time.temporal.WeekFields;
|
import java.time.temporal.WeekFields;
|
||||||
import java.util.ArrayList;
|
import java.util.*;
|
||||||
import java.util.Collection;
|
|
||||||
import java.util.Collections;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
|
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||||
@ -88,10 +80,12 @@ public class MemberUserServiceImpl implements MemberUserService {
|
|||||||
private OrderDetailMapper orderDetailMapper;
|
private OrderDetailMapper orderDetailMapper;
|
||||||
@Resource
|
@Resource
|
||||||
private DishesNutritionApi dishesNutritionApil;
|
private DishesNutritionApi dishesNutritionApil;
|
||||||
|
@Resource
|
||||||
|
private DiningPlatesMapper diningPlatesMapper;
|
||||||
@Resource
|
@Resource
|
||||||
private MemberUserMapper memberUserMapper;
|
private MemberUserMapper memberUserMapper;
|
||||||
|
@Resource
|
||||||
|
private CardService cardService;
|
||||||
@Resource
|
@Resource
|
||||||
private SmsCodeApi smsCodeApi;
|
private SmsCodeApi smsCodeApi;
|
||||||
|
|
||||||
@ -488,6 +482,13 @@ public class MemberUserServiceImpl implements MemberUserService {
|
|||||||
return appWeekVO;
|
return appWeekVO;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<DishesNutritionRespDTO> getHeatDishes(Long dishesId) {
|
||||||
|
List<DishesNutritionRespDTO> dishesList = dishesNutritionApil.getDishesList(dishesId);
|
||||||
|
this.computePercentage(dishesList);
|
||||||
|
return dishesList;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<Map> getUserHeat(Long userId, LocalDateTime startDate,LocalDateTime endDate,Long orderId) {
|
public List<Map> getUserHeat(Long userId, LocalDateTime startDate,LocalDateTime endDate,Long orderId) {
|
||||||
if(ObjectUtil.isNotEmpty(orderId)){
|
if(ObjectUtil.isNotEmpty(orderId)){
|
||||||
@ -541,8 +542,16 @@ public class MemberUserServiceImpl implements MemberUserService {
|
|||||||
.map(x -> new BigDecimal(x.getNutritionNumber()))
|
.map(x -> new BigDecimal(x.getNutritionNumber()))
|
||||||
// 使用reduce聚合函数,实现累加器
|
// 使用reduce聚合函数,实现累加器
|
||||||
.reduce(BigDecimal.ZERO, BigDecimal::add);
|
.reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||||
|
|
||||||
|
//获取菜品总量总和
|
||||||
|
BigDecimal reduce = value.stream()
|
||||||
|
.map(x -> new BigDecimal(x.getDishesNumber()))
|
||||||
|
.reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||||
|
//计算营养乘数 菜品总量/100g=营养乘数
|
||||||
|
BigDecimal divide = reduce.divide(BigDecimal.valueOf(100), 4, RoundingMode.HALF_UP);
|
||||||
|
BigDecimal bigDecimal = sum1.multiply(divide).setScale(0, RoundingMode.HALF_UP);
|
||||||
dto.setNutritionName(entry.getKey());
|
dto.setNutritionName(entry.getKey());
|
||||||
dto.setNutritionNumber(sum1.toString());
|
dto.setNutritionNumber(bigDecimal.toString());
|
||||||
list.add(dto);
|
list.add(dto);
|
||||||
}
|
}
|
||||||
this.computePercentage(list);
|
this.computePercentage(list);
|
||||||
@ -594,4 +603,27 @@ public class MemberUserServiceImpl implements MemberUserService {
|
|||||||
memberUserDO.setFaceId(faceId);
|
memberUserDO.setFaceId(faceId);
|
||||||
return memberUserMapper.updateById(memberUserDO)>0;
|
return memberUserMapper.updateById(memberUserDO)>0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param platesNum
|
||||||
|
* @return
|
||||||
|
* @Description:
|
||||||
|
* @Author: qjq
|
||||||
|
* @Date: 2024/4/10 下午2:30
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public Map<String,String> getDishesList(String platesNum) {
|
||||||
|
DiningPlatesDO diningPlatesDO = diningPlatesMapper.selectOne(new LambdaQueryWrapperX<DiningPlatesDO>()
|
||||||
|
.eq(DiningPlatesDO::getDiningPlatesNum,platesNum));
|
||||||
|
//获取用户id
|
||||||
|
Long userId = diningPlatesDO.getUserId();
|
||||||
|
//获取用户名称
|
||||||
|
MemberUserDO memberUserDO = memberUserMapper.selectById(userId);
|
||||||
|
BigDecimal moneyByUserId = cardService.getMoneyByUserId(userId);
|
||||||
|
Map<String, String> map = new HashMap<>();
|
||||||
|
map.put("name",memberUserDO.getName());
|
||||||
|
map.put("money", String.valueOf(moneyByUserId));
|
||||||
|
return map;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -75,7 +75,7 @@ public class DevuceController {
|
|||||||
}
|
}
|
||||||
@GetMapping("/list")
|
@GetMapping("/list")
|
||||||
@Operation(summary = "获得绑定的菜品")
|
@Operation(summary = "获得绑定的菜品")
|
||||||
public CommonResult<DishesRespVO> getDevuceList(@RequestParam("sn")String sn) {
|
public CommonResult<DishesRespVO> getDevuceList(@RequestParam("sn")String sn){
|
||||||
DishesDO devuceList = devuceService.getDevuceList(sn);
|
DishesDO devuceList = devuceService.getDevuceList(sn);
|
||||||
return success(BeanUtils.toBean(devuceList, DishesRespVO.class));
|
return success(BeanUtils.toBean(devuceList, DishesRespVO.class));
|
||||||
}
|
}
|
||||||
|
@ -3,8 +3,8 @@ package cn.iocoder.yudao.module.system.controller.app.devuce.vo;
|
|||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
import javax.validation.constraints.NotEmpty;
|
|
||||||
import javax.validation.constraints.NotNull;
|
import javax.validation.constraints.NotNull;
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
@Schema(description = "管理后台 - 设备新增/修改 Request VO")
|
@Schema(description = "管理后台 - 设备新增/修改 Request VO")
|
||||||
@Data
|
@Data
|
||||||
@ -13,8 +13,7 @@ public class DevuceSaveReqVO {
|
|||||||
@Schema(description = "设备编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "11545")
|
@Schema(description = "设备编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "11545")
|
||||||
private Long id;
|
private Long id;
|
||||||
|
|
||||||
@Schema(description = "设备SN码", requiredMode = Schema.RequiredMode.REQUIRED)
|
|
||||||
@NotEmpty(message = "设备SN码不能为空")
|
|
||||||
private String deviceSn;
|
private String deviceSn;
|
||||||
|
|
||||||
@Schema(description = "菜品id", example = "17970")
|
@Schema(description = "菜品id", example = "17970")
|
||||||
@ -25,4 +24,13 @@ public class DevuceSaveReqVO {
|
|||||||
@NotNull(message = "是否绑定不能为空")
|
@NotNull(message = "是否绑定不能为空")
|
||||||
private Boolean bind;
|
private Boolean bind;
|
||||||
|
|
||||||
|
@Schema(description = "菜品总重量")
|
||||||
|
private BigDecimal totalWeight;
|
||||||
|
|
||||||
|
@Schema(description = "变化重量")
|
||||||
|
private BigDecimal diff;
|
||||||
|
|
||||||
|
@Schema(description = "剩余重量")
|
||||||
|
private BigDecimal remWeight;
|
||||||
|
|
||||||
}
|
}
|
@ -1,11 +1,12 @@
|
|||||||
package cn.iocoder.yudao.module.system.dal.dataobject.devuce;
|
package cn.iocoder.yudao.module.system.dal.dataobject.devuce;
|
||||||
|
|
||||||
import lombok.*;
|
|
||||||
import java.util.*;
|
|
||||||
import java.time.LocalDateTime;
|
|
||||||
import java.time.LocalDateTime;
|
|
||||||
import com.baomidou.mybatisplus.annotation.*;
|
|
||||||
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
|
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
|
||||||
|
import com.baomidou.mybatisplus.annotation.KeySequence;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import lombok.*;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 设备 DO
|
* 设备 DO
|
||||||
@ -41,5 +42,17 @@ public class DevuceDO extends BaseDO {
|
|||||||
* 是否绑定
|
* 是否绑定
|
||||||
*/
|
*/
|
||||||
private Boolean bind;
|
private Boolean bind;
|
||||||
|
/**
|
||||||
|
* 菜品总重量
|
||||||
|
*/
|
||||||
|
private BigDecimal totalWeight;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 菜品变化重量
|
||||||
|
*/
|
||||||
|
private BigDecimal diff;
|
||||||
|
/**
|
||||||
|
* 菜品剩余重量
|
||||||
|
*/
|
||||||
|
private BigDecimal remWeight;
|
||||||
}
|
}
|
@ -54,7 +54,14 @@ public interface DevuceService {
|
|||||||
* @return 设备分页
|
* @return 设备分页
|
||||||
*/
|
*/
|
||||||
PageResult<DevuceDO> getDevucePage(DevucePageReqVO pageReqVO);
|
PageResult<DevuceDO> getDevucePage(DevucePageReqVO pageReqVO);
|
||||||
|
/**
|
||||||
|
* @Description: 设备绑定菜品,或计算菜品重量与剩余重量
|
||||||
|
* @Author: qjq
|
||||||
|
* @Date: 2024/4/10 下午1:40
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
DishesDO getDevuceList(String sn);
|
DishesDO getDevuceList(String sn);
|
||||||
|
|
||||||
List<DishesDO> getDishesList(Long carteenId,Long dishecType);
|
List<DishesDO> getDishesList(Long carteenId,Long dishecType);
|
||||||
/**
|
/**
|
||||||
* @Description: 获取菜品分类
|
* @Description: 获取菜品分类
|
||||||
@ -63,4 +70,7 @@ public interface DevuceService {
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
List<DishesTypeDO> getDishesTypeList(Long carteenId);
|
List<DishesTypeDO> getDishesTypeList(Long carteenId);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
@ -1,8 +1,8 @@
|
|||||||
package cn.iocoder.yudao.module.system.service.devuce;
|
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.ObjUtil;
|
||||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
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;
|
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||||
import cn.iocoder.yudao.module.system.controller.app.devuce.vo.DevucePageReqVO;
|
import cn.iocoder.yudao.module.system.controller.app.devuce.vo.DevucePageReqVO;
|
||||||
import cn.iocoder.yudao.module.system.controller.app.devuce.vo.DevuceSaveReqVO;
|
import cn.iocoder.yudao.module.system.controller.app.devuce.vo.DevuceSaveReqVO;
|
||||||
@ -18,6 +18,7 @@ import org.springframework.stereotype.Service;
|
|||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
@ -38,10 +39,12 @@ public class DevuceServiceImpl implements DevuceService {
|
|||||||
private DishesMapper dishesMapper;
|
private DishesMapper dishesMapper;
|
||||||
@Resource
|
@Resource
|
||||||
private DishesTypeMapper dishesTypeMapper;
|
private DishesTypeMapper dishesTypeMapper;
|
||||||
|
@Resource
|
||||||
|
private HttpServletRequest httpServletRequest;
|
||||||
@Override
|
@Override
|
||||||
public Long createDevuce(DevuceSaveReqVO createReqVO) {
|
public Long createDevuce(DevuceSaveReqVO createReqVO) {
|
||||||
// 插入
|
// 插入
|
||||||
DevuceDO devuce = BeanUtils.toBean(createReqVO, DevuceDO.class);
|
DevuceDO devuce = BeanUtil.toBean(createReqVO, DevuceDO.class);
|
||||||
devuceMapper.insert(devuce);
|
devuceMapper.insert(devuce);
|
||||||
// 返回
|
// 返回
|
||||||
return devuce.getId();
|
return devuce.getId();
|
||||||
@ -51,6 +54,37 @@ public class DevuceServiceImpl implements DevuceService {
|
|||||||
@Override
|
@Override
|
||||||
public void updateDevuce(DevuceSaveReqVO updateReqVO) {
|
public void updateDevuce(DevuceSaveReqVO updateReqVO) {
|
||||||
// 校验存在
|
// 校验存在
|
||||||
|
/*if (ObjUtil.isNotEmpty(updateReqVO.getRemWeight())
|
||||||
|
|| ObjUtil.isNotEmpty(updateReqVO.getTotalWeight())
|
||||||
|
|| ObjUtil.isNotEmpty(updateReqVO.getDiff())) {
|
||||||
|
//进行计算总量数据
|
||||||
|
if (ObjUtil.isEmpty(updateReqVO.getDiff())) {
|
||||||
|
//第一次绑定
|
||||||
|
updateReqVO.setRemWeight(updateReqVO.getTotalWeight());
|
||||||
|
bind(updateReqVO);
|
||||||
|
return updateReqVO;
|
||||||
|
} else {
|
||||||
|
BigDecimal remWeight = updateReqVO.getRemWeight();
|
||||||
|
BigDecimal diff = updateReqVO.getDiff();
|
||||||
|
//下一次剩余的重量
|
||||||
|
BigDecimal subtract = remWeight.subtract(diff);
|
||||||
|
updateReqVO.setRemWeight(subtract);
|
||||||
|
bind(updateReqVO);
|
||||||
|
return updateReqVO;
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
bind(updateReqVO);
|
||||||
|
return null;
|
||||||
|
}*/
|
||||||
|
try {
|
||||||
|
String header = httpServletRequest.getHeader("Authorization");
|
||||||
|
updateReqVO.setDeviceSn(header);
|
||||||
|
bind(updateReqVO);
|
||||||
|
} catch (Exception e) {
|
||||||
|
throw exception(2000_10_001,"无法获取设备编码");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public void bind(DevuceSaveReqVO updateReqVO){
|
||||||
if (devuceMapper.selectOne(new LambdaQueryWrapperX<DevuceDO>()
|
if (devuceMapper.selectOne(new LambdaQueryWrapperX<DevuceDO>()
|
||||||
.eqIfPresent(DevuceDO::getDeviceSn,updateReqVO.getDeviceSn())) == null) {
|
.eqIfPresent(DevuceDO::getDeviceSn,updateReqVO.getDeviceSn())) == null) {
|
||||||
createDevuce(updateReqVO);
|
createDevuce(updateReqVO);
|
||||||
@ -64,7 +98,6 @@ public class DevuceServiceImpl implements DevuceService {
|
|||||||
createDevuce(updateReqVO);
|
createDevuce(updateReqVO);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void deleteDevuce(Long id) {
|
public void deleteDevuce(Long id) {
|
||||||
// 校验存在
|
// 校验存在
|
||||||
@ -134,4 +167,6 @@ public class DevuceServiceImpl implements DevuceService {
|
|||||||
public List<DishesTypeDO> getDishesTypeList(Long carteenId) {
|
public List<DishesTypeDO> getDishesTypeList(Long carteenId) {
|
||||||
return dishesTypeMapper.selectList(new LambdaQueryWrapperX<DishesTypeDO>().eq(DishesTypeDO::getCarteenId,carteenId));
|
return dishesTypeMapper.selectList(new LambdaQueryWrapperX<DishesTypeDO>().eq(DishesTypeDO::getCarteenId,carteenId));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
Reference in New Issue
Block a user