From 3824cbcaec6e6c67418d5280a53e9c2fedeef6f9 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期四, 11 七月 2019 16:34:13 +0800
Subject: [PATCH] 订单bug,分享爆款自购修改

---
 fanli/src/main/java/com/yeshi/fanli/controller/h5/H5RecommendController.java |  202 ++++++++++++++++++++++++--------------------------
 1 files changed, 98 insertions(+), 104 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/controller/h5/H5RecommendController.java b/fanli/src/main/java/com/yeshi/fanli/controller/h5/H5RecommendController.java
index 589a5da..ea63ae3 100644
--- a/fanli/src/main/java/com/yeshi/fanli/controller/h5/H5RecommendController.java
+++ b/fanli/src/main/java/com/yeshi/fanli/controller/h5/H5RecommendController.java
@@ -4,7 +4,6 @@
 import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.List;
-import java.util.Map;
 
 import javax.annotation.Resource;
 
@@ -12,19 +11,17 @@
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 import org.yeshi.utils.JsonUtil;
+import org.yeshi.utils.taobao.TbImgUtil;
 
 import com.google.gson.Gson;
-import com.google.gson.GsonBuilder;
 import com.yeshi.fanli.entity.accept.AcceptData;
 import com.yeshi.fanli.entity.bus.recommend.RecommendBanner;
-import com.yeshi.fanli.entity.bus.recommend.RecommendSection;
-import com.yeshi.fanli.entity.bus.recommend.RecommendSectionGoods;
 import com.yeshi.fanli.entity.bus.share.UserShareGoodsHistory;
 import com.yeshi.fanli.entity.bus.su.recommend.SuperRecommendBanner;
-import com.yeshi.fanli.entity.bus.su.recommend.SuperRecommendSection;
-import com.yeshi.fanli.entity.system.System;
+import com.yeshi.fanli.entity.bus.tlj.UserTaoLiJinRecord;
+import com.yeshi.fanli.entity.system.BusinessSystem;
+import com.yeshi.fanli.entity.taobao.ClientTBPid;
 import com.yeshi.fanli.entity.taobao.PidUser;
-import com.yeshi.fanli.entity.taobao.TBPid;
 import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
 import com.yeshi.fanli.entity.taobao.TaoBaoLink;
 import com.yeshi.fanli.entity.taobao.TaoBaoUnionConfig;
@@ -32,29 +29,26 @@
 import com.yeshi.fanli.exception.ShareGoodsException;
 import com.yeshi.fanli.exception.share.UserShareGoodsRecordException;
 import com.yeshi.fanli.exception.taobao.TaobaoGoodsDownException;
+import com.yeshi.fanli.service.inter.config.BusinessSystemService;
 import com.yeshi.fanli.service.inter.config.ConfigService;
 import com.yeshi.fanli.service.inter.config.SystemConfigService;
-import com.yeshi.fanli.service.inter.config.SystemService;
-import com.yeshi.fanli.service.inter.goods.RecommendSectionGoodsService;
 import com.yeshi.fanli.service.inter.goods.ShareGoodsService;
 import com.yeshi.fanli.service.inter.goods.SuperRecommendBannerService;
-import com.yeshi.fanli.service.inter.goods.SuperRecommendSectionService;
 import com.yeshi.fanli.service.inter.goods.TaoBaoGoodsBriefService;
 import com.yeshi.fanli.service.inter.hongbao.HongBaoManageService;
 import com.yeshi.fanli.service.inter.taobao.TaoBaoUnionConfigService;
-import com.yeshi.fanli.service.inter.user.ScanHistoryService;
+import com.yeshi.fanli.service.inter.tlj.UserTaoLiJinRecordService;
 import com.yeshi.fanli.service.inter.user.TBPidService;
 import com.yeshi.fanli.service.inter.user.UserShareGoodsGroupService;
 import com.yeshi.fanli.util.AESUtil;
 import com.yeshi.fanli.util.Constant;
+import com.yeshi.fanli.util.MoneyBigDecimalUtil;
 import com.yeshi.fanli.util.RedisManager;
 import com.yeshi.fanli.util.StringUtil;
 import com.yeshi.fanli.util.ThreadUtil;
-import com.yeshi.fanli.util.Utils;
 import com.yeshi.fanli.util.taobao.TaoBaoUtil;
 import com.yeshi.fanli.util.taobao.TaoKeApiUtil;
 
-import net.sf.json.JSONArray;
 import net.sf.json.JSONObject;
 
 @Controller
@@ -68,19 +62,13 @@
 	private SuperRecommendBannerService superRecommendBannerService;
 
 	@Resource
-	private SuperRecommendSectionService superRecommendSectionService;
-
-	@Resource
 	private HongBaoManageService hongBaoManageService;
-
-	@Resource
-	private RecommendSectionGoodsService recommendSectionGoodsService;
 
 	@Resource
 	private RedisManager redisManager;
 
 	@Resource
-	private SystemService systemService;
+	private BusinessSystemService businessSystemService;
 
 	@Resource
 	private ConfigService configService;
@@ -90,9 +78,6 @@
 
 	@Resource
 	private TaoBaoGoodsBriefService taoBaoGoodsBriefService;
-
-	@Resource
-	private ScanHistoryService scanHistoryService;
 
 	@Resource
 	private TBPidService tbPidService;
@@ -105,6 +90,10 @@
 
 	@Resource
 	private UserShareGoodsGroupService userShareGoodsGroupService;
+	
+	@Resource
+	private UserTaoLiJinRecordService userTaoLiJinRecordService;
+	
 
 	/**
 	 * 
@@ -117,7 +106,8 @@
 	@RequestMapping(value = "getRecommenBanner", method = RequestMethod.GET)
 	public void getRecommendBanner(AcceptData acceptData, String callback, PrintWriter out) {
 
-		System system = systemService.getSystem("WEB", Constant.systemCommonConfig.getH5PackageName());
+		BusinessSystem system = businessSystemService.getBusinessSystem("WEB",
+				Constant.systemCommonConfig.getH5PackageName());
 		JSONObject json = new JSONObject();
 		if (system == null) {
 			out.print(JsonUtil.loadFalseResult(1, H5ControllerUtil.NOSYSTEM));
@@ -159,92 +149,69 @@
 	}
 
 	/**
+	 * 澶勭悊鏉′欢
 	 * 
-	 * 鏂规硶璇存槑: 鎺ㄨ崘鍟嗗搧鍒楄〃
-	 * 
-	 * @author mawurui createTime 2018骞�5鏈�11鏃� 涓婂崍11:26:03
-	 * @param acceptData
-	 * @param index
+	 * @param uid
+	 * @param tid
 	 * @param out
 	 */
-	@RequestMapping(value = "getRecommendSection", method = RequestMethod.GET)
-	public void getRecommendSection(AcceptData acceptData, String callback, PrintWriter out) {
-
-		System system = systemService.getSystem("WEB", Constant.systemCommonConfig.getH5PackageName());
-		if (system == null) {
-			out.print(JsonUtil.loadFalseResult(1, H5ControllerUtil.NOSYSTEM));
+	private void doTaoLiJin(String callback, Long uid, Long tid, PrintWriter out) {
+		// 鏌ヨ鍟嗗搧娣樼ぜ閲�
+		UserTaoLiJinRecord record = userTaoLiJinRecordService.selectByPrimaryKey(tid);
+		if (record == null) {
+			out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadFalseResult("鍟嗗搧淇℃伅鑾峰彇澶辫触")));
 			return;
 		}
-		List<SuperRecommendSection> superRecommendSectionList = superRecommendSectionService
-				.getSuperRecommendSectionBySystemId(system.getId());
-		List<RecommendSection> recommendSectionList = null;
-		for (SuperRecommendSection superRecommendSection : superRecommendSectionList) {
-			if (recommendSectionList == null) {
-				recommendSectionList = new ArrayList<RecommendSection>();
-			}
-			RecommendSection recommendSection = superRecommendSection.getRecommendSection();
-
-			// 鏆傛椂鏀瑰彉娣樼壒浠风殑璺宠浆鍦板潃
-			if (system.getId() == 7) {
-				recommendSection.setJumpUrl(recommendSection.getJumpUrl().replace("column.html", "column_ttj.html"));
-			}
-
-			recommendSectionList.add(recommendSection);
+		
+		Long auctionId = record.getGoodsId();
+		String tljLink = record.getSendUrl();
+		BigDecimal tljMoney= record.getPerFace();
+		
+		TaoBaoGoodsBrief goods = null;
+		try {
+			goods = redisManager.getTaoBaoGoodsBrief(auctionId);
+		} catch (TaobaoGoodsDownException e) {
 		}
-		if (recommendSectionList == null) {
-			out.print(JsonUtil.loadFalseResult(1, H5ControllerUtil.NODATA));
+
+		if (goods == null) {// 宸茬粡涓嬬嚎
+			out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadFalseResult("鍟嗗搧淇℃伅鑾峰彇澶辫触")));
 			return;
 		}
-		Utils.sort(recommendSectionList);
-		int size = recommendSectionList.size();
 
-		List<RecommendSectionGoods> recommendSectionGoodsList = null;
+		String token = redisManager.getTLJToken(tljLink);
+		if (StringUtil.isNullOrEmpty(token)) {
+			token = TaoKeApiUtil.getTKToken(goods.getPictUrl(), goods.getTitle(), tljLink);
+		}
+
+		// 鍒稿悗浠�
+		BigDecimal afterCouponPrice = TaoBaoUtil.getAfterUseCouplePrice(goods);
+		TaoBaoLink link = new TaoBaoLink();
+		link.setTaoToken(token);
+
 		JSONObject data = new JSONObject();
-		data.put("count", size);
-		JSONArray dataArr = new JSONArray();
-		JSONObject validData = null;
-		Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder())
-				.excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create();
-		BigDecimal proportion = hongBaoManageService.getFanLiRate();
-
-		Map<Long, List<RecommendSectionGoods>> map = recommendSectionGoodsService.getAllSectionGoodsMap();
-		for (int i = 0; i < size; i++) {
-			validData = new JSONObject();
-			RecommendSection recommendSection = recommendSectionList.get(i);
-			recommendSectionGoodsList = map.get(recommendSection.getId());
-			if (recommendSectionGoodsList == null) {
-				continue;
-			}
-			Utils.sort(recommendSectionGoodsList);
-			if (recommendSection.getCounts() < recommendSectionGoodsList.size()) {
-				recommendSectionGoodsList = recommendSectionGoodsList.subList(0, recommendSection.getCounts());
-			}
-			validData.put("count", recommendSectionGoodsList.size());
-			validData.put("recommendSection", gson.toJson(recommendSection));
-
-			// 鏇挎崲TaoBaoGoodsBrief
-			JSONArray array = new JSONArray();
-			Gson gson2 = new GsonBuilder().setDateFormat("yyyy-MM-dd").create();
-			for (RecommendSectionGoods rss : recommendSectionGoodsList) {
-				JSONObject obj = JSONObject.fromObject(gson2.toJson(rss));
-				String json = gson.toJson(TaoBaoUtil.getTaoBaoGoodsBriefExtra(
-						gson2.fromJson(obj.optJSONObject("taoBaoGoodsBrief").toString(), TaoBaoGoodsBrief.class),
-						proportion.toString(), ""));
-				obj.put("taoBaoGoodsBrief", json);
-				array.add(obj);
-			}
-
-			validData.put("recommendSectionGoodsList", array);
-			dataArr.add(validData);
+		data.put("title", goods.getTitle());
+		if (goods.getImgList() == null)
+			goods.setImgList(new ArrayList<>());
+		goods.getImgList().add(0, TbImgUtil.getTBSizeImg(goods.getPictUrl(), 300));
+		data.put("imgs", goods.getImgList());
+		data.put("couponPrice", afterCouponPrice);
+		// 鑰佺増鏈吋瀹�
+		data.put("quanPrice", afterCouponPrice);
+		data.put("zkPrice", goods.getZkPrice());
+		data.put("shareContent", "闀挎寜澶嶅埗鏈鏂囧瓧锛屾墦寮�銆愭墜鏈烘窐瀹濄�戝嵆鍙鍙栥�愮壒鍒紭鎯犲埜銆戣喘涔颁笅鍗曪紝");
+		data.put("token", link.getTaoToken());
+		data.put("reservePrice", goods.getReservePrice());
+		data.put("shopType", goods.getUserType() == 1 ? 2 : 1);
+		if (!StringUtil.isNullOrEmpty(goods.getCouponInfo()) && !"鏃�".equalsIgnoreCase(goods.getCouponInfo())) {
+			data.put("couponAmount", MoneyBigDecimalUtil.getWithNoZera(goods.getCouponAmount()));
+			data.put("coupon", true);
+		} else {
+			data.put("coupon", false);
 		}
-		data.put("data", dataArr);
-
-		String result = JsonUtil.loadJSONP(callback, JsonUtil.loadTrueResult(data));
-		if (Constant.IS_OUTNET)
-			redisManager.cacheCommonString("client-api-getRecommendSection", result, 3 * 60);
-
-		out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadTrueResult(result)));
-		return;
+		
+		data.put("tljMoney", tljMoney);
+		
+		out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadTrueResult(data)));
 	}
 
 	/**
@@ -260,15 +227,23 @@
 
 	@SuppressWarnings("unused")
 	@RequestMapping(value = "getGoodsDetail", method = RequestMethod.GET)
-	public void getGoodsDetail(final AcceptData acceptData, final String id, String uid, String callback,
+	public void getGoodsDetail(final AcceptData acceptData, final String id, String tid, String uid, String callback,
 			PrintWriter out) {
 		long begin = java.lang.System.currentTimeMillis();
 		if (StringUtil.isNullOrEmpty(id)) {
 			out.print(JsonUtil.loadFalseResult(1, "璇蜂笂浼爄d"));
 			return;
 		}
+
 		if (!StringUtil.isNullOrEmpty(uid)) {
 			uid = AESUtil.decrypt(uid, Constant.UIDAESKEY);
+		}
+
+		if (!StringUtil.isNullOrEmpty(tid)) {
+			tid = AESUtil.decrypt(tid, Constant.UIDAESKEY);
+			doTaoLiJin(callback, StringUtil.isNullOrEmpty(uid) || Long.parseLong(uid) == 0 ? null : Long.parseLong(uid),
+					Long.parseLong(tid), out);
+			return;
 		}
 
 		TaoBaoGoodsBrief goods = null;
@@ -300,7 +275,7 @@
 				List<TaoBaoUnionConfig> configList = taoBaoUnionConfigService
 						.getConfigByTypeCache(PidUser.TYPE_SHARE_GOODS);
 				String pid = null;
-				TBPid tbPid = tbPidService.getTBPid(Long.parseLong(uid), PidUser.TYPE_SHARE_GOODS);
+				ClientTBPid tbPid = tbPidService.getSharePid();
 				if (tbPid != null)
 					pid = tbPid.getPid();
 				else {
@@ -332,7 +307,7 @@
 		} else {
 			List<TaoBaoUnionConfig> configList = taoBaoUnionConfigService
 					.getConfigByTypeCache(PidUser.TYPE_SHARE_GOODS);
-			String pid = configList.get(0).getDefaultPid();
+			String pid = tbPidService.getSharePid().getPid();
 			TaoKeAppInfo app = new TaoKeAppInfo();
 			app.setAdzoneId(pid.split("_")[3]);
 			app.setAppKey(configList.get(0).getAppKey());
@@ -350,6 +325,13 @@
 				if (!StringUtil.isNullOrEmpty(goods.getCouponLink())) {
 					url = goods.getCouponLink();
 				}
+				if (!url.contains("uland.taobao.com") && !url.contains("s.click.taobao.com")) {
+					TaoBaoGoodsBrief linkInfo = TaoKeApiUtil.specialConvertCoupon(Long.parseLong(id), app);
+					url = linkInfo.getCouponLink();
+					if (StringUtil.isNullOrEmpty(url))
+						url = linkInfo.getAuctionUrl();
+				}
+
 				token = TaoKeApiUtil.getTKToken(goods.getPictUrl(), goods.getTitle(), url);
 			}
 		}
@@ -373,15 +355,27 @@
 		data.put("title", goods.getTitle());
 		if (goods.getImgList() == null)
 			goods.setImgList(new ArrayList<>());
-		goods.getImgList().add(0, goods.getPictUrl());
+		goods.getImgList().add(0, TbImgUtil.getTBSizeImg(goods.getPictUrl(), 300));
 		data.put("imgs", goods.getImgList());
+		data.put("couponPrice", afterCouponPrice);
+		// 鑰佺増鏈吋瀹�
 		data.put("quanPrice", afterCouponPrice);
 		data.put("zkPrice", goods.getZkPrice());
 		data.put("shareContent", "闀挎寜澶嶅埗鏈鏂囧瓧锛屾墦寮�銆愭墜鏈烘窐瀹濄�戝嵆鍙鍙栥�愮壒鍒紭鎯犲埜銆戣喘涔颁笅鍗曪紝");
 		data.put("token", link.getTaoToken());
-		data.put("quan", !StringUtil.isNullOrEmpty(goods.getCouponInfo()));
 		data.put("reservePrice", goods.getReservePrice());
 		data.put("shopType", goods.getUserType() == 1 ? 2 : 1);
+		if (!StringUtil.isNullOrEmpty(goods.getCouponInfo()) && !"鏃�".equalsIgnoreCase(goods.getCouponInfo())) {
+			data.put("couponAmount", MoneyBigDecimalUtil.getWithNoZera(goods.getCouponAmount()));
+			data.put("coupon", true);
+			// 鑰佺増鏈吋瀹�
+			data.put("quan", true);
+		} else {
+			data.put("coupon", false);
+			// 鑰佺増鏈吋瀹�
+			data.put("quan", true);
+		}
+		
 		out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadTrueResult(data)));
 
 		final String tempUid = uid;

--
Gitblit v1.8.0