Commit 08b42294 authored by 技术部-任文超's avatar 技术部-任文超

下线调用函谷关接口:/innerapi/is_login,/innerapi/disableUserCache

parent a9c9363c
......@@ -26,16 +26,13 @@ import cn.quantgroup.xyqb.session.XyqbSessionContextHolder;
import cn.quantgroup.xyqb.util.PasswordUtil;
import cn.quantgroup.xyqb.util.ValidationUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.common.collect.ImmutableMap;
import com.weibo.api.motan.config.springsupport.annotation.MotanService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.util.CollectionUtils;
import java.sql.Timestamp;
......@@ -55,7 +52,6 @@ import static cn.quantgroup.xyqb.constant.UserConstant.USER_ERROR_OR_PASSWORD_ER
@MotanService(basicService = "baseServiceConfig")
public class MotanUserServiceImpl implements UserMotanService {
private static final ObjectMapper MAPPER = new ObjectMapper();
private final static Random random = new Random();
......@@ -63,10 +59,6 @@ public class MotanUserServiceImpl implements UserMotanService {
MAPPER.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
}
@Value("${xyqb.auth.url}")
private String xyqbAuthUrl;
@Autowired
private IIdCardService idCardService;
@Autowired
......@@ -679,58 +671,8 @@ public class MotanUserServiceImpl implements UserMotanService {
context.setAppChannel(sessionStruct.getValues().getLoginProperties().getAppChannel());
loginInfo.setLoginContext(context);
return returnSuccessValue(loginInfo);
}else{
// 函谷关去查token 返回值高仿
LoginInfo loginInfo = getLoginInfoFromHanguguan(token);
if(Objects.isNull(loginInfo)){
return returnErrorValue("用户未登录");
}
return returnSuccessValue(loginInfo.toXLoginInfo());
}
}
/**
* 函谷关去查token 返回值高仿
* @param token
* @return
*/
private LoginInfo getLoginInfoFromHanguguan(String token) {
if(StringUtils.isBlank(token) ||token.length() != 36){
return null;
}
log.info("去向函谷关查询用户信息");
String checkUrl = xyqbAuthUrl+"/innerapi/is_login";
ImmutableMap<String, String> headMap = ImmutableMap.of(Constants.X_AUTH_TOKEN, token);
String response = httpService.get(checkUrl, headMap, null);
log.info("去向函谷关查询用户信息,response:[{}]",response);
JsonResult result = JSONObject.parseObject(response, JsonResult.class);
if (result == null || !"0000".equals(result.getCode()) || !"0000".equals(result.getBusinessCode())) {
return null;
}
String phoneNo = ((Map<String, String>) result.getData()).get("phoneNo");
User user = userService.findByPhoneWithCache(phoneNo);
LoginInfo loginInfo = new LoginInfo();
loginInfo.setUser(new UserRet(user));
loginInfo.setToken(token);
LoginInfo.LoginContext context = new LoginInfo.LoginContext();
context.setChannelId(null);
context.setCreatedFrom(user.getRegisteredFrom());
context.setAppChannel("");
if(Objects.equals(user.getRegisteredFrom(), 222L)) {
UserBtRegister userBtRegister =null;
try{
userBtRegister=userBtRegisterService.findByUserId(user.getId());
}catch(Exception e){
}
if(null != userBtRegister){
context.setBtMerchantId(userBtRegister.getRegisterBtMerchantId());
}else {
context.setBtMerchantId(1L);
}
}
loginInfo.setLoginContext(context);
return loginInfo;
return returnErrorValue("用户未登录");
}
/**
......
......@@ -734,8 +734,6 @@ public class InnerController implements IBaseController {
sessionService.deleteByUserId(userId);
sessionService.deleteUserCatch(user);
}
LOGGER.info("去清除函谷关的缓存");
httpService.get(hanguguanUrl.concat("/innerapi/disableUserCache"), ImmutableMap.of("phone", user.getPhoneNo()));
return JsonResult.buildSuccessResult("用户已禁用.", user.getEnable() == false);
}
......
package cn.quantgroup.xyqb.controller.internal.login;
import cn.quantgroup.xyqb.Constants;
import cn.quantgroup.xyqb.controller.IBaseController;
import cn.quantgroup.xyqb.entity.User;
import cn.quantgroup.xyqb.entity.UserBtRegister;
import cn.quantgroup.xyqb.model.JsonResult;
import cn.quantgroup.xyqb.model.UserRet;
import cn.quantgroup.xyqb.model.session.LoginInfo;
......@@ -11,20 +8,10 @@ import cn.quantgroup.xyqb.model.session.SessionStruct;
import cn.quantgroup.xyqb.service.http.IHttpService;
import cn.quantgroup.xyqb.service.user.IUserBtRegisterService;
import cn.quantgroup.xyqb.service.user.IUserService;
import com.alibaba.fastjson.JSONObject;
import com.google.common.collect.ImmutableMap;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.http.HttpServletRequest;
import java.util.Map;
import java.util.Objects;
/**
* Created by Miraculous on 2016/12/30.
......@@ -34,10 +21,6 @@ import java.util.Objects;
@Slf4j
public class AuthInfoController implements IBaseController {
@Value("${xyqb.auth.url}")
private String xyqbAuthUrl;
@Autowired
private IHttpService httpService;
......@@ -61,62 +44,11 @@ public class AuthInfoController implements IBaseController {
context.setCreatedFrom(sessionStruct.getValues().getLoginProperties().getCreatedFrom());
context.setAppChannel(sessionStruct.getValues().getLoginProperties().getAppChannel());
context.setBtMerchantId(sessionStruct.getValues().getLoginProperties().getBtMerchantId());
//有ThreadLocal不释放的问题,不可再使用原来方式了
loginInfo.setLoginContext(context);
return JsonResult.buildSuccessResult("", loginInfo); //有ThreadLocal不释放的问题,不可再使用原来方式了
}else {
// 函谷关去查token 返回值高仿
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
String token = request.getHeader(Constants.X_AUTH_TOKEN);
LoginInfo loginInfo = getLoginInfoFromHanguguan(token);
if(Objects.isNull(loginInfo)){
return JsonResult.buildErrorStateResult("用户未登录",null);
}
return JsonResult.buildSuccessResult("", loginInfo);
}
}
/**
* 函谷关去查token 返回值高仿
* @param token
* @return
*/
private LoginInfo getLoginInfoFromHanguguan(String token) {
if(org.apache.commons.lang.StringUtils.isBlank(token) ||token.length() != 36){
return null;
}
log.info("去向函谷关查询用户信息");
String checkUrl = xyqbAuthUrl+"/innerapi/is_login";
ImmutableMap<String, String> headMap = ImmutableMap.of(Constants.X_AUTH_TOKEN, token);
String response = httpService.get(checkUrl, headMap, null);
log.info("去向函谷关查询用户信息,response:[{}]",response);
JsonResult result = JSONObject.parseObject(response, JsonResult.class);
if (result == null || !"0000".equals(result.getCode()) || !"0000".equals(result.getBusinessCode())) {
return null;
}
String phoneNo = ((Map<String, String>) result.getData()).get("phoneNo");
User user = userService.findByPhoneWithCache(phoneNo);
LoginInfo loginInfo = new LoginInfo();
loginInfo.setUser(new UserRet(user));
loginInfo.setToken(token);
LoginInfo.LoginContext context = new LoginInfo.LoginContext();
context.setChannelId(null);
context.setCreatedFrom(user.getRegisteredFrom());
context.setAppChannel("");
if(Objects.equals(user.getRegisteredFrom(), 222L)) {
UserBtRegister userBtRegister =null;
try{
userBtRegister=userBtRegisterService.findByUserId(user.getId());
}catch(Exception e){
}
if(null != userBtRegister){
context.setBtMerchantId(userBtRegister.getRegisterBtMerchantId());
}else {
context.setBtMerchantId(1L);
}
}
loginInfo.setLoginContext(context);
return loginInfo;
return JsonResult.buildErrorStateResult("用户未登录",null);
}
}
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