Browse Source

Merge remote-tracking branch 'origin/dev-mysql' into dev-mysql

liusw 8 years ago
parent
commit
721e374cec
20 changed files with 530 additions and 315 deletions
  1. 4 0
      pom.xml
  2. 16 5
      src/main/java/com/uas/platform/b2c/external/erp/commodity/service/impl/ProductDetailERPServiceImpl.java
  3. 7 12
      src/main/java/com/uas/platform/b2c/external/erp/order/service/impl/OrderServiceImpl.java
  4. 2 1
      src/main/java/com/uas/platform/b2c/external/erp/prod/service/impl/ProdServiceImpl.java
  5. 0 14
      src/main/java/com/uas/platform/b2c/prod/commodity/service/impl/GoodsServiceImpl.java
  6. 14 1
      src/main/java/com/uas/platform/b2c/prod/product/brand/controller/BrandMapController.java
  7. 20 0
      src/main/java/com/uas/platform/b2c/prod/product/brand/modal/BrandTemp.java
  8. 2 0
      src/main/java/com/uas/platform/b2c/prod/product/brand/service/BrandMapService.java
  9. 44 4
      src/main/java/com/uas/platform/b2c/prod/product/brand/service/impl/BrandMapServiceImpl.java
  10. 5 1
      src/main/webapp/resources/css/erp/align.css
  11. 225 194
      src/main/webapp/resources/js/usercenter/controllers/forstore/buyer_cart_ctrl.js
  12. 35 4
      src/main/webapp/resources/js/usercenter/controllers/forstore/order_pay_ctrl.js
  13. 5 2
      src/main/webapp/resources/js/vendor/controllers/forstore/purchase_detail.js
  14. 8 2
      src/main/webapp/resources/js/vendor/controllers/forstore/vendor_deliveryRule_ctrl.js
  15. 54 34
      src/main/webapp/resources/view/usercenter/forstore/buyer_cart.html
  16. 2 2
      src/main/webapp/resources/view/usercenter/forstore/buyer_invoice.html
  17. 60 31
      src/main/webapp/resources/view/usercenter/forstore/order_pay.html
  18. 3 1
      src/main/webapp/resources/view/usercenter/forstore/pay_center.html
  19. 23 6
      src/main/webapp/resources/view/vendor/forstore/vendor_delivery.html
  20. 1 1
      src/main/webapp/resources/view/vendor/forstore/vendor_index.html

+ 4 - 0
pom.xml

@@ -432,6 +432,10 @@
 			<artifactId>classmate</artifactId>
 			<artifactId>classmate</artifactId>
 			<version>1.1.0</version>
 			<version>1.1.0</version>
 		</dependency>
 		</dependency>
+		<dependency>
+			<groupId>javax.servlet</groupId>
+			<artifactId>servlet-api</artifactId>
+		</dependency>
 	</dependencies>
 	</dependencies>
 	<build>
 	<build>
 		<finalName>platform-b2c</finalName>
 		<finalName>platform-b2c</finalName>

+ 16 - 5
src/main/java/com/uas/platform/b2c/external/erp/commodity/service/impl/ProductDetailERPServiceImpl.java

@@ -3,9 +3,12 @@ package com.uas.platform.b2c.external.erp.commodity.service.impl;
 import com.uas.api.b2c_erp.seller.model.ProductDetailERP;
 import com.uas.api.b2c_erp.seller.model.ProductDetailERP;
 import com.uas.api.b2c_erp.seller.service.ProductDetailERPService;
 import com.uas.api.b2c_erp.seller.service.ProductDetailERPService;
 import com.uas.platform.b2c.common.account.service.EnterpriseService;
 import com.uas.platform.b2c.common.account.service.EnterpriseService;
+import com.uas.platform.b2c.core.config.SysConf;
 import com.uas.platform.b2c.core.constant.Status;
 import com.uas.platform.b2c.core.constant.Status;
 import com.uas.platform.b2c.core.support.SystemSession;
 import com.uas.platform.b2c.core.support.SystemSession;
+import com.uas.platform.b2c.core.support.log.ErpB2cBufferedLogger;
 import com.uas.platform.b2c.external.erp.commodity.util.ModelConverter;
 import com.uas.platform.b2c.external.erp.commodity.util.ModelConverter;
+import com.uas.platform.b2c.prod.commodity.constant.IntegerConstant;
 import com.uas.platform.b2c.prod.commodity.dao.GoodsDao;
 import com.uas.platform.b2c.prod.commodity.dao.GoodsDao;
 import com.uas.platform.b2c.prod.commodity.dao.ProductDao;
 import com.uas.platform.b2c.prod.commodity.dao.ProductDao;
 import com.uas.platform.b2c.prod.commodity.dao.ProductDetailDao;
 import com.uas.platform.b2c.prod.commodity.dao.ProductDetailDao;
@@ -13,8 +16,8 @@ import com.uas.platform.b2c.prod.commodity.model.Goods;
 import com.uas.platform.b2c.prod.commodity.model.Product;
 import com.uas.platform.b2c.prod.commodity.model.Product;
 import com.uas.platform.b2c.prod.commodity.model.ProductDetail;
 import com.uas.platform.b2c.prod.commodity.model.ProductDetail;
 import com.uas.platform.b2c.prod.commodity.service.GoodsService;
 import com.uas.platform.b2c.prod.commodity.service.GoodsService;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import com.uas.platform.core.logging.BufferedLoggerManager;
+import org.apache.log4j.Logger;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.util.CollectionUtils;
 import org.springframework.util.CollectionUtils;
 
 
@@ -44,7 +47,12 @@ public class ProductDetailERPServiceImpl implements ProductDetailERPService {
     @Autowired
     @Autowired
     private EnterpriseService enterpriseService;
     private EnterpriseService enterpriseService;
 
 
-    private static final Logger logger = LoggerFactory.getLogger(ProductDetailERPServiceImpl.class);
+    private static final ErpB2cBufferedLogger logger = BufferedLoggerManager.getLogger(ErpB2cBufferedLogger.class);
+
+    private final Logger loggerInfo = Logger.getLogger(getClass());
+
+    @Autowired
+    private SysConf sysConf;
 
 
     @Override
     @Override
     public boolean uploadProductDetailERP(List<ProductDetailERP> productDetailERPList) {
     public boolean uploadProductDetailERP(List<ProductDetailERP> productDetailERPList) {
@@ -63,11 +71,13 @@ public class ProductDetailERPServiceImpl implements ProductDetailERPService {
             }
             }
         }
         }
         productDetailDao.save(productDetails);
         productDetailDao.save(productDetails);
+        logger.log("物料交易详情", "初始化交易详情,企业:" + SystemSession.getUser().getEnterprise().getEnName() + ",数量:" + productDetails.size());
         return true;
         return true;
     }
     }
 
 
     @Override
     @Override
     public String getCurrency() {
     public String getCurrency() {
+        logger.log("物料详情", "获取币别,企业:" + SystemSession.getUser().getEnterprise().getEnName());
         return enterpriseService.getCurrencyByRegisterAddress().getData().toString();
         return enterpriseService.getCurrencyByRegisterAddress().getData().toString();
     }
     }
 
 
@@ -75,7 +85,6 @@ public class ProductDetailERPServiceImpl implements ProductDetailERPService {
     public void updateReserve(List<ProductDetailERP> productDetailERPList) {
     public void updateReserve(List<ProductDetailERP> productDetailERPList) {
         List<ProductDetail> productDetails = new ArrayList<ProductDetail>();
         List<ProductDetail> productDetails = new ArrayList<ProductDetail>();
         Long enuu = SystemSession.getUser().getEnterprise().getUu();
         Long enuu = SystemSession.getUser().getEnterprise().getUu();
-        logger.info("size : " + productDetailERPList.size());
         for (ProductDetailERP productDetailERP : productDetailERPList) {
         for (ProductDetailERP productDetailERP : productDetailERPList) {
             List<Product> products = productDao.getProductByEnUUAndProdNum(enuu, productDetailERP.getCode());// 获取对应商城物料信息
             List<Product> products = productDao.getProductByEnUUAndProdNum(enuu, productDetailERP.getCode());// 获取对应商城物料信息
             if (!CollectionUtils.isEmpty(products)) {
             if (!CollectionUtils.isEmpty(products)) {
@@ -104,6 +113,8 @@ public class ProductDetailERPServiceImpl implements ProductDetailERPService {
                                 if (Double.compare(subtractDecimal.doubleValue(), good.getReserve()) < 0) {// 差值小于此批次数量,下架部分库存
                                 if (Double.compare(subtractDecimal.doubleValue(), good.getReserve()) < 0) {// 差值小于此批次数量,下架部分库存
                                     Goods nowGood = goodsDao.findOne(good.getId());
                                     Goods nowGood = goodsDao.findOne(good.getId());
                                     good.setReserve(BigDecimal.valueOf(good.getReserve()).subtract(subtractDecimal).doubleValue());
                                     good.setReserve(BigDecimal.valueOf(good.getReserve()).subtract(subtractDecimal).doubleValue());
+                                    good.setSelfSale(sysConf.getStoreid().equals(good.getStoreid())? IntegerConstant.B2C_SALE.toString() : IntegerConstant.SELF_SALE.toString());// 设置自营寄售
+                                    loggerInfo.info(SystemSession.getUser().getEnterprise().getEnName() + "更新库存: " + products.get(0).getProdNum() + ",self is" + good.getSelfSale());
                                     goodsService.updateGoods(nowGood, good);
                                     goodsService.updateGoods(nowGood, good);
                                     goodsService.updateComponentTradeInfos(nowGood.getUuid());
                                     goodsService.updateComponentTradeInfos(nowGood.getUuid());
                                     break;
                                     break;
@@ -124,7 +135,7 @@ public class ProductDetailERPServiceImpl implements ProductDetailERPService {
                 }
                 }
             }
             }
         }
         }
-
+        logger.log("物料详情", "更新物料库存信息,企业:" + SystemSession.getUser().getEnterprise().getEnName() + ",数量:" + productDetails.size());
         productDetailDao.save(productDetails);
         productDetailDao.save(productDetails);
     }
     }
 }
 }

+ 7 - 12
src/main/java/com/uas/platform/b2c/external/erp/order/service/impl/OrderServiceImpl.java

@@ -33,7 +33,6 @@ import javax.persistence.criteria.CriteriaBuilder;
 import javax.persistence.criteria.CriteriaQuery;
 import javax.persistence.criteria.CriteriaQuery;
 import javax.persistence.criteria.Predicate;
 import javax.persistence.criteria.Predicate;
 import javax.persistence.criteria.Root;
 import javax.persistence.criteria.Root;
-import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.Date;
 import java.util.List;
 import java.util.List;
@@ -103,10 +102,8 @@ public class OrderServiceImpl implements OrderService {
 
 
 		List<Order> orders = new ArrayList<Order>();
 		List<Order> orders = new ArrayList<Order>();
 		String sourceapp = "ERP";
 		String sourceapp = "ERP";
-		SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-		loggerInfo.info(String.format(" erp总共下载订单数 %s", orders.size()));
+        Date startDate = new Date();
 		for (Purchase purchase : purcs) {
 		for (Purchase purchase : purcs) {
-			Date startDate = new Date();
 			boolean codeExists = false;
 			boolean codeExists = false;
 			Order order = ModelConverter.getOrder(purchase);
 			Order order = ModelConverter.getOrder(purchase);
 			UserBaseInfo buyer = userBaseInfoDao.findUserByUserUU(purchase.getBuyeruu());
 			UserBaseInfo buyer = userBaseInfoDao.findUserByUserUU(purchase.getBuyeruu());
@@ -128,10 +125,11 @@ public class OrderServiceImpl implements OrderService {
 			if (codeExists) {
 			if (codeExists) {
 				orders.add(order);
 				orders.add(order);
 			}
 			}
-
-			Date endDate = new Date();
-			loggerInfo.info(String.format("处理历时" + (endDate.getTime() - startDate.getTime()) + "毫秒"));
 		}
 		}
+        Date endDate = new Date();
+        loggerInfo.info(purcs.size() + "条处理历时" + (endDate.getTime() - startDate.getTime()) + "毫秒");
+        loggerInfo.info(" erp预下载订单数 " +  purcs.size() + ", 实际下载数 " +  orders.size());
+        logger.log("销售订单", "企业下载销售订单,企业:" + SystemSession.getUser().getEnterprise().getEnName() + "数量:" + orders.size());
 		return orders;
 		return orders;
 	}
 	}
 
 
@@ -174,6 +172,7 @@ public class OrderServiceImpl implements OrderService {
 
 
 	@Override
 	@Override
 	public Long findAdminuu() {
 	public Long findAdminuu() {
+		logger.log("销售订单", "获取企业商城管理员,企业:" + SystemSession.getUser().getEnterprise().getEnName());
 		return SystemSession.getUser().getEnterprise().getEnAdminuu();
 		return SystemSession.getUser().getEnterprise().getEnAdminuu();
 	}
 	}
 
 
@@ -181,14 +180,10 @@ public class OrderServiceImpl implements OrderService {
 	public boolean backOrder(long[] orderids) {
 	public boolean backOrder(long[] orderids) {
 		for (long orderid : orderids) {
 		for (long orderid : orderids) {
 			Purchase purchase = purchaseDao.findOne(orderid);
 			Purchase purchase = purchaseDao.findOne(orderid);
-//			if (Status.CONFIRMED.value() == purchase.getStatus()) {// 将确认收款的订单生成出货单
-//				purchaseService.purToBeShiped(orderid);
-//			}
-
 			purchase.setSendstatus(Status.DOWNLOADED.value());
 			purchase.setSendstatus(Status.DOWNLOADED.value());
 			purchaseDao.save(purchase);
 			purchaseDao.save(purchase);
-
 		}
 		}
+		logger.log("销售订单", "回写已下载订单,企业:" + SystemSession.getUser().getEnterprise().getEnName() + "数量:" + orderids.length);
 		return true;
 		return true;
 	}
 	}
 }
 }

+ 2 - 1
src/main/java/com/uas/platform/b2c/external/erp/prod/service/impl/ProdServiceImpl.java

@@ -39,7 +39,6 @@ public class ProdServiceImpl implements ProdService {
 
 
     private static final ErpB2cBufferedLogger logger = BufferedLoggerManager.getLogger(ErpB2cBufferedLogger.class);
     private static final ErpB2cBufferedLogger logger = BufferedLoggerManager.getLogger(ErpB2cBufferedLogger.class);
 
 
-    // TODO
     private final Logger loggerOut = Logger.getLogger(getClass());
     private final Logger loggerOut = Logger.getLogger(getClass());
 
 
     @Override
     @Override
@@ -71,6 +70,7 @@ public class ProdServiceImpl implements ProdService {
         productService.matchAll();// 匹配上传的物料
         productService.matchAll();// 匹配上传的物料
         Date end = new Date();
         Date end = new Date();
         loggerOut.info("匹配完成, 历时" + (start.getTime() - end.getTime())/1000 + "秒");
         loggerOut.info("匹配完成, 历时" + (start.getTime() - end.getTime())/1000 + "秒");
+        logger.log("物料资料", "ERP匹配上传物料,企业:" + SystemSession.getUser().getEnterprise().getEnName());
     }
     }
 
 
     @Override
     @Override
@@ -109,6 +109,7 @@ public class ProdServiceImpl implements ProdService {
         if (!CollectionUtils.isEmpty(storeIn)) {
         if (!CollectionUtils.isEmpty(storeIn)) {
             return url = "/store/" + storeIn.get(0).getUuid();
             return url = "/store/" + storeIn.get(0).getUuid();
         }
         }
+        logger.log("物料资料", "ERP获取店铺路径,企业:" + SystemSession.getUser().getEnterprise().getEnName());
         return url;
         return url;
     }
     }
 }
 }

+ 0 - 14
src/main/java/com/uas/platform/b2c/prod/commodity/service/impl/GoodsServiceImpl.java

@@ -57,7 +57,6 @@ import com.uas.platform.core.persistence.criteria.SimpleExpression;
 import com.uas.platform.core.util.StringUtil;
 import com.uas.platform.core.util.StringUtil;
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.collections.MapUtils;
 import org.apache.commons.collections.MapUtils;
-import org.apache.log4j.Logger;
 import org.apache.poi.ss.usermodel.Cell;
 import org.apache.poi.ss.usermodel.Cell;
 import org.apache.poi.ss.usermodel.Row;
 import org.apache.poi.ss.usermodel.Row;
 import org.apache.poi.ss.usermodel.Sheet;
 import org.apache.poi.ss.usermodel.Sheet;
@@ -183,8 +182,6 @@ public class GoodsServiceImpl implements GoodsService {
 	@Autowired
 	@Autowired
 	private ProductDetailDao productDetailDao;
 	private ProductDetailDao productDetailDao;
 
 
-	private final Logger logger = Logger.getLogger(getClass());
-
 	@Autowired
 	@Autowired
 	public GoodsServiceImpl(KindService kindService, StoreInDao storeInDao, StoreInService storeInService, ProductStandardPutOnInfoDao productStandardPutOnInfoDao, ProductDao productDao, BrowsingHistoryService browsingHistoryService, RecommendProductService recommendProductService) {
 	public GoodsServiceImpl(KindService kindService, StoreInDao storeInDao, StoreInService storeInService, ProductStandardPutOnInfoDao productStandardPutOnInfoDao, ProductDao productDao, BrowsingHistoryService browsingHistoryService, RecommendProductService recommendProductService) {
 		this.kindService = kindService;
 		this.kindService = kindService;
@@ -1875,7 +1872,6 @@ public class GoodsServiceImpl implements GoodsService {
 	@Override
 	@Override
 	public ResultMap offShelfGoodsByProvider(String batchCodes) {
 	public ResultMap offShelfGoodsByProvider(String batchCodes) {
 		SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
 		SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-		logger.info(String.format("%s 商城测试下架时间记录1", dateFormat.format(new Date())));
 		if (StringUtils.isEmpty(batchCodes)) {
 		if (StringUtils.isEmpty(batchCodes)) {
 			return new ResultMap(CodeType.NO_INFO.code(), "待下架批次号字符串不能为空");
 			return new ResultMap(CodeType.NO_INFO.code(), "待下架批次号字符串不能为空");
 		}
 		}
@@ -1887,11 +1883,8 @@ public class GoodsServiceImpl implements GoodsService {
 		List<String> batchCodeList = new ArrayList<>();
 		List<String> batchCodeList = new ArrayList<>();
 
 
 		String storeUuid = "";
 		String storeUuid = "";
-		logger.info(String.format("%s 商城测试下架时间记录2", dateFormat.format(new Date())));
 		for (String batchCode : batchCodeArr) {
 		for (String batchCode : batchCodeArr) {
-			logger.info(String.format("%s 商城测试下架时间记录 调用下架方法开始", dateFormat.format(new Date())));
 			ResultMap resultMap = offShelfOneGoodsByProvider(batchCode);
 			ResultMap resultMap = offShelfOneGoodsByProvider(batchCode);
-			logger.info(String.format("%s 商城测试下架时间记录  调用下架方法结束", dateFormat.format(new Date())));
 			if (resultMap.isSuccess()) {
 			if (resultMap.isSuccess()) {
 				Goods goods = (Goods) resultMap.getData();
 				Goods goods = (Goods) resultMap.getData();
 				uuids.add(goods.getUuid());
 				uuids.add(goods.getUuid());
@@ -1901,17 +1894,13 @@ public class GoodsServiceImpl implements GoodsService {
 			}
 			}
 		}
 		}
 		for (String uuid : uuids) {
 		for (String uuid : uuids) {
-			logger.info(String.format("%s 商城测试下架时间记录 更新器件库存信息 开始", dateFormat.format(new Date())));
 			updateComponentTradeInfos(uuid);
 			updateComponentTradeInfos(uuid);
-			logger.info(String.format("%s 商城测试下架时间记录 更新器件库存信息 结束", dateFormat.format(new Date())));
 		}
 		}
 
 
 		if (!StringUtils.isEmpty(storeUuid)) {
 		if (!StringUtils.isEmpty(storeUuid)) {
-			logger.info(String.format("%s 商城测试下架时间记录 更新推荐库存信息开始", dateFormat.format(new Date())));
 			List<String> list = Arrays.asList(batchCodeArr);
 			List<String> list = Arrays.asList(batchCodeArr);
 			Set<String> batchCodeSet = new HashSet<>(list);
 			Set<String> batchCodeSet = new HashSet<>(list);
 			recommendProductService.deleteProductsWhenSellerUpdateReserve(storeUuid, batchCodeSet);
 			recommendProductService.deleteProductsWhenSellerUpdateReserve(storeUuid, batchCodeSet);
-			logger.info(String.format("%s 商城测试下架时间记录 更新推荐库存信息结束", dateFormat.format(new Date())));
 		}
 		}
 
 
 		if (batchCodeList.size() == 0) {
 		if (batchCodeList.size() == 0) {
@@ -1929,7 +1918,6 @@ public class GoodsServiceImpl implements GoodsService {
 	@Transactional
 	@Transactional
 	public ResultMap offShelfOneGoodsByProvider(String batchCode) {
 	public ResultMap offShelfOneGoodsByProvider(String batchCode) {
 		SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
 		SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-		logger.info(String.format("%s 商城测试下架时间记录 进入下架方法", dateFormat.format(new Date())));
 		if (StringUtils.isEmpty(batchCode)) {
 		if (StringUtils.isEmpty(batchCode)) {
 			return new ResultMap(CodeType.NO_INFO.code(), "待下架批次号不能为空");
 			return new ResultMap(CodeType.NO_INFO.code(), "待下架批次号不能为空");
 		}
 		}
@@ -1948,10 +1936,8 @@ public class GoodsServiceImpl implements GoodsService {
 		}
 		}
 		goods.setStatus(Status.REMOVED.value());
 		goods.setStatus(Status.REMOVED.value());
 
 
-		logger.info(String.format("%s 商城测试下架时间记录 转历史库存 开始", dateFormat.format(new Date())));
 		GoodsHistory goodsHist = goodsHistoryService.converTGoodsHist(goods,
 		GoodsHistory goodsHist = goodsHistoryService.converTGoodsHist(goods,
 				GoodsHistory.OperateType.Down.getPhrase());
 				GoodsHistory.OperateType.Down.getPhrase());
-		logger.info(String.format("%s 商城测试下架时间记录 转历史库存 结束", dateFormat.format(new Date())));
 		goodsHist.setMessage(goodsHist.getMessage() + "该批次下架");
 		goodsHist.setMessage(goodsHist.getMessage() + "该批次下架");
 		goodsHistoryService.save(goodsHist);
 		goodsHistoryService.save(goodsHist);
 
 

+ 14 - 1
src/main/java/com/uas/platform/b2c/prod/product/brand/controller/BrandMapController.java

@@ -97,9 +97,22 @@ public class BrandMapController {
 		return mapService.deleteOneMap(id);
 		return mapService.deleteOneMap(id);
 	}
 	}
 
 
+	/**
+	 * 初始化品牌映射数据
+	 */
 	@RequestMapping(value = "/initMap", method = RequestMethod.POST)
 	@RequestMapping(value = "/initMap", method = RequestMethod.POST)
-	public void initAllBrandMap(){
+	public void initAllBrandMap() {
 		logger.log("品牌映射", "品牌映射初始化");
 		logger.log("品牌映射", "品牌映射初始化");
 		mapService.initBrandMap();
 		mapService.initBrandMap();
 	}
 	}
+
+	/**
+	 * 根据enuu初始化品牌映射数据
+	 * @param enuu
+	 */
+	@RequestMapping(value = "/initMap/{enuu}", method = RequestMethod.GET)
+	public void initBrandMapByEnUU(@PathVariable Long enuu) {
+		logger.log("品牌映射", "品牌映射初始化");
+		mapService.initBrandMapByEnUU(enuu);
+	}
 }
 }

+ 20 - 0
src/main/java/com/uas/platform/b2c/prod/product/brand/modal/BrandTemp.java

@@ -29,6 +29,26 @@ public class BrandTemp {
 	@Column(name = "name_sd")
 	@Column(name = "name_sd")
 	private String nameSd;
 	private String nameSd;
 
 
+	@Override
+	public boolean equals(Object o) {
+		if (this == o) return true;
+		if (o == null || getClass() != o.getClass()) return false;
+
+		BrandTemp temp = (BrandTemp) o;
+
+		if (nameCd != null ? !nameCd.equals(temp.nameCd) : temp.nameCd != null)
+			return false;
+		return nameSd != null ? nameSd.equals(temp.nameSd) : temp.nameSd == null;
+
+	}
+
+	@Override
+	public int hashCode() {
+		int result = nameCd != null ? nameCd.hashCode() : 0;
+		result = 31 * result + (nameSd != null ? nameSd.hashCode() : 0);
+		return result;
+	}
+
 	public Long getId() {
 	public Long getId() {
 		return id;
 		return id;
 	}
 	}

+ 2 - 0
src/main/java/com/uas/platform/b2c/prod/product/brand/service/BrandMapService.java

@@ -38,4 +38,6 @@ public interface BrandMapService {
 	Object deleteOneMap(Long id);
 	Object deleteOneMap(Long id);
 
 
 	void initBrandMap();
 	void initBrandMap();
+
+	void initBrandMapByEnUU(Long enuu);
 }
 }

+ 44 - 4
src/main/java/com/uas/platform/b2c/prod/product/brand/service/impl/BrandMapServiceImpl.java

@@ -30,10 +30,7 @@ import javax.persistence.criteria.CriteriaBuilder;
 import javax.persistence.criteria.CriteriaQuery;
 import javax.persistence.criteria.CriteriaQuery;
 import javax.persistence.criteria.Predicate;
 import javax.persistence.criteria.Predicate;
 import javax.persistence.criteria.Root;
 import javax.persistence.criteria.Root;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Date;
-import java.util.List;
+import java.util.*;
 
 
 /**
 /**
  * 品牌映射服务的实现类
  * 品牌映射服务的实现类
@@ -181,4 +178,47 @@ public class BrandMapServiceImpl implements BrandMapService{
 			}
 			}
 		}
 		}
 	}
 	}
+
+	@Override
+	public void initBrandMapByEnUU(Long enuu) {
+		List<BrandTemp> originalList = brandTempDao.getAllBySdNameNotNull();
+		Set<BrandTemp> convertList = new LinkedHashSet<>(originalList.size());
+		for (BrandTemp temp : originalList){
+			if (!temp.getNameCd().equals(temp.getNameSd())) { //相同的不记录
+				convertList.add(temp);
+			}
+		}
+		List<BrandMap> resultList = new ArrayList<>();
+
+		List<StoreIn> storeList = storeInDao.findByEnUU(enuu);
+		if (CollectionUtils.isEmpty(storeList)){
+			throw new IllegalOperatorException("对应的店铺信息丢失,请刷新重新");
+		}else{
+			StoreIn store = storeList.get(0);
+			for (BrandTemp temp : convertList){
+				List<Brand> brandList = brandDao.findByNameEn(temp.getNameSd());
+				if (!CollectionUtils.isEmpty(brandList)){
+					Brand brand = brandList.get(0);
+					BrandMap map = new BrandMap();
+					map.setNameStandardEn(temp.getNameSd());
+					map.setNameStandardCn(brand.getNameCn());
+					map.setBrandid(brand.getId());
+					map.setUuid(brand.getUuid());
+					map.setNameChildEn(temp.getNameCd());
+					map.setNameChildCn(temp.getNameCd());
+					map.setEnuu(store.getEnUU());
+					map.setEnName(store.getStoreName());
+					map.setType(store.getType());
+
+					User user = SystemSession.getUser();
+					map.setUserUU(user.getUserUU());
+					map.setOperateName(user.getUserName());
+					map.setOperateTime(new Date());
+
+					resultList.add(map);
+				}
+			}
+			brandMapDao.save(resultList);
+		}
+	}
 }
 }

+ 5 - 1
src/main/webapp/resources/css/erp/align.css

@@ -1,3 +1,7 @@
 .user_content .user_right {
 .user_content .user_right {
-    margin-right: 90px;
+    float: none!important;
+    margin: 0 auto;
+}
+.wrap {
+    width: 100%;
 }
 }

+ 225 - 194
src/main/webapp/resources/js/usercenter/controllers/forstore/buyer_cart_ctrl.js

@@ -43,47 +43,47 @@ define(["app/app", 'jquery-summernote'], function(app) {
 		$scope.isChooseAll = false;
 		$scope.isChooseAll = false;
 
 
 		$scope.loadData = function (){
 		$scope.loadData = function (){
-			Cart.getPageInfo($scope.pageInfo, function(data) {
-				$scope.isDataLoading = false;
-				$scope.total = data.totalElements;
-				$scope.pageNum = data.totalPages;
+				Cart.getPageInfo($scope.pageInfo, function(data) {
+					$scope.isDataLoading = false;
+					$scope.total = data.totalElements;
+					$scope.pageNum = data.totalPages;
 
 
-				angular.forEach(data.content, function (cart) {
-					cart.buyCurrency = cart.currencyName.indexOf("RMB") > -1 ? "RMB" : "USD";
-					cart.isSelect = false;
-					//计算分段和统计一下价格
-					$scope.getPrice(cart);
-
-					//便于后期循环
-					$scope.carts.push(cart);
-					$scope.disabledAddAndSub(cart);
-					$scope.countByPage += 1;
-					var isContain = false;
-					for (var i = 0; i < $scope.cartMap.length; i++) {
-						if(angular.equals($scope.cartMap[i].name, cart.storeName)) {
-							$scope.cartMap[i].arr.push(cart);
-							isContain = true;
+					angular.forEach(data.content, function (cart) {
+						cart.buyCurrency = cart.currencyName.indexOf("RMB") > -1 ? "RMB" : "USD";
+						cart.isSelect = false;
+						//计算分段和统计一下价格
+						$scope.getPrice(cart);
+
+						//便于后期循环
+						$scope.carts.push(cart);
+						$scope.disabledAddAndSub(cart);
+						$scope.countByPage += 1;
+						var isContain = false;
+						for (var i = 0; i < $scope.cartMap.length; i++) {
+							if(angular.equals($scope.cartMap[i].name, cart.storeName)) {
+								$scope.cartMap[i].arr.push(cart);
+								isContain = true;
+							}
 						}
 						}
-					}
-					if(!isContain) {
-						var obj = {};
-						obj.name = cart.storeName;
-						obj.arr = [];
-						obj.arr.push(cart);
-						$scope.cartMap.push(obj);
-					}
-				});
-				$scope.cartIsEmpty = !$scope.carts.length ? true : false;
-				//设置全选的复选框
-				$scope.isChooseAll = $scope.isAllSelect($scope.carts);
+						if(!isContain) {
+							var obj = {};
+							obj.name = cart.storeName;
+							obj.arr = [];
+							obj.arr.push(cart);
+							$scope.cartMap.push(obj);
+						}
+					});
+					$scope.cartIsEmpty = !$scope.carts.length ? true : false;
+					//设置全选的复选框
+					$scope.isChooseAll = $scope.isAllSelect($scope.carts);
 
 
-				//设置店铺复选框的状态
-				angular.forEach($scope.cartMap, function (store) {
-					$scope.selectedStore[store.name] = $scope.isAllSelect(store.arr);
+					//设置店铺复选框的状态
+					angular.forEach($scope.cartMap, function (store) {
+						$scope.selectedStore[store.name] = $scope.isAllSelect(store.arr);
+					});
+				},function() {
+					toaster.pop('error', "提示", "获取购物车信息失败,请刷新页面");
 				});
 				});
-			},function() {
-				toaster.pop('error', "提示", "获取购物车信息失败,请刷新页面");
-			});
 		};
 		};
 
 
 		$scope.loadData();
 		$scope.loadData();
@@ -120,7 +120,7 @@ define(["app/app", 'jquery-summernote'], function(app) {
 			//计算总价格
 			//计算总价格
 			$scope.calculateAmount($scope.selectedStoreCarts);
 			$scope.calculateAmount($scope.selectedStoreCarts);
 		};
 		};
-
+		
 		// 减少按钮,每次减minPackQty
 		// 减少按钮,每次减minPackQty
 		$scope.reduce = function(cart){
 		$scope.reduce = function(cart){
 			if(cart.status == 1) {
 			if(cart.status == 1) {
@@ -139,7 +139,7 @@ define(["app/app", 'jquery-summernote'], function(app) {
 			//计算总价格
 			//计算总价格
 			$scope.calculateAmount($scope.selectedStoreCarts);
 			$scope.calculateAmount($scope.selectedStoreCarts);
 		};
 		};
-
+				
 		//根据搜索词过滤购物车信息,对类目、品牌、器件筛选
 		//根据搜索词过滤购物车信息,对类目、品牌、器件筛选
 		$scope.cartFilterCurrency = function(cartGroup) {
 		$scope.cartFilterCurrency = function(cartGroup) {
 			var result = false;
 			var result = false;
@@ -167,8 +167,8 @@ define(["app/app", 'jquery-summernote'], function(app) {
 
 
 		$scope.closeTable = function() {
 		$scope.closeTable = function() {
 			console.log('0kds');
 			console.log('0kds');
-		};
-		// //监听点击的位置,隐藏价格梯度的信息
+        };
+        // //监听点击的位置,隐藏价格梯度的信息
 		// document.onclick = function(event) {
 		// document.onclick = function(event) {
 		// 	$scope.$apply(function () {
 		// 	$scope.$apply(function () {
 		// 		angular.forEach($scope.carts, function (cart) {
 		// 		angular.forEach($scope.carts, function (cart) {
@@ -181,9 +181,9 @@ define(["app/app", 'jquery-summernote'], function(app) {
 
 
 		//查看价格分段。
 		//查看价格分段。
 		$scope.togglePrice = function (cart) {
 		$scope.togglePrice = function (cart) {
-			cart.display = cart.display == 'block' ? 'none' : 'block';
-		};
-		// 统计已勾选批次
+            cart.display = cart.display == 'block' ? 'none' : 'block';
+        };
+        // 统计已勾选批次
 		var creatSelectArr = function(){
 		var creatSelectArr = function(){
 			var arr = [];
 			var arr = [];
 			angular.forEach($scope.carts, function(cart) {
 			angular.forEach($scope.carts, function(cart) {
@@ -220,20 +220,46 @@ define(["app/app", 'jquery-summernote'], function(app) {
 
 
 		// 输入购买量限制
 		// 输入购买量限制
 		$scope.blurNum = function (c) {
 		$scope.blurNum = function (c) {
+			// c.inputError = 0;
+			// c.noInputError = 0;
 			if(isNaN(c.number)) {
 			if(isNaN(c.number)) {
 				toaster.pop('info','提示','请输入数字');
 				toaster.pop('info','提示','请输入数字');
 				c.number = c.goods.minBuyQty;
 				c.number = c.goods.minBuyQty;
 			}
 			}
 			c.number = Number(c.number);
 			c.number = Number(c.number);
 			if (c.number < c.goods.minBuyQty || !c.number) {
 			if (c.number < c.goods.minBuyQty || !c.number) {
-				toaster.pop("info", "提示", "该商品最少购买" + c.goods.minBuyQty + "件");
-				c.number = c.goods.minBuyQty;
+				// toaster.pop("info", "提示", "该商品最少购买" + c.goods.minBuyQty + "件");
+				if (c.goods.breakUp) {
+					toaster.pop('info','提示','最小起订量为' + c.goods.minBuyQty);
+					// c.noInputError = 1;
+					c.number = c.goods.minBuyQty;
+					// $timeout(function () {
+					// 	c.noInputError = 1;
+					// }, 3000);
+				} else {
+					// c.inputError = 1;
+					toaster.pop('info','提示','最小起订量为' + c.goods.minBuyQty);
+					c.number = c.goods.minBuyQty;
+					// $timeout(function () {
+					// 	c.inputError = 0;
+					// }, 3000);
+				}
 			}else if(c.number > c.goods.reserve){
 			}else if(c.number > c.goods.reserve){
-				toaster.pop("info", "提示", "库存不足");
+				// toaster.pop("info", "提示", "库存不足");
 				if(c.goods.breakUp) {
 				if(c.goods.breakUp) {
+					toaster.pop("info", "提示", "库存不足");
+					// c.noInputError = 2;
 					c.number = c.goods.reserve;
 					c.number = c.goods.reserve;
+					// $timeout(function () {
+					// 	c.noInputError = 0;
+					// }, 3000);
 				}else {
 				}else {
+					// c.inputError = 2;
+					toaster.pop("info", "提示", "库存不足")
 					c.number = Number(NumberService.sub(c.goods.reserve, c.goods.reserve % c.goods.minPackQty));
 					c.number = Number(NumberService.sub(c.goods.reserve, c.goods.reserve % c.goods.minPackQty));
+					// $timeout(function () {
+					// 	c.inputError = 0;
+					// }, 3000);
 				}
 				}
 				if(Number(c.number) < Number(c.goods.minBuyQty)) {
 				if(Number(c.number) < Number(c.goods.minBuyQty)) {
 					c.number = c.goods.minBuyQty;
 					c.number = c.goods.minBuyQty;
@@ -242,8 +268,13 @@ define(["app/app", 'jquery-summernote'], function(app) {
 				if(!c.goods.breakUp) {
 				if(!c.goods.breakUp) {
 					var remander = c.number % c.goods.minPackQty;
 					var remander = c.number % c.goods.minPackQty;
 					if(remander != 0) {
 					if(remander != 0) {
+						// c.inputError = 3;
+						toaster.pop("info", "提示", "不支持拆包且包装量为" + c.goods.minPackQty);
 						c.number = NumberService.sub(c.number, c.number % c.goods.minPackQty);
 						c.number = NumberService.sub(c.number, c.number % c.goods.minPackQty);
 						c.number = NumberService.add(c.number, c.goods.minPackQty);
 						c.number = NumberService.add(c.number, c.goods.minPackQty);
+						// $timeout(function () {
+						// 	c.inputError = 0;
+						// }, 3000);
 					}
 					}
 					if(Number(c.number) > Number(c.goods.reserve)) {
 					if(Number(c.number) > Number(c.goods.reserve)) {
 						c.number = NumberService.sub(c.goods.reserve, c.goods.reserve % c.goods.minPackQty);
 						c.number = NumberService.sub(c.goods.reserve, c.goods.reserve % c.goods.minPackQty);
@@ -328,8 +359,8 @@ define(["app/app", 'jquery-summernote'], function(app) {
 						return ;
 						return ;
 					}
 					}
 				}
 				}
-				$scope.totalMoneyInfo.countBT++;
-				$scope.selectedStoreCarts.push(cart);
+                $scope.totalMoneyInfo.countBT++;
+                $scope.selectedStoreCarts.push(cart);
 			}else {//取消勾选
 			}else {//取消勾选
 				$scope.totalMoneyInfo.countBT--;
 				$scope.totalMoneyInfo.countBT--;
 				$scope.selectedStoreCarts = $scope.selectedStoreCarts.filter(function(item) {
 				$scope.selectedStoreCarts = $scope.selectedStoreCarts.filter(function(item) {
@@ -373,36 +404,36 @@ define(["app/app", 'jquery-summernote'], function(app) {
 			}
 			}
 		};
 		};
 
 
-		// 清空失效产品
-		$scope.deleteInvalid = function(){
+        // 清空失效产品
+        $scope.deleteInvalid = function(){
 			var arr = [];
 			var arr = [];
-			angular.forEach($scope.carts, function(cart){
-				if(cart.status == 1){
-					arr.push(cart.id);
-				}
-			});
-			if(arr.length <= 0) {
-				toaster.pop('warning', '提示', '购物车内目前没有失效的产品');
-				return ;
-			}
-			var ids = angular.toJson(arr);
-			$modal.open({
-				templateUrl : 'static/view/common/modal/invalid_delete_modal.html',
-				controller : 'cartDeleteCtrl',
-				size : 'md',
-				resolve : {
-					description : function () {
-						return '是否删除购物车内的无效商品';
-					},
-					ids : function () {
-						return ids;
-					}
-				}
-			}).result.then(function () {
+            angular.forEach($scope.carts, function(cart){
+                if(cart.status == 1){
+                    arr.push(cart.id);
+                }
+            });
+            if(arr.length <= 0) {
+                toaster.pop('warning', '提示', '购物车内目前没有失效的产品');
+                return ;
+            }
+            var ids = angular.toJson(arr);
+            $modal.open({
+                templateUrl : 'static/view/common/modal/invalid_delete_modal.html',
+                controller : 'cartDeleteCtrl',
+                size : 'md',
+                resolve : {
+                    description : function () {
+                        return '是否删除购物车内的无效商品';
+                    },
+                    ids : function () {
+                        return ids;
+                    }
+                }
+            }).result.then(function () {
 				afterDeleteRefreshInfo(arr);
 				afterDeleteRefreshInfo(arr);
 			}, function () {
 			}, function () {
-			});
-		};
+            });
+        };
 
 
 		var afterDeleteRefreshInfo = function (arr) {
 		var afterDeleteRefreshInfo = function (arr) {
 			if(arr.length < 1) {
 			if(arr.length < 1) {
@@ -446,22 +477,22 @@ define(["app/app", 'jquery-summernote'], function(app) {
 			$scope.calculateAmount($scope.selectedStoreCarts);
 			$scope.calculateAmount($scope.selectedStoreCarts);
 		}
 		}
 
 
-		$scope.deleteById = function(id){
-			var arr = [];
-			if(id != null){
-				arr.push(id);
-			}else {
-				angular.forEach($scope.carts, function(cart){
-					if(cart.isSelect){
-						arr.push(cart.id);
-					}
-				});
-			}
-			if(arr.length <= 0) {
+        $scope.deleteById = function(id){
+            var arr = [];
+            if(id != null){
+                arr.push(id);
+            }else {
+                angular.forEach($scope.carts, function(cart){
+                    if(cart.isSelect){
+                        arr.push(cart.id);
+                    }
+                });
+            }
+            if(arr.length <= 0) {
 				toaster.pop('warning', '提示', '请选择需要删除的商品');
 				toaster.pop('warning', '提示', '请选择需要删除的商品');
 				return ;
 				return ;
 			}
 			}
-			var ids = angular.toJson(arr);
+            var ids = angular.toJson(arr);
 			$modal.open({
 			$modal.open({
 				templateUrl : 'static/view/common/modal/delete_modal.html',
 				templateUrl : 'static/view/common/modal/delete_modal.html',
 				controller : 'cartDeleteCtrl',
 				controller : 'cartDeleteCtrl',
@@ -470,9 +501,9 @@ define(["app/app", 'jquery-summernote'], function(app) {
 					description : function () {
 					description : function () {
 						return '是否删除此商品';
 						return '是否删除此商品';
 					},
 					},
-					ids : function () {
-						return ids;
-					}
+                    ids : function () {
+                        return ids;
+                    }
 				}
 				}
 			}).result.then(function () {
 			}).result.then(function () {
 				afterDeleteRefreshInfo(arr);
 				afterDeleteRefreshInfo(arr);
@@ -499,8 +530,8 @@ define(["app/app", 'jquery-summernote'], function(app) {
 				});
 				});
 				return !contain;
 				return !contain;
 			});
 			});
-		};
-		//判断是空对象
+        };
+        //判断是空对象
 		$scope.isNullObject = function(obj) {
 		$scope.isNullObject = function(obj) {
 			var isObject = true;
 			var isObject = true;
 			for(var k in obj) {
 			for(var k in obj) {
@@ -538,8 +569,8 @@ define(["app/app", 'jquery-summernote'], function(app) {
 					cart.contactSeller = false;
 					cart.contactSeller = false;
 				};
 				};
 			});
 			});
-		};
-		/**
+        };
+        /**
 		 * 监听点击的位置,隐藏相应的状态框
 		 * 监听点击的位置,隐藏相应的状态框
 		 * @param event
 		 * @param event
 		 */
 		 */
@@ -576,8 +607,8 @@ define(["app/app", 'jquery-summernote'], function(app) {
 					if(!isThisTag) {
 					if(!isThisTag) {
 						$scope.carts[i].contactSeller = false;
 						$scope.carts[i].contactSeller = false;
 					}
 					}
-				}
-			});
+                }
+            });
 		};
 		};
 
 
 
 
@@ -599,23 +630,23 @@ define(["app/app", 'jquery-summernote'], function(app) {
 		$scope.setAllCartCheck = function(checked) {
 		$scope.setAllCartCheck = function(checked) {
 			$scope.selectedStoreCarts = [];
 			$scope.selectedStoreCarts = [];
 			angular.forEach($scope.cartMap, function(store) {
 			angular.forEach($scope.cartMap, function(store) {
-				if(store.arr && store.arr.length > 0) {
-					var storeChecked = false;
-					angular.forEach(store.arr, function (cart) {
-						if(cart.status != 1 && checked) {//购物车的信息是否有效【是否下架】
-							cart.isSelect = checked;
-							storeChecked = true;
-							$scope.selectedStoreCarts.push(cart);
+					if(store.arr && store.arr.length > 0) {
+						var storeChecked = false;
+						angular.forEach(store.arr, function (cart) {
+							if(cart.status != 1 && checked) {//购物车的信息是否有效【是否下架】
+								cart.isSelect = checked;
+								storeChecked = true;
+								$scope.selectedStoreCarts.push(cart);
+							}else {
+								cart.isSelect = false;
+							}
+						});
+						if(storeChecked) {
+							$scope.selectedStore[store.name] = checked;//店铺的复选框也需要同步
 						}else {
 						}else {
-							cart.isSelect = false;
+							$scope.selectedStore[store.name] = false;//如果没有执行过storeChecked = true,则该店铺代表所有的都没有勾选
 						}
 						}
-					});
-					if(storeChecked) {
-						$scope.selectedStore[store.name] = checked;//店铺的复选框也需要同步
-					}else {
-						$scope.selectedStore[store.name] = false;//如果没有执行过storeChecked = true,则该店铺代表所有的都没有勾选
 					}
 					}
-				}
 
 
 			});
 			});
 		};
 		};
@@ -634,8 +665,8 @@ define(["app/app", 'jquery-summernote'], function(app) {
 				}
 				}
 			}
 			}
 			return !isAlldisabled&&isAllChecked;
 			return !isAlldisabled&&isAllChecked;
-		};
-		/**
+        };
+        /**
 		 * 店铺选中状态信息
 		 * 店铺选中状态信息
 		 */
 		 */
 		$scope.selectedStore = {};
 		$scope.selectedStore = {};
@@ -780,17 +811,17 @@ define(["app/app", 'jquery-summernote'], function(app) {
 			SessionService.set("buyNow",false);
 			SessionService.set("buyNow",false);
 			var jsonOrderDetails = angular.toJson(result);
 			var jsonOrderDetails = angular.toJson(result);
 			Order.saveByGroup({}, jsonOrderDetails, function(result){
 			Order.saveByGroup({}, jsonOrderDetails, function(result){
-				if(result.code == 1) {
+                if(result.code == 1) {
 					if(result.message) {
 					if(result.message) {
 						toaster.pop('info', result.message);
 						toaster.pop('info', result.message);
 					}
 					}
-					$state.go('order_pay', {orderid :  enIdFilter(result.data.orderid)});
-				}else if(result.code == 7){
-					toaster.pop('info', '提示', "选中的购物车信息已经失效,将为您刷新界面之后重新操作");
+                    $state.go('order_pay', {orderid :  enIdFilter(result.data.orderid)});
+                }else if(result.code == 7){
+                    toaster.pop('info', '提示', "选中的购物车信息已经失效,将为您刷新界面之后重新操作");
 					$timeout(function () {
 					$timeout(function () {
 						window.location.reload();
 						window.location.reload();
 					}, 1500);
 					}, 1500);
-				}else {
+                }else {
 					toaster.pop('info', '提示', result.message);
 					toaster.pop('info', '提示', result.message);
 				}
 				}
 			}, function(res){
 			}, function(res){
@@ -838,41 +869,41 @@ define(["app/app", 'jquery-summernote'], function(app) {
 			}
 			}
 
 
 		};
 		};
-		// 移入收藏后删除购物车操作
+        // 移入收藏后删除购物车操作
 		$scope.collectDelete = function(id){
 		$scope.collectDelete = function(id){
-			var arr = [];
-			if(id != null){
-				arr.push(id);
-			}else {
-				angular.forEach($scope.carts, function(cart){
-					if(cart.isSelect){
-						arr.push(cart.id);
-					}
-				});
-			}
-			var ids = angular.toJson(arr);
-			Cart.deleteById({ids : ids}, function(data){
-				$rootScope.countCart = $rootScope.countCart - arr.length;
-
-				//更新选中的购物车信息
-				$scope.selectedStoreCarts = $scope.arrayFilterId($scope.selectedStoreCarts, arr);
-				//更新购物车信息
-				$scope.carts = $scope.arrayFilterId($scope.carts, arr);
-				//判断是否全部删除,如果全部删除,就将全选置为取消状态。
-				if($scope.carts.length == 0) {
-					$scope.isChooseAll = false;
+            var arr = [];
+            if(id != null){
+                arr.push(id);
+            }else {
+                angular.forEach($scope.carts, function(cart){
+                    if(cart.isSelect){
+                        arr.push(cart.id);
+                    }
+                });
+            }
+            var ids = angular.toJson(arr);
+            Cart.deleteById({ids : ids}, function(data){
+                $rootScope.countCart = $rootScope.countCart - arr.length;
+
+                //更新选中的购物车信息
+                $scope.selectedStoreCarts = $scope.arrayFilterId($scope.selectedStoreCarts, arr);
+                //更新购物车信息
+                $scope.carts = $scope.arrayFilterId($scope.carts, arr);
+                //判断是否全部删除,如果全部删除,就将全选置为取消状态。
+                if($scope.carts.length == 0) {
+                    $scope.isChooseAll = false;
 					$scope.cartIsEmpty = true;
 					$scope.cartIsEmpty = true;
-				}
+                }
 
 
-				//更新map中购物车信息
-				var deleteStoreName = [];
+                //更新map中购物车信息
+                var deleteStoreName = [];
 				angular.forEach($scope.cartMap, function(store) {
 				angular.forEach($scope.cartMap, function(store) {
-					if(store.arr && store.arr.length > 0) {
-						store.arr = $scope.arrayFilterId(store.arr, arr)
-						if(!store.arr || !store.arr.length || store.arr.length == 0) {
-							deleteStoreName.push(store.name);
+						if(store.arr && store.arr.length > 0) {
+							store.arr = $scope.arrayFilterId(store.arr, arr)
+							if(!store.arr || !store.arr.length || store.arr.length == 0) {
+								deleteStoreName.push(store.name);
+							}
 						}
 						}
-					}
 				});
 				});
 				//删除$scope.cartMap多余的部分。
 				//删除$scope.cartMap多余的部分。
 				angular.forEach(deleteStoreName, function(storeName) {
 				angular.forEach(deleteStoreName, function(storeName) {
@@ -881,27 +912,27 @@ define(["app/app", 'jquery-summernote'], function(app) {
 					});
 					});
 				});
 				});
 
 
-				//计算总金额
-				$scope.calculateAmount($scope.selectedStoreCarts);
+                //计算总金额
+                $scope.calculateAmount($scope.selectedStoreCarts);
 
 
-			}, function (res) {
-				toaster.pop('error', '系统错误', '购物车信息删除失败' + res.data);
-			});
+            }, function (res) {
+                toaster.pop('error', '系统错误', '购物车信息删除失败' + res.data);
+            });
 
 
 
 
 		};
 		};
-		// 移入收藏
-		$scope.collect = function(uuid, id) {
+        // 移入收藏
+        $scope.collect = function(uuid, id) {
 			if(uuid){
 			if(uuid){
-				ComponentActive.getSimpleInfoByUuid({uuid: uuid}, { }, function(data){
-					var obj = {'componentid': data.id, 'kind': 2};
-					collectionService.saveEntity({ }, obj, function(data) {
-						$scope.collectDelete(id);
-						toaster.pop('success', '收藏成功');
-					}, function(response) {
-						toaster.pop('error', '收藏失败');
-					})
-				});
+                ComponentActive.getSimpleInfoByUuid({uuid: uuid}, { }, function(data){
+                    var obj = {'componentid': data.id, 'kind': 2};
+                    collectionService.saveEntity({ }, obj, function(data) {
+                        $scope.collectDelete(id);
+                        toaster.pop('success', '收藏成功');
+                    }, function(response) {
+                        toaster.pop('error', '收藏失败');
+                    })
+                });
 			}else{
 			}else{
 				var uuids = [];
 				var uuids = [];
 				angular.forEach($scope.cartMap, function(store){
 				angular.forEach($scope.cartMap, function(store){
@@ -915,14 +946,14 @@ define(["app/app", 'jquery-summernote'], function(app) {
 					toaster.pop('info', '你还未选择任何产品');
 					toaster.pop('info', '你还未选择任何产品');
 					return;
 					return;
 				}
 				}
-				collectionService.saveStores({ }, uuids, function(response){
+                collectionService.saveStores({ }, uuids, function(response){
 					if(response.data == "success"){
 					if(response.data == "success"){
-						$scope.collectDelete();
-						toaster.pop('success', '收藏成功');
+                        $scope.collectDelete();
+                        toaster.pop('success', '收藏成功');
 					}
 					}
 				},function () {
 				},function () {
-					toaster.pop('error', '收藏失败');
-				})
+                    toaster.pop('error', '收藏失败');
+                })
 			}
 			}
 		}
 		}
 
 
@@ -968,32 +999,32 @@ define(["app/app", 'jquery-summernote'], function(app) {
 		}
 		}
 	}]);
 	}]);
 
 
-	/**
-	 * 删除的逻辑
-	 */
+    /**
+     * 删除的逻辑
+     */
 	app.register.controller('cartDeleteCtrl', ['$scope', 'description', 'Cart', '$modalInstance', 'toaster', 'ids', function ($scope, description, Cart, $modalInstance, toaster,ids) {
 	app.register.controller('cartDeleteCtrl', ['$scope', 'description', 'Cart', '$modalInstance', 'toaster', 'ids', function ($scope, description, Cart, $modalInstance, toaster,ids) {
 
 
-		$scope.confirmDelete = function () {
-			Cart.deleteById({ids : ids}, function(data){
-				toaster.pop('success', '成功删除');
-				$modalInstance.close()
-			}, function (res) {
-				toaster.pop('error', '系统错误', '购物车信息删除失败' + res.data);
-			});
-		};
-
-		$scope.confirmDeleteInvalid = function () {
-			Cart.deleteById({ids : ids}, function(data){
-				toaster.pop('success', '成功清除购物车内的无效产品');
-				$modalInstance.close()
-			}, function (res) {
-				toaster.pop('error', '系统错误', '购物车信息删除失败' + res.data);
-			});
-		};
-
-		$scope.cancleDelete = function () {
-			$modalInstance.dismiss();
-		}
+        $scope.confirmDelete = function () {
+            Cart.deleteById({ids : ids}, function(data){
+                toaster.pop('success', '成功删除');
+                $modalInstance.close()
+            }, function (res) {
+                toaster.pop('error', '系统错误', '购物车信息删除失败' + res.data);
+            });
+        };
+
+        $scope.confirmDeleteInvalid = function () {
+            Cart.deleteById({ids : ids}, function(data){
+                toaster.pop('success', '成功清除购物车内的无效产品');
+                $modalInstance.close()
+            }, function (res) {
+                toaster.pop('error', '系统错误', '购物车信息删除失败' + res.data);
+            });
+        };
+
+        $scope.cancleDelete = function () {
+            $modalInstance.dismiss();
+        }
 
 
 	}]);
 	}]);
 
 

+ 35 - 4
src/main/webapp/resources/js/usercenter/controllers/forstore/order_pay_ctrl.js

@@ -416,25 +416,56 @@ define(['app/app'], function(app) {
 
 
 		// 输入购买量限制
 		// 输入购买量限制
 		$scope.blurNum = function (detail) {
 		$scope.blurNum = function (detail) {
+			// detail.inputError = 0;
+			// detail.noInputError = 0;
 			detail.number = Number(detail.number);
 			detail.number = Number(detail.number);
 			if (detail.number < detail.goodsHistory.minBuyQty || !detail.number) {
 			if (detail.number < detail.goodsHistory.minBuyQty || !detail.number) {
-				toaster.pop("info", "提示", "该商品最少购买" + detail.goodsHistory.minBuyQty + "件");
-				detail.number = detail.goodsHistory.minBuyQty;
+				// toaster.pop("info", "提示", "该商品最少购买" + detail.goodsHistory.minBuyQty + "件");
+				if(detail.goodsHistory.breakUp) {
+					// detail.noInputError = 1;
+					toaster.pop('info','提示','最小起订量为' + detail.goodsHistory.minBuyQty);
+					detail.number = detail.goodsHistory.minBuyQty;
+					// $timeout(function () {
+					// 	c.noInputError = 0;
+					// }, 3000);
+				}else{
+					// detail.inputError = 1;
+					toaster.pop('info','提示','最小起订量为' + detail.goodsHistory.minBuyQty);
+					detail.number = detail.goodsHistory.minBuyQty;
+					// $timeout(function () {
+					// 	detail.inputError = 0;
+					// },3000);
+				}
 			}else if(detail.number > detail.goodsHistory.reserve){
 			}else if(detail.number > detail.goodsHistory.reserve){
 				if(detail.goodsHistory.breakUp) {
 				if(detail.goodsHistory.breakUp) {
+					// detail.noInputError = 2;
+					toaster.pop('info','提示','库存不足');
 					detail.number = detail.goodsHistory.reserve;
 					detail.number = detail.goodsHistory.reserve;
+					// $timeout(function () {
+					// 	c.noInputError = 0;
+					// }, 3000);
 				}else{
 				}else{
-					detail.number = Number(NumberService.sub(detail.goodsHistory.reserve, detail.goodsHistory.reserve %detail.goodsHistory.minPackQty));
+					// detail.inputError = 2;
+					toaster.pop('info','提示','库存不足');
+					detail.number = Number(NumberService.sub(detail.goodsHistory.reserve, detail.goodsHistory.reserve % detail.goodsHistory.minPackQty));
+					// $timeout(function () {
+					// 	detail.inputError = 0;
+					// },3000);
 				}
 				}
-				toaster.pop('info', '提示','库存不足');
+				// toaster.pop('info', '提示','库存不足');
 			}else {
 			}else {
 				if(!detail.goodsHistory.breakUp) {
 				if(!detail.goodsHistory.breakUp) {
 					var remandar = detail.number % detail.goodsHistory.minPackQty;
 					var remandar = detail.number % detail.goodsHistory.minPackQty;
 					if(remandar != 0) {
 					if(remandar != 0) {
+						// detail.inputError = 3;
+						toaster.pop("info", "提示", "不支持拆包且包装量为" + detail.goodsHistory.minPackQty);
 						detail.number = Number(NumberService.add(NumberService.sub(detail.number, detail.number % detail.goodsHistory.minPackQty), detail.goodsHistory.minPackQty));
 						detail.number = Number(NumberService.add(NumberService.sub(detail.number, detail.number % detail.goodsHistory.minPackQty), detail.goodsHistory.minPackQty));
 						if(detail.number > detail.goodsHistory.reserve) {
 						if(detail.number > detail.goodsHistory.reserve) {
 							detail.number = NumberService.sub(detail.goodsHistory.reserve, detail.goodsHistory.reserve % detail.goodsHistory.minPackQty);
 							detail.number = NumberService.sub(detail.goodsHistory.reserve, detail.goodsHistory.reserve % detail.goodsHistory.minPackQty);
 						}
 						}
+						// $timeout(function () {
+						// 	detail.inputError = 0;
+						// },3000);
 					}
 					}
 				}
 				}
 			}
 			}

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

@@ -64,8 +64,11 @@ define(['app/app'], function(app) {
 					Installment.validationCount({purchaseId : $scope.purchase.id}, null, function (data) {
 					Installment.validationCount({purchaseId : $scope.purchase.id}, null, function (data) {
 						$scope.isShow = true;
 						$scope.isShow = true;
 					}, function (error) {
 					}, function (error) {
-						// toaster.pop('error', error.data);
-						$scope.setShowNoAccountBox(true);
+						if (error.data == '"当前企业没有设置分期功能权限,如有需要请联系客服"') {
+							toaster.pop('error', error.data);
+						} else {
+							$scope.setShowNoAccountBox(true);
+						}
 						$scope.isShow = false;
 						$scope.isShow = false;
 					});
 					});
 				} else {
 				} else {

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

@@ -424,6 +424,7 @@ define([ 'app/app' ], function(app) {
                         DistributionRule.saveRule({isAdd:isAdd, isActive:$scope.isActive}, $scope.modifyRule , function (data) {
                         DistributionRule.saveRule({isAdd:isAdd, isActive:$scope.isActive}, $scope.modifyRule , function (data) {
                             if (data.success){
                             if (data.success){
                                 $scope.editFrame = false;
                                 $scope.editFrame = false;
+                                $scope.chooseBox = false;
                                 $scope.tab = 'deliverRule';
                                 $scope.tab = 'deliverRule';
                                 if (isAdd){
                                 if (isAdd){
                                     toaster.pop('info', "保存成功");
                                     toaster.pop('info', "保存成功");
@@ -489,6 +490,7 @@ define([ 'app/app' ], function(app) {
 
 
         $scope.cancelEdit = function () {
         $scope.cancelEdit = function () {
             $scope.editFrame = false;
             $scope.editFrame = false;
+            $scope.chooseBox = false;
             $scope.tab = 'deliverRule';
             $scope.tab = 'deliverRule';
         };
         };
 
 
@@ -584,7 +586,7 @@ define([ 'app/app' ], function(app) {
                                 items: null,
                                 items: null,
                                 selectedNum : 0,
                                 selectedNum : 0,
                                 folded: true
                                 folded: true
-                            }
+                            };
                             $scope.hmtChild.items = convert(v, $scope.hmtChild);
                             $scope.hmtChild.items = convert(v, $scope.hmtChild);
                             var hmtArr = [];
                             var hmtArr = [];
                             hmtArr.push($scope.hmtChild);
                             hmtArr.push($scope.hmtChild);
@@ -601,7 +603,7 @@ define([ 'app/app' ], function(app) {
             $scope.chooseBox = true;
             $scope.chooseBox = true;
             $scope.tree = $scope.tree ? $scope.tree : new TreeData($scope.cityData);
             $scope.tree = $scope.tree ? $scope.tree : new TreeData($scope.cityData);
             $scope.tree.newInitData($scope.mapArray);
             $scope.tree.newInitData($scope.mapArray);
-        }
+        };
 
 
         /**
         /**
          * 切换生效状态
          * 切换生效状态
@@ -649,6 +651,10 @@ define([ 'app/app' ], function(app) {
             $scope.deleteFrame = false;
             $scope.deleteFrame = false;
         };
         };
 
 
+        // document.addEventListener('click', this.checkShowFilter){
+        //
+        // }
+
     }]);
     }]);
 
 
     // 地区选择
     // 地区选择

+ 54 - 34
src/main/webapp/resources/view/usercenter/forstore/buyer_cart.html

@@ -323,6 +323,7 @@
 		width: 70px;
 		width: 70px;
 		height: 29px;
 		height: 29px;
 		line-height: 29px;
 		line-height: 29px;
+		border: 1px solid #ccc;
 	}
 	}
 	.shopCar .btn-wrap .number{
 	.shopCar .btn-wrap .number{
 		width: 124px;
 		width: 124px;
@@ -498,16 +499,30 @@
 	.sure_oder select:disabled.select:hover{
 	.sure_oder select:disabled.select:hover{
 		cursor: not-allowed;
 		cursor: not-allowed;
 	}
 	}
-	.com-del-box {
-		top: 101%!important ;
-		left: 24%!important ;
-	}
-	.com-del-box .title{
-		width: 100%!important ;
-	}
-	.com-del-box .title i{
-		background: none;
-	}
+	/*添加是否可拆买、库存不足等提示*/
+	/*.shopCar .oder_list dl .line02 em.tip{*/
+		/*display: inline-block;*/
+		/*margin-top: 6px;*/
+		/*width: 165px;*/
+		/*text-align: left;*/
+		/*font-size: 12px;*/
+		/*font-weight: normal ;*/
+		/*line-height: 18px;*/
+		/*color: #e64040;*/
+	/*}*/
+	/*.shopCar .oder_list dl .line02 em.tip i{*/
+		/*font-size: 12px;*/
+		/*font-style: normal ;*/
+		/*color: #e64040;*/
+	/*}*/
+	/*.shopCar .oder_list dl .line02 em.tips{*/
+		/*width: 124px;*/
+		/*text-align: center;*/
+	/*}*/
+	/*.shopCar .oder_list dl .line02 em.tip1{*/
+		/*width: 200px;*/
+		/*margin-left: -10px;*/
+	/*}*/
 </style>
 </style>
 <div class="user_right fr" id="buyer_cart">
 <div class="user_right fr" id="buyer_cart">
 	<!--订单中心-->
 	<!--订单中心-->
@@ -521,11 +536,11 @@
 		</div>
 		</div>
 		<div class="oder_list" style="margin-top: 0; background: #f5f5f5;">
 		<div class="oder_list" style="margin-top: 0; background: #f5f5f5;">
 			<!--<div class="page">-->
 			<!--<div class="page">-->
-			<!--<ul>-->
-			<!--<li><a ng-click="jumpToPage(pageInfo.page - 1)">上一页</a> </li>-->
-			<!--<li>第<input ng-model="toPage" ng-search="jumpToPage(toPage)">页</li>-->
-			<!--<li><a ng-click="jumpToPage(pageInfo.page + 1)">下一页</a> </li>-->
-			<!--</ul>-->
+				<!--<ul>-->
+					<!--<li><a ng-click="jumpToPage(pageInfo.page - 1)">上一页</a> </li>-->
+					<!--<li>第<input ng-model="toPage" ng-search="jumpToPage(toPage)">页</li>-->
+					<!--<li><a ng-click="jumpToPage(pageInfo.page + 1)">下一页</a> </li>-->
+				<!--</ul>-->
 			<!--</div>-->
 			<!--</div>-->
 			<!--购物车清单-->
 			<!--购物车清单-->
 			<dl style="display: inline-block;" when-scrolled="scrollLoadData()">
 			<dl style="display: inline-block;" when-scrolled="scrollLoadData()">
@@ -616,10 +631,15 @@
 								<div class="btn-wrap">
 								<div class="btn-wrap">
 									<span class="number">
 									<span class="number">
 										<a class="reduce" ng-disabled="cart.minusDisabled || cart.status == 1" ng-click="reduce(cart)">-</a>
 										<a class="reduce" ng-disabled="cart.minusDisabled || cart.status == 1" ng-click="reduce(cart)">-</a>
-										<input type="text" ng-disabled="cart.status == 1" ng-model="cart.number" ng-blur="blurNum(cart)">
+										<input type="text" ng-disabled="cart.status == 1" ng-model="cart.number"  ng-blur="blurNum(cart)">
 										<a class="add" ng-disabled="cart.addDisabled || cart.status == 1" ng-click="add(cart)">+</a>
 										<a class="add" ng-disabled="cart.addDisabled || cart.status == 1" ng-click="add(cart)">+</a>
 									</span>
 									</span>
 									<i ng-if="cart.status == 2" style="color: #f00; margin-left: 32px;">库存紧张</i>
 									<i ng-if="cart.status == 2" style="color: #f00; margin-left: 32px;">库存紧张</i>
+									<!--<em class="tip tip1" ng-if="!cart.goods.breakUp && cart.inputError == 3">不支持拆包且包装数量为<i ng-bind="cart.minPackQty"></i></em>-->
+									<!--<em class="tip tips" ng-if="cart.goods.breakUp && cart.noInputError == 2">库存不足</em>-->
+									<!--<em class="tip tips" ng-if="!cart.goods.breakUp && cart.inputError == 2">库存不足</em>-->
+									<!--<em class="tip tips" ng-if="cart.goods.breakUp  && cart.noInputError == 1">最小起订量为<i ng-bind="cart.goods.minBuyQty"></i></em>-->
+									<!--<em class="tip tips" ng-if="!cart.goods.breakUp && cart.inputError == 1">最小起订量为<i ng-bind="cart.goods.minBuyQty"></i></em>-->
 								</div>
 								</div>
 							</span>
 							</span>
 							<span class="wd02" style="position: relative">
 							<span class="wd02" style="position: relative">
@@ -695,13 +715,14 @@
 						</dd>
 						</dd>
 					</div>
 					</div>
 				</div>
 				</div>
-				<div class="no-store" ng-if="cartIsEmpty">
-					<img src="static/img/all/empty-cart.png">
-					<p>
-						您的购物车空空如也,请先挑选您想要购买的产品吧!
-						<br>
-						<a href="/">马上去逛一逛</a>
-					</p>
+				<div class="text-center row"ng-if="cartIsEmpty">
+					<div class="col-xs-offset-3 col-xs-2">
+						<img src="static/img/all/empty-cart.png">
+					</div>
+					<div class="col-xs-5">
+						<p class="grey f16">您的购物车空空如也,请先挑选您想要购买的产品吧!</p>
+						<a href=".">马上去逛一逛</a>&nbsp;<i class="fa fa-arrow-right"></i>
+					</div>
 				</div>
 				</div>
 				<p class="height16" ng-if="!cartIsEmpty">&nbsp</p>
 				<p class="height16" ng-if="!cartIsEmpty">&nbsp</p>
 				<dd class="all_price fixed-bottom" ng-if="!cartIsEmpty && countByPage > 4">
 				<dd class="all_price fixed-bottom" ng-if="!cartIsEmpty && countByPage > 4">
@@ -757,7 +778,6 @@
 		</ul>
 		</ul>
 	</div>-->
 	</div>-->
 </div>
 </div>
-
 <style>
 <style>
 	.no-store{
 	.no-store{
 		height: 255px;
 		height: 255px;
@@ -783,14 +803,14 @@
 	}
 	}
 </style>
 </style>
 <script>
 <script>
-	$(function(){
-		$(window).bind("scroll",function() {
-			// 判断窗口的滚动条是否接近页面底部,这里的20可以自定义
-			if ($(document).scrollTop() + $(window).height() > $(document).height() - 330) {
-				$('.shopCar .oder_list dl .all_price.fixed-bottom').slideUp()
-			}else {
-				$('.shopCar .oder_list dl .all_price.fixed-bottom').slideDown()
-			}
-		})
-	})
+    $(function(){
+        $(window).bind("scroll",function() {
+            // 判断窗口的滚动条是否接近页面底部,这里的20可以自定义
+            if ($(document).scrollTop() + $(window).height() > $(document).height() - 330) {
+                $('.shopCar .oder_list dl .all_price.fixed-bottom').slideUp()
+            }else {
+                $('.shopCar .oder_list dl .all_price.fixed-bottom').slideDown()
+            }
+        })
+    })
 </script>
 </script>

+ 2 - 2
src/main/webapp/resources/view/usercenter/forstore/buyer_invoice.html

@@ -639,9 +639,9 @@
                         <label class="col-md-2 control-label"><b class="text-inverse">*</b>联系电话:</label>
                         <label class="col-md-2 control-label"><b class="text-inverse">*</b>联系电话:</label>
                         <div class="form-input-line">
                         <div class="form-input-line">
                             <input type="text" class="form-control" ng-class="{'bg-fff8ee':!initFlag.initTelephone&&form.billTel.$error.required, 'bg-fff':!initFlag.initTelephone&&(!form.billTel.$invalid||!form.billTel.$touched)}" ng-model="bill.telephone" ng-focus="form.billTel.$touched = false" ng-blur="form.billTel.$touched = true; initFlag.initTelephone=false;" name="billTel"
                             <input type="text" class="form-control" ng-class="{'bg-fff8ee':!initFlag.initTelephone&&form.billTel.$error.required, 'bg-fff':!initFlag.initTelephone&&(!form.billTel.$invalid||!form.billTel.$touched)}" ng-model="bill.telephone" ng-focus="form.billTel.$touched = false" ng-blur="form.billTel.$touched = true; initFlag.initTelephone=false;" name="billTel"
-                                   ng-pattern="/^[0-9]*$/" ng-minlength="8" ng-maxlength="11" required="required" placeholder="请输入联系电话">
+                                   ng-pattern="/^[0-9\\-]*$/" ng-minlength="8" ng-maxlength="13" required="required" placeholder="请输入联系电话">
                         </div>
                         </div>
-                        <div class="text-inverse error col-md-3" ng-show="form.billTel.$touched&&form.billTel.$invalid" ng-bind="form.billTel.$error.required?'请填写联系电话':'请输入8-11位数字'"></div>
+                        <div class="text-inverse error col-md-3" ng-show="form.billTel.$touched&&form.billTel.$invalid" ng-bind="form.billTel.$error.required?'请填写联系电话':'请输入8-13位电话号码'"></div>
                     </div>
                     </div>
                     <div class="form-group address">
                     <div class="form-group address">
                         <label class="col-md-2 control-label"><b class="text-inverse">*</b>所在地区:</label>
                         <label class="col-md-2 control-label"><b class="text-inverse">*</b>所在地区:</label>

+ 60 - 31
src/main/webapp/resources/view/usercenter/forstore/order_pay.html

@@ -581,6 +581,30 @@
 		font-size: 14px;
 		font-size: 14px;
 		color: #fff;
 		color: #fff;
 	}
 	}
+	/*添加是否可拆买、库存不足等提示*/
+	/*.sure_oder .btn-wrap .tip{*/
+		/*display: inline-block;*/
+		/*margin-top: 4px;*/
+		/*width: 150px;*/
+		/*text-align: left;*/
+		/*font-size: 12px;*/
+		/*font-weight: normal ;*/
+		/*line-height: 18px;*/
+		/*color: #e64040;*/
+	/*}*/
+	/*.sure_oder .btn-wrap .tip1{*/
+		/*width: 200px;*/
+		/*margin-left: -10px;*/
+	/*}*/
+	/*.sure_oder .btn-wrap .tip i{*/
+		/*font-size: 12px;*/
+		/*font-style: normal ;*/
+		/*color: #e64040;*/
+	/*}*/
+	/*.sure_oder .btn-wrap em.tips{*/
+		/*width: 124px;*/
+		/*text-align: center;*/
+	/*}*/
 </style>
 </style>
 <!--右侧主体部分-->
 <!--右侧主体部分-->
 <div class="user_right fr" id="pay-cart">
 <div class="user_right fr" id="pay-cart">
@@ -698,34 +722,39 @@
 								<p><a href="product/brand/{{detail.branduuid}}/" target="_blank" style="color: #323232">品牌:<b ng-bind="detail.brName" style="color: #323232" title="{{detail.brName}}"></b></a></p>
 								<p><a href="product/brand/{{detail.branduuid}}/" target="_blank" style="color: #323232">品牌:<b ng-bind="detail.brName" style="color: #323232" title="{{detail.brName}}"></b></a></p>
 							</div>
 							</div>
                         </span>
                         </span>
-							<span class="wd01" ng-if="order.status == 501">
+						<span class="wd01" ng-if="order.status == 501">
 							交期 :
 							交期 :
 							<i ng-if="detail.goodsHistory.b2cMinDelivery == detail.goodsHistory.b2cMaxDelivery" ng-bind="detail.goodsHistory.b2cMinDelivery"></i>
 							<i ng-if="detail.goodsHistory.b2cMinDelivery == detail.goodsHistory.b2cMaxDelivery" ng-bind="detail.goodsHistory.b2cMinDelivery"></i>
 							<i ng-if="detail.goodsHistory.b2cMinDelivery != detail.goodsHistory.b2cMaxDelivery" ng-bind="detail.goodsHistory.b2cMinDelivery + '-' + detail.goodsHistory.b2cMaxDelivery"></i>
 							<i ng-if="detail.goodsHistory.b2cMinDelivery != detail.goodsHistory.b2cMaxDelivery" ng-bind="detail.goodsHistory.b2cMinDelivery + '-' + detail.goodsHistory.b2cMaxDelivery"></i>
-								<!--{{detail.goodsHistory.b2cMinDelivery}}-{{detail.goodsHistory.b2cMaxDelivery}}-->
+							<!--{{detail.goodsHistory.b2cMinDelivery}}-{{detail.goodsHistory.b2cMaxDelivery}}-->
 						</span>
 						</span>
-							<span class="wd01" ng-if="order.status != 501">
+						<span class="wd01" ng-if="order.status != 501">
 							交期 :
 							交期 :
 						<i ng-if="detail.b2cMinDelivery == detail.b2cMaxDelivery" ng-bind="detail.b2cMinDelivery"></i>
 						<i ng-if="detail.b2cMinDelivery == detail.b2cMaxDelivery" ng-bind="detail.b2cMinDelivery"></i>
 						<i ng-if="detail.b2cMinDelivery != detail.b2cMaxDelivery" ng-bind="detail.b2cMinDelivery + '-' + detail.b2cMaxDelivery"></i>
 						<i ng-if="detail.b2cMinDelivery != detail.b2cMaxDelivery" ng-bind="detail.b2cMinDelivery + '-' + detail.b2cMaxDelivery"></i>
 						</span>
 						</span>
-							<span>
+						<span>
 							<select class="select" ng-model="detail.currencyName" ng-if="order.buyNow&&(order.status == 501)&&(detail.goodsHistory.currencyName=='RMB-USD')" ng-change="changeCurrency(detail)">
 							<select class="select" ng-model="detail.currencyName" ng-if="order.buyNow&&(order.status == 501)&&(detail.goodsHistory.currencyName=='RMB-USD')" ng-change="changeCurrency(detail)">
 								<option value="RMB" selected="selected" ng-bind="detail.rmbUnitPrice | formateNumber : 6 | currencySysmbol : 'RMB'"></option>
 								<option value="RMB" selected="selected" ng-bind="detail.rmbUnitPrice | formateNumber : 6 | currencySysmbol : 'RMB'"></option>
 								<option value="USD" ng-bind="detail.usdUnitPrice | formateNumber : 6 | currencySysmbol : 'USD'"></option>
 								<option value="USD" ng-bind="detail.usdUnitPrice | formateNumber : 6 | currencySysmbol : 'USD'"></option>
 							</select>
 							</select>
 						</span>
 						</span>
-							<span class="wd01" ng-if="(order.status == 501)&&(detail.goodsHistory.currencyName == 'RMB')" ng-bind="detail.rmbUnitPrice | formateNumber : 6 | currencySysmbol : 'RMB'"></span>
-							<span class="wd01" ng-if="(order.status == 501)&&(detail.goodsHistory.currencyName == 'USD')" ng-bind="detail.usdUnitPrice | formateNumber : 6 | currencySysmbol : 'USD'"></span>
-							<span class="wd01" ng-bind="detail.taxUnitprice | formateNumber : 6 | currencySysmbol : 'RMB'" ng-if="detail.currencyName.indexOf('RMB') > -1 && order.status != 501"></span>
-							<span class="wd01" ng-bind="detail.taxUnitprice | formateNumber : 6 | currencySysmbol : 'USD'" ng-if="detail.currencyName.indexOf('USD') > -1 && order.status != 501"></span>
-							<span class="wd01">
+						<span class="wd01" ng-if="(order.status == 501)&&(detail.goodsHistory.currencyName == 'RMB')" ng-bind="detail.rmbUnitPrice | formateNumber : 6 | currencySysmbol : 'RMB'"></span>
+						<span class="wd01" ng-if="(order.status == 501)&&(detail.goodsHistory.currencyName == 'USD')" ng-bind="detail.usdUnitPrice | formateNumber : 6 | currencySysmbol : 'USD'"></span>
+						<span class="wd01" ng-bind="detail.taxUnitprice | formateNumber : 6 | currencySysmbol : 'RMB'" ng-if="detail.currencyName.indexOf('RMB') > -1 && order.status != 501"></span>
+						<span class="wd01" ng-bind="detail.taxUnitprice | formateNumber : 6 | currencySysmbol : 'USD'" ng-if="detail.currencyName.indexOf('USD') > -1 && order.status != 501"></span>
+						<span class="wd01">
                             <div class="btn-wrap">
                             <div class="btn-wrap">
                             <span class="number add-minus" ng-if="order.status == 501">
                             <span class="number add-minus" ng-if="order.status == 501">
                                 <a href="javascript:void(0)" class="reduce" ng-click="reduce(detail)" ng-disabled="detail.minusDisabled">-</a>
                                 <a href="javascript:void(0)" class="reduce" ng-click="reduce(detail)" ng-disabled="detail.minusDisabled">-</a>
                                 <input type="text" ng-model="detail.number" ng-readonly="order.status != 501" ng-blur="blurNum(detail)">
                                 <input type="text" ng-model="detail.number" ng-readonly="order.status != 501" ng-blur="blurNum(detail)">
                                 <a href="javascript:void(0)" class="add" ng-click="add(detail)" ng-disabled="detail.addDisabled">+</a>
                                 <a href="javascript:void(0)" class="add" ng-click="add(detail)" ng-disabled="detail.addDisabled">+</a>
                             </span>
                             </span>
+							<!--<em class="tip tip1" ng-if="!detail.goodsHistory.breakUp && detail.inputError == 3">不支持拆包且包装数量为<i ng-bind="detail.goodsHistory.minPackQty"></i></em>-->
+							<!--<em class="tip tips" ng-if="!detail.goodsHistory.breakUp && detail.inputError == 2">库存不足</em>-->
+							<!--<em class="tip tips" ng-if="detail.goodsHistory.breakUp && detail.noInputError == 2">库存不足</em>-->
+							<!--<em class="tip tips" ng-if="!detail.goodsHistory.breakUp && detail.inputError == 1">最小起订量为<i ng-bind="detail.goodsHistory.minBuyQty"></i></em>-->
+							<!--<em class="tip tips" ng-if="detail.goodsHistory.breakUp && detail.noInputError == 1">最小起订量为<i ng-bind="detail.goodsHistory.minBuyQty"></i></em>-->
 							<span ng-if="order.status != 501" ng-bind="detail.number" class="number" style="border: none;"></span>
 							<span ng-if="order.status != 501" ng-bind="detail.number" class="number" style="border: none;"></span>
                             </div>
                             </div>
                         </span>
                         </span>
@@ -761,7 +790,7 @@
 									<i ng-bind="detail.remark">金石为开取数据五块钱叫稍微亲上加亲</i>
 									<i ng-bind="detail.remark">金石为开取数据五块钱叫稍微亲上加亲</i>
 								</div>
 								</div>
 								<em ng-if="order.status!=501 && !detail.remark">&nbsp;</em>
 								<em ng-if="order.status!=501 && !detail.remark">&nbsp;</em>
-								<!--<em ng-if="order.status!=501" ng-bind="detail.remark" style="color: #333; line-height: 20px; display: inline-block; padding-top: 10px;"></em>-->
+                        		<!--<em ng-if="order.status!=501" ng-bind="detail.remark" style="color: #333; line-height: 20px; display: inline-block; padding-top: 10px;"></em>-->
 							</span>
 							</span>
 						</dd>
 						</dd>
 						<dd class="oder-remark">
 						<dd class="oder-remark">
@@ -816,17 +845,17 @@
 						</dd>
 						</dd>
 						<div class="self-list" ng-if="order.status==501 && deliveryList[details[0].storeid].method == 1303">
 						<div class="self-list" ng-if="order.status==501 && deliveryList[details[0].storeid].method == 1303">
 							<!--自提点列表-->
 							<!--自提点列表-->
-							<ul class="self-advice" ng-if="order.status == 501">
-								<li ng-repeat="item in takeSelfMap[details[0].storeid]">
-									<label class="check-act">
-										<input type="radio" id="{{item.id}}" name="1" ng-click="updateTakeSelf(details[0].storeid, item)"/>
-										<label for="{{item.id}}"></label>
-									</label>
-									<strong style="margin-left: 0" ng-bind="item.takename"></strong>
-									<strong>地址:<i ng-bind="item.area"></i>&nbsp;&nbsp;<i ng-bind="item.detailAddress"></i></strong>
-									<strong>营业时间:<i ng-bind="item.businesstime">周一至周五 8:30-18:00</i></strong>
-								</li>
-							</ul>
+								<ul class="self-advice" ng-if="order.status == 501">
+									<li ng-repeat="item in takeSelfMap[details[0].storeid]">
+										<label class="check-act">
+											<input type="radio" id="{{item.id}}" name="1" ng-click="updateTakeSelf(details[0].storeid, item)"/>
+											<label for="{{item.id}}"></label>
+										</label>
+										<strong style="margin-left: 0" ng-bind="item.takename"></strong>
+										<strong>地址:<i ng-bind="item.area"></i>&nbsp;&nbsp;<i ng-bind="item.detailAddress"></i></strong>
+										<strong>营业时间:<i ng-bind="item.businesstime">周一至周五 8:30-18:00</i></strong>
+									</li>
+								</ul>
 						</div>
 						</div>
 						<dd class="line60" ng-if="order.status!=501 && (takeList ? takeList[details[0].storeid] : takeSelf)">
 						<dd class="line60" ng-if="order.status!=501 && (takeList ? takeList[details[0].storeid] : takeSelf)">
 							<span class="user-address" style="padding-left: 40px;" ng-if="takeList && takeList[details[0].storeid]">
 							<span class="user-address" style="padding-left: 40px;" ng-if="takeList && takeList[details[0].storeid]">
@@ -841,16 +870,16 @@
 							</span>
 							</span>
 						</dd>
 						</dd>
 						<!--<div class="self-list" ng-if="order.status!=501">-->
 						<!--<div class="self-list" ng-if="order.status!=501">-->
-						<!--<span ng-if="takeList">-->
-						<!--<strong style="margin-left: 0" ng-bind="takeList[details[0].storeid].takename"></strong>-->
-						<!--<strong>地址:<i ng-bind="takeList[details[0].storeid].area"></i>&nbsp;&nbsp;<i ng-bind="takeList[details[0].storeid].detailAddress"></i></strong>-->
-						<!--<strong>营业时间:<i ng-bind="takeList[details[0].storeid].businesstime">周一至周五 8:30-18:00</i></strong>-->
-						<!--</span>-->
-						<!--<span ng-if="!takeList && takeSelf">-->
-						<!--<strong style="margin-left: 0" ng-bind="takeSelf.takename"></strong>-->
-						<!--<strong>地址:<i ng-bind="takeSelf.area"></i>&nbsp;&nbsp;<i ng-bind="takeSelf.detailAddress"></i></strong>-->
-						<!--<strong>营业时间:<i ng-bind="takeSelf.businesstime">周一至周五 8:30-18:00</i></strong>-->
-						<!--</span>-->
+							<!--<span ng-if="takeList">-->
+								<!--<strong style="margin-left: 0" ng-bind="takeList[details[0].storeid].takename"></strong>-->
+								<!--<strong>地址:<i ng-bind="takeList[details[0].storeid].area"></i>&nbsp;&nbsp;<i ng-bind="takeList[details[0].storeid].detailAddress"></i></strong>-->
+								<!--<strong>营业时间:<i ng-bind="takeList[details[0].storeid].businesstime">周一至周五 8:30-18:00</i></strong>-->
+							<!--</span>-->
+							<!--<span ng-if="!takeList && takeSelf">-->
+								<!--<strong style="margin-left: 0" ng-bind="takeSelf.takename"></strong>-->
+								<!--<strong>地址:<i ng-bind="takeSelf.area"></i>&nbsp;&nbsp;<i ng-bind="takeSelf.detailAddress"></i></strong>-->
+								<!--<strong>营业时间:<i ng-bind="takeSelf.businesstime">周一至周五 8:30-18:00</i></strong>-->
+							<!--</span>-->
 						<!--</div>-->
 						<!--</div>-->
 					</div>
 					</div>
 					<dd class="pay_price">
 					<dd class="pay_price">

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

@@ -231,6 +231,8 @@
 	#pay_center .tab .user-account-table {
 	#pay_center .tab .user-account-table {
 		width:98%;
 		width:98%;
 		text-align: center;
 		text-align: center;
+		table-layout: fixed;
+		margin:0 auto 40px;
 	}
 	}
 	#pay_center .tab .user-account-table thead {
 	#pay_center .tab .user-account-table thead {
 		background: #89aefa;
 		background: #89aefa;
@@ -405,7 +407,7 @@
 						<span>新增账户</span>
 						<span>新增账户</span>
 					</div>
 					</div>
 				</div>
 				</div>
-				<table class="user-account-table table" ng-table="bankInfoTableParams" style="table-layout: fixed;margin-bottom:40px;">
+				<table class="user-account-table table" ng-table="bankInfoTableParams">
 					<thead>
 					<thead>
 						<th>开户银行</th>
 						<th>开户银行</th>
 						<th >开户支行</th>
 						<th >开户支行</th>

+ 23 - 6
src/main/webapp/resources/view/vendor/forstore/vendor_delivery.html

@@ -75,7 +75,9 @@
         border-radius: 3px;
         border-radius: 3px;
     }
     }
     .sell_oder .sure_oder .oder_xq_list dl span .dropdown-menu{
     .sell_oder .sure_oder .oder_xq_list dl span .dropdown-menu{
-        top: 95%;
+        position: unset;
+        float: none;
+        /*top: 95%;*/
         line-height: 23px;
         line-height: 23px;
         max-height: 120px;
         max-height: 120px;
         overflow-y: auto;
         overflow-y: auto;
@@ -83,6 +85,7 @@
         display: block;
         display: block;
         overflow-x: hidden;
         overflow-x: hidden;
         border-radius: 0;
         border-radius: 0;
+        box-shadow: none;
     }
     }
     .sell_oder .sure_oder .oder_xq_list dl span .dropdown-menu li{
     .sell_oder .sure_oder .oder_xq_list dl span .dropdown-menu li{
         font-size: 14px;
         font-size: 14px;
@@ -478,6 +481,17 @@
         margin-top: -1px;
         margin-top: -1px;
         height: 32px;
         height: 32px;
     }
     }
+    #oder-detail .line60.logistic-input span.input-ul >div {
+        position: relative;
+        -webkit-box-shadow: 0 6px 12px rgba(0,0,0,.175);
+        box-shadow: 0 6px 12px rgba(0,0,0,.175);
+    }
+    #oder-detail .line60.logistic-input span.input-ul >div >a {
+        width: 170px;
+        background: #e8e8e8;
+        color: #666!important;
+        display: block;
+    }
     #oder-detail .line60.logistic-input span.input-ul em{
     #oder-detail .line60.logistic-input span.input-ul em{
     }
     }
     #oder-detail .line60.logistic-input .logistic-input-01{
     #oder-detail .line60.logistic-input .logistic-input-01{
@@ -672,10 +686,13 @@
                             <span class="input-ul">
                             <span class="input-ul">
                                 <input id="addr" style="border: #5078cb 1px solid;" type="text" class="form-control select-adder" ng-focus="getItemFocus()" ng-blur="onItemBlur()" ng-keydown="onKeyup()" ng-model="logistics.companyName" placeholder="请选择物流公司" autocomplete="off" maxlength="15" readonly="readonly" >
                                 <input id="addr" style="border: #5078cb 1px solid;" type="text" class="form-control select-adder" ng-focus="getItemFocus()" ng-blur="onItemBlur()" ng-keydown="onKeyup()" ng-model="logistics.companyName" placeholder="请选择物流公司" autocomplete="off" maxlength="15" readonly="readonly" >
                                 <!--<em name="companyName" ng-click="changeShowLogistics()" class="btn-position"><i class="fa fa-caret-down" aria-hidden="true"></i></em>-->
                                 <!--<em name="companyName" ng-click="changeShowLogistics()" class="btn-position"><i class="fa fa-caret-down" aria-hidden="true"></i></em>-->
-                                <ul id="ulContent" ng-if="showCompanyName" class="dropdown-menu">
-                                    <li ng-click="showDefaultText()">请选择物流公司</li>
-                                    <li ng-click="showText(data)" ng-repeat="data in data_list" ng-class="{'active': $index==selectIndex}" ng-bind="data.companyName"></li>
-                                </ul>
+                                <div ng-if="showCompanyName">
+                                    <ul id="ulContent" class="dropdown-menu">
+                                        <li ng-click="showDefaultText()">请选择物流公司</li>
+                                        <li ng-click="showText(data)" ng-repeat="data in data_list" ng-class="{'active': $index==selectIndex}" ng-bind="data.companyName"></li>
+                                    </ul>
+                                    <a ng-click="addDistributor()">+&nbsp;新增配送商</a>
+                                </div>
                             </span>
                             </span>
                             <span  style="width: 10%;"> 物流单号 :&nbsp;</span>
                             <span  style="width: 10%;"> 物流单号 :&nbsp;</span>
                             <span style="margin-right: 20px; width: 160px; float: left;">
                             <span style="margin-right: 20px; width: 160px; float: left;">
@@ -694,7 +711,7 @@
                         <div ng-if="checkinvoice.status==406">
                         <div ng-if="checkinvoice.status==406">
                             <a href="javascript:void(0)" ng-click="saveCheck()" class="confirm">确认发货</a>
                             <a href="javascript:void(0)" ng-click="saveCheck()" class="confirm">确认发货</a>
                             <a ng-click="backToDelivery()" class="cancel">取消</a>
                             <a ng-click="backToDelivery()" class="cancel">取消</a>
-                            <a ng-click="addDistributor()" class="add">新增配送商</a>
+                            <!--<a ng-click="addDistributor()" class="add">新增配送商</a>-->
                         </div>
                         </div>
                     </dd>
                     </dd>
                 </dl>
                 </dl>

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

@@ -19,7 +19,7 @@
             <dl>
             <dl>
                 <dt><img src="static/img/vendor/images/user_photo.png" /></dt>
                 <dt><img src="static/img/vendor/images/user_photo.png" /></dt>
                 <dd>
                 <dd>
-                    <span>{{userInfo.userName}}  | <br/><!--<em>账户余额:¥68899.99</em>--></span>
+                    <span ng-bind="userInfo.userName">  | <br/><!--<em>账户余额:¥68899.99</em>--></span>
                     <span ng-bind="vendor.enName || '个人账户'"><br/> <!--<em>账户余额:¥68899.99</em>--></span>
                     <span ng-bind="vendor.enName || '个人账户'"><br/> <!--<em>账户余额:¥68899.99</em>--></span>
                     <a ui-sref="vendor_account_management" href="#/account/management/">账户设置&nbsp;》</a>
                     <a ui-sref="vendor_account_management" href="#/account/management/">账户设置&nbsp;》</a>
                     <!--<p><img src="static/img/vendor/images/sell_grade.png"/>专有服务:******</p>-->
                     <!--<p><img src="static/img/vendor/images/sell_grade.png"/>专有服务:******</p>-->