菜品绑定修改
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.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.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.controller.app.user.vo.*;
|
||||
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.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.user.MemberUserService;
|
||||
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.tags.Tag;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
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 org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.validation.Valid;
|
||||
@ -136,12 +124,20 @@ public class AppMemberUserController {
|
||||
@RequestParam(value = "orderId",required = false)Long 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")
|
||||
@Operation(summary = "绑脸")
|
||||
public CommonResult<Boolean> bindFace(Long userId,Long 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.AppWeekVO;
|
||||
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 java.time.LocalDateTime;
|
||||
@ -214,10 +215,16 @@ public interface MemberUserService {
|
||||
AppWeekVO NutritionWeek(String start, String end);
|
||||
|
||||
List<Map> getUserHeat(Long userId, LocalDateTime startDate,LocalDateTime endDate, Long orderId);
|
||||
|
||||
List<DishesNutritionRespDTO> getHeatDishes(Long dishesId);
|
||||
/**
|
||||
* 用户绑定人脸
|
||||
*/
|
||||
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.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.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.AppNutritionWeekVO;
|
||||
import cn.iocoder.yudao.module.member.controller.app.user.vo.AppWeekVO;
|
||||
import cn.iocoder.yudao.module.member.controller.app.user.vo.*;
|
||||
import cn.iocoder.yudao.module.member.convert.auth.AuthConvert;
|
||||
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.orderdetail.OrderDetailDO;
|
||||
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.diningplates.DiningPlatesMapper;
|
||||
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.user.MemberUserMapper;
|
||||
import cn.iocoder.yudao.module.member.enums.TimePeriodEnum;
|
||||
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.orderdetail.OrderDetailService;
|
||||
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.validation.Valid;
|
||||
import java.math.BigDecimal;
|
||||
import java.math.RoundingMode;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.time.temporal.WeekFields;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||
@ -88,10 +80,12 @@ public class MemberUserServiceImpl implements MemberUserService {
|
||||
private OrderDetailMapper orderDetailMapper;
|
||||
@Resource
|
||||
private DishesNutritionApi dishesNutritionApil;
|
||||
|
||||
@Resource
|
||||
private DiningPlatesMapper diningPlatesMapper;
|
||||
@Resource
|
||||
private MemberUserMapper memberUserMapper;
|
||||
|
||||
@Resource
|
||||
private CardService cardService;
|
||||
@Resource
|
||||
private SmsCodeApi smsCodeApi;
|
||||
|
||||
@ -488,6 +482,13 @@ public class MemberUserServiceImpl implements MemberUserService {
|
||||
return appWeekVO;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<DishesNutritionRespDTO> getHeatDishes(Long dishesId) {
|
||||
List<DishesNutritionRespDTO> dishesList = dishesNutritionApil.getDishesList(dishesId);
|
||||
this.computePercentage(dishesList);
|
||||
return dishesList;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Map> getUserHeat(Long userId, LocalDateTime startDate,LocalDateTime endDate,Long orderId) {
|
||||
if(ObjectUtil.isNotEmpty(orderId)){
|
||||
@ -541,8 +542,16 @@ public class MemberUserServiceImpl implements MemberUserService {
|
||||
.map(x -> new BigDecimal(x.getNutritionNumber()))
|
||||
// 使用reduce聚合函数,实现累加器
|
||||
.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.setNutritionNumber(sum1.toString());
|
||||
dto.setNutritionNumber(bigDecimal.toString());
|
||||
list.add(dto);
|
||||
}
|
||||
this.computePercentage(list);
|
||||
@ -594,4 +603,27 @@ public class MemberUserServiceImpl implements MemberUserService {
|
||||
memberUserDO.setFaceId(faceId);
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user