Merge branch 'feature/REQ-2960' of axzsource.com:universal/infrastructure/backend/riven into feature/REQ-2960
This commit is contained in:
commit
ff0366a6d5
@ -71,7 +71,7 @@ public class RocketMQConfig {
|
||||
@Slf4j
|
||||
@Component
|
||||
@RocketMQMessageListener(topic = "topic_profile_${spring.profiles.active}",
|
||||
consumerGroup = "${spring.application.name}-${spring.profiles.active}",
|
||||
consumerGroup = "GID_topic_${spring.application.name}_${spring.profiles.active}",
|
||||
consumeMode = ConsumeMode.ORDERLY,
|
||||
maxReconsumeTimes = 3
|
||||
)
|
||||
|
||||
@ -0,0 +1,10 @@
|
||||
package cn.axzo.riven.third.service;
|
||||
|
||||
public interface DingDingRobotService {
|
||||
/**
|
||||
* 发钉钉消息。先默认是泰州的,后续如果不同三方对应的行为不一致,再调整
|
||||
*
|
||||
* @param content
|
||||
*/
|
||||
void send(String content);
|
||||
}
|
||||
@ -0,0 +1,20 @@
|
||||
package cn.axzo.riven.third.service.impl;
|
||||
|
||||
import cn.axzo.riven.third.common.DingTalkUtil;
|
||||
import cn.axzo.riven.third.service.DingDingRobotService;
|
||||
import cn.axzo.riven.third.taizhou.config.TaiZhouConfig;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@Slf4j
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class DingDingRobotServiceImpl implements DingDingRobotService {
|
||||
private final TaiZhouConfig taiZhouConfig;
|
||||
|
||||
@Override
|
||||
public void send(String content) {
|
||||
DingTalkUtil.sendMessage(content, taiZhouConfig.getDingTalkBotAccessToken(), taiZhouConfig.getDingTalkBotSecret());
|
||||
}
|
||||
}
|
||||
@ -6,10 +6,9 @@ import cn.axzo.basics.profiles.common.utils.RpcUtils;
|
||||
import cn.axzo.basics.profiles.dto.basic.PersonProfileDto;
|
||||
import cn.axzo.basics.profiles.dto.request.QueryPersonProfileByIdOrPhoneDto;
|
||||
import cn.axzo.riven.client.common.enums.ThirdCodeEnum;
|
||||
import cn.axzo.riven.third.common.DingTalkUtil;
|
||||
import cn.axzo.riven.third.dao.ThirdPersonDao;
|
||||
import cn.axzo.riven.third.entity.ThirdPerson;
|
||||
import cn.axzo.riven.third.taizhou.config.TaiZhouConfig;
|
||||
import cn.axzo.riven.third.service.DingDingRobotService;
|
||||
import cn.axzo.riven.third.taizhou.service.OperateLogService;
|
||||
import cn.azxo.framework.common.model.CommonResponse;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
@ -52,7 +51,7 @@ public class ManualUpdateTaizhouPersonIdJob extends IJobHandler {
|
||||
@Autowired
|
||||
private OperateLogService operateLogService;
|
||||
@Autowired
|
||||
private TaiZhouConfig taiZhouConfig;
|
||||
private DingDingRobotService dingDingRobotService;
|
||||
|
||||
@Override
|
||||
@XxlJob("manualUpdateTaizhouPersonIdJob")
|
||||
@ -102,11 +101,11 @@ public class ManualUpdateTaizhouPersonIdJob extends IJobHandler {
|
||||
if (!Objects.equals(personProfile.getRealName(), thirdPerson.getThirdPersonName())
|
||||
|| !Objects.equals(maskedPersonIdNumber, thirdPerson.getThirdIdNumber())) {
|
||||
String errorLog = String.format("Job手动刷新personId,触发告警:根据手机号查询到的安心筑用户实名信息和泰州实名信息不一致,请确认。" +
|
||||
"id = {}, phone = {}, axzoRealname = %s, axzoIdNumber = %s, taizhouRealname = %s, taizhouIdNumber = %s",
|
||||
"id = %s, phone = %s, axzoRealname = %s, axzoIdNumber = %s, taizhouRealname = %s, taizhouIdNumber = %s",
|
||||
thirdPerson.getId(), thirdPerson.getThirdPersonPhone(), personProfile.getRealName(), personProfile.getIdNumber(), thirdPerson.getThirdPersonName(), thirdPerson.getThirdIdNumber());
|
||||
log.info(errorLog);
|
||||
XxlJobLogger.log(errorLog);
|
||||
DingTalkUtil.sendMessage(errorLog, taiZhouConfig.getDingTalkBotAccessToken(), taiZhouConfig.getDingTalkBotSecret());
|
||||
dingDingRobotService.send(errorLog);
|
||||
return;
|
||||
}
|
||||
// 判断新personId,有没有被其他ThirdPerson绑定。
|
||||
@ -117,11 +116,11 @@ public class ManualUpdateTaizhouPersonIdJob extends IJobHandler {
|
||||
.ne(ThirdPerson::getId, thirdPerson.getId())
|
||||
.list();
|
||||
if (!conflicts.isEmpty()) {
|
||||
String errorMsg = String.format("Job手动刷新personId,触发告警:新personId存在已绑定的workerId的数据,本次不更新,请确认数据。id = {}, workerId = {}, oldPersonId = %s, newPersonId = %s, conflicts = %s"
|
||||
String errorMsg = String.format("Job手动刷新personId,触发告警:新personId存在已绑定的workerId的数据,本次不更新,请确认数据。id = %s, workerId = %s, oldPersonId = %s, newPersonId = %s, conflicts = %s"
|
||||
, thirdPerson.getId(), thirdPerson.getThirdUniquePersonId(), oldPersonId, newPersonId, JSON.toJSONString(conflicts));
|
||||
log.info(errorMsg);
|
||||
XxlJobLogger.log(errorMsg);
|
||||
DingTalkUtil.sendMessage(errorMsg, taiZhouConfig.getDingTalkBotAccessToken(), taiZhouConfig.getDingTalkBotSecret());
|
||||
dingDingRobotService.send(errorMsg);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@ -3,10 +3,9 @@ package cn.axzo.riven.third.taizhou.mq.outer;
|
||||
import cn.axzo.framework.rocketmq.Event;
|
||||
import cn.axzo.framework.rocketmq.EventConsumer;
|
||||
import cn.axzo.riven.client.common.enums.ThirdCodeEnum;
|
||||
import cn.axzo.riven.third.common.DingTalkUtil;
|
||||
import cn.axzo.riven.third.dao.ThirdPersonDao;
|
||||
import cn.axzo.riven.third.entity.ThirdPerson;
|
||||
import cn.axzo.riven.third.taizhou.config.TaiZhouConfig;
|
||||
import cn.axzo.riven.third.service.DingDingRobotService;
|
||||
import cn.axzo.riven.third.taizhou.mq.outer.payload.PersonProfileMergedPayload;
|
||||
import cn.axzo.riven.third.taizhou.service.OperateLogService;
|
||||
import cn.azxo.framework.common.utils.LogUtil;
|
||||
@ -43,7 +42,7 @@ public class UpdateTaizhouPersonOnPersonProfileMergedHandler implements Initiali
|
||||
@Autowired
|
||||
private OperateLogService operateLogService;
|
||||
@Autowired
|
||||
private TaiZhouConfig taiZhouConfig;
|
||||
private DingDingRobotService dingDingRobotService;
|
||||
|
||||
public void updateThirdPersonPersonId(Event event, EventConsumer.Context context) {
|
||||
PersonProfileMergedPayload payload = event.normalizedData(PersonProfileMergedPayload.class);
|
||||
@ -83,10 +82,10 @@ public class UpdateTaizhouPersonOnPersonProfileMergedHandler implements Initiali
|
||||
if (!boundedList.isEmpty()) {
|
||||
log.info("updateThirdPersonPersonId, oldPersonId = {}, newPersonId = {}, 新personId已经绑定了其他workerId, boundedList = {}"
|
||||
, oldPersonId, newPersonId, JSON.toJSONString(boundedList));
|
||||
String errorMsg = String.format("账号合并触发泰州用户表信息,触发告警:新personId存在已绑定的workerId的数据,本次不更新,请确认数据。oldPersonId = %s, newPersonId = %s, list = %s",
|
||||
String errorMsg = String.format("账号合并触发泰州用户表信息,触发告警:新personId存在已绑定的workerId的数据(),本次不更新,请确认数据。oldPersonId = %s, newPersonId = %s, list = %s",
|
||||
oldPersonId, newPersonId, JSON.toJSONString(list));
|
||||
LogUtil.error(LogUtil.ErrorLevel.P1, LogUtil.ErrorType.ERROR_BUSINESS, errorMsg);
|
||||
DingTalkUtil.sendMessage(errorMsg, taiZhouConfig.getDingTalkBotAccessToken(), taiZhouConfig.getDingTalkBotSecret());
|
||||
dingDingRobotService.send(errorMsg);
|
||||
// 操作失败的,也记个日志,方便排查问题
|
||||
operateLogService.save(buildOperateParam(oldPersonId, newPersonId, OperateLogService.OperateType.UPDATE_FAIL, orig, String.format("账号合并,更新personId(由于新personId已被绑定,不进行更新操作),%s -> %s", oldPersonId, newPersonId),
|
||||
new JSONObject().fluentPut("conflictId", boundedList.get(0).getId())
|
||||
@ -98,7 +97,7 @@ public class UpdateTaizhouPersonOnPersonProfileMergedHandler implements Initiali
|
||||
String errorMsg = String.format("账号合并触发泰州用户表信息,触发告警:原personId对应到多个workerId的数据(更新其中一条)。personId = %s, thirdPersons = %s",
|
||||
oldPersonId, JSON.toJSONString(list));
|
||||
LogUtil.error(LogUtil.ErrorLevel.P1, LogUtil.ErrorType.ERROR_BUSINESS, errorMsg);
|
||||
DingTalkUtil.sendMessage(errorMsg, taiZhouConfig.getDingTalkBotAccessToken(), taiZhouConfig.getDingTalkBotSecret());
|
||||
dingDingRobotService.send(errorMsg);
|
||||
}
|
||||
|
||||
ThirdPerson toUpdate = new ThirdPerson();
|
||||
|
||||
Loading…
Reference in New Issue
Block a user