营养分析与热量占比分析

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")
@Operation(summary = "获得会员热量分析")
@PreAuthorize("@ss.hasPermission('member:user:query')")
public CommonResult<List<Map>> getUserHeat(@RequestParam("userId") Long userId,
@RequestParam(value = "days")Integer days){
return success(memberUserService.getUserHeat(userId,days));
public CommonResult<List<Map>> getUserHeat(@RequestParam(value = "userId",required = false) Long userId,
@RequestParam(value = "days",required = false)Integer 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<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
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){
LocalDateTime endDate = LocalDateTimeUtil.now();
LocalDateTime offset = LocalDateTimeUtil.offset(endDate, -7, ChronoUnit.DAYS);
LocalDateTime startDate = LocalDateTimeUtil.beginOfDay(offset);
return suggestion(userId,startDate,endDate,Boolean.TRUE);
return suggestion(userId,startDate,endDate,Boolean.TRUE,null);
}else{
LocalDateTime endDate = LocalDateTimeUtil.now();
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>()
.eqIfPresent(DishOrderDO::getUserId, userId)
.eq(DishOrderDO::getOrderStatus, DishOrderDO.COMPLETE)
.betweenIfPresent(DishOrderDO::getCreateTime, startDate, endDate))
.stream()
.map(DishOrderDO::getId)
.collect(Collectors.toList());
List<Long> collect= new ArrayList<>();
if(ObjectUtil.isNotEmpty(orderId)){
collect= Collections.singletonList(orderId);
}
if(ObjectUtil.isNotEmpty(userId)){
collect = dishOrderMapper.selectList(new LambdaQueryWrapperX<DishOrderDO>()
.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)){
return Collections.emptyList();
}