营养分析与热量占比分析

This commit is contained in:
qjq
2024-04-03 10:40:13 +08:00
parent 110835bbd8
commit 4150f70b74
3 changed files with 25 additions and 15 deletions

View File

@ -117,9 +117,10 @@ public class MemberUserController {
@GetMapping("/heat") @GetMapping("/heat")
@Operation(summary = "获得会员热量分析") @Operation(summary = "获得会员热量分析")
@PreAuthorize("@ss.hasPermission('member:user:query')") @PreAuthorize("@ss.hasPermission('member:user:query')")
public CommonResult<List<Map>> getUserHeat(@RequestParam("userId") Long userId, public CommonResult<List<Map>> getUserHeat(@RequestParam(value = "userId",required = false) Long userId,
@RequestParam(value = "days")Integer days){ @RequestParam(value = "days",required = false)Integer days,
return success(memberUserService.getUserHeat(userId,days)); @RequestParam(value = "orderId",required = false)Long orderId){
return success(memberUserService.getUserHeat(userId,days,orderId));
} }
} }

View File

@ -208,7 +208,7 @@ public interface MemberUserService {
*/ */
List<AppNutritionWeekVO> NutritionWeek(String start, String end); List<AppNutritionWeekVO> NutritionWeek(String start, String end);
List<Map> getUserHeat(Long userId,Integer days); List<Map> getUserHeat(Long userId,Integer days,Long orderId);
} }

View File

@ -544,28 +544,37 @@ public class MemberUserServiceImpl implements MemberUserService {
} }
@Override @Override
public List<Map> getUserHeat(Long userId, Integer days) { public List<Map> getUserHeat(Long userId, Integer days,Long orderId) {
if(ObjectUtil.isNotEmpty(orderId)){
return suggestion(userId,null,null,Boolean.FALSE,orderId);
}
//判断是一天与一周 //判断是一天与一周
if(days==7){ if(days==7){
LocalDateTime endDate = LocalDateTimeUtil.now(); LocalDateTime endDate = LocalDateTimeUtil.now();
LocalDateTime offset = LocalDateTimeUtil.offset(endDate, -7, ChronoUnit.DAYS); LocalDateTime offset = LocalDateTimeUtil.offset(endDate, -7, ChronoUnit.DAYS);
LocalDateTime startDate = LocalDateTimeUtil.beginOfDay(offset); LocalDateTime startDate = LocalDateTimeUtil.beginOfDay(offset);
return suggestion(userId,startDate,endDate,Boolean.TRUE); return suggestion(userId,startDate,endDate,Boolean.TRUE,null);
}else{ }else{
LocalDateTime endDate = LocalDateTimeUtil.now(); LocalDateTime endDate = LocalDateTimeUtil.now();
LocalDateTime startDate = LocalDateTimeUtil.beginOfDay(endDate); LocalDateTime startDate = LocalDateTimeUtil.beginOfDay(endDate);
return suggestion(userId,startDate,endDate,Boolean.FALSE); return suggestion(userId,startDate,endDate,Boolean.FALSE,null);
} }
} }
public List<Map> suggestion(Long userId,LocalDateTime startDate,LocalDateTime endDate,Boolean bol) { public List<Map> suggestion(Long userId,LocalDateTime startDate,LocalDateTime endDate,Boolean bol,Long orderId) {
//查询今天的订单 //查询今天的订单
List<Long> collect = dishOrderMapper.selectList(new LambdaQueryWrapperX<DishOrderDO>() List<Long> collect= new ArrayList<>();
.eqIfPresent(DishOrderDO::getUserId, userId) if(ObjectUtil.isNotEmpty(orderId)){
.eq(DishOrderDO::getOrderStatus, DishOrderDO.COMPLETE) collect= Collections.singletonList(orderId);
.betweenIfPresent(DishOrderDO::getCreateTime, startDate, endDate)) }
.stream() if(ObjectUtil.isNotEmpty(userId)){
.map(DishOrderDO::getId) collect = dishOrderMapper.selectList(new LambdaQueryWrapperX<DishOrderDO>()
.collect(Collectors.toList()); .eqIfPresent(DishOrderDO::getUserId, userId)
.eq(DishOrderDO::getOrderStatus, DishOrderDO.COMPLETE)
.betweenIfPresent(DishOrderDO::getCreateTime, startDate, endDate))
.stream()
.map(DishOrderDO::getId)
.collect(Collectors.toList());
}
if(ObjectUtil.isEmpty(collect)){ if(ObjectUtil.isEmpty(collect)){
return Collections.emptyList(); return Collections.emptyList();
} }