ruoyi-auth/src/main/java/com/ruoyi/auth/controller/TokenController.java
@@ -41,7 +41,31 @@ @Resource private SysUserClient sysUserClient; @PostMapping("loginApp") @ApiOperation(value = "2.0新增登录加盟商切换", tags = "2.0新增登录加盟商切换") public R<?> loginApp(@RequestBody LoginBody form) { // 用户登录 LoginUser userInfo = sysLoginService.loginApp(form.getUsername()); HashMap<String, Object> map = new HashMap<>(8); map.put("token", tokenService.createToken(userInfo)); // 获取登录token String roles = userInfo.getRole(); if (null == roles) { return R.fail("请关联角色!"); } map.put("roleName", roles); map.put("info", userInfo); // 权限集合 map.put("permissions", userInfo.getPermissions()); // 修改用户最后登录时间 SysUser sysUser = new SysUser(); sysUser.setUserId(userInfo.getSysUser().getUserId()); sysUser.setLoginDate(new Date()); sysUserClient.updateSysUser(sysUser); return R.ok(map); } @PostMapping("login") @ApiOperation(value = "登录", tags = "后台-登录") public R<?> login(@RequestBody LoginBody form) { ruoyi-auth/src/main/java/com/ruoyi/auth/form/LoginBody.java
@@ -16,6 +16,7 @@ */ private String password; public String getUsername() { return username; } @@ -31,4 +32,5 @@ public void setPassword(String password) { this.password = password; } } ruoyi-auth/src/main/java/com/ruoyi/auth/service/SysLoginService.java
@@ -81,6 +81,50 @@ passwordService.validate(user, password); recordLogService.recordLogininfor(username, Constants.LOGIN_SUCCESS, "登录成功"); return userInfo; }/** * 登录 */ public LoginUser loginApp(String username) { // 用户名或密码为空 错误 if (StringUtils.isAnyBlank(username)) { recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, "用户必须填写"); throw new ServiceException("用户/密码必须填写"); } // 用户名不在指定范围内 错误 if (username.length() < UserConstants.USERNAME_MIN_LENGTH || username.length() > UserConstants.USERNAME_MAX_LENGTH) { recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, "用户名不在指定范围"); throw new ServiceException("用户名不在指定范围"); } // 查询用户信息 R<LoginUser> userResult = remoteUserService.getUserInfo(username, SecurityConstants.INNER); if (StringUtils.isNull(userResult) || StringUtils.isNull(userResult.getData())) { recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, "登录用户不存在"); throw new ServiceException("登录用户:" + username + " 不存在"); } if (R.FAIL == userResult.getCode()) { throw new ServiceException(userResult.getMsg()); } LoginUser userInfo = userResult.getData(); SysUser user = userResult.getData().getSysUser(); if (user.getFranchiseeId() == null) { userInfo.setIsFranchisee(Boolean.FALSE); }else { userInfo.setIsFranchisee(Boolean.TRUE); } if (UserStatus.DELETED.getCode().equals(user.getIsDelete())) { recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, "对不起,您的账号已被删除"); throw new ServiceException("对不起,您的账号:" + username + " 已被删除"); } if (!UserStatus.ENABLE.getCode().equals(user.getIsEnable())) { recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, "用户已停用,请联系管理员"); throw new ServiceException("对不起,您的账号:" + username + " 已停用"); } recordLogService.recordLogininfor(username, Constants.LOGIN_SUCCESS, "登录成功"); return userInfo; } public void logout(String loginName) { ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/controller/MasterWorkerController.java
@@ -123,6 +123,42 @@ } return R.ok(generateLoginToken(worker)); } /** * 师傅端-密码登录 * * @param loginPasswordRequest 手机号及密码信息 */ @ApiOperation(value = "2.0新增登录师傅切换", tags = {"2.0新增登录师傅切换"}) @PostMapping(value = "/loginApp") public R<Object> loginApp(@RequestBody LoginPasswordRequest loginPasswordRequest) { String phone = loginPasswordRequest.getPhone(); MasterWorker worker = masterWorkerService.lambdaQuery().eq(MasterWorker::getPhone, phone) .eq(MasterWorker::getIsDelete, 0).one(); if (null != worker) { if (!Constants.ONE.equals(worker.getIsEnable())) { return R.notEnabled("登录失败,当前账号未启用!"); } } else { // 校验师傅是否已提交入驻申请 WorkerProcess process = workerProcessService.lambdaQuery() .eq(WorkerProcess::getPhone, phone) .eq(WorkerProcess::getIsDelete, 0) .orderByDesc(WorkerProcess::getCreateTime) .last("limit 1").one(); if (null != process) { if (Constants.ZERO.equals(process.getState())) { return R.fail("入驻申请暂未审核通过,请耐心等待!"); } else if (Constants.TWO.equals(process.getState())) { return R.fail("当前手机号未注册!"); } else { return R.registered("当前账号未提交入驻申请,无法登录!"); } } else { return R.registered("当前账号未提交入驻申请,无法登录!"); } } return R.ok(generateLoginToken(worker)); } /** * 生成登录信息及token加密