|
@@ -391,8 +391,10 @@ public class WeiXinCorpController {
|
|
.setRoleId(defaultRole.getId())
|
|
.setRoleId(defaultRole.getId())
|
|
.setRoleName(defaultRole.getRolename())
|
|
.setRoleName(defaultRole.getRolename())
|
|
.setName(userObj.getString("name"))
|
|
.setName(userObj.getString("name"))
|
|
|
|
+ .setPhone(userObj.getString("mobile"))
|
|
.setPassword(MD5Util.getPassword("000000"))
|
|
.setPassword(MD5Util.getPassword("000000"))
|
|
.setCorpwxUserid(corpWxUserId)
|
|
.setCorpwxUserid(corpWxUserId)
|
|
|
|
+ .setJobNumber(userObj.getString("userid"))
|
|
.setColor(ColorUtil.randomColor())
|
|
.setColor(ColorUtil.randomColor())
|
|
.setCompanyId(companyId);
|
|
.setCompanyId(companyId);
|
|
if (sysDept != null) {
|
|
if (sysDept != null) {
|
|
@@ -1472,12 +1474,12 @@ public class WeiXinCorpController {
|
|
if (unAssignedUserList.size() > 0) {
|
|
if (unAssignedUserList.size() > 0) {
|
|
remoteUnAUserList = remoteGetDeptUserDetail(wxCorpInfo, corpContactAccessToken, companyRootDeptId);
|
|
remoteUnAUserList = remoteGetDeptUserDetail(wxCorpInfo, corpContactAccessToken, companyRootDeptId);
|
|
//做id转化
|
|
//做id转化
|
|
- List<String> userIds = new ArrayList<>();
|
|
|
|
|
|
+ List<String> corpUserIds = new ArrayList<>();
|
|
for (int i=0;i<remoteUnAUserList.size(); i++) {
|
|
for (int i=0;i<remoteUnAUserList.size(); i++) {
|
|
- userIds.add(remoteUnAUserList.getJSONObject(i).getString("userid"));
|
|
|
|
|
|
+ corpUserIds.add(remoteUnAUserList.getJSONObject(i).getString("userid"));
|
|
}
|
|
}
|
|
try {
|
|
try {
|
|
- JSONArray array = convertUserIdToOpenUserId(curCorpAccessToken, userIds);
|
|
|
|
|
|
+ JSONArray array = convertUserIdToOpenUserId(curCorpAccessToken, corpUserIds);
|
|
for (int i=0;i<array.size(); i++) {
|
|
for (int i=0;i<array.size(); i++) {
|
|
JSONObject jsonObject = array.getJSONObject(i);
|
|
JSONObject jsonObject = array.getJSONObject(i);
|
|
String userid = jsonObject.getString("userid");
|
|
String userid = jsonObject.getString("userid");
|
|
@@ -1486,7 +1488,7 @@ public class WeiXinCorpController {
|
|
for (int m=0;m<remoteUnAUserList.size(); m++) {
|
|
for (int m=0;m<remoteUnAUserList.size(); m++) {
|
|
JSONObject remoteUser = remoteUnAUserList.getJSONObject(m);
|
|
JSONObject remoteUser = remoteUnAUserList.getJSONObject(m);
|
|
if (remoteUser.getString("userid").equals(userid)) {
|
|
if (remoteUser.getString("userid").equals(userid)) {
|
|
- remoteUser.put("userid", openUserid);
|
|
|
|
|
|
+ remoteUser.put("openUserid", openUserid);
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -1498,7 +1500,7 @@ public class WeiXinCorpController {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
-
|
|
|
|
|
|
+ List<User> updateUserList = new ArrayList<>();
|
|
for (int m=0;m<unAssignedUserList.size(); m++) {
|
|
for (int m=0;m<unAssignedUserList.size(); m++) {
|
|
JSONObject userJson = unAssignedUserList.getJSONObject(m);
|
|
JSONObject userJson = unAssignedUserList.getJSONObject(m);
|
|
String curUserid = userJson.getString("userid");
|
|
String curUserid = userJson.getString("userid");
|
|
@@ -1523,36 +1525,44 @@ public class WeiXinCorpController {
|
|
if (remoteUnAUserList != null) {
|
|
if (remoteUnAUserList != null) {
|
|
for (int i=0;i<remoteUnAUserList.size(); i++) {
|
|
for (int i=0;i<remoteUnAUserList.size(); i++) {
|
|
JSONObject remoteUserJson = remoteUnAUserList.getJSONObject(i);
|
|
JSONObject remoteUserJson = remoteUnAUserList.getJSONObject(i);
|
|
- if (remoteUserJson.getString("userid").equals(curUserid)) {
|
|
|
|
|
|
+ if (remoteUserJson.getString("openUserid").equals(curUserid)) {
|
|
user.setName(remoteUserJson.getString("name"));
|
|
user.setName(remoteUserJson.getString("name"));
|
|
|
|
+ user.setJobNumber(remoteUserJson.getString("userid"));
|
|
|
|
+ user.setPhone(remoteUserJson.getString("mobile"));
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
//检查用户是否已经存在
|
|
//检查用户是否已经存在
|
|
- User oldUser = userMapper.selectOne(new QueryWrapper<User>().select("id, name, role_name").eq("corpwx_userid", curUserid).eq("company_id", companyId));
|
|
|
|
-
|
|
|
|
|
|
+ User oldUser = userMapper.selectOne(new QueryWrapper<User>().select("id, name, job_number, phone").eq("corpwx_userid", curUserid).eq("company_id", companyId));
|
|
if (oldUser == null) {
|
|
if (oldUser == null) {
|
|
- //先检查姓名+手机号是否存在,如果存在,则更新corpwxId
|
|
|
|
- User sameNameUser = userMapper.selectOne(new QueryWrapper<User>().eq("name", user.getName()).eq("phone", user.getPhone()).eq("company_id", companyId).isNull("corpwx_userid").last("limit 1"));
|
|
|
|
- if (sameNameUser != null) {
|
|
|
|
- User upUser = new User();
|
|
|
|
- upUser.setId(sameNameUser.getId());
|
|
|
|
- upUser.setCorpwxUserid(user.getCorpwxUserid());
|
|
|
|
- userMapper.updateById(upUser);
|
|
|
|
- } else {
|
|
|
|
- userMapper.insert(user);
|
|
|
|
- }
|
|
|
|
|
|
+ updateUserList.add(user);
|
|
} else {
|
|
} else {
|
|
- if (oldUser.getRoleName().equals("超级管理员") && !oldUser.getName().equals(user.getName())) {
|
|
|
|
- //姓名不一致,需要更新
|
|
|
|
- System.out.println("===更新超管姓名==="+user.getName());
|
|
|
|
- user.setId(oldUser.getId());
|
|
|
|
- oldUser.setName(user.getName());
|
|
|
|
- userMapper.updateById(oldUser);
|
|
|
|
|
|
+ boolean hasChange = false;
|
|
|
|
+ User updateUser = new User();
|
|
|
|
+ updateUser.setId(oldUser.getId());
|
|
|
|
+ //工号或者手机号更新了
|
|
|
|
+ if (user.getJobNumber() != null && !user.getJobNumber().equals(oldUser.getJobNumber())) {
|
|
|
|
+ hasChange = true;
|
|
|
|
+ updateUser.setJobNumber(user.getJobNumber());
|
|
|
|
+ }
|
|
|
|
+ if (user.getPhone() != null && !user.getPhone().equals(oldUser.getPhone())) {
|
|
|
|
+ hasChange = true;
|
|
|
|
+ updateUser.setPhone(user.getPhone());
|
|
|
|
+ }
|
|
|
|
+ if (user.getName() != null && !user.getName().equals(oldUser.getName())) {
|
|
|
|
+ hasChange = true;
|
|
|
|
+ updateUser.setName(user.getName());
|
|
|
|
+ }
|
|
|
|
+ if (hasChange) {
|
|
|
|
+ //需要更新
|
|
|
|
+ updateUserList.add(updateUser);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+ if (updateUserList.size() > 0) {
|
|
|
|
+ userService.saveOrUpdateBatch(updateUserList);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
//获取公司全部部门,不需要递归
|
|
//获取公司全部部门,不需要递归
|
|
@@ -1587,15 +1597,6 @@ public class WeiXinCorpController {
|
|
if (deptId != 1) {
|
|
if (deptId != 1) {
|
|
//忽略根,根是公司名称
|
|
//忽略根,根是公司名称
|
|
departmentMapper.insert(department);
|
|
departmentMapper.insert(department);
|
|
- //按名称比对
|
|
|
|
-// oldDept = departmentMapper.selectOne(new QueryWrapper<Department>().eq("company_id", companyId).eq("department_name", department.getDepartmentName()).last("limit 1"));
|
|
|
|
-// if (oldDept == null) {
|
|
|
|
-// departmentMapper.insert(department);
|
|
|
|
-// } else {
|
|
|
|
-// //按照企业微信部门id进行更新
|
|
|
|
-// oldDept.setCorpwxDeptid(department.getCorpwxDeptid());
|
|
|
|
-// departmentMapper.updateById(oldDept);
|
|
|
|
-// }
|
|
|
|
}
|
|
}
|
|
} else {
|
|
} else {
|
|
//比较是否有更新
|
|
//比较是否有更新
|
|
@@ -1619,7 +1620,6 @@ public class WeiXinCorpController {
|
|
department = oldDept;
|
|
department = oldDept;
|
|
}
|
|
}
|
|
|
|
|
|
-// sysDeptList.add(department);
|
|
|
|
deptObjJSONArray.getJSONObject(i).put("sys_dept_id", department.getDepartmentId());
|
|
deptObjJSONArray.getJSONObject(i).put("sys_dept_id", department.getDepartmentId());
|
|
Integer departmentId = department.getDepartmentId();
|
|
Integer departmentId = department.getDepartmentId();
|
|
if (syncMembs == 1) {
|
|
if (syncMembs == 1) {
|
|
@@ -1628,12 +1628,12 @@ public class WeiXinCorpController {
|
|
if (userList.size() > 0) {
|
|
if (userList.size() > 0) {
|
|
remoteDeptUserList = remoteGetDeptUserDetail(wxCorpInfo, corpContactAccessToken, deptId);
|
|
remoteDeptUserList = remoteGetDeptUserDetail(wxCorpInfo, corpContactAccessToken, deptId);
|
|
//做id转化
|
|
//做id转化
|
|
- List<String> userIds = new ArrayList<>();
|
|
|
|
|
|
+ List<String> corpUserIds = new ArrayList<>();
|
|
for (int p=0;p<remoteDeptUserList.size(); p++) {
|
|
for (int p=0;p<remoteDeptUserList.size(); p++) {
|
|
- userIds.add(remoteDeptUserList.getJSONObject(p).getString("userid"));
|
|
|
|
|
|
+ corpUserIds.add(remoteDeptUserList.getJSONObject(p).getString("userid"));
|
|
}
|
|
}
|
|
try {
|
|
try {
|
|
- JSONArray array = convertUserIdToOpenUserId(curCorpAccessToken, userIds);
|
|
|
|
|
|
+ JSONArray array = convertUserIdToOpenUserId(curCorpAccessToken, corpUserIds);
|
|
for (int w=0;w<array.size(); w++) {
|
|
for (int w=0;w<array.size(); w++) {
|
|
JSONObject jsonObject = array.getJSONObject(w);
|
|
JSONObject jsonObject = array.getJSONObject(w);
|
|
String userid = jsonObject.getString("userid");
|
|
String userid = jsonObject.getString("userid");
|
|
@@ -1642,7 +1642,7 @@ public class WeiXinCorpController {
|
|
for (int m=0;m<remoteDeptUserList.size(); m++) {
|
|
for (int m=0;m<remoteDeptUserList.size(); m++) {
|
|
JSONObject remoteUser = remoteDeptUserList.getJSONObject(m);
|
|
JSONObject remoteUser = remoteDeptUserList.getJSONObject(m);
|
|
if (remoteUser.getString("userid").equals(userid)) {
|
|
if (remoteUser.getString("userid").equals(userid)) {
|
|
- remoteUser.put("userid", openUserid);
|
|
|
|
|
|
+ remoteUser.put("openUserid", openUserid);
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -1653,7 +1653,7 @@ public class WeiXinCorpController {
|
|
return msg;
|
|
return msg;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+ List<User> updateUserList = new ArrayList<>();
|
|
for (int m=0;m<userList.size(); m++) {
|
|
for (int m=0;m<userList.size(); m++) {
|
|
JSONObject userJson = userList.getJSONObject(m);
|
|
JSONObject userJson = userList.getJSONObject(m);
|
|
String curUserid = userJson.getString("userid");
|
|
String curUserid = userJson.getString("userid");
|
|
@@ -1678,47 +1678,46 @@ public class WeiXinCorpController {
|
|
if (remoteDeptUserList != null) {
|
|
if (remoteDeptUserList != null) {
|
|
for (int t=0;t<remoteDeptUserList.size(); t++) {
|
|
for (int t=0;t<remoteDeptUserList.size(); t++) {
|
|
JSONObject remoteUserJson = remoteDeptUserList.getJSONObject(t);
|
|
JSONObject remoteUserJson = remoteDeptUserList.getJSONObject(t);
|
|
- if (remoteUserJson.getString("userid").equals(curUserid)) {
|
|
|
|
|
|
+ if (remoteUserJson.getString("openUserid").equals(curUserid)) {
|
|
//匹配到了。设置姓名
|
|
//匹配到了。设置姓名
|
|
System.out.println("远程的用户匹配到了:"+remoteUserJson.getString("name"));
|
|
System.out.println("远程的用户匹配到了:"+remoteUserJson.getString("name"));
|
|
user.setName(remoteUserJson.getString("name"));
|
|
user.setName(remoteUserJson.getString("name"));
|
|
|
|
+ user.setJobNumber(remoteUserJson.getString("userid"));
|
|
|
|
+ user.setPhone(remoteUserJson.getString("mobile"));
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
//检查用户是否已经存在
|
|
//检查用户是否已经存在
|
|
- User oldUser = userMapper.selectOne(new QueryWrapper<User>().eq("corpwx_userid", curUserid).eq("company_id", companyId));
|
|
|
|
|
|
+ User oldUser = userMapper.selectOne(new QueryWrapper<User>().select("id, name, job_number, phone").eq("corpwx_userid", curUserid).eq("company_id", companyId));
|
|
if (oldUser == null) {
|
|
if (oldUser == null) {
|
|
- //先检查姓名是否存在,如果存在,则更新corpwxId
|
|
|
|
- User sameNameUser = userMapper.selectOne(new QueryWrapper<User>().eq("name", user.getName()).eq("phone", user.getPhone()).eq("company_id", companyId).isNull("corpwx_userid").last("limit 1"));
|
|
|
|
- if (sameNameUser != null) {
|
|
|
|
- User upUser = new User();
|
|
|
|
- upUser.setId(sameNameUser.getId());
|
|
|
|
- upUser.setCorpwxUserid(user.getCorpwxUserid());
|
|
|
|
- userMapper.updateById(upUser);
|
|
|
|
- } else {
|
|
|
|
- //姓名也不存在,则插入新记录
|
|
|
|
- userMapper.insert(user);
|
|
|
|
- }
|
|
|
|
|
|
+ updateUserList.add(user);
|
|
} else {
|
|
} else {
|
|
- boolean shouldUpdate = false;
|
|
|
|
- if (oldUser.getRoleName().equals("超级管理员") && !oldUser.getName().equals(user.getName())) {
|
|
|
|
- //姓名不一致,需要更新
|
|
|
|
- System.out.println("===更新超管姓名==="+user.getName());
|
|
|
|
- user.setId(oldUser.getId());
|
|
|
|
- oldUser.setName(user.getName());
|
|
|
|
- shouldUpdate = true;
|
|
|
|
|
|
+ boolean hasChange = false;
|
|
|
|
+ User updateUser = new User();
|
|
|
|
+ updateUser.setId(oldUser.getId());
|
|
|
|
+ //工号或者手机号更新了
|
|
|
|
+ if (user.getJobNumber() != null && !user.getJobNumber().equals(oldUser.getJobNumber())) {
|
|
|
|
+ hasChange = true;
|
|
|
|
+ updateUser.setJobNumber(user.getJobNumber());
|
|
}
|
|
}
|
|
- if (!oldUser.getDepartmentId().equals(user.getDepartmentId())) {
|
|
|
|
- oldUser.setDepartmentId(user.getDepartmentId());
|
|
|
|
- shouldUpdate = true;
|
|
|
|
|
|
+ if (user.getPhone() != null && !user.getPhone().equals(oldUser.getPhone())) {
|
|
|
|
+ hasChange = true;
|
|
|
|
+ updateUser.setPhone(user.getPhone());
|
|
}
|
|
}
|
|
- if (shouldUpdate) {
|
|
|
|
- userMapper.updateById(oldUser);
|
|
|
|
|
|
+ if (user.getName() != null && !user.getName().equals(oldUser.getName())) {
|
|
|
|
+ hasChange = true;
|
|
|
|
+ updateUser.setName(user.getName());
|
|
|
|
+ }
|
|
|
|
+ if (hasChange) {
|
|
|
|
+ //需要更新
|
|
|
|
+ updateUserList.add(updateUser);
|
|
}
|
|
}
|
|
-
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+ if (updateUserList.size() > 0) {
|
|
|
|
+ userService.saveOrUpdateBatch(updateUserList);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|