|
@@ -0,0 +1,42 @@
|
|
|
+package com.ym.mec.auth.service.impl;
|
|
|
+
|
|
|
+import com.dayaedu.cbs.openfeign.wrapper.qrcode.CbsQrCodeScanWrapper;
|
|
|
+import com.ym.mec.auth.api.entity.SysUser;
|
|
|
+import com.ym.mec.auth.core.service.CustomTokenServices;
|
|
|
+import com.ym.mec.auth.service.SysUserService;
|
|
|
+import com.ym.mec.common.exception.BizException;
|
|
|
+import org.springframework.http.HttpStatus;
|
|
|
+import org.springframework.security.oauth2.common.OAuth2AccessToken;
|
|
|
+import org.springframework.security.oauth2.provider.OAuth2Authentication;
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
+
|
|
|
+import javax.annotation.Resource;
|
|
|
+
|
|
|
+@Service
|
|
|
+public class CbsQrCodeScanServiceImpl{
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private CustomTokenServices customTokenServices;
|
|
|
+ @Resource
|
|
|
+ private SysUserService sysUserService;
|
|
|
+
|
|
|
+ public CbsQrCodeScanWrapper.UserInfo userInfo(CbsQrCodeScanWrapper.QrCodeScanUserInfoReq req) {
|
|
|
+ CbsQrCodeScanWrapper.UserInfo userInfo = new CbsQrCodeScanWrapper.UserInfo();
|
|
|
+ userInfo.setUsername(customTokenServices.loadAuthentication(req.getToken()).getName().split(":")[1]);
|
|
|
+ userInfo.setClientTypes("TEACHER");
|
|
|
+ return userInfo;
|
|
|
+ }
|
|
|
+
|
|
|
+ public CbsQrCodeScanWrapper.QrCodeScanToken login(CbsQrCodeScanWrapper.QrCodeScanReq req) {
|
|
|
+ OAuth2Authentication auth2Authentication = customTokenServices.loadAuthentication(req.getPassword());
|
|
|
+ String phone = auth2Authentication.getName().split(":")[1];
|
|
|
+ SysUser sysUser = sysUserService.queryByPhone(phone);
|
|
|
+ if (sysUser == null) {
|
|
|
+ throw new BizException(HttpStatus.UNAUTHORIZED.value(), "用户不存在");
|
|
|
+ }
|
|
|
+ OAuth2AccessToken accessToken = customTokenServices.newAccessToken(auth2Authentication);
|
|
|
+ CbsQrCodeScanWrapper.QrCodeScanToken qrCodeScanToken = new CbsQrCodeScanWrapper.QrCodeScanToken();
|
|
|
+ qrCodeScanToken.setTokenData(accessToken.getValue());
|
|
|
+ return qrCodeScanToken;
|
|
|
+ }
|
|
|
+}
|