|
@@ -0,0 +1,74 @@
|
|
|
|
+package com.galaxis.manatee.controller;
|
|
|
|
+
|
|
|
|
+import com.alibaba.fastjson.JSON;
|
|
|
|
+import com.dingtalk.api.DefaultDingTalkClient;
|
|
|
|
+import com.dingtalk.api.DingTalkClient;
|
|
|
|
+import com.dingtalk.api.request.OapiMessageCorpconversationAsyncsendV2Request;
|
|
|
|
+import com.dingtalk.api.response.OapiMessageCorpconversationAsyncsendV2Response;
|
|
|
|
+import com.galaxis.manatee.constant.DingTalkConstant;
|
|
|
|
+import com.galaxis.manatee.dao.ChuanyunUserDao;
|
|
|
|
+import com.galaxis.manatee.entity.chuanyun.dto.U9Message;
|
|
|
|
+import com.galaxis.manatee.entity.chuanyun.dto.U9ResponseMessageDTO;
|
|
|
|
+import com.taobao.api.ApiException;
|
|
|
|
+import lombok.extern.slf4j.Slf4j;
|
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
+import org.springframework.web.bind.annotation.*;
|
|
|
|
+
|
|
|
|
+import java.time.LocalDateTime;
|
|
|
|
+import java.time.format.DateTimeFormatter;
|
|
|
|
+import java.util.ArrayList;
|
|
|
|
+import java.util.List;
|
|
|
|
+
|
|
|
|
+/**
|
|
|
|
+ * created by IntelliJ IDEA.
|
|
|
|
+ * author: xuj
|
|
|
|
+ * date: 2020/9/15
|
|
|
|
+ */
|
|
|
|
+@RestController
|
|
|
|
+@Slf4j
|
|
|
|
+public class U9WorkMessageController {
|
|
|
|
+
|
|
|
|
+ @Autowired
|
|
|
|
+ private ChuanyunUserDao chuanyunUserDao;
|
|
|
|
+
|
|
|
|
+ @PostMapping("/u9workmessage/send")
|
|
|
|
+ @ResponseBody
|
|
|
|
+ public String sendMessage(@RequestBody String userInfo) {
|
|
|
|
+ U9ResponseMessageDTO u9ResponseMessageDTO = new U9ResponseMessageDTO();
|
|
|
|
+ U9Message u9Msg = JSON.parseObject(userInfo, U9Message.class);
|
|
|
|
+ try {
|
|
|
|
+ String[] accounts = u9Msg.getUserCode().split(",");
|
|
|
|
+ List<String> requestIds = new ArrayList<String>();
|
|
|
|
+ if (accounts.length > 0) {
|
|
|
|
+ for (String accout : accounts) {
|
|
|
|
+ String dingreqId = chuanyunUserDao.findByEmployeeNumber(accout).getDingTalkAccount();
|
|
|
|
+ requestIds.add(dingreqId.substring(0, dingreqId.indexOf(".")));
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/message/corpconversation/asyncsend_v2");
|
|
|
|
+ OapiMessageCorpconversationAsyncsendV2Request request = new OapiMessageCorpconversationAsyncsendV2Request();
|
|
|
|
+ request.setUseridList(String.join(",", requestIds));
|
|
|
|
+ request.setAgentId(DingTalkConstant.DING_TALK_AGENTID);
|
|
|
|
+ request.setToAllUser(false);
|
|
|
|
+
|
|
|
|
+ OapiMessageCorpconversationAsyncsendV2Request.Msg msg = new OapiMessageCorpconversationAsyncsendV2Request.Msg();
|
|
|
|
+ msg.setMsgtype("text");
|
|
|
|
+ msg.setText(new OapiMessageCorpconversationAsyncsendV2Request.Text());
|
|
|
|
+ msg.getText().setContent(u9Msg.getMsg());
|
|
|
|
+ request.setMsg(msg);
|
|
|
|
+ OapiMessageCorpconversationAsyncsendV2Response response = client.execute(request, DingTalkConstant.DING_TALK_TOKEN);
|
|
|
|
+ if (response.getErrcode() == 0) {
|
|
|
|
+ u9ResponseMessageDTO.setErrorCode(response.getErrcode());
|
|
|
|
+ u9ResponseMessageDTO.setDoCno(u9Msg.getDoCno());
|
|
|
|
+ log.info("发送消息成功!");
|
|
|
|
+ return JSON.toJSONString(u9ResponseMessageDTO);
|
|
|
|
+ }
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
+ e.printStackTrace();
|
|
|
|
+ log.info("发送消息失败!");
|
|
|
|
+ }
|
|
|
|
+ u9ResponseMessageDTO.setErrorCode(1L);
|
|
|
|
+ return JSON.toJSONString(u9ResponseMessageDTO);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+}
|