WANG 6 년 전
부모
커밋
197d3d8d47

+ 37 - 26
examcloud-core-basic-api-provider/src/main/java/cn/com/qmth/examcloud/core/basic/api/controller/UserController.java

@@ -569,28 +569,11 @@ public class UserController extends ControllerSupport {
 	 * @param password
 	 * @return
 	 */
-	@ApiOperation(value = "一般登录", notes = "登录")
+	@ApiOperation(value = "登录1", notes = "登录")
 	@PostMapping("/login")
-	public Map<String, Object> login(@RequestParam String loginName,
-			@RequestParam String password) {
-		UserEntity user = userRepo.findByLoginName(loginName);
-		if (user == null) {
-			throw new RuntimeException("该用户不存在");
-		} else if (!user.getEnable()) {
-			throw new RuntimeException("该用户被禁用");
-		}
-
-		LoginInfo loginInfo = new LoginInfo();
-		loginInfo.setAccountType(AccountType.COMMON_LOGIN_NAME.name());
-		loginInfo.setAccountValue(user.getLoginName());
-		loginInfo.setPassword(user.getPassword());
-		loginInfo.setRootOrgId(user.getRootOrgId());
-		User loginUser = authService.login(loginInfo);
-
-		Map<String, Object> ret = Maps.newHashMap();
-		ret.put("userId", loginUser.getUserId());
-		ret.put("token", loginUser.getKey() + ":" + loginUser.getToken());
-		return ret;
+	public Map<String, Object> login1(@RequestParam String loginName, @RequestParam String password,
+			@RequestParam(required = false) Long rootOrgId) {
+		return login(loginName, password, rootOrgId);
 	}
 
 	/**
@@ -602,15 +585,43 @@ public class UserController extends ControllerSupport {
 	 * @param password
 	 * @return
 	 */
-	@ApiOperation(value = "二级登录", notes = "二级登录")
+	@ApiOperation(value = "登录2", notes = "登录")
 	@PostMapping("/login/{rootOrgId}")
-	public Map<String, Object> login(@PathVariable long rootOrgId, @RequestParam String loginName,
+	public Map<String, Object> login2(@PathVariable long rootOrgId, @RequestParam String loginName,
 			@RequestParam String password) {
-		UserEntity user = userRepo.findByRootOrgIdAndLoginName(rootOrgId, loginName);
+		return login(loginName, password, rootOrgId);
+	}
+
+	/**
+	 * 废弃的登陆
+	 *
+	 * @author WANGWEI
+	 * @param loginName
+	 * @param password
+	 * @param rootOrgId
+	 * @return
+	 */
+	private Map<String, Object> login(String loginName, String password, Long rootOrgId) {
+
+		UserEntity user = null;
+		if (null != rootOrgId) {
+			user = userRepo.findByRootOrgIdAndLoginName(rootOrgId, loginName);
+		} else {
+			List<UserEntity> userList = userRepo.findByLoginName(loginName);
+			if (CollectionUtils.isNotEmpty(userList)) {
+				user = null;
+			}
+			if (1 == userList.size()) {
+				user = userList.get(0);
+			} else if (1 < userList.size()) {
+				throw new StatusException("B-001003", "不同顶级机构下存在相同登录名");
+			}
+		}
+
 		if (user == null) {
-			throw new RuntimeException("该用户不存在");
+			throw new StatusException("B-001001", "该用户不存在");
 		} else if (!user.getEnable()) {
-			throw new RuntimeException("该用户被禁用");
+			throw new StatusException("B-001002", "该用户被禁用");
 		}
 
 		LoginInfo loginInfo = new LoginInfo();

+ 1 - 1
examcloud-core-basic-dao/src/main/java/cn/com/qmth/examcloud/core/basic/dao/UserRepo.java

@@ -23,7 +23,7 @@ public interface UserRepo
 
 	UserEntity findByRootOrgIdAndLoginName(long rootOrgId, String loginName);
 
-	UserEntity findByLoginName(String loginName);
+	List<UserEntity> findByLoginName(String loginName);
 
 	@Transactional
 	@Modifying