From 193f08a3a815ed0cf4567bdbc38ba317dd9ec57c Mon Sep 17 00:00:00 2001
From: shinnosuke <tantao@1hoper.com>
Date: 星期一, 13 七月 2026 17:14:05 +0800
Subject: [PATCH] feat(charging): 实现扫码充电V2.0预约功能和VIN校验

---
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java |   55 +++++++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 45 insertions(+), 10 deletions(-)

diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java
index 0809eaa..6274d4b 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java
@@ -17,6 +17,8 @@
 import com.ruoyi.account.util.*;
 import com.ruoyi.account.util.carBrand.CarBrandUtil;
 import com.ruoyi.account.wx.model.WeixinProperties;
+import com.ruoyi.chargingPile.api.feignClient.PartnerClient;
+import com.ruoyi.chargingPile.api.model.Partner;
 import com.ruoyi.common.core.constant.Constants;
 import com.ruoyi.common.core.constant.MsgConstants;
 import com.ruoyi.common.core.domain.R;
@@ -153,6 +155,8 @@
     private GiveVipUtil giveVipUtil;
     @Resource
     private TAppUserWhitelistService appUserWhitelistService;
+    @Resource
+    private PartnerClient partnerClient;
 
     @Autowired
     private RedissonClient redissonClient;
@@ -921,16 +925,35 @@
         appUserInfoDto.setFirstAdd(byId.getFirstAdd()!=null?byId.getFirstAdd():0);
         appUserInfoDto.setPoints(byId.getPoints()==null?0:byId.getPoints());
         appUserInfoDto.setBalance(byId.getBalance()==null?BigDecimal.ZERO:byId.getBalance());
-        TAppUserWhitelist partnerWhitelist = appUserWhitelistService.lambdaQuery()
-                .eq(TAppUserWhitelist::getAppUserId, userId)
-                .eq(TAppUserWhitelist::getScopeType, 3)
-                .eq(TAppUserWhitelist::getStatus, 1)
-                .eq(TAppUserWhitelist::getDelFlag, false)
-                .isNotNull(TAppUserWhitelist::getPartnerId)
-                .last("limit 1")
-                .one();
-        appUserInfoDto.setIsPartnerUser(partnerWhitelist == null ? 0 : 1);
-        appUserInfoDto.setPartnerId(partnerWhitelist == null ? null : partnerWhitelist.getPartnerId());
+        Partner boundPartner = null;
+        try {
+            R<Partner> partnerResult = partnerClient.getPartnerByAppUserId(userId);
+            boundPartner = partnerResult == null ? null : partnerResult.getData();
+        } catch (Exception e) {
+            log.warn("查询小程序用户绑定合作商失败,继续兼容旧白名单关系: {}", e.getMessage());
+        }
+
+        Integer partnerId = boundPartner == null ? null : boundPartner.getId();
+        String partnerName = boundPartner == null ? null : boundPartner.getName();
+        if (partnerId == null) {
+            TAppUserWhitelist partnerWhitelist = appUserWhitelistService.lambdaQuery()
+                    .eq(TAppUserWhitelist::getAppUserId, userId)
+                    .eq(TAppUserWhitelist::getScopeType, 3)
+                    .eq(TAppUserWhitelist::getStatus, 1)
+                    .eq(TAppUserWhitelist::getDelFlag, false)
+                    .isNotNull(TAppUserWhitelist::getPartnerId)
+                    .last("limit 1")
+                    .one();
+            if (partnerWhitelist != null) {
+                partnerId = partnerWhitelist.getPartnerId();
+                R<Partner> legacyPartnerResult = partnerClient.getPartnerById(partnerId);
+                Partner legacyPartner = legacyPartnerResult == null ? null : legacyPartnerResult.getData();
+                partnerName = legacyPartner == null ? null : legacyPartner.getName();
+            }
+        }
+        appUserInfoDto.setIsPartnerUser(partnerId == null ? 0 : 1);
+        appUserInfoDto.setPartnerId(partnerId);
+        appUserInfoDto.setPartnerName(partnerName);
         return R.ok(appUserInfoDto);
     }
     
@@ -1220,6 +1243,18 @@
         return R.ok(appUserService.list(Wrappers.lambdaQuery(TAppUser.class)
                 .eq(TAppUser::getPhone,phone)));
     }
+
+    @GetMapping("/user/searchPartnerBindUsers")
+    public R<Page<TAppUser>> searchPartnerBindUsers(@RequestParam(value = "phone", required = false) String phone,
+                                                     @RequestParam(defaultValue = "1") Integer pageNum,
+                                                     @RequestParam(defaultValue = "10") Integer pageSize) {
+        Page<TAppUser> page = appUserService.lambdaQuery()
+                .like(StringUtils.isNotEmpty(phone), TAppUser::getPhone, phone)
+                .orderByDesc(BasePojo::getCreateTime)
+                .page(Page.of(pageNum, pageSize));
+        page.getRecords().forEach(user -> user.setUid(user.getId().toString()));
+        return R.ok(page);
+    }
     
     @Log(title = "【我的】签到", businessType = BusinessType.INSERT,operatorType = OperatorType.MOBILE)
     @ApiOperation(value = "签到", tags = {"小程序-个人中心-签到"})

--
Gitblit v1.7.1