220 lines
8.5 KiB
Java
220 lines
8.5 KiB
Java
package cn.van333.wxsend.business.controller;
|
||
|
||
import cn.hutool.core.util.ObjectUtil;
|
||
import cn.hutool.core.util.StrUtil;
|
||
import cn.van333.wxsend.aop.annotation.RateLimiter;
|
||
import cn.van333.wxsend.business.model.R;
|
||
import cn.van333.wxsend.business.service.LogService;
|
||
import cn.van333.wxsend.util.TokenUtil;
|
||
import cn.van333.wxsend.enums.WXMessageType;
|
||
import cn.van333.wxsend.util.WxSendUtil;
|
||
import cn.van333.wxsend.util.request.MessageRequest;
|
||
import cn.van333.wxsend.util.SourceForQLUtil;
|
||
import com.alibaba.fastjson2.JSON;
|
||
import org.slf4j.Logger;
|
||
import org.slf4j.LoggerFactory;
|
||
import org.springframework.web.bind.annotation.*;
|
||
|
||
import javax.servlet.http.HttpServletRequest;
|
||
|
||
/**
|
||
* @author Leo
|
||
* @version 1.0
|
||
* @create 2023/10/07 0007 下午 02:25
|
||
* @description:
|
||
*/
|
||
@RestController
|
||
@RequestMapping("/wx")
|
||
public class WXController {
|
||
private static final Logger logger = LoggerFactory.getLogger(LogService.class);
|
||
|
||
@RequestMapping(value = "/send")
|
||
@ResponseBody
|
||
@RateLimiter(time = 1, count = 60)
|
||
public R send(@RequestBody MessageRequest message) throws Exception {
|
||
|
||
logger.info(message.toString());
|
||
if (!TokenUtil.checkToken(message.getVanToken())) {
|
||
return R.error("vanToken无效");
|
||
}
|
||
if (!StrUtil.isAllNotEmpty(message.getTitle(), message.getText())) {
|
||
return R.error("缺少标题和内容");
|
||
}
|
||
if (StrUtil.isEmpty(message.getMessageType())) {
|
||
return R.error("缺少消息类型");
|
||
}
|
||
if (ObjectUtil.isEmpty(WXMessageType.valueOf(message.getMessageType()))) {
|
||
return R.error("消息类型不存在");
|
||
}
|
||
String result = WxSendUtil.sendNotify(message.getTitle(), message.getText(), message.getTouser(), WXMessageType.valueOf(message.getMessageType()));
|
||
return R.ok(result);
|
||
|
||
}
|
||
|
||
/**
|
||
* @description 会获取不到vanToken 和 touser
|
||
* source 代表来源,因为有四个青龙面板,所以需要区分
|
||
*
|
||
* @param message
|
||
* @return cn.van333.wxsend.business.model.R
|
||
* @throws
|
||
* */
|
||
@RequestMapping(value = "/send/ql")
|
||
@ResponseBody
|
||
@RateLimiter(time = 5, count = 60)
|
||
public R sendToQL(HttpServletRequest request, @RequestBody MessageRequest message) throws Exception {
|
||
logger.info("message 打印---{}",JSON.toJSONString(message));
|
||
String vanToken = request.getHeader("vanToken");
|
||
if (StrUtil.isEmpty(vanToken)) {
|
||
return R.error("vanToken为空");
|
||
}
|
||
if (!TokenUtil.checkToken(vanToken)) {
|
||
return R.error("vanToken无效");
|
||
}
|
||
String source = request.getHeader("source");
|
||
if (StrUtil.isEmpty(source)) {
|
||
return R.error("来源为空");
|
||
}
|
||
if (!StrUtil.isAllNotEmpty(message.getTitle(), message.getText())) {
|
||
return R.error("缺少标题和内容");
|
||
}
|
||
logger.info("vanToken 打印---{}",vanToken);
|
||
logger.info("source 打印---{}",source);
|
||
String sourceForQL = SourceForQLUtil.transferSource(source);
|
||
if (!StrUtil.isAllNotEmpty(message.getTitle(), message.getText())) {
|
||
return R.error("缺少标题和内容");
|
||
}
|
||
String result = WxSendUtil.sendNotify("("+sourceForQL+") "+message.getTitle(), message.getText(), message.getTouser(), WXMessageType.QL);
|
||
logger.info("result 打印---{}",result);
|
||
return R.ok(result);
|
||
|
||
}
|
||
|
||
@RequestMapping(value = "/send/qh")
|
||
@ResponseBody
|
||
@RateLimiter(time = 1, count = 60)
|
||
public R sendToQH(@RequestBody MessageRequest message) throws Exception {
|
||
logger.info(message.toString());
|
||
|
||
if (!TokenUtil.checkToken(message.getVanToken())) {
|
||
return R.error("vanToken无效");
|
||
}
|
||
if (!StrUtil.isAllNotEmpty(message.getTitle(), message.getText())) {
|
||
return R.error("缺少标题和内容");
|
||
}
|
||
String result = WxSendUtil.sendNotify(message.getTitle(), message.getText(), message.getTouser(), WXMessageType.QH);
|
||
return R.ok(result);
|
||
}
|
||
|
||
@RequestMapping(value = "/send/mt")
|
||
@ResponseBody
|
||
@RateLimiter(time = 10, count = 60)
|
||
public R sendToMT(@RequestBody MessageRequest message) throws Exception {
|
||
logger.info(message.toString());
|
||
|
||
if (!TokenUtil.checkToken(message.getVanToken())) {
|
||
return R.error("vanToken无效");
|
||
}
|
||
if (!StrUtil.isAllNotEmpty(message.getTitle(), message.getText())) {
|
||
return R.error("缺少标题和内容");
|
||
}
|
||
String result = WxSendUtil.sendNotify(message.getTitle(), message.getText(), message.getTouser(), WXMessageType.MT);
|
||
return R.ok(result);
|
||
}
|
||
|
||
@RequestMapping(value = "/send/imt")
|
||
@ResponseBody
|
||
@RateLimiter(time = 1, count = 60)
|
||
public R sendToIMT(@RequestBody MessageRequest message) throws Exception {
|
||
logger.info(message.toString());
|
||
|
||
if (!TokenUtil.checkToken(message.getVanToken())) {
|
||
return R.error("vanToken无效");
|
||
}
|
||
if (!StrUtil.isAllNotEmpty(message.getTitle(), message.getText())) {
|
||
return R.error("缺少标题和内容");
|
||
}
|
||
String result = WxSendUtil.sendNotify(message.getTitle(), message.getText(), message.getTouser(), WXMessageType.IMT);
|
||
return R.ok(result);
|
||
}
|
||
|
||
@RequestMapping(value = "/send/ty")
|
||
@ResponseBody
|
||
@RateLimiter(time = 10, count = 60)
|
||
public R sendToTY(@RequestBody MessageRequest message) throws Exception {
|
||
logger.info(message.toString());
|
||
|
||
if (!TokenUtil.checkToken(message.getVanToken())) {
|
||
return R.error("vanToken无效");
|
||
}
|
||
if (!StrUtil.isAllNotEmpty(message.getTitle(), message.getText())) {
|
||
return R.error("缺少标题和内容");
|
||
}
|
||
String result = WxSendUtil.sendNotify(message.getTitle(), message.getText(), message.getTouser(), WXMessageType.TY);
|
||
return R.ok(result);
|
||
}
|
||
|
||
@RequestMapping(value = "/send/lf")
|
||
@ResponseBody
|
||
@RateLimiter(time = 5, count = 60)
|
||
public R sendToLF(HttpServletRequest request, @RequestBody MessageRequest message) throws Exception {
|
||
logger.info("message 打印---{}",JSON.toJSONString(message));
|
||
String vanToken = request.getHeader("vanToken");
|
||
if (StrUtil.isEmpty(vanToken)) {
|
||
return R.error("vanToken为空");
|
||
}
|
||
if (!TokenUtil.checkToken(vanToken)) {
|
||
return R.error("vanToken无效");
|
||
}
|
||
String source = request.getHeader("source");
|
||
if (StrUtil.isEmpty(source)) {
|
||
return R.error("来源为空");
|
||
}
|
||
if (!StrUtil.isAllNotEmpty(message.getTitle(), message.getText())) {
|
||
return R.error("缺少标题和内容");
|
||
}
|
||
logger.info("vanToken 打印---{}",vanToken);
|
||
logger.info("source 打印---{}",source);
|
||
String sourceForQL = SourceForQLUtil.transferSource(source);
|
||
if (!StrUtil.isAllNotEmpty(message.getTitle(), message.getText())) {
|
||
return R.error("缺少标题和内容");
|
||
}
|
||
String result = WxSendUtil.sendNotify("("+sourceForQL+") "+message.getTitle(), message.getText(), message.getTouser(), WXMessageType.LF);
|
||
logger.info("result 打印---{}",result);
|
||
return R.ok(result);
|
||
|
||
}
|
||
|
||
@RequestMapping(value = "/send/jd")
|
||
@ResponseBody
|
||
@RateLimiter(time = 5, count = 60)
|
||
public R sendToJD(HttpServletRequest request, @RequestBody MessageRequest message) throws Exception {
|
||
logger.info("message 打印---{}",JSON.toJSONString(message));
|
||
String vanToken = request.getHeader("vanToken");
|
||
if (StrUtil.isEmpty(vanToken)) {
|
||
return R.error("vanToken为空");
|
||
}
|
||
if (!TokenUtil.checkToken(vanToken)) {
|
||
return R.error("vanToken无效");
|
||
}
|
||
String source = request.getHeader("source");
|
||
if (StrUtil.isEmpty(source)) {
|
||
return R.error("来源为空");
|
||
}
|
||
if (!StrUtil.isAllNotEmpty(message.getTitle(), message.getText())) {
|
||
return R.error("缺少标题和内容");
|
||
}
|
||
logger.info("vanToken 打印---{}",vanToken);
|
||
logger.info("source 打印---{}",source);
|
||
String sourceForQL = SourceForQLUtil.transferSource(source);
|
||
if (!StrUtil.isAllNotEmpty(message.getTitle(), message.getText())) {
|
||
return R.error("缺少标题和内容");
|
||
}
|
||
String result = WxSendUtil.sendNotify("("+sourceForQL+") "+message.getTitle(), message.getText(), message.getTouser(), WXMessageType.JD);
|
||
logger.info("result 打印---{}",result);
|
||
return R.ok(result);
|
||
|
||
}
|
||
|
||
}
|