All Downloads are FREE. Search and download functionalities are using the official Maven repository.

cn.bootx.platform.notice.controller.NcDemoController Maven / Gradle / Ivy

The newest version!
package cn.bootx.platform.notice.controller;

import cn.bootx.platform.common.core.rest.Res;
import cn.bootx.platform.common.core.rest.ResResult;
import cn.bootx.platform.notice.core.dingtalk.entity.corp.DingCorpNoticeReceive;
import cn.bootx.platform.notice.core.dingtalk.entity.msg.DingTextMsg;
import cn.bootx.platform.notice.core.template.service.MessageTemplateService;
import cn.bootx.platform.notice.core.wecom.entity.WeComNoticeReceive;
import cn.bootx.platform.notice.core.wecom.entity.msg.WeComTextMsg;
import cn.bootx.platform.notice.service.DingTalkNoticeSender;
import cn.bootx.platform.notice.service.EmailNoticeSender;
import cn.bootx.platform.notice.service.WeComNoticeSender;
import cn.bootx.platform.notice.service.WeComRobotNoticeSender;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import lombok.SneakyThrows;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;

import java.util.Collections;
import java.util.HashMap;
import java.util.Map;

@Tag(name = "nc测试")
@RestController
@RequestMapping("/nc/test")
@RequiredArgsConstructor
public class NcDemoController {

    private final MessageTemplateService messageTemplateService;

    private final EmailNoticeSender mailSendService;

    private final DingTalkNoticeSender dingTalkNoticeSender;

    private final WeComNoticeSender weComNoticeSender;

    private final WeComRobotNoticeSender weComRobotNoticeSender;

    @Operation(summary = "邮件消息测试")
    @PostMapping("/sendMsg")
    public ResResult sendMsg() {
        // 传入模板code和参数
        Map map = new HashMap<>();
        String data = messageTemplateService.rendering("code", map);
        // 调用发送
        mailSendService.sentSimpleMail("[email protected]", "测试邮件", data);
        return Res.ok();
    }

    @Operation(summary = "钉钉消息测试")
    @PostMapping("/sendDingMsg")
    public ResResult sendDingMsg() {
        DingTextMsg msg = new DingTextMsg("中文通知");
        DingCorpNoticeReceive receive = new DingCorpNoticeReceive().setUseridList(Collections.singletonList(""));
        dingTalkNoticeSender.sendTextCorpNotice(msg, receive);
        return Res.ok();
    }

    @SneakyThrows
    @Operation(summary = "钉钉图片消息测试")
    @PostMapping("/sendDingImageMsg")
    public ResResult sendDingImageMsg(MultipartFile file) {
        DingCorpNoticeReceive receive = new DingCorpNoticeReceive()
            .setUseridList(Collections.singletonList("manager7303"));
        dingTalkNoticeSender.sendImageCorpNotice(file.getInputStream(), receive);
        return Res.ok();
    }

    @SneakyThrows
    @Operation(summary = "钉钉文件消息测试")
    @PostMapping("/sendDingFileMsg")
    public ResResult sendDingFileMsg(MultipartFile file) {
        DingCorpNoticeReceive receive = new DingCorpNoticeReceive()
            .setUseridList(Collections.singletonList("manager7303"));
        dingTalkNoticeSender.sendFileCorpNotice(file.getInputStream(), file.getOriginalFilename(), receive);
        return Res.ok();
    }

    @Operation(summary = "企微消息测试")
    @PostMapping("/sendWeComMsg")
    public ResResult sendWeComMsg() {
        WeComTextMsg msg = new WeComTextMsg("企微消息测试");
        WeComNoticeReceive receive = new WeComNoticeReceive();
        receive.setUseridList(Collections.singletonList("XiaXiangMing"));
        return Res.ok(weComNoticeSender.sendTextNotice(msg, receive));
    }

    @SneakyThrows
    @Operation(summary = "企微图片消息测试")
    @PostMapping("/sendImageNotice")
    public ResResult sendImageNotice(MultipartFile file) {
        WeComNoticeReceive receive = new WeComNoticeReceive();
        receive.setUseridList(Collections.singletonList("XiaXiangMing"));
        return Res.ok(weComNoticeSender.sendImageNotice(file.getInputStream(), receive));
    }

    @Operation(summary = "企微消息撤回")
    @PostMapping("/recallNotice")
    public ResResult recallNotice(String msgId) {
        weComNoticeSender.recallNotice(msgId);
        return Res.ok();
    }

    @SneakyThrows
    @Operation(summary = "企微机器人图片发送")
    @PostMapping("/p1")
    public ResResult p1(MultipartFile file) {
        weComRobotNoticeSender.sendImageNotice("bootx", file.getInputStream());
        return Res.ok();
    }

    @SneakyThrows
    @Operation(summary = "企微机器人文件发送")
    @PostMapping("/p2")
    public ResResult p2(MultipartFile file) {
        weComRobotNoticeSender.sendFIleNotice("bootx", file.getInputStream(), file.getOriginalFilename());
        return Res.ok();
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy