Przeglądaj źródła

Merge remote-tracking branch 'origin/release-20170915' into release-20170915

# Conflicts:
#	src/main/webapp/resources/view/vendor/forstore/vendor_order.html
hulh 8 lat temu
rodzic
commit
e44aefbd06
19 zmienionych plików z 177 dodań i 54 usunięć
  1. 10 0
      src/main/java/com/uas/platform/b2c/advertise/ad/api/StoreRecommendController.java
  2. 8 0
      src/main/java/com/uas/platform/b2c/advertise/ad/service/RecommendProductService.java
  3. 48 3
      src/main/java/com/uas/platform/b2c/advertise/ad/service/impl/RecommendProductServiceImpl.java
  4. 41 0
      src/main/java/com/uas/platform/b2c/core/config/MicroServicesConfMulti.java
  5. 19 19
      src/main/java/com/uas/platform/b2c/prod/commodity/service/impl/GoodsServiceImpl.java
  6. 7 9
      src/main/java/com/uas/platform/b2c/prod/product/brand/service/impl/BrandServiceImpl.java
  7. 1 2
      src/main/java/com/uas/platform/b2c/trade/presale/service/impl/CartServiceImpl.java
  8. 2 0
      src/main/resources/dev/sys.properties
  9. 2 0
      src/main/resources/prod/sys.properties
  10. 2 0
      src/main/resources/test/sys.properties
  11. 1 1
      src/main/webapp/resources/js/common/module/store_recommend_product.js
  12. 1 1
      src/main/webapp/resources/js/usercenter/controllers/forstore/buyer_cart_ctrl.js
  13. 2 2
      src/main/webapp/resources/view/common/site-nav.html
  14. 7 3
      src/main/webapp/resources/view/usercenter/forstore/buyer_cart.html
  15. 7 3
      src/main/webapp/resources/view/usercenter/forstore/buyer_order.html
  16. 4 1
      src/main/webapp/resources/view/usercenter/forstore/buyer_transfer.html
  17. 1 0
      src/main/webapp/resources/view/usercenter/forstore/order_pay.html
  18. 8 7
      src/main/webapp/resources/view/usercenter/modal/cancelOrder_modal.html
  19. 6 3
      src/main/webapp/resources/view/vendor/forstore/vendor_order.html

+ 10 - 0
src/main/java/com/uas/platform/b2c/advertise/ad/api/StoreRecommendController.java

@@ -5,6 +5,7 @@ import com.uas.platform.b2c.advertise.ad.service.RecommendProductService;
 import com.uas.platform.b2c.core.utils.JacksonUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RestController;
@@ -43,6 +44,15 @@ public class StoreRecommendController {
 		return recommendProductService.findProductsWhenUserVisitStore(uuid);
 	}
 
+	/**
+	 * 当卖家新增或修改产品推荐时,创建或更新产品推荐信息
+	 */
+	@RequestMapping(method = RequestMethod.POST, value = "/products//update_batch")
+	public List<RecommendProduct> saveProductsWhenSellerUpdate(String uuid,
+   			@RequestBody List<RecommendProduct> productList) {
+		return recommendProductService.saveProductsWhenSellerUpdate(uuid, productList);
+	}
+
 	@RequestMapping(value = "/products/{uuid}", method = RequestMethod.DELETE)
 	public String deleteProductsWhenUserVisitStore(@PathVariable("uuid") String uuid, String batchCode) {
 		Map<String, String> map = new HashMap<>();

+ 8 - 0
src/main/java/com/uas/platform/b2c/advertise/ad/service/RecommendProductService.java

@@ -29,4 +29,12 @@ public interface RecommendProductService {
 	 * @return the string
 	 */
 	List<RecommendProduct> findProductsWhenUserVisitStore(String uuid);
+
+	/**
+	 * 当卖家新增或修改产品推荐时,创建或更新产品推荐信息
+	 *
+	 * @param uuid			店铺UUID
+	 * @param productList	推荐产品列表
+	 */
+	List<RecommendProduct> saveProductsWhenSellerUpdate(String uuid, List<RecommendProduct> productList);
 }

+ 48 - 3
src/main/java/com/uas/platform/b2c/advertise/ad/service/impl/RecommendProductServiceImpl.java

@@ -4,10 +4,12 @@ import com.uas.platform.b2c.advertise.ad.model.Message;
 import com.uas.platform.b2c.advertise.ad.model.RecommendProduct;
 import com.uas.platform.b2c.advertise.ad.service.RecommendProductService;
 import com.uas.platform.b2c.advertise.ad.utils.RecommendProductsUtils;
+import com.uas.platform.b2c.core.config.MicroServicesConfMulti;
 import com.uas.platform.b2c.core.utils.JacksonUtils;
 import com.uas.platform.b2c.prod.commodity.dao.GoodsDao;
 import com.uas.platform.b2c.prod.commodity.model.Goods;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.kafka.core.KafkaTemplate;
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
@@ -30,17 +32,23 @@ import java.util.Set;
 @Service
 public class RecommendProductServiceImpl implements RecommendProductService {
 
+	@Value("#{sys.profile}")
+	private String profile;
+
 	private final RestTemplate restTemplate;
 
 	private final GoodsDao goodsDao;
 
 	private final KafkaTemplate<String, String> kafkaTemplate;
 
+	private final MicroServicesConfMulti conf;
+
 	@Autowired
-	public RecommendProductServiceImpl(RestTemplate restTemplate, GoodsDao goodsDao, KafkaTemplate<String, String> kafkaTemplate) {
+	public RecommendProductServiceImpl(RestTemplate restTemplate, GoodsDao goodsDao, KafkaTemplate<String, String> kafkaTemplate, MicroServicesConfMulti conf) {
 		this.restTemplate = restTemplate;
 		this.goodsDao = goodsDao;
 		this.kafkaTemplate = kafkaTemplate;
+		this.conf = conf;
 	}
 
 	@Override
@@ -49,6 +57,10 @@ public class RecommendProductServiceImpl implements RecommendProductService {
 			return;
 		}
 
+		if (StringUtils.isEmpty(profile)) {
+			throw new IllegalStateException("无法获取配置文件属性值");
+		}
+
 		Date date = new Date();
 
 		Message message = new Message();
@@ -58,14 +70,17 @@ public class RecommendProductServiceImpl implements RecommendProductService {
 		message.setBatchCodes(batchCodes);
 		System.out.println(JacksonUtils.toJson(message));
 
-		kafkaTemplate.send("recommend-products-delete", "batchCode", JacksonUtils.toJson(message));
+		String topic = "recommend-products-delete" + "-" + profile;
+
+		kafkaTemplate.send(topic, "batchCode", JacksonUtils.toJson(message));
 	}
 
 	@Override
 	public List<RecommendProduct> findProductsWhenUserVisitStore(String uuid) {
 		Map<String, String> map = new HashMap<>();
 		map.put("uuid", uuid);
-		String content = restTemplate.getForObject("http://api.ubtob.com/api/recommend/products?condition=store_uuid&uuid={uuid}", String.class, map);
+		String url = conf.getRecommendUrl("/api/recommend/products?condition=store_uuid&uuid={uuid}");
+		String content = restTemplate.getForObject(url, String.class, map);
 		if (StringUtils.isEmpty(content)) {
 			return Collections.emptyList();
 		}
@@ -80,4 +95,34 @@ public class RecommendProductServiceImpl implements RecommendProductService {
 		}
 		return recommendProducts;
 	}
+
+	@Override
+	public List<RecommendProduct> saveProductsWhenSellerUpdate(String uuid, List<RecommendProduct> productList) {
+		if (StringUtils.isEmpty(uuid)) {
+			return Collections.emptyList();
+		}
+
+		if (CollectionUtils.isEmpty(productList)) {
+			productList = Collections.emptyList();
+		}
+
+		String url = conf.getRecommendUrl("/api/recommend/products?uuid=" + uuid);
+
+		String content;
+		try {
+			content = restTemplate.postForObject(url, productList, String.class);
+		} catch (Exception e) {
+			content = "[]";
+		}
+
+		List<RecommendProduct> recommendProducts = JacksonUtils.fromJsonArray(content, RecommendProduct.class);
+
+		for (RecommendProduct product : recommendProducts) {
+			Goods commodity = goodsDao.findByBatchCode(product.getBatchCode());
+			if (commodity != null) {
+				RecommendProductsUtils.fillCommodityInfo(product, commodity);
+			}
+		}
+		return recommendProducts;
+	}
 }

+ 41 - 0
src/main/java/com/uas/platform/b2c/core/config/MicroServicesConfMulti.java

@@ -0,0 +1,41 @@
+package com.uas.platform.b2c.core.config;
+
+import com.uas.platform.core.model.PageParams;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+
+/**
+ * 微服务相关配置
+ */
+@Component
+public class MicroServicesConfMulti {
+
+	/**
+	 * 微服务Docker swarm的主机地址
+	 */
+	@Value("#{sys.endpointUri ?: '10.10.101.23'}")
+	private String microServiceIp;
+
+	@Value("#{sys.recommendPort ?: '20102'}")
+	private String recommendPort;
+
+	public String getMicroServiceIp() {
+		return microServiceIp;
+	}
+
+	public void setMicroServiceIp(String microServiceIp) {
+		this.microServiceIp = microServiceIp;
+	}
+
+	public String getRequestUrl(int port, String requestUrl) {
+		return String.format("http://%s:%d%s", this.microServiceIp, port, requestUrl);
+	}
+
+	public String getRequestUrl(int port, String requestUrl, PageParams pageable) {
+		return String.format("http://%s:%d%s%s", this.microServiceIp, port, requestUrl, "&count=" + pageable.getCount() + "&page=" + pageable.getPage() + "&filter=" + pageable.getFilter());
+	}
+
+	public String getRecommendUrl(String requestUrl) {
+		return String.format("http://%s:%s%s", this.microServiceIp, this.recommendPort, requestUrl);
+	}
+}

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

@@ -454,29 +454,29 @@ public class GoodsServiceImpl implements GoodsService {
 		Goods goods = findGoodsByBatchCode(batchCode);
 		if (goods == null) {
 			GoodsHistory history = goodsHistoryDao.findNewByBatchCode(batchCode);
-			if(history.getSourceId() == null) {
-				productStandardPutOnInfoService.updateAvailableQty(history.getStandprodid(), number);
-			}
+//			if(history.getSourceId() == null) {
+//				productStandardPutOnInfoService.updateAvailableQty(history.getStandprodid(), number);
+//			}
 		}else {
 			//更新相应标准上架和标准产品信息
-			ResultMap resultMap = productStandardPutOnInfoService.updateOnSaleQty(goods, NumberUtil.add(goods.getReserve(), number));
-			if(resultMap.getCode() != CodeType.OK.code()) {
-				return resultMap;
+//			ResultMap resultMap = productStandardPutOnInfoService.updateOnSaleQty(goods, NumberUtil.add(goods.getReserve(), number));
+//			if(resultMap.getCode() != CodeType.OK.code()) {
+//				return resultMap;
+//			}
+			Double reserve = goods.getReserve() + number;
+			goods.setReserve(reserve);
+			// 检查是否大于最小发货量
+			if (reserve.doubleValue() >= goods.getMinBuyQty().doubleValue()) {
+				goods.setStatus(Status.AVAILABLE.value());
 			}
-		}
-		Double reserve = goods.getReserve() + number;
-		goods.setReserve(reserve);
-		// 检查是否大于最小发货量
-		if (reserve.doubleValue() >= goods.getMinBuyQty().doubleValue()) {
-			goods.setStatus(Status.AVAILABLE.value());
-		}
 
-		goodsDao.modifyReserve(goods.getBatchCode(), goods.getUuid(), goods.getReserve(), goods.getStatus().intValue());
-		// 每次批次保存同时保存一遍历史信息
-		GoodsHistory goodsHistory = goodsHistoryService.initByGoods(goods, GoodsHistory.OperateType.ReleaseReserve);
-		goodsHistoryService.save(goodsHistory);
-		// 更新器件属性的库存
-		updateComponentTradeInfos(goods.getUuid());
+			goodsDao.modifyReserve(goods.getBatchCode(), goods.getUuid(), goods.getReserve(), goods.getStatus().intValue());
+			// 每次批次保存同时保存一遍历史信息
+			GoodsHistory goodsHistory = goodsHistoryService.initByGoods(goods, GoodsHistory.OperateType.ReleaseReserve);
+			goodsHistoryService.save(goodsHistory);
+			// 更新器件属性的库存
+			updateComponentTradeInfos(goods.getUuid());
+		}
 		return ResultMap.success(goods);
 	}
 

+ 7 - 9
src/main/java/com/uas/platform/b2c/prod/product/brand/service/impl/BrandServiceImpl.java

@@ -97,19 +97,17 @@ public class BrandServiceImpl implements BrandService {
 	@Override
 	public Map<String, List<BrandInfo>> getInitialSimpleInfo(String keyword) {
 		Map<String, List<BrandInfo>> map = new HashMap<String, List<BrandInfo>>();
-		String[] initals = new String[]{"A", "B", "C"};
 		if ("0~9".equals(keyword)) {
-			initals = new String[]{"0", "1", "2", "3", "4", "5", "6", "7", "8", "9"};
+			String[] initals = new String[]{"0", "1", "2", "3", "4", "5", "6", "7", "8", "9"};
 			List<BrandInfo> brandInfos = brandInfoDao.findInInitals(initals);
 			map.put(keyword, brandInfos);
-			return map;
 		} else {
-			initals = keyword.split("");
-		}
-
-		for (String inital : initals) {
-			List<BrandInfo> brandInfos = brandInfoDao.findInInitals(new String[]{inital});
-			map.put(inital.toUpperCase(), brandInfos);
+			char[] initals = keyword.toCharArray();
+			for (char inital : initals) {
+				String str = String.valueOf(inital).toUpperCase();
+				List<BrandInfo> brandInfos = brandInfoDao.findInInitals(new String[]{str});
+				map.put(str, brandInfos);
+			}
 		}
 		return map;
 	}

+ 1 - 2
src/main/java/com/uas/platform/b2c/trade/presale/service/impl/CartServiceImpl.java

@@ -18,7 +18,6 @@ import com.uas.platform.b2c.prod.product.component.modal.Component;
 import com.uas.platform.b2c.prod.product.component.service.ComponentService;
 import com.uas.platform.b2c.prod.store.dao.StoreInDao;
 import com.uas.platform.b2c.prod.store.model.StoreIn;
-import com.uas.platform.b2c.trade.order.StringConstant.Currency;
 import com.uas.platform.b2c.trade.presale.dao.CartDao;
 import com.uas.platform.b2c.trade.presale.model.Cart;
 import com.uas.platform.b2c.trade.presale.service.CartService;
@@ -442,7 +441,7 @@ public class CartServiceImpl implements CartService {
 		}else {
 			cart.setNumber(commodity);
 		}
-		cart.setCurrencyName(Currency.USD.equals(commodity.getCurrencyName())? "USD" : "RMB");
+		cart.setCurrencyName(commodity.getCurrencyName() == "USD" ? "USD" : "RMB");
 		cart.setReturnInWeek(commodity.getReturnInWeek());
 		cart.setSupply(commodity.getOriginal());
 		cart.setPack(commodity.getPackaging());

+ 2 - 0
src/main/resources/dev/sys.properties

@@ -23,6 +23,8 @@ reportPrintUrl=http://print.ubtob.com/report/print?userName=B2C&profile=${profil
 reportUploadUrl=http://print.ubtob.com/report/fileUpload?userName=B2C
 # micro service IP(Swarm Manager IP)
 microServiceIp=10.10.101.23
+endpointUri=10.10.101.23
+recommendPort=20102
 
 # Kafka
 kafka-bootstrap-servers=10.10.100.11:9292,10.10.100.12:9292,10.10.100.13:9292,10.10.100.14:9292,10.10.100.15:9292,10.10.100.16:9292

+ 2 - 0
src/main/resources/prod/sys.properties

@@ -24,6 +24,8 @@ reportPrintUrl=http://print.ubtob.com/report/print?userName=B2C&profile=${profil
 reportUploadUrl=http://print.ubtob.com/report/fileUpload?userName=B2C
 # micro service IP(Swarm Manager IP)
 microServiceIp=10.10.100.23
+endpointUri=10.10.100.23
+recommendPort=20100
 
 # Kafka
 kafka-bootstrap-servers=10.10.100.11:9292,10.10.100.12:9292,10.10.100.13:9292,10.10.100.14:9292,10.10.100.15:9292,10.10.100.16:9292

+ 2 - 0
src/main/resources/test/sys.properties

@@ -23,6 +23,8 @@ reportPrintUrl=http://print.ubtob.com/report/print?userName=B2C&profile=${profil
 reportUploadUrl=http://print.ubtob.com/report/fileUpload?userName=B2C
 # micro service IP(Swarm Manager IP)
 microServiceIp=10.10.101.23
+endpointUri=10.10.101.23
+recommendPort=20102
 
 # Kafka
 kafka-bootstrap-servers=10.10.100.11:9292,10.10.100.12:9292,10.10.100.13:9292,10.10.100.14:9292,10.10.100.15:9292,10.10.100.16:9292

+ 1 - 1
src/main/webapp/resources/js/common/module/store_recommend_product.js

@@ -39,7 +39,7 @@ define([ 'ngResource', 'common/query/commodity' ], function() {
 			 * @param uuid
 			 */
 			saveProductsWhenSellerUpdate: {
-				url: address + 'api/recommend/products',
+				url: 'api/store/recommend/products//update_batch',
 				method: 'POST',
 				isArray: true
 			},

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

@@ -535,7 +535,7 @@ define(["app/app", 'jquery-summernote'], function(app) {
 			angular.forEach($scope.carts, function (cart) {
 				if(cart.id != value.id) {
 					cart.contactSeller = false;
-				}
+				};
 			});
         };
         /**

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

@@ -169,8 +169,8 @@
             </div>
         </li>
         <li><a href=".">商城首页</a></li>
-        <li ng-if="userInfo"><a href="user">买家中心</a></li>
-        <li ng-if="userInfo.enterprises"><a href="vendor">卖家中心</a></li>
+        <li ng-if="userInfo"><a href="user#/home">买家中心</a></li>
+        <li ng-if="userInfo.enterprises"><a href="vendor#/index">卖家中心</a></li>
         <li><a href="help/home" target="_blank">帮助中心</a></li>
         <!-- <li><a href="http://wpa.qq.com/msgrd?v=3&uin=3432892085&site=www.ubtoc.com&menu=yes" target="_blank">在线客服</a></li> -->
        <!-- <li><a href="javascript:void(0)">服务电话:400-830-1818</a></li>-->

+ 7 - 3
src/main/webapp/resources/view/usercenter/forstore/buyer_cart.html

@@ -385,6 +385,10 @@
 		color: white;
 	}
 
+	.buyer-contact .contact-title a:hover > i{
+		color: white !important;
+	}
+
 	.buyer-contact .contact-buyer-info {
 		margin-left: 24px;
 		margin-right: 24px;
@@ -545,7 +549,7 @@
 						</span>
 						<span style="width: 22%; text-align: left; position: relative;"><img src="static/img/common/songguo.png">
 							<!--<a name="{{store.arr[0].id}}" href="javascript:void(0)" class="contact_btn" ng-controller="ChatContactCtrl as chat" ng-click="chat.contactWithOther(store.arr[0].sellPhone, store.arr[0].enuu, chat.UserType.STORE)">联系卖家</a>-->
-							<a name="{{store.arr[0].id}}" href="javascript:void(0)" class="contact_btn" >联系卖家</a>
+							<a name="{{store.arr[0].id}}" href="javascript:void(0)" class="contact_btn" ng-click="showContact(store.arr[0])">联系卖家</a>
 							<div name="{{store.arr[0].id}}" class="buyer-contact" ng-if="store.arr[0].contactSeller">
 									 <div class="contact-title">
 										 <a ng-click="store.arr[0].contactSeller = false"><i class="fa fa-close fa-lg" aria-hidden="true"></i></a>
@@ -601,9 +605,9 @@
 							<span>
 								<div class="btn-wrap">
 									<span class="number">
-										<a class="reduce" ng-disabled="cart.minusDisabled" 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)">
-										<a class="add" ng-disabled="cart.addDisabled" ng-click="add(cart)">+</a>
+										<a class="add" ng-disabled="cart.addDisabled || cart.status == 1" ng-click="add(cart)">+</a>
 									</span>
 									<i ng-if="cart.status == 2" style="color: #f00; margin-left: 32px;">库存紧张</i>
 								</div>

+ 7 - 3
src/main/webapp/resources/view/usercenter/forstore/buyer_order.html

@@ -179,6 +179,9 @@
 	.seller-contact .contact-title a, .seller-contact .contact-title a:hover {
 		color: white;
 	}
+	.seller-contact .contact-title a:hover > i {
+		color: white !important;
+	}
 
 	.seller-contact .contact-seller-info {
 		margin-left: 24px;
@@ -310,12 +313,13 @@
 
 	.notice-ship-tip {
 		position: fixed;
-		width: 340px;
+		width: 300px;
 		height: 145px;
 		background-color: white;
 		font-size: 14px;
-		top: 300px;
-		left: 500px;
+		top: 50%;
+		left: 50%;
+		margin: -78px 0 0 -150px;
 		box-shadow: 1px 6px 5px #C0BCBA
 	}
 

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

@@ -44,7 +44,10 @@
 	margin-left: 0px;
 	margin-right: 0px;
 }
-
+.marginleftrightzero:hover{
+	background: none !important;
+	cursor: default !important;
+}
 .marginbot30 {
 	margin-bottom: 30px;
 }

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

@@ -331,6 +331,7 @@
 	}
 	.sure_oder .btn-wrap .number input{
 		height: 29px;
+		line-height: 29px;
 	}
 	.sure_oder .btn-wrap .number{
 		width: 124px;

+ 8 - 7
src/main/webapp/resources/view/usercenter/modal/cancelOrder_modal.html

@@ -12,15 +12,16 @@
 	}
 
 	#choice {
-		width: 290px;
+		width: 250px;
 		margin-left: 100px;
 	}
 
 	div.modal-dialog.modal-md {
-		width: 500px !important;
+		width: 440px !important;
 		position: fixed !important;
 		top: 150px !important;
-		left: 400px !important;
+		left: 50% !important;
+		margin-left: -200px;
 	}
 
 	a.cancle-close {
@@ -37,7 +38,7 @@
 	}
 
 	.modal-header {
-		background-color: #3A76E4;
+		background-color: #5078cb;
 		line-height: 31px;
 		padding: 0px !important;
 		height: 31px;
@@ -51,16 +52,16 @@
 	}
 
 	.modal-footer .confirm {
-		width: 90px;
+		width: 70px;
 		padding: 5px 10px;
-		background-color: #3A76E4;
+		background-color: #5078cb;
 		border: none;
 		color: white;
 		font-size: 14px;
 	}
 
 	.modal-footer .cancle-button {
-		width: 90px;
+		width: 70px;
 		padding: 5px 10px;
 		background-color: #D9D5CE;
 		border: none;

+ 6 - 3
src/main/webapp/resources/view/vendor/forstore/vendor_order.html

@@ -608,6 +608,9 @@
 	.border-bt-16:nth-of-type(1){
 		border-top: none;
 	}
+	a.closeContact:hover > i {
+		color: white !important;
+	}
 	.conuter-box .content p{
 		line-height: 20px;
 	}
@@ -746,15 +749,15 @@
 						<span style="    width: 16%;text-align: left;">日期:{{purchase.createtime | date: 'yyyy-MM-dd'}}</span>
 						<span style="width: 25%;text-align: left;">订单号:<a class="hover-col" href="vendor#/purchase/detail/{{purchase.purchaseid | EncryptionFilter}}" target="_blank"><em ng-bind="purchase.orderid"></em></a></span>
 						<span style="width: 30%; text-align: center;">
-                            <img src="static/img/user/images/shop_home.png"><a ng-bind="purchase.buyentername" href="store/{{::purchase.storeid}}"></a>&nbsp;&nbsp;
+                            <img src="static/img/user/images/shop_home.png"><a ng-bind="purchase.buyentername"></a>&nbsp;&nbsp;
                         </span>
 						<span style="position: relative;">
                             <img src="static/img/common/songguo.png">
                             <!--<a name="{{purchase.id}}" href="javascript:void(0)" class="contact_btn" ng-controller="ChatContactCtrl as chat" ng-click="chat.contactWithOther(purchase.buyPhone, purchase.buyerenuu, chat.UserType.ENTERPRISE)">联系买家</a>-->
-							<a name="{{purchase.id}}" href="javascript:void(0)" class="contact_btn" >联系买家</a>
+							<a name="{{purchase.id}}" href="javascript:void(0)" class="contact_btn" ng-click="contactBuyer(purchase)">联系买家</a>
                              <div name="{{purchase.id}}" class="buyer-contact" ng-if="purchase.active" ng-class="{true : 'buyer-contact-info', false : 'display-none'}[purchase.active]">
                                  <div class="contact-title">
-                                     <a ng-click="purchase.active=false"><i class="fa fa-close fa-lg" aria-hidden="true"></i></a>
+                                     <a class="closeContact" ng-click="purchase.active=false"><i class="fa fa-close fa-lg" aria-hidden="true"></i></a>
                                  </div>
                                  <div class="contact-buyer-info">
                                      <div class="company-name" ng-bind="::purchase.buyername || '买家姓名没获取到'"></div>