From c8fe5175322109f65b8733ad7378656396cec58a Mon Sep 17 00:00:00 2001 From: PQZ Date: Wed, 28 Aug 2024 15:02:04 +0800 Subject: [PATCH] 1 --- .../controller/admin/auth/AuthController.java | 45 +++++++++++++++++++ .../controller/admin/user/LoginBody.java | 37 +++++++++++++++ 2 files changed, 82 insertions(+) create mode 100644 yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/LoginBody.java diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/AuthController.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/AuthController.java index 2128ebe8..aaa34ab8 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/AuthController.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/AuthController.java @@ -1,13 +1,20 @@ package cn.iocoder.yudao.module.system.controller.admin.auth; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; +import cn.iocoder.yudao.framework.common.exception.ErrorCode; import cn.iocoder.yudao.framework.common.pojo.CommonResult; import cn.iocoder.yudao.framework.security.config.SecurityProperties; import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils; +import cn.iocoder.yudao.module.system.api.permission.PermissionApi; +import cn.iocoder.yudao.module.system.api.permission.RoleApi; +import cn.iocoder.yudao.module.system.api.permission.dto.RoleReqDTO; +import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO; import cn.iocoder.yudao.module.system.controller.admin.auth.vo.*; +import cn.iocoder.yudao.module.system.controller.admin.user.LoginBody; import cn.iocoder.yudao.module.system.convert.auth.AuthConvert; import cn.iocoder.yudao.module.system.dal.dataobject.permission.MenuDO; import cn.iocoder.yudao.module.system.dal.dataobject.permission.RoleDO; @@ -34,7 +41,9 @@ import javax.validation.Valid; import java.util.Collections; import java.util.List; import java.util.Set; +import java.util.stream.Collectors; +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.error; import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet; import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId; @@ -61,6 +70,11 @@ public class AuthController { @Resource private SecurityProperties securityProperties; + @Resource + private PermissionApi permissionApi; + @Resource + private RoleApi roleApi; + @PostMapping("/login") @PermitAll @@ -69,6 +83,37 @@ public class AuthController { return success(authService.login(reqVO)); } + + /** + * 登录方法 + * + * @param loginBody 登录信息 + * @return 结果 + */ + @PostMapping("/loginApp") + public CommonResult loginApp(@RequestBody LoginBody loginBody) throws Exception { + String userName = loginBody.getUsername(); + AdminUserDO user = userService.getUserByUsername(userName); + if (ObjectUtil.isEmpty(user)) { + return error(new ErrorCode(2_002_000_005, "登录账号不存在")); + } + // 获取登录用户的角色信息 + List roleIdsByUserId = permissionApi.getRoleIdsByUserId(user.getId()); + if (ObjectUtil.isEmpty(roleIdsByUserId) || roleIdsByUserId.size() == 0) { + return error(new ErrorCode(2_002_000_005, "登录账号不存在")); + } + List roleList = roleApi.getRoleList(); + List roleNames = roleList.stream().filter(item -> roleIdsByUserId.contains(item.getId())).map(item -> item.getName()).collect(Collectors.toList()); + Boolean flag = (loginBody.getType().equals("0") && roleNames.contains("救援业务管理员")) || (loginBody.getType().equals("1") && roleNames.contains("交警")); + // 角色认证登录 + if (!flag) { + return error(new ErrorCode(2_002_000_005, "登录账号不存在")); + } + AuthLoginReqVO authLoginReqVO = new AuthLoginReqVO(); + authLoginReqVO.setUsername(loginBody.getUsername()); + authLoginReqVO.setPassword(loginBody.getPassword()); + return success(authService.login(authLoginReqVO)); + } @PostMapping("/logout") @PermitAll @Operation(summary = "登出系统") diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/LoginBody.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/LoginBody.java new file mode 100644 index 00000000..1e924679 --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/LoginBody.java @@ -0,0 +1,37 @@ +package cn.iocoder.yudao.module.system.controller.admin.user; + +import lombok.Data; + +/** + * 用户登录对象 + * + * @author ruoyi + */ +@Data +public class LoginBody +{ + /** + * 用户名 + */ + private String username; + + /** + * 用户密码 + */ + private String password; + + /** + * 验证码 + */ + private String code; + + /** + * 唯一标识 + */ + private String uuid; + //0账号密码登录,1手机号登录 2:管理 3:教练 + private String type; + private String types; + private String phone; + private String realName; +}