| | |
| | | import cn.hutool.core.date.LocalDateTimeUtil; |
| | | import cn.hutool.core.util.StrUtil; |
| | | import com.iailab.framework.common.enums.CommonStatusEnum; |
| | | import com.iailab.framework.common.enums.UserTypeEnum; |
| | | import com.iailab.framework.common.pojo.CommonResult; |
| | | import com.iailab.framework.common.util.object.BeanUtils; |
| | | import com.iailab.framework.security.config.SecurityProperties; |
| | | import com.iailab.framework.security.core.LoginUser; |
| | | import com.iailab.framework.security.core.util.SecurityFrameworkUtils; |
| | | import com.iailab.module.system.controller.admin.app.vo.AppMenuRespVO; |
| | | import com.iailab.module.system.controller.admin.app.vo.AppRespVO; |
| | | import com.iailab.module.system.controller.admin.auth.vo.*; |
| | | import com.iailab.module.system.controller.admin.permission.vo.menu.MenuListReqVO; |
| | | import com.iailab.module.system.controller.admin.permission.vo.menu.MenuRespVO; |
| | | import com.iailab.module.system.convert.auth.AuthConvert; |
| | | import com.iailab.module.system.dal.dataobject.app.AppDO; |
| | | import com.iailab.module.system.dal.dataobject.permission.MenuDO; |
| | |
| | | import com.iailab.module.system.service.permission.MenuService; |
| | | import com.iailab.module.system.service.permission.PermissionService; |
| | | import com.iailab.module.system.service.permission.RoleService; |
| | | import com.iailab.module.system.service.social.SocialClientService; |
| | | import com.iailab.module.system.service.user.AdminUserService; |
| | | import io.swagger.v3.oas.annotations.Operation; |
| | | import io.swagger.v3.oas.annotations.Parameter; |
| | | import io.swagger.v3.oas.annotations.Parameters; |
| | | import io.swagger.v3.oas.annotations.tags.Tag; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.security.core.Authentication; |
| | | import org.springframework.validation.annotation.Validated; |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | |
| | | private MenuService menuService; |
| | | @Resource |
| | | private PermissionService permissionService; |
| | | @Resource |
| | | private SocialClientService socialClientService; |
| | | @Resource |
| | | private SecurityProperties securityProperties; |
| | | @Resource |
| | |
| | | menuVOS = AuthConvert.INSTANCE.buildMenuTree(tempChildren, menuDO.getId(), menuDO.getPath(), info.getType()); |
| | | // 2. 拼接结果返回 |
| | | return success(menuVOS); |
| | | } |
| | | |
| | | // ========== 短信登录相关 ========== |
| | | |
| | | @PostMapping("/sms-login") |
| | | @PermitAll |
| | | @Operation(summary = "使用短信验证码登录") |
| | | public CommonResult<AuthLoginRespVO> smsLogin(@RequestBody @Valid AuthSmsLoginReqVO reqVO) { |
| | | return success(authService.smsLogin(reqVO)); |
| | | } |
| | | |
| | | @PostMapping("/send-sms-code") |
| | | @PermitAll |
| | | @Operation(summary = "发送手机验证码") |
| | | public CommonResult<Boolean> sendLoginSmsCode(@RequestBody @Valid AuthSmsSendReqVO reqVO) { |
| | | authService.sendSmsCode(reqVO); |
| | | return success(true); |
| | | } |
| | | |
| | | // ========== 社交登录相关 ========== |
| | | |
| | | @GetMapping("/social-auth-redirect") |
| | | @PermitAll |
| | | @Operation(summary = "社交授权的跳转") |
| | | @Parameters({ |
| | | @Parameter(name = "type", description = "社交类型", required = true), |
| | | @Parameter(name = "redirectUri", description = "回调路径") |
| | | }) |
| | | public CommonResult<String> socialLogin(@RequestParam("type") Integer type, |
| | | @RequestParam("redirectUri") String redirectUri) { |
| | | return success(socialClientService.getAuthorizeUrl( |
| | | type, UserTypeEnum.ADMIN.getValue(), redirectUri)); |
| | | } |
| | | |
| | | @PostMapping("/social-login") |
| | | @PermitAll |
| | | @Operation(summary = "社交快捷登录,使用 code 授权码", description = "适合未登录的用户,但是社交账号已绑定用户") |
| | | public CommonResult<AuthLoginRespVO> socialQuickLogin(@RequestBody @Valid AuthSocialLoginReqVO reqVO) { |
| | | return success(authService.socialLogin(reqVO)); |
| | | } |
| | | |
| | | } |