Commit 9dbfcaf8 authored by 黎博's avatar 黎博

update

parent 67196c5e
package cn.qg.holmes.entity.ding;
import com.alibaba.fastjson.JSONObject;
import lombok.Data;
@Data
public class LinkEntity {
private String msgType;
// 显示标题
private String title;
// 显示内容
private String content;
// icon url
private String picUrl;
// 内容对链接
private String messageUrl;
public String getMsgType() {
return "link";
}
public String getJSONObjectString() {
// text类型
JSONObject linkContent = new JSONObject();
linkContent.put("title", this.getTitle());
linkContent.put("text", this.getContent());
linkContent.put("picUrl", this.getPicUrl());
linkContent.put("messageUrl", this.getMessageUrl());
JSONObject json = new JSONObject();
json.put("msgtype", this.getMsgType());
json.put("link", linkContent);
return json.toJSONString();
}
}
package cn.qg.holmes.entity.ding;
import com.alibaba.fastjson.JSONObject;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
@Data
public class MarkdownEntity {
private String msgType;
// 显示标题
private String title;
// 显示内容
private String content;
// 是否at所有人
private Boolean isAtAll;
// 被@人的手机号(在content里添加@人的手机号)
private List<String> atMobiles;
public String getMsgType() {
return "markdown";
}
public String getJSONObjectString() {
// markdown类型
JSONObject markdownContent = new JSONObject();
markdownContent.put("title", this.getTitle());
markdownContent.put("text", this.getContent());
// at some body
JSONObject atMobile = new JSONObject();
if(this.getAtMobiles().size() > 0){
List<String> mobiles = new ArrayList<String>();
for (int i=0;i<this.getAtMobiles().size();i++){
mobiles.add(this.getAtMobiles().get(i));
}
if(mobiles.size()>0){
atMobile.put("atMobiles", mobiles);
}
atMobile.put("isAtAll", this.getIsAtAll());
}
JSONObject json = new JSONObject();
json.put("msgtype", this.getMsgType());
json.put("markdown", markdownContent);
json.put("at", atMobile);
return json.toJSONString();
}
}
package cn.qg.holmes.utils; package cn.qg.holmes.utils;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import lombok.extern.slf4j.Slf4j;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
@Slf4j
public class DingdingUtils { public class DingdingUtils {
public static boolean sendToDingding(String jsonString, String webhook) { public static boolean sendToDingding(String jsonString, String webhook) {
Map<String, Object> headers = new HashMap<>(); Map<String, Object> headers = new HashMap<>();
headers.put("Content-Type", "application/json; charset=utf-8"); headers.put("Content-Type", "application/json; charset=utf-8");
HttpClientUtils.doPostJson(webhook, jsonString, headers); JSONObject result = HttpClientUtils.doPostJson(webhook, jsonString, headers);
return true; log.info("发送给钉钉: {}, 内容:{}, 钉钉返回结果:{}", webhook, jsonString, result);
return result.get("errmsg").equals("ok");
}
public static String buildMarkdownMsg(String key, String summary, String creator, String assignee, String priority) {
Map<String, Object> markdown = new HashMap<>();
Map<String, String> content = new HashMap<>();
markdown.put("msgtype", "markdown");
String title = creator + "提交了BUG:" + key;
content.put("title", title);
content.put("text", "##" + title + "\n" + "### 概要:" + summary + "(http://jira2.quantgroup.cn/browse/" + key + ")"+ "\n" + "- 优先级:" + priority + "\n" + "- 经办人:" + assignee);
markdown.put("markdown", content);
return JSON.toJSONString(markdown);
} }
} }
package cn.qg.holmes.utils; package cn.qg.holmes.utils;
import cn.qg.holmes.entity.ding.LinkEntity; import com.alibaba.fastjson.JSON;
import cn.qg.holmes.entity.ding.MarkdownEntity;
import com.jayway.jsonpath.JsonPath; import com.jayway.jsonpath.JsonPath;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import java.util.HashMap;
import java.util.Map;
@Slf4j @Slf4j
public class JiraWebhookUtils { public class JiraWebhookUtils {
...@@ -19,18 +21,19 @@ public class JiraWebhookUtils { ...@@ -19,18 +21,19 @@ public class JiraWebhookUtils {
String key = JsonPath.read(jiraData, "$.issue.key"); String key = JsonPath.read(jiraData, "$.issue.key");
String summary = JsonPath.read(jiraData, "$.issue.fields.summary"); String summary = JsonPath.read(jiraData, "$.issue.fields.summary");
String priority = JsonPath.read(jiraData, "$.issue.fields.priority.name"); String priority = JsonPath.read(jiraData, "$.issue.fields.priority.name");
// LinkEntity linkEntity = new LinkEntity(); String markdownMsg = DingdingUtils.buildMarkdownMsg(key, summary, creator, assignee, priority);
// linkEntity.setTitle(creator + " 提交了BUG:" + key); DingdingUtils.sendToDingding(markdownMsg, url);
// String content = "标题:" + summary + "\n" + "优先级:" + priority + "\n" + "报告人:" + creator + "\n" + "经办人:" + assignee; }
// linkEntity.setContent(content);
// linkEntity.setMessageUrl(null);
// linkEntity.setMessageUrl("http://jira2.quantgroup.cn/browse/" + key);
// DingdingUtils.sendToDingding(linkEntity.getJSONObjectString(), url);
MarkdownEntity markdownEntity = new MarkdownEntity();
markdownEntity.setTitle(creator + " 提交了BUG:" + key);
String content = "标题:" + summary + "\n" + "优先级:" + priority + "\n" + "经办人:" + assignee;
markdownEntity.setContent(content);
DingdingUtils.sendToDingding(markdownEntity.getJSONObjectString(), url);
} }
public static void main(String[] args) {
String url = "https://oapi.dingtalk.com/robot/send?access_token=835663338d638e40daaf3ab358af741ef0680a826a962c91bedc53b149d85ee1";
Map<String, Object> markdown = new HashMap<>();
Map<String, String> content = new HashMap<>();
markdown.put("msgtype", "markdown");
content.put("title", "黎博提交了BUG:CSXT-142");
content.put("text", "## 黎博提交了BUG:CSXT-142" + "\n" + "### 概要:[【羊小咩v7.6.00】【iOS】【搜索】首页主搜索和专题页或者满减页等搜索逻辑问题]" + "(http://jira2.quantgroup.cn/browse/CSXT-143)"+ "\n" + "优先级:" + "P3一般" + "\n" + "经办人:" + "于巧玲");
markdown.put("markdown", content);
DingdingUtils.sendToDingding(JSON.toJSONString(markdown), url);
} }
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment