ÎļþÃû´Ó ruoyi-admin/src/main/java/com/ruoyi/web/controller/SysLoginController.java ÐÞ¸Ä |
| | |
| | | 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; |
| | | |
| | | /** |
| | |
| | | * @param body ç»å½ä¿¡æ¯ |
| | | * @return ç»æ |
| | | */ |
| | | @SaIgnore |
| | | @PostMapping("/login") |
| | | public R<LoginVo> login(@Validated @RequestBody LoginBody body) { |
| | | LoginVo loginVo = new LoginVo(); |
| | |
| | | * @param body ç»å½ä¿¡æ¯ |
| | | * @return ç»æ |
| | | */ |
| | | @SaIgnore |
| | | @PostMapping("/smsLogin") |
| | | public R<LoginVo> smsLogin(@Validated @RequestBody SmsLoginBody body) { |
| | | LoginVo loginVo = new LoginVo(); |
| | |
| | | * @param xcxCode å°ç¨åºcode |
| | | * @return ç»æ |
| | | */ |
| | | @SaIgnore |
| | | @PostMapping("/xcxLogin") |
| | | public R<LoginVo> xcxLogin(@NotBlank(message = "{xcx.code.not.blank}") String xcxCode) { |
| | | LoginVo loginVo = new LoginVo(); |
| | |
| | | /** |
| | | * éåºç»å½ |
| | | */ |
| | | @SaIgnore |
| | | @PostMapping("/logout") |
| | | public R<Void> logout() { |
| | | loginService.logout(); |
| | |
| | | } |
| | | |
| | | /** |
| | | * ç¨æ·æ³¨å |
| | | */ |
| | | @PostMapping("/register") |
| | | public R<Void> 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<List<TenantListVo>> tenantList(HttpServletRequest request) throws Exception { |
| | | List<SysTenantVo> tenantList = tenantService.queryList(new SysTenantBo()); |
| | |
| | | return R.ok(CollUtil.isNotEmpty(list) ? list : voList); |
| | | } |
| | | |
| | | /** |
| | | * è·åç¨æ·ä¿¡æ¯ |
| | | * |
| | | * @return ç¨æ·ä¿¡æ¯ |
| | | */ |
| | | @GetMapping("getInfo") |
| | | public R<UserInfoVo> 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<List<RouterVo>> getRouters() { |
| | | List<SysMenu> menus = menuService.selectMenuTreeByUserId(LoginHelper.getUserId()); |
| | | return R.ok(menuService.buildMenus(menus)); |
| | | } |
| | | } |