REQ-3502: 去除无用逻辑
This commit is contained in:
parent
f037117c3a
commit
ccd479a2ee
@ -32,6 +32,7 @@ import cn.axzo.msg.center.service.pending.card.domain.CardButtonStates;
|
||||
import cn.axzo.msg.center.service.pending.request.CardPresetButtonPressedRequest;
|
||||
import cn.axzo.msg.center.service.pending.request.CardPresetButtonRequest;
|
||||
import cn.axzo.msg.center.service.pending.request.CardSendRequest;
|
||||
import cn.axzo.msg.center.service.pending.request.CardUpdatePresetButtonRequest;
|
||||
import cn.axzo.msg.center.service.pending.request.CardUpdateRequest;
|
||||
import cn.axzo.msg.center.service.pending.request.CardUpdateStateRequest;
|
||||
import cn.axzo.msg.center.service.pending.request.ResendMessageRequest;
|
||||
@ -190,6 +191,13 @@ public class CardManager {
|
||||
"卡片已是终状态, 无法'{}'", request.getPresetButtonType().getDesc());
|
||||
}
|
||||
|
||||
public void firePresetButtonPressed(CardUpdatePresetButtonRequest request) {
|
||||
TemplateModelV3 templateModel = cardSupport.ensureImChannelPresent(request.getTemplateCode());
|
||||
CardRequestContext<CardUpdatePresetButtonRequest> requestContext = CardRequestContext.create(request);
|
||||
for (List<Card> cards : cardsCursor(request))
|
||||
firePresetButtonPressedImpl(request, requestContext, templateModel, cards);
|
||||
}
|
||||
|
||||
private UpdateStateResult firePresetButtonPressedImpl(
|
||||
CardPresetButtonRequest request, CardRequestContext<?> requestContext,
|
||||
TemplateModelV3 templateModel, List<Card> cards) {
|
||||
|
||||
@ -16,7 +16,7 @@ import org.springframework.stereotype.Component;
|
||||
@Slf4j
|
||||
@Component
|
||||
@RequiredArgsConstructor
|
||||
public class CardSyncTodoHandler implements EventHandler, InitializingBean {
|
||||
public class CardPresetButtonSyncTodoHandler implements EventHandler, InitializingBean {
|
||||
|
||||
private final EventConsumer eventConsumer;
|
||||
private final TodoSyncCardService todoSyncCardService;
|
||||
@ -0,0 +1,36 @@
|
||||
package cn.axzo.msg.center.message.service.todo.card;
|
||||
|
||||
import cn.axzo.framework.rocketmq.Event;
|
||||
import cn.axzo.framework.rocketmq.EventConsumer;
|
||||
import cn.axzo.framework.rocketmq.EventHandler;
|
||||
import cn.axzo.msg.center.api.mq.PresetButtonPressedMessage;
|
||||
import cn.axzo.msg.center.service.enums.MqMessageType;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.InitializingBean;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
/**
|
||||
* @author yanglin
|
||||
*/
|
||||
@Slf4j
|
||||
@Component
|
||||
@RequiredArgsConstructor
|
||||
public class TodoPresetButtonSyncCardHandler implements EventHandler, InitializingBean {
|
||||
|
||||
private final EventConsumer eventConsumer;
|
||||
private final TodoSyncCardService todoSyncCardService;
|
||||
|
||||
@Override
|
||||
public void onEvent(Event event, EventConsumer.Context context) {
|
||||
PresetButtonPressedMessage message = event.normalizedData(PresetButtonPressedMessage.class);
|
||||
log.info("received PresetButtonPressedMessage: {}", message);
|
||||
todoSyncCardService.syncTodoPresetButtonPressed(message);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void afterPropertiesSet() {
|
||||
eventConsumer.registerHandler(MqMessageType.TODO_PRESET_BUTTON_PRESSED.getEventCode(), this);
|
||||
}
|
||||
|
||||
}
|
||||
@ -2,6 +2,8 @@ package cn.axzo.msg.center.message.service.todo.card;
|
||||
|
||||
import cn.axzo.framework.rocketmq.Event;
|
||||
import cn.axzo.msg.center.api.mq.CardPresetButtonPressedMessage;
|
||||
import cn.axzo.msg.center.api.mq.PresetButtonPressedMessage;
|
||||
import cn.axzo.msg.center.api.mq.TodoInfo;
|
||||
import cn.axzo.msg.center.api.mq.TodoUpdateMessage;
|
||||
import cn.axzo.msg.center.dal.MessageTemplateV3Dao;
|
||||
import cn.axzo.msg.center.dal.TodoBusinessDao;
|
||||
@ -23,6 +25,7 @@ import cn.axzo.msg.center.service.enums.CodeDefinition;
|
||||
import cn.axzo.msg.center.service.enums.MessageChannel;
|
||||
import cn.axzo.msg.center.service.enums.PendingMessageStateEnum;
|
||||
import cn.axzo.msg.center.service.pending.request.CardSendRequest;
|
||||
import cn.axzo.msg.center.service.pending.request.CardUpdatePresetButtonRequest;
|
||||
import cn.axzo.msg.center.service.pending.request.CardUpdateStateRequest;
|
||||
import cn.axzo.msg.center.service.pending.request.PresetButtonPressedRequest;
|
||||
import cn.axzo.msg.center.service.pending.response.CardSendResponse;
|
||||
@ -218,6 +221,21 @@ public class TodoSyncCardService {
|
||||
}
|
||||
}
|
||||
|
||||
void syncTodoPresetButtonPressed(PresetButtonPressedMessage message) {
|
||||
CardUpdatePresetButtonRequest request = new CardUpdatePresetButtonRequest();
|
||||
request.setAppCode(APP_CODE);
|
||||
TodoInfo todo = message.getTodoInfo();
|
||||
request.setTemplateCode(todo.getTemplateCode());
|
||||
request.setBizCode(todo.getTemplateCode());
|
||||
request.setSubBizCode(todo.getSubBizCode());
|
||||
request.setReceivers(Sets.newHashSet(PeerPerson.create(
|
||||
todo.getExecutorPersonId(), todo.getExecutorOuId(), todo.getExecutorWorkspaceId())));
|
||||
request.setPresetButtonType(message.getPresetButtonType());
|
||||
request.setOperatorId(0L);
|
||||
request.setOperatorName("");
|
||||
cardManager.firePresetButtonPressed(request);
|
||||
}
|
||||
|
||||
private static CardBizState determineCardBizStateForBizTodo(Todo todo) {
|
||||
if (todo.getState() == PendingMessageStateEnum.COMPLETED)
|
||||
return CardBizState.COMPLETED;
|
||||
|
||||
@ -45,6 +45,7 @@ import cn.axzo.msg.center.service.pending.request.TodoHandoverRequest;
|
||||
import cn.axzo.msg.center.service.pending.request.UpdateBusinessFinalBizStateRequest;
|
||||
import cn.axzo.msg.center.service.pending.request.UpdatePendingMessageByIdRequest;
|
||||
import cn.axzo.msg.center.service.pending.response.PushPendingMessageDTO;
|
||||
import cn.axzo.msg.center.service.util.IdBuilder;
|
||||
import cn.axzo.msg.center.service.util.JSONUtils;
|
||||
import cn.axzo.msg.center.utils.QueryFormatter;
|
||||
import cn.axzo.msg.center.utils.UUIDUtil;
|
||||
@ -595,20 +596,12 @@ public class TodoManager {
|
||||
StateAdvanceResult advanceResult = advanceState(ctx, execAdvanceBuilder()
|
||||
.eq(Todo::getIdentityCode, request.getIdentityCode())
|
||||
.set(Todo::getState, PendingMessageStateEnum.COMPLETED));
|
||||
// isExecCompleted 可以排除是抄送待办的情况
|
||||
boolean isAdvancedOrCompleted = advanceResult.isAdvanced() || todo.isExecCompleted();
|
||||
// 支持重复发mq消息
|
||||
if (isAdvancedOrCompleted) {
|
||||
if (advanceResult.isAdvanced()) {
|
||||
sendMqMessageOnPresetButtonPressed(ctx, request, todo);
|
||||
|
||||
// 如果不是重复发送, 就只记一条日志. 如果是重复发送, 就单独记录一条日志
|
||||
if (!advanceResult.isAdvanced())
|
||||
todoLogger.logTodoUpdated(ctx, todo);
|
||||
}
|
||||
// 如果不是重复发送, 就只记一条日志. 所以这个记录日志不能提前
|
||||
if (advanceResult.isAdvanced())
|
||||
todoLogger.logTodoCompleted(ctx, advanceResult.getAdvancedTodos());
|
||||
return isAdvancedOrCompleted;
|
||||
}
|
||||
return advanceResult.isAdvanced();
|
||||
}
|
||||
|
||||
/**
|
||||
@ -626,9 +619,13 @@ public class TodoManager {
|
||||
try {
|
||||
mqProducer.send(MqMessageRecord
|
||||
.builder(MqMessageType.TODO_PRESET_BUTTON_PRESSED, message)
|
||||
.messageKey(todo.getId())
|
||||
.messageKey(todo.getIdentityCode())
|
||||
.operatorId(request.getOperatorId())
|
||||
.shardingKey(todo.getTemplateCode())
|
||||
.shardingKey(IdBuilder.builder()
|
||||
.append(todo.getTemplateCode())
|
||||
.append(todo.getBizCode())
|
||||
.append(todo.getSubBizCode())
|
||||
.build())
|
||||
.build());
|
||||
ctx.addLogContent("sendMqMessage", ImmutableMap.of("isSuccess", "true"));
|
||||
} catch (Exception e) {
|
||||
|
||||
@ -11,7 +11,6 @@ import cn.axzo.framework.rocketmq.RocketMQEventProducer.RocketMQMessageMeta;
|
||||
import cn.axzo.framework.rocketmq.utils.TraceUtils;
|
||||
import cn.axzo.msg.center.api.mq.MqMessage;
|
||||
import cn.axzo.msg.center.inside.notices.config.PendingMessageBizConfig;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.google.common.collect.ImmutableMap;
|
||||
import com.google.common.collect.Maps;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
@ -140,18 +139,34 @@ public class RocketMQConfig {
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 卡片变更,同步状态至待办TODO
|
||||
*/
|
||||
@Slf4j
|
||||
@Component
|
||||
@RocketMQMessageListener(topic = "topic_msg_center_${spring.profiles.active}",
|
||||
consumerGroup = "GID_topic_card_sync_todo_${spring.profiles.active}",
|
||||
consumerGroup = "GID_topic_card_preset_button_sync_todo_${spring.profiles.active}",
|
||||
consumeMode = ConsumeMode.ORDERLY,
|
||||
nameServer = "${rocketmq.name-server}",
|
||||
maxReconsumeTimes = 3
|
||||
)
|
||||
public static class CardSyncTodoListener extends BaseListener implements RocketMQListener<MessageExt> {
|
||||
public static class CardPresetButtonSyncTodoListener extends BaseListener implements RocketMQListener<MessageExt> {
|
||||
|
||||
@Autowired
|
||||
private EventConsumer eventConsumer;
|
||||
|
||||
@Override
|
||||
public void onMessage(MessageExt message) {
|
||||
super.onEvent(message, eventConsumer);
|
||||
}
|
||||
}
|
||||
|
||||
@Slf4j
|
||||
@Component
|
||||
@RocketMQMessageListener(topic = "topic_msg_center_${spring.profiles.active}",
|
||||
consumerGroup = "GID_topic_todo_preset_button_sync_card_${spring.profiles.active}",
|
||||
consumeMode = ConsumeMode.ORDERLY,
|
||||
nameServer = "${rocketmq.name-server}",
|
||||
maxReconsumeTimes = 3
|
||||
)
|
||||
public static class TodoPresetButtonSyncCardListener extends BaseListener implements RocketMQListener<MessageExt> {
|
||||
|
||||
@Autowired
|
||||
private EventConsumer eventConsumer;
|
||||
|
||||
@ -182,13 +182,6 @@ public class Todo extends BaseEntityExt<Todo> implements MessageEntity {
|
||||
return orgId;
|
||||
}
|
||||
|
||||
/**
|
||||
* 执行待办是否已经完成(处理)
|
||||
*/
|
||||
public boolean isExecCompleted() {
|
||||
return type == TodoType.EXECUTABLE && state == PendingMessageStateEnum.COMPLETED;
|
||||
}
|
||||
|
||||
@Override
|
||||
public JSONObject bizParam() {
|
||||
if (bizExtParam == null)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user