From b92a2bf0fdb56b51066c2d484f8880d1b05941de Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期六, 18 四月 2026 17:33:04 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/1.0' into 1.0
---
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/impl/XpWhitelistServiceImpl.java | 51 +++++++++++++++++++++++++++++++++++++++------------
1 files changed, 39 insertions(+), 12 deletions(-)
diff --git a/xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/impl/XpWhitelistServiceImpl.java b/xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/impl/XpWhitelistServiceImpl.java
index def55b3..00c88c5 100644
--- a/xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/impl/XpWhitelistServiceImpl.java
+++ b/xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/impl/XpWhitelistServiceImpl.java
@@ -2,6 +2,9 @@
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.PhoneUtil;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.xiaopeng.api.dto.account.UcUserInfo;
+import com.xiaopeng.api.feignClient.account.UserResourcesClient;
import com.xiaopeng.api.model.account.SysUser;
import com.xiaopeng.api.model.operation.XpWhitelist;
import com.xiaopeng.api.model.operation.XpWhitelistOperlog;
@@ -15,7 +18,6 @@
import com.xiaopeng.operation.mapper.XpWhitelistOperlogMapper;
import com.xiaopeng.operation.query.WhitelistPageListQuery;
import com.xiaopeng.operation.service.IXpWhitelistService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.apache.shardingsphere.transaction.annotation.ShardingSphereTransactionType;
import org.apache.shardingsphere.transaction.core.TransactionType;
import org.springframework.beans.factory.annotation.Autowired;
@@ -24,15 +26,7 @@
import org.springframework.util.StringUtils;
import java.time.LocalDate;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Comparator;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.LinkedHashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
+import java.util.*;
import java.util.stream.Collectors;
/**
@@ -48,6 +42,10 @@
@Autowired
private XpWhitelistOperlogMapper xpWhitelistOperlogMapper;
+ @Autowired
+ private UserResourcesClient userResourcesClient;
+
+
@Override
public PageInfo<XpWhitelist> pageList(WhitelistPageListQuery query) {
PageInfo<XpWhitelist> pageInfo = new PageInfo<>(query.getPageNum(),query.getPageSize());
@@ -60,6 +58,15 @@
public List<XpWhitelist> exportList(WhitelistPageListQuery query) {
List<XpWhitelist> list = this.baseMapper.exportList(query);
return list;
+ }
+
+ //根据用户账号 通过接口获取用户id
+ public UcUserInfo getUserByAccount (String account){
+ UcUserInfo userByMobile = userResourcesClient.getUserByMobile(account);
+ if(userByMobile == null){
+ throw new ServiceException(account+"未获取到用户信息");
+ }
+ return userByMobile;
}
@Override
@@ -83,6 +90,7 @@
Map<String, Long> reasonCountMap = new HashMap<>();
Map<String, LinkedHashSet<String>> reasonSampleMap = new HashMap<>();
+ Map<String, UcUserInfo> userMap = new HashMap<>();
Set<String> seenAccounts = new HashSet<>();
List<String> candidates = new ArrayList<>();
for (String account : accounts) {
@@ -94,7 +102,12 @@
recordFail(reasonCountMap, reasonSampleMap, "文件内重复", account, sampleLimitPerReason);
continue;
}
- candidates.add(account);
+ //根据用户账号 通过接口获取用户id
+ UcUserInfo userByAccount = this.getUserByAccount(account);
+ if(userByAccount != null){
+ candidates.add(account);
+ userMap.put(account, userByAccount);
+ }
}
if (CollUtil.isEmpty(candidates)) {
return R.fail("所有帐号添加失败,请检查帐号格式或唯一性");
@@ -120,6 +133,8 @@
}
XpWhitelist xpWhitelist = new XpWhitelist();
xpWhitelist.setAccount(account);
+ xpWhitelist.setNickName(userMap.get(account).getNickName());
+ xpWhitelist.setAppUserId(userMap.get(account).getUid());
xpWhitelist.setStatus(true);
xpWhitelist.setIsPriorityDispatch(dto.getIsPriorityDispatch());
xpWhitelist.setWhitelistSource(1);
@@ -240,6 +255,7 @@
if (!PhoneUtil.isMobile(dto.getAccount())) {
throw new ServiceException("以下帐号格式不正确:", I18nKeyConstant.ACCOUNT_FORMAT_ERROR, new Object[]{dto.getAccount()});
}
+ UcUserInfo userByAccount = this.getUserByAccount(dto.getAccount());
XpWhitelist old = this.lambdaQuery()
.eq(XpWhitelist::getAccount, dto.getAccount())
.ne(XpWhitelist::getId, dto.getId())
@@ -249,13 +265,15 @@
}
XpWhitelist whitelist = this.getById(dto.getId());
+ whitelist.setAppUserId(userByAccount.getUid());
+
StringBuilder operationContent = new StringBuilder("编辑账号:");
StringBuilder accountBuilder = new StringBuilder();
if (!whitelist.getAccount().equals(dto.getAccount())) {
accountBuilder.append("白名单账号" + "\"" + whitelist.getAccount() + "\"" + "为" + "\"" + dto.getAccount() + "\"");
}
if (StringUtils.hasLength(whitelist.getNickName()) || StringUtils.hasLength(dto.getNickName())) {
- if (!StringUtils.hasLength(whitelist.getNickName())) {
+ if (StringUtils.hasLength(whitelist.getNickName())) {
if (!whitelist.getNickName().equals(dto.getNickName())) {
accountBuilder.append("用户名称" + "\"" + whitelist.getNickName() + "\"" + "为" + "\"" + dto.getNickName() + "\"");
}
@@ -271,6 +289,15 @@
if (whitelist.getIsPriorityDispatch() != dto.getIsPriorityDispatch()) {
accountBuilder.append("优先派单" + "\"" + (whitelist.getIsPriorityDispatch() ? "是" : "否") + "\"" + "为" + "\"" + (dto.getIsPriorityDispatch() ? "是" : "否") + "\"");
}
+ if ( !dto.getMaxOrderNum().equals(whitelist.getMaxOrderNum()) ) {
+ accountBuilder.append("最大下单数量" + "\"" + whitelist.getMaxOrderNum() + "\"" + "为" + "\"" + dto.getMaxOrderNum() + "\"");
+ whitelist.setMaxOrderNum(dto.getMaxOrderNum());
+ }
+ if (!whitelist.getExpireTime().isEqual(dto.getExpireTime())) {
+ accountBuilder.append("有限期" + "\"" + whitelist.getExpireTime() + "\"" + "为" + "\"" + dto.getExpireTime() + "\"");
+ whitelist.setExpireTime(dto.getExpireTime());
+ }
+
XpWhitelistOperlog xpWhitelistOperlog = new XpWhitelistOperlog();
xpWhitelistOperlog.setOperationName(sysUser.getNickName());
xpWhitelistOperlog.setOperationAccount(sysUser.getPhoneNumber());
--
Gitblit v1.7.1