|
@@ -1,16 +1,20 @@
|
|
|
package com.ym.mec.auth.service.impl;
|
|
|
|
|
|
+import com.alibaba.fastjson.JSONObject;
|
|
|
import com.dayaedu.cbs.openfeign.wrapper.qrcode.CbsQrCodeScanWrapper;
|
|
|
+import com.ym.mec.auth.api.client.SysUserFeignService;
|
|
|
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.entity.HttpResponseResult;
|
|
|
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;
|
|
|
+import java.util.Map;
|
|
|
+import java.util.UUID;
|
|
|
|
|
|
@Service
|
|
|
public class CbsQrCodeScanServiceImpl{
|
|
@@ -19,6 +23,8 @@ public class CbsQrCodeScanServiceImpl{
|
|
|
private CustomTokenServices customTokenServices;
|
|
|
@Resource
|
|
|
private SysUserService sysUserService;
|
|
|
+ @Resource
|
|
|
+ private SysUserFeignService sysUserFeignService;
|
|
|
|
|
|
public CbsQrCodeScanWrapper.UserInfo userInfo(CbsQrCodeScanWrapper.QrCodeScanUserInfoReq req) {
|
|
|
CbsQrCodeScanWrapper.UserInfo userInfo = new CbsQrCodeScanWrapper.UserInfo();
|
|
@@ -28,15 +34,24 @@ public class CbsQrCodeScanServiceImpl{
|
|
|
}
|
|
|
|
|
|
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;
|
|
|
+ //调用登陆接口
|
|
|
+ HttpResponseResult<Map<String,Object>> result = sysUserFeignService.smsLogin(phone, "qr_teacher", UUID.randomUUID().toString(), "qr_teacher");
|
|
|
+ if (result != null){
|
|
|
+ if(result.getCode() != 200){
|
|
|
+ throw new BizException("扫码登陆失败", result.getMsg());
|
|
|
+ }
|
|
|
+ CbsQrCodeScanWrapper.QrCodeScanToken qrCodeScanToken = new CbsQrCodeScanWrapper.QrCodeScanToken();
|
|
|
+ JSONObject jsonObject = JSONObject.parseObject(JSONObject.toJSONString(result.getData().get("authentication")));
|
|
|
+ qrCodeScanToken.setTokenData(jsonObject.getString("access_token"));
|
|
|
+ return qrCodeScanToken;
|
|
|
+ }
|
|
|
+ throw new BizException("扫码登陆失败", "调用登陆接口失败");
|
|
|
}
|
|
|
}
|