diff --git a/cloud/common/src/main/java/com/sincere/common/dto/smartCampus/SyncUserDto.java b/cloud/common/src/main/java/com/sincere/common/dto/smartCampus/SyncUserDto.java index b6f1d91..db39a83 100644 --- a/cloud/common/src/main/java/com/sincere/common/dto/smartCampus/SyncUserDto.java +++ b/cloud/common/src/main/java/com/sincere/common/dto/smartCampus/SyncUserDto.java @@ -15,6 +15,15 @@ public class SyncUserDto { private int sex ; private String mobile ; private int updateType ; + private String hxyCustomerId ; + + public String getHxyCustomerId() { + return hxyCustomerId; + } + + public void setHxyCustomerId(String hxyCustomerId) { + this.hxyCustomerId = hxyCustomerId; + } public int getId() { return id; diff --git a/cloud/quartz/src/main/java/com/sincere/quartz/third/yixueyun/YXYResultDetail.java b/cloud/quartz/src/main/java/com/sincere/quartz/third/yixueyun/YXYResultDetail.java index a172394..f09dc0d 100644 --- a/cloud/quartz/src/main/java/com/sincere/quartz/third/yixueyun/YXYResultDetail.java +++ b/cloud/quartz/src/main/java/com/sincere/quartz/third/yixueyun/YXYResultDetail.java @@ -10,8 +10,46 @@ import java.io.Serializable; public class YXYResultDetail implements Serializable { private String id ; + private String schoolid ; private String name ; private String err ; + private String classname ; + private String gradeid ; + private String classid ; + private String userid ; + private String stuname ; + + public String getSchoolid() { + return schoolid; + } + + public void setSchoolid(String schoolid) { + this.schoolid = schoolid; + } + + public String getClassname() { + return classname; + } + + public void setClassname(String classname) { + this.classname = classname; + } + + public String getGradeid() { + return gradeid; + } + + public void setGradeid(String gradeid) { + this.gradeid = gradeid; + } + + public String getClassid() { + return classid; + } + + public void setClassid(String classid) { + this.classid = classid; + } public String getId() { return id; @@ -36,4 +74,20 @@ public class YXYResultDetail implements Serializable { public void setErr(String err) { this.err = err; } + + public String getUserid() { + return userid; + } + + public void setUserid(String userid) { + this.userid = userid; + } + + public String getStuname() { + return stuname; + } + + public void setStuname(String stuname) { + this.stuname = stuname; + } } 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 2c7669a..dcb588f 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 @@ -1,12 +1,18 @@ package com.sincere.quartz.third.yixueyun; import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; +import com.sincere.common.dto.smartCampus.*; import com.sincere.common.util.HttpClientUtils; import com.sincere.quartz.feign.ScFeign; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; +import java.util.List; + /** * @author chen * @version 1.0 @@ -21,6 +27,7 @@ public class YXYWriteService { private static String prefix_url = "http://115.239.135.60"; private static String suffix_org_add = "/szkjapi/toyxybatch/addTeacherOrg" ; //部门添加 + private static String suffix_grade_add = "/szkjapi/toyxybatch/addGrade" ; //部门添加 private static String suffix_class_add = "/szkjapi/toyxybatch/addClass" ; //班级添加 private static String suffix_student_add = "/szkjapi/toyxybatch/addStudent" ; //学生添加 private static String suffix_teacher_add = "/szkjapi/toyxybatch/addTeacher" ; //老师添加 @@ -32,37 +39,651 @@ public class YXYWriteService { private static String suffix_org_delete = "/szkjapi/toyxybatch/deleteOrg" ; //部门 班级 删除 private static String suffix_user_delete = "/szkjapi/toyxybatch/deleteUser" ; //老师学生 删除 + private static String suffix_subject_add = "/szkjapi/toyxybatch/addSubject" ; + @Autowired ScFeign scFeign ; public void sync(){ //查出要同步的学校 + List schoolList = scFeign.selectSyncSchool(); + for(SyncSchoolDto school : schoolList){ + if(school.getPush() == 0){ + //同步课程 + syncSubject(school); + } + List deptList = scFeign.selectDept(school.getSchoolId()); + syncDept(school,deptList); + List userList = scFeign.selectUser(school.getSchoolId()); + syncUser(school,userList); + } + } + + private void syncUser(SyncSchoolDto school , List userList){ + List addStudentList = new ArrayList<>(); + List updateStudentList = new ArrayList<>(); + List deleteStudentList = new ArrayList<>(); + + List addTeacherList = new ArrayList<>(); + List updateTeacherList = new ArrayList<>(); + List deleteTeacherList = new ArrayList<>(); + + for(SyncUserDto user : userList){ + if(user.getUserType() == 1){ //老师 + if(user.getUpdateType() == 1){ + addStudentList.add(user); + }else if(user.getUpdateType() == 3){ + updateStudentList.add(user); + }else if(user.getUpdateType() == 5){ + deleteStudentList.add(user); + } + }else if(user.getUserType() == 2){ //学生 + if(user.getUpdateType() == 1){ + addTeacherList.add(user); + }else if(user.getUpdateType() == 3){ + updateTeacherList.add(user); + }else if(user.getUpdateType() == 5){ + deleteTeacherList.add(user); + } + } + } + syncStudentHxy(school,addStudentList,updateStudentList,deleteStudentList); + syncTeacherHxy(school,addTeacherList,updateTeacherList,deleteTeacherList); + + } + + private void syncSubject(SyncSchoolDto school){ + List subjectList = scFeign.selectSubject(school.getSchoolId()); + JSONArray array = new JSONArray(); + JSONObject object = new JSONObject(); + object.put("schoolid",school.getYxtId()); + StringBuffer subjects = new StringBuffer(); + for(String subject : subjectList){ + subjects.append(subject).append(","); + } + object.put("subjects",subjects.toString().substring(0,subjects.toString().length()-1)); + array.add(object); + YXYResult result = getResult(prefix_url+suffix_subject_add,array.toJSONString()) ; + scFeign.updateSchool(school.getSchoolId()); + } + + private void syncDept(SyncSchoolDto school , List deptList){ + List addDept = new ArrayList<>(); + List updateDept = new ArrayList<>(); + List deleteDept = new ArrayList<>(); + + List addGrade = new ArrayList<>(); + List updateGrade = new ArrayList<>(); + List deleteGrade = new ArrayList<>(); + + List addClass = new ArrayList<>(); + List updateClass = new ArrayList<>(); + List deleteClass = new ArrayList<>(); + for(SyncDeptDto dept : deptList){ + if(dept.getUserType() == 1){ //组织架构 + if(dept.getUpdateType() == 1){ //增 + addDept.add(dept); + }else if(dept.getUpdateType() == 2){ //改 + updateDept.add(dept); + }else { //删 + deleteDept.add(dept); + } + } + if(dept.getUserType() == 2){ //年级 + if(dept.getUpdateType() == 1){ //增 + addGrade.add(dept); + }else if(dept.getUpdateType() == 2){ //改 + updateGrade.add(dept); + }else { //删 + deleteGrade.add(dept); + } + } + if(dept.getUserType() == 3){ //班级 + if(dept.getUpdateType() == 1){ //增 + addClass.add(dept); + }else if(dept.getUpdateType() == 2){ //改 + updateClass.add(dept); + }else { //删 + deleteClass.add(dept); + } + } + } + syncGroupHxy(school,addDept,updateDept,deleteDept); + syncGradeHxy(school,addGrade,updateGrade,deleteGrade); + syncClassHxy(school,addClass,updateClass,deleteClass); + } + + private void syncGroupHxy(SyncSchoolDto school , List addDept , List updateDept ,List deleteDept ){ + if(addDept.size() > 0){ + JSONArray array = initAddJson(addDept,school.getYxtId()); + YXYResult result = getResult(prefix_url+suffix_org_add,array.toJSONString()); + if(result.getCode() == 0 || result.getCode() == -3){ + for(YXYResultDetail detail : result.getData()){ + if(StringUtils.isNotBlank(detail.getId())){ + //成功 + DeptRelationDto deptRelationDto = new DeptRelationDto(); + SyncDeptDto syncDeptDto = getDept(addDept,detail.getName()) ; + deptRelationDto.setHxyDeptId(syncDeptDto.getDeptId()); + deptRelationDto.setYxyDeptId(detail.getId()); + deptRelationDto.setSqlStatus(1); + deptRelationDto.setUserType(1); + deptRelationDto.setState(1); + scFeign.updateDeptRelation(deptRelationDto); + scFeign.updateDept(syncDeptDto.getId()); + }else { + + } + } + }else { + System.out.println(result.getMessage()); + } + } + if(updateDept.size() > 0){ + JSONArray array = initUpdateJson(updateDept); + YXYResult result = getResult(prefix_url+suffix_org_update,array.toJSONString()); + List errorList = new ArrayList<>(); + if(result.getCode() == 0 || result.getCode() == -3){ + for(YXYResultDetail detail : result.getData()){ + if(StringUtils.isNotBlank(detail.getId())){ + errorList.add(detail.getName()); + System.out.println(detail.getName() + "----" + detail.getErr()); + } + } + }else { + System.out.println(result.getMessage()); + } + for(SyncDeptDto deptDto : updateDept){ + if(!errorList.contains(deptDto.getDeptName())){ + DeptRelationDto deptRelationDto = new DeptRelationDto(); + deptRelationDto.setHxyDeptId(deptDto.getDeptId()); + deptRelationDto.setSqlStatus(2); + deptRelationDto.setUserType(1); + deptRelationDto.setState(1); + scFeign.updateDeptRelation(deptRelationDto); + scFeign.updateDept(deptDto.getId()); + } + } + } + if(deleteDept.size() > 0){ + JSONArray array = initDeleteJson(deleteDept); + YXYResult result = getResult(prefix_url+suffix_org_delete,array.toJSONString()); + List errorList = new ArrayList<>(); + if(result.getCode() == 0 || result.getCode() == -3){ + for(YXYResultDetail detail : result.getData()){ + if(StringUtils.isNotBlank(detail.getId())){ + errorList.add(detail.getName()); + System.out.println(detail.getName() + "----" + detail.getErr()); + } + } + }else { + System.out.println(result.getMessage()); + } + for(SyncDeptDto deptDto : updateDept){ + if(!errorList.contains(deptDto.getDeptName())){ + DeptRelationDto deptRelationDto = new DeptRelationDto(); + deptRelationDto.setHxyDeptId(deptDto.getDeptId()); + deptRelationDto.setSqlStatus(2); + deptRelationDto.setUserType(1); + deptRelationDto.setState(0); + scFeign.updateDeptRelation(deptRelationDto); + scFeign.updateDept(deptDto.getId()); + } + } + } + } + + private void syncGradeHxy(SyncSchoolDto school , List addGrade , List updateGrade ,List deleteGrade ){ + if(addGrade.size() > 0){ + JSONArray array = initAddJson(addGrade,school.getYxtId()); + YXYResult result = getResult(prefix_url+suffix_grade_add,array.toJSONString()); + if(result.getCode() == 0 || result.getCode() == -3){ + for(YXYResultDetail detail : result.getData()){ + if(StringUtils.isNotBlank(detail.getId())){ + //成功 + DeptRelationDto deptRelationDto = new DeptRelationDto(); + SyncDeptDto syncDeptDto = getDept(addGrade,detail.getName()) ; + deptRelationDto.setHxyDeptId(syncDeptDto.getDeptId()); + deptRelationDto.setYxyDeptId(detail.getId()); + deptRelationDto.setSqlStatus(1); + deptRelationDto.setUserType(2); + deptRelationDto.setState(1); + scFeign.updateDeptRelation(deptRelationDto); + scFeign.updateDept(syncDeptDto.getId()); + }else { + + } + } + }else { + System.out.println(result.getMessage()); + } + } + if(updateGrade.size() > 0){ + JSONArray array = initUpdateJson(updateGrade); + YXYResult result = getResult(prefix_url+suffix_org_update,array.toJSONString()); + List errorList = new ArrayList<>(); + if(result.getCode() == 0 || result.getCode() == -3){ + for(YXYResultDetail detail : result.getData()){ + if(StringUtils.isNotBlank(detail.getId())){ + errorList.add(detail.getName()); + System.out.println(detail.getName() + "----" + detail.getErr()); + } + } + }else { + System.out.println(result.getMessage()); + } + for(SyncDeptDto deptDto : updateGrade){ + if(!errorList.contains(deptDto.getDeptName())){ + DeptRelationDto deptRelationDto = new DeptRelationDto(); + deptRelationDto.setHxyDeptId(deptDto.getDeptId()); + deptRelationDto.setSqlStatus(2); + deptRelationDto.setUserType(2); + deptRelationDto.setState(1); + scFeign.updateDeptRelation(deptRelationDto); + scFeign.updateDept(deptDto.getId()); + } + } + } + if(deleteGrade.size() > 0){ + JSONArray array = initDeleteJson(deleteGrade); + YXYResult result = getResult(prefix_url+suffix_org_delete,array.toJSONString()); + List errorList = new ArrayList<>(); + if(result.getCode() == 0 || result.getCode() == -3){ + for(YXYResultDetail detail : result.getData()){ + if(StringUtils.isNotBlank(detail.getId())){ + errorList.add(detail.getName()); + System.out.println(detail.getName() + "----" + detail.getErr()); + } + } + }else { + System.out.println(result.getMessage()); + } + for(SyncDeptDto deptDto : deleteGrade){ + if(!errorList.contains(deptDto.getDeptName())){ + DeptRelationDto deptRelationDto = new DeptRelationDto(); + deptRelationDto.setHxyDeptId(deptDto.getDeptId()); + deptRelationDto.setSqlStatus(2); + deptRelationDto.setUserType(2); + deptRelationDto.setState(0); + scFeign.updateDeptRelation(deptRelationDto); + scFeign.updateDept(deptDto.getId()); + } + } + } + } + + private void syncClassHxy(SyncSchoolDto school , List addClass , List updateClass ,List deleteClass ){ + if(addClass.size() > 0){ + JSONArray array = initClassAddJson(addClass); + YXYResult result = getResult(prefix_url+suffix_class_add,array.toJSONString()); + if(result.getCode() == 0 || result.getCode() == -3){ + for(YXYResultDetail detail : result.getData()){ + if(StringUtils.isNotBlank(detail.getClassid())){ + //成功 + DeptRelationDto deptRelationDto = new DeptRelationDto(); + SyncDeptDto syncDeptDto = getDept(addClass,detail.getClassname()) ; + deptRelationDto.setHxyDeptId(syncDeptDto.getDeptId()); + deptRelationDto.setYxyDeptId(detail.getClassid()); + deptRelationDto.setSqlStatus(1); + deptRelationDto.setUserType(3); + deptRelationDto.setState(1); + scFeign.updateDeptRelation(deptRelationDto); + scFeign.updateDept(syncDeptDto.getId()); + }else { + + } + } + }else { + System.out.println(result.getMessage()); + } + } + if(updateClass.size() > 0){ + JSONArray array = initUpdateJson(updateClass); + YXYResult result = getResult(prefix_url+suffix_org_update,array.toJSONString()); + List errorList = new ArrayList<>(); + if(result.getCode() == 0 || result.getCode() == -3){ + for(YXYResultDetail detail : result.getData()){ + if(StringUtils.isNotBlank(detail.getId())){ + errorList.add(detail.getName()); + System.out.println(detail.getName() + "----" + detail.getErr()); + } + } + }else { + System.out.println(result.getMessage()); + } + for(SyncDeptDto deptDto : updateClass){ + if(!errorList.contains(deptDto.getDeptName())){ + DeptRelationDto deptRelationDto = new DeptRelationDto(); + deptRelationDto.setHxyDeptId(deptDto.getDeptId()); + deptRelationDto.setSqlStatus(2); + deptRelationDto.setUserType(3); + deptRelationDto.setState(1); + scFeign.updateDeptRelation(deptRelationDto); + scFeign.updateDept(deptDto.getId()); + } + } + } + if(deleteClass.size() > 0){ + JSONArray array = initDeleteJson(deleteClass); + YXYResult result = getResult(prefix_url+suffix_org_delete,array.toJSONString()); + List errorList = new ArrayList<>(); + if(result.getCode() == 0 || result.getCode() == -3){ + for(YXYResultDetail detail : result.getData()){ + if(StringUtils.isNotBlank(detail.getId())){ + errorList.add(detail.getName()); + System.out.println(detail.getName() + "----" + detail.getErr()); + } + } + }else { + System.out.println(result.getMessage()); + } + for(SyncDeptDto deptDto : deleteClass){ + if(!errorList.contains(deptDto.getDeptName())){ + DeptRelationDto deptRelationDto = new DeptRelationDto(); + deptRelationDto.setHxyDeptId(deptDto.getDeptId()); + deptRelationDto.setSqlStatus(2); + deptRelationDto.setUserType(3); + deptRelationDto.setState(0); + scFeign.updateDeptRelation(deptRelationDto); + scFeign.updateDept(deptDto.getId()); + } + } + } + } + - //同步的部门 ,新增 修改 删除 - syncDept(); - //同步的老师 - syncTeacher(); - //同步的学生 - syncStudent(); - //同步的班级 - syncClass(); + 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 void syncDept(){ + 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 void syncTeacher(){ + 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 syncClass(){ + 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())){ + //成功 + UserRelationDto userRelationDto = new UserRelationDto(); + SyncUserDto syncUserDto = getUser(addStudentList,detail.getName()) ; + userRelationDto.setHxyCustomerId(syncUserDto.getCustomerId()); + userRelationDto.setYxyUserId(detail.getUserid()); + userRelationDto.setSqlstate(1); + userRelationDto.setUserType(1); + userRelationDto.setState(1); + scFeign.updateUserRelation(userRelationDto); + scFeign.updateUser(syncUserDto.getId()); + } + } + }else { + System.out.println(result.getMessage()); + } + } + if(updateStudentList.size() > 0){ + JSONArray array = initUserUpdateJson(updateStudentList); + YXYResult result = getResult(prefix_url+suffix_student_update,array.toJSONString()); + List errorList = new ArrayList<>(); + if(result.getCode() == 0 || result.getCode() == -3){ + for(YXYResultDetail detail : result.getData()){ + if(StringUtils.isNotBlank(detail.getUserid())){ + errorList.add(detail.getUserid()); + System.out.println(detail.getStuname() + "----" + detail.getErr()); + } + } + }else { + System.out.println(result.getMessage()); + } + for(SyncUserDto user : updateStudentList){ + if(!errorList.contains(user.getHxyCustomerId())){ + UserRelationDto userRelationDto = new UserRelationDto(); + userRelationDto.setYxyUserId(user.getCustomerId()); + userRelationDto.setSqlstate(2); + userRelationDto.setUserType(1); + userRelationDto.setState(1); + scFeign.updateUserRelation(userRelationDto); + scFeign.updateDept(user.getId()); + } + } + } + if(deleteStudentList.size() > 0){ + JSONArray array = initUserDeleteJson(deleteStudentList); + YXYResult result = getResult(prefix_url+suffix_user_delete,array.toJSONString()); + List errorList = new ArrayList<>(); + if(result.getCode() == 0 || result.getCode() == -3){ + for(YXYResultDetail detail : result.getData()){ + if(StringUtils.isNotBlank(detail.getUserid())){ + errorList.add(detail.getUserid()); + System.out.println(detail.getStuname() + "----" + detail.getErr()); + } + } + }else { + System.out.println(result.getMessage()); + } + for(SyncUserDto user : updateStudentList){ + if(!errorList.contains(user.getHxyCustomerId())){ + UserRelationDto userRelationDto = new UserRelationDto(); + userRelationDto.setYxyUserId(user.getCustomerId()); + userRelationDto.setSqlstate(2); + userRelationDto.setUserType(1); + userRelationDto.setState(0); + scFeign.updateUserRelation(userRelationDto); + scFeign.updateDept(user.getId()); + } + } + } + } + private void syncTeacherHxy(SyncSchoolDto school , List addTeacherList , List updateTeacherList ,List deleteTeacherList ){ + if(addTeacherList.size() > 0){ + JSONArray array = initTeacherAddJson(school,addTeacherList); + 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())){ + //成功 + 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.setState(1); + scFeign.updateUserRelation(userRelationDto); + scFeign.updateUser(syncUserDto.getId()); + } + } + }else { + System.out.println(result.getMessage()); + } + } + if(updateTeacherList.size() > 0){ + JSONArray array = initTeacherUpdateJson(school,updateTeacherList); + YXYResult result = getResult(prefix_url+suffix_teacher_update,array.toJSONString()); + List errorList = new ArrayList<>(); + if(result.getCode() == 0 || result.getCode() == -3){ + for(YXYResultDetail detail : result.getData()){ + if(StringUtils.isNotBlank(detail.getUserid())){ + errorList.add(detail.getUserid()); + System.out.println(detail.getStuname() + "----" + detail.getErr()); + } + } + }else { + System.out.println(result.getMessage()); + } + for(SyncUserDto user : updateTeacherList){ + if(!errorList.contains(user.getHxyCustomerId())){ + UserRelationDto userRelationDto = new UserRelationDto(); + userRelationDto.setYxyUserId(user.getCustomerId()); + userRelationDto.setSqlstate(2); + userRelationDto.setUserType(2); + userRelationDto.setState(1); + scFeign.updateUserRelation(userRelationDto); + scFeign.updateDept(user.getId()); + } + } + } + if(deleteTeacherList.size() > 0){ + JSONArray array = initUserDeleteJson(deleteTeacherList); + YXYResult result = getResult(prefix_url+suffix_user_delete,array.toJSONString()); + List errorList = new ArrayList<>(); + if(result.getCode() == 0 || result.getCode() == -3){ + for(YXYResultDetail detail : result.getData()){ + if(StringUtils.isNotBlank(detail.getUserid())){ + errorList.add(detail.getUserid()); + System.out.println(detail.getStuname() + "----" + detail.getErr()); + } + } + }else { + System.out.println(result.getMessage()); + } + for(SyncUserDto user : deleteTeacherList){ + if(!errorList.contains(user.getHxyCustomerId())){ + UserRelationDto userRelationDto = new UserRelationDto(); + userRelationDto.setYxyUserId(user.getCustomerId()); + userRelationDto.setSqlstate(2); + userRelationDto.setUserType(2); + userRelationDto.setState(0); + scFeign.updateUserRelation(userRelationDto); + scFeign.updateDept(user.getId()); + } + } + } } - private void syncStudent(){ + //封装组织架构对象 + private JSONArray initAddJson(List list , String yxtId){ + JSONArray array = new JSONArray(); + for(SyncDeptDto deptDto : list){ + JSONObject object = new JSONObject(); + object.put("schoolid",yxtId); + object.put("name",deptDto.getDeptName()); + if(deptDto.getGradeId() != 0){ + object.put("groupname",getDept(list,deptDto.getGradeId()).getDeptName()); + } + array.add(object); + } + return array ; + } + + private JSONArray initClassAddJson(List list){ + JSONArray array = new JSONArray(); + for(SyncDeptDto deptDto : list){ + JSONObject object = new JSONObject(); + object.put("gradeid",scFeign.selectYxyIdByHxyId(deptDto.getGradeId())); + object.put("classname",deptDto.getDeptName()); + array.add(object); + } + return array ; + } + + private JSONArray initUpdateJson(List list){ + JSONArray array = new JSONArray(); + for(SyncDeptDto deptDto : list){ + JSONObject object = new JSONObject(); + object.put("name",deptDto.getDeptName()); + object.put("id",scFeign.selectYxyIdByHxyId(deptDto.getDeptId())); + array.add(object); + } + return array ; + } + + private JSONArray initDeleteJson(List list){ + JSONArray array = new JSONArray(); + for(SyncDeptDto deptDto : list){ + JSONObject object = new JSONObject(); + object.put("id",scFeign.selectYxyIdByHxyId(deptDto.getDeptId())); + array.add(object); + } + return array ; + } + + //返回父部门,或者年级 + private SyncDeptDto getDept(List deptList , int pId){ + for(SyncDeptDto dept : deptList){ + if(dept.getDeptId() == pId){ + return dept ; + } + } + return null ; + } + + //返回对应的dept + private SyncDeptDto getDept(List deptList , String name){ + for(SyncDeptDto dept : deptList){ + if(dept.getDeptName().equals(name)){ + return dept ; + } + } + return null ; + } + + private SyncUserDto getUser(List deptList , String name){ + for(SyncUserDto user : deptList){ + if(user.getName().equals(name)){ + return user ; + } + } + return null ; } diff --git a/cloud/search_smartCampus/src/main/resources/mapper/SyncMapper.xml b/cloud/search_smartCampus/src/main/resources/mapper/SyncMapper.xml index 9056ffd..14653d8 100644 --- a/cloud/search_smartCampus/src/main/resources/mapper/SyncMapper.xml +++ b/cloud/search_smartCampus/src/main/resources/mapper/SyncMapper.xml @@ -60,10 +60,12 @@ + -- libgit2 0.21.0