|
|
@@ -3,6 +3,7 @@ package com.xjrsoft.module.system.controller;
|
|
|
import cn.dev33.satoken.annotation.SaCheckPermission;
|
|
|
import cn.dev33.satoken.session.SaSession;
|
|
|
import cn.dev33.satoken.stp.StpUtil;
|
|
|
+import cn.hutool.core.util.IdUtil;
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
import cn.hutool.extra.spring.SpringUtil;
|
|
|
import cn.hutool.jwt.JWT;
|
|
|
@@ -30,6 +31,8 @@ import com.xjrsoft.module.system.dto.LoginDto;
|
|
|
import com.xjrsoft.module.system.dto.LoginQRCodeDto;
|
|
|
import com.xjrsoft.module.system.service.ILoginService;
|
|
|
import com.xjrsoft.module.system.service.IOauthService;
|
|
|
+import com.xjrsoft.module.system.vo.LoginCheckQRCodeVo;
|
|
|
+import com.xjrsoft.module.system.vo.LoginQRCodeVo;
|
|
|
import io.swagger.annotations.Api;
|
|
|
import io.swagger.annotations.ApiOperation;
|
|
|
import lombok.AllArgsConstructor;
|
|
|
@@ -94,29 +97,47 @@ public class LoginController {
|
|
|
@GetMapping(value = "/loginQRCode")
|
|
|
@ApiOperation(value="登录-二维码")
|
|
|
@SaCheckPermission("wfstudenttextbookclaim:detail")
|
|
|
- public RT<String> qrcode() throws Exception {
|
|
|
- String url = commonPropertiesConfig.getDomainApp() + "/system/QR-code-login";
|
|
|
+ public RT<LoginQRCodeVo> qrcode() throws Exception {
|
|
|
+ String url = commonPropertiesConfig.getDomainApp() + "/system/QR-code-login?";
|
|
|
int width = 200;
|
|
|
int height = 200;
|
|
|
int margin = 1;
|
|
|
|
|
|
try {
|
|
|
String base64 = QrCodeUtil.createBase64(url, width, height, margin);
|
|
|
- return RT.ok(base64);
|
|
|
+ LoginQRCodeVo loginQRCodeVo = new LoginQRCodeVo();
|
|
|
+ loginQRCodeVo.setImgBase64(base64);
|
|
|
+ long loginCode = IdUtil.getSnowflakeNextId();
|
|
|
+ loginQRCodeVo.setLoginCode(loginCode + "");
|
|
|
+ return RT.ok(loginQRCodeVo);
|
|
|
} catch (Exception e) {
|
|
|
- throw e;
|
|
|
+ return RT.error(e.getMessage());
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@PostMapping("/QR-code-login")
|
|
|
- @ApiOperation(value = "登录", notes = "code")
|
|
|
+ @ApiOperation(value = "二维码登录", notes = "code")
|
|
|
@XjrLog(value = "二维码登录")
|
|
|
public R loginQRCode(@RequestBody @Valid LoginQRCodeDto dto) throws Exception {
|
|
|
return R.ok(loginService.loginQRCode(dto));
|
|
|
}
|
|
|
|
|
|
+ @PostMapping("/check-QR-code-login")
|
|
|
+ @ApiOperation(value = "验证是否登录成功", notes = "验证是否登录成功")
|
|
|
+ @XjrLog(value = "验证是否登录成功")
|
|
|
+ public RT<LoginCheckQRCodeVo> checkLoginQRCode(@RequestBody @Valid String loginCode) {
|
|
|
+ String token = redisUtil.get(loginCode);
|
|
|
+ LoginCheckQRCodeVo loginCheckQRCodeVo = new LoginCheckQRCodeVo();
|
|
|
+ loginCheckQRCodeVo.setToken(token);
|
|
|
+ loginCheckQRCodeVo.setStatus(0);
|
|
|
+ if(StrUtil.isEmpty(token)){
|
|
|
+ loginCheckQRCodeVo.setStatus(1);
|
|
|
+ }
|
|
|
+ return RT.ok(loginCheckQRCodeVo);
|
|
|
+ }
|
|
|
+
|
|
|
@PostMapping("/bindOpenid")
|
|
|
- @ApiOperation(value = "登录", notes = "code")
|
|
|
+ @ApiOperation(value = "登录", notes = "登录")
|
|
|
@XjrLog(value = "code换Openid并绑定")
|
|
|
public R bindOpenid(@RequestBody @Valid LoginByCodeDto dto) throws Exception {
|
|
|
return R.ok(loginService.bindOpenid(dto));
|