diff --git a/austin-handler/src/main/java/com/java3y/austin/handler/handler/impl/DingDingWorkNoticeHandler.java b/austin-handler/src/main/java/com/java3y/austin/handler/handler/impl/DingDingWorkNoticeHandler.java index a333fba..10d19c4 100644 --- a/austin-handler/src/main/java/com/java3y/austin/handler/handler/impl/DingDingWorkNoticeHandler.java +++ b/austin-handler/src/main/java/com/java3y/austin/handler/handler/impl/DingDingWorkNoticeHandler.java @@ -209,8 +209,10 @@ public class DingDingWorkNoticeHandler extends BaseHandler implements Handler { // 优先去除messageId,如果未传入messageId,则按照模板id去除 if (CollUtil.isNotEmpty(recallTaskInfo.getRecallMessageId())) { - String taskId = redisTemplate.opsForValue().get(DING_DING_RECALL_KEY_PREFIX + recallTaskInfo.getMessageTemplateId()); - recallBiz(account, accessToken, taskId); + for (String messageId : recallTaskInfo.getRecallMessageId()) { + String taskId = redisTemplate.opsForValue().get(DING_DING_RECALL_KEY_PREFIX + messageId); + recallBiz(account, accessToken, taskId); + } } else { while (redisTemplate.opsForList().size(DING_DING_RECALL_KEY_PREFIX + recallTaskInfo.getMessageTemplateId()) > 0) { String taskId = redisTemplate.opsForList().leftPop(DING_DING_RECALL_KEY_PREFIX + recallTaskInfo.getMessageTemplateId()); diff --git a/austin-web/src/main/java/com/java3y/austin/web/controller/MessageTemplateController.java b/austin-web/src/main/java/com/java3y/austin/web/controller/MessageTemplateController.java index 5c75116..889b346 100644 --- a/austin-web/src/main/java/com/java3y/austin/web/controller/MessageTemplateController.java +++ b/austin-web/src/main/java/com/java3y/austin/web/controller/MessageTemplateController.java @@ -155,7 +155,7 @@ public class MessageTemplateController { /** - * 撤回接口 + * 撤回接口(根据模板id撤回) */ @PostMapping("recall/{id}") @ApiOperation("/撤回消息接口") diff --git a/austin-web/src/main/java/com/java3y/austin/web/controller/SendController.java b/austin-web/src/main/java/com/java3y/austin/web/controller/SendController.java index b8f42c5..c8a8a7e 100644 --- a/austin-web/src/main/java/com/java3y/austin/web/controller/SendController.java +++ b/austin-web/src/main/java/com/java3y/austin/web/controller/SendController.java @@ -4,6 +4,7 @@ package com.java3y.austin.web.controller; import com.java3y.austin.service.api.domain.BatchSendRequest; import com.java3y.austin.service.api.domain.SendRequest; import com.java3y.austin.service.api.domain.SendResponse; +import com.java3y.austin.service.api.service.RecallService; import com.java3y.austin.service.api.service.SendService; import com.java3y.austin.web.annotation.AustinAspect; import io.swagger.annotations.Api; @@ -25,6 +26,9 @@ public class SendController { @Autowired private SendService sendService; + @Autowired + private RecallService recallService; + /** * 单个文案下发相同的人 @@ -49,4 +53,16 @@ public class SendController { public SendResponse batchSend(@RequestBody BatchSendRequest batchSendRequest) { return sendService.batchSend(batchSendRequest); } + + /** + * 优先根据messageId撤回消息,如果messageId不存在则根据模板id撤回 + * + * @param sendRequest + * @return + */ + @ApiOperation(value = "撤回消息接口", notes = "优先根据messageId撤回消息,如果messageId不存在则根据模板id撤回") + @PostMapping("/recall") + public SendResponse recall(@RequestBody SendRequest sendRequest) { + return recallService.recall(sendRequest); + } }