diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/user/MemberUserController.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/user/MemberUserController.java index 20ee101d..b94989c9 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/user/MemberUserController.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/user/MemberUserController.java @@ -117,9 +117,10 @@ public class MemberUserController { @GetMapping("/heat") @Operation(summary = "获得会员热量分析") @PreAuthorize("@ss.hasPermission('member:user:query')") - public CommonResult> getUserHeat(@RequestParam("userId") Long userId, - @RequestParam(value = "days")Integer days){ - return success(memberUserService.getUserHeat(userId,days)); + public CommonResult> 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)); } } diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/user/MemberUserService.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/user/MemberUserService.java index f5b195f8..875ec2d3 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/user/MemberUserService.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/user/MemberUserService.java @@ -208,7 +208,7 @@ public interface MemberUserService { */ List NutritionWeek(String start, String end); - List getUserHeat(Long userId,Integer days); + List getUserHeat(Long userId,Integer days,Long orderId); } diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/user/MemberUserServiceImpl.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/user/MemberUserServiceImpl.java index c63d3544..aae5c005 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/user/MemberUserServiceImpl.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/user/MemberUserServiceImpl.java @@ -544,28 +544,37 @@ public class MemberUserServiceImpl implements MemberUserService { } @Override - public List getUserHeat(Long userId, Integer days) { + public List 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 suggestion(Long userId,LocalDateTime startDate,LocalDateTime endDate,Boolean bol) { + public List suggestion(Long userId,LocalDateTime startDate,LocalDateTime endDate,Boolean bol,Long orderId) { //查询今天的订单 - List collect = dishOrderMapper.selectList(new LambdaQueryWrapperX() - .eqIfPresent(DishOrderDO::getUserId, userId) - .eq(DishOrderDO::getOrderStatus, DishOrderDO.COMPLETE) - .betweenIfPresent(DishOrderDO::getCreateTime, startDate, endDate)) - .stream() - .map(DishOrderDO::getId) - .collect(Collectors.toList()); + List collect= new ArrayList<>(); + if(ObjectUtil.isNotEmpty(orderId)){ + collect= Collections.singletonList(orderId); + } + if(ObjectUtil.isNotEmpty(userId)){ + collect = dishOrderMapper.selectList(new LambdaQueryWrapperX() + .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(); }