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