Commit 13f9a9ee by xieshaohua

用户更新eid

parent 27b9e7f4
......@@ -23,6 +23,7 @@ import org.springframework.security.authentication.UsernamePasswordAuthenticatio
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.web.authentication.WebAuthenticationDetails;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.util.UriComponentsBuilder;
......@@ -94,20 +95,35 @@ public class LoginManagement {
log.info("boss用户数据返回:" + JSON.toJSONString(result));
JSONObject resultJb = JSON.parseObject(result);
JSONObject resultData = resultJb.getJSONObject("data");
String userName = String.valueOf(resultData.get("employeeNumber"));
String userDName = String.valueOf(resultData.get("chineseName"));
List<Map<String, Object>> matchUser = authService.getUserByName(userName);
if (null == matchUser || matchUser.isEmpty()) {
String userName = resultData.get("employeeNumber") == null ? "" : String.valueOf(resultData.get("employeeNumber"));
String userDName = resultData.get("chineseName") == null ? "" : String.valueOf(resultData.get("chineseName"));
String eid = resultData.get("eid") == null ? "" : String.valueOf(resultData.get("eid"));
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<>();
toAdd.put("dname", userDName);
toAdd.put("name", userName);
toAdd.put("dname", userDName);
toAdd.put("eid", eid);
toAdd.put("password", "37fa265330ad83eaa879efb1e2db6380896cf639");
List<Map<String, Object>> dataRoleAbstracts = new ArrayList<>();
Map<String, Object> roleMap = new HashMap<>();
roleMap.put("id", defaultRoleId);
dataRoleAbstracts.add(roleMap);
toAdd.put("dataRoleAbstracts", dataRoleAbstracts);
log.info("新增用户:" + JSON.toJSONString(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);
UsernamePasswordAuthenticationToken authentication =
......@@ -288,5 +304,40 @@ public class LoginManagement {
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 {
@PostMapping(value = "/users")
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