|
@@ -23,10 +23,13 @@ import org.springframework.transaction.interceptor.TransactionAspectSupport;
|
|
|
import org.springframework.web.bind.WebDataBinder;
|
|
|
import org.springframework.web.bind.annotation.InitBinder;
|
|
|
|
|
|
+import javax.annotation.Resource;
|
|
|
+import javax.servlet.http.HttpServletRequest;
|
|
|
import java.beans.PropertyEditorSupport;
|
|
|
import java.lang.reflect.Field;
|
|
|
import java.util.Date;
|
|
|
import java.util.List;
|
|
|
+import java.util.Objects;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
@@ -36,7 +39,8 @@ import java.util.stream.Collectors;
|
|
|
*/
|
|
|
public class BaseController {
|
|
|
protected final Logger logger = LoggerFactory.getLogger(this.getClass());
|
|
|
-
|
|
|
+ @Resource
|
|
|
+ private HttpServletRequest request;
|
|
|
|
|
|
/**
|
|
|
* 将前台传递过来的日期格式的字符串,自动转化为Date类型
|
|
@@ -225,12 +229,16 @@ public class BaseController {
|
|
|
*/
|
|
|
protected <T> void setTenantId(T t) throws NoSuchFieldException, IllegalAccessException {
|
|
|
SysUser user = SecurityUtils.getLoginUser().getUser();
|
|
|
+ Long tenantId = request.getHeader("tenantId") != null && !Objects.equals(request.getHeader("tenantId"), "0") ? Long.parseLong(request.getHeader("tenantId")) : null;
|
|
|
if (!user.isAdmin()) {
|
|
|
Field field = t.getClass().getDeclaredField("tenantId");
|
|
|
field.setAccessible(true);
|
|
|
- field.set(t, user.getTenantId());
|
|
|
+ field.set(t, tenantId);
|
|
|
}
|
|
|
}
|
|
|
+ protected Long getTenantId() {
|
|
|
+ return request.getHeader("tenantId") != null && !Objects.equals(request.getHeader("tenantId"), "0") ? Long.parseLong(request.getHeader("tenantId")) : null;
|
|
|
+ }
|
|
|
|
|
|
protected <T> boolean saveOrUpdateBatch(IService<T> service, List<T> newList, List<T> oldList) {
|
|
|
// 批量保存/跟新 新数据 避免使用 saveOrUpdate() 方法 数据量超过50条就很卡了
|