|
|
@ -8,9 +8,6 @@ import com.alibaba.fastjson.JSONObject;
|
|
|
|
import com.alibaba.fastjson.TypeReference;
|
|
|
|
import com.alibaba.fastjson.TypeReference;
|
|
|
|
import com.ibeetl.admin.core.service.CoreBaseService;
|
|
|
|
import com.ibeetl.admin.core.service.CoreBaseService;
|
|
|
|
import com.ibeetl.admin.core.util.HttpRequestLocal;
|
|
|
|
import com.ibeetl.admin.core.util.HttpRequestLocal;
|
|
|
|
import com.ibeetl.admin.core.util.PlatformException;
|
|
|
|
|
|
|
|
import com.ibeetl.jlw.dao.ClassesDao;
|
|
|
|
|
|
|
|
import com.ibeetl.jlw.dao.FlowsDao;
|
|
|
|
|
|
|
|
import com.ibeetl.jlw.dao.UsersDao;
|
|
|
|
import com.ibeetl.jlw.dao.UsersDao;
|
|
|
|
import com.ibeetl.jlw.entity.*;
|
|
|
|
import com.ibeetl.jlw.entity.*;
|
|
|
|
import com.ibeetl.jlw.web.query.TeamsQuery;
|
|
|
|
import com.ibeetl.jlw.web.query.TeamsQuery;
|
|
|
@ -31,7 +28,6 @@ import java.util.*;
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
@Service
|
|
|
|
@Service
|
|
|
|
@Transactional
|
|
|
|
|
|
|
|
public class UsersService extends CoreBaseService<Users> {
|
|
|
|
public class UsersService extends CoreBaseService<Users> {
|
|
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
@Autowired
|
|
|
@ -40,12 +36,6 @@ public class UsersService extends CoreBaseService<Users> {
|
|
|
|
@Autowired
|
|
|
|
@Autowired
|
|
|
|
private HttpRequestLocal httpRequestLocal;
|
|
|
|
private HttpRequestLocal httpRequestLocal;
|
|
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
|
|
|
private ClassesDao classesDao;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
|
|
|
private FlowsDao flowsDao;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
@Autowired
|
|
|
|
private ExaminationsService examinationsService;
|
|
|
|
private ExaminationsService examinationsService;
|
|
|
|
|
|
|
|
|
|
|
@ -56,69 +46,83 @@ public class UsersService extends CoreBaseService<Users> {
|
|
|
|
|
|
|
|
|
|
|
|
private static final int STUDENT = 4;
|
|
|
|
private static final int STUDENT = 4;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 本系统在整个平台中的ID
|
|
|
|
|
|
|
|
public static final int APPLICATION_ID = 38;
|
|
|
|
|
|
|
|
|
|
|
|
public static final String ACCESS_CURRENT_USER = "financial:user";
|
|
|
|
public static final String ACCESS_CURRENT_USER = "financial:user";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public PageQuery<Users> queryByCondition(PageQuery query) {
|
|
|
|
public PageQuery<Users> queryByCondition(PageQuery query) {
|
|
|
|
PageQuery ret = usersDao.queryByCondition(query);
|
|
|
|
PageQuery<Users> ret = usersDao.queryByCondition(query);
|
|
|
|
queryListAfter(ret.getList());
|
|
|
|
queryListAfter(ret.getList());
|
|
|
|
return ret;
|
|
|
|
return ret;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public void deleteUsers(String ids) {
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
|
|
|
usersDao.deleteUsersByIds(ids);
|
|
|
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
|
|
|
throw new PlatformException("批量删除Users失败", e);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public List<Users> getValues(Object paras) {
|
|
|
|
|
|
|
|
return sqlManager.select("jlw.users.getUsersValues", Users.class, paras);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public List<Users> getValuesByQuery(UsersQuery usersQuery) {
|
|
|
|
|
|
|
|
return usersDao.getValuesByQuery(usersQuery);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Transactional
|
|
|
|
@Transactional
|
|
|
|
public Users login(UsersQuery usersQuery) {
|
|
|
|
public Users login(UsersQuery usersQuery) {
|
|
|
|
|
|
|
|
|
|
|
|
//者账号密码 不能同时为空
|
|
|
|
|
|
|
|
if (StringUtils.isEmpty(usersQuery.getUsername()) || StringUtils.isEmpty(usersQuery.getPassword())) {
|
|
|
|
if (StringUtils.isEmpty(usersQuery.getUsername()) || StringUtils.isEmpty(usersQuery.getPassword())) {
|
|
|
|
throw new GlobalException("用户名或密码不能为空");
|
|
|
|
throw new GlobalException("用户名或密码不能为空");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
final Users user = loginByPlatform(usersQuery.getUsername(), usersQuery.getPassword()); // 通过智云登录并获取用户信息
|
|
|
|
|
|
|
|
// final Users user = loginByLocal(usersQuery.getUsername(), usersQuery.getPassword()); // 无法连接智云 使用本地登录
|
|
|
|
|
|
|
|
//之前的系统用的是token+缓存,我们这次改为用session来存储数据
|
|
|
|
|
|
|
|
httpRequestLocal.setSessionValue(ACCESS_CURRENT_USER, user);
|
|
|
|
|
|
|
|
httpRequestLocal.remove();
|
|
|
|
|
|
|
|
Users userResult = new Users();
|
|
|
|
|
|
|
|
userResult.setType(user.getType());
|
|
|
|
|
|
|
|
userResult.setId(user.getId()); // 前端需要保存到cookie
|
|
|
|
|
|
|
|
userResult.setUsername(user.getUsername()); // 前端需要保存到cookie
|
|
|
|
|
|
|
|
return userResult;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* 智云平台登录
|
|
|
|
|
|
|
|
*
|
|
|
|
|
|
|
|
* @param username 用户名
|
|
|
|
|
|
|
|
* @param password 密码
|
|
|
|
|
|
|
|
* @return 用户信息
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
private Users loginByPlatform(String username, String password) {
|
|
|
|
//发起请求,获取用户数据
|
|
|
|
//发起请求,获取用户数据
|
|
|
|
JSONObject loginResp = SztzjyRequestUtil.post(SztzjyRequestUtil.GET_USER_INFO_URL, new HashMap<String, Object>() {{
|
|
|
|
JSONObject loginResp = SztzjyRequestUtil.post(SztzjyRequestUtil.GET_USER_INFO_URL, new HashMap<String, Object>() {{
|
|
|
|
put("LoginName", usersQuery.getUsername());
|
|
|
|
put("LoginName", username);
|
|
|
|
put("Password", usersQuery.getPassword());
|
|
|
|
put("Password", password);
|
|
|
|
}});
|
|
|
|
}});
|
|
|
|
SztzjyLogoEntity sztzjyLogoEntity = loginResp.getObject("result", SztzjyLogoEntity.class);
|
|
|
|
SztzjyLogoEntity sztzjyLogoEntity = loginResp.getObject("result", SztzjyLogoEntity.class);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (Objects.isNull(sztzjyLogoEntity) || Objects.isNull(sztzjyLogoEntity.getUserId())) {
|
|
|
|
if (Objects.isNull(sztzjyLogoEntity) || Objects.isNull(sztzjyLogoEntity.getUserId())) {
|
|
|
|
throw new GlobalException("登录失败");
|
|
|
|
throw new GlobalException("登录失败");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
return postLogin(sztzjyLogoEntity, password, loginResp);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* 本地登录
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
private Users loginByLocal(String username, String password) {
|
|
|
|
|
|
|
|
final Users single = this.usersDao.createLambdaQuery()
|
|
|
|
|
|
|
|
.andEq(Users::getUsername, username)
|
|
|
|
|
|
|
|
.andEq(Users::getPassword, password)
|
|
|
|
|
|
|
|
.single();
|
|
|
|
|
|
|
|
if (single == null) {
|
|
|
|
|
|
|
|
throw new GlobalException("登录失败");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
return single;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private Users postLogin(SztzjyLogoEntity sztzjyLogoEntity, String password, JSONObject loginResp) {
|
|
|
|
Users user = sqlManager.lambdaQuery(Users.class).andEq(Users::getExUserId, sztzjyLogoEntity.getUserId()).single();
|
|
|
|
Users user = sqlManager.lambdaQuery(Users.class).andEq(Users::getExUserId, sztzjyLogoEntity.getUserId()).single();
|
|
|
|
|
|
|
|
|
|
|
|
boolean exist = true; //是否是已存在的一个记号,后面判断是插入还是更新使用
|
|
|
|
boolean exist = true; //是否是已存在的一个记号,后面判断是插入还是更新使用
|
|
|
|
if (user == null || user.getId() == null) {
|
|
|
|
if (user == null || user.getId() == null) {
|
|
|
|
exist = false;
|
|
|
|
exist = false;
|
|
|
|
user = new Users();
|
|
|
|
user = new Users();
|
|
|
|
user.setCreatedAt(new Date());
|
|
|
|
user.setCreatedAt(new Date());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
//TODO 原本重构的时候 Users表要关联Core_user表的id和Core_org的id,但是这里先写死,后面在做数据统一的处理
|
|
|
|
|
|
|
|
user.setCoreUserId(1);
|
|
|
|
user.setCoreUserId(1);
|
|
|
|
user.setCoreOrgId(1);
|
|
|
|
user.setCoreOrgId(1);
|
|
|
|
// ==================
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
user.setUsername(sztzjyLogoEntity.getUserName());
|
|
|
|
user.setUsername(sztzjyLogoEntity.getUserName());
|
|
|
|
user.setNickname(sztzjyLogoEntity.getName());
|
|
|
|
user.setNickname(sztzjyLogoEntity.getName());
|
|
|
|
user.setExUserId(sztzjyLogoEntity.getUserId());
|
|
|
|
user.setExUserId(sztzjyLogoEntity.getUserId());
|
|
|
|
user.setPassword(usersQuery.getPassword());
|
|
|
|
user.setPassword(password);
|
|
|
|
user.setClassId(sztzjyLogoEntity.getClassId());
|
|
|
|
user.setClassId(sztzjyLogoEntity.getClassId());
|
|
|
|
user.setType(Objects.isNull(sztzjyLogoEntity.getRoleId()) ? 0 : sztzjyLogoEntity.getRoleId());
|
|
|
|
user.setType(Objects.isNull(sztzjyLogoEntity.getRoleId()) ? 0 : sztzjyLogoEntity.getRoleId());
|
|
|
|
user.setSchoolId(sztzjyLogoEntity.getSchoolId());
|
|
|
|
user.setSchoolId(sztzjyLogoEntity.getSchoolId());
|
|
|
@ -126,31 +130,20 @@ public class UsersService extends CoreBaseService<Users> {
|
|
|
|
user.setStudentId(sztzjyLogoEntity.getStudentId());
|
|
|
|
user.setStudentId(sztzjyLogoEntity.getStudentId());
|
|
|
|
user.setTeacherId(sztzjyLogoEntity.getTeacherId());
|
|
|
|
user.setTeacherId(sztzjyLogoEntity.getTeacherId());
|
|
|
|
//本地数据库里面的data实则就是存储这个请求查询结果的,所以这里做一下新旧合并
|
|
|
|
//本地数据库里面的data实则就是存储这个请求查询结果的,所以这里做一下新旧合并
|
|
|
|
user.setData(
|
|
|
|
user.setData(JsonMergeUtil.jsonMerge(JSONObject.parseObject(user.getData()),
|
|
|
|
JsonMergeUtil.jsonMerge(
|
|
|
|
loginResp.getJSONObject("result")).toJSONString());
|
|
|
|
JSONObject.parseObject(user.getData()),
|
|
|
|
|
|
|
|
loginResp.getJSONObject("result")
|
|
|
|
|
|
|
|
).toJSONString()
|
|
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (exist) {
|
|
|
|
if (exist) {
|
|
|
|
sqlManager.lambdaQuery(Users.class).andEq(Users::getExUserId,sztzjyLogoEntity.getUserId()).updateSelective(user);
|
|
|
|
sqlManager.lambdaQuery(Users.class).andEq(Users::getExUserId, sztzjyLogoEntity.getUserId()).updateSelective(user);
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
sqlManager.insert(Users.class, user);
|
|
|
|
sqlManager.insert(Users.class, user);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (sztzjyLogoEntity.getRoleId() == TEACHER && !Objects.isNull(sztzjyLogoEntity.getTeacherId())) {
|
|
|
|
if (sztzjyLogoEntity.getRoleId() == TEACHER && !Objects.isNull(sztzjyLogoEntity.getTeacherId())) {
|
|
|
|
//通过教师id获取班级列表
|
|
|
|
//通过教师id获取班级列表
|
|
|
|
JSONObject reqClassesResp = SztzjyRequestUtil.post(SztzjyRequestUtil.GET_CLASSES, new HashMap<String, Object>() {{
|
|
|
|
JSONObject reqClassesResp = SztzjyRequestUtil.post(SztzjyRequestUtil.GET_CLASSES, Collections.singletonMap("TeacherId", sztzjyLogoEntity.getTeacherId()));
|
|
|
|
put("TeacherId", sztzjyLogoEntity.getTeacherId());
|
|
|
|
|
|
|
|
}});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
List<SztzjyClassesEntity> classesResultList = reqClassesResp.getObject("result", new TypeReference<List<SztzjyClassesEntity>>() {
|
|
|
|
List<SztzjyClassesEntity> classesResultList = reqClassesResp.getObject("result", new TypeReference<List<SztzjyClassesEntity>>() {
|
|
|
|
});
|
|
|
|
});
|
|
|
|
classesResultList.forEach(item -> {
|
|
|
|
classesResultList.forEach(item -> {
|
|
|
|
Classes classes = sqlManager.lambdaQuery(Classes.class).andEq(Classes::getClassesId, item.getId()).single();
|
|
|
|
Classes classes = sqlManager.lambdaQuery(Classes.class).andEq(Classes::getClassesId, item.getId()).single();
|
|
|
|
|
|
|
|
|
|
|
|
boolean isInsert = false;
|
|
|
|
boolean isInsert = false;
|
|
|
|
if (Objects.isNull(classes)) {
|
|
|
|
if (Objects.isNull(classes)) {
|
|
|
|
classes = new Classes();
|
|
|
|
classes = new Classes();
|
|
|
@ -158,28 +151,22 @@ public class UsersService extends CoreBaseService<Users> {
|
|
|
|
classes.setCreatedAt(new Date());
|
|
|
|
classes.setCreatedAt(new Date());
|
|
|
|
isInsert = true;
|
|
|
|
isInsert = true;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
classes.setName(item.getName());
|
|
|
|
classes.setName(item.getName());
|
|
|
|
classes.setTeacherId(sztzjyLogoEntity.getTeacherId());
|
|
|
|
classes.setTeacherId(sztzjyLogoEntity.getTeacherId());
|
|
|
|
classes.setSchoolId(sztzjyLogoEntity.getSchoolId());
|
|
|
|
classes.setSchoolId(sztzjyLogoEntity.getSchoolId());
|
|
|
|
classes.setUpdatedAt(new Date());
|
|
|
|
classes.setUpdatedAt(new Date());
|
|
|
|
|
|
|
|
|
|
|
|
if (isInsert) {
|
|
|
|
if (isInsert) {
|
|
|
|
sqlManager.insert(Classes.class, classes);
|
|
|
|
sqlManager.insert(Classes.class, classes);
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
sqlManager.lambdaQuery(Classes.class).andEq(Classes::getClassesId,item.getId()).updateSelective(classes);
|
|
|
|
sqlManager.lambdaQuery(Classes.class).andEq(Classes::getClassesId, item.getId()).updateSelective(classes);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
} else if (sztzjyLogoEntity.getClassId() != null) {
|
|
|
|
} else if (sztzjyLogoEntity.getClassId() != null) {
|
|
|
|
Classes classes = sqlManager.lambdaQuery(Classes.class).andEq(Classes::getClassesId, sztzjyLogoEntity.getClassId()).single();
|
|
|
|
Classes classes = sqlManager.lambdaQuery(Classes.class).andEq(Classes::getClassesId, sztzjyLogoEntity.getClassId()).single();
|
|
|
|
if (Objects.isNull(classes)) {
|
|
|
|
if (Objects.isNull(classes)) {
|
|
|
|
//通过班级id获取班级
|
|
|
|
//通过班级id获取班级
|
|
|
|
Map<String, Object> reqClassesNameBody = new HashMap<>();
|
|
|
|
Map<String, Object> reqClassesNameBody = new HashMap<>();
|
|
|
|
reqClassesNameBody.put("ClassId", sztzjyLogoEntity.getClassId());
|
|
|
|
reqClassesNameBody.put("ClassId", sztzjyLogoEntity.getClassId());
|
|
|
|
|
|
|
|
|
|
|
|
JSONObject classesNameResp = SztzjyRequestUtil.post(SztzjyRequestUtil.GET_CLASS_NAME, reqClassesNameBody);
|
|
|
|
JSONObject classesNameResp = SztzjyRequestUtil.post(SztzjyRequestUtil.GET_CLASS_NAME, reqClassesNameBody);
|
|
|
|
String className = classesNameResp.getObject("result", String.class);
|
|
|
|
String className = classesNameResp.getObject("result", String.class);
|
|
|
|
classes = new Classes();
|
|
|
|
classes = new Classes();
|
|
|
@ -192,225 +179,15 @@ public class UsersService extends CoreBaseService<Users> {
|
|
|
|
sqlManager.insert(Classes.class, classes);
|
|
|
|
sqlManager.insert(Classes.class, classes);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
return user;
|
|
|
|
//之前的系统用的是token+缓存,我们这次改为用session来存储数据
|
|
|
|
|
|
|
|
httpRequestLocal.setSessionValue(ACCESS_CURRENT_USER, user);
|
|
|
|
|
|
|
|
httpRequestLocal.remove();
|
|
|
|
|
|
|
|
Users userResult = new Users();
|
|
|
|
|
|
|
|
userResult.setType(user.getType());
|
|
|
|
|
|
|
|
userResult.setId(user.getId()); // 前端需要保存到cookie
|
|
|
|
|
|
|
|
userResult.setUsername(user.getUsername()); // 前端需要保存到cookie
|
|
|
|
|
|
|
|
return userResult;
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// @Transactional
|
|
|
|
|
|
|
|
// public Users login(UsersQuery usersQuery) {
|
|
|
|
|
|
|
|
////定义请求体
|
|
|
|
|
|
|
|
// Map<String, Object> reqLoginBody = new HashMap<String, Object>() {{
|
|
|
|
|
|
|
|
// put("LoginName", usersQuery.getUsername());
|
|
|
|
|
|
|
|
// put("Password", usersQuery.getPassword());
|
|
|
|
|
|
|
|
// }};
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// //key 或者账号密码 不能同时为空
|
|
|
|
|
|
|
|
// if (StringUtils.isEmpty(usersQuery.getKey()) && (StringUtils.isEmpty(usersQuery.getUsername()) || StringUtils.isEmpty(usersQuery.getPassword()))) {
|
|
|
|
|
|
|
|
// throw new GlobalException("用户名或密码不能为空");
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
// Map<String, Object> keyInfo = new HashMap<>();
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// //解析key里面的信息,其实就是一个jwt而已
|
|
|
|
|
|
|
|
// if (!StringUtils.isEmpty(usersQuery.getKey())) {
|
|
|
|
|
|
|
|
// try {
|
|
|
|
|
|
|
|
// keyInfo = JWTUtil.decode(usersQuery.getKey());
|
|
|
|
|
|
|
|
// } catch (Exception e) {
|
|
|
|
|
|
|
|
// throw new GlobalException("登录失败,解析key失败");
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
// if (StringUtils.isEmpty(keyInfo.get("username")) || StringUtils.isEmpty(keyInfo.get("password"))) {
|
|
|
|
|
|
|
|
// throw new GlobalException("登录失败");
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// //以key里面的信息为主
|
|
|
|
|
|
|
|
// usersQuery.setUsername(String.valueOf(keyInfo.get("username")))
|
|
|
|
|
|
|
|
// .setPassword(String.valueOf(keyInfo.get("password")));
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// //发起请求,获取用户数据
|
|
|
|
|
|
|
|
// JSONObject loginResp = SztzjyRequestUtil.post(SztzjyRequestUtil.GET_USER_INFO_URL, reqLoginBody);
|
|
|
|
|
|
|
|
// Map loginResult = loginResp.getObject("result", Map.class);
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// if (loginResult == null || loginResult.isEmpty() || loginResult.get("userId") == null) {
|
|
|
|
|
|
|
|
// throw new GlobalException("登录失败");
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// //查看本地库有没有这个用户,没有则添加
|
|
|
|
|
|
|
|
// Users user = usersDao.getUsersById(Long.valueOf(String.valueOf(loginResult.get("userId"))));
|
|
|
|
|
|
|
|
// boolean exist = true; //是否是已存在的一个记号,后面判断是插入还是更新使用
|
|
|
|
|
|
|
|
// if (user == null || user.getId() == null) {
|
|
|
|
|
|
|
|
// exist = false;
|
|
|
|
|
|
|
|
// user = new Users();
|
|
|
|
|
|
|
|
// user.setId(Long.parseLong(String.valueOf(loginResult.get("userId"))));
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
// //TODO 原本重构的时候 Users表要关联Core_user表的id和Core_org的id,但是这里先写死,后面在做数据统一的处理
|
|
|
|
|
|
|
|
// user.setCoreUserId(1);
|
|
|
|
|
|
|
|
// user.setCoreOrgId(1);
|
|
|
|
|
|
|
|
// // ==================
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// user.setUsername(loginResult.get("userName") != null ? String.valueOf(loginResult.get("userName")) : "");
|
|
|
|
|
|
|
|
// user.setNickname(loginResult.get("name") != null ? String.valueOf(loginResult.get("name")) : "");
|
|
|
|
|
|
|
|
// user.setExUserId(loginResult.get("userId") != null ? Long.parseLong(String.valueOf(loginResult.get("userId"))) : 0L);
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// user.setPassword(String.valueOf(keyInfo.get("password")));
|
|
|
|
|
|
|
|
// user.setStudentNo(String.valueOf(keyInfo.get("studentno")));
|
|
|
|
|
|
|
|
// user.setSex(keyInfo.get("sex") == null ? 0 : (Integer) keyInfo.get("sex"));
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// user.setClassId(!StringUtils.isEmpty(loginResult.get("classId")) ? Long.parseLong(String.valueOf(loginResult.get("classId"))) : 0L);
|
|
|
|
|
|
|
|
// user.setType(!StringUtils.isEmpty(loginResult.get("roleId")) ? Integer.parseInt(String.valueOf(loginResult.get("roleId"))) : 0);
|
|
|
|
|
|
|
|
// //本地数据库里面的data实则就是存储这个请求查询结果的,所以这里做一下新旧合并
|
|
|
|
|
|
|
|
// user.setData(
|
|
|
|
|
|
|
|
// JsonMergeUtil.jsonMerge(
|
|
|
|
|
|
|
|
// JSONObject.parseObject(user.getData()),
|
|
|
|
|
|
|
|
// loginResp.getJSONObject("result")
|
|
|
|
|
|
|
|
// ).toJSONString()
|
|
|
|
|
|
|
|
// );
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// if (exist) {
|
|
|
|
|
|
|
|
// usersDao.updateTemplateById(user);
|
|
|
|
|
|
|
|
// } else {
|
|
|
|
|
|
|
|
// usersDao.insert(user);
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// List<Classes> classesList = new ArrayList<>();
|
|
|
|
|
|
|
|
// if (user.getType() == TEACHER && !StringUtils.isEmpty(loginResult.get("teacherId"))) {
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// //通过教师id获取班级列表
|
|
|
|
|
|
|
|
// Map<String, Object> reqClassesBody = new HashMap<>();
|
|
|
|
|
|
|
|
// reqClassesBody.put("TeacherId", loginResult.get("teacherId"));
|
|
|
|
|
|
|
|
// JSONObject reqClassesResp = SztzjyRequestUtil.post(SztzjyRequestUtil.GET_CLASSES, reqClassesBody);
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// List<Map<String, Object>> classesResultList = reqClassesResp.getObject("result", new TypeReference<List<Map<String, Object>>>() {
|
|
|
|
|
|
|
|
// });
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// if (!CollectionUtils.isEmpty(classesResultList)) {
|
|
|
|
|
|
|
|
// for (Map<String, Object> item : classesResultList) {
|
|
|
|
|
|
|
|
// //通过classid获取本地库,有就更新,没有就插入
|
|
|
|
|
|
|
|
// Classes classes = classesDao.getClassesById(Long.parseLong(String.valueOf(item.get("id"))));
|
|
|
|
|
|
|
|
// exist = true;
|
|
|
|
|
|
|
|
// if (classes == null || classes.getId() == null) {
|
|
|
|
|
|
|
|
// exist = false;
|
|
|
|
|
|
|
|
// classes = new Classes();
|
|
|
|
|
|
|
|
// classes.setId(Long.parseLong(String.valueOf(item.get("id"))));
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
// classes.setName((String.valueOf(item.get("name"))).trim());
|
|
|
|
|
|
|
|
// classes.setTeacherId(user.getId());
|
|
|
|
|
|
|
|
// classes.setSchoolId(1L); //TODO php这里是写死的
|
|
|
|
|
|
|
|
// if (exist) {
|
|
|
|
|
|
|
|
// classesDao.updateTemplateById(classes);
|
|
|
|
|
|
|
|
// } else {
|
|
|
|
|
|
|
|
// classesDao.insert(classes);
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
// //同步班级学生
|
|
|
|
|
|
|
|
// syncStudents(Long.parseLong(String.valueOf(item.get("id"))), keyInfo);
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
// } else if (user.getClassId() != null) {
|
|
|
|
|
|
|
|
// ClassesQuery classesQuery = new ClassesQuery();
|
|
|
|
|
|
|
|
// classesQuery.setSchoolId(1L); //TODO 这里写死了
|
|
|
|
|
|
|
|
// classesQuery.setId(user.getClassId());
|
|
|
|
|
|
|
|
// List<Classes> list = classesDao.getValuesByQuery(classesQuery);
|
|
|
|
|
|
|
|
// Classes classes = new Classes();
|
|
|
|
|
|
|
|
// //上面都通过班级id查询了,如果存在的话,也只会有一条信息
|
|
|
|
|
|
|
|
// if (!CollectionUtils.isEmpty(list)) {
|
|
|
|
|
|
|
|
// classes = list.get(0);
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// //如果班级是空的,那就添加进去
|
|
|
|
|
|
|
|
// if (classes.getId() == null) {
|
|
|
|
|
|
|
|
// //通过班级id获取班级
|
|
|
|
|
|
|
|
// Map<String, Object> reqClassesNameBody = new HashMap<>();
|
|
|
|
|
|
|
|
// reqClassesNameBody.put("ClassId", user.getClassId());
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// JSONObject classesNameResp = SztzjyRequestUtil.post(SztzjyRequestUtil.GET_CLASS_NAME, reqClassesNameBody);
|
|
|
|
|
|
|
|
// String className = classesNameResp.getObject("result", String.class);
|
|
|
|
|
|
|
|
// classes.setId(user.getClassId());
|
|
|
|
|
|
|
|
// if (!StringUtils.isEmpty(className)) {
|
|
|
|
|
|
|
|
// classes.setName(className.trim());
|
|
|
|
|
|
|
|
// classes.setTeacherId(0L); //TODO php这里是写死的
|
|
|
|
|
|
|
|
// classes.setSchoolId(1L); //TODO php这里是写死的
|
|
|
|
|
|
|
|
// classesDao.insert(classes);
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// //同步班级学生
|
|
|
|
|
|
|
|
// syncStudents(user.getClassId(), keyInfo);
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// //同步当前用户的资产信息,同时会修改传进去的user的资产信息
|
|
|
|
|
|
|
|
// syncFinancial(user);
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// //根据当前登陆用户的类型来获取班级
|
|
|
|
|
|
|
|
// ClassesQuery classesQuery = new ClassesQuery();
|
|
|
|
|
|
|
|
// if (user.getType() == TEACHER) {
|
|
|
|
|
|
|
|
// classesQuery.setTeacherId(user.getId());
|
|
|
|
|
|
|
|
// } else {
|
|
|
|
|
|
|
|
// classesQuery.setId(user.getClassId());
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
// List<Classes> classes = classesDao.getValuesByQuery(classesQuery);
|
|
|
|
|
|
|
|
// Object classesTemp = null;
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// //老师返回的班级是列表,学生的只有一个
|
|
|
|
|
|
|
|
// if (!CollectionUtils.isEmpty(classes)) {
|
|
|
|
|
|
|
|
// if (user.getType() == TEACHER) {
|
|
|
|
|
|
|
|
// List<Map> maps = new ArrayList<>();
|
|
|
|
|
|
|
|
// for (Classes aClass : classes) {
|
|
|
|
|
|
|
|
// maps.add(new HashMap<String, Object>() {{
|
|
|
|
|
|
|
|
// put("class_id", aClass.getId());
|
|
|
|
|
|
|
|
// put("class_name", aClass.getName());
|
|
|
|
|
|
|
|
// }});
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
// classesTemp = maps;
|
|
|
|
|
|
|
|
// } else {
|
|
|
|
|
|
|
|
// classesTemp = new HashMap<String, Object>() {{
|
|
|
|
|
|
|
|
// put("class_id", classes.get(0).getId());
|
|
|
|
|
|
|
|
// put("class_name", classes.get(0).getName());
|
|
|
|
|
|
|
|
// }};
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// //获取实训列表
|
|
|
|
|
|
|
|
// List<Map<String, Integer>> examinations = new ArrayList<>();
|
|
|
|
|
|
|
|
// //只有是学生才查询这个
|
|
|
|
|
|
|
|
// if (user.getType() == STUDENT) {
|
|
|
|
|
|
|
|
// List<Flows> flowsAll = flowsDao.all();
|
|
|
|
|
|
|
|
// for (Flows flows : flowsAll) {
|
|
|
|
|
|
|
|
// examinations.add(new HashMap<String, Integer>() {{
|
|
|
|
|
|
|
|
// put("examination_id", 0); //todo 原系统这里是写死的
|
|
|
|
|
|
|
|
// put("flow_id", flows.getId());
|
|
|
|
|
|
|
|
// }});
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// //之前的系统用的是token+缓存,我们这次改为用session来存储数据
|
|
|
|
|
|
|
|
// httpRequestLocal.setSessionValue(ACCESS_CURRENT_USER, user);
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// user.putSchool("天择大学");
|
|
|
|
|
|
|
|
// user.putClasses(classesTemp);
|
|
|
|
|
|
|
|
// user.putExaminations(examinations);
|
|
|
|
|
|
|
|
// user.putUserId(user.getId());
|
|
|
|
|
|
|
|
// user.putName(user.getNickname());
|
|
|
|
|
|
|
|
// httpRequestLocal.remove();
|
|
|
|
|
|
|
|
// return user;
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
|
|
|
|
* 同步班级学生
|
|
|
|
|
|
|
|
*
|
|
|
|
* @param classId 班级id
|
|
|
|
* @param classId 班级id
|
|
|
|
* @param keyInfo key解析出来的数据
|
|
|
|
* @param keyInfo key解析出来的数据
|
|
|
|
* @Description: 同步班级学生
|
|
|
|
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
private void syncStudents(Long classId, Map<String, Object> keyInfo) {
|
|
|
|
private void syncStudents(Long classId, Map<String, Object> keyInfo) {
|
|
|
|
Map<String, Object> body = new HashMap<>();
|
|
|
|
Map<String, Object> body = new HashMap<>();
|
|
|
@ -429,13 +206,11 @@ public class UsersService extends CoreBaseService<Users> {
|
|
|
|
user.setId(Long.valueOf(String.valueOf(item.get("userId"))));
|
|
|
|
user.setId(Long.valueOf(String.valueOf(item.get("userId"))));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//TODO 原本重构的时候 Users表要关联Core_user表的id和Core_org的id,但是这里先写死,后面在做数据统一的处理
|
|
|
|
|
|
|
|
user.setCoreUserId(1);
|
|
|
|
user.setCoreUserId(1);
|
|
|
|
user.setCoreOrgId(1);
|
|
|
|
user.setCoreOrgId(1);
|
|
|
|
// ==================
|
|
|
|
// ==================
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
user.setUsername(item.get("name") != null ? String.valueOf(item.get("name")) : null);
|
|
|
|
user.setUsername(item.get("name") != null ? String.valueOf(item.get("name")) : null); //TODO 总觉得这里有问题,应该是userName
|
|
|
|
|
|
|
|
user.setNickname(item.get("name") != null ? String.valueOf(item.get("name")) : null);
|
|
|
|
user.setNickname(item.get("name") != null ? String.valueOf(item.get("name")) : null);
|
|
|
|
user.setExUserId(item.get("userId") != null ? Long.parseLong(String.valueOf(item.get("userId"))) : 0);
|
|
|
|
user.setExUserId(item.get("userId") != null ? Long.parseLong(String.valueOf(item.get("userId"))) : 0);
|
|
|
|
user.setClassId(classId);
|
|
|
|
user.setClassId(classId);
|
|
|
@ -444,38 +219,28 @@ public class UsersService extends CoreBaseService<Users> {
|
|
|
|
user.setSex(keyInfo.get("sex") != null ? Integer.parseInt(String.valueOf(keyInfo.get("sex"))) : 0);
|
|
|
|
user.setSex(keyInfo.get("sex") != null ? Integer.parseInt(String.valueOf(keyInfo.get("sex"))) : 0);
|
|
|
|
|
|
|
|
|
|
|
|
//本地数据库里面的data实则就是存储这个请求查询结果的,所以这里做一下新旧合并
|
|
|
|
//本地数据库里面的data实则就是存储这个请求查询结果的,所以这里做一下新旧合并
|
|
|
|
user.setData(
|
|
|
|
user.setData(JsonMergeUtil.jsonMerge(user.getData(), JSON.toJSONString(item)).toJSONString());
|
|
|
|
JsonMergeUtil.jsonMerge(
|
|
|
|
|
|
|
|
user.getData(),
|
|
|
|
|
|
|
|
JSON.toJSONString(item)
|
|
|
|
|
|
|
|
).toJSONString()
|
|
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (exist) {
|
|
|
|
if (exist) {
|
|
|
|
usersDao.updateTemplateById(user);
|
|
|
|
usersDao.updateTemplateById(user);
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
usersDao.insert(user);
|
|
|
|
usersDao.insert(user);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
|
|
|
|
* 同步用户资产
|
|
|
|
|
|
|
|
*
|
|
|
|
* @param user:用户
|
|
|
|
* @param user:用户
|
|
|
|
* @Description: 同步会员资产
|
|
|
|
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
public void syncFinancial(Users user) {
|
|
|
|
public void syncFinancial(Users user) {
|
|
|
|
|
|
|
|
|
|
|
|
if (StringUtils.isEmpty(user.getExUserId()) || user.getType() != STUDENT) {
|
|
|
|
if (StringUtils.isEmpty(user.getExUserId()) || user.getType() != STUDENT) {
|
|
|
|
return;
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
Map<String, Object> body = new HashMap<>();
|
|
|
|
Map<String, Object> body = new HashMap<>();
|
|
|
|
body.put("userId", user.getExUserId());
|
|
|
|
body.put("userId", user.getExUserId());
|
|
|
|
body.put("applicationId", 38); //todo 这里写死了
|
|
|
|
body.put("applicationId", APPLICATION_ID);
|
|
|
|
//调用接口,获取资产信息
|
|
|
|
//调用接口,获取资产信息
|
|
|
|
JSONObject resp = SztzjyRequestUtil.get(SztzjyRequestUtil.GET_ASSET_ALLOCATION_INFO, body);
|
|
|
|
JSONObject resp = SztzjyRequestUtil.get(SztzjyRequestUtil.GET_ASSET_ALLOCATION_INFO, body);
|
|
|
|
Map result = resp.getJSONObject("result").getObject("data", Map.class);
|
|
|
|
Map result = resp.getJSONObject("result").getObject("data", Map.class);
|
|
|
@ -497,14 +262,8 @@ public class UsersService extends CoreBaseService<Users> {
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* 查询学生列表业务方法
|
|
|
|
* 查询学生列表业务方法
|
|
|
|
*
|
|
|
|
|
|
|
|
* @param teamsQuery
|
|
|
|
|
|
|
|
* @param users
|
|
|
|
|
|
|
|
* @return org.beetl.sql.core.engine.PageQuery
|
|
|
|
|
|
|
|
* @Date 2022-07-27 16:33
|
|
|
|
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
public PageQuery searchStudents(TeamsQuery teamsQuery, Users users) {
|
|
|
|
public PageQuery<Users> searchStudents(TeamsQuery teamsQuery, Users users) {
|
|
|
|
|
|
|
|
|
|
|
|
Integer[] teamUsersids = null;
|
|
|
|
Integer[] teamUsersids = null;
|
|
|
|
if (!Objects.isNull(teamsQuery.getExaminationId()) || !Objects.isNull(teamsQuery.getFlowId())) {
|
|
|
|
if (!Objects.isNull(teamsQuery.getExaminationId()) || !Objects.isNull(teamsQuery.getFlowId())) {
|
|
|
|
Examinations examinations = examinationsService.searchExamination(teamsQuery);
|
|
|
|
Examinations examinations = examinationsService.searchExamination(teamsQuery);
|
|
|
|