|  | @@ -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;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +}
 |