|
|
@@ -31,6 +31,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
|
|
|
|
|
|
private final UserTagService userTagService;
|
|
|
private final AccountService accountService;
|
|
|
+ private final com.haha.mapper.OrderMapper orderMapper;
|
|
|
|
|
|
@Override
|
|
|
public User getUserByOpenId(String openId) {
|
|
|
@@ -114,7 +115,23 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
|
|
|
.collect(Collectors.toList());
|
|
|
Map<Long, UserTag> userTagMap = userTagService.batchComputeUserTags(userIds);
|
|
|
|
|
|
- // 2. 逐条填充标签
|
|
|
+ // 2. 批量查询订单统计
|
|
|
+ Map<Long, Long> orderCountMap = orderMapper.batchCountAllOrdersByUserIds(userIds)
|
|
|
+ .stream()
|
|
|
+ .collect(Collectors.toMap(
|
|
|
+ m -> ((Number) m.get("user_id")).longValue(),
|
|
|
+ m -> ((Number) m.get("order_count")).longValue(),
|
|
|
+ (a, b) -> a
|
|
|
+ ));
|
|
|
+ Map<Long, BigDecimal> spentMap = orderMapper.batchSumPaidAmountByUserIds(userIds)
|
|
|
+ .stream()
|
|
|
+ .collect(Collectors.toMap(
|
|
|
+ m -> ((Number) m.get("user_id")).longValue(),
|
|
|
+ m -> (BigDecimal) m.get("total_spent"),
|
|
|
+ (a, b) -> a
|
|
|
+ ));
|
|
|
+
|
|
|
+ // 3. 逐条填充标签
|
|
|
for (User user : users) {
|
|
|
// 用户消费标签
|
|
|
UserTag tag = userTagMap.get(user.getId());
|
|
|
@@ -136,6 +153,10 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
|
|
|
user.setStatusColor("info");
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ // 订单统计
|
|
|
+ user.setTotalOrders(orderCountMap.getOrDefault(user.getId(), 0L));
|
|
|
+ user.setTotalSpent(spentMap.getOrDefault(user.getId(), BigDecimal.ZERO));
|
|
|
}
|
|
|
}
|
|
|
}
|