From d847e88693dbd0cb8d81f1885355f1d39f557e2e Mon Sep 17 00:00:00 2001
From: 陈杰 <504987307@qq.com>
Date: Thu, 2 Jan 2020 10:14:11 +0800
Subject: [PATCH] 翼学云通讯录同步
---
cloud/pom.xml | 20 ++++++++------------
cloud/quartz/src/main/java/com/sincere/quartz/feign/ScFeign.java | 3 ---
cloud/quartz/src/main/java/com/sincere/quartz/job/BindPushJob.java | 2 +-
cloud/quartz/src/main/java/com/sincere/quartz/job/KQJob.java | 2 +-
cloud/quartz/src/main/java/com/sincere/quartz/job/SyncJob.java | 4 ++--
cloud/quartz/src/main/java/com/sincere/quartz/third/ding/DingUtils.java | 67 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
cloud/quartz/src/main/java/com/sincere/quartz/third/qiyehao/QYHUtils.java | 32 ++++++++++++++++++++++++++++++++
cloud/quartz/src/main/java/com/sincere/quartz/third/yixueyun/YXYReadService.java | 4 ++--
cloud/quartz/src/main/java/com/sincere/quartz/third/yixueyun/YXYWriteService.java | 178 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----------------------------------------------------------------------------------------
9 files changed, 202 insertions(+), 110 deletions(-)
create mode 100644 cloud/quartz/src/main/java/com/sincere/quartz/third/ding/DingUtils.java
create mode 100644 cloud/quartz/src/main/java/com/sincere/quartz/third/qiyehao/QYHUtils.java
diff --git a/cloud/pom.xml b/cloud/pom.xml
index 25312f2..60c2268 100644
--- a/cloud/pom.xml
+++ b/cloud/pom.xml
@@ -21,20 +21,17 @@
common
haikang
- dahua
+
- haikangface
-
+
+
search_smartCampus
search_xiaoan
- mypulsar
-
-
-
-
-
-
-
+
+
+
+ quartz
+ zkAttendance
@@ -84,5 +81,4 @@
-
diff --git a/cloud/quartz/src/main/java/com/sincere/quartz/feign/ScFeign.java b/cloud/quartz/src/main/java/com/sincere/quartz/feign/ScFeign.java
index 53775d5..eb001b0 100644
--- a/cloud/quartz/src/main/java/com/sincere/quartz/feign/ScFeign.java
+++ b/cloud/quartz/src/main/java/com/sincere/quartz/feign/ScFeign.java
@@ -51,9 +51,6 @@ public interface ScFeign {
@RequestMapping(value = "sm/sync/selectSyncSchool",method = RequestMethod.GET)
List selectSyncSchool();
- @RequestMapping(value = "sm/sync/selectGroup",method = RequestMethod.GET)
- List selectGroup(@RequestParam("schoolId") int schoolId);
-
@RequestMapping(value = "sm/sync/selectSubject",method = RequestMethod.GET)
List selectSubject(@RequestParam("schoolId") int schoolId);
diff --git a/cloud/quartz/src/main/java/com/sincere/quartz/job/BindPushJob.java b/cloud/quartz/src/main/java/com/sincere/quartz/job/BindPushJob.java
index 2dd569c..4648baa 100644
--- a/cloud/quartz/src/main/java/com/sincere/quartz/job/BindPushJob.java
+++ b/cloud/quartz/src/main/java/com/sincere/quartz/job/BindPushJob.java
@@ -22,7 +22,7 @@ import java.util.*;
* @version 1.0
* @date 2019/12/10 0010 8:31
*/
-//@Service
+@Service
public class BindPushJob {
private Logger logger = LoggerFactory.getLogger(KQJob.class);
diff --git a/cloud/quartz/src/main/java/com/sincere/quartz/job/KQJob.java b/cloud/quartz/src/main/java/com/sincere/quartz/job/KQJob.java
index 8bc9118..b387281 100644
--- a/cloud/quartz/src/main/java/com/sincere/quartz/job/KQJob.java
+++ b/cloud/quartz/src/main/java/com/sincere/quartz/job/KQJob.java
@@ -28,7 +28,7 @@ import java.util.*;
* @version 1.0
* @date 2019/11/27 0027 17:05
*/
-//@Service
+@Service
public class KQJob {
private Logger logger = LoggerFactory.getLogger(KQJob.class);
diff --git a/cloud/quartz/src/main/java/com/sincere/quartz/job/SyncJob.java b/cloud/quartz/src/main/java/com/sincere/quartz/job/SyncJob.java
index 244e179..2594183 100644
--- a/cloud/quartz/src/main/java/com/sincere/quartz/job/SyncJob.java
+++ b/cloud/quartz/src/main/java/com/sincere/quartz/job/SyncJob.java
@@ -20,11 +20,11 @@ public class SyncJob {
@Autowired
YXYReadService yxyReadService ;
- @Scheduled(cron = "0/1 * * * * ? ")
+ @Scheduled(cron = "0 1-59 * * * ? ")
//@Scheduled(cron = "0 0 23 * * ? ")
public void Sync(){
//翼校通的同步 之后还有钉钉的同步等等
yxyWriteService.sync();
- //yxyReadService.sync();
+ yxyReadService.sync();
}
}
diff --git a/cloud/quartz/src/main/java/com/sincere/quartz/third/ding/DingUtils.java b/cloud/quartz/src/main/java/com/sincere/quartz/third/ding/DingUtils.java
new file mode 100644
index 0000000..0bdc3ab
--- /dev/null
+++ b/cloud/quartz/src/main/java/com/sincere/quartz/third/ding/DingUtils.java
@@ -0,0 +1,67 @@
+//package com.sincere.quartz.third.ding;
+//
+//import com.dingtalk.api.DefaultDingTalkClient;
+//import com.dingtalk.api.DingTalkClient;
+//import com.dingtalk.api.request.OapiDepartmentListRequest;
+//import com.dingtalk.api.request.OapiEduTeacherGetRequest;
+//import com.dingtalk.api.request.OapiServiceGetCorpTokenRequest;
+//import com.dingtalk.api.request.OapiUserSimplelistRequest;
+//import com.dingtalk.api.response.OapiDepartmentListResponse;
+//import com.dingtalk.api.response.OapiServiceGetCorpTokenResponse;
+//import com.dingtalk.api.response.OapiUserSimplelistResponse;
+//import com.taobao.api.ApiException;
+//
+///**
+// * 钉钉 数据同步接口
+// * @author chen
+// * @version 1.0
+// * @date 2019/12/11 0011 9:17
+// */
+//public class DingUtils {
+//
+// public static void main(String[] args){
+// //System.out.println(getToken("ding5b3f718a90027ec4","suitea4oyazedqfxn60fh", "i6mJCpaWOo-N1ibqExCwvwOJF9mW81Yoc0tc2YCGzehfUO2vyI9tocM9kNR4KBIU"));
+// getDept("63424a88ee8f3e118e11ede370746bf5");
+// }
+//
+// private static String getToken(String corpId , String key , String secret){
+// try{
+// DefaultDingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/service/get_corp_token");
+// OapiServiceGetCorpTokenRequest req = new OapiServiceGetCorpTokenRequest();
+// req.setAuthCorpid(corpId);
+// OapiServiceGetCorpTokenResponse execute = client.execute(req,key,secret, "suiteTicket");
+// return execute.getAccessToken();
+// }catch (ApiException e){
+//
+// }
+// return null ;
+// }
+//
+// private static void getDept(String accessToken){
+// try{
+// DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/department/list");
+// OapiDepartmentListRequest request = new OapiDepartmentListRequest();
+// request.setId("1");
+// request.setHttpMethod("GET");
+// OapiDepartmentListResponse response = client.execute(request, accessToken);
+// System.out.println("1");
+// }catch (ApiException e){
+//
+// }
+//
+// }
+//
+// private static void getUser(String accessToken , Long deptId){
+// try{
+// DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/user/simplelist");
+// OapiUserSimplelistRequest request = new OapiUserSimplelistRequest();
+// request.setDepartmentId(deptId);
+// request.setHttpMethod("GET");
+// OapiUserSimplelistResponse response = client.execute(request, accessToken);
+// }catch (ApiException e){
+//
+// }
+//
+// }
+//
+//}
diff --git a/cloud/quartz/src/main/java/com/sincere/quartz/third/qiyehao/QYHUtils.java b/cloud/quartz/src/main/java/com/sincere/quartz/third/qiyehao/QYHUtils.java
new file mode 100644
index 0000000..bdc63f2
--- /dev/null
+++ b/cloud/quartz/src/main/java/com/sincere/quartz/third/qiyehao/QYHUtils.java
@@ -0,0 +1,32 @@
+package com.sincere.quartz.third.qiyehao;
+
+import com.alibaba.fastjson.JSONObject;
+import com.sincere.common.util.HttpClientUtils;
+
+/**
+ * @author chen
+ * @version 1.0
+ * @date 2019/12/11 0011 15:28
+ */
+public class QYHUtils {
+
+ public static void main(String[] args){
+ getToken("wx51b3acc9a06f0bb0","pb5P1feSHnWYYLPAfN4QBMk-nPFaF4RGW5Lq1ceyfhk");
+ }
+
+ public static String getToken(String id , String secret){
+ String url = "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid="+id+"&corpsecret="+secret ;
+ JSONObject json = HttpClientUtils.httpGet(url) ;
+ return json.get("access_token").toString() ;
+ }
+
+ public static void getDept(String accessToken){
+ String url = "https://qyapi.weixin.qq.com/cgi-bin/department/list?access_token="+accessToken;
+ JSONObject json = HttpClientUtils.httpGet(url) ;
+ }
+
+ public static void getUser(String accessToken){
+ String url = "https://qyapi.weixin.qq.com/cgi-bin/user/list?access_token="+accessToken+"&department_id="+1+"&fetch_child=1&status=0";
+ JSONObject json = HttpClientUtils.httpGet(url) ;
+ }
+}
diff --git a/cloud/quartz/src/main/java/com/sincere/quartz/third/yixueyun/YXYReadService.java b/cloud/quartz/src/main/java/com/sincere/quartz/third/yixueyun/YXYReadService.java
index 773d382..37cfd6b 100644
--- a/cloud/quartz/src/main/java/com/sincere/quartz/third/yixueyun/YXYReadService.java
+++ b/cloud/quartz/src/main/java/com/sincere/quartz/third/yixueyun/YXYReadService.java
@@ -44,9 +44,9 @@ public class YXYReadService {
list.add(SI);
list.add(getPassword(SI_CODE));
list.add("05750400");
- String wsdl =getAllDept ;
+ String wsdl =getAllStudent ;
String ns = nameSpace;
- String method = getALlDept_method;
+ String method = getALlStudent_method;
JSONArray jsonArray = getMessage(wsdl, ns, method, list);
System.out.println(jsonArray.toJSONString());
}
diff --git a/cloud/quartz/src/main/java/com/sincere/quartz/third/yixueyun/YXYWriteService.java b/cloud/quartz/src/main/java/com/sincere/quartz/third/yixueyun/YXYWriteService.java
index dcb588f..fda8d7f 100644
--- a/cloud/quartz/src/main/java/com/sincere/quartz/third/yixueyun/YXYWriteService.java
+++ b/cloud/quartz/src/main/java/com/sincere/quartz/third/yixueyun/YXYWriteService.java
@@ -70,7 +70,7 @@ public class YXYWriteService {
List deleteTeacherList = new ArrayList<>();
for(SyncUserDto user : userList){
- if(user.getUserType() == 1){ //老师
+ if(user.getUserType() == 2){ //学生
if(user.getUpdateType() == 1){
addStudentList.add(user);
}else if(user.getUpdateType() == 3){
@@ -78,7 +78,7 @@ public class YXYWriteService {
}else if(user.getUpdateType() == 5){
deleteStudentList.add(user);
}
- }else if(user.getUserType() == 2){ //学生
+ }else if(user.getUserType() == 1){ //老师
if(user.getUpdateType() == 1){
addTeacherList.add(user);
}else if(user.getUpdateType() == 3){
@@ -219,7 +219,7 @@ public class YXYWriteService {
}else {
System.out.println(result.getMessage());
}
- for(SyncDeptDto deptDto : updateDept){
+ for(SyncDeptDto deptDto : deleteDept){
if(!errorList.contains(deptDto.getDeptName())){
DeptRelationDto deptRelationDto = new DeptRelationDto();
deptRelationDto.setHxyDeptId(deptDto.getDeptId());
@@ -391,84 +391,20 @@ public class YXYWriteService {
}
}
-
- private JSONArray initAddJson(List list){
- JSONArray array = new JSONArray();
- for(SyncUserDto user : list){
- JSONObject object = new JSONObject();
- object.put("classid",scFeign.selectYxyIdByHxyId(user.getClassId()));
- object.put("stuname",user.getName());
- object.put("mobile",user.getMobile());
- object.put("sex",user.getSex());
- array.add(object);
- }
- return array ;
- }
-
- private JSONArray initTeacherAddJson(SyncSchoolDto school , List list){
- JSONArray array = new JSONArray();
- for(SyncUserDto user : list){
- JSONObject object = new JSONObject();
- object.put("schoolid",school.getYxtId());
- object.put("name",user.getName());
- object.put("mobile",user.getMobile());
- object.put("sex",user.getSex());
- array.add(object);
- }
- return array ;
- }
-
- private JSONArray initTeacherUpdateJson(SyncSchoolDto school , List list){
- JSONArray array = new JSONArray();
- for(SyncUserDto user : list){
- JSONObject object = new JSONObject();
- object.put("schoolid",school.getYxtId());
- object.put("name",user.getName());
- object.put("mobile",user.getMobile());
- object.put("sex",user.getSex());
- array.add(object);
- }
- return array ;
- }
-
- private JSONArray initUserUpdateJson(List list){
- JSONArray array = new JSONArray();
- for(SyncUserDto user : list){
- JSONObject object = new JSONObject();
- object.put("userid",user.getHxyCustomerId());
- object.put("classid",scFeign.selectYxyIdByHxyId(user.getClassId()));
- object.put("stuname",user.getName());
- object.put("mobile",user.getMobile());
- object.put("sex",user.getSex());
- array.add(object);
- }
- return array ;
- }
-
- private JSONArray initUserDeleteJson(List list){
- JSONArray array = new JSONArray();
- for(SyncUserDto user : list){
- JSONObject object = new JSONObject();
- object.put("id",user.getHxyCustomerId());
- array.add(object);
- }
- return array ;
- }
-
private void syncStudentHxy(SyncSchoolDto school , List addStudentList , List updateStudentList ,List deleteStudentList ){
if(addStudentList.size() > 0){
JSONArray array = initAddJson(addStudentList);
YXYResult result = getResult(prefix_url+suffix_student_add,array.toJSONString());
if(result.getCode() == 0 || result.getCode() == -3){
for(YXYResultDetail detail : result.getData()){
- if(StringUtils.isNotBlank(detail.getId())){
+ if(StringUtils.isNotBlank(detail.getUserid())){
//成功
UserRelationDto userRelationDto = new UserRelationDto();
- SyncUserDto syncUserDto = getUser(addStudentList,detail.getName()) ;
+ SyncUserDto syncUserDto = getUser(addStudentList,detail.getStuname()) ;
userRelationDto.setHxyCustomerId(syncUserDto.getCustomerId());
userRelationDto.setYxyUserId(detail.getUserid());
userRelationDto.setSqlstate(1);
- userRelationDto.setUserType(1);
+ userRelationDto.setUserType(2);
userRelationDto.setState(1);
scFeign.updateUserRelation(userRelationDto);
scFeign.updateUser(syncUserDto.getId());
@@ -493,14 +429,14 @@ public class YXYWriteService {
System.out.println(result.getMessage());
}
for(SyncUserDto user : updateStudentList){
- if(!errorList.contains(user.getHxyCustomerId())){
+ if(!errorList.contains(user.getYxyUserId())){
UserRelationDto userRelationDto = new UserRelationDto();
- userRelationDto.setYxyUserId(user.getCustomerId());
+ userRelationDto.setHxyCustomerId(user.getCustomerId());
userRelationDto.setSqlstate(2);
- userRelationDto.setUserType(1);
+ userRelationDto.setUserType(2);
userRelationDto.setState(1);
scFeign.updateUserRelation(userRelationDto);
- scFeign.updateDept(user.getId());
+ scFeign.updateUser(user.getId());
}
}
}
@@ -518,15 +454,15 @@ public class YXYWriteService {
}else {
System.out.println(result.getMessage());
}
- for(SyncUserDto user : updateStudentList){
- if(!errorList.contains(user.getHxyCustomerId())){
+ for(SyncUserDto user : deleteStudentList){
+ if(!errorList.contains(user.getYxyUserId())){
UserRelationDto userRelationDto = new UserRelationDto();
- userRelationDto.setYxyUserId(user.getCustomerId());
+ userRelationDto.setHxyCustomerId(user.getCustomerId());
userRelationDto.setSqlstate(2);
- userRelationDto.setUserType(1);
+ userRelationDto.setUserType(2);
userRelationDto.setState(0);
scFeign.updateUserRelation(userRelationDto);
- scFeign.updateDept(user.getId());
+ scFeign.updateUser(user.getId());
}
}
}
@@ -538,14 +474,14 @@ public class YXYWriteService {
YXYResult result = getResult(prefix_url+suffix_teacher_add,array.toJSONString());
if(result.getCode() == 0 || result.getCode() == -3){
for(YXYResultDetail detail : result.getData()){
- if(StringUtils.isNotBlank(detail.getId())){
+ if(StringUtils.isNotBlank(detail.getUserid())){
//成功
UserRelationDto userRelationDto = new UserRelationDto();
SyncUserDto syncUserDto = getUser(addTeacherList,detail.getName()) ;
userRelationDto.setHxyCustomerId(syncUserDto.getCustomerId());
userRelationDto.setYxyUserId(detail.getUserid());
userRelationDto.setSqlstate(1);
- userRelationDto.setUserType(2);
+ userRelationDto.setUserType(1);
userRelationDto.setState(1);
scFeign.updateUserRelation(userRelationDto);
scFeign.updateUser(syncUserDto.getId());
@@ -570,14 +506,14 @@ public class YXYWriteService {
System.out.println(result.getMessage());
}
for(SyncUserDto user : updateTeacherList){
- if(!errorList.contains(user.getHxyCustomerId())){
+ if(!errorList.contains(user.getYxyUserId())){
UserRelationDto userRelationDto = new UserRelationDto();
- userRelationDto.setYxyUserId(user.getCustomerId());
+ userRelationDto.setHxyCustomerId(user.getCustomerId());
userRelationDto.setSqlstate(2);
- userRelationDto.setUserType(2);
+ userRelationDto.setUserType(1);
userRelationDto.setState(1);
scFeign.updateUserRelation(userRelationDto);
- scFeign.updateDept(user.getId());
+ scFeign.updateUser(user.getId());
}
}
}
@@ -596,14 +532,14 @@ public class YXYWriteService {
System.out.println(result.getMessage());
}
for(SyncUserDto user : deleteTeacherList){
- if(!errorList.contains(user.getHxyCustomerId())){
+ if(!errorList.contains(user.getYxyUserId())){
UserRelationDto userRelationDto = new UserRelationDto();
- userRelationDto.setYxyUserId(user.getCustomerId());
+ userRelationDto.setHxyCustomerId(user.getCustomerId());
userRelationDto.setSqlstate(2);
- userRelationDto.setUserType(2);
+ userRelationDto.setUserType(1);
userRelationDto.setState(0);
scFeign.updateUserRelation(userRelationDto);
- scFeign.updateDept(user.getId());
+ scFeign.updateUser(user.getId());
}
}
}
@@ -657,6 +593,70 @@ public class YXYWriteService {
return array ;
}
+ private JSONArray initAddJson(List list){
+ JSONArray array = new JSONArray();
+ for(SyncUserDto user : list){
+ JSONObject object = new JSONObject();
+ object.put("classid",scFeign.selectYxyIdByHxyId(user.getClassId()));
+ object.put("stuname",user.getName());
+ object.put("mobile",user.getMobile());
+ object.put("sex",user.getSex());
+ array.add(object);
+ }
+ return array ;
+ }
+
+ private JSONArray initTeacherAddJson(SyncSchoolDto school , List list){
+ JSONArray array = new JSONArray();
+ for(SyncUserDto user : list){
+ JSONObject object = new JSONObject();
+ object.put("schoolid",school.getYxtId());
+ object.put("name",user.getName());
+ object.put("mobile",user.getMobile());
+ object.put("sex",user.getSex());
+ array.add(object);
+ }
+ return array ;
+ }
+
+ private JSONArray initTeacherUpdateJson(SyncSchoolDto school , List list){
+ JSONArray array = new JSONArray();
+ for(SyncUserDto user : list){
+ JSONObject object = new JSONObject();
+ object.put("userid",user.getYxyUserId());
+ object.put("name",user.getName());
+ object.put("mobile",user.getMobile());
+ object.put("sex",user.getSex());
+ array.add(object);
+ }
+ return array ;
+ }
+
+ private JSONArray initUserUpdateJson(List list){
+ JSONArray array = new JSONArray();
+ for(SyncUserDto user : list){
+ JSONObject object = new JSONObject();
+ object.put("userid",user.getYxyUserId());
+ object.put("classid",scFeign.selectYxyIdByHxyId(user.getClassId()));
+ object.put("stuname",user.getName());
+ object.put("mobile",user.getMobile());
+ object.put("sex",user.getSex());
+ array.add(object);
+ }
+ return array ;
+ }
+
+ private JSONArray initUserDeleteJson(List list){
+ JSONArray array = new JSONArray();
+ for(SyncUserDto user : list){
+ JSONObject object = new JSONObject();
+ object.put("userid",user.getYxyUserId());
+ array.add(object);
+ }
+ return array ;
+ }
+
+
//返回父部门,或者年级
private SyncDeptDto getDept(List deptList , int pId){
for(SyncDeptDto dept : deptList){
--
libgit2 0.21.0