Commit 3a676134 authored by 李健华's avatar 李健华

联调调用金融网关

parent 4cbc8afb
...@@ -30,6 +30,7 @@ import cn.quantgroup.xyqb.util.TenantUtil; ...@@ -30,6 +30,7 @@ import cn.quantgroup.xyqb.util.TenantUtil;
import cn.quantgroup.xyqb.util.ValidationUtil; import cn.quantgroup.xyqb.util.ValidationUtil;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.TypeReference;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.codec.binary.Base64; import org.apache.commons.codec.binary.Base64;
...@@ -445,6 +446,11 @@ public class UserController implements IBaseController { ...@@ -445,6 +446,11 @@ public class UserController implements IBaseController {
String tokenKey2 = Constants.Session.USER_SESSION_CACHE + token; String tokenKey2 = Constants.Session.USER_SESSION_CACHE + token;
// 判断token是否存在 // 判断token是否存在
boolean exist = stringRedisTemplate.hasKey(tokenKey) || stringRedisTemplate.hasKey(tokenKey2); boolean exist = stringRedisTemplate.hasKey(tokenKey) || stringRedisTemplate.hasKey(tokenKey2);
if (!token.contains(prefix) && !exist) {
Integer tenantId = TenantUtil.TENANT_DEFAULT;
findTokenExchange(token, tenantId);
exist = stringRedisTemplate.hasKey(tokenKey) || stringRedisTemplate.hasKey(tokenKey2);
}
return JsonResult.buildSuccessResult("token valid", exist); return JsonResult.buildSuccessResult("token valid", exist);
} }
...@@ -466,7 +472,16 @@ public class UserController implements IBaseController { ...@@ -466,7 +472,16 @@ public class UserController implements IBaseController {
} }
SessionStruct sessionStruct = XyqbSessionContextHolder.getXSessionFromRedis(token); SessionStruct sessionStruct = XyqbSessionContextHolder.getXSessionFromRedis(token);
if (sessionStruct == null || sessionStruct.getValues() == null) { if (sessionStruct == null || sessionStruct.getValues() == null) {
return JsonResult.buildSuccessResult(null, result); // 使用token去电商查询信息, 如果token 不包含本系统token前缀
if (!token.contains(prefix)) {
findTokenExchange(token, tenantId);
sessionStruct = XyqbSessionContextHolder.getXSessionFromRedis(token);
if (sessionStruct == null || sessionStruct.getValues() == null) {
return JsonResult.buildSuccessResult(null, result);
}
} else {
return JsonResult.buildSuccessResult(null, result);
}
} }
User user = sessionStruct.getValues().getUser(); User user = sessionStruct.getValues().getUser();
Integer sessionTenantId = sessionStruct.getValues().getLoginProperties().getTenantId(); Integer sessionTenantId = sessionStruct.getValues().getLoginProperties().getTenantId();
...@@ -498,23 +513,25 @@ public class UserController implements IBaseController { ...@@ -498,23 +513,25 @@ public class UserController implements IBaseController {
* *
*/ */
@RequestMapping("/tokenExchange") @RequestMapping("/tokenExchange")
public TokenExchange tokenExchange(@RequestParam String token, @RequestParam(required = false) Integer tenantId) { public JsonResult tokenExchange(@RequestParam String token, @RequestParam(required = false) Integer tenantId) {
TokenExchange tokenExchange = new TokenExchange(); TokenExchange tokenExchange = new TokenExchange();
if (StringUtils.isEmpty(token)) { if (StringUtils.isEmpty(token)) {
return null; return JsonResult.buildSuccessResult(null, tokenExchange);
} }
if (token.contains(Constants.TOKEN_MASTER)) { if (token.contains(Constants.TOKEN_MASTER)) {
return null; return JsonResult.buildSuccessResult(null, tokenExchange);
} }
SessionStruct sessionStruct = XyqbSessionContextHolder.getXSessionFromRedis(token); SessionStruct sessionStruct = XyqbSessionContextHolder.getXSessionFromRedis(token);
if (sessionStruct == null || sessionStruct.getValues() == null) { if (sessionStruct == null || sessionStruct.getValues() == null) {
return null; return JsonResult.buildSuccessResult(null, tokenExchange);
} }
User user = sessionStruct.getValues().getUser(); User user = sessionStruct.getValues().getUser();
tokenExchange.setLoginProperties(JSONObject.toJSONString(sessionStruct.getValues().getLoginProperties())); tokenExchange.setLoginProperties(JSONObject.toJSONString(sessionStruct.getValues().getLoginProperties()));
tokenExchange.setUserId(user.getId()); tokenExchange.setUserId(user.getId());
return tokenExchange; tokenExchange.setPhoneNo(user.getPhoneNo());
tokenExchange.setUuid(user.getUuid());
return JsonResult.buildSuccessResult(null, tokenExchange);
} }
...@@ -523,16 +540,22 @@ public class UserController implements IBaseController { ...@@ -523,16 +540,22 @@ public class UserController implements IBaseController {
* @param token * @param token
* @return * @return
*/ */
private void findTokenExchange(String token) { private void findTokenExchange(String token, Integer tenantId) {
if (tenantId == null) {
tenantId = TenantUtil.TENANT_DEFAULT;
}
// 请求其他系统信息 // 请求其他系统信息
HashMap<String, String> parameters = new HashMap<>(); HashMap<String, String> parameters = new HashMap<>();
HashMap<String, String> headers = new HashMap<>();
headers.put("qg-tenant-id", tenantId.toString());
parameters.put("token", token); parameters.put("token", token);
String resultStr = httpService.post(userHost + "/user/tokenExchange", parameters);
String resultStr = httpService.post(userHost + "/api/finance-gateway/finance-user/finance/tokenExchange", headers, parameters);
// 如果有返回值 // 如果有返回值
if (!resultStr.isEmpty()) { if (resultStr != null) {
TokenExchange tokenExchange = JSONObject.parseObject(resultStr, TokenExchange.class); JsonResult<TokenExchange> tokenExchangeResult = JSONObject.parseObject(resultStr, new TypeReference<JsonResult<TokenExchange>>(){});
TokenExchange tokenExchange = tokenExchangeResult.getData();
SessionValue sessionValue = new SessionValue(); SessionValue sessionValue = new SessionValue();
tokenExchange.setUserId(65172086L);
User user = userService.findById(tokenExchange.getUserId()); User user = userService.findById(tokenExchange.getUserId());
LoginProperties loginProperties = JSONObject.parseObject(tokenExchange.getLoginProperties(), LoginProperties.class); LoginProperties loginProperties = JSONObject.parseObject(tokenExchange.getLoginProperties(), LoginProperties.class);
......
...@@ -22,6 +22,8 @@ public class TokenExchange implements Serializable { ...@@ -22,6 +22,8 @@ public class TokenExchange implements Serializable {
private String uuid; private String uuid;
private String phoneNo;
private String loginProperties; private String loginProperties;
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment