|
@@ -13,6 +13,7 @@ import cn.com.qmth.examcloud.tool.utils.StatusException;
|
|
import cn.com.qmth.examcloud.tool.vo.user.User;
|
|
import cn.com.qmth.examcloud.tool.vo.user.User;
|
|
import com.alibaba.excel.EasyExcel;
|
|
import com.alibaba.excel.EasyExcel;
|
|
import com.fasterxml.jackson.databind.JsonNode;
|
|
import com.fasterxml.jackson.databind.JsonNode;
|
|
|
|
+import org.apache.commons.collections4.CollectionUtils;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.LoggerFactory;
|
|
import org.slf4j.LoggerFactory;
|
|
@@ -90,8 +91,57 @@ public class BatchCreateUserTask implements TaskService {
|
|
user.setPsw(user.getPsw().trim());
|
|
user.setPsw(user.getPsw().trim());
|
|
}
|
|
}
|
|
|
|
|
|
- if (!roleMaps.containsKey(user.getRoleName())) {
|
|
|
|
|
|
+ Long roleId = roleMaps.get(user.getRoleName());
|
|
|
|
+ if (roleId == null) {
|
|
errMessages.add("第" + (i + 1) + "条 角色内容有误!");
|
|
errMessages.add("第" + (i + 1) + "条 角色内容有误!");
|
|
|
|
+ } else {
|
|
|
|
+ user.setRoleId(roleId);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if (!this.isAll(user.getRefExam())) {
|
|
|
|
+ user.setRefExamIds(this.parseLongValues(user.getRefExam()));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if (!this.isAll(user.getRefOrg())) {
|
|
|
|
+ List<String> codes = this.parseValues(user.getRefOrg());
|
|
|
|
+ List<Long> refOrgIds = new ArrayList<>();
|
|
|
|
+
|
|
|
|
+ for (String code : codes) {
|
|
|
|
+ Long orgId = orgMaps.get(code);
|
|
|
|
+ if (orgId == null) {
|
|
|
|
+ orgId = commonService.queryOrgIdByCode(loginUser, code);
|
|
|
|
+ if (orgId == null) {
|
|
|
|
+ errMessages.add("第" + (i + 1) + "条 机构代码不正确!" + code);
|
|
|
|
+ } else {
|
|
|
|
+ orgMaps.put(code, orgId);
|
|
|
|
+ refOrgIds.add(orgId);
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+ refOrgIds.add(orgId);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ user.setRefOrgIds(refOrgIds);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if (!this.isAll(user.getRefCourse())) {
|
|
|
|
+ List<String> codes = this.parseValues(user.getRefCourse());
|
|
|
|
+ List<Long> refCourseIds = new ArrayList<>();
|
|
|
|
+
|
|
|
|
+ for (String code : codes) {
|
|
|
|
+ Long courseId = courseMaps.get(code);
|
|
|
|
+ if (courseId == null) {
|
|
|
|
+ courseId = commonService.queryCourseIdByCode(loginUser, code);
|
|
|
|
+ if (courseId == null) {
|
|
|
|
+ errMessages.add("第" + (i + 1) + "条 课程代码不正确!" + code);
|
|
|
|
+ } else {
|
|
|
|
+ courseMaps.put(code, courseId);
|
|
|
|
+ refCourseIds.add(courseId);
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+ refCourseIds.add(courseId);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ user.setRefCourseIds(refCourseIds);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
@@ -102,7 +152,7 @@ public class BatchCreateUserTask implements TaskService {
|
|
int failCount = 0;
|
|
int failCount = 0;
|
|
for (int i = 0; i < total; i++) {
|
|
for (int i = 0; i < total; i++) {
|
|
UserInfo user = dataList.get(i);
|
|
UserInfo user = dataList.get(i);
|
|
- this.createUser(loginUser, user, roleMaps);
|
|
|
|
|
|
+ this.createUser(loginUser, user);
|
|
|
|
|
|
UserInfo existUser = commonService.queryUserByLoginName(loginUser, user.getLoginName());
|
|
UserInfo existUser = commonService.queryUserByLoginName(loginUser, user.getLoginName());
|
|
if (existUser == null) {
|
|
if (existUser == null) {
|
|
@@ -111,9 +161,10 @@ public class BatchCreateUserTask implements TaskService {
|
|
continue;
|
|
continue;
|
|
}
|
|
}
|
|
|
|
|
|
- this.updateDataRuleForExam(loginUser, existUser.getId(), user.getRefExam());
|
|
|
|
- this.updateDataRuleForCourse(loginUser, existUser.getId(), user.getRefCourse());
|
|
|
|
- this.updateDataRuleForOrg(loginUser, existUser.getId(), user.getRefOrg());
|
|
|
|
|
|
+ user.setId(existUser.getId());
|
|
|
|
+ this.updateDataRuleForExam(loginUser, user);
|
|
|
|
+ this.updateDataRuleForCourse(loginUser, user);
|
|
|
|
+ this.updateDataRuleForOrg(loginUser, user);
|
|
|
|
|
|
log.info("共{}条 第{}条 已执行!{}", total, i + 1, user.getLoginName());
|
|
log.info("共{}条 第{}条 已执行!{}", total, i + 1, user.getLoginName());
|
|
}
|
|
}
|
|
@@ -123,15 +174,11 @@ public class BatchCreateUserTask implements TaskService {
|
|
task.setDescription(msg);
|
|
task.setDescription(msg);
|
|
}
|
|
}
|
|
|
|
|
|
- private void createUser(User loginUser, UserInfo user, Map<String, Long> roleMaps) {
|
|
|
|
- String url = loginUser.getServerUrl() + "/api/ecs_core/user";
|
|
|
|
|
|
+ private void createUser(User loginUser, UserInfo user) {
|
|
Map<String, String> headers = new HashMap<>();
|
|
Map<String, String> headers = new HashMap<>();
|
|
headers.put("key", loginUser.getKey());
|
|
headers.put("key", loginUser.getKey());
|
|
headers.put("token", loginUser.getToken());
|
|
headers.put("token", loginUser.getToken());
|
|
|
|
|
|
- Long roleId = roleMaps.get(user.getRoleName());
|
|
|
|
- List<Long> orgIds = this.toLongValues(user.getRefOrg());
|
|
|
|
-
|
|
|
|
Map<String, Object> params = new HashMap<>();
|
|
Map<String, Object> params = new HashMap<>();
|
|
params.put("rootOrgId", loginUser.getRootOrgId());
|
|
params.put("rootOrgId", loginUser.getRootOrgId());
|
|
params.put("name", user.getUserName());
|
|
params.put("name", user.getUserName());
|
|
@@ -139,12 +186,13 @@ public class BatchCreateUserTask implements TaskService {
|
|
params.put("password", user.getPsw());
|
|
params.put("password", user.getPsw());
|
|
params.put("phoneNumber", user.getPhoneNumber());
|
|
params.put("phoneNumber", user.getPhoneNumber());
|
|
params.put("enable", true);
|
|
params.put("enable", true);
|
|
- params.put("roleIds", new Long[]{roleId});
|
|
|
|
- if (!orgIds.isEmpty()) {
|
|
|
|
- params.put("orgId", orgIds.get(0));
|
|
|
|
|
|
+ params.put("roleIds", new Long[]{user.getRoleId()});
|
|
|
|
+ if (CollectionUtils.isNotEmpty(user.getRefOrgIds())) {
|
|
|
|
+ params.put("orgId", user.getRefOrgIds().get(0));
|
|
}
|
|
}
|
|
|
|
|
|
try {
|
|
try {
|
|
|
|
+ String url = loginUser.getServerUrl() + "/api/ecs_core/user";
|
|
String result = HttpHelper.post(url, headers, params);
|
|
String result = HttpHelper.post(url, headers, params);
|
|
log.info(result);
|
|
log.info(result);
|
|
} catch (Exception e) {
|
|
} catch (Exception e) {
|
|
@@ -152,76 +200,73 @@ public class BatchCreateUserTask implements TaskService {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
- private void updateDataRuleForExam(User loginUser, Long userId, String refExam) {
|
|
|
|
|
|
+ private void updateDataRuleForExam(User loginUser, UserInfo user) {
|
|
Map<String, String> headers = new HashMap<>();
|
|
Map<String, String> headers = new HashMap<>();
|
|
headers.put("key", loginUser.getKey());
|
|
headers.put("key", loginUser.getKey());
|
|
headers.put("token", loginUser.getToken());
|
|
headers.put("token", loginUser.getToken());
|
|
|
|
|
|
- if (this.isAll(refExam)) {
|
|
|
|
- String url = loginUser.getServerUrl() + "/api/ecs_core/user/data/rule/default/status/update?type=EXAM&enabled=true&userId=" + userId;
|
|
|
|
|
|
+ if (this.isAll(user.getRefExam())) {
|
|
|
|
+ String url = loginUser.getServerUrl() + "/api/ecs_core/user/data/rule/default/status/update?type=EXAM&enabled=true&userId=" + user.getId();
|
|
HttpHelper.post(url, headers, null);
|
|
HttpHelper.post(url, headers, null);
|
|
} else {
|
|
} else {
|
|
- List<Long> refIds = this.toLongValues(refExam);
|
|
|
|
- if (refIds.isEmpty()) {
|
|
|
|
|
|
+ if (CollectionUtils.isEmpty(user.getRefExamIds())) {
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
|
|
|
|
String url = loginUser.getServerUrl() + "/api/ecs_core/user/data/rule/add";
|
|
String url = loginUser.getServerUrl() + "/api/ecs_core/user/data/rule/add";
|
|
Map<String, Object> params = new HashMap<>();
|
|
Map<String, Object> params = new HashMap<>();
|
|
params.put("type", "EXAM");
|
|
params.put("type", "EXAM");
|
|
- params.put("userId", userId);
|
|
|
|
- params.put("refIds", refIds);
|
|
|
|
|
|
+ params.put("userId", user.getId());
|
|
|
|
+ params.put("refIds", user.getRefExamIds());
|
|
HttpHelper.post(url, headers, params);
|
|
HttpHelper.post(url, headers, params);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
- private void updateDataRuleForCourse(User loginUser, Long userId, String refCourse) {
|
|
|
|
|
|
+ private void updateDataRuleForCourse(User loginUser, UserInfo user) {
|
|
Map<String, String> headers = new HashMap<>();
|
|
Map<String, String> headers = new HashMap<>();
|
|
headers.put("key", loginUser.getKey());
|
|
headers.put("key", loginUser.getKey());
|
|
headers.put("token", loginUser.getToken());
|
|
headers.put("token", loginUser.getToken());
|
|
|
|
|
|
- if (this.isAll(refCourse)) {
|
|
|
|
- String url = loginUser.getServerUrl() + "/api/ecs_core/user/data/rule/default/status/update?type=COURSE&enabled=true&userId=" + userId;
|
|
|
|
|
|
+ if (this.isAll(user.getRefCourse())) {
|
|
|
|
+ String url = loginUser.getServerUrl() + "/api/ecs_core/user/data/rule/default/status/update?type=COURSE&enabled=true&userId=" + user.getId();
|
|
HttpHelper.post(url, headers, null);
|
|
HttpHelper.post(url, headers, null);
|
|
} else {
|
|
} else {
|
|
- List<Long> refIds = this.toLongValues(refCourse);
|
|
|
|
- if (refIds.isEmpty()) {
|
|
|
|
|
|
+ if (CollectionUtils.isEmpty(user.getRefCourseIds())) {
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
|
|
|
|
String url = loginUser.getServerUrl() + "/api/ecs_core/user/data/rule/add";
|
|
String url = loginUser.getServerUrl() + "/api/ecs_core/user/data/rule/add";
|
|
Map<String, Object> params = new HashMap<>();
|
|
Map<String, Object> params = new HashMap<>();
|
|
params.put("type", "COURSE");
|
|
params.put("type", "COURSE");
|
|
- params.put("userId", userId);
|
|
|
|
- params.put("refIds", refIds);
|
|
|
|
|
|
+ params.put("userId", user.getId());
|
|
|
|
+ params.put("refIds", user.getRefCourseIds());
|
|
HttpHelper.post(url, headers, params);
|
|
HttpHelper.post(url, headers, params);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
- private void updateDataRuleForOrg(User loginUser, Long userId, String refOrg) {
|
|
|
|
|
|
+ private void updateDataRuleForOrg(User loginUser, UserInfo user) {
|
|
Map<String, String> headers = new HashMap<>();
|
|
Map<String, String> headers = new HashMap<>();
|
|
headers.put("key", loginUser.getKey());
|
|
headers.put("key", loginUser.getKey());
|
|
headers.put("token", loginUser.getToken());
|
|
headers.put("token", loginUser.getToken());
|
|
|
|
|
|
- if (this.isAll(refOrg)) {
|
|
|
|
- String url = loginUser.getServerUrl() + "/api/ecs_core/user/data/rule/default/status/update?type=ORG&enabled=true&userId=" + userId;
|
|
|
|
|
|
+ if (this.isAll(user.getRefOrg())) {
|
|
|
|
+ String url = loginUser.getServerUrl() + "/api/ecs_core/user/data/rule/default/status/update?type=ORG&enabled=true&userId=" + user.getId();
|
|
HttpHelper.post(url, headers, null);
|
|
HttpHelper.post(url, headers, null);
|
|
} else {
|
|
} else {
|
|
- List<Long> refIds = this.toLongValues(refOrg);
|
|
|
|
- if (refIds.isEmpty()) {
|
|
|
|
|
|
+ if (CollectionUtils.isEmpty(user.getRefOrgIds())) {
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
|
|
|
|
String url = loginUser.getServerUrl() + "/api/ecs_core/user/data/rule/add";
|
|
String url = loginUser.getServerUrl() + "/api/ecs_core/user/data/rule/add";
|
|
Map<String, Object> params = new HashMap<>();
|
|
Map<String, Object> params = new HashMap<>();
|
|
params.put("type", "ORG");
|
|
params.put("type", "ORG");
|
|
- params.put("userId", userId);
|
|
|
|
- params.put("refIds", refIds);
|
|
|
|
|
|
+ params.put("userId", user.getId());
|
|
|
|
+ params.put("refIds", user.getRefOrgIds());
|
|
HttpHelper.post(url, headers, params);
|
|
HttpHelper.post(url, headers, params);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
- private List<Long> toLongValues(String str) {
|
|
|
|
|
|
+ private List<Long> parseLongValues(String str) {
|
|
if (StringUtils.isBlank(str)) {
|
|
if (StringUtils.isBlank(str)) {
|
|
return new ArrayList<>();
|
|
return new ArrayList<>();
|
|
}
|
|
}
|
|
@@ -229,6 +274,7 @@ public class BatchCreateUserTask implements TaskService {
|
|
List<Long> values = new ArrayList<>();
|
|
List<Long> values = new ArrayList<>();
|
|
String[] vv = str.split(",");
|
|
String[] vv = str.split(",");
|
|
for (String v : vv) {
|
|
for (String v : vv) {
|
|
|
|
+ v = v.trim();
|
|
if (!StringUtils.isNumeric(v)) {
|
|
if (!StringUtils.isNumeric(v)) {
|
|
continue;
|
|
continue;
|
|
}
|
|
}
|
|
@@ -238,6 +284,24 @@ public class BatchCreateUserTask implements TaskService {
|
|
return values;
|
|
return values;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ private List<String> parseValues(String str) {
|
|
|
|
+ if (StringUtils.isBlank(str)) {
|
|
|
|
+ return new ArrayList<>();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ List<String> values = new ArrayList<>();
|
|
|
|
+ String[] vv = str.split(",");
|
|
|
|
+ for (String v : vv) {
|
|
|
|
+ v = v.trim();
|
|
|
|
+ if (StringUtils.isEmpty(v)) {
|
|
|
|
+ continue;
|
|
|
|
+ }
|
|
|
|
+ values.add(v);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ return values;
|
|
|
|
+ }
|
|
|
|
+
|
|
private boolean isAll(String str) {
|
|
private boolean isAll(String str) {
|
|
return "全部".equals(str);
|
|
return "全部".equals(str);
|
|
}
|
|
}
|