From 271ae63c20fcbe28d29c47f1881138ff6551a2a1 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期三, 10 六月 2020 19:26:26 +0800
Subject: [PATCH] 唯品会订单bug修复,APP端佣金比例展示错误bug修复

---
 fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderProcessServiceImpl.java         |    2 +
 fanli/src/main/java/com/yeshi/fanli/service/impl/order/vipshop/VipShopOrderServiceImpl.java |   11 +++++
 fanli/src/main/java/com/yeshi/fanli/service/impl/order/CommonOrderServiceImpl.java          |    2 
 fanli/src/main/java/com/yeshi/fanli/util/CommonGoodsUtil.java                               |   10 ++++
 fanli/src/main/java/com/yeshi/fanli/util/SpringContext.java                                 |    7 ++-
 fanli/src/main/java/com/yeshi/fanli/util/suning/SuningUtil.java                             |   15 +++++--
 fanli/src/main/java/com/yeshi/fanli/service/impl/order/pdd/PDDOrderServiceImpl.java         |    2 
 fanli/src/main/java/com/yeshi/fanli/controller/client/v2/SuningControllerV2.java            |    1 
 fanli/src/main/java/com/yeshi/fanli/job/order/vipshop/UpdateVipShopOrderJob.java            |   10 ++++-
 fanli/src/main/java/com/yeshi/fanli/service/inter/order/vipshop/VipShopOrderService.java    |   11 +++++
 fanli/src/main/java/com/yeshi/fanli/util/factory/goods/GoodsDetailVOFactory.java            |   28 +++++++------
 11 files changed, 73 insertions(+), 26 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/SuningControllerV2.java b/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/SuningControllerV2.java
index 32bc51f..2c919c5 100644
--- a/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/SuningControllerV2.java
+++ b/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/SuningControllerV2.java
@@ -111,6 +111,7 @@
 			root.put("count", 1000);
 			out.print(JsonUtil.loadTrueResult(root));
 		} catch (Exception e) {
+			e.printStackTrace();
 			out.print(JsonUtil.loadFalseResult("鑾峰彇鍑洪敊"));
 		}
 	}
diff --git a/fanli/src/main/java/com/yeshi/fanli/job/order/vipshop/UpdateVipShopOrderJob.java b/fanli/src/main/java/com/yeshi/fanli/job/order/vipshop/UpdateVipShopOrderJob.java
index 73f850b..72a9576 100644
--- a/fanli/src/main/java/com/yeshi/fanli/job/order/vipshop/UpdateVipShopOrderJob.java
+++ b/fanli/src/main/java/com/yeshi/fanli/job/order/vipshop/UpdateVipShopOrderJob.java
@@ -13,6 +13,7 @@
 import com.yeshi.fanli.dto.vipshop.VipShopQueryOrderResultDTO;
 import com.yeshi.fanli.entity.vipshop.VipShopOrder;
 import com.yeshi.fanli.exception.vipshop.VipShopOrderException;
+import com.yeshi.fanli.log.LogHelper;
 import com.yeshi.fanli.service.inter.order.vipshop.VipShopOrderService;
 import com.yeshi.fanli.util.RedisKeyEnum;
 import com.yeshi.fanli.util.RedisManager;
@@ -45,12 +46,16 @@
 				String key = RedisKeyEnum.getRedisKey(RedisKeyEnum.VIPShopOrder, order.getOrderSn() + "");
 				String result = redisManager.getCommonString(key);
 				// 鍒ゆ柇
-				if (StringUtil.isNullOrEmpty(result)) {
+//				if (StringUtil.isNullOrEmpty(result)) {
 					VipShopOrderCMQManager.getInstance().addVipShopOrder(order.getOrderSn() + "");
 					redisManager.cacheCommonString(key, "1", 60 * 60 * 2);// 2灏忔椂鍐呬笉鍐嶆洿鏂�
-				}
+					LogHelper.test("鍞搧浼氳鍗曟秷鎭彂閫佹垚鍔�");
+//				}else{
+//					LogHelper.test("鍞搧浼氳鍗曢鐜囬檺鍒�");
+//				}
 			} catch (VipShopOrderException e) {
 				e.printStackTrace();
+				LogHelper.errorDetailInfo(e);
 			}
 		}
 	}
@@ -60,6 +65,7 @@
 	 */
 	@XxlJob("updateVipShopOrderHandler")
 	public ReturnT<String> updateVipShopSoonOrder(String param) throws Exception {
+		LogHelper.test("updateVipShopOrderHandler:"+param);
 		long endTime = System.currentTimeMillis();
 		if ("1hour".equalsIgnoreCase(param)) {// 鏇存柊1灏忔椂鍐呯殑璁㈠崟
 			updateByOrderTime(endTime - 1000 * 60 * 60 * 1L, endTime);
diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/order/CommonOrderServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/order/CommonOrderServiceImpl.java
index a43daf9..36c0d49 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/impl/order/CommonOrderServiceImpl.java
+++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/order/CommonOrderServiceImpl.java
@@ -1270,7 +1270,7 @@
 			{
 				SuningGoodsInfo pddGoods = null;
 				// TODO 闇�瑕佽幏鍙�
-				pddGoods = SuningApiUtil.getGoodsDetail(suningOrderInfo.getGoodsNum(), "00000000");
+				pddGoods = SuningApiUtil.getGoodsDetail(suningOrderInfo.getGoodsNum(), suningOrderInfo.getSellerCode());
 				if (pddGoods != null) {
 					cog = CommonOrderGoodsFactory.create(pddGoods);
 				}
diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderProcessServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderProcessServiceImpl.java
index 91eed5c..3ff3530 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderProcessServiceImpl.java
+++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderProcessServiceImpl.java
@@ -1191,8 +1191,10 @@
 
 	@Override
 	public void processVipShopOrder(VipShopOrder order) {
+		
 		if (order == null || order.getDetailList() == null || order.getDetailList().size() == 0)
 			return;
+		
 
 		// 鏍规嵁ext1涓巗ubUnionId璺熷崟
 		String channelTag = order.getChannelTag();
diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/order/pdd/PDDOrderServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/order/pdd/PDDOrderServiceImpl.java
index ba117b9..e31d5af 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/impl/order/pdd/PDDOrderServiceImpl.java
+++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/order/pdd/PDDOrderServiceImpl.java
@@ -28,7 +28,7 @@
 		PDDOrder old = pddOrderMapper.selectByOrderSN(order.getOrderSn());
 		if (old != null) {
 			// 鏇存柊璁㈠崟淇℃伅
-			if (order.getOrderStatus().intValue() != old.getOrderStatus()) {// 鐘舵�佹敼鍙樹簡鎵嶆洿鏀硅鍗曚俊鎭�
+			if ((order.getOrderStatus().intValue() != old.getOrderStatus())||(old.getOrderStatus()==2 && old.getOrderReceiveTime()==null)) {// 鐘舵�佹敼鍙樹簡鎵嶆洿鏀硅鍗曚俊鎭�
 				PDDOrder update = new PDDOrder();
 				update.setId(old.getId());
 				update.setOrderStatus(order.getOrderStatus());
diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/order/vipshop/VipShopOrderServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/order/vipshop/VipShopOrderServiceImpl.java
index bfe40b0..c365a3c 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/impl/order/vipshop/VipShopOrderServiceImpl.java
+++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/order/vipshop/VipShopOrderServiceImpl.java
@@ -127,6 +127,17 @@
 	}
 
 	@Override
+	public List<VipShopOrder> listDetailByOrderSn(String orderSn) {
+		List<VipShopOrder> list = new ArrayList<>();
+		VipShopOrder order = vipShopOrderMapper.selectByOrderSn(orderSn);
+		if (order == null)
+			return null;
+		order = selectDetailByPrimaryKey(order.getId());
+		list.add(order);
+		return list;
+	}
+
+	@Override
 	public VipShopOrder selectDetailByPrimaryKey(Long orderId) {
 		VipShopOrder order = vipShopOrderMapper.selectByPrimaryKey(orderId);
 		if (order == null)
diff --git a/fanli/src/main/java/com/yeshi/fanli/service/inter/order/vipshop/VipShopOrderService.java b/fanli/src/main/java/com/yeshi/fanli/service/inter/order/vipshop/VipShopOrderService.java
index 7c2c8b6..614b05c 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/inter/order/vipshop/VipShopOrderService.java
+++ b/fanli/src/main/java/com/yeshi/fanli/service/inter/order/vipshop/VipShopOrderService.java
@@ -31,6 +31,17 @@
 	 * @return
 	 */
 	public List<VipShopOrder> listByOrderSn(String orderSn);
+	
+	/**
+	 * 鏍规嵁璁㈠崟鍙锋煡璇�
+	 * @Title: listDetailByOrderSn
+	 * @Description: 
+	 * @param orderSn
+	 * @return 
+	 * List<VipShopOrder> 杩斿洖绫诲瀷
+	 * @throws
+	 */
+	public List<VipShopOrder> listDetailByOrderSn(String orderSn);
 
 	/**
 	 * 鏍规嵁涓婚敭鏌ヨ(鍖呭惈瀛愯鍗�)
diff --git a/fanli/src/main/java/com/yeshi/fanli/util/CommonGoodsUtil.java b/fanli/src/main/java/com/yeshi/fanli/util/CommonGoodsUtil.java
index f6d1edd..c45e71f 100644
--- a/fanli/src/main/java/com/yeshi/fanli/util/CommonGoodsUtil.java
+++ b/fanli/src/main/java/com/yeshi/fanli/util/CommonGoodsUtil.java
@@ -34,9 +34,11 @@
 		BigDecimal money = null;
 
 		if (StringUtil.isNullOrEmpty(goods.getCouponInfo()) || goods.getCouponInfo().trim().equalsIgnoreCase("鏃�")) {
+			BigDecimal price = goods.getPrice();
 			money = MoneyBigDecimalUtil.mul(MoneyBigDecimalUtil
-					.mul(MoneyBigDecimalUtil.mul(goods.getPrice(), goods.getRate()), new BigDecimal("0.01")),
+					.mul(MoneyBigDecimalUtil.mul(price, goods.getRate()), new BigDecimal("0.01")),
 					MoneyBigDecimalUtil.div(rate, new BigDecimal(100)));
+
 		} else// 鏈夊埜
 		{
 			List<BigDecimal> list = TaoBaoCouponUtil.getCouponInfo(goods.getCouponInfo());
@@ -54,6 +56,12 @@
 						MoneyBigDecimalUtil.div(rate, new BigDecimal(100)));
 			}
 		}
+		
+		if (goods.getGoodsType() == Constant.SOURCE_TYPE_VIP) {
+			money = MoneyBigDecimalUtil.mul(MoneyBigDecimalUtil
+					.mul(MoneyBigDecimalUtil.mul(goods.getCouponStartPrice(), goods.getRate()), new BigDecimal("0.01")),
+					MoneyBigDecimalUtil.div(rate, new BigDecimal(100)));
+		}
 
 		// 浜笢鍟嗗搧鐗规畩澶勭悊
 		if (goods.getGoodsType() == Constant.SOURCE_TYPE_JD)
diff --git a/fanli/src/main/java/com/yeshi/fanli/util/SpringContext.java b/fanli/src/main/java/com/yeshi/fanli/util/SpringContext.java
index edeabbb..9d172f9 100644
--- a/fanli/src/main/java/com/yeshi/fanli/util/SpringContext.java
+++ b/fanli/src/main/java/com/yeshi/fanli/util/SpringContext.java
@@ -735,8 +735,9 @@
 								String key = its.next();
 								try {
 									String orderId = map.get(key);
+									LogHelper.test("鍞搧浼氳鍗曟秷璐�:"+orderId);
 									if (!StringUtil.isNullOrEmpty(orderId)) {
-										List<VipShopOrder> orderList = vipShopOrderService.listByOrderSn(orderId);
+										List<VipShopOrder> orderList = vipShopOrderService.listDetailByOrderSn(orderId);
 										if (orderList != null)
 											for (VipShopOrder order : orderList)
 												orderProcessService.processVipShopOrder(order);
@@ -748,7 +749,7 @@
 							}
 						}
 					} catch (Exception e) {
-						LogHelper.error("鍞搧浼氳鍗�:" + e.getMessage());
+						LogHelper.errorDetailInfo(e);
 					}
 				}
 			}
@@ -783,7 +784,7 @@
 							}
 						}
 					} catch (Exception e) {
-						LogHelper.error("鑻忓畞璁㈠崟:" + e.getMessage());
+						LogHelper.errorDetailInfo(e);
 					}
 				}
 			}
diff --git a/fanli/src/main/java/com/yeshi/fanli/util/factory/goods/GoodsDetailVOFactory.java b/fanli/src/main/java/com/yeshi/fanli/util/factory/goods/GoodsDetailVOFactory.java
index edfd68d..60f510a 100644
--- a/fanli/src/main/java/com/yeshi/fanli/util/factory/goods/GoodsDetailVOFactory.java
+++ b/fanli/src/main/java/com/yeshi/fanli/util/factory/goods/GoodsDetailVOFactory.java
@@ -137,7 +137,7 @@
 			goodsInfo.setPriceName("鎷煎洟浠�");
 			goodsInfo.setBaoyou(true);
 		} else if (goodsType == Constant.SOURCE_TYPE_SUNING) {
-			goodsInfo.setSalesType(1); 
+			goodsInfo.setSalesType(1);
 			goodsInfo.setGoodsId(SuningUtil.getConcatGoodsIId(SuningUtil.getFullSupplierCode(goods.getSellerId() + ""),
 					goods.getGoodsId() + ""));
 		} else {
@@ -299,16 +299,16 @@
 				moneyInfoVO.setMaxMoney("楼" + taoBaoHongBaoInfo.getHongbao()
 						.add(MoneyBigDecimalUtil.mul(taoBaoHongBaoInfo.getHongbao(), params.getMaxRewardRate())));
 			else
-				moneyInfoVO.setMaxMoney("楼" + TaoBaoUtil.getGoodsHongBaoMoney(goods, params.getVipFanLiRate(),false));
+				moneyInfoVO.setMaxMoney("楼" + TaoBaoUtil.getGoodsHongBaoMoney(goods, params.getVipFanLiRate(), false));
 		} else {
-			BigDecimal commission = TaoBaoUtil.getGoodsHongBaoMoney(goods, params.getFanLiRate(),false);
+			BigDecimal commission = TaoBaoUtil.getGoodsHongBaoMoney(goods, params.getFanLiRate(), false);
 			moneyInfoVO.setFanliMoney("楼" + commission);
 			if (params.getMaxRewardRate() != null)
 				moneyInfoVO.setMaxMoney(
 						"楼" + commission.add(MoneyBigDecimalUtil.mul(commission, params.getMaxRewardRate())));
 			else
-				moneyInfoVO.setMaxMoney("楼" + TaoBaoUtil.getGoodsHongBaoMoney(goods, params.getVipFanLiRate(),false));
-			moneyInfoVO.setShareMoney(TaoBaoUtil.getGoodsHongBaoInfo(goods, params.getShareRate(),true));
+				moneyInfoVO.setMaxMoney("楼" + TaoBaoUtil.getGoodsHongBaoMoney(goods, params.getVipFanLiRate(), false));
+			moneyInfoVO.setShareMoney(TaoBaoUtil.getGoodsHongBaoInfo(goods, params.getShareRate(), true));
 		}
 		goodsInfo.setMoneyInfo(moneyInfoVO);
 
@@ -432,10 +432,10 @@
 		MoneyInfoVO moneyInfoVO = new MoneyInfoVO();
 		moneyInfoVO.setMoneyType(1); // 榛樿鏄剧ず锛氳繑 楼6.6
 
-		BigDecimal commission = TaoBaoUtil.getGoodsHongBaoMoney(goods, params.getFanLiRate(),false);
+		BigDecimal commission = TaoBaoUtil.getGoodsHongBaoMoney(goods, params.getFanLiRate(), false);
 		BigDecimal baseCommisstion = null;
 		if (params.getBaseFanliRate() != null)
-			baseCommisstion = TaoBaoUtil.getGoodsHongBaoMoney(goods, params.getBaseFanliRate(),false);
+			baseCommisstion = TaoBaoUtil.getGoodsHongBaoMoney(goods, params.getBaseFanliRate(), false);
 		moneyInfoVO.setFanliMoney("楼" + commission);
 		if (params.getMaxRewardRate() != null)
 			moneyInfoVO
@@ -446,7 +446,7 @@
 			BigDecimal rate = MoneyBigDecimalUtil.div(commission.multiply(new BigDecimal(100)), price);
 			moneyInfoVO.setRateInfo("杩斿埄姣� " + rate + "%");
 
-			BigDecimal maxCommission = TaoBaoUtil.getGoodsHongBaoMoney(goods, params.getVipFanLiRate(),false);
+			BigDecimal maxCommission = TaoBaoUtil.getGoodsHongBaoMoney(goods, params.getVipFanLiRate(), false);
 			BigDecimal maxRate = MoneyBigDecimalUtil.div(maxCommission.multiply(new BigDecimal(100)), price);
 			moneyInfoVO.setMaxRateInfo("杩斿埄姣� " + maxRate + "%");
 			moneyInfoVO.setMaxMoney("楼" + maxCommission);
@@ -460,7 +460,7 @@
 			}
 		}
 
-		moneyInfoVO.setShareMoney(TaoBaoUtil.getGoodsHongBaoInfo(goods, params.getShareRate(),true));
+		moneyInfoVO.setShareMoney(TaoBaoUtil.getGoodsHongBaoInfo(goods, params.getShareRate(), true));
 
 		goodsInfo.setMoneyInfo(moneyInfoVO);
 
@@ -979,8 +979,7 @@
 		goodsInfo.setPriceName("鍘熶环");
 		if (goods.getCommodityInfo().getPictureUrl().size() > 0)
 			goodsInfo.setPicUrl(goods.getCommodityInfo().getPictureUrl().get(0).getPicUrl()); // 缂╃暐鍥�
-	
-		
+
 		String commodityPrice = goods.getCommodityInfo().getCommodityPrice();
 		if (StringUtil.isNullOrEmpty(commodityPrice)) {
 			commodityPrice = goods.getCommodityInfo().getSnPrice();
@@ -1011,7 +1010,10 @@
 		if (goods.getCouponInfo() != null && !StringUtil.isNullOrEmpty(goods.getCouponInfo().getCouponUrl())) {// 鏈夊埜
 			CouponInfoVO coupon = new CouponInfoVO();
 			coupon.setAmount(new BigDecimal(goods.getCouponInfo().getCouponValue()));
-			coupon.setStartFee(new BigDecimal(goods.getCouponInfo().getBounsLimit()));
+			if (StringUtil.isNullOrEmpty(goods.getCouponInfo().getBounsLimit())) {
+				coupon.setStartFee(new BigDecimal(goods.getCouponInfo().getCouponValue()));
+			} else
+				coupon.setStartFee(new BigDecimal(goods.getCouponInfo().getBounsLimit()));
 
 			if (goods.getCouponInfo().getCouponStartTime() != null) {
 				coupon.setStartTime(goods.getCouponInfo().getCouponStartTime());
@@ -1032,7 +1034,7 @@
 
 			if (goodsInfo.getZkPrice().compareTo(coupon.getStartFee()) >= 0) {
 				goodsInfo.setCouponPrice(goodsInfo.getZkPrice().subtract(coupon.getAmount()));
-			}else{
+			} else {
 				goodsInfo.setCouponPrice(goodsInfo.getZkPrice());
 			}
 
diff --git a/fanli/src/main/java/com/yeshi/fanli/util/suning/SuningUtil.java b/fanli/src/main/java/com/yeshi/fanli/util/suning/SuningUtil.java
index 2cd2165..f0a5d26 100644
--- a/fanli/src/main/java/com/yeshi/fanli/util/suning/SuningUtil.java
+++ b/fanli/src/main/java/com/yeshi/fanli/util/suning/SuningUtil.java
@@ -14,7 +14,7 @@
 
 		BigDecimal hundred = new BigDecimal(100);
 		rate = MoneyBigDecimalUtil.div(rate, hundred);
-		
+
 		String commodityPrice = goods.getCommodityInfo().getCommodityPrice();
 		if (StringUtil.isNullOrEmpty(commodityPrice)) {
 			commodityPrice = goods.getCommodityInfo().getSnPrice();
@@ -23,14 +23,19 @@
 		BigDecimal afterUseCouponPrice = new BigDecimal(commodityPrice);
 		if (goods.getCouponInfo() != null && !StringUtil.isNullOrEmpty(goods.getCouponInfo().getCouponUrl())) {
 			// 鏈夊埜
-			BigDecimal startPrice = new BigDecimal(goods.getCouponInfo().getBounsLimit());
+			BigDecimal startPrice = null;
+			if (StringUtil.isNullOrEmpty(goods.getCouponInfo().getBounsLimit())) {
+				startPrice = new BigDecimal(goods.getCouponInfo().getCouponValue());
+			} else
+				startPrice = new BigDecimal(goods.getCouponInfo().getBounsLimit());
 			if (afterUseCouponPrice.compareTo(startPrice) >= 0) {
-				afterUseCouponPrice = afterUseCouponPrice.subtract(startPrice);
+				afterUseCouponPrice = afterUseCouponPrice.subtract(new BigDecimal(goods.getCouponInfo().getCouponValue()));
 			}
 		}
+		
+		BigDecimal commission=MoneyBigDecimalUtil.mul(afterUseCouponPrice,MoneyBigDecimalUtil.div(new BigDecimal(goods.getCommodityInfo().getRate()), new BigDecimal(100),5));
 
-		BigDecimal money = MoneyBigDecimalUtil.mul(MoneyBigDecimalUtil.div(
-				afterUseCouponPrice.multiply(new BigDecimal(goods.getCommodityInfo().getRate())), new BigDecimal(100)),
+		BigDecimal money = MoneyBigDecimalUtil.mul(commission,
 				rate);
 		return BigDecimalUtil.getWithNoZera(money).setScale(2);
 	}

--
Gitblit v1.8.0