Browse Source

乐教通

zouxuan 1 year ago
parent
commit
0c35652660

+ 6 - 0
mec-auth/mec-auth-api/src/main/java/com/ym/mec/auth/api/client/SysUserFeignService.java

@@ -7,6 +7,7 @@ import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.common.config.FeignConfiguration;
 import com.ym.mec.common.entity.HttpResponseResult;
 import io.swagger.annotations.ApiOperation;
+import org.json.JSONObject;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.http.MediaType;
 import org.springframework.web.bind.annotation.*;
@@ -57,4 +58,9 @@ public interface SysUserFeignService {
 
 	@PostMapping(value = "open/qrcode/login")
 	CbsQrCodeScanWrapper.QrCodeScanToken login(@RequestBody CbsQrCodeScanWrapper.QrCodeScanReq req);
+
+	@PostMapping(value = "smsLogin")
+	HttpResponseResult<JSONObject> smsLogin(@RequestParam("phone")String phone,
+											@RequestParam("clientId")String clientId,
+											@RequestParam("clientSecret")String clientSecret);
 }

+ 12 - 6
mec-auth/mec-auth-api/src/main/java/com/ym/mec/auth/api/client/fallback/SysUserFeignServiceFallback.java

@@ -1,15 +1,14 @@
 package com.ym.mec.auth.api.client.fallback;
 
-import java.util.List;
-import java.util.Map;
-
 import com.dayaedu.cbs.openfeign.wrapper.qrcode.CbsQrCodeScanWrapper;
-import com.ym.mec.auth.api.dto.SysUserQueryInfo;
-import org.springframework.stereotype.Component;
-
 import com.ym.mec.auth.api.client.SysUserFeignService;
+import com.ym.mec.auth.api.dto.SysUserQueryInfo;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.common.entity.HttpResponseResult;
+import org.json.JSONObject;
+import org.springframework.web.bind.annotation.RequestParam;
+
+import java.util.List;
 
 //@Component
 public class SysUserFeignServiceFallback implements SysUserFeignService {
@@ -73,4 +72,11 @@ public class SysUserFeignServiceFallback implements SysUserFeignService {
 		return null;
 	}
 
+	@Override
+	public HttpResponseResult<JSONObject> smsLogin(@RequestParam("phone")String phone,
+												   @RequestParam("clientId")String clientId,
+												   @RequestParam("clientSecret")String clientSecret) {
+		return null;
+	}
+
 }

+ 18 - 4
mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/service/impl/CbsQrCodeScanServiceImpl.java

@@ -1,10 +1,14 @@
 package com.ym.mec.auth.service.impl;
 
 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 netscape.javascript.JSObject;
+import org.json.JSONObject;
 import org.springframework.http.HttpStatus;
 import org.springframework.security.oauth2.common.OAuth2AccessToken;
 import org.springframework.security.oauth2.provider.OAuth2Authentication;
@@ -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,23 @@ 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<JSONObject> result = sysUserFeignService.smsLogin(phone, "QR_TEACHER", "QR_TEACHER");
+        if (result != null){
+            if(result.getCode() != 200){
+                throw new BizException("扫码登陆失败", result.getMsg());
+            }
+            CbsQrCodeScanWrapper.QrCodeScanToken qrCodeScanToken = new CbsQrCodeScanWrapper.QrCodeScanToken();
+            qrCodeScanToken.setTokenData(result.getData().getString("access_token"));
+            return qrCodeScanToken;
+        }
+        throw new BizException("扫码登陆失败", "调用登陆接口失败");
     }
 }