REQ-3201: 更新动作

This commit is contained in:
yanglin 2024-12-20 17:10:31 +08:00
parent c8ceb51534
commit 74c43778b1

View File

@ -144,9 +144,9 @@ public class CardManager {
CardRequestContext<CardUpdateStateRequest> requestContext = CardRequestContext.create(request);
for (List<Card> cards : cardsCursor(request, cardProps.getUpdateCardBatchSize())) {
updated = true;
UpdateCollector collector = new UpdateCollector(requestContext, "updateState", templateModel, cards);
collector.update(card -> {
Card update = collector.createUpdate(card);
UpdateExecutor executor = new UpdateExecutor(requestContext, "updateState", templateModel, cards);
executor.update(card -> {
Card update = executor.createUpdate(card);
if (request.determineIsCardCompleted())
update.setCardState(CardState.COMPLETED);
update.setBizState(request.getBizState());
@ -165,8 +165,8 @@ public class CardManager {
"按钮不支持失效, 未启用'仅待处理可见'. buttonCode={}", request.getButtonCode());
CardRequestContext<SetActionPerformedRequest> requestContext = CardRequestContext.create(request);
for (List<Card> cards : cardsCursor(request, cardProps.getUpdateCardBatchSize())) {
UpdateCollector collector = new UpdateCollector(requestContext, "setActionPerformed", templateModel, cards);
collector.update(new SetActionPerformedBuilder(collector, button, request.getCardBizState()));
UpdateExecutor executor = new UpdateExecutor(requestContext, "setActionPerformed", templateModel, cards);
executor.update(new SetActionPerformedBuilder(executor, button, request.getCardBizState()));
}
}
@ -198,11 +198,11 @@ public class CardManager {
MessageTemplateButtonV3 button = templateModel.findPresetButton(request.getPresetButtonType()).orElse(null);
BizAssertions.assertNotNull(button, "找不到对应的预设按钮, request={}", JSON.toJSONString(request));
CardBizState bizState = CardBizState.fromPresetButton(request.getPresetButtonType());
UpdateCollector collector = new UpdateCollector(requestContext, "presetButtonPressed", templateModel, cards);
UpdateStateResult result = collector.update(new SetActionPerformedBuilder(collector, button, bizState));
UpdateExecutor executor = new UpdateExecutor(requestContext, "presetButtonPressed", templateModel, cards);
UpdateStateResult result = executor.update(new SetActionPerformedBuilder(executor, button, bizState));
if (result == UpdateStateResult.SUCCESS) {
cardBroadcaster.firePresetButtonPressed(collector.updatedCards, request);
collector.updateCardLogger.reloadAndLogCards("presetButtonPressed:mq:success");
cardBroadcaster.firePresetButtonPressed(executor.updatedCards, request);
executor.updateCardLogger.reloadAndLogCards("presetButtonPressed:mq:success");
}
return result;
}
@ -231,7 +231,7 @@ public class CardManager {
return transactionTemplate.execute(status -> runnable.get());
}
private class UpdateCollector {
private class UpdateExecutor {
private final CardLogger updateCardLogger;
private final TemplateModelV3 templateModel;
@ -240,8 +240,8 @@ public class CardManager {
private final List<Card> updatedCards = new ArrayList<>();
private final List<Card> updates = new ArrayList<>();
UpdateCollector(CardRequestContext<?> requestContext, String operation,
TemplateModelV3 templateModel, List<Card> cards) {
UpdateExecutor(CardRequestContext<?> requestContext, String operation,
TemplateModelV3 templateModel, List<Card> cards) {
this.updateCardLogger = cardLoggers.createLogger(requestContext);
this.templateModel = templateModel;
this.operation = operation;
@ -332,7 +332,7 @@ public class CardManager {
@RequiredArgsConstructor
private static class SetActionPerformedBuilder implements UpdateBuilder {
private final UpdateCollector collector;
private final UpdateExecutor executor;
private final ButtonV3 button;
private final CardBizState bizState;
@ -340,7 +340,7 @@ public class CardManager {
public void buildUpdate(Card card) {
if (card.getCardState() == CardState.COMPLETED)
return;
Card update = collector.createUpdate(card);
Card update = executor.createUpdate(card);
CardButtonStates buttonStates = CardButtonStates.create(card.getButtonStates());
buttonStates.setActionPerformed(button);
update.setButtonStates(buttonStates.getStates());