|
@@ -24,7 +24,10 @@ import cn.com.qmth.examcloud.core.basic.api.response.LoginResp;
|
|
|
import cn.com.qmth.examcloud.core.basic.base.enums.AccountType;
|
|
|
import cn.com.qmth.examcloud.core.basic.base.enums.UserType;
|
|
|
import cn.com.qmth.examcloud.core.basic.dao.OrgRepo;
|
|
|
+import cn.com.qmth.examcloud.core.basic.dao.StudentRepo;
|
|
|
+import cn.com.qmth.examcloud.core.basic.dao.UserRepo;
|
|
|
import cn.com.qmth.examcloud.core.basic.dao.entity.Org;
|
|
|
+import cn.com.qmth.examcloud.core.basic.dao.entity.Student;
|
|
|
import cn.com.qmth.examcloud.core.basic.dao.entity.User;
|
|
|
import cn.com.qmth.examcloud.core.basic.dao.entity.UserRole;
|
|
|
import cn.com.qmth.examcloud.core.basic.service.UserService;
|
|
@@ -44,9 +47,15 @@ public class UserCloudServiceProvider extends ControllerSupport implements UserC
|
|
|
|
|
|
@Autowired
|
|
|
UserService userService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ UserRepo userRepo;
|
|
|
|
|
|
@Autowired
|
|
|
OrgRepo orgRepo;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ StudentRepo studentRepo;
|
|
|
|
|
|
@ApiOperation(value = "登录", notes = "")
|
|
|
@PostMapping("login")
|
|
@@ -54,13 +63,13 @@ public class UserCloudServiceProvider extends ControllerSupport implements UserC
|
|
|
public LoginResp login(@RequestBody LoginReq req) {
|
|
|
|
|
|
String rootOrgId = req.getRootOrgId();
|
|
|
-
|
|
|
+ Org org = null;
|
|
|
if (StringUtils.isBlank(rootOrgId)) {
|
|
|
if (StringUtils.isBlank(req.getDomain())) {
|
|
|
throw new StatusException("B-001001", "domain,rootOrgId 必须有一个不为空");
|
|
|
}
|
|
|
|
|
|
- Org org = orgRepo.findFirstByParentIdAndCode(0L, req.getDomain());
|
|
|
+ org = orgRepo.findFirstByParentIdAndCode(0L, req.getDomain());
|
|
|
|
|
|
rootOrgId = String.valueOf(org.getRootId());
|
|
|
|
|
@@ -89,7 +98,8 @@ public class UserCloudServiceProvider extends ControllerSupport implements UserC
|
|
|
userBean.setUserId(user.getId());
|
|
|
userBean.setDisplayName(user.getLoginName());
|
|
|
userBean.setRootOrgId(user.getRootOrgId());
|
|
|
-
|
|
|
+ userBean.setRootOrgName(org.getName());
|
|
|
+ userBean.setOrgId(user.getOrgId());
|
|
|
List<UserRole> userRoles = user.getUserRoles();
|
|
|
ArrayList<RoleBean> roleList = Lists.newArrayList();
|
|
|
|
|
@@ -108,11 +118,41 @@ public class UserCloudServiceProvider extends ControllerSupport implements UserC
|
|
|
}
|
|
|
// 学生学号登录
|
|
|
else if (AccountType.STUDENT_CODE.getCode().equals(accountType)) {
|
|
|
-
|
|
|
+ Student student = studentRepo.findByStudentCodeAndRootOrgId(accountValue, org.getId());
|
|
|
+ if (null == student) {
|
|
|
+ throw new StatusException("B-001005", "学生信息不存在");
|
|
|
+ }
|
|
|
+ User user = userRepo.findOne(student.getUser().getId());
|
|
|
+ String rightPassword = user.getPassword();
|
|
|
+ if (!rightPassword.equals(password)) {
|
|
|
+ throw new StatusException("B-001003", "密码错误");
|
|
|
+ }
|
|
|
+ userBean.setUserType(UserType.STUDENT.getCode());
|
|
|
+ userBean.setUserId(student.getId()); //学生userid存studentId
|
|
|
+ userBean.setDisplayName(user.getLoginName());
|
|
|
+ userBean.setRootOrgId(user.getRootOrgId());
|
|
|
+ userBean.setOrgId(user.getOrgId());
|
|
|
+ userBean.setStudentCode(student.getStudentCode());
|
|
|
+ userBean.setIdentityNumber(student.getIdentityNumber());
|
|
|
}
|
|
|
// 学生身份证号登录
|
|
|
else if (AccountType.STUDENT_IDENTITY_NUMBER.getCode().equals(accountType)) {
|
|
|
-
|
|
|
+ Student student = studentRepo.findByIdentityNumberAndRootOrgId(accountValue, org.getId());
|
|
|
+ if (null == student) {
|
|
|
+ throw new StatusException("B-001005", "学生信息不存在");
|
|
|
+ }
|
|
|
+ User user = userRepo.findOne(student.getUser().getId());
|
|
|
+ String rightPassword = user.getPassword();
|
|
|
+ if (!rightPassword.equals(password)) {
|
|
|
+ throw new StatusException("B-001003", "密码错误");
|
|
|
+ }
|
|
|
+ userBean.setUserType(UserType.STUDENT.getCode());
|
|
|
+ userBean.setUserId(student.getId()); //学生userid存studentId
|
|
|
+ userBean.setDisplayName(user.getLoginName());
|
|
|
+ userBean.setRootOrgId(user.getRootOrgId());
|
|
|
+ userBean.setOrgId(user.getOrgId());
|
|
|
+ userBean.setStudentCode(student.getStudentCode());
|
|
|
+ userBean.setIdentityNumber(student.getIdentityNumber());
|
|
|
}
|
|
|
|
|
|
LoginResp resp = new LoginResp();
|