diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/SysLoginController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/AuthController.java similarity index 64% rename from ruoyi-admin/src/main/java/com/ruoyi/web/controller/SysLoginController.java rename to ruoyi-admin/src/main/java/com/ruoyi/web/controller/AuthController.java index ecff031a8..81af4dfa0 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/SysLoginController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/AuthController.java @@ -4,50 +4,43 @@ import cn.dev33.satoken.annotation.SaIgnore; import cn.hutool.core.collection.CollUtil; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.domain.model.LoginBody; -import com.ruoyi.common.core.domain.model.LoginUser; +import com.ruoyi.common.core.domain.model.RegisterBody; import com.ruoyi.common.core.domain.model.SmsLoginBody; import com.ruoyi.common.core.utils.MapstructUtils; import com.ruoyi.common.core.utils.StreamUtils; import com.ruoyi.common.core.utils.StringUtils; -import com.ruoyi.common.satoken.utils.LoginHelper; -import com.ruoyi.common.tenant.helper.TenantHelper; -import com.ruoyi.system.domain.SysMenu; import com.ruoyi.system.domain.bo.SysTenantBo; -import com.ruoyi.system.domain.vo.RouterVo; import com.ruoyi.system.domain.vo.SysTenantVo; -import com.ruoyi.system.domain.vo.SysUserVo; -import com.ruoyi.system.service.ISysMenuService; +import com.ruoyi.system.service.ISysConfigService; import com.ruoyi.system.service.ISysTenantService; -import com.ruoyi.system.service.ISysUserService; import com.ruoyi.web.domain.vo.LoginVo; import com.ruoyi.web.domain.vo.TenantListVo; -import com.ruoyi.web.domain.vo.UserInfoVo; import com.ruoyi.web.service.SysLoginService; +import com.ruoyi.web.service.SysRegisterService; import jakarta.servlet.http.HttpServletRequest; import jakarta.validation.constraints.NotBlank; import lombok.RequiredArgsConstructor; import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import java.net.URL; import java.util.List; /** - * 登录验证 + * 认证 * * @author Lion Li */ +@SaIgnore @Validated @RequiredArgsConstructor @RestController -public class SysLoginController { +@RequestMapping("/auth") +public class AuthController { private final SysLoginService loginService; - private final ISysMenuService menuService; - private final ISysUserService userService; + private final SysRegisterService registerService; + private final ISysConfigService configService; private final ISysTenantService tenantService; /** @@ -56,7 +49,6 @@ public class SysLoginController { * @param body 登录信息 * @return 结果 */ - @SaIgnore @PostMapping("/login") public R login(@Validated @RequestBody LoginBody body) { LoginVo loginVo = new LoginVo(); @@ -75,7 +67,6 @@ public class SysLoginController { * @param body 登录信息 * @return 结果 */ - @SaIgnore @PostMapping("/smsLogin") public R smsLogin(@Validated @RequestBody SmsLoginBody body) { LoginVo loginVo = new LoginVo(); @@ -91,7 +82,6 @@ public class SysLoginController { * @param xcxCode 小程序code * @return 结果 */ - @SaIgnore @PostMapping("/xcxLogin") public R xcxLogin(@NotBlank(message = "{xcx.code.not.blank}") String xcxCode) { LoginVo loginVo = new LoginVo(); @@ -104,19 +94,29 @@ public class SysLoginController { /** * 退出登录 */ - @SaIgnore @PostMapping("/logout") public R logout() { loginService.logout(); return R.ok("退出成功"); } + /** + * 用户注册 + */ + @PostMapping("/register") + public R register(@Validated @RequestBody RegisterBody user) { + if (!configService.selectRegisterEnabled(user.getTenantId())) { + return R.fail("当前系统没有开启注册功能!"); + } + registerService.register(user); + return R.ok(); + } + /** * 登录页面租户下拉框 * * @return 租户列表 */ - @SaIgnore @GetMapping("/tenant/list") public R> tenantList(HttpServletRequest request) throws Exception { List tenantList = tenantService.queryList(new SysTenantBo()); @@ -128,34 +128,4 @@ public class SysLoginController { return R.ok(CollUtil.isNotEmpty(list) ? list : voList); } - /** - * 获取用户信息 - * - * @return 用户信息 - */ - @GetMapping("getInfo") - public R getInfo() { - UserInfoVo userInfoVo = new UserInfoVo(); - LoginUser loginUser = LoginHelper.getLoginUser(); - if (TenantHelper.isEnable() && LoginHelper.isSuperAdmin()) { - // 超级管理员 如果重新加载用户信息需清除动态租户 - TenantHelper.clearDynamic(); - } - SysUserVo user = userService.selectUserById(loginUser.getUserId()); - userInfoVo.setUser(user); - userInfoVo.setPermissions(loginUser.getMenuPermission()); - userInfoVo.setRoles(loginUser.getRolePermission()); - return R.ok(userInfoVo); - } - - /** - * 获取路由信息 - * - * @return 路由信息 - */ - @GetMapping("getRouters") - public R> getRouters() { - List menus = menuService.selectMenuTreeByUserId(LoginHelper.getUserId()); - return R.ok(menuService.buildMenus(menus)); - } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/CaptchaController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/CaptchaController.java index bfb127a8e..ab9c4d15a 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/CaptchaController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/CaptchaController.java @@ -52,7 +52,7 @@ public class CaptchaController { * * @param phonenumber 用户手机号 */ - @GetMapping("/captchaSms") + @GetMapping("/sms/code") public R smsCaptcha(@NotBlank(message = "{user.phonenumber.not.blank}") String phonenumber) { if (!smsProperties.getEnabled()) { @@ -77,7 +77,7 @@ public class CaptchaController { /** * 生成验证码 */ - @GetMapping("/captchaImage") + @GetMapping("/code") public R getCode() { CaptchaVo captchaVo = new CaptchaVo(); boolean captchaEnabled = captchaProperties.getEnable(); diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/SysIndexController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/IndexController.java similarity index 94% rename from ruoyi-admin/src/main/java/com/ruoyi/web/controller/SysIndexController.java rename to ruoyi-admin/src/main/java/com/ruoyi/web/controller/IndexController.java index 368dbaf73..21392402f 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/SysIndexController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/IndexController.java @@ -12,9 +12,10 @@ import org.springframework.web.bind.annotation.RestController; * * @author Lion Li */ +@SaIgnore @RequiredArgsConstructor @RestController -public class SysIndexController { +public class IndexController { /** * 系统基础配置 @@ -24,7 +25,6 @@ public class SysIndexController { /** * 访问首页,提示语 */ - @SaIgnore @GetMapping("/") public String index() { return StringUtils.format("欢迎使用{}后台管理框架,当前版本:v{},请通过前端地址访问。", ruoyiConfig.getName(), ruoyiConfig.getVersion()); diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/SysRegisterController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/SysRegisterController.java deleted file mode 100644 index 0c3ef3bf9..000000000 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/SysRegisterController.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.ruoyi.web.controller; - -import cn.dev33.satoken.annotation.SaIgnore; -import com.ruoyi.common.web.core.BaseController; -import com.ruoyi.common.core.domain.R; -import com.ruoyi.common.core.domain.model.RegisterBody; -import com.ruoyi.system.service.ISysConfigService; -import com.ruoyi.web.service.SysRegisterService; -import lombok.RequiredArgsConstructor; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RestController; - -/** - * 注册验证 - * - * @author Lion Li - */ -@Validated -@RequiredArgsConstructor -@RestController -public class SysRegisterController extends BaseController { - - private final SysRegisterService registerService; - private final ISysConfigService configService; - - /** - * 用户注册 - */ - @SaIgnore - @PostMapping("/register") - public R register(@Validated @RequestBody RegisterBody user) { - if (!configService.selectRegisterEnabled(user.getTenantId())) { - return R.fail("当前系统没有开启注册功能!"); - } - registerService.register(user); - return R.ok(); - } -} diff --git a/ruoyi-admin/src/main/resources/application.yml b/ruoyi-admin/src/main/resources/application.yml index c6acfb21e..b81de5a4e 100644 --- a/ruoyi-admin/src/main/resources/application.yml +++ b/ruoyi-admin/src/main/resources/application.yml @@ -3,7 +3,7 @@ ruoyi: # 名称 name: RuoYi-Vue-Plus # 版本 - version: ${ruoyi-vue-plus.version} + version: ${revision} # 版权年份 copyrightYear: 2022 # 实例演示开关 diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/system/SysMenuController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/system/SysMenuController.java index 8a19b5d0a..228836055 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/system/SysMenuController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/system/SysMenuController.java @@ -12,8 +12,10 @@ import com.ruoyi.common.log.annotation.Log; import com.ruoyi.common.log.enums.BusinessType; import com.ruoyi.common.satoken.utils.LoginHelper; import com.ruoyi.common.web.core.BaseController; +import com.ruoyi.system.domain.SysMenu; import com.ruoyi.system.domain.bo.SysMenuBo; import com.ruoyi.system.domain.vo.MenuTreeSelectVo; +import com.ruoyi.system.domain.vo.RouterVo; import com.ruoyi.system.domain.vo.SysMenuVo; import com.ruoyi.system.service.ISysMenuService; import lombok.RequiredArgsConstructor; @@ -35,6 +37,17 @@ public class SysMenuController extends BaseController { private final ISysMenuService menuService; + /** + * 获取路由信息 + * + * @return 路由信息 + */ + @GetMapping("/getRouters") + public R> getRouters() { + List menus = menuService.selectMenuTreeByUserId(LoginHelper.getUserId()); + return R.ok(menuService.buildMenus(menus)); + } + /** * 获取菜单列表 */ diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/system/SysUserController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/system/SysUserController.java index b07185310..120a19bf1 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/system/SysUserController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/system/SysUserController.java @@ -6,6 +6,7 @@ import cn.hutool.core.lang.tree.Tree; import cn.hutool.core.util.ArrayUtil; import cn.hutool.core.util.ObjectUtil; import com.ruoyi.common.core.domain.R; +import com.ruoyi.common.core.domain.model.LoginUser; import com.ruoyi.common.core.utils.MapstructUtils; import com.ruoyi.common.core.utils.StreamUtils; import com.ruoyi.common.core.utils.StringUtils; @@ -93,6 +94,26 @@ public class SysUserController extends BaseController { ExcelUtil.exportExcel(new ArrayList<>(), "用户数据", SysUserImportVo.class, response); } + /** + * 获取用户信息 + * + * @return 用户信息 + */ + @GetMapping("/getInfo") + public R getInfo() { + UserInfoVo userInfoVo = new UserInfoVo(); + LoginUser loginUser = LoginHelper.getLoginUser(); + if (TenantHelper.isEnable() && LoginHelper.isSuperAdmin()) { + // 超级管理员 如果重新加载用户信息需清除动态租户 + TenantHelper.clearDynamic(); + } + SysUserVo user = userService.selectUserById(loginUser.getUserId()); + userInfoVo.setUser(user); + userInfoVo.setPermissions(loginUser.getMenuPermission()); + userInfoVo.setRoles(loginUser.getRolePermission()); + return R.ok(userInfoVo); + } + /** * 根据用户编号获取详细信息 * diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/domain/vo/UserInfoVo.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/UserInfoVo.java similarity index 91% rename from ruoyi-admin/src/main/java/com/ruoyi/web/domain/vo/UserInfoVo.java rename to ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/UserInfoVo.java index ad4f01503..99b517bc6 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/domain/vo/UserInfoVo.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/UserInfoVo.java @@ -1,4 +1,4 @@ -package com.ruoyi.web.domain.vo; +package com.ruoyi.system.domain.vo; import com.ruoyi.system.domain.vo.SysUserVo; import lombok.Data; diff --git a/ruoyi-ui/src/api/login.js b/ruoyi-ui/src/api/login.js index 6b8d85703..9e878cb1f 100644 --- a/ruoyi-ui/src/api/login.js +++ b/ruoyi-ui/src/api/login.js @@ -10,7 +10,7 @@ export function login(tenantId, username, password, code, uuid) { uuid } return request({ - url: '/login', + url: '/auth/login', headers: { isToken: false }, @@ -22,7 +22,7 @@ export function login(tenantId, username, password, code, uuid) { // 注册方法 export function register(data) { return request({ - url: '/register', + url: '/auth/register', headers: { isToken: false }, @@ -34,7 +34,7 @@ export function register(data) { // 获取用户详细信息 export function getInfo() { return request({ - url: '/getInfo', + url: '/system/user/getInfo', method: 'get' }) } @@ -42,7 +42,7 @@ export function getInfo() { // 退出方法 export function logout() { return request({ - url: '/logout', + url: '/auth/logout', method: 'post' }) } @@ -50,7 +50,7 @@ export function logout() { // 获取验证码 export function getCodeImg() { return request({ - url: '/captchaImage', + url: '/code', headers: { isToken: false }, @@ -62,7 +62,7 @@ export function getCodeImg() { // 短信验证码 export function getCodeSms() { return request({ - url: '/captchaSms', + url: '/sms/code', headers: { isToken: false }, @@ -74,7 +74,7 @@ export function getCodeSms() { // 获取租户列表 export function tenantList() { return request({ - url: '/tenant/list', + url: '/auth/tenant/list', headers: { isToken: false }, diff --git a/ruoyi-ui/src/api/menu.js b/ruoyi-ui/src/api/menu.js index faef101c4..8c1c21ab9 100644 --- a/ruoyi-ui/src/api/menu.js +++ b/ruoyi-ui/src/api/menu.js @@ -3,7 +3,7 @@ import request from '@/utils/request' // 获取路由 export const getRouters = () => { return request({ - url: '/getRouters', + url: '/system/menu/getRouters', method: 'get' }) -} \ No newline at end of file +}