Commit 13f9a9ee by xieshaohua

用户更新eid

parent 27b9e7f4
...@@ -23,6 +23,7 @@ import org.springframework.security.authentication.UsernamePasswordAuthenticatio ...@@ -23,6 +23,7 @@ import org.springframework.security.authentication.UsernamePasswordAuthenticatio
import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.security.core.userdetails.UserDetails; import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.web.authentication.WebAuthenticationDetails; import org.springframework.security.web.authentication.WebAuthenticationDetails;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.util.UriComponentsBuilder; import org.springframework.web.util.UriComponentsBuilder;
...@@ -94,20 +95,35 @@ public class LoginManagement { ...@@ -94,20 +95,35 @@ public class LoginManagement {
log.info("boss用户数据返回:" + JSON.toJSONString(result)); log.info("boss用户数据返回:" + JSON.toJSONString(result));
JSONObject resultJb = JSON.parseObject(result); JSONObject resultJb = JSON.parseObject(result);
JSONObject resultData = resultJb.getJSONObject("data"); JSONObject resultData = resultJb.getJSONObject("data");
String userName = String.valueOf(resultData.get("employeeNumber")); String userName = resultData.get("employeeNumber") == null ? "" : String.valueOf(resultData.get("employeeNumber"));
String userDName = String.valueOf(resultData.get("chineseName")); String userDName = resultData.get("chineseName") == null ? "" : String.valueOf(resultData.get("chineseName"));
List<Map<String, Object>> matchUser = authService.getUserByName(userName); String eid = resultData.get("eid") == null ? "" : String.valueOf(resultData.get("eid"));
if (null == matchUser || matchUser.isEmpty()) {
Map<String, Object> user = getUserByName(userName);
log.info("匹配用户:" + user == null ? "" : JSON.toJSONString(user));
if (null == user || CollectionUtils.isEmpty(user)) {
Map<String, Object> toAdd = new HashMap<>(); Map<String, Object> toAdd = new HashMap<>();
toAdd.put("dname", userDName);
toAdd.put("name", userName); toAdd.put("name", userName);
toAdd.put("dname", userDName);
toAdd.put("eid", eid);
toAdd.put("password", "37fa265330ad83eaa879efb1e2db6380896cf639"); toAdd.put("password", "37fa265330ad83eaa879efb1e2db6380896cf639");
List<Map<String, Object>> dataRoleAbstracts = new ArrayList<>(); List<Map<String, Object>> dataRoleAbstracts = new ArrayList<>();
Map<String, Object> roleMap = new HashMap<>(); Map<String, Object> roleMap = new HashMap<>();
roleMap.put("id", defaultRoleId); roleMap.put("id", defaultRoleId);
dataRoleAbstracts.add(roleMap); dataRoleAbstracts.add(roleMap);
toAdd.put("dataRoleAbstracts", dataRoleAbstracts); toAdd.put("dataRoleAbstracts", dataRoleAbstracts);
log.info("新增用户:" + JSON.toJSONString(toAdd));
authService.addUser(toAdd); authService.addUser(toAdd);
} else if (needUpate(resultJb, user)) {
Long userId = Long.valueOf(user.get("id").toString());
user.put("name", userName);
user.put("dname", userDName);
user.put("eid", eid);
log.info("更新用户:" + JSON.toJSONString(user));
authService.updateUser(userId, user);
} }
UserDetails userDetails = customizedUserDetailService.loadUserByUsername(userName); UserDetails userDetails = customizedUserDetailService.loadUserByUsername(userName);
UsernamePasswordAuthenticationToken authentication = UsernamePasswordAuthenticationToken authentication =
...@@ -288,5 +304,40 @@ public class LoginManagement { ...@@ -288,5 +304,40 @@ public class LoginManagement {
return null; return null;
} }
private Map<String, Object> getUserByName(String userName) {
List<Map<String, Object>> matchUser = authService.getUserByName(userName);
if (matchUser != null) {
Map<String, Object> user = matchUser.stream().filter(e -> StringUtils.equals(userName, String.valueOf(e.get("name"))))
.findFirst().orElse(null);
return user;
}
return null;
}
private Boolean needUpate(JSONObject ssoUser, Map<String, Object> user) {
if (ssoUser == null || user == null) {
return false;
}
JSONObject ssoUserData = ssoUser.getJSONObject("data");
String ssoUserName = ssoUserData.get("employeeNumber") == null ? "" : String.valueOf(ssoUserData.get("employeeNumber"));
String ssoUserDName = ssoUserData.get("chineseName") == null ? "" : String.valueOf(ssoUserData.get("chineseName"));
String ssoEid = ssoUserData.get("eid") == null ? "" : String.valueOf(ssoUserData.get("eid"));
String userName = user.get("name") == null ? "" : String.valueOf(user.get("name"));
String dname = user.get("dname") == null ? "" : String.valueOf(user.get("dname"));
String eid = user.get("eid") == null ? "" : String.valueOf(user.get("eid"));
log.info("ssoUserName:{},ssoUserDName:{},ssoEid:{}",ssoUserName,ssoUserDName,ssoEid);
log.info("userName:{},dname:{},eid:{}",userName,dname,eid);
if (!StringUtils.equals(ssoUserName, userName) || !StringUtils.equals(ssoUserDName, dname)
|| !StringUtils.equals(ssoEid, eid)) {
return true;
}
return false;
}
} }
...@@ -15,5 +15,7 @@ public interface AuthService { ...@@ -15,5 +15,7 @@ public interface AuthService {
@PostMapping(value = "/users") @PostMapping(value = "/users")
Map<String, Object> addUser(@RequestBody Map<String, Object> user); Map<String, Object> addUser(@RequestBody Map<String, Object> user);
@PostMapping(value = "/users/{userId}")
Map<String, Object> updateUser(@PathVariable(value = "userId") Long userId, @RequestBody Map<String, Object> user);
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment