diff --git a/inside-notices/src/main/java/cn/axzo/msg/center/message/service/impl/v3/ModelV3ExtPopulator.java b/inside-notices/src/main/java/cn/axzo/msg/center/message/service/impl/v3/ModelV3ExtPopulator.java index f85a8a50..37a075ae 100644 --- a/inside-notices/src/main/java/cn/axzo/msg/center/message/service/impl/v3/ModelV3ExtPopulator.java +++ b/inside-notices/src/main/java/cn/axzo/msg/center/message/service/impl/v3/ModelV3ExtPopulator.java @@ -13,6 +13,7 @@ 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 lombok.RequiredArgsConstructor; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; @@ -56,7 +57,7 @@ public class ModelV3ExtPopulator { populatePersonKV(Collections.singletonList(keyValue)); } - private void populatePersonKV(List keyValues) { + public void populatePersonKV(List keyValues) { if (CollectionUtils.isEmpty(keyValues)) return; List personIds = keyValues.stream() .map(ParsedKV::getValueAsLong) @@ -75,7 +76,7 @@ public class ModelV3ExtPopulator { personInfo.setRealName(profile.getRealName()); personInfo.setAvatar(profile.getAvatarUrl()); personInfo.setMobilePhone(profile.getPhone()); - personInfo.setMobilePhoneCiphertext(profile.getPhone()); + personInfo.setMobilePhoneCiphertext(DataSecurityHelper.encrypt(profile.getPhone())); kv.setPersonInfo(personInfo); } } @@ -108,7 +109,7 @@ public class ModelV3ExtPopulator { workerInfo.setBirthday(person.getBirthday()); workerInfo.setNationality(person.getNationality()); workerInfo.setIdNumber(person.getIdNumber()); - workerInfo.setIdNumberCiphertext(person.getIdNumber()); + workerInfo.setIdNumberCiphertext(DataSecurityHelper.encrypt(person.getIdNumber())); workerInfo.setIdentityValid(isWorkerIdentityValid(worker)); List bankCards = personId2BankCard.get(workerGroup.getWorkerIdentityId()); workerInfo.setCardValid(CollectionUtils.isNotEmpty(bankCards) diff --git a/inside-notices/src/main/java/cn/axzo/msg/center/message/service/impl/v3/ModelV3Parser.java b/inside-notices/src/main/java/cn/axzo/msg/center/message/service/impl/v3/ModelV3Parser.java index c7e4289e..87c74800 100644 --- a/inside-notices/src/main/java/cn/axzo/msg/center/message/service/impl/v3/ModelV3Parser.java +++ b/inside-notices/src/main/java/cn/axzo/msg/center/message/service/impl/v3/ModelV3Parser.java @@ -114,7 +114,7 @@ public class ModelV3Parser { if (phone.contains("*")) phone = DataSecurityHelper.decrypt(phone); phoneInfo.setMobilePhone(phone); - phoneInfo.setMobilePhoneCiphertext(phone); + phoneInfo.setMobilePhoneCiphertext(DataSecurityHelper.encrypt(phone)); return phoneInfo; } catch (Exception e) { log.warn("error parse phone info. kv={}", kv); diff --git a/inside-notices/src/main/java/cn/axzo/msg/center/message/service/todo/TodoRangeQueryService.java b/inside-notices/src/main/java/cn/axzo/msg/center/message/service/todo/TodoRangeQueryService.java index c3dd99f8..0a371191 100644 --- a/inside-notices/src/main/java/cn/axzo/msg/center/message/service/todo/TodoRangeQueryService.java +++ b/inside-notices/src/main/java/cn/axzo/msg/center/message/service/todo/TodoRangeQueryService.java @@ -19,6 +19,7 @@ import cn.axzo.msg.center.message.service.group.GroupTemplates; import cn.axzo.msg.center.message.service.group.NodeWrapper; import cn.axzo.msg.center.message.service.group.TemplateCache; import cn.axzo.msg.center.message.service.impl.PendingMessageNewServiceImpl; +import cn.axzo.msg.center.message.service.impl.v3.ModelV3ExtPopulator; import cn.axzo.msg.center.message.service.todo.cache.NodeStatCache; import cn.axzo.msg.center.message.service.todo.manage.TodoTerminalHelper; import cn.axzo.msg.center.message.service.todo.mybatis.CollectSQLInterceptor; @@ -41,6 +42,10 @@ import cn.axzo.msg.center.service.pending.response.PendingMessageStatisticRespon import cn.axzo.msg.center.service.pending.response.PendingMessageStatisticResponseV2.GroupStat; import cn.axzo.msg.center.service.pending.response.PendingMessageStatisticResponseV2.Stat; import cn.axzo.msg.center.service.pending.response.PersonTodoToBeDoneStatResponse; +import cn.axzo.msg.center.service.pending.response.v3.ParsedModel3Visitor; +import cn.axzo.msg.center.service.pending.response.v3.ParsedModel3Walker; +import cn.axzo.msg.center.service.pending.response.v3.model.ParsedGroupV3; +import cn.axzo.msg.center.service.pending.response.v3.model.ParsedKV; import cn.axzo.msg.center.utils.DateFormatUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; @@ -87,6 +92,7 @@ public class TodoRangeQueryService { private final NodeStatCache nodeStatCache; private final TodoTerminalHelper todoTerminalHelper; private final AnalysisHelper analysisHelper; + private final ModelV3ExtPopulator modelV3ExtPopulator; // !! page query @@ -111,11 +117,19 @@ public class TodoRangeQueryService { respResult.addAnalysis("request", request); respResult.addAnalysis("terminals", pendingMessageNewServiceImpl::getTerminalConfigInfo); if (respResult.getList() != null) { + ArrayList keyValues = new ArrayList<>(); for (PendingMessageResponse response : respResult.getList()) { response.getButtonRouters() .removeIf(btn -> !btn.getStyle().contains(ButtonStyleEnum.OVER_CARD)); response.getModelV3().getButtons() .removeIf(btn -> !btn.parseStyle().contains(ButtonStyleEnum.OVER_CARD)); + ParsedModel3Walker.walkDown(response.getModelV3(), new ParsedModel3Visitor() { + @Override + public void visitGroupKeyValue(ParsedGroupV3 group, ParsedKV kv) { + keyValues.add(kv); + } + }); + modelV3ExtPopulator.populatePersonKV(keyValues); } } return respResult; diff --git a/msg-center-api/src/main/java/cn/axzo/msg/center/service/pending/response/v3/model/PersonInfo.java b/msg-center-api/src/main/java/cn/axzo/msg/center/service/pending/response/v3/model/PersonInfo.java index 8d3c9a1b..96ff19b7 100644 --- a/msg-center-api/src/main/java/cn/axzo/msg/center/service/pending/response/v3/model/PersonInfo.java +++ b/msg-center-api/src/main/java/cn/axzo/msg/center/service/pending/response/v3/model/PersonInfo.java @@ -25,12 +25,12 @@ public class PersonInfo { /** * 手机号, 未加密 */ + @SDCellPhoneField private String mobilePhone; /** * 加密手机号 */ - @SDCellPhoneField private String mobilePhoneCiphertext; public void resetCiphertextFields() { diff --git a/msg-center-api/src/main/java/cn/axzo/msg/center/service/pending/response/v3/model/PhoneInfo.java b/msg-center-api/src/main/java/cn/axzo/msg/center/service/pending/response/v3/model/PhoneInfo.java index f9862334..1fbb6c4e 100644 --- a/msg-center-api/src/main/java/cn/axzo/msg/center/service/pending/response/v3/model/PhoneInfo.java +++ b/msg-center-api/src/main/java/cn/axzo/msg/center/service/pending/response/v3/model/PhoneInfo.java @@ -2,10 +2,8 @@ package cn.axzo.msg.center.service.pending.response.v3.model; import cn.axzo.msg.center.service.util.MiscUtils2; import cn.axzo.trade.datasecurity.sd.extension.annotation.SDCellPhoneField; -import cn.axzo.trade.datasecurity.sd.extension.ruleimpl.CellPhoneRuleHandler; import lombok.Getter; import lombok.Setter; -import org.apache.commons.lang3.StringUtils; /** * @author yanglin @@ -17,12 +15,12 @@ public class PhoneInfo { /** * 手机号, 未加密 */ + @SDCellPhoneField private String mobilePhone; /** * 加密手机号 */ - @SDCellPhoneField private String mobilePhoneCiphertext; public void resetCiphertextFields() { diff --git a/msg-center-api/src/main/java/cn/axzo/msg/center/service/pending/response/v3/model/WorkerInfo.java b/msg-center-api/src/main/java/cn/axzo/msg/center/service/pending/response/v3/model/WorkerInfo.java index 33fa8330..f4086df4 100644 --- a/msg-center-api/src/main/java/cn/axzo/msg/center/service/pending/response/v3/model/WorkerInfo.java +++ b/msg-center-api/src/main/java/cn/axzo/msg/center/service/pending/response/v3/model/WorkerInfo.java @@ -44,11 +44,11 @@ public class WorkerInfo { /** * 身份证号 */ + @SDIdCardField private String idNumber; /** * 身份证号密文 */ - @SDIdCardField private String idNumberCiphertext; /** * 身份信息校验