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

View File

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

View File

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

View File

@ -26,7 +26,7 @@ import org.springframework.core.env.Environment;
"cn.axzo.basics.profiles.api",
"cn.axzo.apollo.api",
"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.epic.client.feign",
"cn.axzo.orggateway.api.orgteamourelation"