| 
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -5,7 +5,8 @@ import com.epmet.commons.thirdplat.apiservice.AbstractApiService; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import com.epmet.commons.thirdplat.bean.ThirdPlatUserInfo; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import com.epmet.commons.thirdplat.constants.JcetConstants; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import com.epmet.commons.thirdplat.dto.form.jcet.SsoTicketFormDTO; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import com.epmet.commons.thirdplat.dto.result.jcet.JcetUserInfoResultDTO; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import com.epmet.commons.thirdplat.dto.result.jcet.JcetCUserInfoResultDTO; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import com.epmet.commons.thirdplat.dto.result.jcet.JcetGUserInfoResultDTO; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import com.epmet.commons.thirdplat.encrypt.SignUtils; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import com.epmet.commons.thirdplat.properties.JcetThirdplatProps; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import com.epmet.commons.thirdplat.properties.ThirdplatProps; | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -16,20 +17,20 @@ import org.slf4j.LoggerFactory; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import org.springframework.stereotype.Service; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import java.io.UnsupportedEncodingException; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import java.nio.charset.StandardCharsets; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import java.util.HashMap; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import java.util.Map; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					@Service | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					public class JcetApiService extends AbstractApiService { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    Logger logger = LoggerFactory.getLogger(getClass()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    private JcetThirdplatProps jcetThirdplatProps; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    private JcetThirdplatProps jcetThirdplatCendProps; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    private JcetThirdplatProps jcetThirdplatGendProps; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    public JcetApiService(ThirdplatProps props) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        this.thirdplatProps = props; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        jcetThirdplatProps = props.getJcet(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        jcetThirdplatCendProps = props.getJcetCend(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        jcetThirdplatGendProps = props.getJcetGend(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    /** | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -38,8 +39,7 @@ public class JcetApiService extends AbstractApiService { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					     * @author wxz | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					     * @date 2021.01.19 10:26 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					     */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    @Override | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    public ThirdPlatUserInfo getUserInfoByTicket(String ticket) throws UnsupportedEncodingException { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    public ThirdPlatUserInfo getCUserInfoByTicket(String ticket) throws UnsupportedEncodingException { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        logger.info("【请求酒城e通第三方平台】getUserInfoByTicket()接口开始>>>>>>>>>>>>"); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        logger.info("【请求酒城e通第三方平台】getUserInfoByTicket()接口入参 ticket:{}", ticket); | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -47,12 +47,12 @@ public class JcetApiService extends AbstractApiService { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        SsoTicketFormDTO ssoTicket = new SsoTicketFormDTO(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        ssoTicket.setSsoTicket(ticket); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        String domain = jcetThirdplatProps.getDomain(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        String domain = jcetThirdplatCendProps.getDomain(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        Result<String> result = HttpClientManager.getInstance().sendPost( | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                domain.concat(JcetConstants.URL_GET_USER_BY_TICKET), | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                domain.startsWith("https://"), | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                JSON.toJSONString(ssoTicket), | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                getHeaders(ssoTicket)); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                getHeaders(JSON.toJSONString(ssoTicket).getBytes("utf-8").length, jcetThirdplatCendProps.getAppkey(), jcetThirdplatCendProps.getAppsecret())); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        try { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            logger.info("【请求酒城e通第三方平台】getUserInfoByTicket()接口返回:{}", result.getData()); | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -61,7 +61,7 @@ public class JcetApiService extends AbstractApiService { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        logger.info("【请求酒城e通第三方平台】getUserInfoByTicket()接口结束<<<<<<<<<<<<"); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        JcetUserInfoResultDTO resultDTO = parseResult(result, JcetUserInfoResultDTO.class); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        JcetCUserInfoResultDTO resultDTO = parseResult(result, JcetCUserInfoResultDTO.class); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        ThirdPlatUserInfo userInfo = new ThirdPlatUserInfo(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        userInfo.setOpenId(resultDTO.getId()); | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -70,6 +70,38 @@ public class JcetApiService extends AbstractApiService { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        return userInfo; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    @Override | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    public ThirdPlatUserInfo getGUserInfoBySSOToken(String token) throws Exception { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        logger.info("【请求酒城e通第三方平台】getGUserInfoBySSOToken()接口开始>>>>>>>>>>>>"); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        logger.info("【请求酒城e通第三方平台】getGUserInfoBySSOToken()接口入参 ticket:{}", token); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        HashMap<String, Object> params = new HashMap<>(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        params.put("ssoToken",token); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        String domain = jcetThirdplatGendProps.getDomain(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        Result<String> result = HttpClientManager.getInstance().sendGet( | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                domain.concat(JcetConstants.URL_GET_USER_BY_TOKEN), | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                domain.startsWith("https://"), | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                params, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                getHeaders(0, jcetThirdplatGendProps.getAppkey(), jcetThirdplatGendProps.getAppsecret())); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        try { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            logger.info("【请求酒城e通第三方平台】getUserInfoByTicket()接口返回:{}", result.getData()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        } catch (Exception e) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            //e.printStackTrace();
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        logger.info("【请求酒城e通第三方平台】getUserInfoByTicket()接口结束<<<<<<<<<<<<"); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        JcetGUserInfoResultDTO resultDTO = parseResult(result, JcetGUserInfoResultDTO.class); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        ThirdPlatUserInfo userInfo = new ThirdPlatUserInfo(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        userInfo.setOpenId(resultDTO.getUid()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        userInfo.setName(resultDTO.getName()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        userInfo.setMobile(resultDTO.getMobile()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        return userInfo; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    /** | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					     * @return | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					     * @Description 通过token获取用户信息 | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -98,19 +130,17 @@ public class JcetApiService extends AbstractApiService { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    /** | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					     * 获取请求所需要的头信息 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					     * | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					     * @param contentObject | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					     * @return | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					     * @throws UnsupportedEncodingException | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					     */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    private Map<String, Object> getHeaders(Object contentObject) throws UnsupportedEncodingException { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        int bodyLength = JSON.toJSONString(contentObject).getBytes(StandardCharsets.UTF_8).length; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    private Map<String, Object> getHeaders(int bodyLength, String appKey, String appSecret) throws UnsupportedEncodingException { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        Map<String, Object> headers = new HashMap(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        long timestamp = System.currentTimeMillis(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        headers.put(JcetConstants.PLAT_HEADER_OPEN_TIMESTAMP, String.valueOf(timestamp)); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        headers.put(JcetConstants.PLAT_HEADER_OPEN_APP_ID, jcetThirdplatProps.getAppkey()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        String encryptContent = jcetThirdplatProps.getAppkey() + timestamp + bodyLength; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        headers.put(JcetConstants.PLAT_HEADER_OPEN_SIGN, SignUtils.generate(encryptContent, jcetThirdplatProps.getAppsecret())); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        headers.put(JcetConstants.PLAT_HEADER_OPEN_TIMESTAMP, timestamp); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        headers.put(JcetConstants.PLAT_HEADER_OPEN_APP_ID, appKey); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        String encryptContent = appKey + timestamp + bodyLength; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        headers.put(JcetConstants.PLAT_HEADER_OPEN_SIGN, SignUtils.generate(encryptContent, appSecret)); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        return headers; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
				
				 | 
				
					
  |