Prechádzať zdrojové kódy

Merge branch 'master' into feature-hejq-20190109

suntg 7 rokov pred
rodič
commit
32aa49b87b

+ 31 - 0
src/main/java/com/uas/platform/b2b/filter/SSOInterceptor.java

@@ -30,6 +30,7 @@ import org.apache.commons.collections.CollectionUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.cache.ehcache.EhCacheCacheManager;
 import org.springframework.http.HttpStatus;
 import org.springframework.mobile.device.Device;
 import org.springframework.mobile.device.DeviceResolver;
@@ -57,6 +58,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.Objects;
 import java.util.Set;
+import java.util.stream.Collectors;
 
 /**
  * 访问拦截
@@ -88,6 +90,9 @@ public class SSOInterceptor extends AbstractSSOInterceptor {
 	@Autowired
     private RoleDao roleDao;
 
+	@Autowired
+	EhCacheCacheManager cacheManager;
+
 	private final DeviceResolver deviceResolver = new LiteDeviceResolver();
 
     @Autowired
@@ -312,7 +317,9 @@ public class SSOInterceptor extends AbstractSSOInterceptor {
 				// 如果是从个人用户切换或者当前企业切换
 				boolean flag = null == user.getEnterprise() || !user.getEnterprise().getUu().equals(tokenUser.getSpaceUU());
 				if (!StringUtils.isEmpty(tokenUser.getSpaceUU()) && flag) {
+					user = getUserByToken(user, tokenUser);
 					user.setCurrentEnterprise(tokenUser.getSpaceUU());
+					request.getSession().setAttribute("user", user);
 				}
 			}
 		}
@@ -335,6 +342,30 @@ public class SSOInterceptor extends AbstractSSOInterceptor {
 		}
 	}
 
+	/**
+	 * 处理在商城注册企业并切换到新企业未同步到商城问题
+	 * @param user
+	 * @param tokenUser
+	 * @return
+	 */
+	private User getUserByToken(User user, UserAccount tokenUser) {
+		Set<Enterprise> enterprises = user.getEnterprises();
+		if (!CollectionUtils.isEmpty(enterprises)) {
+			List<Enterprise> correctEnterprises = enterprises.stream().filter(enter -> enter.getUu().equals(tokenUser.getSpaceUU())).collect(Collectors.toList());
+			if (CollectionUtils.isEmpty(correctEnterprises)) {
+				cacheManager.getCacheManager().clearAllStartingWith("com.uas.platform.b2b.model.User");
+				User current = userDao.findOne(tokenUser.getUserUU());
+				if (!StringUtils.isEmpty(current)) {
+					user = current;
+					logger.info("从数据库查找的企业:" + tokenUser.getSpaceUU());
+				} else {
+					logger.info("未查询到用户信息" + tokenUser.getUserUU());
+				}
+			}
+		}
+		return user;
+	}
+
     /**
      * 检验是否个人用户
      *

+ 3 - 0
src/main/webapp/resources/tpl/index/sale/order.html

@@ -146,6 +146,9 @@
 	font-weight: inherit;
 	top: -2px;
 }
+	.order-table .product div {
+		word-break: break-all;
+	}
 	.order-table .product div.text-over {
 		width: 340px;
 		white-space: nowrap;

+ 3 - 0
src/main/webapp/resources/tpl/index/sale/order_detail.html

@@ -1,4 +1,7 @@
 <style>
+	.order-bd .product {
+		word-break: break-all;
+	}
 	.order-bd .product .text-over{
 		display: inline-block;
 		width: 1200px;