第一部分代码
@Value("${pty.sync.username}")
private String userName;
@Value("${pty.sync.password}")
private String passWord;
@Value("${pty.sync.syncUri}")
private String syncUri;
第二部分代码
public void execute(JobExecutionContext context) throws JobExecutionException {
log.info("进入任务调用服务【{}】", "GanSuUserSync");
JobDetail jobDetail = context.getJobDetail();
JobDataMap jobDataMap = jobDetail.getJobDataMap();
String taskParam = jobDataMap.getString("taskParam");
JSONObject jsonObject = JSON.parseObject(taskParam);
String gsRoleCode = jsonObject.getString("roleCode");
JSONArray orgIdAndOrgCode = jsonObject.getJSONArray("orgIds");
String token = this.getToken(this.userName, this.passWord);
for(int i = 0; i < orgIdAndOrgCode.size(); ++i) {
JSONObject jsonValue = (JSONObject)orgIdAndOrgCode.get(i);
String gsOrgCode = jsonValue.getString("orgCode");
PtyOrg ptyOrg = this.orgService.selectByOrgCode(gsOrgCode, "87");
if (Objects.isNull(ptyOrg)) {
log.error("------> 系统OrgCode {} 为空", gsOrgCode);
} else {
String localOrgId = ptyOrg.getOrgId();
if (localOrgId.isEmpty()) {
log.error("----->localOrgId {} 为空", localOrgId);
} else {
String gsOrgId = jsonValue.getString("orgId");
if (gsOrgId.isEmpty()) {
log.error("----->gsOrgId {} 参数机构id为空", gsOrgId);
} else {
String userJson = this.getUser(token, gsOrgId);
List<PtyUser> userList = this.readjson(userJson, localOrgId);
this.insertUser(userList, gsRoleCode, localOrgId);
Iterator var17 = userList.iterator();
while(var17.hasNext()) {
PtyUser user = (PtyUser)var17.next();
log.info("------>userList {} 插入的用户", user.getUserCode() + " " + user.getUserName());
}
log.info("----->userList {} 插入的用户的数量", userList.size());
}
}
}
}
}
第三部分代码(被第二部分代码调用):
private String getToken(String username, String password) {
Map<String, Object> paramMap = new HashMap();
paramMap.put("username", username);
paramMap.put("password", password);
paramMap.put("grant_type", "password");
paramMap.put("scope", "read");
paramMap.put("client_id", "0");
paramMap.put("client_secret", "test");
String result = HttpRequest.post(this.syncUri + "/oauth/token").form(paramMap).timeout(20000).execute().body();
log.info("冰岛用户同步获取门户token,远程调用结果【{}】", result);
JSONObject jsonObject = JSONObject.parseObject(result);
return jsonObject.getString("access_token");
}
private String getUser(String token, String gsOrgId) {
Map<String, Object> paramMap = new HashMap();
paramMap.put("access_token", token);
paramMap.put("officeId", gsOrgId);
String s = HttpUtil.get(this.syncUri + "/rs/user/getUserList", paramMap);
log.info("获取门户待同步用户结果为:【{}】", s);
return s;
}
private List<PtyUser> readjson(String jsonResult, String localOrgId) {
JSONObject jsonObject = JSON.parseObject(jsonResult);
List<PtyUser> list = new ArrayList();
if (jsonObject.getString("code").equals("200")) {
JSONArray data = jsonObject.getJSONArray("data");
for(int i = 0; i < data.size(); ++i) {
PtyUser ptyUser = new PtyUser();
JSONObject jsonObj = data.getJSONObject(i);
ptyUser.setUserCode(jsonObj.getString("loginName"));
ptyUser.setUserName(jsonObj.getString("name"));
ptyUser.setUserId(jsonObj.getString("id"));
log.info("userId:[{}]" + jsonObj.getString("id"));
ptyUser.setMainOrgid(localOrgId);
list.add(ptyUser);
}
}
return list;
}