MessageCenterServiceImpl.java 1.58 KB
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.sdk.api.IMessageCenterService;
import cn.fw.hestia.sdk.params.TemplateMessageParam;
import cn.fw.hestia.service.buz.MessageCenterBizService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import javax.validation.Valid;
import javax.validation.constraints.NotNull;

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;

    @Autowired
    public MessageCenterServiceImpl(final MessageCenterBizService messageCenterBizService) {
        this.messageCenterBizService = messageCenterBizService;
    }

    @PostMapping("/send")
    @Override
    @ControllerMethod("发送模板消息")
    public Message<Long> send(@Valid @RequestBody TemplateMessageParam templateMessageParam) {
        return success(messageCenterBizService.saveMessage(templateMessageParam));
    }

    @Override
    @DeleteMapping("/revoke")
    @ControllerMethod("撤回消息")
    public Message<Boolean> revokeMessage(@NotNull(message = "Token不能为空") Long sceneToken) {
        return success(messageCenterBizService.revokeMessage(sceneToken));
    }
}