Просмотр исходного кода

//mallTenantId

release_toaliyun_real
xhxu 3 лет назад
Родитель
Сommit
bf490288de
1 измененных файлов: 33 добавлений и 4 удалений
  1. +33
    -4
      mallinkAdmin/src/main/java/com/iformall/interceptor/CurrentTenantInterceptor.java

+ 33
- 4
mallinkAdmin/src/main/java/com/iformall/interceptor/CurrentTenantInterceptor.java Просмотреть файл

@@ -3,7 +3,11 @@ package com.iformall.interceptor;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.alibaba.fastjson.JSONObject;
import com.iformall.domain.po.WxMall;
import com.iformall.service.WxMallService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.web.method.HandlerMethod;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
@@ -21,12 +25,37 @@ import com.iformall.utils.Constant;
@Component
public class CurrentTenantInterceptor extends HandlerInterceptorAdapter {

@Autowired
private WxMallService wxMallService;

@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
String tenantId = (String)request.getSession().getAttribute(UserSession.tenantId);
String parenTenantId = (String)request.getSession().getAttribute(UserSession.parentTenantId);

//集团版中针对某一商场的业务需要传递mallTenantId
String mallTenantId = request.getHeader("mallTenantId");
if(StringUtils.isBlank(mallTenantId)){
mallTenantId = request.getParameter("mallTenantId");
}
if(StringUtils.isBlank(mallTenantId)){
try{
String body = ((BodyReaderHttpServletRequestWrapper) request).getBody();
mallTenantId = JSONObject.parseObject(body).getString("mallTenantId");
}catch(Exception e){}
}

String tenantId = null;
String parenTenantId = null;
if(StringUtils.isNotBlank(mallTenantId)){
tenantId = mallTenantId;
WxMall mall = wxMallService.getByTenantId(tenantId);
if(StringUtils.isNotBlank(mall.getParentTenantId())){
parenTenantId = mall.getParentTenantId();
}
}else{
tenantId = (String)request.getSession().getAttribute(UserSession.tenantId);
parenTenantId = (String)request.getSession().getAttribute(UserSession.parentTenantId);
}

TenantThreadLocal.setCurrentThreadTenant(tenantId, parenTenantId);
TenantIgnore annotation = null;


Загрузка…
Отмена
Сохранить