From ea59b5ea251e456fcdba955504972fdb81472284 Mon Sep 17 00:00:00 2001
From: yujian <yujian@123.com>
Date: 星期二, 25 六月 2019 14:44:31 +0800
Subject: [PATCH] 版本区分 以及 分享链接调整

---
 fanli/src/main/java/com/yeshi/fanli/controller/client/v1/ShareController.java |  258 +++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 185 insertions(+), 73 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/controller/client/v1/ShareController.java b/fanli/src/main/java/com/yeshi/fanli/controller/client/v1/ShareController.java
index 525eec0..d34d6b9 100644
--- a/fanli/src/main/java/com/yeshi/fanli/controller/client/v1/ShareController.java
+++ b/fanli/src/main/java/com/yeshi/fanli/controller/client/v1/ShareController.java
@@ -179,60 +179,23 @@
 		}
 
 		UserExtraTaoBaoInfo extraInfo = userExtraTaoBaoInfoService.getByUid(uid);
+		String relationId = null;
+		if (extraInfo != null && extraInfo.getRelationId() != null && extraInfo.getRelationValid() != null
+				&& extraInfo.getRelationValid() == true)
+			relationId = extraInfo.getRelationId();
+		
+		if (source != null && "taolijin".equals(source)) {
+			createTaoLijin(uid, auctionId, totalNum, relationId, request, out);
+			return;
+		}
+		
 		try {
-			String relationId = null;
-			if (extraInfo != null && extraInfo.getRelationId() != null && extraInfo.getRelationValid() != null
-					&& extraInfo.getRelationValid() == true)
-				relationId = extraInfo.getRelationId();
-			
-			TaoBaoLink taoBaoLink  = new TaoBaoLink();
-			if (source != null && "taolijin".equals(source)) {
-				taoBaoLink = shareGoodsService.getTaoLiJinLinkForShare(uid, auctionId, relationId);
-			} else {
-				taoBaoLink = shareGoodsService.getTaoBaoLinkForShare(uid, auctionId, relationId);
-			}
+			TaoBaoLink taoBaoLink = shareGoodsService.getTaoBaoLinkForShare(uid, auctionId, relationId);
 			
 			JSONObject data = new JSONObject();
 			String url = String.format("http://%s%s?uid=%s&id=%s&appType=flq", configService.getH5Host(),
 					Constant.systemCommonConfig.getShareGoodsPagePath(), AESUtil.encrypt(uid + "", Constant.UIDAESKEY),
 					auctionId + "");
-
-			if (source != null && "taolijin".equals(source)) {
-				
-				BigDecimal spreadMoney = goodsTaoLiJinRateService.getGoodsSpreadMoney(taoBaoLink.getGoods());
-				// 鎺ㄥ箍绾㈠寘 涓嶈兘灏忎簬1
-				if (spreadMoney.compareTo(new BigDecimal(1)) < 0) {
-					out.print(JsonUtil.loadFalseResult(1, "璇ュ晢鍝佹窐绀奸噾涓嶈冻1鍏�"));
-					return;
-				}
-				data.put("spreadMoney", "娣樼ぜ閲� 楼" + spreadMoney.toString());
-				
-				String taoLiJinLink = null;
-				try {
-					UserTaoLiJinRecord record = userTaoLiJinRecordService.createShareTaoLiJin(uid, totalNum, taoBaoLink.getGoods());
-					taoLiJinLink = record.getSendUrl();
-					data.put("tljId", record.getId());
-					data.put("surplusMoney", record.getSurplusMoney());
-					
-				} catch (UserTaoLiJinRecordException e) {
-					out.print(JsonUtil.loadFalseResult(e.getCode(), e.getMsg()));
-					return;
-				}
-				// 鍒涘缓娣樺彛浠�
-				TaoBaoGoodsBrief goods = taoBaoLink.getGoods();
-				if (!StringUtil.isNullOrEmpty(taoLiJinLink)) {// 閫氳繃绔嬪嵆鎺ㄥ箍鏂瑰紡鑾峰彇娣樺彛浠ゆ垚鍔�
-					String quanToken = TaoKeApiUtil.getTKToken(goods.getPictUrl(), goods.getTitle(), taoLiJinLink);
-					if (!StringUtil.isNullOrEmpty(quanToken)) {
-						taoBaoLink.setTaoToken(quanToken);
-					}
-				} else if (!StringUtil.isNullOrEmpty(taoBaoLink.getClickUrl())) {
-					String quanToken = TaoKeApiUtil.getTKToken(goods.getPictUrl(), goods.getTitle(), taoBaoLink.getClickUrl());
-					if (!StringUtil.isNullOrEmpty(quanToken)) {
-						taoBaoLink.setTaoToken(quanToken);
-					}
-				}
-			}
-			
 			
 			String shortLink = HttpUtil.getShortLink(url);
 			if (!StringUtil.isNullOrEmpty(shortLink)) {
@@ -258,32 +221,16 @@
 						MoneyBigDecimalUtil.getWithNoZera(taoBaoLink.getGoods().getZkPrice()) + "");
 			} else// 鏈夊埜
 			{
-				if (source != null && "taolijin".equals(source)) {
-					String text = shareGoodsTextTemplateService.getTaoLiJinTemplate(uid);
-					if (StringUtil.isNullOrEmpty(text))
-						text = configTaoLiJinService.getValueByKey("goods_share_text");
-					
-					shareText = text.replace("{鏍囬}", taoBaoLink.getGoods().getTitle())
-							.replace("{鍟嗗搧鍘熶环}", MoneyBigDecimalUtil.getWithNoZera(taoBaoLink.getGoods().getZkPrice()) + "")
-							.replace("{浼樻儬鍒搁潰棰潁",
-									MoneyBigDecimalUtil.getWithNoZera(taoBaoLink.getGoods().getCouponAmount()).toString())
-							.replace("{娣樼ぜ閲戦潰棰潁", MoneyBigDecimalUtil.getWithNoZera(goodsTaoLiJinRateService.getGoodsSpreadMoney(taoBaoLink.getGoods())).toString())
-							.replace("{浼樻儬鍒镐环}", TaoBaoUtil.getAfterUseCouplePrice(taoBaoLink.getGoods()) + "");
-				} else {
-					String text = shareGoodsTextTemplateService.geteCouponTemplate(uid);
-					if (StringUtil.isNullOrEmpty(text))
-						text = configService.get("goods_share_text_coupon");
-					
-					shareText = text.replace("{鏍囬}", taoBaoLink.getGoods().getTitle())
-							.replace("{鍟嗗搧鍘熶环}", MoneyBigDecimalUtil.getWithNoZera(taoBaoLink.getGoods().getZkPrice()) + "")
-							.replace("{浼樻儬鍒搁潰棰潁",
-									MoneyBigDecimalUtil.getWithNoZera(taoBaoLink.getGoods().getCouponAmount()).toString())
-							.replace("{浼樻儬鍒镐环}", TaoBaoUtil.getAfterUseCouplePrice(taoBaoLink.getGoods()) + "");
-				}
+				String text = shareGoodsTextTemplateService.geteCouponTemplate(uid);
+				if (StringUtil.isNullOrEmpty(text))
+					text = configService.get("goods_share_text_coupon");
 				
+				shareText = text.replace("{鏍囬}", taoBaoLink.getGoods().getTitle())
+						.replace("{鍟嗗搧鍘熶环}", MoneyBigDecimalUtil.getWithNoZera(taoBaoLink.getGoods().getZkPrice()) + "")
+						.replace("{浼樻儬鍒搁潰棰潁",
+								MoneyBigDecimalUtil.getWithNoZera(taoBaoLink.getGoods().getCouponAmount()).toString())
+						.replace("{浼樻儬鍒镐环}", TaoBaoUtil.getAfterUseCouplePrice(taoBaoLink.getGoods()) + "");
 			}
-			
-			
 			
 			shareText = shareText.replace("{搴楅摵绫诲瀷}", shopType)
 					.replace("{鏈堥攢閲弣", TaoBaoUtil.getSaleCount(taoBaoLink.getGoods().getBiz30day()))
@@ -354,8 +301,173 @@
 			out.print(JsonUtil.loadFalseResult(e.getCode(), e.getMessage()));
 			businessEmergent110Service.shareTaoBaoGoodsError(StringUtil.Md5(auctionId + ""));
 		}
-
 	}
+	
+	
+	/**
+	 * 娣樼ぜ閲戝垱寤哄垎浜�
+	 * @param uid
+	 * @param auctionId
+	 * @param totalNum
+	 * @param relationId
+	 * @param request
+	 * @param out
+	 */
+	public void createTaoLijin(Long uid, Long auctionId, int totalNum, String relationId, HttpServletRequest request, PrintWriter out) {
+		try {
+			TaoBaoLink taoBaoLink = shareGoodsService.getTaoLiJinLinkForShare(uid, auctionId, relationId);
+			
+			TaoBaoGoodsBrief goods = taoBaoLink.getGoods();
+			
+			BigDecimal spreadMoney = goodsTaoLiJinRateService.getGoodsSpreadMoney(goods);
+			// 鎺ㄥ箍绾㈠寘 涓嶈兘灏忎簬1
+			if (spreadMoney.compareTo(new BigDecimal(1)) < 0) {
+				out.print(JsonUtil.loadFalseResult(1, "璇ュ晢鍝佹窐绀奸噾涓嶈冻1鍏�"));
+				return;
+			}
+			
+			JSONObject data = new JSONObject();
+			data.put("spreadMoney", "娣樼ぜ閲� 楼" + spreadMoney.toString());
+			
+			String taoLiJinLink = null;
+			Long tljId = null;
+			try {
+				UserTaoLiJinRecord record = userTaoLiJinRecordService.createShareTaoLiJin(uid, totalNum, goods);
+				tljId = record.getId();
+				taoLiJinLink = record.getSendUrl();
+				data.put("tljId", tljId);
+				data.put("surplusMoney", record.getSurplusMoney());
+			} catch (UserTaoLiJinRecordException e) {
+				out.print(JsonUtil.loadFalseResult(e.getCode(), e.getMsg()));
+				return;
+			}
+			
+			String url = String.format("http://%s%s?uid=%s&id=%s&appType=flq&tid=%s", configService.getH5Host(),
+					Constant.systemCommonConfig.getShareGoodsPagePath(), AESUtil.encrypt(uid + "", Constant.UIDAESKEY),
+					auctionId + "", tljId);
+			String shortLink = HttpUtil.getShortLink(url);
+			if (!StringUtil.isNullOrEmpty(shortLink)) {
+				url = shortLink;
+			}
+			data.put("clickUrl", url);
+			
+			
+			// 鍒涘缓娣樺彛浠�
+			String taoToken = null;
+			if (!StringUtil.isNullOrEmpty(taoLiJinLink)) {// 閫氳繃绔嬪嵆鎺ㄥ箍鏂瑰紡鑾峰彇娣樺彛浠ゆ垚鍔�
+				String quanToken = TaoKeApiUtil.getTKToken(goods.getPictUrl(), goods.getTitle(), taoLiJinLink);
+				if (!StringUtil.isNullOrEmpty(quanToken)) {
+					taoToken = quanToken;
+				}
+			} else if (!StringUtil.isNullOrEmpty(taoBaoLink.getClickUrl())) {
+				String quanToken = TaoKeApiUtil.getTKToken(goods.getPictUrl(), goods.getTitle(), taoBaoLink.getClickUrl());
+				if (!StringUtil.isNullOrEmpty(quanToken)) {
+					taoToken = quanToken;
+				}
+			}
+			data.put("token", taoToken);
+			
+			data.put("rule", "http://apph5.yeshitv.com/apppage/all_help_content.html?id=148&from=singlemessage&isappinstalled=0");
+			data.put("pictUrl", TbImgUtil.getTBSizeImg(taoBaoLink.getGoods().getPictUrl(), 500));
+
+			// 鏃犲埜
+			String shopType = taoBaoLink.getGoods().getUserType() == 0 ? "娣樺疂浠�" : "澶╃尗浠�";
+			String shareText = "";
+			
+			if (StringUtil.isNullOrEmpty(taoBaoLink.getGoods().getCouponInfo())) {
+				String text = shareGoodsTextTemplateService.getCommonTemplate(uid);
+				if (StringUtil.isNullOrEmpty(text))
+					text = configService.get("goods_share_text_nocoupon");
+				shareText = text.replace("{鏍囬}", taoBaoLink.getGoods().getTitle()).replace("{鍟嗗搧鍘熶环}",
+						MoneyBigDecimalUtil.getWithNoZera(taoBaoLink.getGoods().getZkPrice()) + "");
+			} else// 鏈夊埜
+			{
+				String text = shareGoodsTextTemplateService.getTaoLiJinTemplate(uid);
+				if (StringUtil.isNullOrEmpty(text))
+					text = configTaoLiJinService.getValueByKey("goods_share_text");
+				
+				shareText = text.replace("{鏍囬}", taoBaoLink.getGoods().getTitle())
+						.replace("{鍟嗗搧鍘熶环}", MoneyBigDecimalUtil.getWithNoZera(taoBaoLink.getGoods().getZkPrice()) + "")
+						.replace("{浼樻儬鍒搁潰棰潁",
+								MoneyBigDecimalUtil.getWithNoZera(taoBaoLink.getGoods().getCouponAmount()).toString())
+						.replace("{娣樼ぜ閲戦潰棰潁", MoneyBigDecimalUtil.getWithNoZera(goodsTaoLiJinRateService.getGoodsSpreadMoney(taoBaoLink.getGoods())).toString())
+						.replace("{浼樻儬鍒镐环}", TaoBaoUtil.getAfterUseCouplePrice(taoBaoLink.getGoods()) + "");
+			}
+			
+			shareText = shareText.replace("{搴楅摵绫诲瀷}", shopType)
+					.replace("{鏈堥攢閲弣", TaoBaoUtil.getSaleCount(taoBaoLink.getGoods().getBiz30day()))
+					.replace("{棰嗗埜鐭摼}", shortLink).replace("{娣樺彛浠", taoBaoLink.getTaoToken());
+			data.put("shareText", shareText);
+			String descText = shareText.replace(taoBaoLink.getGoods().getTitle(), "").trim();
+			if (descText.startsWith("\\r\\n"))
+				descText = descText.substring(0);
+			data.put("descText", descText);
+			
+			String imgs = configService.get("goods_share_notify_imgs");
+			JSONArray array = JSONArray.fromObject(imgs);
+			int p = (int) (array.size() * Math.random());
+			if (p < array.size())
+				data.put("notifyPicture", array.optString(p));
+			data.put("notifyDesc", configService.get("goods_share_notify"));
+
+			// 娣诲姞鍒嗕韩璁板綍
+			BigDecimal rate = hongBaoManageService.getShareRate();
+			BigDecimal shareMoney = TaoBaoUtil.getShareGoodsHongBaoInfo(taoBaoLink.getGoods(), rate);
+
+			data.put("shareMoney", "楼" + shareMoney.toString());
+			try {
+				ShareGoodsRecordDTO shareRecord = userShareGoodsRecordService.addRecordGoodsDetail(uid, auctionId);
+				data.put("shareId", shareRecord.getRedisKey());
+			} catch (Exception e) {
+				try {
+					LogHelper.errorDetailInfo(e);
+				} catch (Exception e1) {
+					e1.printStackTrace();
+				}
+			}
+			out.print(JsonUtil.loadTrueResult(data));
+
+			final TaoBaoLink taobaoLink = taoBaoLink;
+			// 寮傛鎿嶄綔
+			com.yeshi.fanli.util.ThreadUtil.run(new Runnable() {
+				@Override
+				public void run() {
+					// 寮傛鎿嶄綔 娣诲姞鍒嗕韩璁板綍
+					UserShareGoodsHistory history = new UserShareGoodsHistory();
+					history.setUser(new UserInfo(uid));
+					history.setHongbao(shareMoney);
+					history.setCreateTime(new Date());
+					history.setGoodsType(UserShareGoodsHistory.TYPE_TAOBAO);
+					history.setTkCode(taobaoLink.getTaoToken());
+					history.setLink(taobaoLink.getClickUrl());
+					history.setQuanLink(taobaoLink.getCouponLink());
+					history.setGoodsId(taobaoLink.getGoods().getAuctionId());
+					history.setPostPicture(taobaoLink.getGoods().getPictUrl());
+
+					List<String> imgList = taobaoLink.getGoods().getImgList();
+					if (imgList == null) {
+						imgList = new ArrayList<>();
+					}
+					history.setPictures(JsonUtil.getGson().toJson(imgList));
+					shareGoodsService.addShareGoodsHistory(history);
+				}
+			});
+			return;
+		} catch (ShareGoodsException e) {
+			LogHelper.errorDetailInfo(e, "鍒嗕韩鍑洪敊:uid:"+uid+"auctionId:"+auctionId, "");
+			// 鍒嗕韩鍑洪敊鎶ヨ
+			try {
+				monitorService.addClientAPIMonitor(MonitorFactory.createClientAPI(request, e.getCode(), 0, "鍒嗕韩鍑洪敊"));
+			} catch (Exception e1) {
+			}
+			out.print(JsonUtil.loadFalseResult(e.getCode(), e.getMessage()));
+			businessEmergent110Service.shareTaoBaoGoodsError(StringUtil.Md5(auctionId + ""));
+		}
+	}
+	
+	
+	
+	
 
 	/**
 	 * 鍒嗕韩璁板綍缁熻鍒楄〃

--
Gitblit v1.8.0