Browse Source

Merge branch 'dev-mysql' into fearure-inuiry-message-hyy-20180502

# Conflicts:
#	src/main/java/com/uas/platform/b2c/external/erp/product/service/impl/KindServiceImpl.java
hubert 7 years ago
parent
commit
e13e3a0856
43 changed files with 811 additions and 183 deletions
  1. BIN
      jpg
  2. 0 5
      pom.xml
  3. 12 4
      src/main/java/com/uas/platform/b2c/common/account/controller/SecurityController.java
  4. 13 0
      src/main/java/com/uas/platform/b2c/common/account/model/Enterprise.java
  5. 9 0
      src/main/java/com/uas/platform/b2c/common/account/service/EnterpriseService.java
  6. 56 3
      src/main/java/com/uas/platform/b2c/common/account/service/impl/EnterpriseServiceImpl.java
  7. 31 5
      src/main/java/com/uas/platform/b2c/common/account/v2/service/impl/EnterpriseServiceImpl.java
  8. 1 0
      src/main/java/com/uas/platform/b2c/core/support/mq/PushUtils.java
  9. 1 0
      src/main/java/com/uas/platform/b2c/external/erp/product/service/impl/KindServiceImpl.java
  10. 2 2
      src/main/java/com/uas/platform/b2c/external/erp/product/util/ModelConverter.java
  11. 3 3
      src/main/java/com/uas/platform/b2c/prod/commodity/model/ProductReplace.java
  12. 1 2
      src/main/java/com/uas/platform/b2c/prod/commodity/service/impl/ProductServiceImpl.java
  13. 2 2
      src/main/java/com/uas/platform/b2c/prod/store/facade/impl/StoreApplyFacadeImpl.java
  14. 4 3
      src/main/java/com/uas/platform/b2c/prod/store/facade/impl/StoreInFacadeImpl.java
  15. 1 1
      src/main/java/com/uas/platform/b2c/prod/store/model/EnterpriseSimple.java
  16. 11 4
      src/main/java/com/uas/platform/b2c/prod/store/service/StoreInService.java
  17. 35 25
      src/main/java/com/uas/platform/b2c/prod/store/service/impl/StoreInServiceImpl.java
  18. 1 1
      src/main/java/com/uas/platform/b2c/trade/seek/service/impl/SeekPurchaseBomServiceImpl.java
  19. 1 0
      src/main/webapp/WEB-INF/spring/webmvc.xml
  20. 9 1
      src/main/webapp/WEB-INF/views/normal/adminWithNav.html
  21. 2 0
      src/main/webapp/resources/css/vendor/sell.css
  22. 70 0
      src/main/webapp/resources/data/profession.json
  23. BIN
      src/main/webapp/resources/img/all/dot.png
  24. 2 2
      src/main/webapp/resources/js/admin/controllers/AuditBrandDetailCtrl.js
  25. 1 0
      src/main/webapp/resources/js/usercenter/controllers/forstore/account_manager_ctrl.js
  26. 14 3
      src/main/webapp/resources/js/vendor/app.js
  27. 81 1
      src/main/webapp/resources/js/vendor/controllers/forstore/vendor_account_management_ctrl.js
  28. 1 1
      src/main/webapp/resources/js/vendor/controllers/forstore/vendor_brand_apply_ctrl.js
  29. 1 1
      src/main/webapp/resources/js/vendor/controllers/forstore/vendor_component_apply_ctrl.js
  30. 45 34
      src/main/webapp/resources/js/vendor/controllers/forstore/vendor_store_apply_ctrl.js
  31. 2 2
      src/main/webapp/resources/js/vendor/controllers/forstore/vendor_store_maintain_ctrl.js
  32. 2 2
      src/main/webapp/resources/view/admin/store/fragments/enterprise_info.html
  33. 2 2
      src/main/webapp/resources/view/admin/store_application_maintenance.html
  34. 2 2
      src/main/webapp/resources/view/common/store_header.html
  35. 1 1
      src/main/webapp/resources/view/store/default/contact.html
  36. 61 1
      src/main/webapp/resources/view/usercenter/forstore/account_manager.html
  37. 1 1
      src/main/webapp/resources/view/usercenter/forstore/store_focus.html
  38. 2 2
      src/main/webapp/resources/view/vendor/forstore/seekPurchase.html
  39. 229 53
      src/main/webapp/resources/view/vendor/forstore/vendor_account_management.html
  40. 12 11
      src/main/webapp/resources/view/vendor/forstore/vendor_store_apply.html
  41. 1 1
      src/main/webapp/resources/view/vendor/forstore/vendor_store_maintain.html
  42. 2 2
      src/main/webapp/resources/view/vendor/left_nav.html
  43. 84 0
      src/test/java/com/uas/platform/b2c/common/gor/GorTest.java

BIN
jpg


+ 0 - 5
pom.xml

@@ -73,11 +73,6 @@
 			<artifactId>b2c-erp-api</artifactId>
 			<version>0.0.2-SNAPSHOT</version>
 		</dependency>
-		<dependency>
-			<groupId>com.uas.api</groupId>
-			<artifactId>b2c-manage-api</artifactId>
-			<version>0.0.1</version>
-		</dependency>
 		<dependency>
 			<groupId>com.caucho</groupId>
 			<artifactId>hessian</artifactId>

+ 12 - 4
src/main/java/com/uas/platform/b2c/common/account/controller/SecurityController.java

@@ -496,7 +496,9 @@ public class SecurityController {
 							UserSpaceView userSpaceDetail = null;
 							try {
 								userSpaceDetail = AccountUtils.findByBusinessCode(tokenUser.getBusinessCode());
-							} catch (Exception e) { }
+							} catch (Exception e) {
+								e.printStackTrace();
+							}
 							if (null != userSpaceDetail) {
 								enterpriseService.update(userSpaceDetail);
 							}
@@ -526,7 +528,9 @@ public class SecurityController {
 							userLoginTime.setLoginTime(System.currentTimeMillis());
 							try {
 								userLoginTimeDao.save(userLoginTime);
-							}catch (Exception e){}
+							}catch (Exception e){
+								e.printStackTrace();
+							}
 							break;
 						}
 					}
@@ -567,7 +571,9 @@ public class SecurityController {
 							UserSpaceDetail userSpaceDetail = null;
 							try {
 								userSpaceDetail = com.uas.account.util.AccountUtils.findByBusinessCode(tokenUser.getSpaceUID());
-							} catch (Exception e) { }
+							} catch (Exception e) {
+								e.printStackTrace();
+							}
 							UserSpace userSpace = new UserSpace();
 							userSpace.setDialectUID(tokenUser.getSpaceDialectUID());
 							if (null != userSpaceDetail) {
@@ -599,7 +605,9 @@ public class SecurityController {
 							userLoginTime.setLoginTime(System.currentTimeMillis());
 							try {
 								userLoginTimeDao.save(userLoginTime);
-							}catch (Exception e){}
+							}catch (Exception e){
+								e.printStackTrace();
+							}
 							break;
 						}
 					}

+ 13 - 0
src/main/java/com/uas/platform/b2c/common/account/model/Enterprise.java

@@ -177,6 +177,11 @@ public class Enterprise implements Serializable {
 	@Column(name = "en_validcode")
 	private Short enValidCode;
 
+	/**
+	 * 企业经营范围;
+	 */
+	@Column(name = "en_Businessscope",columnDefinition = "TEXT")
+	private String enBusinessScope;
 
 	@Transient
 	private Integer receiptStatus;
@@ -470,4 +475,12 @@ public class Enterprise implements Serializable {
 		return this.enMallVendorStatus != null && Status.ENABLED.value() == this.enMallVendorStatus;
 	}
 
+
+	public String getEnBusinessScope() {
+		return enBusinessScope;
+	}
+
+	public void setEnBusinessScope(String enBusinessScope) {
+		this.enBusinessScope = enBusinessScope;
+	}
 }

+ 9 - 0
src/main/java/com/uas/platform/b2c/common/account/service/EnterpriseService.java

@@ -5,6 +5,8 @@ import com.uas.platform.b2c.common.account.model.Enterprise;
 import com.uas.platform.b2c.common.account.model.FormEnterprise;
 import com.uas.platform.b2c.common.account.model.User;
 import com.uas.platform.b2c.common.account.model.UserBaseInfo;
+import com.uas.platform.b2c.prod.store.model.EnterpriseSimple;
+import com.uas.platform.b2c.prod.store.model.StoreIn;
 import com.uas.platform.b2c.trade.support.ResultMap;
 
 import java.util.List;
@@ -81,5 +83,12 @@ public interface EnterpriseService {
 	ResultMap getEntelAndAdmintel(Long enUU);
 
 
+	/**
+	 * 企业和企业概要之间的转化;
+	 * @return 店铺信息
+	 */
+	EnterpriseSimple getNewEnterpriseSimple(Enterprise enterprise, StoreIn storeIn);
+
+
 
 }

+ 56 - 3
src/main/java/com/uas/platform/b2c/common/account/service/impl/EnterpriseServiceImpl.java

@@ -23,6 +23,7 @@ import com.uas.sso.entity.UserSpaceView;
 import com.uas.sso.entity.UserView;
 import com.uas.sso.util.AccountUtils;
 import org.apache.commons.collections.CollectionUtils;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.util.StringUtils;
@@ -115,14 +116,16 @@ public class EnterpriseServiceImpl implements EnterpriseService{
 		}
 	}
 
+
+
 	@Override
 	public Enterprise save(Enterprise enterprise) {
 		Enterprise existEnterprise = enterpriseDao.findOne(enterprise.getUu());
 		//更新店铺中的企业信息
 		List<StoreIn> storeIns = storeInDao.findByEnUU(enterprise.getUu());
 		for (StoreIn storeIn : storeIns) {
-            EnterpriseSimple enterpriseSimple = EnterpriseSimple.translateSimple(enterprise);
-			storeIn.setEnterprise(enterpriseSimple);
+			EnterpriseSimple newEnterprise = getNewEnterpriseSimple(enterprise, storeIn);
+			storeIn.setEnterprise(newEnterprise);
 			storeInDao.save(storeIn);
 		}
 		if (existEnterprise == null)
@@ -135,7 +138,57 @@ public class EnterpriseServiceImpl implements EnterpriseService{
 		}
 		return enterpriseDao.save(enterprise);
 	}
-
+	@Override
+	public EnterpriseSimple getNewEnterpriseSimple(Enterprise enterprise, StoreIn storeIn) {
+		EnterpriseSimple newEnterprise;
+		newEnterprise = new EnterpriseSimple();
+		EnterpriseSimple enterpriseOld = storeIn.getEnterprise();
+		BeanUtils.copyProperties(enterpriseOld,newEnterprise);
+		if (enterpriseOld != null) {
+            if (enterprise.getEnName() !=null) {
+                newEnterprise.setEnName(enterprise.getEnName());
+            }
+            if (enterprise.getEnAddress() !=null) {
+                newEnterprise.setEnAddress(enterprise.getEnAddress());
+            }
+            if (enterprise.getEnFax() !=null) {
+                newEnterprise.setEnFax(enterprise.getEnFax());
+            }
+            if (enterprise.getEnTel() !=null) {
+                newEnterprise.setEnTel(enterprise.getEnTel());
+            }
+            if (enterprise.getEnType() !=null) {
+                newEnterprise.setEnType(enterprise.getEnType());
+            }
+            if (enterprise.getEnBussinessCode() !=null) {
+                newEnterprise.setEnBusinessCode(enterprise.getEnBussinessCode());
+            }
+            if (enterprise.getEnDate() !=null) {
+                newEnterprise.setEnDate(enterprise.getEnDate());
+            }
+            if (enterprise.getEnUrl() !=null) {
+                newEnterprise.setEnUrl(enterprise.getEnUrl());
+            }
+            if (enterprise.getEnLogoUrl() !=null) {
+                newEnterprise.setEnLogoUrl(enterprise.getEnLogoUrl());
+            }
+            if (enterprise.getEnEmail() !=null) {
+                newEnterprise.setEnLogoUrl(enterprise.getEnEmail());
+            }
+            if (enterprise.getEnPhone() !=null) {
+                newEnterprise.setEnLogoUrl(enterprise.getEnPhone());
+            }
+            if (enterprise.getEnWeixin() !=null) {
+                newEnterprise.setEnLogoUrl(enterprise.getEnWeixin());
+            }
+            if (enterprise.getEnQQ() !=null) {
+                newEnterprise.setEnLogoUrl(enterprise.getEnQQ());
+            }
+        } else {
+            newEnterprise = EnterpriseSimple.translateSimple(enterprise);
+        }
+		return newEnterprise;
+	}
 
 
 	private void postToAccountCenter(Enterprise enterprise) throws Exception {

+ 31 - 5
src/main/java/com/uas/platform/b2c/common/account/v2/service/impl/EnterpriseServiceImpl.java

@@ -10,6 +10,9 @@ import com.uas.platform.b2c.common.account.model.User;
 import com.uas.platform.b2c.common.account.v2.service.EnterpriseService;
 import com.uas.platform.b2c.core.support.log.UsageBufferedLogger;
 import com.uas.platform.b2c.fa.payment.utils.StringUtils;
+import com.uas.platform.b2c.prod.store.dao.StoreInDao;
+import com.uas.platform.b2c.prod.store.model.EnterpriseSimple;
+import com.uas.platform.b2c.prod.store.model.StoreIn;
 import com.uas.platform.core.logging.BufferedLoggerManager;
 import com.uas.sso.entity.UserSpaceView;
 import org.apache.commons.collections.CollectionUtils;
@@ -28,8 +31,13 @@ public class EnterpriseServiceImpl implements EnterpriseService {
 	@Autowired
 	private EnterpriseDao enterpriseDao;
 
+    @Autowired
+	private com.uas.platform.b2c.common.account.service.EnterpriseService enterpriseService;
+
 	@Autowired
     private UserDao userDao;
+    @Autowired
+	private StoreInDao storeInDao;
 
     private static final UsageBufferedLogger logger = BufferedLoggerManager.getLogger(UsageBufferedLogger.class);
 
@@ -61,7 +69,13 @@ public class EnterpriseServiceImpl implements EnterpriseService {
         enterprise.setEnCorporation(userSpaceView.getCorporation());
         enterprise.setEnBussinessCode(userSpaceView.getBusinessCode());
        // enterprise.setEnFax(userSpaceView.);
-        enterprise.setEnTel(userSpaceView.getTelephone());
+        String enTel = enterprise.getEnTel();
+        if (enTel == null) {
+            enterprise.setEnTel(userSpaceView.getTelephone());
+            if (userSpaceView.getTelephone() == null) {
+                enterprise.setEnTel(userSpaceView.getAdmin().getMobile());
+            }
+        }
         //enterprise.setEnEmail(userSpaceView.get());
         //enterprise.setEnIndustry(userSpaceView.());
         enterprise.setEnName(userSpaceView.getSpaceName());
@@ -81,17 +95,27 @@ public class EnterpriseServiceImpl implements EnterpriseService {
                 adminUser = users.get(0);
             }
         }
-
         // 保存新注册企业与用户的关联关系
         if (adminUser != null) {
             adminUser.addEnterprise(newEn);
             userDao.save(adminUser);
         }
-
         if(oldenterprise != null && oldenterprise.getUu() != null) {
-            logger.log("更新企业信息", enterprise.getUu()+"time: " + sdf.format(new Date()), enterprise.getUu(), 0L);
+            try {
+                List<StoreIn> storeIns = storeInDao.findByEnUU(enterprise.getUu());
+                if (storeIns != null && storeIns.size() > 0) {
+                    StoreIn storeIn = storeIns.get(0);
+                    EnterpriseSimple newEnterpriseSimple = enterpriseService.getNewEnterpriseSimple(enterprise, storeIn);
+                    storeIn.setEnterprise(newEnterpriseSimple);
+                    storeIn.setStoreName(enterprise.getEnName());
+                    storeInDao.save(storeIn);
+                }
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+            logger.log("更新企业信息", enterprise.getUu()+"time: " + sdf.format(new Date()), enterprise.getEnAdminuu(), 0L);
         } else {
-            logger.log("新增企业信息", enterprise.getUu()+"time: " + sdf.format(new Date()), enterprise.getUu(), 0L);
+            logger.log("新增企业信息", enterprise.getUu()+"time: " + sdf.format(new Date()), enterprise.getEnAdminuu(), 0L);
         }
     }
 
@@ -158,4 +182,6 @@ public class EnterpriseServiceImpl implements EnterpriseService {
 
 
 
+
+
 }

+ 1 - 0
src/main/java/com/uas/platform/b2c/core/support/mq/PushUtils.java

@@ -69,6 +69,7 @@ public class PushUtils {
 			// 调用推送接口
 			Pusher.push(params);
 		} catch (UnsupportedEncodingException e) {
+			e.printStackTrace();
 		}
 		// }
 		// }

+ 1 - 0
src/main/java/com/uas/platform/b2c/external/erp/product/service/impl/KindServiceImpl.java

@@ -108,6 +108,7 @@ public class KindServiceImpl implements KindService {
         }
         return kindPropertyUas;
     }
+
     @Override
     public Map<String, List<KindUas>> getParentsByKindCode(String kindCode) {
         Map<Long, Kind> maps = new HashMap<>();

+ 2 - 2
src/main/java/com/uas/platform/b2c/external/erp/product/util/ModelConverter.java

@@ -567,8 +567,8 @@ public class ModelConverter {
         productReplace.setErpId(replace.getBPR_ID());
         //设置替代关系状态
         productReplace.setStatus(replace.getBPR_STATUSCODE());
-        //设置物料号
-        productReplace.setProductId(replace.getBPR_PRODCODE());
+        //TODO 设置物料号
+        productReplace.setProductId(Long.parseLong(replace.getBPR_PRODCODE()));
         //设置替代料号
         productReplace.setReplaceId(replace.getBPR_REPCODE());
         //设置原品牌

+ 3 - 3
src/main/java/com/uas/platform/b2c/prod/commodity/model/ProductReplace.java

@@ -48,7 +48,7 @@ public class ProductReplace implements Serializable{
      * 物料id
      */
     @Column(name = "ptr_prid")
-    private String productId;
+    private Long productId;
 
     /***
      * 替代料号
@@ -155,11 +155,11 @@ public class ProductReplace implements Serializable{
         this.userUU = userUU;
     }
 
-    public String getProductId() {
+    public Long getProductId() {
         return productId;
     }
 
-    public void setProductId(String productId) {
+    public void setProductId(Long productId) {
         this.productId = productId;
     }
 

+ 1 - 2
src/main/java/com/uas/platform/b2c/prod/commodity/service/impl/ProductServiceImpl.java

@@ -422,8 +422,7 @@ public class ProductServiceImpl implements ProductService {
         }
         Date date = new Date();
         // 删除原有的替代料数据
-        List<ProductReplace> existReplaces = productReplaceDao.findByProductIdOrderByDetno(productId);
-        productReplaceDao.delete(existReplaces);
+        productReplaceDao.deleteByProductId(productId);
         for (ProductReplace productReplace : productReplaceList) {
             if (productReplace.getUserUU() == null) {
                 productReplace.setUserUU(SystemSession.getUser().getUserUU());

+ 2 - 2
src/main/java/com/uas/platform/b2c/prod/store/facade/impl/StoreApplyFacadeImpl.java

@@ -116,9 +116,9 @@ public class StoreApplyFacadeImpl implements StoreApplyFacade {
 
 		storeApplyService.handlerApply(storeApply);
 		//自动确认开通店铺;
-	/*	if (StoreApply.ApplyStatus.PASS == status) {
+		if (StoreApply.ApplyStatus.PASS == status) {
 			this.autoConfirmOpenStore(uuid, storeApply);
-		}*/
+		}
 		return ResultMap.success(null);
 	}
 

+ 4 - 3
src/main/java/com/uas/platform/b2c/prod/store/facade/impl/StoreInFacadeImpl.java

@@ -67,9 +67,7 @@ public class StoreInFacadeImpl implements StoreInFacade {
 		if (resultMap != null) {
 			return resultMap;
 		}
-
 		Set<Qualification> qualifications = store.getQualifications();
-
 		if (!CollectionUtils.isEmpty(qualifications)) {
 			Iterator<Qualification> iterator = qualifications.iterator();
 			while (iterator.hasNext()) {
@@ -91,8 +89,11 @@ public class StoreInFacadeImpl implements StoreInFacade {
             enter.setEnQQ(store.getEnterprise().getEnQQ());
             enterpriseDao.save(enter);
         }
-
         store = storeInDao.save(store);
+		Set<Qualification> qualificationsSort = storeInService.getQualificationsSort();
+		Set<Qualification> qualificationsPo= store.getQualifications();
+		qualificationsSort.addAll(qualificationsPo);
+		store.setQualifications(qualificationsSort);
 		return ResultMap.success(store);
 	}
 

+ 1 - 1
src/main/java/com/uas/platform/b2c/prod/store/model/EnterpriseSimple.java

@@ -230,7 +230,7 @@ public class EnterpriseSimple {
 		simple.enName = enterprise.getEnName();
 		simple.enShortname = enterprise.getEnShortname();
 		simple.enAddress = enterprise.getEnAddress();
-		simple.address = enterprise.getEnAddress();
+		//simple.address = enterprise.getEnAddress();
 		simple.enFax = enterprise.getEnFax();
 		simple.enTel = enterprise.getEnTel();
 		simple.enType = enterprise.getEnType();

+ 11 - 4
src/main/java/com/uas/platform/b2c/prod/store/service/StoreInService.java

@@ -2,10 +2,7 @@ package com.uas.platform.b2c.prod.store.service;
 
 import com.alibaba.fastjson.JSONObject;
 import com.uas.platform.b2c.advertise.ad.model.StoreAdsType;
-import com.uas.platform.b2c.prod.store.model.StoreApply;
-import com.uas.platform.b2c.prod.store.model.StoreIn;
-import com.uas.platform.b2c.prod.store.model.StoreStatus;
-import com.uas.platform.b2c.prod.store.model.StoreType;
+import com.uas.platform.b2c.prod.store.model.*;
 import com.uas.platform.b2c.trade.support.ResultMap;
 import com.uas.platform.core.model.PageInfo;
 import org.springframework.data.domain.Page;
@@ -13,6 +10,7 @@ import org.springframework.data.domain.Pageable;
 
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 
 public interface StoreInService {
 
@@ -190,4 +188,13 @@ public interface StoreInService {
 	 * @return
 	 */
 	Map<String, JSONObject> getContactInfo(List<String> storeids);
+
+	/**
+	 * 给企业资质排序;
+	 * @param
+	 * @return
+	 */
+	Set<Qualification> getQualificationsSort();
+
+
 }

+ 35 - 25
src/main/java/com/uas/platform/b2c/prod/store/service/impl/StoreInServiceImpl.java

@@ -168,22 +168,51 @@ public class StoreInServiceImpl implements StoreInService {
 		if (enUU == null) {
 			return null;
 		}
-
 		List<StoreIn> storeIns = storeDao.findByEnUU(enUU);
 		if(CollectionUtils.isEmpty(storeIns)) {
 			return null;
 		}else {
+			StoreIn returnStoreIn;
 			StoreIn storeInsOne = storeIns.get(0);
-			EnterpriseSimple enterpriseSimple = EnterpriseSimple.translateSimple(SystemSession.getUser().getEnterprise());
+			/*EnterpriseSimple enterpriseSimple = EnterpriseSimple.translateSimple(SystemSession.getUser().getEnterprise());
 			if (enterpriseSimple.getEnName().equals(storeInsOne.getEnterprise().getEnName())) {
-				return storeInsOne;
+				returnStoreIn = storeInsOne;
 			} else {
 				storeInsOne.setEnterprise(enterpriseSimple);
-				return storeDao.save(storeInsOne);
-			}
+				returnStoreIn = storeDao.save(storeInsOne);
+			}*/
+			returnStoreIn = storeInsOne;
+			Set<Qualification> qualifications = returnStoreIn.getQualifications();
+			Set<Qualification> qualificationsSort = getQualificationsSort();
+			qualificationsSort.addAll(qualifications);
+			returnStoreIn.setQualifications(qualificationsSort);
+			return returnStoreIn;
 		}
 	}
 
+	public Set<Qualification> getQualificationsSort() {
+		return new TreeSet<Qualification>(new Comparator()
+            {
+                public int compare(Object o1, Object o2) {
+                    Qualification time1 = (Qualification)o1;
+                    Qualification time2 = (Qualification)o2;
+                    if (time1.getId().intValue() > time2.getId().intValue())
+                    {
+                        return 1;
+                    }
+                    else if (time1.getId().intValue() == time2.getId().intValue())
+                    {
+                        return 0;
+                    }
+                    else
+                    {
+                        return -1;
+                    }
+                }
+
+            });
+	}
+
 	@Override
 	public String findUUidByEnUU(Long enUU) {
 		if (enUU == null) {
@@ -212,26 +241,7 @@ public class StoreInServiceImpl implements StoreInService {
 		logger.info("Start to execute find.");
 		StoreIn store = storeDao.findByUuid(uuid);
 		// 为了给前端返回一致的顺序
-		Set<Qualification> qualifications = new TreeSet<Qualification>(new Comparator()
-		{
-			public int compare(Object o1, Object o2) {
-				Qualification time1 = (Qualification)o1;
-				Qualification time2 = (Qualification)o2;
-				if (time1.getId().intValue() > time2.getId().intValue())
-				{
-					return 1;
-				}
-				else if (time1.getId().intValue() == time2.getId().intValue())
-				{
-					return 0;
-				}
-				else
-				{
-					return -1;
-				}
-			}
-
-		});
+		Set<Qualification> qualifications = getQualificationsSort();
 		if (!CollectionUtils.isEmpty(store.getQualifications())) {
 			qualifications.addAll(store.getQualifications());
 		}

+ 1 - 1
src/main/java/com/uas/platform/b2c/trade/seek/service/impl/SeekPurchaseBomServiceImpl.java

@@ -244,7 +244,7 @@ public class SeekPurchaseBomServiceImpl implements SeekPurchaseBomService {
         if (StringUtils.isEmpty(codeValue)) {
             result += 1;
         } else {
-            String code = StringUtilB2C.replaceLineBreak(StringUtilB2C.getStr(codeValue));
+            String code = StringUtilB2C.getStr(codeValue).trim();
             try {
                 code = com.uas.platform.b2c.fa.payment.utils.StringUtils.cutOutString(code, 100);
                 if (!match(code)) {

+ 1 - 0
src/main/webapp/WEB-INF/spring/webmvc.xml

@@ -117,6 +117,7 @@
 			<mvc:exclude-mapping path="/seek/getSeekRanking"/>
 			<mvc:exclude-mapping path="/seek/release/template"/>
 			<mvc:exclude-mapping path="/erp/productReplace/update"/>
+			<mvc:exclude-mapping path="/basic/enterprise/findByName/**"/>
 			<bean class="com.uas.platform.b2c.core.filter.SSOInterceptor"></bean>
 		</mvc:interceptor>
 		<!-- 对所有的请求拦截,将Session中的User信息设置进SystemSession -->

+ 9 - 1
src/main/webapp/WEB-INF/views/normal/adminWithNav.html

@@ -397,7 +397,15 @@
 				<div class="span7" style="padding: 20px;">
 					<p class="help-block">提示:选择的图片单张大小不超过3MB,支持jpg,jpeg,gif,bmp,png</p>
 					<div class="upload-container" ng-disabled="getImages().length == images.length">
-						<div id="uploadify" on-success="onUploadSuccess($data)" uploadify="{buttonText:'选择图片'}"></div>
+						<!--<div id="uploadify" on-success="onUploadSuccess($data)" uploadify="{buttonText:'选择图片'}"></div>-->
+						<div image-upload
+								 on-success="onUploadSuccess($data)"
+								 non-preview="true"
+								 data-src="static/img/example/upload-apply.png"
+						>
+
+						</div>
+						<!--<input id="uploadify"  type="file" value="选择图片" onchange="angular.element(this).scope().onUploadSuccess(this.files)()" />-->
 					</div>
 				</div>
 				<div class="span5">

+ 2 - 0
src/main/webapp/resources/css/vendor/sell.css

@@ -4658,6 +4658,8 @@ body {
     position: relative;
     width: 100%;
     display: inline-block;
+    word-break: break-all;
+    word-wrap: break-word;
 }
 .count_basic ul li div.fr span i {
     float: left;

+ 70 - 0
src/main/webapp/resources/data/profession.json

@@ -0,0 +1,70 @@
+{"IT|通信|电子|互联网":[
+  "互联网/电子商务",
+  "计算机软件",
+  "IT服务(系统/数据/维护)",
+  "电子技术/半导体/集成电路",
+  "计算机硬件",
+  "通信/电信/网络设备",
+  "通信/电信运营、增值服务",
+  "网络游戏"],
+  "金融业":[
+    "基金/证券/期货/投资",
+    "保险",
+    "银行",
+    "信托/担保/拍卖/典当"],
+  "房地产|建筑业":{
+      "房地产/建筑/建材/工程": [
+        "房地产金融服务类",
+        "房地产工程施工类",
+        "房地产工程货物类"
+      ],
+      "家居/室内设计/装饰装潢": "家居/室内设计/装饰装潢",
+      "物业管理/商业中心": "物业管理/商业中心"
+  },
+  "商业服务":[
+    "专业服务/咨询(财会/法律/人力资源等)",
+    "广告/会展/公关",
+    "中介服务",
+    "检验/认证",
+    "外包服务"],
+  "贸易|批发|零售|租赁业":[
+    "快速消费品(食品/饮料/烟酒/日化)",
+    "耐用消费品(服饰/纺织/皮革/家具/家电)",
+    "贸易/进出口",
+    "零售/批发",
+    "租赁服务"],
+  "文体教育|工艺美术":[
+    "教育/培训/院校",
+    "礼品/玩具/工艺美术/收藏品/奢侈品"],
+  "生产|加工|制造":[
+    "汽车/摩托车",
+    "大型设备/机电设备/重工业",
+    "加工制造(原料加工/模具)",
+    "仪器仪表及工业自动化",
+    "印刷/包装/造纸",
+    "办公用品及设备",
+    "医药/生物工程",
+    "医疗设备/器械",
+    "航空/航天研究与制造"],
+  "交通|运输|物流|仓储":[
+    "交通/运输",
+    "物流/仓储"],
+  "服务业":[
+    "医疗/护理/美容/保健/卫生服务",
+    "酒店/餐饮",
+    "旅游/度假"],
+  "文化|传媒|娱乐|体育":[
+    "媒体/出版/影视/文化传播",
+    "娱乐/体育/休闲"],
+  "能源|矿产|环保":[
+    "能源/矿产/采掘/冶炼",
+    "石油/石化/化工",
+    "电气/电力/水利",
+    "环保"],
+  "政府|非盈利机构":[
+    "政府/公共事业/非盈利机构",
+    "学术/科研"],
+  "农|林|牧|渔|其他":[
+    "农/林/牧/渔",
+    "跨领域经营",
+    "其他"]}

BIN
src/main/webapp/resources/img/all/dot.png


+ 2 - 2
src/main/webapp/resources/js/admin/controllers/AuditBrandDetailCtrl.js

@@ -198,10 +198,10 @@ define([ 'app/app' ], function(app) {
 		$scope.onUploadSuccess = function(data){
 			var path = data.path;
 			path = path.substring(0, path.lastIndexOf('.')) + "_150x90" + path.substr(path.lastIndexOf('.'));
-			$scope.$apply(function(){
+			// $scope.$apply(function(){
 				$scope.image.src = data.path;
 				$scope.image.thumb = path;
-			});
+			// });
 		};
 		$scope.close = function() {
 			$modalInstance.dismiss();

+ 1 - 0
src/main/webapp/resources/js/usercenter/controllers/forstore/account_manager_ctrl.js

@@ -37,6 +37,7 @@ define(['app/app'], function (app) {
             Enterprise.getEnterpriseInfo({enuu: $scope.userInfo.enterprise.uu},
                 function (data) {
                   $scope.enterpriseInfo = data;
+                  $scope.enBusinessScope = $scope.enterpriseInfo.enBusinessScope ? $scope.enterpriseInfo.enBusinessScope.split(',') : [];
                   if (!$scope.enterpriseInfo.enAddress) {
                     $scope.enterpriseInfo.enAddress = "暂无信息";
                   }

+ 14 - 3
src/main/webapp/resources/js/vendor/app.js

@@ -639,10 +639,9 @@ define([ 'angularAMD', 'ngLocal', 'common/services', 'common/directives', 'commo
 		}
 	});
 
-	app.run(['$rootScope', '$state', '$q', 'BaseService', 'StoreInfo', '$location', function($rootScope, $state, $q, BaseService, StoreInfo, $location) {
+	app.run(['$rootScope', '$state', '$q', 'BaseService', 'StoreInfo', '$location', 'AuthenticationService', 'toaster', function($rootScope, $state, $q, BaseService, StoreInfo, $location, AuthenticationService, toaster) {
 		$rootScope.rootPath = BaseService.getRootPath();
 		$rootScope.page = 'vendor';// 导航栏状态,'个人中心'状态激活
-
 		var getToStateName = function () {
 			if ($rootScope.store && (!$rootScope.store.status || $rootScope.store.status === 'OPENED')) {
 				return 'vendor_store_maintain';
@@ -690,7 +689,19 @@ define([ 'angularAMD', 'ngLocal', 'common/services', 'common/directives', 'commo
 			}
 
 			if ($rootScope.applyStatus === 'NONE' && $location.$$path === '/index') {
-				$state.go('vendor_store_apply');
+                AuthenticationService.getAuthentication().success(function (data) {
+                    angular.forEach(data.enterprises, function (item) {
+                        if (item.current) {
+                            data.enterprise = item;
+                        }
+                    });
+                    $rootScope.userInfo = data;
+                    if (!(!data.pwdEnable || !data.haveUserQuestion||!data.emailValidCode || data.emailValidCode != 2)) {
+                        $state.go('vendor_store_apply');
+                    }
+                }).error(function (error) {
+                    toaster.pop('error', '获取登录信息失败');
+                })
 			}
 
 			$rootScope.$on('$stateChangeStart', function (event, toState) {

+ 81 - 1
src/main/webapp/resources/js/vendor/controllers/forstore/vendor_account_management_ctrl.js

@@ -121,6 +121,7 @@ define(['app/app'], function(app) {
 			// 获取企业信息
 			Enterprise.getEnterpriseInfo({enuu : $scope.userInfo.enterprise.uu}, function(data) {
 				$scope.enterpriseInfo = data;
+                $scope.enBusinessScope = $scope.enterpriseInfo.enBusinessScope ? angular.copy($scope.enterpriseInfo.enBusinessScope).split(',') : [];
 				$scope.enterpriseInfoBackup = angular.copy($scope.enterpriseInfo);
 				$scope.enAdminuu = $scope.enterpriseInfo.enAdminuu;
 				User.getUserByUU({uu: $scope.enAdminuu}, {}, function(data){
@@ -129,7 +130,7 @@ define(['app/app'], function(app) {
 				}, function(){
 					toaster.pop('error', '获取管理员信息失败');
 				});
-			},function(response) {
+			},function() {
 				toaster.pop('error', '获取企业信息失败');
 			});
 		}
@@ -351,10 +352,88 @@ define(['app/app'], function(app) {
             return flag;
           }
 
+          // 获取行业信息
+        $http.get('static/data/profession.json').success(function (data) {
+            $scope.list = data;
+        });
+
+        // 选择行业
+        $scope.profession = new Array();
+        $scope.showProfession = false;
+        $scope.selectProfession = function () {
+            $scope.professionArray = [];
+            $scope.active = [];
+            $scope.showProfession = !$scope.showProfession;
+            $scope.profession[0] = $scope.list;
+        };
+
+        $scope.isInList = false;
+        $scope.isInInput = false;
+        $scope.hideList = function () {
+            if (!$scope.isInList && !$scope.isInInput && $scope.showProfession) {
+                $scope.showProfession = false;
+            }
+        };
+
+        $scope.enterInput = function () {
+            $scope.isInInput = true;
+        };
+
+        $scope.leaveInput = function () {
+            $scope.isInInput = false;
+        };
+
+        $scope.enterList = function () {
+            $scope.isInList = true;
+        };
+
+        $scope.leaveList = function () {
+            $scope.isInList = false;
+        };
+
+        // 行业子菜单点击
+        $scope.onItemClick = function (key, index, value) {
+            $scope.active[index] = key;
+            if (angular.isString(value)){ // 值为字符串说明点击的是最后一级
+                $scope.enterpriseInfo.enIndustry = value;
+                $scope.showProfession = false;
+                return;
+            }
+            $scope.professionArray = [];
+            $scope.profession.splice(index+1);
+            if (angular.isArray(value)){ // 值为数组说明下一级是最后一级
+                $scope.professionArray = value;
+            } else if (angular.isObject(value)) {
+                $scope.profession[index+1] = value;
+            }
+        };
+
+        // 判断值是否为字符串
+        $scope.isString = function (value) {
+            return angular.isString(value);
+        };
+
+        // 增加经营范围内容标签
+        $scope._scope = $scope
+        $scope.addBusinessScope = function () {
+            if(!$scope.businessScope) return false;
+            if($scope.enBusinessScope.length > 20) {
+                toaster.pop('error', '经营范围内容标签不能超过20个!');
+                return false;
+            }
+            $scope.enBusinessScope.push($scope.businessScope);
+            $scope.businessScope = '';
+        }
+
+        // 删除选择的内容标签
+        $scope.clearBusinessScope = function (key) {
+            $scope.enBusinessScope.splice(key, 1);
+        }
           /**
            * 保存企业信息
            */
           $scope.saveUpdate = function () {
+              $scope.enterpriseInfo.enBusinessScope = $scope.enBusinessScope.join(',');
             // 先检查信息是否为空
             if (angular.equals($scope.enterpriseInfo,
                     $scope.enterpriseInfoBackup)) {
@@ -367,6 +446,7 @@ define(['app/app'], function(app) {
               toaster.pop('error', '请补充完信息后再次提交');
               return;
             }
+
             Enterprise.updateEnterpriseInfo(
                 {enuu: $scope.userInfo.enterprise.uu}, $scope.enterpriseInfo,
                 function () {

+ 1 - 1
src/main/webapp/resources/js/vendor/controllers/forstore/vendor_brand_apply_ctrl.js

@@ -239,7 +239,7 @@ define(['app/app', 'jquery-uploadify'], function(app) {
 
             brand.id = null;
             BrandSubmit.submit({},brand,function(data){
-                toaster.pop('success', '提示', "提交成功,请等待审核");
+                toaster.pop('success', '提示', "提交成功,审核将在3个工作日内完成,耐心等待");
                 window.location.replace('vendor#/brand/apply_list');
             },function(res){
                 $scope.submitEnable = true;

+ 1 - 1
src/main/webapp/resources/js/vendor/controllers/forstore/vendor_component_apply_ctrl.js

@@ -401,7 +401,7 @@ define(['app/app', 'jquery-uploadify'], function(app) {
                     component: $scope.component
                 }
             }).success(function(data){
-                toaster.pop('success', '提示', '提交成功,请等待审核');
+                toaster.pop('success', '提示', '提交成功,审核将在3个工作日内完成,耐心等待');
                 window.location.replace('vendor#/component/applylist');
             }).error(function(response){
                 $scope.submitEnable = true;

+ 45 - 34
src/main/webapp/resources/js/vendor/controllers/forstore/vendor_store_apply_ctrl.js

@@ -50,41 +50,51 @@ define(['app/app', 'jquery-uploadify'], function (app) {
 		 */
 		function activate() {
 			// 获取企业信息
-			var enterprise = $rootScope.userInfo.enterprise;
-			Enterprise.getEnterpriseInfo({ enuu : enterprise.uu}, {}, function (enterprise) {
-				$scope.enterprise = enterprise || {};
-
-				StoreInfo.findLastUnPassApplyByEnuu({}, {}, function (result) {
-					console.log('UN_PASS_APPLY', result);
-					if (result) {
-						switchTab(result.type);
-						if (result.qualifications) {
-							angular.forEach(result.qualifications, function (qualification) {
-								$scope.qualifications[qualification.type] = qualification;
-							});
-						}else {
-							Enterprise.getEnterpriseDetailInfo({ enuu : enterprise.uu},{},function (enterpriseDetail) {
-								$scope.enBuinesssCode = enterpriseDetail.businessCodeImage;
-                                $scope.qualifications[$scope.qType.businessLicense] = generateQualification($scope.enBuinesssCode, $scope.qType.businessLicense);;
-                            });
-						}
-						if (result.brands) {
-							$scope.brands = [];
-							angular.forEach(result.brands, function (brand) {
-								var newBrand = {};
-								newBrand.name = brand.name;
-								newBrand.url = brand.url;
-								$scope.brands.push(newBrand);
-							});
-						}
-						$scope.reason = result.reason;
+			AuthenticationService.getAuthentication().success(function (data) {
+				angular.forEach(data.enterprises, function (item) {
+					if (item.current) {
+						data.enterprise = item;
 					}
-				}, function (error) {
-					console.log('INITIAL_ERROR', error);
 				});
-			}, function () {
-				toaster.pop('error', '获取企业信息失败');
-			});
+				$rootScope.userInfo = data;
+				var enterprise = $rootScope.userInfo.enterprise;
+				Enterprise.getEnterpriseInfo({ enuu : enterprise.uu}, {}, function (enterprise) {
+					$scope.enterprise = enterprise || {};
+
+					StoreInfo.findLastUnPassApplyByEnuu({}, {}, function (result) {
+						console.log('UN_PASS_APPLY', result);
+						if (result) {
+							switchTab(result.type);
+							if (result.qualifications) {
+								angular.forEach(result.qualifications, function (qualification) {
+									$scope.qualifications[qualification.type] = qualification;
+								});
+							}else {
+								Enterprise.getEnterpriseDetailInfo({ enuu : enterprise.uu},{},function (enterpriseDetail) {
+									$scope.enBuinesssCode = enterpriseDetail.businessCodeImage;
+									$scope.qualifications[$scope.qType.businessLicense] = generateQualification($scope.enBuinesssCode, $scope.qType.businessLicense);;
+								});
+							}
+							if (result.brands) {
+								$scope.brands = [];
+								angular.forEach(result.brands, function (brand) {
+									var newBrand = {};
+									newBrand.name = brand.name;
+									newBrand.url = brand.url;
+									$scope.brands.push(newBrand);
+								});
+							}
+							$scope.reason = result.reason;
+						}
+					}, function (error) {
+						console.log('INITIAL_ERROR', error);
+					});
+				}, function () {
+					toaster.pop('error', '获取企业信息失败');
+				});
+			}).error(function (error) {
+				toaster.pop('error', '获取登录信息失败');
+			})
 		}
 		// 获取已登录的用户信息
 		var getAuthentication = function() {
@@ -469,7 +479,8 @@ define(['app/app', 'jquery-uploadify'], function (app) {
 					toaster.pop('success', '感谢您对优软商城的支持,我们会尽快对您提交的信息进行审核,预计审核时间为3个工作日,审核结果将以站内消息及邮件形式通知您!');
 					$rootScope.applyStatus = 'PREPARE';
 					$timeout(function () {
-						window.location.reload();
+						//window.location.href=$scope.rootPath+'/vendor#/store-apply/wait';
+                        $state.go('vendor_store_wait');
 					}, 1000);
 				} else {
 					if (result.code == 6) {

+ 2 - 2
src/main/webapp/resources/js/vendor/controllers/forstore/vendor_store_maintain_ctrl.js

@@ -81,7 +81,7 @@ define(['app/app'], function (app) {
             $scope.sampleStore.enQQ = '';
 
 			$scope.sampleStore.enterprise = angular.copy($scope.storeInfo.enterprise);
-			$scope.sampleStore.enterprise.address = $scope.sampleStore.enterprise.address || $scope.storeInfo.enterprise.enAddress;
+			$scope.sampleStore.enterprise.address = $scope.sampleStore.enterprise.address;
 			qulifications = angular.copy($scope.storeInfo.qualifications);
 			$scope.sampleStore.qualifications = qulifications.filter(function (qualification) {
 				return qualification && qualification.type == 'APTITUDE';
@@ -165,7 +165,7 @@ define(['app/app'], function (app) {
                 $scope.sampleStore.storeName = $scope.storeInfo.storeName;
 				$scope.sampleStore.description = $scope.storeInfo.description;
 				$scope.sampleStore.enterprise = angular.copy($scope.storeInfo.enterprise);
-				$scope.sampleStore.enterprise.address = $scope.sampleStore.enterprise.address || $scope.storeInfo.enterprise.enAddress;
+				$scope.sampleStore.enterprise.address = $scope.sampleStore.enterprise.address;
 				return $scope.closeEdit(module);
 			}
 			if (module == 'QUALIFICATIONS') {

+ 2 - 2
src/main/webapp/resources/view/admin/store/fragments/enterprise_info.html

@@ -223,8 +223,8 @@
 			<div class="col-md-4" ng-bind="store.auditInfo.representative"></div>
 		</div>
 		<div class="row">
-			<div class="col-md-2">企业简称</div>
-			<div class="col-md-4" ng-bind="store.enterprise.enShortname">优软商城</div>
+		<!--	<div class="col-md-2">企业简称</div>
+			<div class="col-md-4" ng-bind="store.enterprise.enShortname">优软商城</div>-->
 			<div class="col-md-2">信用代码</div>
 			<div class="col-md-4" ng-bind="store.auditInfo.creditCode">231313654541521313</div>
 		</div>

+ 2 - 2
src/main/webapp/resources/view/admin/store_application_maintenance.html

@@ -202,7 +202,7 @@
 			<tr>
 				<th width="50">序号</th>
 				<th>店铺名称</th>
-				<th>店铺简称</th>
+			<!--	<th>店铺简称</th>-->
 				<th>店铺类型</th>
 				<th>
 					<p ng-click="changeShorting()" style="margin: 0;">申请日期
@@ -220,7 +220,7 @@
 			<tr ng-repeat="application in $data ">
 				<td ng-bind="$index + (applicationTableParams.page()-1 )* 10 + 1"></td>
 				<td ng-bind="application.storeName" class="text-left"></td>
-				<td ng-bind="application.storeShortName"></td>
+				<!--<td ng-bind="application.storeShortName"></td>-->
 				<td ng-bind="application.type | storeType"></td>
 				<td>{{application.createTime | date: 'yyyy-MM-dd HH:mm:ss'}}</td>
 				<td>

+ 2 - 2
src/main/webapp/resources/view/common/store_header.html

@@ -339,8 +339,8 @@
 							<li ng-if="storeInfo.enterprise.enQQ.length > 0">
 								<span>QQ:</span><span ng-bind="storeInfo.enterprise.enQQ"></span>
 							</li>
-							<li ng-if="storeInfo.enterprise.enAddress.length > 0">
-								<span>地址:</span><span ng-bind="storeInfo.enterprise.enAddress"></span>
+							<li ng-if="storeInfo.enterprise.address.length > 0">
+								<span>地址:</span><span ng-bind="storeInfo.enterprise.address"></span>
 							</li>
 							<!--<li>
 								<span>传真:</span><span ng-bind="storeInfo.enterprise.enFax || '空'"></span>

+ 1 - 1
src/main/webapp/resources/view/store/default/contact.html

@@ -27,7 +27,7 @@
                 <div ng-if="storeInfo.enterprise.enPhone.length > 0">手机:<span ng-bind="storeInfo.enterprise.enPhone"></span></div>
                 <div ng-if="storeInfo.enterprise.enWeixin.length > 0">微信:<span ng-bind="storeInfo.enterprise.enWeixin"></span></div>
                 <div ng-if="storeInfo.enterprise.enQQ.length > 0">QQ:<span ng-bind="storeInfo.enterprise.enQQ"></span></div>
-                <div ng-if="storeInfo.enterprise.enAddress.length >0">地址:<span ng-bind="storeInfo.enterprise.enAddress">深圳市南山区科技园科技南五路英唐大厦一楼</span></div>
+                <div ng-if="storeInfo.enterprise.address.length >0">地址:<span ng-bind="storeInfo.enterprise.address">深圳市南山区科技园科技南五路英唐大厦一楼</span></div>
             </div>
 		</div>
 	</div>

+ 61 - 1
src/main/webapp/resources/view/usercenter/forstore/account_manager.html

@@ -35,6 +35,7 @@
 	.count01 .count-content{
 		width: 100%;
 		background: #fff;
+		padding-bottom:70px;
 	}
 	.count01 .count-content ul{
 		width: 94%;
@@ -184,6 +185,50 @@
 		display: block
 	}
 </style>
+
+<style>
+	.count01 .business_scope{
+		padding-bottom:10px;
+	}
+	.count01 .business_scope ul{
+		width:100%;
+		margin:0;
+		margin-left:-10px;
+		line-height: 35px;
+		padding-top: 18px;
+	}
+	.count01 .business_scope ul li{
+		position:relative;
+		width:auto;
+		height:auto;
+		padding:0 10px;
+		margin:0 10px;
+		float:none;
+		background: #5078cb;
+		border-radius:5px;
+		text-align: center;
+		line-height: 25px;
+	}
+	.count01 .business_scope ul li span{
+		color:#fff;
+		margin:0;
+	}
+	.count01 .business_scope ul li i{
+		position:absolute;
+		right:-10px;
+		top:-10px;
+		cursor:pointer;
+		display:inline-block;
+		width:20px;
+		height:20px;
+		line-height: 20px;
+		font-size: 16px;
+		text-align: center;
+		color:red;
+		border-radius:50%;
+		background: #eee;
+	}
+</style>
 <!--右侧主体部分-->
 <div class="user_right fr" id="account_manager">
 	<div class="oder01" style="margin-bottom: 16px;">
@@ -218,13 +263,28 @@
 					<div class="fl">官网地址</div>
 					<div class="fr"><span ng-bind="enterpriseInfo.enUrl"></span></div>
 				</li>
+				<li>
+					<div class="fl">所属行业</div>
+					<div class="fr"><span ng-bind="enterpriseInfo.enIndustry || '暂无信息'"></span></div>
+				</li>
+				<li>
+					<div class="fl">经营范围</div>
+					<div class="fr">
+						<div class="business_scope">
+							<ul class="list-inline">
+								<li ng-repeat="value in enBusinessScope track by $index"><span ng-bind="value"></span></li>
+								<li ng-if="enBusinessScope.length === 0"><span>无标签信息</span></li>
+							</ul>
+						</div>
+					</div>
+				</li>
 			</ul>
 		</div>
 		<div class="rt_menu">
 			<span>您的个人信息</span>
 			<span class="fr" >
 				<!--<button ng-if=" !updateState"  ng-click="changeToUpdate(true)">修改</button>-->
-				<button ng-if=" updateState"  ng-click="saveUpdate()">保存</button>
+				<button ng-if="updateState"  ng-click="saveUpdate()">保存</button>
 				<button ng-if="updateState" ng-click="changeToUpdate(false)" style="color: #f00">取消</button>
 			</span>
 		</div>

+ 1 - 1
src/main/webapp/resources/view/usercenter/forstore/store_focus.html

@@ -403,7 +403,7 @@
 										</em>
 									</div>
 									<div class="list">地址:
-										<em ng-bind="item.storeInfo.enterprise.enAddress || '暂无地址信息'">1212314531455</em>
+										<em ng-bind="item.storeInfo.enterprise.address || '暂无地址信息'">1212314531455</em>
 									</div>
 								</div>
 							</div>

+ 2 - 2
src/main/webapp/resources/view/vendor/forstore/seekPurchase.html

@@ -789,7 +789,7 @@
                         <input type="text" class="form-control" placeholder="数量">
                         -
                         -->
-                        <input type="number" class="form-control" ng-blur="onReplyLapQtyBlur($index)" ng-change="onReplyLapQtyInput($index)" ng-model="reply.lapQty" placeholder="数量">
+                        <input type="number" class="form-control" ng-blur="onReplyLapQtyBlur($index)" ng-change="onReplyLapQtyInput($index)" ng-model="reply.lapQty" placeholder="分段数量">
                     </div>
                     <div class="form-item form-right">
                         <span><i>*</i>单价<span ng-if="inquiryItem.currency" ng-bind="inquiryItem.currency == 'USD' ? '$' : '¥'"></span>:</span>
@@ -797,7 +797,7 @@
                             <option value="RMB">¥</option>
                             <option value="USD">$</option>
                         </select>
-                        <input type="number" class="form-control" ng-change="onReplyPriceInput($index)" ng-blur="onReplyPriceBlur($index)" ng-model="reply.price" placeholder="单价">
+                        <input type="number" class="form-control" ng-change="onReplyPriceInput($index)" ng-blur="onReplyPriceBlur($index)" ng-model="reply.price" placeholder="分段单价">
                         <i class="fa fa-minus-circle" ng-if="inquiryItem.replies.length > 1" ng-click="setReplies('sub', $index)"></i>
                         <i class="fa fa-plus-circle" ng-if="inquiryItem.replies.length < 5" ng-click="setReplies('add', $index)"></i>
                     </div>

+ 229 - 53
src/main/webapp/resources/view/vendor/forstore/vendor_account_management.html

@@ -72,10 +72,10 @@
   .row-operator2 > .operator-menu3 {
     position: absolute;
     width: 125px;
-    height: 60;
+    height: 60px;
     line-height: 30px;
     padding: 0 10px;
-    top: 30;
+    top: 30px;
     background-color: #333;
     border-radius: 0 3px 3px 0;
     opacity: 0;
@@ -464,8 +464,116 @@
     display: block
   }
 </style>
+
+<style>
+  .count_basic .choose-body {
+    display: table;
+    width: 33.333333%;
+    margin-top: 10px;
+    padding: 10px;
+    table-layout: fixed;
+    border-collapse: separate;
+    border: 1px solid #ccc;
+    position: relative;
+    background: #fff;
+    z-index: 1000;
+    padding-right: 2px;
+    float:left;
+  }
+
+  .count_basic .choose-body>.choose-item {
+    display: table-cell;
+  }
+
+  .count_basic .choose-body>.choose-item>ul {
+    height: 200px;
+    overflow-x: hidden;
+    overflow-y: scroll;
+    width:100%;
+    margin:0;
+  }
+
+  .count_basic .choose-body>.choose-item>ul>li {
+    line-height: 30px;
+    position: relative;
+    margin:0;
+  }
+
+  .count_basic .choose-body>.choose-item>ul>li.active a {
+    color: #3c7cf5;
+    background: #e8f0ff;
+  }
+
+   .count_basic .choose-body>.choose-item>ul>li>a {
+      display: block;
+      color: #666666;
+      margin:0;
+       width:100%;
+       text-align:left;
+       overflow:hidden;
+       background: #fff;
+    }
+
+  .count_basic .choose-body>.choose-item .caret {
+    float: right;
+    margin-top: 14px;
+    margin-right: 8px;
+    border-left: 3px solid;
+    border-right: none;
+    border-top: 3px solid transparent;
+    border-bottom: 3px solid transparent;
+  }
+
+  .count_basic .area-bg{
+    background: url("static/img/all/dot.png") no-repeat 732px center;
+  }
+  .count_basic .area-list{
+    position: absolute;
+    top: 26px;
+    left: 15px;
+    width: 756px;
+  }
+
+  .count_basic .business_scope{
+    padding-bottom:10px;
+  }
+  .count_basic .business_scope ul{
+    width:100%;
+    margin:0;
+    margin-left:-10px;
+  }
+  .count_basic .business_scope ul li{
+    position:relative;
+    width:auto;
+    padding:0 10px;
+    margin:0 10px;
+    float:none;
+    background: #5078cb;
+    border-radius:5px;
+    text-align: center;
+    line-height: 25px;
+  }
+  .count_basic .business_scope ul li span{
+    color:#fff;
+  }
+  .count_basic .business_scope ul li i{
+    position:absolute;
+    right:-10px;
+    top:-10px;
+    cursor:pointer;
+    display:inline-block;
+    width:20px;
+    height:20px;
+    line-height: 20px;
+    font-size: 16px;
+    text-align: center;
+    color:red;
+    border-radius:50%;
+    background: #eee;
+  }
+</style>
 <!--右侧主体部分-->
-<div class="count user_right fr">
+<div class="count user_right fr" ng-click="hideList()">
   <!--安全设置-->
   <div class="count_center">
     <div class="com_tab">
@@ -494,13 +602,8 @@
             <ul>
               <li>
                 <div class="fl">企业名称</div>
-                <div class="col-sm-10" ng-if="updateState"><input type="text" class="form-control"
-                                                                  title="企业全称"
-                                                                  ng-disabled=" !updateState"
-                                                                  ng-model="enterpriseInfo.enName"/>
-                </div>
-                <div class="fr" ng-if="!updateState"><span
-                    ng-bind="enterpriseInfo.enName || '暂无信息'"></ span>
+                <div class="fr"><span
+                    ng-bind="enterpriseInfo.enName || '暂无信息'"></span>
                 </div>
               </li>
               <!--<li>
@@ -519,18 +622,14 @@
               </li>-->
               <li>
                 <div class="fl">营业执照号</div>
-                <div class="col-sm-10" ng-if="updateState"><input type="text" class="form-control"
-                                                                  title="营业执照号" disabled="disable"
-                                                                  ng-model="enterpriseInfo.enBussinessCode"/>
-                </div>
-                <div class="fr" ng-if="!updateState"><span
+                <div class="fr"><span
                     ng-bind="enterpriseInfo.enBussinessCode || '暂无信息'"></span></div>
               </li>
               <li>
                 <div class="fl">注册地址</div>
                 <div class="col-sm-10" ng-if="updateState"><input type="text" class="form-control"
                                                                   title="企业地址"
-                                                                  ng-disabled=" !updateState"
+                                                                  ng-disabled="enterpriseInfo.enValidCode == 2"
                                                                   ng-model="enterpriseInfo.enAddress"/>
                 </div>
                 <div class="fr" ng-if="!updateState"><span
@@ -546,6 +645,83 @@
                 <div class="fr" ng-if="!updateState"><span
                     ng-bind="enterpriseInfo.enUrl || '暂无信息'"></span></div>
               </li>
+              <li>
+                <div class="fl">所属行业</div>
+                <div class="col-sm-10" ng-if="updateState">
+                    <div class="content" ng-mouseenter="enterInput()"  ng-mouseleave="leaveInput()">
+                      <input ng-model="enterpriseInfo.enIndustry" title="所属行业" ng-disabled=" !updateState"
+                             class="area-bg form-control input-xs" type="text"
+                             ng-click="selectProfession()">
+                      </input>
+                    </div>
+
+                    <div ng-show="showProfession" ng-mouseenter="enterList()" ng-mouseleave="leaveList()" class="area-list">
+                        <div class="choose-body">
+                          <div class="choose-item">
+                            <ul class="list-unstyled">
+                              <li ng-repeat="(key, value) in profession[0]" ng-class="{active: key == active[0]}">
+                                <a ng-click="onItemClick(key, 0, value)">{{key}}
+                                  <span class="caret" ></span>
+                                </a>
+                              </li>
+                            </ul>
+                          </div>
+                        </div>
+                        <div class="choose-body" ng-show="profession[1]">
+                          <div class="choose-item">
+                            <ul class="list-unstyled">
+                              <li ng-repeat="(key, value) in profession[1]" ng-class="{active: key == active[1]}">
+                                <a ng-click="onItemClick(key, 1, value)">{{key}}
+                                  <span ng-show="!isString(value)" class="caret" ></span>
+                                </a>
+                              </li>
+                            </ul>
+                          </div>
+                        </div>
+                        <div class="choose-body" ng-show="profession[2]" style="border-left:0;">
+                          <div class="choose-item">
+                            <ul class="list-unstyled">
+                              <li ng-repeat="(key, value) in profession[2]" ng-class="{active: key == active[2]}">
+                                <a ng-click="onItemClick(key, 2, value)">{{key}}
+                                  <span ng-show="!isString(value)" class="caret" ></span>
+                                </a>
+                              </li>
+                            </ul>
+                          </div>
+                        </div>
+                        <div class="choose-body" ng-show="professionArray.length > 0" style="border-left:0;">
+                          <div class="choose-item">
+                            <ul class="list-unstyled">
+                              <li ng-repeat="value in professionArray" ng-class="{active: false}">
+                                <a ng-click="onItemClick(null, -1, value)">{{value}}</a>
+                              </li>
+                            </ul>
+                          </div>
+                        </div>
+                    </div>
+                </div>
+                <div class="fr" ng-if="!updateState"><span ng-bind="enterpriseInfo.enIndustry || '暂无信息'"></span></div>
+              </li>
+              <li>
+                <div class="fl">经营范围</div>
+                <div class="col-sm-10">
+                  <div class="business_scope">
+                    <ul class="list-inline">
+                      <li ng-repeat="(key, value) in enBusinessScope track by $index"><span>{{value}}</span><i ng-if="updateState" class="fa fa-close" ng-click="clearBusinessScope(key)"></i></li>
+                      <li ng-if="enBusinessScope.length === 0"><span>无标签信息</span></li>
+                    </ul>
+                  </div>
+                  <div class="input-group" style="width:50%;" ng-if="updateState">
+                    <input class="form-control"
+                           ng-model="_scope.businessScope"
+                           maxlength="10"
+                           placeholder="请输入不大于10个字符" type="text"/>
+                    <div class="input-group-addon" ng-click="addBusinessScope(businessScope)">
+                      <span>添加标签</span>
+                    </div>
+                  </div>
+                </div>
+              </li>
             </ul>
             <!--<div class="deal-btn" ng-if="userInfo.sys">-->
             <!--<button type="button" class="edit btn btn-primary" ng-if=" !updateState"  ng-click="changeToUpdate(true)">修改</button>-->
@@ -796,45 +972,45 @@
         </li>-->
       </ul>
     </div>
-    <!--申请绑定-->
+      <!--申请绑定-->
     <div class="clearfix bind-en" ng-if="tab=='bind'">
-      <div class="rt_menu">
-        <span class="pull-right"><input type="text" ng-model="searchParams.keyword" class="form-control" placeholder="用户名/UU账号/手机号"/><button class="btn" ng-click="searchApply()">搜索</button> </span></span>
+          <div class="rt_menu">
+              <span class="pull-right"><input type="text" ng-model="searchParams.keyword" class="form-control" placeholder="用户名/UU账号/手机号"/><button class="btn" ng-click="searchApply()">搜索</button> </span></span>
+          </div>
+        <table class="bind-enter-tab" ng-table="applyToEnterpriseTableParams">
+          <thead>
+          <tr>
+            <th>用户名</th>
+            <th>UU账号</th>
+            <th>手机号</th>
+            <th>邮箱</th>
+            <th>操作</th>
+          </tr>
+          </thead>
+          <tbody>
+          <tr class="default-row" ng-repeat="item in content">
+            <td class="user-name" ng-bind="item.user.vipName || '-'"></td>
+            <td ng-bind="item.user.userUU || '-'"></td>
+            <td ng-bind="item.user.mobile || '-'"></td>
+            <td ng-bind="item.user.email || '-'"></td>
+            <td>
+              <a class="operate-btn" ng-click="auditApply(1, item.id, item.user.userUU)">同意</a>
+              <a class="operate-btn" ng-click="auditApply(0, item.id, item.user.userUU)">|&nbsp;拒绝</a>
+            </td>
+          </tr>
+          <tr class="num" ng-if="content && content.length > 0">
+            <td colspan="5">
+              <span class="last-login pull-right">显示<span ng-bind="page.size * (page.number - 1) + 1"></span>-<span ng-bind="page.size * (page.number - 1) + page.numberOfElements"></span>条,共<span ng-bind="page.totalElements"></span>条</span>
+            </td>
+          </tr>
+          <tr ng-if="!content || !content.length">
+            <td colspan="5" class="grey white">
+              <img src="static/img/all/empty-cart.png">暂无申请信息
+            </td>
+          </tr>
+          </tbody>
+        </table>
       </div>
-      <table class="bind-enter-tab" ng-table="applyToEnterpriseTableParams">
-        <thead>
-        <tr>
-          <th>用户名</th>
-          <th>UU账号</th>
-          <th>手机号</th>
-          <th>邮箱</th>
-          <th>操作</th>
-        </tr>
-        </thead>
-        <tbody>
-        <tr class="default-row" ng-repeat="item in content">
-          <td class="user-name" ng-bind="item.user.vipName || '-'"></td>
-          <td ng-bind="item.user.userUU || '-'"></td>
-          <td ng-bind="item.user.mobile || '-'"></td>
-          <td ng-bind="item.user.email || '-'"></td>
-          <td>
-            <a class="operate-btn" ng-click="auditApply(1, item.id, item.user.userUU)">同意</a>
-            <a class="operate-btn" ng-click="auditApply(0, item.id, item.user.userUU)">|&nbsp;拒绝</a>
-          </td>
-        </tr>
-        <tr class="num" ng-if="content && content.length > 0">
-          <td colspan="5">
-            <span class="last-login pull-right">显示<span ng-bind="page.size * (page.number - 1) + 1"></span>-<span ng-bind="page.size * (page.number - 1) + page.numberOfElements"></span>条,共<span ng-bind="page.totalElements"></span>条</span>
-          </td>
-        </tr>
-        <tr ng-if="!content || !content.length">
-          <td colspan="5" class="grey white">
-            <img src="static/img/all/empty-cart.png">暂无申请信息
-          </td>
-        </tr>
-        </tbody>
-      </table>
-    </div>
     <!--权限管理-->
     <div class="count01 clearfix" ng-if="tab=='auth'">
       <div class="power_title">员工账号及权限管理</div>

+ 12 - 11
src/main/webapp/resources/view/vendor/forstore/vendor_store_apply.html

@@ -413,14 +413,14 @@
 				<span>{{enterprise.enName}}</span>
 			</div>
 		</div>
-		<div class="row com_row">
+	<!--	<div class="row com_row">
 			<div class="col-md-2 custom_col">
 				<span>企业简称</span>
 			</div>
 			<div class="col-md-10 custom_col">
 				<span>{{enterprise.enShortname}}</span>
 			</div>
-		</div>
+		</div>-->
 		<!--<div class="row com_row" style="min-height: 40px; max-height: 240px;">
 			<div class="col-md-2 custom_col">
 				<span>营业执照</span>
@@ -505,15 +505,16 @@
 						<div class="row" style="margin: 0;">
 							<div class="col-md-5 col-md-offset-1 show_image_area show_image">
 								<div ng-if="qualifications[qType.businessLicense]">
-									<img class="previewImage" ng-if="qualifications[qType.businessLicense] && !qualifications[qType.businessLicense].isPdf" ng-src="{{qualifications[qType.businessLicense].resourceUrl}}"/>
+									<img class="previewImage" ng-if="qualifications[qType.businessLicense] && !qualifications[qType.businessLicense].isPdf && qualifications[qType.businessLicense].resourceUrl" ng-src="{{qualifications[qType.businessLicense].resourceUrl}}"/>
 									<img class="previewImage" ng-if="qualifications[qType.businessLicense] && qualifications[qType.businessLicense].isPdf" src="static/img/vendor/store/timg.png"/>
 									<div class="hover-show" ng-if="qualifications[qType.businessLicense] && qualifications[qType.businessLicense].isPdf">
 										<span class="delete" ng-click="triggerDeleteTip(qType.businessLicense)" title="删除"><i class="fa fa-trash"></i></span>
 										<a target="_blank" ng-href="{{qualifications[qType.businessLicense].resourceUrl || 'javascript:void(0);'}}"><i class="fa fa-search"></i>查看</a>
 									</div>
+
 								</div>
-								<div image-upload data-src="static/img/example/upload-apply.png" on-success="onUploadQualification($data, qType.businessLicense)" ng-if="!qualifications[qType.businessLicense]" non-preview="true"></div>
-								<div class="hover-show" ng-if="qualifications[qType.businessLicense] && !qualifications[qType.businessLicense].isPdf">
+								<div image-upload data-src="static/img/example/upload-apply.png" on-success="onUploadQualification($data, qType.businessLicense)" ng-if="!qualifications[qType.businessLicense].resourceUrl" non-preview="true"></div>
+								<div class="hover-show" ng-if="qualifications[qType.businessLicense] && !qualifications[qType.businessLicense].isPdf && qualifications[qType.businessLicense].resourceUrl">
 									<span class="delete" ng-click="triggerDeleteTip(qType.businessLicense)" title="删除"><i class="fa fa-trash"></i></span>
 									<a ng-click="showQualification(qualifications[qType.businessLicense], true)"><i class="fa fa-search"></i>查看</a>
 								</div>
@@ -680,15 +681,15 @@
 						<div class="row" style="margin: 0;">
 							<div class="col-md-5 col-md-offset-1 show_image_area show_image">
 								<div ng-if="qualifications[qType.businessLicense]">
-									<img class="previewImage" ng-if="qualifications[qType.businessLicense] && !qualifications[qType.businessLicense].isPdf" ng-src="{{qualifications[qType.businessLicense].resourceUrl}}"/>
+									<img class="previewImage" ng-if="qualifications[qType.businessLicense] && !qualifications[qType.businessLicense].isPdf && qualifications[qType.businessLicense].resourceUrl" ng-src="{{qualifications[qType.businessLicense].resourceUrl}}"/>
 									<img class="previewImage" ng-if="qualifications[qType.businessLicense] && qualifications[qType.businessLicense].isPdf" src="static/img/vendor/store/timg.png"/>
 									<div class="hover-show" ng-if="qualifications[qType.businessLicense] && qualifications[qType.businessLicense].isPdf">
 										<span class="delete" ng-click="triggerDeleteTip(qType.businessLicense)" title="删除"><i class="fa fa-trash"></i></span>
 										<a target="_blank" ng-href="{{qualifications[qType.businessLicense].resourceUrl || 'javascript:void(0);'}}" ><i class="fa fa-search"></i>查看</a>
 									</div>
 								</div>
-								<div image-upload data-src="static/img/example/upload-apply.png" on-success="onUploadQualification($data, qType.businessLicense)" ng-if="!qualifications[qType.businessLicense]" non-preview="true"></div>
-								<div class="hover-show" ng-if="qualifications[qType.businessLicense] && !qualifications[qType.businessLicense].isPdf">
+								<div image-upload data-src="static/img/example/upload-apply.png" on-success="onUploadQualification($data, qType.businessLicense)" ng-if="!qualifications[qType.businessLicense].resourceUrl" non-preview="true"></div>
+								<div class="hover-show" ng-if="qualifications[qType.businessLicense] && !qualifications[qType.businessLicense].isPdf && qualifications[qType.businessLicense].resourceUrl">
 									<span class="delete" ng-click="triggerDeleteTip(qType.businessLicense)" title="删除"><i class="fa fa-trash"></i></span>
 									<a ng-click="showQualification(qualifications[qType.businessLicense], true)"><i class="fa fa-search"></i>查看</a>
 								</div>
@@ -854,15 +855,15 @@
 						<div class="row" style="margin: 0;">
 							<div class="col-md-5 col-md-offset-1 show_image_area show_image">
 								<div ng-if="qualifications[qType.businessLicense]">
-									<img class="previewImage" ng-if="qualifications[qType.businessLicense] && !qualifications[qType.businessLicense].isPdf" ng-src="{{qualifications[qType.businessLicense].resourceUrl}}"/>
+									<img class="previewImage" ng-if="qualifications[qType.businessLicense] && !qualifications[qType.businessLicense].isPdf && qualifications[qType.businessLicense].resourceUrl" ng-src="{{qualifications[qType.businessLicense].resourceUrl}}"/>
 									<img class="previewImage" ng-if="qualifications[qType.businessLicense] && qualifications[qType.businessLicense].isPdf" src="static/img/vendor/store/timg.png"/>
 									<div class="hover-show" ng-if="qualifications[qType.businessLicense] && qualifications[qType.businessLicense].isPdf">
 										<span class="delete" ng-click="triggerDeleteTip(qType.businessLicense)" title="删除"><i class="fa fa-trash"></i></span>
 										<a target="_blank" ng-href="{{qualifications[qType.businessLicense].resourceUrl || 'javascript:void(0);'}}"><i class="fa fa-search"></i>查看</a>
 									</div>
 								</div>
-								<div image-upload data-src="static/img/example/upload-apply.png" on-success="onUploadQualification($data, qType.businessLicense)" ng-if="!qualifications[qType.businessLicense]" non-preview="true"></div>
-								<div class="hover-show" ng-if="qualifications[qType.businessLicense] && !qualifications[qType.businessLicense].isPdf">
+								<div image-upload data-src="static/img/example/upload-apply.png" on-success="onUploadQualification($data, qType.businessLicense)" ng-if="!qualifications[qType.businessLicense].resourceUrl" non-preview="true"></div>
+								<div class="hover-show" ng-if="qualifications[qType.businessLicense] && !qualifications[qType.businessLicense].isPdf && qualifications[qType.businessLicense].resourceUrl">
 									<span class="delete" ng-click="triggerDeleteTip(qType.businessLicense)" title="删除"><i class="fa fa-trash"></i></span>
 									<a ng-click="showQualification(qualifications[qType.businessLicense], true)"><i class="fa fa-search"></i>查看</a>
 								</div>

+ 1 - 1
src/main/webapp/resources/view/vendor/forstore/vendor_store_maintain.html

@@ -817,7 +817,7 @@
 			</div>-->
 			<div class="row com_row" style="margin-top: 10px;">
 				<div class="col-md-2 custom_col">
-					<span>地&nbsp;&nbsp;&nbsp;&nbsp;址</span>
+					<span>企业地址</span>
 				</div>
 				<div class="col-md-10 custom_col show_info">
 					<div>

+ 2 - 2
src/main/webapp/resources/view/vendor/left_nav.html

@@ -60,7 +60,7 @@
 				<!-- 我的店铺申述 store -->
 				<span  ui-sref="vendor_store_maintain" ng-if="store && store.status && store.status !== 'OPENED'">我的店铺</span>
 			</li>
-			<li ng-class="{'active' : active == 'vendor_seek_purchase'}"><a  ui-sref="vendorSeekPurchase">求购询价</a></li>
+			<li ng-class="{'active' : active == 'vendor_seek_purchase'}"><span ui-sref="vendorSeekPurchase">求购询价</span></li>
 		<li ng-class="{'active' : active == 'vendor_logistics'}">
 			<span  ui-sref="vendor_logistics" ng-hide="store && (!store.status || store.status === 'OPENED')">物流管理</span>
 			<span  ui-sref="vendor_deliveryRule" ng-if="store && (!store.status || store.status === 'OPENED')">物流管理</span>
@@ -96,7 +96,7 @@
 				<!-- 我的店铺申述 store -->
 				<span ng-click="promptUpdate()" class="disabled"  ng-if="store && store.status && store.status !== 'OPENED'">店铺管理</span>
 			</li>
-			<li ng-class="{'active' : active == 'vendor_seek_purchase'}"><a ng-click="promptUpdate()" class="disabled">求购询价</a></li>
+			<li ng-class="{'active' : active == 'vendor_seek_purchase'}"><span ng-click="promptUpdate()" class="disabled">求购询价</span></li>
 			<li ng-class="{'active' : active == 'vendor_logistics'}"><span ng-click="promptUpdate()" class="disabled">物流管理</span></li>
 			<li ng-class="{'active' : active == 'vendor_invoice'}"><span ng-click="promptUpdate()" class="disabled" >发票管理</span></li>
 			<!--	<li ng-class="{'active' : active == 'vendor_logistics'}"><span  ui-sref="vendor_logistics">物流管理</span></li>-->

+ 84 - 0
src/test/java/com/uas/platform/b2c/common/gor/GorTest.java

@@ -0,0 +1,84 @@
+package com.uas.platform.b2c.common.gor;
+
+import com.uas.platform.core.util.HttpUtil;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Random;
+import java.util.UUID;
+
+/**
+ * 测试模拟发起请求<br/>
+ * 用于测试Gor流量复制
+ * @author suntg
+ * @date 2018年5月8日17:26:46
+ */
+public class GorTest {
+
+//    private static String HOST_URL = "http://localhost:20210/article";
+
+    private static String HOST_URL = "http://192.168.253.6:20218/article";
+
+    public static void main(String[] args) {
+        generalTest();
+    }
+
+    /**
+     * 集成测试
+     */
+    public static void generalTest() {
+        int i = 0, getCount = 0, postCount = 0;
+        while (i < 10000) {
+            Random random = new Random();
+            // 随机事件,50-150ms
+            int timer = 50 + random.nextInt(100);
+            // 随机类型,1 get请求,2 post请求
+            int type = 1 + random.nextInt(2);
+            switch (type) {
+                case 1 :
+                    testGetApi();
+                    System.out.println("i: " + i + ", send get request.");
+                    getCount ++;
+                    break;
+                case 2 :
+                    testPostApi();
+                    System.out.println("i: " + i + ", send post request.");
+                    postCount ++;
+                    break;
+            }
+            try {
+                Thread.sleep(timer);
+            } catch (InterruptedException e) {
+                e.printStackTrace();
+            }
+            i++;
+        }
+        System.out.println(i + " requests send, " + getCount + " getRequest, " + postCount + " postRequest.");
+    }
+
+    /**
+     * 发起get请求
+     */
+    public static void testGetApi() {
+        try {
+            HttpUtil.sendGetRequest(HOST_URL, null);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+    /**
+     * 发起post请求
+     */
+    public static void testPostApi() {
+        try {
+            Map<String, Object> params = new HashMap<String, Object>();
+            // 生成随机的字符串
+            String uuid = UUID.randomUUID().toString().replaceAll("-", "");
+            params.put("content", uuid);
+            HttpUtil.sendPostRequest(HOST_URL, params, false, false);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+}