From 71d53994a877e68173340d6529628a2baf41142a Mon Sep 17 00:00:00 2001
From: longz <longzhaoz@qq.com>
Date: 星期一, 03 八月 2026 16:08:44 +0800
Subject: [PATCH] fix: correct franchisee user tag statistics
---
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java | 46 ++++++++++++++++++++++++++++++++++++++++------
1 files changed, 40 insertions(+), 6 deletions(-)
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java
index d1b2ecf..24aa7ba 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java
@@ -15,8 +15,10 @@
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.ruoyi.account.api.feignClient.AppUserCarClient;
import com.ruoyi.account.api.feignClient.AppUserClient;
+import com.ruoyi.account.api.feignClient.AppUserTagClient;
import com.ruoyi.account.api.model.TAppUser;
import com.ruoyi.account.api.model.TAppUserCar;
+import com.ruoyi.account.api.model.TAppUserTag;
import com.ruoyi.chargingPile.api.domain.SiteMenu;
import com.ruoyi.chargingPile.api.dto.GetSiteListDTO;
import com.ruoyi.chargingPile.api.feignClient.*;
@@ -71,10 +73,12 @@
import com.ruoyi.order.vo.WatchChargingOrderVo;
import com.ruoyi.other.api.feignClient.RoleSiteClient;
import com.ruoyi.other.api.feignClient.UserSiteClient;
+import com.ruoyi.other.api.feignClient.UserTagClient;
import com.ruoyi.other.api.feignClient.VipClient;
import com.ruoyi.other.api.feignClient.OtherClient;
import com.ruoyi.other.api.domain.TCompany;
import com.ruoyi.other.api.domain.TVip;
+import com.ruoyi.other.api.domain.TUserTag;
import com.ruoyi.payment.api.feignClient.AliPaymentClient;
import com.ruoyi.payment.api.feignClient.WxPaymentClient;
import com.ruoyi.payment.api.vo.IcbcPaymentResp;
@@ -161,6 +165,10 @@
private ChargingGunClient chargingGunClient;
@Resource
private AppUserCarClient appUserCarClient;
+ @Resource
+ private AppUserTagClient appUserTagClient;
+ @Resource
+ private UserTagClient userTagClient;
@Resource
private TChargingOrderAccountingStrategyService chargingOrderAccountingStrategyService;
@@ -356,12 +364,38 @@
}
private List<Map<String, Object>> franchiseeUserTags(List<TChargingOrder> orders) {
- Map<Long, Long> counts = orders.stream().filter(order -> order.getAppUserId() != null)
- .collect(Collectors.groupingBy(TChargingOrder::getAppUserId, Collectors.counting()));
- long active = counts.values().stream().filter(count -> count >= 5).count();
- long normal = counts.values().stream().filter(count -> count >= 2 && count < 5).count();
- long lowFrequency = counts.values().stream().filter(count -> count == 1).count();
- return namedCounts(new String[]{"活跃用户", "普通用户", "低频用户"}, new long[]{active, normal, lowFrequency});
+ Set<Long> userIds = orders.stream()
+ .map(TChargingOrder::getAppUserId)
+ .filter(Objects::nonNull)
+ .collect(Collectors.toSet());
+ if (userIds.isEmpty()) {
+ return Collections.emptyList();
+ }
+ R<List<TUserTag>> tagResult = userTagClient.getAllUserTag();
+ List<TUserTag> tags = tagResult == null || tagResult.getData() == null
+ ? Collections.emptyList() : tagResult.getData();
+ Map<String, Long> counts = new LinkedHashMap<>();
+ for (TUserTag tag : tags) {
+ if (tag == null || tag.getId() == null || StringUtils.isBlank(tag.getName())) {
+ continue;
+ }
+ long count = 0;
+ for (Long userId : userIds) {
+ TAppUserTag query = new TAppUserTag();
+ query.setAppUserId(userId);
+ query.setUserTagId(tag.getId());
+ R<TAppUserTag> userTagResult = appUserTagClient.getUserTag(query);
+ if (userTagResult != null && userTagResult.getData() != null) {
+ count++;
+ }
+ }
+ if (count > 0) {
+ counts.put(tag.getName(), count);
+ }
+ }
+ return counts.entrySet().stream()
+ .map(entry -> namedCount(entry.getKey(), entry.getValue()))
+ .collect(Collectors.toList());
}
private List<Map<String, Object>> franchiseeMemberTypes(List<TAppUser> users, Map<Integer, String> vipNames) {
--
Gitblit v1.7.1