|
@@ -9,8 +9,10 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.dingtalk.api.DefaultDingTalkClient;
|
|
|
import com.dingtalk.api.DingTalkClient;
|
|
|
import com.dingtalk.api.request.OapiGettokenRequest;
|
|
|
+import com.dingtalk.api.request.OapiMessageCorpconversationAsyncsendV2Request;
|
|
|
import com.dingtalk.api.request.OapiMessageCorpconversationSendbytemplateRequest;
|
|
|
import com.dingtalk.api.request.OapiServiceGetSuiteTokenRequest;
|
|
|
+import com.dingtalk.api.response.OapiMessageCorpconversationAsyncsendV2Response;
|
|
|
import com.dingtalk.api.response.OapiMessageCorpconversationSendbytemplateResponse;
|
|
|
import com.dingtalk.api.response.OapiServiceGetSuiteTokenResponse;
|
|
|
import com.management.platform.entity.CompanyDingding;
|
|
@@ -20,10 +22,12 @@ import com.management.platform.mapper.SysConfigMapper;
|
|
|
import com.management.platform.service.CompanyDingdingService;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.taobao.api.ApiException;
|
|
|
+import org.springframework.beans.factory.annotation.Value;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
import java.time.LocalDateTime;
|
|
|
+import java.util.HashMap;
|
|
|
|
|
|
/**
|
|
|
* <p>
|
|
@@ -54,6 +58,8 @@ public class CompanyDingdingServiceImpl extends ServiceImpl<CompanyDingdingMappe
|
|
|
|
|
|
@Resource
|
|
|
private SysConfigMapper sysConfigMapper;
|
|
|
+ @Value("${dingding.appId}")
|
|
|
+ private long appId;//钉钉第三方应用的appId
|
|
|
|
|
|
@Override
|
|
|
public void sendFillReportAlertMsg(Integer companyId, Long agentId, String msg, String useridList) {
|
|
@@ -65,7 +71,11 @@ public class CompanyDingdingServiceImpl extends ServiceImpl<CompanyDingdingMappe
|
|
|
// req.setDeptIdList("421897262");
|
|
|
req.setUseridList(useridList);
|
|
|
req.setTemplateId(TEMPLATE_ALERT_REPORT);
|
|
|
- req.setData("{\"msg\":\""+msg+"\"}");
|
|
|
+ JSONObject json = new JSONObject();
|
|
|
+ json.put("APPID", appId);
|
|
|
+ json.put("CORPID", dingding.getCorpid());
|
|
|
+ json.put("msg", msg);
|
|
|
+ req.setData(json.toJSONString());
|
|
|
OapiMessageCorpconversationSendbytemplateResponse rsp = null;
|
|
|
try {
|
|
|
rsp = client.execute(req, getCorpAccessToken(dingding));
|
|
@@ -90,6 +100,8 @@ public class CompanyDingdingServiceImpl extends ServiceImpl<CompanyDingdingMappe
|
|
|
json.put("project", projectNames);
|
|
|
json.put("reason", reason);
|
|
|
json.put("auditUser", auditorName);
|
|
|
+ json.put("APPID", appId);
|
|
|
+ json.put("CORPID", dingding.getCorpid());
|
|
|
req.setData(json.toJSONString());
|
|
|
OapiMessageCorpconversationSendbytemplateResponse rsp = null;
|
|
|
try {
|
|
@@ -116,6 +128,8 @@ public class CompanyDingdingServiceImpl extends ServiceImpl<CompanyDingdingMappe
|
|
|
json.put("employeeName", "张辉");
|
|
|
json.put("deptName", "质量部");
|
|
|
json.put("date", "2022-03-29");
|
|
|
+ json.put("APPID", appId);
|
|
|
+ json.put("CORPID", dingding.getCorpid());
|
|
|
req.setData(json.toJSONString());
|
|
|
OapiMessageCorpconversationSendbytemplateResponse rsp = null;
|
|
|
try {
|
|
@@ -139,6 +153,8 @@ public class CompanyDingdingServiceImpl extends ServiceImpl<CompanyDingdingMappe
|
|
|
req.setTemplateId(TEMPLATE_REPORT_WAITING_APPLY);
|
|
|
JSONObject json = new JSONObject();
|
|
|
json.put("auditNum", ""+auditNum);
|
|
|
+ json.put("APPID", appId);
|
|
|
+ json.put("CORPID", dingding.getCorpid());
|
|
|
req.setData(json.toJSONString());
|
|
|
OapiMessageCorpconversationSendbytemplateResponse rsp = null;
|
|
|
try {
|
|
@@ -159,6 +175,10 @@ public class CompanyDingdingServiceImpl extends ServiceImpl<CompanyDingdingMappe
|
|
|
req.setAgentId(agentId);
|
|
|
req.setUseridList(useridList);
|
|
|
req.setTemplateId(TEMPLATE_BUSTRIP_SETTING);
|
|
|
+ JSONObject json = new JSONObject();
|
|
|
+ json.put("APPID", appId);
|
|
|
+ json.put("CORPID", dingding.getCorpid());
|
|
|
+ req.setData(json.toJSONString());
|
|
|
OapiMessageCorpconversationSendbytemplateResponse rsp = null;
|
|
|
try {
|
|
|
rsp = client.execute(req, getCorpAccessToken(dingding));
|
|
@@ -183,6 +203,8 @@ public class CompanyDingdingServiceImpl extends ServiceImpl<CompanyDingdingMappe
|
|
|
JSONObject json = new JSONObject();
|
|
|
json.put("name", ""+title);
|
|
|
json.put("endDate", ""+endDate);
|
|
|
+ json.put("APPID", appId);
|
|
|
+ json.put("CORPID", dingding.getCorpid());
|
|
|
req.setData(json.toJSONString());
|
|
|
|
|
|
OapiMessageCorpconversationSendbytemplateResponse rsp = null;
|
|
@@ -209,6 +231,8 @@ public class CompanyDingdingServiceImpl extends ServiceImpl<CompanyDingdingMappe
|
|
|
JSONObject json = new JSONObject();
|
|
|
json.put("taskName", taskName);
|
|
|
json.put("project", project);
|
|
|
+ json.put("APPID", appId);
|
|
|
+ json.put("CORPID", dingding.getCorpid());
|
|
|
req.setData(json.toJSONString());
|
|
|
OapiMessageCorpconversationSendbytemplateResponse rsp = null;
|
|
|
try {
|
|
@@ -221,6 +245,69 @@ public class CompanyDingdingServiceImpl extends ServiceImpl<CompanyDingdingMappe
|
|
|
System.out.println(rsp.getBody());
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public void sendOAMsg(CompanyDingding dingding, String useridList, HashMap map) {
|
|
|
+ DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/message/corpconversation/asyncsend_v2");
|
|
|
+ OapiMessageCorpconversationAsyncsendV2Request request = new OapiMessageCorpconversationAsyncsendV2Request();
|
|
|
+ request.setAgentId(dingding.getAgentId());
|
|
|
+ request.setUseridList(useridList);
|
|
|
+ request.setToAllUser(false);
|
|
|
+
|
|
|
+ OapiMessageCorpconversationAsyncsendV2Request.Msg msg = new OapiMessageCorpconversationAsyncsendV2Request.Msg();
|
|
|
+// msg.setMsgtype("text");
|
|
|
+// msg.setText(new OapiMessageCorpconversationAsyncsendV2Request.Text());
|
|
|
+// msg.getText().setContent("test123");
|
|
|
+// request.setMsg(msg);
|
|
|
+//
|
|
|
+// msg.setMsgtype("image");
|
|
|
+// msg.setImage(new OapiMessageCorpconversationAsyncsendV2Request.Image());
|
|
|
+// msg.getImage().setMediaId("@lADOdvRYes0CbM0CbA");
|
|
|
+// request.setMsg(msg);
|
|
|
+//
|
|
|
+// msg.setMsgtype("file");
|
|
|
+// msg.setFile(new OapiMessageCorpconversationAsyncsendV2Request.File());
|
|
|
+// msg.getFile().setMediaId("@lADOdvRYes0CbM0CbA");
|
|
|
+// request.setMsg(msg);
|
|
|
+//
|
|
|
+// msg.setMsgtype("link");
|
|
|
+// msg.setLink(new OapiMessageCorpconversationAsyncsendV2Request.Link());
|
|
|
+// msg.getLink().setTitle("test");
|
|
|
+// msg.getLink().setText("test");
|
|
|
+// msg.getLink().setMessageUrl("test");
|
|
|
+// msg.getLink().setPicUrl("test");
|
|
|
+// request.setMsg(msg);
|
|
|
+//
|
|
|
+// msg.setMsgtype("markdown");
|
|
|
+// msg.setMarkdown(new OapiMessageCorpconversationAsyncsendV2Request.Markdown());
|
|
|
+// msg.getMarkdown().setText("##### text");
|
|
|
+// msg.getMarkdown().setTitle("### Title");
|
|
|
+// request.setMsg(msg);
|
|
|
+
|
|
|
+ msg.setOa(new OapiMessageCorpconversationAsyncsendV2Request.OA());
|
|
|
+ msg.getOa().setHead(new OapiMessageCorpconversationAsyncsendV2Request.Head());
|
|
|
+ msg.getOa().getHead().setText("这里是标题");
|
|
|
+ msg.getOa().setBody(new OapiMessageCorpconversationAsyncsendV2Request.Body());
|
|
|
+ msg.getOa().getBody().setContent("这里是内容");
|
|
|
+ msg.setMsgtype("oa");
|
|
|
+ msg.getOa().setMessageUrl("dingtalk://dingtalkclient/action/openapp?corpid=="+dingding.getCorpid()+"&container_type=work_platform&app_id="+appId+"&redirect_type=jump&redirect_url=https%3A%2F%2Fworktime.ttkuaiban.com%2F%3Fcorpid%3D%24CORPID%24");
|
|
|
+ request.setMsg(msg);
|
|
|
+
|
|
|
+// msg.setActionCard(new OapiMessageCorpconversationAsyncsendV2Request.ActionCard());
|
|
|
+// msg.getActionCard().setTitle("xxx123411111");
|
|
|
+// msg.getActionCard().setMarkdown("### 测试123111");
|
|
|
+// msg.getActionCard().setSingleTitle("测试测试");
|
|
|
+// msg.getActionCard().setSingleUrl("https://www.dingtalk.com");
|
|
|
+// msg.setMsgtype("action_card");
|
|
|
+// request.setMsg(msg);
|
|
|
+ OapiMessageCorpconversationAsyncsendV2Response rsp = null;
|
|
|
+ try {
|
|
|
+ rsp = client.execute(request, getCorpAccessToken(dingding));
|
|
|
+ } catch (Exception exception) {
|
|
|
+ exception.printStackTrace();
|
|
|
+ }
|
|
|
+ System.out.println(rsp.getBody());
|
|
|
+ }
|
|
|
+
|
|
|
private String getDDSuiteAccessToken() throws ApiException {
|
|
|
if (DingDingServiceImpl.SUITE_ACCESS_TOKEN == null || DingDingServiceImpl.suiteTokenExpireTime < System.currentTimeMillis()) {
|
|
|
DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/service/get_suite_token");
|