From 3680d8f2d54dcd3ac62fcf9730e3c5e82e1714c8 Mon Sep 17 00:00:00 2001
From: doum <doum>
Date: 星期一, 29 九月 2025 17:07:43 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/wuhuyancao' into wuhuyancao
---
server/visits/dmvisit_service/src/main/java/com/doumee/core/dingTalk/DingTalk.java | 162 +++++++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 159 insertions(+), 3 deletions(-)
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/dingTalk/DingTalk.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/dingTalk/DingTalk.java
index e23b927..84ac5f5 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/core/dingTalk/DingTalk.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/dingTalk/DingTalk.java
@@ -14,16 +14,21 @@
import com.doumee.core.constants.ResponseStatus;
import com.doumee.core.exception.BusinessException;
import com.doumee.core.utils.Constants;
+import com.doumee.core.utils.DateUtil;
import com.doumee.dao.business.dao.CompanyMapper;
+import com.doumee.dao.business.model.CarUseBook;
import com.doumee.dao.business.model.Company;
+import com.doumee.dao.business.model.Visits;
import com.doumee.dao.system.model.SystemDictData;
import com.doumee.service.business.CompanyService;
import com.github.xiaoymin.knife4j.core.util.CollectionUtils;
import com.taobao.api.ApiException;
import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import java.text.DateFormat;
import java.util.*;
import java.util.stream.Collectors;
@@ -102,6 +107,19 @@
public String getToken(){
String accessToken = systemDictDataBiz.queryByCode(Constants.DD_TALK,Constants.ACCESS_TOKEN).getCode();
return accessToken;
+ }
+
+
+ public OapiV2UserGetuserinfoResponse.UserGetByCodeResponse getDDUserByCode(String code) throws ApiException {
+ DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/v2/user/getuserinfo");
+ OapiV2UserGetuserinfoRequest req = new OapiV2UserGetuserinfoRequest();
+ req.setCode(code);
+ OapiV2UserGetuserinfoResponse rsp = client.execute(req, getToken());
+ if(rsp.getErrcode().equals(Constants.DD_ERR_CODE)){
+ return rsp.getResult();
+ }else{
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),rsp.getMessage());
+ }
}
@@ -248,6 +266,12 @@
}
+ /**
+ * 鑾峰彇閽夐拤閮ㄩ棬璇︽儏
+ * @param deptId
+ * @return
+ * @throws ApiException
+ */
public OapiV2DepartmentGetResponse.DeptGetResponse syncDepartmentInfo(Long deptId) throws ApiException {
DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/v2/department/get");
OapiV2DepartmentGetRequest req = new OapiV2DepartmentGetRequest();
@@ -292,11 +316,11 @@
return null;
}
Set<String> setUserIdList = new HashSet<>(allUserIdList);
- return syncUserInfo(setUserIdList);
+ return syncUserInfoList(setUserIdList);
}
- public List<OapiV2UserGetResponse.UserGetResponse> syncUserInfo(Set<String> setUserIdList) throws ApiException {
+ public List<OapiV2UserGetResponse.UserGetResponse> syncUserInfoList(Set<String> setUserIdList) throws ApiException {
List<OapiV2UserGetResponse.UserGetResponse> userList = new ArrayList<>();
DefaultDingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/v2/user/get");
OapiV2UserGetRequest req = new OapiV2UserGetRequest();
@@ -315,7 +339,19 @@
}
-
+ public OapiV2UserGetResponse.UserGetResponse syncUserInfo(String userId)throws ApiException {
+ DefaultDingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/v2/user/get");
+ OapiV2UserGetRequest req = new OapiV2UserGetRequest();
+ req.setUserid(userId);
+ req.setLanguage("zh_CN");
+ OapiV2UserGetResponse rsp = client.execute(req, getToken());
+ if(rsp.getErrcode().equals(Constants.DD_ERR_CODE)){
+ OapiV2UserGetResponse.UserGetResponse userGetResponse = rsp.getResult();
+ return userGetResponse;
+ }else{
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),rsp.getMessage());
+ }
+ }
public static void main(String[] args) throws Exception {
@@ -346,6 +382,126 @@
}
}
+ public void workInfoOANotice(Long agentId,String userIds,OapiMessageCorpconversationAsyncsendV2Request.Msg msg)throws ApiException {
+ DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/message/corpconversation/asyncsend_v2");
+ OapiMessageCorpconversationAsyncsendV2Request request = new OapiMessageCorpconversationAsyncsendV2Request();
+ request.setAgentId(agentId);
+ request.setUseridList(userIds);
+ request.setToAllUser(false);
+ request.setMsg(msg);
+ OapiMessageCorpconversationAsyncsendV2Response rsp = client.execute(request, getToken());
+ if(rsp.getErrcode().equals(Constants.DD_ERR_CODE)){
+
+ }else{
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),rsp.getMessage());
+ }
+ }
+
+
+ /**
+ * 璁垮鐢宠/鎶ュ OA 宸ヤ綔閫氱煡 鍐呭
+ * @param visits
+ * @param title
+ * @return
+ */
+ public OapiMessageCorpconversationAsyncsendV2Request.Msg getVisitNoticeMsg(Visits visits,String title){
+ OapiMessageCorpconversationAsyncsendV2Request.Msg msg = new OapiMessageCorpconversationAsyncsendV2Request.Msg();
+ msg.setMsgtype("oa");
+ OapiMessageCorpconversationAsyncsendV2Request.OA oa = new OapiMessageCorpconversationAsyncsendV2Request.OA();
+ oa.setMessageUrl("");
+ OapiMessageCorpconversationAsyncsendV2Request.Head head = new OapiMessageCorpconversationAsyncsendV2Request.Head();
+ head.setText(title);
+ head.setBgcolor("#279BAA");
+ oa.setHead(head);
+
+ OapiMessageCorpconversationAsyncsendV2Request.Body body = new OapiMessageCorpconversationAsyncsendV2Request.Body();
+ body.setTitle(!Constants.equalsInteger(visits.getType(),Constants.TWO)?visits.getName()+"鐨勮瀹㈢敵璇�":"鐨勮瀹㈡姤澶�");
+ List<OapiMessageCorpconversationAsyncsendV2Request.Form> formList = new ArrayList<>();
+
+ OapiMessageCorpconversationAsyncsendV2Request.Form visitUser = new OapiMessageCorpconversationAsyncsendV2Request.Form();
+ visitUser.setKey("鏉ヨ浜�");
+ visitUser.setValue(visits.getName());
+ formList.add(visitUser);
+
+ OapiMessageCorpconversationAsyncsendV2Request.Form inDate = new OapiMessageCorpconversationAsyncsendV2Request.Form();
+ inDate.setKey("鍏ュ洯鏃堕棿");
+ inDate.setValue(DateUtil.formatDate(visits.getStarttime(),"MM-dd HH:mm"));
+ formList.add(inDate);
+
+ OapiMessageCorpconversationAsyncsendV2Request.Form outDate = new OapiMessageCorpconversationAsyncsendV2Request.Form();
+ outDate.setKey("绂诲洯鏃堕棿");
+ outDate.setValue(DateUtil.formatDate(visits.getEndtime(),"MM-dd HH:mm"));
+ formList.add(outDate);
+
+ OapiMessageCorpconversationAsyncsendV2Request.Form inReason = new OapiMessageCorpconversationAsyncsendV2Request.Form();
+ inReason.setKey("鏉ヨ浜嬬敱");
+ inReason.setValue(visits.getReason());
+ formList.add(inReason);
+
+ if(StringUtils.isNotBlank(visits.getCarNos())){
+ OapiMessageCorpconversationAsyncsendV2Request.Form carNos = new OapiMessageCorpconversationAsyncsendV2Request.Form();
+ carNos.setKey("闅忚杞﹁締");
+ carNos.setValue(visits.getCarNos());
+ formList.add(visitUser);
+ }
+
+ body.setForm(formList);
+ oa.setBody(body);
+ msg.setOa(oa);
+
+ return msg;
+ }
+
+
+ /* public OapiMessageCorpconversationAsyncsendV2Request.Msg getCarUseNoticeMsg(CarUseBook carUseBook,String title){
+ OapiMessageCorpconversationAsyncsendV2Request.Msg msg = new OapiMessageCorpconversationAsyncsendV2Request.Msg();
+ msg.setMsgtype("oa");
+ OapiMessageCorpconversationAsyncsendV2Request.OA oa = new OapiMessageCorpconversationAsyncsendV2Request.OA();
+ oa.setMessageUrl("");
+ OapiMessageCorpconversationAsyncsendV2Request.Head head = new OapiMessageCorpconversationAsyncsendV2Request.Head();
+ head.setText(title);
+ head.setBgcolor("#279BAA");
+ oa.setHead(head);
+
+ OapiMessageCorpconversationAsyncsendV2Request.Body body = new OapiMessageCorpconversationAsyncsendV2Request.Body();
+ body.setTitle("鍏姟鐢ㄨ溅");
+ List<OapiMessageCorpconversationAsyncsendV2Request.Form> formList = new ArrayList<>();
+
+
+ OapiMessageCorpconversationAsyncsendV2Request.Form startDate = new OapiMessageCorpconversationAsyncsendV2Request.Form();
+ startDate.setKey("寮�濮嬫椂闂�");
+ startDate.setValue(DateUtil.formatDate(carUseBook.getStartTime(),"MM-dd HH:mm"));
+ formList.add(startDate);
+
+ OapiMessageCorpconversationAsyncsendV2Request.Form endDate = new OapiMessageCorpconversationAsyncsendV2Request.Form();
+ endDate.setKey("缁撴潫鏃堕棿");
+ endDate.setValue(DateUtil.formatDate(carUseBook.getEndTime(),"MM-dd HH:mm"));
+ formList.add(endDate);
+
+
+ OapiMessageCorpconversationAsyncsendV2Request.Form userNum = new OapiMessageCorpconversationAsyncsendV2Request.Form();
+ userNum.setKey("涔樿溅浜烘暟");
+ userNum.setValue(DateUtil.formatDate(carUseBook.getEndTime(),"MM-dd HH:mm"));
+ formList.add(userNum);
+
+ OapiMessageCorpconversationAsyncsendV2Request.Form inReason = new OapiMessageCorpconversationAsyncsendV2Request.Form();
+ inReason.setKey("鏉ヨ浜嬬敱");
+ inReason.setValue(visits.getReason());
+ formList.add(inReason);
+
+ if(StringUtils.isNotBlank(visits.getCarNos())){
+ OapiMessageCorpconversationAsyncsendV2Request.Form carNos = new OapiMessageCorpconversationAsyncsendV2Request.Form();
+ carNos.setKey("闅忚杞﹁締");
+ carNos.setValue(visits.getCarNos());
+ formList.add(visitUser);
+ }
+
+ body.setForm(formList);
+ oa.setBody(body);
+ msg.setOa(oa);
+
+ return msg;
+ }*/
}
--
Gitblit v1.9.3