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";

@ -25,14 +25,50 @@ public class DingDingContentModel extends ContentModel {
private String sendType;
/**
*
* markdownActionCard
*/
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
*/
private String mediaId;
// ...
}

@ -14,19 +14,39 @@ import lombok.ToString;
@AllArgsConstructor
public enum SendMessageType {
TEXT(10, "文本"),
VOICE(20, "语音"),
VIDEO(30, "视频"),
NEWS(40, "图文"),
TEXT_CARD(50, "文本卡片"),
FILE(60, "文件"),
MINI_PROGRAM_NOTICE(70, "小程序通知"),
MARKDOWN(80, "markdown"),
TEMPLATE_CARD(90, "模板卡片"),
IMAGE(100, "图片"),
TEXT("10", "文本", "text"),
VOICE("20", "语音", null),
VIDEO("30", "视频", null),
NEWS("40", "图文", "feedCard"),
TEXT_CARD("50", "文本卡片", null),
FILE("60", "文件", null),
MINI_PROGRAM_NOTICE("70", "小程序通知", null),
MARKDOWN("80", "markdown", "markdown"),
TEMPLATE_CARD("90", "模板卡片", null),
IMAGE("100", "图片", null),
LINK("110", "链接消息", "link"),
ACTION_CARD("120", "跳转卡片消息", "actionCard"),
;
private Integer code;
private String code;
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
@Data
@AllArgsConstructor
@Builder
public static class LinkVO {
/**
* text
@ -115,6 +116,7 @@ public class DingDingRobotParam {
@NoArgsConstructor
@Data
@AllArgsConstructor
@Builder
public static class MarkdownVO {
/**
* title
@ -132,6 +134,7 @@ public class DingDingRobotParam {
@NoArgsConstructor
@Data
@AllArgsConstructor
@Builder
public static class ActionCardVO {
/**
* title
@ -156,6 +159,7 @@ public class DingDingRobotParam {
@NoArgsConstructor
@Data
@AllArgsConstructor
@Builder
public static class BtnsVO {
/**
* title
@ -174,6 +178,7 @@ public class DingDingRobotParam {
@NoArgsConstructor
@Data
@AllArgsConstructor
@Builder
public static class FeedCardVO {
/**
* links
@ -186,6 +191,7 @@ public class DingDingRobotParam {
@NoArgsConstructor
@Data
@AllArgsConstructor
@Builder
public static class LinksVO {
/**
* title

@ -4,6 +4,7 @@ import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.http.HttpUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.google.common.base.Throwables;
import com.java3y.austin.common.constant.AustinConstant;
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.model.DingDingContentModel;
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.DingDingRobotResult;
import com.java3y.austin.handler.handler.BaseHandler;
@ -25,6 +27,7 @@ import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.List;
/**
*
@ -72,8 +75,30 @@ public class DingDingRobotHandler extends BaseHandler implements Handler {
// 消息类型以及内容相关
DingDingContentModel contentModel = (DingDingContentModel) taskInfo.getContentModel();
return DingDingRobotParam.builder().at(atVo).msgtype("text")
.text(DingDingRobotParam.TextVO.builder().content(contentModel.getContent()).build()).build();
DingDingRobotParam param = DingDingRobotParam.builder().at(atVo)
.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() {
SupportThreadPoolConfig.getPendingSingleThreadPool().execute(() -> {
while (true) {
tencentSmsReceipt.pull();
yunPianSmsReceipt.pull();
// TODO 回执这里自行打开(免得报错)
// tencentSmsReceipt.pull();
// yunPianSmsReceipt.pull();
try {
Thread.sleep(200);
} catch (InterruptedException e) {

@ -30,7 +30,7 @@ import java.util.stream.Collectors;
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 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<>();
static {

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

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

Loading…
Cancel
Save