Merge branch 'master' into vip

master
3y 3 years ago
commit 4a62c23233

@ -38,7 +38,7 @@ public class AustinConstant {
* *
* ( ) * ( )
* () * ()
* * ()
*/ */
public static final String SEND_ALL = "@all"; public static final String SEND_ALL = "@all";

@ -25,14 +25,50 @@ public class DingDingContentModel extends ContentModel {
private String sendType; private String sendType;
/** /**
* * markdownActionCard
*/ */
private String content; private String content;
/**
* markdownFeedCardActionCard
*/
private String title;
/**
* ActionCard
*/
private String btnOrientation;
/**
* ActionCardjson
* [{\"title\":\"别点我\",\"actionURL\":\"https://www.baidu.com/\"},{\"title\":\"没关系,还是点我把\",\"actionURL\":\"https://www.baidu.com/\\t\"}]
*/
private String btns;
/**
* URLFeedCardURL
*/
private String url;
/**
* URLFeedCardURL
*/
private String picUrl;
/**
* FeedCard
* "[{\"picUrl\":\"https://img.alicdn.com/tfs/TB1NwmBEL9TBuNjy1zbXXXpepXa-2400-1218.png\",\"title\":\"{$title1}\",\"url\":\"https://www.dingtalk.com/\"},{\"picUrl\":\"https://img.alicdn.com/tfs/TB1NwmBEL9TBuNjy1zbXXXpepXa-2400-1218.png\\t\",\"title\":\"时代的火车向前开2\",\"url\":\"https://www.dingtalk.com/\"}]"}
*/
private String feedCards;
/** /**
* 使ID * 使ID
*/ */
private String mediaId; private String mediaId;
// ... // ...
} }

@ -14,19 +14,39 @@ import lombok.ToString;
@AllArgsConstructor @AllArgsConstructor
public enum SendMessageType { public enum SendMessageType {
TEXT(10, "文本"), TEXT("10", "文本", "text"),
VOICE(20, "语音"), VOICE("20", "语音", null),
VIDEO(30, "视频"), VIDEO("30", "视频", null),
NEWS(40, "图文"), NEWS("40", "图文", "feedCard"),
TEXT_CARD(50, "文本卡片"), TEXT_CARD("50", "文本卡片", null),
FILE(60, "文件"), FILE("60", "文件", null),
MINI_PROGRAM_NOTICE(70, "小程序通知"), MINI_PROGRAM_NOTICE("70", "小程序通知", null),
MARKDOWN(80, "markdown"), MARKDOWN("80", "markdown", "markdown"),
TEMPLATE_CARD(90, "模板卡片"), TEMPLATE_CARD("90", "模板卡片", null),
IMAGE(100, "图片"), IMAGE("100", "图片", null),
LINK("110", "链接消息", "link"),
ACTION_CARD("120", "跳转卡片消息", "actionCard"),
; ;
private Integer code; private String code;
private String description; private String description;
private String dingDingRobotType;
/**
* codeType
*
* @param code
* @return
*/
public static String getDingDingRobotTypeByCode(String code) {
for (SendMessageType value : SendMessageType.values()) {
if (value.getCode().equals(code)) {
return value.getDingDingRobotType();
}
}
return null;
}
} }

@ -90,6 +90,7 @@ public class DingDingRobotParam {
@NoArgsConstructor @NoArgsConstructor
@Data @Data
@AllArgsConstructor @AllArgsConstructor
@Builder
public static class LinkVO { public static class LinkVO {
/** /**
* text * text
@ -115,6 +116,7 @@ public class DingDingRobotParam {
@NoArgsConstructor @NoArgsConstructor
@Data @Data
@AllArgsConstructor @AllArgsConstructor
@Builder
public static class MarkdownVO { public static class MarkdownVO {
/** /**
* title * title
@ -132,6 +134,7 @@ public class DingDingRobotParam {
@NoArgsConstructor @NoArgsConstructor
@Data @Data
@AllArgsConstructor @AllArgsConstructor
@Builder
public static class ActionCardVO { public static class ActionCardVO {
/** /**
* title * title
@ -156,6 +159,7 @@ public class DingDingRobotParam {
@NoArgsConstructor @NoArgsConstructor
@Data @Data
@AllArgsConstructor @AllArgsConstructor
@Builder
public static class BtnsVO { public static class BtnsVO {
/** /**
* title * title
@ -174,6 +178,7 @@ public class DingDingRobotParam {
@NoArgsConstructor @NoArgsConstructor
@Data @Data
@AllArgsConstructor @AllArgsConstructor
@Builder
public static class FeedCardVO { public static class FeedCardVO {
/** /**
* links * links
@ -186,6 +191,7 @@ public class DingDingRobotParam {
@NoArgsConstructor @NoArgsConstructor
@Data @Data
@AllArgsConstructor @AllArgsConstructor
@Builder
public static class LinksVO { public static class LinksVO {
/** /**
* title * title

@ -4,6 +4,7 @@ import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import cn.hutool.http.HttpUtil; import cn.hutool.http.HttpUtil;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.google.common.base.Throwables; import com.google.common.base.Throwables;
import com.java3y.austin.common.constant.AustinConstant; import com.java3y.austin.common.constant.AustinConstant;
import com.java3y.austin.common.constant.SendAccountConstant; import com.java3y.austin.common.constant.SendAccountConstant;
@ -11,6 +12,7 @@ import com.java3y.austin.common.domain.TaskInfo;
import com.java3y.austin.common.dto.account.DingDingRobotAccount; import com.java3y.austin.common.dto.account.DingDingRobotAccount;
import com.java3y.austin.common.dto.model.DingDingContentModel; import com.java3y.austin.common.dto.model.DingDingContentModel;
import com.java3y.austin.common.enums.ChannelType; import com.java3y.austin.common.enums.ChannelType;
import com.java3y.austin.common.enums.SendMessageType;
import com.java3y.austin.handler.domain.dingding.DingDingRobotParam; import com.java3y.austin.handler.domain.dingding.DingDingRobotParam;
import com.java3y.austin.handler.domain.dingding.DingDingRobotResult; import com.java3y.austin.handler.domain.dingding.DingDingRobotResult;
import com.java3y.austin.handler.handler.BaseHandler; import com.java3y.austin.handler.handler.BaseHandler;
@ -25,6 +27,7 @@ import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec; import javax.crypto.spec.SecretKeySpec;
import java.net.URLEncoder; import java.net.URLEncoder;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List;
/** /**
* *
@ -72,8 +75,30 @@ public class DingDingRobotHandler extends BaseHandler implements Handler {
// 消息类型以及内容相关 // 消息类型以及内容相关
DingDingContentModel contentModel = (DingDingContentModel) taskInfo.getContentModel(); DingDingContentModel contentModel = (DingDingContentModel) taskInfo.getContentModel();
return DingDingRobotParam.builder().at(atVo).msgtype("text") DingDingRobotParam param = DingDingRobotParam.builder().at(atVo)
.text(DingDingRobotParam.TextVO.builder().content(contentModel.getContent()).build()).build(); .msgtype(SendMessageType.getDingDingRobotTypeByCode(contentModel.getSendType()))
.build();
if (SendMessageType.TEXT.getCode().equals(contentModel.getSendType())) {
param.setText(DingDingRobotParam.TextVO.builder().content(contentModel.getContent()).build());
}
if (SendMessageType.MARKDOWN.getCode().equals(contentModel.getSendType())) {
param.setMarkdown(DingDingRobotParam.MarkdownVO.builder().title(contentModel.getTitle()).text(contentModel.getContent()).build());
}
if (SendMessageType.LINK.getCode().equals(contentModel.getSendType())) {
param.setLink(DingDingRobotParam.LinkVO.builder().title(contentModel.getTitle()).text(contentModel.getContent()).messageUrl(contentModel.getUrl()).picUrl(contentModel.getPicUrl()).build());
}
if (SendMessageType.NEWS.getCode().equals(contentModel.getSendType())) {
List<DingDingRobotParam.FeedCardVO.LinksVO> linksVOS = JSON.parseArray(contentModel.getFeedCards(), DingDingRobotParam.FeedCardVO.LinksVO.class);
DingDingRobotParam.FeedCardVO feedCardVO = DingDingRobotParam.FeedCardVO.builder().links(linksVOS).build();
param.setFeedCard(feedCardVO);
}
if (SendMessageType.ACTION_CARD.getCode().equals(contentModel.getSendType())) {
List<DingDingRobotParam.ActionCardVO.BtnsVO> btnsVOS = JSON.parseArray(contentModel.getBtns(), DingDingRobotParam.ActionCardVO.BtnsVO.class);
DingDingRobotParam.ActionCardVO actionCardVO = DingDingRobotParam.ActionCardVO.builder().title(contentModel.getTitle()).text(contentModel.getContent()).btnOrientation(contentModel.getBtnOrientation()).btns(btnsVOS).build();
param.setActionCard(actionCardVO);
}
return param;
} }
/** /**

@ -43,8 +43,10 @@ public class SmsReceipt {
private void init() { private void init() {
SupportThreadPoolConfig.getPendingSingleThreadPool().execute(() -> { SupportThreadPoolConfig.getPendingSingleThreadPool().execute(() -> {
while (true) { while (true) {
tencentSmsReceipt.pull();
yunPianSmsReceipt.pull(); // TODO 回执这里自行打开(免得报错)
// tencentSmsReceipt.pull();
// yunPianSmsReceipt.pull();
try { try {
Thread.sleep(200); Thread.sleep(200);
} catch (InterruptedException e) { } catch (InterruptedException e) {

@ -30,7 +30,7 @@ import java.util.stream.Collectors;
public class AfterParamCheckAction implements BusinessProcess<SendTaskModel> { public class AfterParamCheckAction implements BusinessProcess<SendTaskModel> {
public static final String PHONE_REGEX_EXP = "^((13[0-9])|(14[5,7,9])|(15[0-3,5-9])|(166)|(17[0-9])|(18[0-9])|(19[1,8,9]))\\d{8}$"; public static final String PHONE_REGEX_EXP = "^((13[0-9])|(14[5,7,9])|(15[0-3,5-9])|(166)|(17[0-9])|(18[0-9])|(19[1,8,9]))\\d{8}$";
public static final String EMAIL_REGEX_EXP = "^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,6}$"; public static final String EMAIL_REGEX_EXP = "^[A-Za-z0-9-_\\u4e00-\\u9fa5]+@[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)+$";
public static final HashMap<Integer, String> CHANNEL_REGEX_EXP = new HashMap<>(); public static final HashMap<Integer, String> CHANNEL_REGEX_EXP = new HashMap<>();
static { static {

@ -54,7 +54,6 @@ public class MessageTemplateController {
@Value("${austin.business.upload.crowd.path}") @Value("${austin.business.upload.crowd.path}")
private String dataPath; private String dataPath;
/** /**
* Id * Id
* Id * Id
@ -62,9 +61,7 @@ public class MessageTemplateController {
@PostMapping("/save") @PostMapping("/save")
@ApiOperation("/保存数据") @ApiOperation("/保存数据")
public BasicResultVO saveOrUpdate(@RequestBody MessageTemplate messageTemplate) { public BasicResultVO saveOrUpdate(@RequestBody MessageTemplate messageTemplate) {
MessageTemplate info = messageTemplateService.saveOrUpdate(messageTemplate); MessageTemplate info = messageTemplateService.saveOrUpdate(messageTemplate);
return BasicResultVO.success(info); return BasicResultVO.success(info);
} }

@ -39,6 +39,7 @@ public class ConvertMap {
/** /**
* Map() * Map()
* *
* amis(amis)
* @param obj * @param obj
* @param fieldName reduce * @param fieldName reduce
* @return * @return
@ -47,6 +48,8 @@ public class ConvertMap {
Map<String, Object> result = MapUtil.newHashMap(32); Map<String, Object> result = MapUtil.newHashMap(32);
Field[] fields = ReflectUtil.getFields(obj.getClass()); Field[] fields = ReflectUtil.getFields(obj.getClass());
for (Field field : fields) { for (Field field : fields) {
// msgContent需要打散
if (fieldName.contains(field.getName())) { if (fieldName.contains(field.getName())) {
JSONObject jsonObject; JSONObject jsonObject;
Object value = ReflectUtil.getFieldValue(obj, field); Object value = ReflectUtil.getFieldValue(obj, field);
@ -56,7 +59,11 @@ public class ConvertMap {
jsonObject = JSONObject.parseObject(JSON.toJSONString(value)); jsonObject = JSONObject.parseObject(JSON.toJSONString(value));
} }
for (String key : jsonObject.keySet()) { for (String key : jsonObject.keySet()) {
result.put(key, jsonObject.getString(key)); if (key.equals("feedCards") || key.equals("btns")) {
result.put(key, JSON.parseArray(jsonObject.getString(key)));
} else {
result.put(key, jsonObject.getString(key));
}
} }
} }
result.put(field.getName(), ReflectUtil.getFieldValue(obj, field)); result.put(field.getName(), ReflectUtil.getFieldValue(obj, field));

Loading…
Cancel
Save