feat:(REQ-3201) 待办状态同步卡片,异常日志添加

This commit is contained in:
xudawei 2024-12-17 17:28:35 +08:00
parent c79ea6945d
commit fcc0176955
3 changed files with 24 additions and 15 deletions

View File

@ -12,16 +12,14 @@ import com.alibaba.fastjson.JSON;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.util.StringUtils;
import java.util.Objects;
/**
* @author xudawei@axzo.cn
* @date 2024/11/07
* @desc 群聊创建MQ消费
* @desc 卡片预设MQ消费
*/
@Slf4j
@Component
@ -67,7 +65,7 @@ public class CardChangeStateSyncTodoEventHandler implements EventHandler, Initia
if (!CommonConstants.TODO_SYSN_CARD_APP_CODE.equalsIgnoreCase(payload.getCardInfo().getAppCode())) {
return;
}
Long operatorId = StringUtils.hasText(event.getOperatorId()) ? Long.valueOf(event.getOperatorId()) : 0L;
Long operatorId = Objects.nonNull(payload.getOperatorId()) ? payload.getOperatorId() : 0L;
todoWithCardWrapper.fireTodoWhenPresetButtonPressedByCard(todoManager, payload.getPresetButtonType(), payload.getCardInfo(), operatorId);
}

View File

@ -9,7 +9,6 @@ import cn.axzo.msg.center.message.service.todo.manage.TodoLogger;
import cn.axzo.msg.center.message.service.todo.manage.TodoManager;
import cn.axzo.msg.center.message.service.todo.manage.TodoRequestContext;
import cn.axzo.msg.center.notices.common.constans.CommonConstants;
import cn.axzo.msg.center.notices.common.constans.CommonConstants;
import cn.axzo.msg.center.service.dto.PeerPerson;
import cn.axzo.msg.center.service.dto.PersonDTO;
import cn.axzo.msg.center.service.enums.CardBizState;
@ -23,12 +22,14 @@ import cn.axzo.msg.center.service.pending.request.PresetButtonPressedRequest;
import cn.axzo.msg.center.service.util.IdBuilder;
import com.alibaba.excel.util.StringUtils;
import com.alibaba.fastjson.JSON;
import com.google.common.base.Throwables;
import com.google.common.collect.Sets;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.stereotype.Component;
import java.util.Collections;
import java.util.List;
import java.util.Objects;
import java.util.Set;
@ -64,9 +65,12 @@ public class TodoWithCardWrapper {
return;
}
log.info("TodoWithCardWrapper#fireTodoWhenPresetButtonPressedByCard start,presetButtonType:{},cardInfo:{}", presetButtonType, JSON.toJSONString(cardInfo));
TodoRequestContext ctx = TodoRequestContext.create("cardPresetTodo", cardInfo);
ctx.addLogContent("presetButtonType", presetButtonType);
ctx.addLogContent("operatorId", operatorId);
//1 查询待办(Todo对象)根据templateCode/bizCode/subBizCode/receiverPresonId/receiverOuId/receiverWorkspaceId 理论上只能查询一条[待办]记录
List<Todo> todoList = todoDao.findByCondition(cardInfo.getTemplateCode(), cardInfo.getBizCode(), cardInfo.getSubBizCode(), cardInfo.getReceiverPersonId(), cardInfo.getReceiverOuId(), cardInfo.getReceiverWorkspaceId());
try {
//1 查询待办(Todo对象)根据templateCode/bizCode/subBizCode/receiverPresonId/receiverOuId/receiverWorkspaceId 理论上只能查询一条[待办]记录
List<Todo> todoList = todoDao.findByCondition(cardInfo.getTemplateCode(), cardInfo.getBizCode(), cardInfo.getSubBizCode(), cardInfo.getReceiverPersonId(), cardInfo.getReceiverOuId(), cardInfo.getReceiverWorkspaceId());
if (CollectionUtils.isEmpty(todoList)) {
return;
}
@ -75,12 +79,11 @@ public class TodoWithCardWrapper {
PresetButtonPressedRequest presetButtonPressedRequest = this.buildPresetButtonPressedRequest(todo.getIdentityCode(), presetButtonType, operatorId);
todoManager.firePresetButtonPressed( presetButtonPressedRequest, false);
}
TodoRequestContext ctx = TodoRequestContext.create("cardPresetTodo", cardInfo);
ctx.addLogContent("presetButtonType", presetButtonType);
ctx.addLogContent("operatorId", operatorId);
todoLogger.logTodosUpdated(ctx, todoList);
} catch (Exception e) {
log.warn("TodoWithCardWrapper#fireTodoWhenPresetButtonPressedByCard exception,presetButtonType:{},cardInfo:{}", presetButtonType, JSON.toJSONString(cardInfo),e);
ctx.addLogContent("exception", Throwables.getStackTraceAsString(e));
todoLogger.logTodosUpdated(ctx, todoList);
}
}
@ -105,13 +108,17 @@ public class TodoWithCardWrapper {
return;
}
log.info("TodoWithCardWrapper#fireCardWhenPresetButtonPressedByTodo start,request:{},todo:{}", JSON.toJSONString(request), JSON.toJSONString(todo));
TodoRequestContext ctx = TodoRequestContext.create("todoPresetCard", request);
try {
//1 构建对象
CardUpdatePresetButtonRequest cardRequest = this.buildCardUpdatePresetButtonRequest(request, todo);
//2 同步卡片
cardManager.firePresetButtonPressed(cardRequest);
todoLogger.logTodosUpdated(ctx, Collections.singletonList(todo));
} catch (Exception e) {
log.warn("TodoWithCardWrapper#fireCardWhenPresetButtonPressedByTodo exception,request:{},todo:{}", JSON.toJSONString(request), JSON.toJSONString(todo),e);
ctx.addLogContent("exception", Throwables.getStackTraceAsString(e));
todoLogger.logTodosUpdated(ctx, Collections.singletonList(todo));
}
}
@ -139,15 +146,17 @@ public class TodoWithCardWrapper {
*/
public void send(PendingMessagePushParam param,List<Todo> todos) {
log.info("TodoWithCardWrapper#send start,param:{}", JSON.toJSONString(param));
TodoRequestContext ctx = TodoRequestContext.create("todoSyncCardSend", param);
try {
//1 构建对象
CardSendRequest cardSendRequest = this.buildCardSendRequest(param);
//2 发送
cardManager.send(cardSendRequest);
TodoRequestContext ctx = TodoRequestContext.create("todoSyncCardSend", param);
todoLogger.logTodosUpdated(ctx, todos);
} catch (Exception e) {
log.warn("TodoWithCardWrapper#send,param:{}", JSON.toJSONString(param), e);
ctx.addLogContent("exception", Throwables.getStackTraceAsString(e));
todoLogger.logTodosUpdated(ctx, todos);
}
}
@ -188,6 +197,9 @@ public class TodoWithCardWrapper {
if (CollectionUtils.isEmpty(todoList)) {
return;
}
TodoRequestContext ctx = TodoRequestContext.create("todoSyncCardState", todoList);
ctx.addLogContent("bizState", bizState);
ctx.addLogContent("cardState", cardState);
try {
for (Todo todo : todoList) {
//1 构建对象
@ -195,12 +207,11 @@ public class TodoWithCardWrapper {
//2 更新状态
cardManager.updateState(updateStateRequest);
}
TodoRequestContext ctx = TodoRequestContext.create("todoSyncCardState", todoList);
ctx.addLogContent("bizState", bizState);
ctx.addLogContent("cardState", cardState);
todoLogger.logTodosUpdated(ctx, todoList);
} catch (Exception e) {
log.warn("TodoWithCardWrapper#cardCompleteState,todoList:{}", JSON.toJSONString(todoList), e);
ctx.addLogContent("exception", Throwables.getStackTraceAsString(e));
todoLogger.logTodosUpdated(ctx, todoList);
}
}

View File

@ -135,7 +135,7 @@ public class UpdateTemplateV3ChannelStyleVersionJob extends IJobHandler {
.eq(MessageTemplateV3::getIsDelete, TableIsDeleteEnum.NORMAL.value)
.gt(MessageTemplateV3::getId, maxId.get())
.orderByAsc(MessageTemplateV3::getId)
.last("LIMIT 20")
.last("LIMIT 200")
.list();
if (!accounts.isEmpty()) {
maxId.set(accounts.get(accounts.size() - 1).getId());