Merge branch 'feature/REQ-3832' into 'master'

Feature/req 3832

See merge request universal/infrastructure/backend/msg-center-plat!369
This commit is contained in:
谭杰 2025-04-02 07:54:23 +00:00
commit 5527bdc696
7 changed files with 93 additions and 30 deletions

View File

@ -174,7 +174,7 @@
</dependency> </dependency>
<dependency> <dependency>
<groupId>cn.axzo.meepo</groupId> <groupId>cn.axzo.meepo</groupId>
<artifactId>meepo-api</artifactId> <artifactId>meepo-api-definition</artifactId>
</dependency> </dependency>
<dependency> <dependency>
<groupId>cn.axzo.basics</groupId> <groupId>cn.axzo.basics</groupId>

View File

@ -0,0 +1,12 @@
package cn.axzo.msg.center.message.service.gateway;
import cn.axzo.meepo.api.definition.bankcard.query.dto.response.WorkerBankCardApiRes;
import java.util.List;
public interface BackCardApiGateway {
List<WorkerBankCardApiRes> getPersonBackCard(List<Long> personIds);
}

View File

@ -0,0 +1,49 @@
package cn.axzo.msg.center.message.service.gateway.impl;
import cn.axzo.framework.domain.web.result.ApiResult;
import cn.axzo.meepo.api.definition.bankcard.query.BankCardApi;
import cn.axzo.meepo.api.definition.bankcard.query.dto.response.WorkerBankCardApiRes;
import cn.axzo.msg.center.common.utils.BizAssertions;
import cn.axzo.msg.center.message.service.gateway.BackCardApiGateway;
import cn.azxo.framework.common.logger.MethodAroundLog;
import cn.azxo.framework.common.utils.LogUtil;
import cn.hutool.json.JSONUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Component;
import java.util.Collections;
import java.util.List;
import java.util.Objects;
/**
* @ClassName BackCardApiGateway
* @Author zhangRan
* @Date 2023/6/25 10:58
* @Description 银行卡
**/
@Component
@Slf4j
public class BackCardApiGatewayImpl implements BackCardApiGateway {
@Autowired
private BankCardApi bankCardApi;
@MethodAroundLog(source = "msg-center", target = "meepo", value = "用户银行卡列表")
public List<WorkerBankCardApiRes> getPersonBackCard(List<Long> personIds) {
log.info("用户银行卡列表 用户id = {}", JSONUtil.toJsonStr(personIds));
List<WorkerBankCardApiRes> result = Collections.emptyList();
try {
ApiResult<List<WorkerBankCardApiRes>> response = bankCardApi.batchGetBankCardByPersonId(personIds);
log.info("用户银行卡列表 personIds={}, result={}", JSONUtil.toJsonStr(personIds), JSONUtil.toJsonStr(response));
return BizAssertions.assertResponse(response);
} catch (Exception ex) {
log.error("请求 meepo【用户银行卡列表】 发生异常", ex);
}
return result;
}
}

View File

@ -1,20 +1,12 @@
package cn.axzo.msg.center.message.service.impl.v3; package cn.axzo.msg.center.message.service.impl.v3;
import cn.axzo.basics.profiles.api.UserProfileServiceApi; import cn.axzo.basics.profiles.api.UserProfileServiceApi;
import cn.axzo.basics.profiles.dto.basic.AbstractIdentityProfileDto; import cn.axzo.basics.profiles.dto.basic.*;
import cn.axzo.basics.profiles.dto.basic.BasicDto; import cn.axzo.meepo.api.definition.bankcard.query.dto.response.WorkerBankCardApiRes;
import cn.axzo.basics.profiles.dto.basic.PersonProfileDto;
import cn.axzo.basics.profiles.dto.basic.ProfessionTagDto;
import cn.axzo.basics.profiles.dto.basic.WorkerProfileDto;
import cn.axzo.meepo.api.BankCardApi;
import cn.axzo.meepo.api.dto.response.WorkerBankCardRes;
import cn.axzo.msg.center.common.utils.BizAssertions; import cn.axzo.msg.center.common.utils.BizAssertions;
import cn.axzo.msg.center.message.service.gateway.BackCardApiGateway;
import cn.axzo.msg.center.service.enums.KVContentType; import cn.axzo.msg.center.service.enums.KVContentType;
import cn.axzo.msg.center.service.pending.response.v3.model.ComponentWorkerGroup; import cn.axzo.msg.center.service.pending.response.v3.model.*;
import cn.axzo.msg.center.service.pending.response.v3.model.ParsedKV;
import cn.axzo.msg.center.service.pending.response.v3.model.ParsedModelV3;
import cn.axzo.msg.center.service.pending.response.v3.model.PersonInfo;
import cn.axzo.msg.center.service.pending.response.v3.model.WorkerInfo;
import cn.axzo.trade.datasecurity.core.util.DataSecurityHelper; import cn.axzo.trade.datasecurity.core.util.DataSecurityHelper;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@ -22,17 +14,10 @@ import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.util.ArrayList; import java.util.*;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import static java.util.function.Function.identity; import static java.util.function.Function.identity;
import static java.util.stream.Collectors.groupingBy; import static java.util.stream.Collectors.*;
import static java.util.stream.Collectors.joining;
import static java.util.stream.Collectors.toList;
import static java.util.stream.Collectors.toMap;
/** /**
* @author yanglin * @author yanglin
@ -43,7 +28,8 @@ import static java.util.stream.Collectors.toMap;
public class V3ExtPopulator { public class V3ExtPopulator {
private final UserProfileServiceApi userProfileServiceApi; private final UserProfileServiceApi userProfileServiceApi;
private final BankCardApi bankCardApi;
private final BackCardApiGateway backCardApiGateway;
public void populate(ParsedModelV3... models) { public void populate(ParsedModelV3... models) {
ArrayList<ParsedKV> personKeyValues = new ArrayList<>(); ArrayList<ParsedKV> personKeyValues = new ArrayList<>();
@ -106,12 +92,16 @@ public class V3ExtPopulator {
.map(BasicDto::getId) .map(BasicDto::getId)
.distinct() .distinct()
.collect(toList()); .collect(toList());
List<WorkerBankCardRes> bankCardRes = null; List<WorkerBankCardApiRes> bankCardRes = null;
if (CollectionUtils.isNotEmpty(personIds)) if (CollectionUtils.isNotEmpty(personIds)){
bankCardRes = BizAssertions.assertResponse(bankCardApi.batchGetBankByAxzoUserId(personIds)); bankCardRes = backCardApiGateway.getPersonBackCard(personIds);
Map<Long, List<WorkerBankCardRes>> personId2BankCard = bankCardRes == null // bankCardRes = BizAssertions.assertResponse(bankCardApi.batchGetBankCardByPersonId(personIds));
}
Map<Long, List<WorkerBankCardApiRes>> personId2BankCard = bankCardRes == null
? Collections.emptyMap() ? Collections.emptyMap()
: bankCardRes.stream().collect(groupingBy(WorkerBankCardRes::getPersonId)); : bankCardRes.stream().collect(groupingBy(WorkerBankCardApiRes::getPersonId));
for (ComponentWorkerGroup workerGroup : groups) { for (ComponentWorkerGroup workerGroup : groups) {
WorkerProfileDto worker = workerIdentityId2WorkerProfile.get(workerGroup.getWorkerIdentityId()); WorkerProfileDto worker = workerIdentityId2WorkerProfile.get(workerGroup.getWorkerIdentityId());
if (worker == null) { if (worker == null) {
@ -130,7 +120,7 @@ public class V3ExtPopulator {
workerInfo.setIdNumber(person.getIdNumber()); workerInfo.setIdNumber(person.getIdNumber());
workerInfo.setIdNumberCiphertext(DataSecurityHelper.encrypt(person.getIdNumber())); workerInfo.setIdNumberCiphertext(DataSecurityHelper.encrypt(person.getIdNumber()));
workerInfo.setIdentityValid(isWorkerIdentityValid(worker)); workerInfo.setIdentityValid(isWorkerIdentityValid(worker));
List<WorkerBankCardRes> bankCards = personId2BankCard.get(worker.getPersonProfile().getId()); List<WorkerBankCardApiRes> bankCards = personId2BankCard.get(worker.getPersonProfile().getId());
workerInfo.setCardValid(CollectionUtils.isNotEmpty(bankCards) workerInfo.setCardValid(CollectionUtils.isNotEmpty(bankCards)
&& StringUtils.isNotBlank(bankCards.get(0).getBankCardNo())); && StringUtils.isNotBlank(bankCards.get(0).getBankCardNo()));
workerInfo.setProfessionNames(worker.getProfessionTags().stream() workerInfo.setProfessionNames(worker.getProfessionTags().stream()

View File

@ -112,6 +112,12 @@
<artifactId>workflow-engine-spring-boot-starter</artifactId> <artifactId>workflow-engine-spring-boot-starter</artifactId>
<version>${workflow.version}</version> <version>${workflow.version}</version>
</dependency> </dependency>
<dependency>
<groupId>cn.axzo.meepo</groupId>
<artifactId>meepo-api-definition</artifactId>
<version>2.0.0-SNAPSHOT</version>
</dependency>
</dependencies> </dependencies>
</dependencyManagement> </dependencyManagement>

View File

@ -83,6 +83,12 @@
<groupId>io.github.openfeign</groupId> <groupId>io.github.openfeign</groupId>
<artifactId>feign-httpclient</artifactId> <artifactId>feign-httpclient</artifactId>
</dependency> </dependency>
<dependency>
<groupId>cn.axzo.meepo</groupId>
<artifactId>meepo-api-definition</artifactId>
</dependency>
</dependencies> </dependencies>
<build> <build>

View File

@ -26,7 +26,7 @@ import org.springframework.core.env.Environment;
"cn.axzo.basics.profiles.api", "cn.axzo.basics.profiles.api",
"cn.axzo.apollo.api", "cn.axzo.apollo.api",
"cn.axzo.msg.center.inside.notices.service.impl", "cn.axzo.msg.center.inside.notices.service.impl",
"cn.axzo.meepo.api", "cn.axzo.meepo.api.definition.bankcard.query",
"cn.axzo.riven.client.feign", "cn.axzo.riven.client.feign",
"cn.axzo.epic.client.feign", "cn.axzo.epic.client.feign",
"cn.axzo.orggateway.api.orgteamourelation" "cn.axzo.orggateway.api.orgteamourelation"