MessageCenterServiceImpl.java
2.44 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
package cn.fw.hestia.server.controller.api;
import cn.fw.common.web.annotation.ControllerMethod;
import cn.fw.data.base.domain.common.Message;
import cn.fw.hestia.common.utils.MessageFormatUtil;
import cn.fw.hestia.sdk.api.IMessageCenterService;
import cn.fw.hestia.sdk.params.TemplateMessageParam;
import cn.fw.hestia.sdk.params.ValidList;
import cn.fw.hestia.sdk.result.SendResult;
import cn.fw.hestia.service.buz.MessageCenterBizService;
import lombok.Getter;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import javax.validation.constraints.NotNull;
import java.util.List;
import static cn.fw.common.businessvalidator.Validator.BV;
import static cn.fw.common.web.util.ResultBuilder.success;
/**
* @author : kurisu
* @className : MessageCenterServiceImpl
* @description :
* @date: 2021-09-23 15:39
*/
@Slf4j
@RestController
@RequestMapping("/api/hestia/mc")
public class MessageCenterServiceImpl implements IMessageCenterService {
private final MessageCenterBizService messageCenterBizService;
@Value("${task.max-size}")
@Getter
private int maxSize;
@Autowired
public MessageCenterServiceImpl(final MessageCenterBizService messageCenterBizService) {
this.messageCenterBizService = messageCenterBizService;
}
@PostMapping("/send")
@Override
@ControllerMethod("发送模板消息")
public Message<SendResult> send(@Valid @RequestBody TemplateMessageParam templateMessageParam) {
return success(messageCenterBizService.saveMessage(templateMessageParam));
}
@PostMapping("/sendBatch")
@Override
@ControllerMethod("批量发送模板消息")
public Message<List<SendResult>> sendBatch(@RequestBody @Valid ValidList<TemplateMessageParam> paramList) {
BV.isNotEmpty(paramList, () -> "消息列表不能为空");
BV.isTrue(paramList.size() <= getMaxSize(), () -> MessageFormatUtil.MessageFormatTransfer("最多支持一次性发送{0}条", getMaxSize()));
return success(messageCenterBizService.saveBatchMessage(paramList));
}
@Override
@DeleteMapping("/revoke")
@ControllerMethod("撤回消息")
public Message<Boolean> revokeMessage(@NotNull(message = "Token不能为空") Long sceneToken) {
return success(messageCenterBizService.revokeMessage(sceneToken));
}
}