From bbb7a538df960f2f47b0af8c3db03622fca08d99 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期五, 22 五月 2020 13:54:31 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/div' into div

---
 fanli/src/main/java/com/yeshi/fanli/controller/client/v2/GoodsControllerV2.java |  242 ++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 212 insertions(+), 30 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/GoodsControllerV2.java b/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/GoodsControllerV2.java
index 9833008..496ab1f 100644
--- a/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/GoodsControllerV2.java
+++ b/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/GoodsControllerV2.java
@@ -1,7 +1,6 @@
 package com.yeshi.fanli.controller.client.v2;
 
 import java.io.PrintWriter;
-import java.lang.reflect.InvocationTargetException;
 import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -10,7 +9,6 @@
 
 import javax.annotation.Resource;
 
-import org.apache.commons.beanutils.PropertyUtils;
 import org.json.simple.JSONArray;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -27,6 +25,8 @@
 import com.yeshi.fanli.dto.pdd.PDDGoodsResult;
 import com.yeshi.fanli.dto.pdd.PDDPromotionUrl;
 import com.yeshi.fanli.dto.pdd.PDDSearchFilter;
+import com.yeshi.fanli.dto.taobao.DaTaoKeFilterResult;
+import com.yeshi.fanli.dto.vip.goods.VIPGoodsInfo;
 import com.yeshi.fanli.entity.accept.AcceptData;
 import com.yeshi.fanli.entity.bus.user.ShamUser;
 import com.yeshi.fanli.entity.bus.user.UserInfo;
@@ -59,6 +59,7 @@
 import com.yeshi.fanli.service.inter.goods.TaoBaoGoodsBriefService;
 import com.yeshi.fanli.service.inter.jd.JDGoodsClassService;
 import com.yeshi.fanli.service.inter.money.UserMoneyExtraService;
+import com.yeshi.fanli.service.inter.order.OrderHongBaoMoneyComputeService;
 import com.yeshi.fanli.service.inter.order.config.HongBaoManageService;
 import com.yeshi.fanli.service.inter.redpack.UserTaoLiJinNewbiesService;
 import com.yeshi.fanli.service.inter.taobao.TLJBuyGoodsService;
@@ -88,6 +89,7 @@
 import com.yeshi.fanli.util.cache.JDGoodsCacheUtil;
 import com.yeshi.fanli.util.cache.PinDuoDuoCacheUtil;
 import com.yeshi.fanli.util.cache.TaoBaoGoodsCacheUtil;
+import com.yeshi.fanli.util.dataoke.DaTaoKeApiUtil;
 import com.yeshi.fanli.util.factory.goods.GoodsDetailVOFactory;
 import com.yeshi.fanli.util.factory.goods.ShopInfoVOFactory;
 import com.yeshi.fanli.util.jd.JDApiUtil;
@@ -97,6 +99,8 @@
 import com.yeshi.fanli.util.taobao.TaoBaoUtil;
 import com.yeshi.fanli.util.taobao.TaoKeApiUtil;
 import com.yeshi.fanli.util.user.UserLevelUtil;
+import com.yeshi.fanli.util.vipshop.VipShopApiUtil;
+import com.yeshi.fanli.util.vipshop.VipShopUtil;
 import com.yeshi.fanli.vo.goods.CouponInfoVO;
 import com.yeshi.fanli.vo.goods.GoodsDetailExtraVO;
 import com.yeshi.fanli.vo.goods.GoodsDetailVO;
@@ -152,7 +156,7 @@
 	private DaTaoKeGoodsDetailV2Service daTaoKeGoodsDetailV2Service;
 
 	@Resource
-	private HongBaoManageService hongBaoManageService;
+	private OrderHongBaoMoneyComputeService orderHongBaoMoneyComputeService;
 
 	@Resource
 	private SystemClientParamsService systemClientParamsService;
@@ -211,6 +215,9 @@
 	@Resource
 	private UserLevelManager userLevelManager;
 
+	@Resource
+	private HongBaoManageService hongBaoManageService;
+
 	private ConfigParamsDTO getParamsDTO(String platform, String version, Long uid) {
 		UserLevelEnum level = UserLevelEnum.daRen;
 		if (uid != null && uid > 0) {
@@ -222,7 +229,39 @@
 		}
 		if (level == null)
 			level = UserLevelEnum.daRen;
-		return hongBaoManageService.getShowComputeRate(platform, version, level);
+		return orderHongBaoMoneyComputeService.getShowComputeRate(platform, version, level);
+	}
+
+	private TaoBaoGoodsBrief filterDaTaoKeGoodsInfo(TaoBaoGoodsBrief goods) {
+		try {
+			DaTaoKeFilterResult result = daTaoKeGoodsDetailV2Service.filterTaoBaoGoods(goods);
+			if (result.getFilterType() == DaTaoKeFilterResult.FILTER_TYPE_COUPON
+					|| result.getFilterType() == DaTaoKeFilterResult.FILTER_TYPE_PRICE_AND_COUPON) {
+				// 缂撳瓨鍩虹閾炬帴
+				String dpid = null;
+				if (TaoBaoUtil.isSpecialGoods(goods.getMaterialLibType())) {
+					dpid = TaoBaoConstant.TAOBAO_SPECIAL_PID_DEFAULT;
+				} else {
+					dpid = TaoBaoConstant.TAOBAO_RELATION_AS_SPECIAL_PID;
+				}
+				String link = taoBaoGoodsCacheUtil.getBaseConvertLink(goods.getAuctionId(), dpid);
+				if (!StringUtil.isNullOrEmpty(link)) {
+					// result.getGoods().setCouponLink(link);
+					return result.getGoods();
+				} else {
+					link = DaTaoKeApiUtil.convertLink(goods.getAuctionId(), dpid);
+					if (!StringUtil.isNullOrEmpty(link)) {
+						// result.getGoods().setCouponLink(link);
+						taoBaoGoodsCacheUtil.cacheBaseConvertLink(goods.getAuctionId(), dpid, link);
+					}
+					return result.getGoods();
+				}
+			}
+		} catch (Exception e) {
+			LogHelper.errorDetailInfo(e);
+		}
+
+		return goods;
 	}
 
 	/**
@@ -395,11 +434,7 @@
 
 		// 澶ф窐瀹㈠晢鍝佽繃婊�
 		try {
-			goods = daTaoKeGoodsDetailV2Service.filterTaoBaoGoods(goods, acceptData.getPlatform(),
-					acceptData.getVersion());
-
-			// goods = daTaoKeGoodsDetailV2Service.filterTaoBaoGoods(goods);
-
+			goods = filterDaTaoKeGoodsInfo(goods);
 		} catch (Exception e) {
 			LogHelper.errorDetailInfo(e);
 		}
@@ -491,11 +526,8 @@
 
 		String h5Url = String.format("http://%s%s?uid=%s&id=%s&appType=flq", configService.getH5Host(),
 				Constant.systemCommonConfig.getShareGoodsPagePath(), "", id + "");
-		try {
-			extraVO.setH5Url(HttpUtil.getShortLink(h5Url));
-		} catch (Exception e) {
-			extraVO.setH5Url(h5Url);
-		}
+
+		extraVO.setH5Url(h5Url);
 
 		String helpLink = null;
 		boolean fanliValid = true;
@@ -615,22 +647,6 @@
 			// 璁剧疆couponList
 			List<CouponInfoVO> couponInfoList = new ArrayList<>();
 			couponInfoList.add(goodsDetail.getCouponInfo());
-			if (Constant.IS_TEST) {
-				CouponInfoVO coupon = new CouponInfoVO();
-				try {
-					PropertyUtils.copyProperties(coupon, goodsDetail.getCouponInfo());
-				} catch (IllegalAccessException e) {
-					e.printStackTrace();
-				} catch (InvocationTargetException e) {
-					e.printStackTrace();
-				} catch (NoSuchMethodException e) {
-					e.printStackTrace();
-				}
-				coupon.setShopCoupon(true);
-				coupon.setLink(
-						"https://uland.taobao.com/quan/detail?sellerId=725677994&activityId=d03aa6d23a5a4040afb3942e7ea9a007");
-				couponInfoList.add(coupon);
-			}
 			goodsDetail.setCouponInfoList(couponInfoList);
 		}
 		JSONObject object = new JSONObject();
@@ -1052,6 +1068,146 @@
 
 				try {
 					goodsEvaluateService.updatePDDGoods(pddGoods);
+				} catch (Exception e) {
+					e.printStackTrace();
+				}
+			}
+		});
+	}
+
+	/**
+	 * 鍞搧浼氳鎯�
+	 * 
+	 * @param acceptData
+	 * @param id
+	 * @param uid
+	 * @param from
+	 * @param out
+	 */
+	@RequestMapping(value = "getDetailVIP", method = RequestMethod.POST)
+	public void getDetialVIP(AcceptData acceptData, Long id, Long uid, String from, PrintWriter out) {
+		// 绯荤粺楠岃瘉
+		BusinessSystem system = businessSystemService.getBusinessSystemCache(acceptData.getPlatform(),
+				acceptData.getPackages());
+		if (system == null) {
+			out.print(JsonUtil.loadFalseResult(1, "绯荤粺涓嶅瓨鍦�"));
+			return;
+		}
+
+		VIPGoodsInfo vipGoodsInfo = VipShopApiUtil.getGoodsDetail(id + "");
+		if (vipGoodsInfo == null) {
+			out.print(JsonUtil.loadFalseResult(2, "鍟嗗搧涓嶅瓨鍦�"));
+			return;
+		}
+
+		ConfigParamsDTO paramsDTO = getParamsDTO(acceptData.getPlatform(), acceptData.getVersion(), uid);
+		paramsDTO.setBaseFanliRate(hongBaoManageService.getBaseFanliRate());
+
+		GoodsDetailVO goodsDetail = GoodsDetailVOFactory.convertVIPGoods(vipGoodsInfo, paramsDTO);
+		if (goodsDetail != null && goodsDetail.getMoneyInfo() != null && userVIPInfoService.isVIP(uid)) {
+			goodsDetail.getMoneyInfo().setFanliMoney(goodsDetail.getMoneyInfo().getMaxMoney());
+			goodsDetail.getMoneyInfo().setShareMoney("楼" + VipShopUtil.getGoodsFanLiMoney(vipGoodsInfo,
+					hongBaoManageService.getShareRate(UserLevelEnum.superVIP)));
+			goodsDetail.getMoneyInfo().setRateInfo(goodsDetail.getMoneyInfo().getMaxRateInfo());
+			goodsDetail.getMoneyInfo().setCompositionInfo(goodsDetail.getMoneyInfo().getMaxCompositionInfo());
+		}
+		goodsDetail.getMoneyInfo()
+				.setRateInfoHelpUrl(configService.get(ConfigKeyEnum.goodsDetailFanliRateHelpUrl.getKey()));
+
+		// 闄勫姞淇℃伅
+		OtherInfo otherInfo = new OtherInfo();
+		RewardCouponVO rewardCoupon = new RewardCouponVO();
+		rewardCoupon.setJumpDetail(jumpDetailV2Service.getByTypeCache("web"));
+		JSONObject params1 = new JSONObject();
+		if (!VersionUtil.greaterThan_2_0_5(acceptData.getPlatform(), acceptData.getVersion()))
+			params1.put("url", configService.get(ConfigKeyEnum.specialGuideRewardCouponLink.getKey()));
+		else
+			params1.put("url", userVipConfigService.getValueByKey("vip_link"));
+
+		rewardCoupon.setMaxMoney(goodsDetail.getMoneyInfo().getMaxMoney());
+		rewardCoupon.setDesc("杩�");
+		params1.put("url", userVipConfigService.getValueByKey("vip_link"));
+		rewardCoupon.getJumpDetail().setNeedLogin(true);
+
+		rewardCoupon.setParams(params1.toString());
+		otherInfo.setRewardCoupon(rewardCoupon);
+		if ("ios".equalsIgnoreCase(acceptData.getPlatform())
+				&& configService.iosOnLining(Integer.parseInt(acceptData.getVersion())))
+			otherInfo.setRewardCoupon(null);
+		goodsDetail.setOtherInfo(otherInfo);
+
+		ShopInfoVO shopInfo = goodsDetail.getShopInfo();
+		if (shopInfo != null) {
+			if (shopInfo.getId() == null || shopInfo.getScoreGoods() == null || shopInfo.getScoreLogistics() == null
+					|| shopInfo.getScoreSeller() == null) {
+				goodsDetail.setShopInfo(null);
+			}
+		}
+
+		GoodsDetailExtraVO extraVO = new GoodsDetailExtraVO();
+		extraVO.setIsNative(false);
+		// IOS鏄惁姝e湪涓婄嚎
+		if ("ios".equalsIgnoreCase(acceptData.getPlatform())) {
+			String version = acceptData.getVersion();
+			extraVO.setIosOnling(configService.iosOnLining(Integer.parseInt(version)));
+		}
+
+		// 鍥炬枃璇︽儏
+		extraVO.setDetailUrl("http://apph5.banliapp.com/apppage/goods_img_pdd.html?id=" + id);
+
+		if (uid != null) {
+			// 鏄惁鍔犲叆鏀惰棌
+			CollectionGoodsV2 collectionGoods = collectionGoodsV2Service.findByUidAndAuctionId(uid, id,
+					Constant.SOURCE_TYPE_VIP);
+			extraVO.setCollected(collectionGoods != null ? true : false);
+			// 鏄惁鍔犲叆閫夊搧搴�
+			extraVO.setStorage(userGoodsStorageService.isExistStorage(uid, id, Constant.SOURCE_TYPE_VIP));
+		}
+
+		extraVO.setIsNative(true);
+
+		// 鍒嗕韩璺緞
+		String h5Url = String.format("http://%s%s?uid=%s&id=%s", configService.getH5Host(),
+				Constant.systemCommonConfig.getShareGoodsPagePathPDD(), "", id + "");
+		try {
+			extraVO.setH5Url(HttpUtil.getShortLink(h5Url));
+		} catch (Exception e) {
+			extraVO.setH5Url(h5Url);
+		}
+
+		String helpLink = null;
+		extraVO.setFanliValid(true);
+		extraVO.setShareValid(true);
+
+		if (StringUtil.isNullOrEmpty(helpLink)) {
+			helpLink = configService.get(ConfigKeyEnum.noRebateHelpLink.getKey());
+		}
+
+		ShareVO shareInfoVO = new ShareVO();
+		shareInfoVO.setHelpLink(helpLink);
+		extraVO.setShare(shareInfoVO);
+
+		// if (convertUrl != null) {
+		// extraVO.setCouponJumpLink(convertUrl.getUrl());
+		// extraVO.setNativeCouponJumpLink(PinDuoDuoUtil.getAndroidNativeURI(convertUrl.getUrl()));
+		// }
+
+		JSONObject object = new JSONObject();
+		object.put("extra", JsonUtil.getApiCommonGson().toJson(extraVO));
+		object.put("goods", JsonUtil.getApiCommonGson().toJson(goodsDetail));
+		out.print(JsonUtil.loadTrueResult(object.toString()));
+
+		ThreadUtil.run(new Runnable() {
+			public void run() {
+				// 娣诲姞娴忚璁板綍
+				try {
+					scanHistoryV2Service.addVIPScanHistory(uid, acceptData.getDevice(), vipGoodsInfo);
+				} catch (Exception e) {
+					e.printStackTrace();
+				}
+
+				try {
+					goodsEvaluateService.updateVIPGoods(vipGoodsInfo);
 				} catch (Exception e) {
 					e.printStackTrace();
 				}
@@ -1496,4 +1652,30 @@
 		}
 		out.print(JsonUtil.loadTrueResult(gson.toJson(voList)));
 	}
+
+	/**
+	 * 浜笢杞摼
+	 * @Title: getJDLink
+	 * @Description: 
+	 * @param acceptData
+	 * @param link
+	 * @param uid
+	 * @param out 
+	 * void 杩斿洖绫诲瀷
+	 * @throws
+	 */
+	@RequestMapping(value = "convertJDLink")
+	public void convertJDLink(AcceptData acceptData, String link, Long uid, String callback, PrintWriter out) {
+		if (StringUtil.isNullOrEmpty(link)) {
+			out.print(JsonUtil.loadFalseResult(1, "閾炬帴涓虹┖"));
+			return;
+		}
+
+		link = JDApiUtil.convertLinkWithSubUnionId(link, null, JDApiUtil.POSITION_FANLI + "", uid + "");
+
+		JSONObject data = new JSONObject();
+		data.put("link", link);
+		JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
+	}
+
 }

--
Gitblit v1.8.0