From 554de444b87aab5f93cb1593a8095612cf9479a7 Mon Sep 17 00:00:00 2001
From: yujian <yujian@163.com>
Date: 星期二, 09 六月 2020 17:34:30 +0800
Subject: [PATCH] 订单

---
 fanli/src/main/java/com/yeshi/fanli/util/factory/goods/GoodsDetailVOFactory.java |  530 ++++++++++++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 457 insertions(+), 73 deletions(-)

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 424397e..edfd68d 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
@@ -5,7 +5,9 @@
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Date;
+import java.util.HashSet;
 import java.util.List;
+import java.util.Set;
 
 import org.yeshi.utils.taobao.TbImgUtil;
 
@@ -15,6 +17,9 @@
 import com.yeshi.fanli.dto.jd.JDPingouInfo;
 import com.yeshi.fanli.dto.jd.JDShopInfo;
 import com.yeshi.fanli.dto.pdd.PDDGoodsDetail;
+import com.yeshi.fanli.dto.suning.SuningGoodsImg;
+import com.yeshi.fanli.dto.suning.SuningGoodsInfo;
+import com.yeshi.fanli.dto.vip.goods.VIPGoodsInfo;
 import com.yeshi.fanli.entity.goods.CommonGoods;
 import com.yeshi.fanli.entity.jd.JDGoods;
 import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
@@ -25,10 +30,13 @@
 import com.yeshi.fanli.util.Constant;
 import com.yeshi.fanli.util.MoneyBigDecimalUtil;
 import com.yeshi.fanli.util.StringUtil;
+import com.yeshi.fanli.util.TimeUtil;
 import com.yeshi.fanli.util.jd.JDUtil;
 import com.yeshi.fanli.util.pinduoduo.PinDuoDuoUtil;
+import com.yeshi.fanli.util.suning.SuningUtil;
 import com.yeshi.fanli.util.taobao.TaoBaoCouponUtil;
 import com.yeshi.fanli.util.taobao.TaoBaoUtil;
+import com.yeshi.fanli.util.vipshop.VipShopUtil;
 import com.yeshi.fanli.vo.goods.CouponInfoVO;
 import com.yeshi.fanli.vo.goods.GoodsDetailVO;
 import com.yeshi.fanli.vo.goods.MoneyInfoVO;
@@ -57,7 +65,7 @@
 	 */
 	public static GoodsDetailVO convertCommonGoods(CommonGoods goods, ConfigParamsDTO params) {
 		GoodsDetailVO goodsInfo = new GoodsDetailVO();
-		goodsInfo.setGoodsId(goods.getGoodsId());
+		goodsInfo.setGoodsId(goods.getGoodsId() + "");
 		goodsInfo.setTitle(goods.getTitle());
 
 		Integer shopType = goods.getShopType();
@@ -128,9 +136,19 @@
 			goodsInfo.setSalesType(4); // 鎬婚攢閲�
 			goodsInfo.setPriceName("鎷煎洟浠�");
 			goodsInfo.setBaoyou(true);
+		} else if (goodsType == Constant.SOURCE_TYPE_SUNING) {
+			goodsInfo.setSalesType(1); 
+			goodsInfo.setGoodsId(SuningUtil.getConcatGoodsIId(SuningUtil.getFullSupplierCode(goods.getSellerId() + ""),
+					goods.getGoodsId() + ""));
 		} else {
 			goodsInfo.setSalesType(1); // 鏈堥攢閲�
 			goodsInfo.setBaoyou(true);
+		}
+
+		if (goodsType == Constant.SOURCE_TYPE_VIP) {
+			goodsInfo.setDiscount(goods.getCouponInfo());
+			goodsInfo.setPriceName("鎶樺悗浠�");
+			goodsInfo.setCouponPrice(goods.getCouponStartPrice());
 		}
 
 		goodsInfo.setGoodsType(goodsType);
@@ -157,11 +175,25 @@
 		// 璧勯噾淇℃伅
 		MoneyInfoVO moneyInfoVO = new MoneyInfoVO();
 		moneyInfoVO.setMoneyType(1); // 榛樿鏄剧ず锛氳繑 楼6.6
-		
+
 		BigDecimal commission = CommonGoodsUtil.getCommission(goods, params.getFanLiRate());
 		moneyInfoVO.setFanliMoney("楼" + commission);
-		moneyInfoVO.setMaxMoney("楼" + commission.add(MoneyBigDecimalUtil.mul(commission, params.getMaxRewardRate())));
+
+		BigDecimal maxCommission = CommonGoodsUtil.getCommission(goods, params.getVipFanLiRate());
+		if (params.getMaxRewardRate() != null)
+			moneyInfoVO
+					.setMaxMoney("楼" + commission.add(MoneyBigDecimalUtil.mul(commission, params.getMaxRewardRate())));
+		else
+			moneyInfoVO.setMaxMoney("楼" + maxCommission);
+
 		moneyInfoVO.setShareMoney(CommonGoodsUtil.getCommissionInfo(goods, params.getShareRate()));
+
+		moneyInfoVO.setRateInfo("杩斿埄姣� " + MoneyBigDecimalUtil.div(commission.multiply(new BigDecimal(100)),
+				CommonGoodsUtil.getAfterUseCouplePrice(goods)) + "%");
+
+		moneyInfoVO.setMaxRateInfo("杩斿埄姣� " + MoneyBigDecimalUtil.div(maxCommission.multiply(new BigDecimal(100)),
+				CommonGoodsUtil.getAfterUseCouplePrice(goods)) + "%");
+
 		goodsInfo.setMoneyInfo(moneyInfoVO);
 
 		// 鍒镐俊鎭�
@@ -188,10 +220,10 @@
 		if (!StringUtil.isNullOrEmpty(goods.getSellerName())) {
 			ShopInfoVO shop = new ShopInfoVO();
 			shop.setShopName(goods.getSellerName());
-			
-			if( goods.getSellerId() != null)
+
+			if (goods.getSellerId() != null)
 				shop.setId(goods.getSellerId().toString());
-			
+
 			if (shopType == null || shopType == 0) {
 				shop.setUserType(10);
 			} else if (shopType == 1) {
@@ -199,22 +231,26 @@
 			} else {
 				shop.setUserType(goods.getShopType());
 			}
-			
+
 			goodsInfo.setShopInfo(shop);
 		}
-		
-//		if (Constant.IS_TEST) {
-//			// 娣诲姞鏍囩
-//			List<ClientTextStyleVO> labels = goodsInfo.getLabels();
-//			if (labels == null) 
-//				labels = new ArrayList<>();
-//			
-//			labels.add(new ClientTextStyleVO("棰勫敭", "#FF2B4E"));
-//			labels.add(new ClientTextStyleVO("鐖嗘", "#FF2B4E"));
-//			labels.add(new ClientTextStyleVO("瓒呯骇鍒掔畻", "#FF2B4E"));
-//			goodsInfo.setLabels(labels);
-//		}
-		
+
+		if (goodsType == Constant.SOURCE_TYPE_VIP) {
+			goodsInfo.setShopInfo(null);
+		}
+
+		// if (Constant.IS_TEST) {
+		// // 娣诲姞鏍囩
+		// List<ClientTextStyleVO> labels = goodsInfo.getLabels();
+		// if (labels == null)
+		// labels = new ArrayList<>();
+		//
+		// labels.add(new ClientTextStyleVO("棰勫敭", "#FF2B4E"));
+		// labels.add(new ClientTextStyleVO("鐖嗘", "#FF2B4E"));
+		// labels.add(new ClientTextStyleVO("瓒呯骇鍒掔畻", "#FF2B4E"));
+		// goodsInfo.setLabels(labels);
+		// }
+
 		return goodsInfo;
 	}
 
@@ -232,7 +268,7 @@
 		GoodsDetailVO goodsInfo = new GoodsDetailVO();
 		goodsInfo.setBaoyou(true);
 		goodsInfo.setGoodsType(Constant.SOURCE_TYPE_TAOBAO);
-		goodsInfo.setGoodsId(goods.getAuctionId());
+		goodsInfo.setGoodsId(goods.getAuctionId() + "");
 		goodsInfo.setTitle(goods.getTitle());
 		goodsInfo.setSalesType(1); // 榛樿鏈堥攢閲�
 		goodsInfo.setZkPrice(goods.getZkPrice());
@@ -240,6 +276,7 @@
 		goodsInfo.setState(goods.getState() == null ? 0 : goods.getState());
 		goodsInfo.setSalesCount(goods.getSalesCount());
 		goodsInfo.setPicUrl(goods.getPictUrl());
+		goodsInfo.setDescription(goods.getDescription());
 
 		Integer shopType = goods.getUserType();
 		if (shopType != null && shopType == 1) {
@@ -258,12 +295,20 @@
 			TaoBaoHongBaoInfo taoBaoHongBaoInfo = goods.getTaoBaoHongBaoInfo();
 			moneyInfoVO.setFanliMoney("楼" + taoBaoHongBaoInfo.getHongbao());
 			moneyInfoVO.setShareMoney("楼" + taoBaoHongBaoInfo.getHongbao());
-			moneyInfoVO.setMaxMoney("楼" + taoBaoHongBaoInfo.getHongbao().add(MoneyBigDecimalUtil.mul(taoBaoHongBaoInfo.getHongbao(), params.getMaxRewardRate())));
+			if (params.getMaxRewardRate() != null)
+				moneyInfoVO.setMaxMoney("楼" + taoBaoHongBaoInfo.getHongbao()
+						.add(MoneyBigDecimalUtil.mul(taoBaoHongBaoInfo.getHongbao(), params.getMaxRewardRate())));
+			else
+				moneyInfoVO.setMaxMoney("楼" + TaoBaoUtil.getGoodsHongBaoMoney(goods, params.getVipFanLiRate(),false));
 		} else {
-			BigDecimal commission = TaoBaoUtil.getGoodsHongBaoMoney(goods, params.getFanLiRate());
+			BigDecimal commission = TaoBaoUtil.getGoodsHongBaoMoney(goods, params.getFanLiRate(),false);
 			moneyInfoVO.setFanliMoney("楼" + commission);
-			moneyInfoVO.setMaxMoney("楼" + commission.add(MoneyBigDecimalUtil.mul(commission, params.getMaxRewardRate())));
-			moneyInfoVO.setShareMoney(TaoBaoUtil.getGoodsHongBaoInfo(goods, params.getShareRate()));
+			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));
 		}
 		goodsInfo.setMoneyInfo(moneyInfoVO);
 
@@ -283,21 +328,22 @@
 			coupon.setStartTime(sdf.format(new Date(Long.parseLong(couponEffectiveStartTime))));
 			coupon.setLink(taoBaoQuanInfo.getCouponLink());
 			coupon.setStartFee(taoBaoQuanInfo.getCouponStartFee());
+			coupon.setShopCoupon(goods.isShopCoupon());
 			goodsInfo.setHasCoupon(true);
 			goodsInfo.setCouponInfo(coupon);
 		}
 
 		// 搴楅摵淇℃伅
 		String shopTitle = goods.getShopTitle();
-		
+
 		if (!StringUtil.isNullOrEmpty(shopTitle)) {
 			ShopInfoVO shop = new ShopInfoVO();
 			shop.setShopName(shopTitle);
-			
+
 			Long sellerId = goods.getSellerId();
-			if(sellerId != null)
+			if (sellerId != null)
 				shop.setId(goods.getSellerId().toString());
-			
+
 			if (shopType != null && shopType == 1) {
 				shop.setUserType(11);
 			} else {
@@ -306,18 +352,18 @@
 			goodsInfo.setShopInfo(shop);
 		}
 
-//		if (Constant.IS_TEST) {
-//			// 娣诲姞鏍囩
-//			List<ClientTextStyleVO> labels = goodsInfo.getLabels();
-//			if (labels == null) 
-//				labels = new ArrayList<>();
-//			
-//			labels.add(new ClientTextStyleVO("棰勫敭", "#FF2B4E"));
-//			labels.add(new ClientTextStyleVO("鐖嗘", "#FF2B4E"));
-//			labels.add(new ClientTextStyleVO("瓒呯骇鍒掔畻", "#FF2B4E"));
-//			goodsInfo.setLabels(labels);
-//		}
-		
+		// if (Constant.IS_TEST) {
+		// // 娣诲姞鏍囩
+		// List<ClientTextStyleVO> labels = goodsInfo.getLabels();
+		// if (labels == null)
+		// labels = new ArrayList<>();
+		//
+		// labels.add(new ClientTextStyleVO("棰勫敭", "#FF2B4E"));
+		// labels.add(new ClientTextStyleVO("鐖嗘", "#FF2B4E"));
+		// labels.add(new ClientTextStyleVO("瓒呯骇鍒掔畻", "#FF2B4E"));
+		// goodsInfo.setLabels(labels);
+		// }
+
 		return goodsInfo;
 	}
 
@@ -335,10 +381,11 @@
 		GoodsDetailVO goodsInfo = new GoodsDetailVO();
 		goodsInfo.setBaoyou(true);
 		goodsInfo.setGoodsType(Constant.SOURCE_TYPE_TAOBAO);
-		goodsInfo.setGoodsId(goods.getAuctionId());
+		goodsInfo.setGoodsId(goods.getAuctionId() + "");
 		goodsInfo.setTitle(goods.getTitle());
 		goodsInfo.setSalesType(1); // 榛樿鏈堥攢閲�
 		goodsInfo.setZkPrice(goods.getZkPrice());
+		goodsInfo.setDescription(goods.getDescription());
 
 		String provcity = goods.getProvcity();
 		if (!StringUtil.isNullOrEmpty(provcity)) {
@@ -384,10 +431,37 @@
 		// 璧勯噾淇℃伅
 		MoneyInfoVO moneyInfoVO = new MoneyInfoVO();
 		moneyInfoVO.setMoneyType(1); // 榛樿鏄剧ず锛氳繑 楼6.6
-		BigDecimal commission = TaoBaoUtil.getGoodsHongBaoMoney(goods, params.getFanLiRate());
+
+		BigDecimal commission = TaoBaoUtil.getGoodsHongBaoMoney(goods, params.getFanLiRate(),false);
+		BigDecimal baseCommisstion = null;
+		if (params.getBaseFanliRate() != null)
+			baseCommisstion = TaoBaoUtil.getGoodsHongBaoMoney(goods, params.getBaseFanliRate(),false);
 		moneyInfoVO.setFanliMoney("楼" + commission);
-		moneyInfoVO.setMaxMoney("楼" + commission.add(MoneyBigDecimalUtil.mul(commission, params.getMaxRewardRate())));
-		moneyInfoVO.setShareMoney(TaoBaoUtil.getGoodsHongBaoInfo(goods, params.getShareRate()));
+		if (params.getMaxRewardRate() != null)
+			moneyInfoVO
+					.setMaxMoney("楼" + commission.add(MoneyBigDecimalUtil.mul(commission, params.getMaxRewardRate())));
+		else {// 鍙湁鏈塚IP鍚庣殑鐗堟湰鎵嶄細鏄剧ず杩斿埄姣�
+
+			BigDecimal price = TaoBaoUtil.getAfterUseCouplePrice(goods);
+			BigDecimal rate = MoneyBigDecimalUtil.div(commission.multiply(new BigDecimal(100)), price);
+			moneyInfoVO.setRateInfo("杩斿埄姣� " + rate + "%");
+
+			BigDecimal maxCommission = TaoBaoUtil.getGoodsHongBaoMoney(goods, params.getVipFanLiRate(),false);
+			BigDecimal maxRate = MoneyBigDecimalUtil.div(maxCommission.multiply(new BigDecimal(100)), price);
+			moneyInfoVO.setMaxRateInfo("杩斿埄姣� " + maxRate + "%");
+			moneyInfoVO.setMaxMoney("楼" + maxCommission);
+			if (baseCommisstion != null) {
+				String desc = String.format("浣i噾楼 %s+骞冲彴琛ヨ创楼 %s", baseCommisstion.setScale(2).toString(),
+						commission.subtract(baseCommisstion).setScale(2).toString());
+				String maxDesc = String.format("浣i噾楼 %s+骞冲彴琛ヨ创楼 %s", baseCommisstion.setScale(2).toString(),
+						maxCommission.subtract(baseCommisstion).setScale(2).toString());
+				moneyInfoVO.setCompositionInfo(desc);
+				moneyInfoVO.setMaxCompositionInfo(maxDesc);
+			}
+		}
+
+		moneyInfoVO.setShareMoney(TaoBaoUtil.getGoodsHongBaoInfo(goods, params.getShareRate(),true));
+
 		goodsInfo.setMoneyInfo(moneyInfoVO);
 
 		// 鍒镐俊鎭�
@@ -413,9 +487,13 @@
 				coupon.setStartTime(goods.getCouponEffectiveStartTime().replace("-", "."));
 			}
 
-			coupon.setLink(TaoBaoCouponUtil.getCoupleUrl(goods.getCouponActivityId(), null, goods.getAuctionId() + ""));
+			if (!StringUtil.isNullOrEmpty(goods.getCouponLink()))
+				coupon.setLink(goods.getCouponLink());
+			else
+				coupon.setLink(
+						TaoBaoCouponUtil.getCoupleUrl(goods.getCouponActivityId(), null, goods.getAuctionId() + ""));
 			coupon.setStartFee(goods.getCouponStartFee());
-
+			coupon.setShopCoupon(goods.isShopCoupon());
 			goodsInfo.setHasCoupon(true);
 			goodsInfo.setCouponInfo(coupon);
 		}
@@ -424,16 +502,16 @@
 		if (!StringUtil.isNullOrEmpty(goods.getShopTitle())) {
 			ShopInfoVO shop = new ShopInfoVO();
 			shop.setShopName(goods.getShopTitle());
-			
+
 			if (goods.getSellerId() != null)
 				shop.setId(goods.getSellerId().toString());
-			
+
 			if (shopType != null && shopType == 1) {
 				shop.setUserType(11);
 			} else {
 				shop.setUserType(10);
 			}
-			
+
 			goodsInfo.setShopInfo(shop);
 		}
 
@@ -444,15 +522,15 @@
 		if (Constant.IS_TEST) {
 			// 娣诲姞鏍囩
 			List<ClientTextStyleVO> labels = goodsInfo.getLabels();
-			if (labels == null) 
+			if (labels == null)
 				labels = new ArrayList<>();
-			
+
 			labels.add(new ClientTextStyleVO("棰勫敭", "#FF2B4E"));
 			labels.add(new ClientTextStyleVO("鐖嗘", "#FF2B4E"));
 			labels.add(new ClientTextStyleVO("瓒呯骇鍒掔畻", "#FF2B4E"));
 			goodsInfo.setLabels(labels);
 		}
-		
+
 		return goodsInfo;
 	}
 
@@ -468,6 +546,51 @@
 		return goodsInfo;
 	}
 
+	private static CouponInfoVO convertJDCouponInfo(JDCouponInfo couponInfo) {
+		CouponInfoVO coupon = new CouponInfoVO();
+		coupon.setAmount(couponInfo.getDiscount());
+		coupon.setLink(couponInfo.getLink());
+		coupon.setStartFee(couponInfo.getQuota());
+
+		if (couponInfo.getGetStartTime() != null) {
+			coupon.setStartTime(TimeUtil.getGernalTime(couponInfo.getGetStartTime(), "yyyy.MM.dd"));
+		}
+
+		if (couponInfo.getGetEndTime() != null) {
+			coupon.setEndTime(TimeUtil.getGernalTime(couponInfo.getGetEndTime(), "yyyy.MM.dd"));
+		}
+
+		return coupon;
+	}
+
+	private static List<CouponInfoVO> filterCouponInfo(List<CouponInfoVO> couponList) {
+		if (couponList == null)
+			return null;
+		long currentTime = System.currentTimeMillis();
+		Set<String> sets = new HashSet<>();
+		// 杩囨护鎺夎繃鏈熷埜
+		for (int i = 0; i < couponList.size(); i++) {
+			if (couponList.get(i).getStartTime() != null && couponList.get(i).getEndTime() != null) {
+				long startTime = TimeUtil.convertToTimeTemp(couponList.get(i).getStartTime(), "yyyy.MM.dd");
+				long endTime = TimeUtil.convertToTimeTemp(couponList.get(i).getEndTime(), "yyyy.MM.dd")
+						+ 1000 * 60 * 60 * 24L;
+				if (currentTime < startTime || currentTime >= endTime) {
+					couponList.remove(i--);
+					continue;
+				}
+			}
+			// 杩囨护鎺夐潰鍊肩浉鍚屼笌璧峰閲戦鐩稿悓鐨�
+			String key = couponList.get(i).getStartFee() + "-" + couponList.get(i).getAmount();
+			if (!sets.contains(key))
+				sets.add(key);
+			else {
+				couponList.remove(i--);
+				continue;
+			}
+		}
+		return couponList;
+	}
+
 	/**
 	 * 娣樺疂鍟嗗搧缁勭粐
 	 * 
@@ -481,7 +604,7 @@
 	public static GoodsDetailVO convertJDGoods(JDGoods goods, ConfigParamsDTO params) {
 		GoodsDetailVO goodsInfo = new GoodsDetailVO();
 		goodsInfo.setGoodsType(Constant.SOURCE_TYPE_JD);
-		goodsInfo.setGoodsId(goods.getSkuId());
+		goodsInfo.setGoodsId(goods.getSkuId() + "");
 		goodsInfo.setTitle(goods.getSkuName());
 		goodsInfo.setSalesType(1); // 榛樿鏈堥攢閲�
 		goodsInfo.setPicUrl(goods.getPicUrl());
@@ -504,11 +627,36 @@
 		moneyInfoVO.setMoneyType(1); // 榛樿鏄剧ず锛氳繑 楼6.6
 		BigDecimal commission = JDUtil.getGoodsFanLiMoney(goods, params.getFanLiRate());
 		moneyInfoVO.setFanliMoney("楼" + commission);
-		moneyInfoVO.setMaxMoney("楼" + commission.add(MoneyBigDecimalUtil.mul(commission, params.getMaxRewardRate())));
+		BigDecimal baseCommisstion = null;
+		if (params.getBaseFanliRate() != null)
+			baseCommisstion = JDUtil.getGoodsFanLiMoney(goods, params.getBaseFanliRate());
+
+		if (params.getMaxRewardRate() != null)
+			moneyInfoVO
+					.setMaxMoney("楼" + commission.add(MoneyBigDecimalUtil.mul(commission, params.getMaxRewardRate())));
+		else {
+			BigDecimal price = JDUtil.getQuanPrice(goods);
+			BigDecimal rate = MoneyBigDecimalUtil.div(commission.multiply(new BigDecimal(100)), price);
+			moneyInfoVO.setRateInfo("杩斿埄姣� " + rate + "%");
+
+			BigDecimal maxCommission = JDUtil.getGoodsFanLiMoney(goods, params.getVipFanLiRate());
+			BigDecimal maxRate = MoneyBigDecimalUtil.div(maxCommission.multiply(new BigDecimal(100)), price);
+			moneyInfoVO.setMaxRateInfo("杩斿埄姣� " + maxRate + "%");
+			moneyInfoVO.setMaxMoney("楼" + maxCommission);
+
+			if (baseCommisstion != null) {
+				String desc = String.format("浣i噾楼 %s+骞冲彴琛ヨ创楼 %s", baseCommisstion.setScale(2).toString(),
+						commission.subtract(baseCommisstion).setScale(2).toString());
+				String maxDesc = String.format("浣i噾楼 %s+骞冲彴琛ヨ创楼 %s", baseCommisstion.setScale(2).toString(),
+						maxCommission.subtract(baseCommisstion).setScale(2).toString());
+				moneyInfoVO.setCompositionInfo(desc);
+				moneyInfoVO.setMaxCompositionInfo(maxDesc);
+			}
+		}
 		moneyInfoVO.setShareMoney("楼" + JDUtil.getGoodsFanLiMoney(goods, params.getShareRate()));
 		goodsInfo.setMoneyInfo(moneyInfoVO);
 
-		JDCouponInfo couponInfo = goods.getCouponInfo();
+		JDCouponInfo couponInfo = JDUtil.getShowCouponInfo(goods);
 		if (couponInfo != null) {
 			BigDecimal discount = couponInfo.getDiscount();
 			// 璁$畻鍒稿悗浠�
@@ -530,6 +678,14 @@
 
 			goodsInfo.setHasCoupon(true);
 			goodsInfo.setCouponInfo(coupon);
+		}
+
+		if (goods.getCouponInfoList() != null && goods.getCouponInfoList().size() > 0) {
+			List<CouponInfoVO> couponList = new ArrayList<>();
+			for (JDCouponInfo jdCoupon : goods.getCouponInfoList()) {
+				couponList.add(convertJDCouponInfo(jdCoupon));
+			}
+			goodsInfo.setCouponInfoList(filterCouponInfo(couponList));
 		}
 
 		List<ClientTextStyleVO> labels = goodsInfo.getLabels();
@@ -572,7 +728,7 @@
 			ShopInfoVO shop = new ShopInfoVO();
 			shop.setShopName(shopInfo.getShopName());
 			shop.setId(shopInfo.getShopId().toString());
-			
+
 			if (!StringUtil.isNullOrEmpty(owner) && "g".equalsIgnoreCase(owner)) {
 				shop.setUserType(20);
 			} else {
@@ -586,7 +742,7 @@
 		if (isFreeShipping != null && isFreeShipping == 1) {
 			goodsInfo.setBaoyou(true);
 		}
-		
+
 		return goodsInfo;
 	}
 
@@ -604,7 +760,7 @@
 		GoodsDetailVO goodsInfo = new GoodsDetailVO();
 		goodsInfo.setBaoyou(true);
 		goodsInfo.setGoodsType(Constant.SOURCE_TYPE_PDD);
-		goodsInfo.setGoodsId(goods.getGoodsId());
+		goodsInfo.setGoodsId(goods.getGoodsId() + "");
 		goodsInfo.setTitle(goods.getGoodsName());
 		goodsInfo.setSalesType(4); // 鎬婚攢閲�
 		goodsInfo.setPriceName("鎷煎洟浠�");
@@ -637,9 +793,7 @@
 		moneyInfoVO.setMoneyType(1); // 榛樿鏄剧ず锛氳繑 楼6.6
 		BigDecimal commission = PinDuoDuoUtil.getGoodsFanLiMoney(goods, params.getFanLiRate());
 		moneyInfoVO.setFanliMoney("楼" + commission);
-		moneyInfoVO.setMaxMoney("楼" + commission.add(MoneyBigDecimalUtil.mul(commission, params.getMaxRewardRate())));
-		moneyInfoVO.setShareMoney("楼" + PinDuoDuoUtil.getGoodsFanLiMoney(goods, params.getShareRate()));
-		goodsInfo.setMoneyInfo(moneyInfoVO);
+		moneyInfoVO.setShareMoney("楼" + commission);
 
 		Boolean hasCoupon = goods.getHasCoupon();
 		if (hasCoupon != null && hasCoupon) {
@@ -680,6 +834,35 @@
 			goodsInfo.setCouponInfo(coupon);
 		}
 
+		BigDecimal baseCommisstion = null;
+		if (params.getBaseFanliRate() != null)
+			baseCommisstion = PinDuoDuoUtil.getGoodsFanLiMoney(goods, params.getBaseFanliRate());
+
+		if (params.getMaxRewardRate() != null)
+			moneyInfoVO
+					.setMaxMoney("楼" + commission.add(MoneyBigDecimalUtil.mul(commission, params.getMaxRewardRate())));
+		else {
+			BigDecimal price = goodsInfo.getCouponPrice() != null ? goodsInfo.getCouponPrice() : goodsInfo.getZkPrice();
+			BigDecimal rate = MoneyBigDecimalUtil.div(commission.multiply(new BigDecimal(100)), price);
+			moneyInfoVO.setRateInfo("杩斿埄姣� " + rate + "%");
+
+			BigDecimal maxCommission = PinDuoDuoUtil.getGoodsFanLiMoney(goods, params.getVipFanLiRate());
+			BigDecimal maxRate = MoneyBigDecimalUtil.div(maxCommission.multiply(new BigDecimal(100)), price);
+			moneyInfoVO.setMaxRateInfo("杩斿埄姣� " + maxRate + "%");
+
+			moneyInfoVO.setMaxMoney("楼" + maxCommission);
+
+			if (baseCommisstion != null) {
+				String desc = String.format("浣i噾楼 %s+骞冲彴琛ヨ创楼 %s", baseCommisstion.setScale(2).toString(),
+						commission.subtract(baseCommisstion).setScale(2).toString());
+				String maxDesc = String.format("浣i噾楼 %s+骞冲彴琛ヨ创楼 %s", baseCommisstion.setScale(2).toString(),
+						maxCommission.subtract(baseCommisstion).setScale(2).toString());
+				moneyInfoVO.setCompositionInfo(desc);
+				moneyInfoVO.setMaxCompositionInfo(maxDesc);
+			}
+		}
+		goodsInfo.setMoneyInfo(moneyInfoVO);
+
 		// 搴楅摵淇℃伅
 		String mallName = goods.getMallName();
 		if (!StringUtil.isMobile(mallName)) {
@@ -692,18 +875,219 @@
 			goodsInfo.setShopInfo(shop);
 		}
 
+		// if (Constant.IS_TEST) {
+		// // 娣诲姞鏍囩
+		// List<ClientTextStyleVO> labels = goodsInfo.getLabels();
+		// if (labels == null)
+		// labels = new ArrayList<>();
+		//
+		// labels.add(new ClientTextStyleVO("棰勫敭", "#FF2B4E"));
+		// labels.add(new ClientTextStyleVO("鐖嗘", "#FF2B4E"));
+		// labels.add(new ClientTextStyleVO("瓒呯骇鍒掔畻", "#FF2B4E"));
+		// goodsInfo.setLabels(labels);
+		// }
+		return goodsInfo;
+	}
+
+	public static GoodsDetailVO convertVIPGoods(VIPGoodsInfo goods, ConfigParamsDTO params) {
+		GoodsDetailVO goodsInfo = new GoodsDetailVO();
+		goodsInfo.setBaoyou(true);
+		goodsInfo.setGoodsType(Constant.SOURCE_TYPE_VIP);
+		goodsInfo.setGoodsId(Long.parseLong(goods.getGoodsId()) + "");
+		goodsInfo.setTitle(goods.getGoodsName());
+		goodsInfo.setSalesType(5); // 鏃犻攢閲�
+		goodsInfo.setPriceName("鍘熶环");
+		goodsInfo.setPicUrl(goods.getGoodsThumbUrl()); // 缂╃暐鍥�
+		goodsInfo.setZkPrice(MoneyBigDecimalUtil.getWithNoZera(new BigDecimal(goods.getMarketPrice())));
+		goodsInfo.setCouponPrice(MoneyBigDecimalUtil.getWithNoZera(new BigDecimal(goods.getVipPrice())));
+		goodsInfo.setShopType(CommonGoods.SHOP_TYPE_VIP);
+
+		goodsInfo.setImgList(goods.getGoodsDetailPictures());
+
+		Integer state = goods.getStatus();
+		if (state == null) {
+			goodsInfo.setState(0);
+		} else {
+			goodsInfo.setState(goods.getStatus() == 1 ? CommonGoods.STATE_OFFLINE : CommonGoods.STATE_NORMAL);
+		}
+
+		goodsInfo.setSalesCount("");
+
+		// 璧勯噾淇℃伅
+		MoneyInfoVO moneyInfoVO = new MoneyInfoVO();
+		moneyInfoVO.setMoneyType(1); // 榛樿鏄剧ず锛氳繑 楼6.6
+		BigDecimal commission = VipShopUtil.getGoodsFanLiMoney(goods, params.getFanLiRate());
+		moneyInfoVO.setFanliMoney("楼" + commission);
+		moneyInfoVO.setShareMoney("楼" + commission);
+
+		BigDecimal baseCommisstion = null;
+		if (params.getBaseFanliRate() != null)
+			baseCommisstion = VipShopUtil.getGoodsFanLiMoney(goods, params.getBaseFanliRate());
+
+		if (params.getMaxRewardRate() != null)
+			moneyInfoVO
+					.setMaxMoney("楼" + commission.add(MoneyBigDecimalUtil.mul(commission, params.getMaxRewardRate())));
+		else {
+			BigDecimal price = new BigDecimal(goods.getVipPrice());
+			BigDecimal rate = MoneyBigDecimalUtil.div(commission.multiply(new BigDecimal(100)), price);
+			moneyInfoVO.setRateInfo("杩斿埄姣� " + rate + "%");
+
+			BigDecimal maxCommission = VipShopUtil.getGoodsFanLiMoney(goods, params.getVipFanLiRate());
+			BigDecimal maxRate = MoneyBigDecimalUtil.div(maxCommission.multiply(new BigDecimal(100)), price);
+			moneyInfoVO.setMaxRateInfo("杩斿埄姣� " + maxRate + "%");
+
+			moneyInfoVO.setMaxMoney("楼" + maxCommission);
+
+			if (baseCommisstion != null) {
+				String desc = String.format("浣i噾楼 %s+骞冲彴琛ヨ创楼 %s", baseCommisstion.setScale(2).toString(),
+						commission.subtract(baseCommisstion).setScale(2).toString());
+				String maxDesc = String.format("浣i噾楼 %s+骞冲彴琛ヨ创楼 %s", baseCommisstion.setScale(2).toString(),
+						maxCommission.subtract(baseCommisstion).setScale(2).toString());
+				moneyInfoVO.setCompositionInfo(desc);
+				moneyInfoVO.setMaxCompositionInfo(maxDesc);
+			}
+		}
+		goodsInfo.setMoneyInfo(moneyInfoVO);
+
+		// 搴楅摵淇℃伅
+		String mallName = goods.getBrandName();
+		if (!StringUtil.isNullOrEmpty(mallName)) {
+			ShopInfoVO shop = new ShopInfoVO();
+			shop.setShopName(mallName);
+			if (goods.getBrandId() != null) {
+				shop.setId(goods.getBrandId().toString());
+			}
+			shop.setUserType(30);
+			goodsInfo.setShopInfo(shop);
+		}
+
+		// 鎶樻墸淇℃伅
+		goodsInfo.setDiscount(MoneyBigDecimalUtil
+				.getWithNoZera(MoneyBigDecimalUtil.mul(new BigDecimal(goods.getDiscount()), new BigDecimal(10))) + "鎶�");
+		goodsInfo.setShopInfo(null);
+		return goodsInfo;
+	}
+
+	public static GoodsDetailVO convertSuningGoods(SuningGoodsInfo goods, ConfigParamsDTO params) {
+		GoodsDetailVO goodsInfo = new GoodsDetailVO();
+		goodsInfo.setBaoyou(true);
+		goodsInfo.setGoodsType(Constant.SOURCE_TYPE_SUNING);
+		goodsInfo.setGoodsId(SuningUtil.getConcatGoodsIId(goods.getCommodityInfo().getSupplierCode(),
+				goods.getCommodityInfo().getCommodityCode()));
+		goodsInfo.setTitle(goods.getCommodityInfo().getCommodityName());
+		goodsInfo.setSalesType(1); // 鏈堥攢
+		goodsInfo.setPriceName("鍘熶环");
+		if (goods.getCommodityInfo().getPictureUrl().size() > 0)
+			goodsInfo.setPicUrl(goods.getCommodityInfo().getPictureUrl().get(0).getPicUrl()); // 缂╃暐鍥�
+	
 		
-//		if (Constant.IS_TEST) {
-//			// 娣诲姞鏍囩
-//			List<ClientTextStyleVO> labels = goodsInfo.getLabels();
-//			if (labels == null) 
-//				labels = new ArrayList<>();
-//			
-//			labels.add(new ClientTextStyleVO("棰勫敭", "#FF2B4E"));
-//			labels.add(new ClientTextStyleVO("鐖嗘", "#FF2B4E"));
-//			labels.add(new ClientTextStyleVO("瓒呯骇鍒掔畻", "#FF2B4E"));
-//			goodsInfo.setLabels(labels);
-//		}
+		String commodityPrice = goods.getCommodityInfo().getCommodityPrice();
+		if (StringUtil.isNullOrEmpty(commodityPrice)) {
+			commodityPrice = goods.getCommodityInfo().getSnPrice();
+		}
+		goodsInfo.setZkPrice(MoneyBigDecimalUtil.getWithNoZera(new BigDecimal(commodityPrice)));
+		goodsInfo.setShopType(CommonGoods.SHOP_TYPE_SUNING);
+
+		List<String> imgList = new ArrayList<>();
+		for (SuningGoodsImg img : goods.getCommodityInfo().getPictureUrl()) {
+			imgList.add(img.getPicUrl());
+		}
+
+		goodsInfo.setImgList(imgList);
+		goodsInfo.setState(0);
+
+		String salesCountMidea = "";
+		Integer count = Integer.parseInt(goods.getCommodityInfo().getMonthSales());
+		if (count < 10000) {
+			salesCountMidea = count + "";
+		} else {
+			double sales = count;
+			salesCountMidea = String.format("%.1f", sales / 10000);
+			salesCountMidea = salesCountMidea + "涓�";
+		}
+		goodsInfo.setSalesCount(salesCountMidea);
+
+		// 鍒镐俊鎭�
+		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 (goods.getCouponInfo().getCouponStartTime() != null) {
+				coupon.setStartTime(goods.getCouponInfo().getCouponStartTime());
+			}
+
+			if (goods.getCouponInfo().getCouponEndTime() != null) {
+				coupon.setEndTime(goods.getCouponInfo().getCouponEndTime());
+			}
+
+			if (goods.getCouponInfo().getCouponCount() != null)
+				coupon.setTotalCount(Integer.parseInt(goods.getCouponInfo().getCouponCount()));
+
+			if (goods.getCouponInfo().getCouponCount() != null)
+				coupon.setLeftCount(Integer.parseInt(goods.getCouponInfo().getCouponCount()));
+
+			goodsInfo.setHasCoupon(true);
+			goodsInfo.setCouponInfo(coupon);
+
+			if (goodsInfo.getZkPrice().compareTo(coupon.getStartFee()) >= 0) {
+				goodsInfo.setCouponPrice(goodsInfo.getZkPrice().subtract(coupon.getAmount()));
+			}else{
+				goodsInfo.setCouponPrice(goodsInfo.getZkPrice());
+			}
+
+		} else {
+			goodsInfo.setHasCoupon(false);
+		}
+
+		// 璧勯噾淇℃伅
+		MoneyInfoVO moneyInfoVO = new MoneyInfoVO();
+		moneyInfoVO.setMoneyType(1); // 榛樿鏄剧ず锛氳繑 楼6.6
+		BigDecimal commission = SuningUtil.getGoodsFanLiMoney(goods, params.getFanLiRate());
+		moneyInfoVO.setFanliMoney("楼" + commission);
+		moneyInfoVO.setShareMoney("楼" + commission);
+
+		BigDecimal baseCommisstion = null;
+		if (params.getBaseFanliRate() != null)
+			baseCommisstion = SuningUtil.getGoodsFanLiMoney(goods, params.getBaseFanliRate());
+
+		if (params.getMaxRewardRate() != null)
+			moneyInfoVO
+					.setMaxMoney("楼" + commission.add(MoneyBigDecimalUtil.mul(commission, params.getMaxRewardRate())));
+		else {
+			BigDecimal price = new BigDecimal(commodityPrice);
+			BigDecimal rate = MoneyBigDecimalUtil.div(commission.multiply(new BigDecimal(100)), price);
+			moneyInfoVO.setRateInfo("杩斿埄姣� " + rate + "%");
+
+			BigDecimal maxCommission = SuningUtil.getGoodsFanLiMoney(goods, params.getVipFanLiRate());
+			BigDecimal maxRate = MoneyBigDecimalUtil.div(maxCommission.multiply(new BigDecimal(100)), price);
+			moneyInfoVO.setMaxRateInfo("杩斿埄姣� " + maxRate + "%");
+
+			moneyInfoVO.setMaxMoney("楼" + maxCommission);
+
+			if (baseCommisstion != null) {
+				String desc = String.format("浣i噾楼 %s+骞冲彴琛ヨ创楼 %s", baseCommisstion.setScale(2).toString(),
+						commission.subtract(baseCommisstion).setScale(2).toString());
+				String maxDesc = String.format("浣i噾楼 %s+骞冲彴琛ヨ创楼 %s", baseCommisstion.setScale(2).toString(),
+						maxCommission.subtract(baseCommisstion).setScale(2).toString());
+				moneyInfoVO.setCompositionInfo(desc);
+				moneyInfoVO.setMaxCompositionInfo(maxDesc);
+			}
+		}
+		goodsInfo.setMoneyInfo(moneyInfoVO);
+
+		// 搴楅摵淇℃伅
+		String mallName = goods.getCommodityInfo().getSupplierName();
+		if (!StringUtil.isMobile(mallName)) {
+			ShopInfoVO shop = new ShopInfoVO();
+			shop.setShopName(mallName);
+			if (goods.getCommodityInfo().getSupplierCode() != null) {
+				shop.setId(goods.getCommodityInfo().getSupplierCode());
+			}
+			shop.setUserType(30);
+			goodsInfo.setShopInfo(shop);
+		}
+
 		return goodsInfo;
 	}
 

--
Gitblit v1.8.0