From 30d8e227e8d823b6c38c3b9c90ac2df03b63befe Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期二, 25 二月 2025 16:41:22 +0800
Subject: [PATCH] 淘宝转链接口更新

---
 fanli/src/main/java/com/yeshi/fanli/controller/h5/H5RecommendController.java | 1183 +++++++++++++++++++++++++++++-----------------------------
 1 files changed, 599 insertions(+), 584 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 598a407..cee1bcd 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
@@ -1,584 +1,599 @@
-package com.yeshi.fanli.controller.h5;
-
-import java.io.PrintWriter;
-import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
-import javax.annotation.Resource;
-
-import org.springframework.stereotype.Controller;
-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.yeshi.fanli.dto.jd.JDCouponInfo;
-import com.yeshi.fanli.dto.jd.JDPingouInfo;
-import com.yeshi.fanli.dto.pdd.PDDGoodsDetail;
-import com.yeshi.fanli.entity.accept.AcceptData;
-import com.yeshi.fanli.entity.bus.recommend.RecommendBanner;
-import com.yeshi.fanli.entity.bus.share.UserShareGoodsHistory;
-import com.yeshi.fanli.entity.bus.su.recommend.SuperRecommendBanner;
-import com.yeshi.fanli.entity.bus.tlj.UserTaoLiJinRecord;
-import com.yeshi.fanli.entity.jd.JDGoods;
-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.TaoBaoGoodsBrief;
-import com.yeshi.fanli.entity.taobao.TaoBaoLink;
-import com.yeshi.fanli.entity.taobao.TaoBaoUnionConfig;
-import com.yeshi.fanli.entity.taobao.TaoKeAppInfo;
-import com.yeshi.fanli.exception.share.ShareGoodsException;
-import com.yeshi.fanli.exception.share.UserShareGoodsRecordException;
-import com.yeshi.fanli.exception.taobao.TaobaoGoodsDownException;
-import com.yeshi.fanli.log.LogHelper;
-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.goods.ShareGoodsService;
-import com.yeshi.fanli.service.inter.goods.SuperRecommendBannerService;
-import com.yeshi.fanli.service.inter.goods.TaoBaoGoodsBriefService;
-import com.yeshi.fanli.service.inter.order.config.HongBaoManageService;
-import com.yeshi.fanli.service.inter.taobao.TaoBaoUnionConfigService;
-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.service.inter.user.tb.UserExtraTaoBaoInfoService;
-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.TaoBaoConstant;
-import com.yeshi.fanli.util.ThreadUtil;
-import com.yeshi.fanli.util.jd.JDApiUtil;
-import com.yeshi.fanli.util.jd.JDUtil;
-import com.yeshi.fanli.util.pinduoduo.PinDuoDuoApiUtil;
-import com.yeshi.fanli.util.pinduoduo.PinDuoDuoUtil;
-import com.yeshi.fanli.util.taobao.TaoBaoUtil;
-import com.yeshi.fanli.util.taobao.TaoKeApiUtil;
-
-import net.sf.json.JSONObject;
-
-@Controller
-@RequestMapping("api/h5/v1/webRecommend")
-public class H5RecommendController {
-
-	@Resource
-	private H5ControllerUtil h5ControllerUtil;
-
-	@Resource
-	private SuperRecommendBannerService superRecommendBannerService;
-
-	@Resource
-	private HongBaoManageService hongBaoManageService;
-
-	@Resource
-	private RedisManager redisManager;
-
-	@Resource
-	private BusinessSystemService businessSystemService;
-
-	@Resource
-	private ConfigService configService;
-
-	@Resource
-	private SystemConfigService systemConfigService;
-
-	@Resource
-	private TaoBaoGoodsBriefService taoBaoGoodsBriefService;
-
-	@Resource
-	private TBPidService tbPidService;
-
-	@Resource
-	private ShareGoodsService shareGoodsService;
-
-	@Resource
-	private TaoBaoUnionConfigService taoBaoUnionConfigService;
-
-	@Resource
-	private UserShareGoodsGroupService userShareGoodsGroupService;
-
-	@Resource
-	private UserTaoLiJinRecordService userTaoLiJinRecordService;
-
-	@Resource
-	private UserExtraTaoBaoInfoService userExtraTaoBaoInfoService;
-
-	/**
-	 * 
-	 * 鏂规硶璇存槑: 鎺ㄨ崘杞挱鍟嗗搧淇℃伅
-	 * 
-	 * @author mawurui createTime 2018骞�5鏈�11鏃� 涓婂崍11:13:47
-	 * @param acceptData
-	 * @param out
-	 */
-	@RequestMapping(value = "getRecommenBanner", method = RequestMethod.GET)
-	public void getRecommendBanner(AcceptData acceptData, String callback, PrintWriter out) {
-
-		BusinessSystem system = businessSystemService.getBusinessSystem("WEB",
-				Constant.systemCommonConfig.getH5PackageName());
-		JSONObject json = new JSONObject();
-		if (system == null) {
-			out.print(JsonUtil.loadFalseResult(1, H5ControllerUtil.NOSYSTEM));
-			return;
-		}
-		List<SuperRecommendBanner> superRecommendBanners = superRecommendBannerService
-				.getSuperRecommendBannersBySystem(system);
-		List<RecommendBanner> list = null;
-		for (SuperRecommendBanner superRecommendBanner : superRecommendBanners) {
-			if (list == null) {
-				list = new ArrayList<RecommendBanner>();
-			}
-			RecommendBanner recommendBanner = superRecommendBanner.getRecommendBanner();
-			// 娣樼壒浠锋殏鏃朵慨鏀�
-			if (system.getId() == 7) {
-				recommendBanner.getJumpDetail().setActivity(recommendBanner.getJumpDetail().getActivity()
-						.replace("com.yeshi.ec.rebate.myapplication", "com.yeshi.ec.taospecial"));
-			}
-
-			list.add(recommendBanner);
-		}
-
-		if (list == null) {
-			json.put("code", "1");
-			json.put("msg", H5ControllerUtil.NODATA);
-			out.print(json);
-			java.lang.System.out.println("json-" + json);
-			return;
-		}
-		json.put("code", 0);
-		JSONObject data = new JSONObject();
-		data.put("count", list.size());
-		Gson gson = new Gson();
-		data.put("data", gson.toJson(list));
-		json.put("data", data);
-		// jsonp鏂瑰紡杩斿洖
-		out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadTrueResult(json)));
-		return;
-	}
-
-	/**
-	 * 澶勭悊鏉′欢
-	 * 
-	 * @param uid
-	 * @param tid
-	 * @param out
-	 */
-	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;
-		}
-
-		Long auctionId = record.getGoodsId();
-		String tljLink = record.getSendUrl();
-		BigDecimal tljMoney = record.getPerFace();
-
-		TaoBaoGoodsBrief goods = null;
-		try {
-			goods = redisManager.getTaoBaoGoodsBrief(auctionId);
-		} catch (TaobaoGoodsDownException e) {
-		}
-
-		if (goods == null) {// 宸茬粡涓嬬嚎
-			out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadFalseResult("鍟嗗搧淇℃伅鑾峰彇澶辫触")));
-			return;
-		}
-
-		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("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("tljMoney", tljMoney);
-
-		out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadTrueResult(data)));
-	}
-
-	/**
-	 * 
-	 * 鏂规硶璇存槑: 鑾峰彇鍟嗗搧璇︽儏
-	 * 
-	 * @author mawurui createTime 2018骞�5鏈�11鏃� 涓婂崍11:37:02
-	 * @param acceptData
-	 * @param id
-	 * @param uid
-	 * @param out
-	 */
-
-	@SuppressWarnings("unused")
-	@RequestMapping(value = "getGoodsDetail", method = RequestMethod.GET)
-	public void getGoodsDetail(final AcceptData acceptData, final String id, String tid, String uid, String callback,
-			PrintWriter out) {
-		LogHelper.shareGoods("鍒嗕韩鍑哄幓鐨凥5璁块棶: uid:" + uid + " id:" + id);
-		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;
-		String token = null;
-		if (!StringUtil.isNullOrEmpty(uid)) {
-			// 鏌ヨ鏄惁鏈夊垎浜褰�
-			UserShareGoodsHistory shareHistory = null;
-			try {
-				shareHistory = shareGoodsService.getShareGoodsHistoryDetail(Long.parseLong(uid), Long.parseLong(id));
-			} catch (NumberFormatException e) {
-				e.printStackTrace();
-			} catch (ShareGoodsException e) {
-				e.printStackTrace();
-			}
-
-			if (shareHistory != null) {// 鏈夊垎浜褰�
-				token = shareHistory.getTkCode();
-				goods = redisManager.getTaoBaoGoodsTemp(Long.parseLong(id));
-				if (goods == null)
-					try {
-						goods = TaoKeApiUtil.searchGoodsDetail(Long.parseLong(id));
-					} catch (NumberFormatException e) {
-						e.printStackTrace();
-					} catch (TaobaoGoodsDownException e) {
-						e.printStackTrace();
-					}
-
-			} else {// 娌℃湁鍒嗕韩璁板綍锛岄渶瑕佺洿鎺ュ垎浜�
-				LogHelper.test("娌℃湁鍒嗕韩璁板綍:uid:" + uid + "  actionid:" + id);
-				// 鑾峰彇
-				TaoKeAppInfo app = new TaoKeAppInfo();
-				app.setPid(TaoBaoConstant.TAOBAO_RELATION_PID_DEFAULT);
-				app.setAdzoneId(app.getPid().split("_")[3]);
-				app.setAppKey(TaoBaoConstant.TAOBAO_AUTH_APPKEY);
-				app.setAppSecret(TaoBaoConstant.TAOBAO_AUTH_APPSECRET);
-
-				try {
-					goods = TaoKeApiUtil.searchGoodsDetail(Long.parseLong(id), app);
-				} catch (NumberFormatException e) {
-					e.printStackTrace();
-				} catch (TaobaoGoodsDownException e) {
-					e.printStackTrace();
-				}
-				if (goods != null) {
-					String url = goods.getAuctionUrl();
-					if (!StringUtil.isNullOrEmpty(goods.getCouponLink())) {
-						url = goods.getCouponLink();
-					}
-					String relationId = userExtraTaoBaoInfoService.getRelationIdByUid(Long.parseLong(uid));
-					if (!StringUtil.isNullOrEmpty(relationId))
-						url += "&relationId=" + relationId;
-					token = TaoKeApiUtil.getTKToken(goods.getPictUrl(), goods.getTitle(), url);
-				}
-			}
-
-		} else {
-			List<TaoBaoUnionConfig> configList = taoBaoUnionConfigService
-					.getConfigByTypeCache(PidUser.TYPE_SHARE_GOODS);
-			String pid = tbPidService.getSharePid().getPid();
-			TaoKeAppInfo app = new TaoKeAppInfo();
-			app.setAdzoneId(pid.split("_")[3]);
-			app.setAppKey(configList.get(0).getAppKey());
-			app.setAppSecret(configList.get(0).getAppSecret());
-			app.setPid(pid);
-			try {
-				goods = TaoKeApiUtil.searchGoodsDetail(Long.parseLong(id), app);
-			} catch (NumberFormatException e) {
-				e.printStackTrace();
-			} catch (TaobaoGoodsDownException e) {
-				e.printStackTrace();
-			}
-			if (goods != null) {
-				String url = goods.getAuctionUrl();
-				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);
-			}
-		}
-
-		if (goods == null) {
-			out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadFalseResult("鍟嗗搧淇℃伅鑾峰彇澶辫触")));
-			return;
-		}
-
-		if (StringUtil.isNullOrEmpty(token)) {
-			out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadFalseResult("鍙d护鐢熸垚澶辫触")));
-			return;
-		}
-
-		// 鍒稿悗浠�
-		BigDecimal afterCouponPrice = TaoBaoUtil.getAfterUseCouplePrice(goods);
-		TaoBaoLink link = new TaoBaoLink();
-		link.setTaoToken(token);
-
-		JSONObject data = new JSONObject();
-		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);
-			// 鑰佺増鏈吋瀹�
-			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;
-		ThreadUtil.run(new Runnable() {
-
-			@Override
-			public void run() {
-				try {
-					if (!StringUtil.isNullOrEmpty(tempUid))
-						userShareGoodsGroupService.updateBrowseRecord(Long.parseLong(tempUid), Long.parseLong(id), 1);
-				} catch (NumberFormatException e) {
-					e.printStackTrace();
-				} catch (UserShareGoodsRecordException e) {
-					e.printStackTrace();
-				}
-			}
-		});
-		return;
-	}
-
-	/**
-	 * 浜笢鍒嗕韩鍟嗗搧淇℃伅
-	 * 
-	 * @param acceptData
-	 * @param id
-	 * @param uid
-	 * @param callback
-	 * @param out
-	 */
-	@RequestMapping(value = "getJDGoodsDetail")
-	public void getJDGoodsDetail(final AcceptData acceptData, final Long id, String uid, String callback,
-			PrintWriter out) {
-		if (id == null) {
-			out.print(JsonUtil.loadFalseResult(1, "璇蜂笂浼爄d"));
-			return;
-		}
-
-		if (!StringUtil.isNullOrEmpty(uid)) {
-			uid = AESUtil.decrypt(uid, Constant.UIDAESKEY);
-		}
-
-		JDGoods jdGoods = JDApiUtil.queryGoodsDetail(id);
-		if (jdGoods == null) {
-			jdGoods = JDApiUtil.getGoodsDetail(id);
-		}
-
-		if (jdGoods == null) {
-			out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadFalseResult("鍟嗗搧淇℃伅鑾峰彇澶辫触")));
-			return;
-		}
-
-		List<String> imageList = jdGoods.getImageList();
-		if (imageList == null) {
-			imageList = new ArrayList<>();
-			imageList.add(jdGoods.getPicUrl());
-		}
-
-		boolean hasCoupon = false;
-		String couponUrl = null;
-		BigDecimal discount = new BigDecimal(0);
-		JDCouponInfo couponInfo = jdGoods.getCouponInfo();
-		if (couponInfo != null) {
-			hasCoupon = true;
-			discount = couponInfo.getDiscount();
-			couponUrl = couponInfo.getLink();
-		}
-
-		boolean jdzy = false;
-		String owner = jdGoods.getOwner();
-		if (!StringUtil.isNullOrEmpty(owner) && "g".equalsIgnoreCase(owner)) {
-			jdzy = true;
-		}
-
-		String materialId = "https://item.jd.com/" + id + ".html";
-		String jumpLink = JDApiUtil.convertShortLink(materialId, couponUrl, JDApiUtil.POSITION_SHARE + "", uid);
-
-		int priceType = 1;
-		BigDecimal price = jdGoods.getPrice();
-		;
-		JDPingouInfo pinGouInfo = jdGoods.getPinGouInfo();
-		if (pinGouInfo != null) {
-			priceType = 2; // 鎷艰喘浠�
-			price = pinGouInfo.getPingouPrice();
-		}
-
-		JSONObject data = new JSONObject();
-		data.put("jdzy", jdzy);
-		data.put("imgs", imageList);
-		data.put("title", jdGoods.getSkuName());
-		data.put("zkPrice", price);
-		data.put("priceType", priceType);
-		data.put("coupon", hasCoupon);
-		data.put("couponAmount", discount);
-		data.put("couponPrice", JDUtil.getQuanPrice(jdGoods));
-		data.put("helpLink", configService.get("jd_share_h5_help_link"));
-		data.put("jumpLink", jumpLink);
-		JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
-
-		final String tempUid = uid;
-		ThreadUtil.run(new Runnable() {
-			@Override
-			public void run() {
-				try {
-					if (!StringUtil.isNullOrEmpty(tempUid))
-						userShareGoodsGroupService.updateBrowseNum(Long.parseLong(tempUid), id,
-								Constant.SOURCE_TYPE_JD);
-				} catch (NumberFormatException e) {
-					e.printStackTrace();
-				} catch (UserShareGoodsRecordException e) {
-					e.printStackTrace();
-				}
-			}
-		});
-		return;
-	}
-
-	/**
-	 * 鎷煎澶氬垎浜晢鍝佽鎯�
-	 * 
-	 * @param acceptData
-	 * @param id
-	 * @param uid
-	 * @param callback
-	 * @param out
-	 */
-	@RequestMapping(value = "getPDDGoodsDetail")
-	public void getPDDGoodsDetail(final AcceptData acceptData, final Long id, String uid, String callback,
-			PrintWriter out) {
-		if (id == null) {
-			out.print(JsonUtil.loadFalseResult(1, "璇蜂笂浼爄d"));
-			return;
-		}
-
-		if (!StringUtil.isNullOrEmpty(uid)) {
-			uid = AESUtil.decrypt(uid, Constant.UIDAESKEY);
-		}
-
-		PDDGoodsDetail pddGoods = PinDuoDuoApiUtil.getGoodsDetail(id);
-		if (pddGoods == null) {
-			out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadFalseResult("鍟嗗搧淇℃伅鑾峰彇澶辫触")));
-			return;
-		}
-
-		List<String> imageList = null;
-		String[] goodsGalleryUrls = pddGoods.getGoodsGalleryUrls();
-		if (goodsGalleryUrls != null) {
-			imageList = Arrays.asList(goodsGalleryUrls);
-		}
-		if (imageList == null) {
-			imageList = new ArrayList<>();
-			String goodsImageUrl = pddGoods.getGoodsImageUrl();
-			if (!StringUtil.isNullOrEmpty(goodsImageUrl)) {
-				imageList.add(goodsImageUrl);
-			}
-		}
-
-		BigDecimal hundred = new BigDecimal(100);
-		Boolean hasCoupon = pddGoods.getHasCoupon();
-		BigDecimal amount = new BigDecimal(0);
-		if (hasCoupon != null && hasCoupon) {
-			amount = MoneyBigDecimalUtil.div(new BigDecimal(pddGoods.getCouponDiscount()), hundred).setScale(2);
-		} else {
-			hasCoupon = false;
-		}
-
-		String jumpLink = PinDuoDuoApiUtil.getPromotionUrl(id, PinDuoDuoApiUtil.PID_SHARE + "", uid);
-
-		JSONObject data = new JSONObject();
-		data.put("imgs", imageList);
-		data.put("title", pddGoods.getGoodsName());
-		data.put("zkPrice", MoneyBigDecimalUtil.div(new BigDecimal(pddGoods.getMinGroupPrice()), hundred).setScale(2));
-		data.put("coupon", hasCoupon);
-		data.put("couponAmount", amount);
-		data.put("couponPrice", PinDuoDuoUtil.getQuanPrice(pddGoods));
-		data.put("helpLink", configService.get("pdd_share_h5_help_link"));
-		data.put("jumpLink", jumpLink);
-		JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
-
-		final String tempUid = uid;
-		ThreadUtil.run(new Runnable() {
-			@Override
-			public void run() {
-				try {
-					if (!StringUtil.isNullOrEmpty(tempUid))
-						userShareGoodsGroupService.updateBrowseNum(Long.parseLong(tempUid), id,
-								Constant.SOURCE_TYPE_PDD);
-				} catch (NumberFormatException e) {
-					e.printStackTrace();
-				} catch (UserShareGoodsRecordException e) {
-					e.printStackTrace();
-				}
-			}
-		});
-		return;
-	}
-}
+package com.yeshi.fanli.controller.h5;
+
+import java.io.PrintWriter;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+import javax.annotation.Resource;
+
+import com.yeshi.fanli.entity.SystemPIDInfo;
+import com.yeshi.fanli.entity.config.SystemConfigKeyEnum;
+import com.yeshi.fanli.service.manger.PIDManager;
+import org.springframework.stereotype.Controller;
+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.yeshi.fanli.dto.jd.JDCouponInfo;
+import com.yeshi.fanli.dto.jd.JDPingouInfo;
+import com.yeshi.fanli.dto.pdd.PDDGoodsDetail;
+import com.yeshi.fanli.entity.accept.AcceptData;
+import com.yeshi.fanli.entity.bus.recommend.RecommendBanner;
+import com.yeshi.fanli.entity.bus.share.UserShareGoodsHistory;
+import com.yeshi.fanli.entity.bus.su.recommend.SuperRecommendBanner;
+import com.yeshi.fanli.entity.bus.tlj.UserTaoLiJinRecord;
+import com.yeshi.fanli.entity.jd.JDGoods;
+import com.yeshi.fanli.entity.system.BusinessSystem;
+import com.yeshi.fanli.entity.taobao.PidUser;
+import com.yeshi.goods.facade.entity.taobao.TaoBaoGoodsBrief;
+import com.yeshi.fanli.entity.taobao.TaoBaoLink;
+import com.yeshi.fanli.entity.taobao.TaoBaoUnionConfig;
+import com.yeshi.common.entity.taobao.TaoKeAppInfo;
+import com.yeshi.fanli.exception.share.ShareGoodsException;
+import com.yeshi.fanli.exception.share.UserShareGoodsRecordException;
+import com.yeshi.fanli.exception.taobao.TaobaoGoodsDownException;
+import com.yeshi.fanli.log.LogHelper;
+import com.yeshi.fanli.log.LogManager;
+import com.yeshi.fanli.log.LogType;
+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.goods.ShareGoodsService;
+import com.yeshi.fanli.service.inter.goods.SuperRecommendBannerService;
+import com.yeshi.fanli.service.inter.goods.TaoBaoGoodsBriefService;
+import com.yeshi.fanli.service.inter.order.config.HongBaoManageService;
+import com.yeshi.fanli.service.inter.taobao.TaoBaoUnionConfigService;
+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.service.inter.user.tb.UserExtraTaoBaoInfoService;
+import com.yeshi.fanli.util.AESUtil;
+import com.yeshi.fanli.util.Constant;
+import org.yeshi.utils.MoneyBigDecimalUtil;
+import com.yeshi.fanli.util.RedisManager;
+import com.yeshi.fanli.util.StringUtil;
+import com.yeshi.fanli.util.TaoBaoConstant;
+import com.yeshi.fanli.util.ThreadUtil;
+import com.yeshi.fanli.util.jd.JDApiUtil;
+import com.yeshi.fanli.util.jd.JDUtil;
+import com.yeshi.fanli.util.pinduoduo.PinDuoDuoApiUtil;
+import com.yeshi.fanli.util.pinduoduo.PinDuoDuoUtil;
+import com.yeshi.fanli.util.taobao.TaoBaoUtil;
+import com.yeshi.fanli.util.taobao.TaoKeApiUtil;
+
+import net.sf.json.JSONObject;
+
+@Controller
+@RequestMapping("api/h5/v1/webRecommend")
+public class H5RecommendController {
+
+    @Resource
+    private H5ControllerUtil h5ControllerUtil;
+
+    @Resource
+    private SuperRecommendBannerService superRecommendBannerService;
+
+    @Resource
+    private HongBaoManageService hongBaoManageService;
+
+    @Resource
+    private RedisManager redisManager;
+
+    @Resource
+    private BusinessSystemService businessSystemService;
+
+    @Resource
+    private ConfigService configService;
+
+    @Resource
+    private SystemConfigService systemConfigService;
+
+    @Resource
+    private TaoBaoGoodsBriefService taoBaoGoodsBriefService;
+
+    @Resource
+    private TBPidService tbPidService;
+
+    @Resource
+    private ShareGoodsService shareGoodsService;
+
+    @Resource
+    private TaoBaoUnionConfigService taoBaoUnionConfigService;
+
+    @Resource
+    private UserShareGoodsGroupService userShareGoodsGroupService;
+
+    @Resource
+    private UserTaoLiJinRecordService userTaoLiJinRecordService;
+
+    @Resource
+    private UserExtraTaoBaoInfoService userExtraTaoBaoInfoService;
+
+    @Resource
+    private PIDManager pidManager;
+
+    /**
+     * 鏂规硶璇存槑: 鎺ㄨ崘杞挱鍟嗗搧淇℃伅
+     *
+     * @param acceptData
+     * @param out
+     * @author mawurui createTime 2018骞�5鏈�11鏃� 涓婂崍11:13:47
+     */
+    @RequestMapping(value = "getRecommenBanner", method = RequestMethod.GET)
+    public void getRecommendBanner(AcceptData acceptData, String callback, PrintWriter out) {
+
+        BusinessSystem system = businessSystemService.getBusinessSystem("WEB",
+              systemConfigService.getValueCache(SystemConfigKeyEnum.h5PackageName,acceptData.getSystem()), acceptData.getSystem());
+        JSONObject json = new JSONObject();
+        if (system == null) {
+            out.print(JsonUtil.loadFalseResult(1, H5ControllerUtil.NOSYSTEM));
+            return;
+        }
+        List<SuperRecommendBanner> superRecommendBanners = superRecommendBannerService
+                .getSuperRecommendBannersBySystem(system);
+        List<RecommendBanner> list = null;
+        for (SuperRecommendBanner superRecommendBanner : superRecommendBanners) {
+            if (list == null) {
+                list = new ArrayList<RecommendBanner>();
+            }
+            RecommendBanner recommendBanner = superRecommendBanner.getRecommendBanner();
+            // 娣樼壒浠锋殏鏃朵慨鏀�
+            if (system.getId() == 7) {
+                recommendBanner.getJumpDetail().setActivity(recommendBanner.getJumpDetail().getActivity()
+                        .replace("com.yeshi.ec.rebate.myapplication", "com.yeshi.ec.taospecial"));
+            }
+
+            list.add(recommendBanner);
+        }
+
+        if (list == null) {
+            json.put("code", "1");
+            json.put("msg", H5ControllerUtil.NODATA);
+            out.print(json);
+            java.lang.System.out.println("json-" + json);
+            return;
+        }
+        json.put("code", 0);
+        JSONObject data = new JSONObject();
+        data.put("count", list.size());
+        Gson gson = new Gson();
+        data.put("data", gson.toJson(list));
+        json.put("data", data);
+        // jsonp鏂瑰紡杩斿洖
+        out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadTrueResult(json)));
+        return;
+    }
+
+    /**
+     * 澶勭悊鏉′欢
+     *
+     * @param uid
+     * @param tid
+     * @param out
+     */
+    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;
+        }
+
+        String auctionId = record.getGoodsId();
+        String tljLink = record.getSendUrl();
+        BigDecimal tljMoney = record.getPerFace();
+
+        TaoBaoGoodsBrief goods = null;
+        try {
+            goods = redisManager.getTaoBaoGoodsBrief(auctionId);
+        } catch (TaobaoGoodsDownException e) {
+        }
+
+        if (goods == null) {// 宸茬粡涓嬬嚎
+            out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadFalseResult("鍟嗗搧淇℃伅鑾峰彇澶辫触")));
+            return;
+        }
+
+        String token = redisManager.getTLJToken(tljLink);
+        if (StringUtil.isNullOrEmpty(token)) {
+            token = TaoKeApiUtil.getTKToken(goods.getPictUrl(), goods.getTitle(), tljLink);
+        }
+
+        // 鍒稿悗浠�
+        BigDecimal afterCouponPrice = TaoBaoUtil.getCouponPrice(goods);
+        TaoBaoLink link = new TaoBaoLink();
+        link.setTaoToken(token);
+
+        JSONObject data = new JSONObject();
+        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", TaoBaoUtil.filterTaoToken(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("tljMoney", tljMoney);
+
+        out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadTrueResult(data)));
+    }
+
+    /**
+     * 鏂规硶璇存槑: 鑾峰彇鍟嗗搧璇︽儏
+     *
+     * @param acceptData
+     * @param id
+     * @param uid
+     * @param out
+     * @author mawurui createTime 2018骞�5鏈�11鏃� 涓婂崍11:37:02
+     */
+
+    @SuppressWarnings("unused")
+    @RequestMapping(value = "getGoodsDetail", method = RequestMethod.GET)
+    public void getGoodsDetail(final AcceptData acceptData, final String id, String tid, String uid, String callback,
+                               PrintWriter out) {
+        if (!StringUtil.isNullOrEmpty(uid))
+            uid = uid.replace(" ", "+");
+
+        LogManager.getLogger(LogType.taobaoTrade)
+                .info(String.format("娣樺疂鍒嗕韩鍟嗗搧H5璁块棶:\n  鍟嗗搧ID:%s \n  鍘熷鐢ㄦ埛ID:%s \n", id, uid));
+
+        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;
+        String token = null;
+        if (!StringUtil.isNullOrEmpty(uid)) {
+            // 鏌ヨ鏄惁鏈夊垎浜褰�
+            UserShareGoodsHistory shareHistory = null;
+            try {
+                shareHistory = shareGoodsService.getShareGoodsHistoryDetail(Long.parseLong(uid), id);
+            } catch (NumberFormatException e) {
+                e.printStackTrace();
+            } catch (ShareGoodsException e) {
+                e.printStackTrace();
+            }
+
+            if (shareHistory != null) {// 鏈夊垎浜褰�
+                token = shareHistory.getTkCode();
+                goods = redisManager.getTaoBaoGoodsTemp(id);
+                if (goods == null)
+                    try {
+                        goods = TaoKeApiUtil.searchGoodsDetail(id);
+                    } catch (NumberFormatException e) {
+                        e.printStackTrace();
+                    } catch (TaobaoGoodsDownException e) {
+                        e.printStackTrace();
+                    }
+
+            } else {// 娌℃湁鍒嗕韩璁板綍锛岄渶瑕佺洿鎺ュ垎浜�
+                LogHelper.test("娌℃湁鍒嗕韩璁板綍:uid:" + uid + "  actionid:" + id);
+                // 鑾峰彇
+                TaoKeAppInfo app = new TaoKeAppInfo();
+                app.setPid(pidManager.getPidCache(acceptData.getSystem(), Constant.SOURCE_TYPE_TAOBAO, SystemPIDInfo.PidType.share));
+                app.setAdzoneId(app.getPid().split("_")[3]);
+                app.setAppKey(TaoBaoConstant.TAOBAO_AUTH_APPKEY);
+                app.setAppSecret(TaoBaoConstant.TAOBAO_AUTH_APPSECRET);
+
+                try {
+                    goods = TaoKeApiUtil.searchGoodsDetail(id, app);
+                } catch (NumberFormatException e) {
+                    e.printStackTrace();
+                } catch (TaobaoGoodsDownException e) {
+                    e.printStackTrace();
+                }
+                if (goods != null) {
+                    String url = goods.getAuctionUrl();
+                    if (!StringUtil.isNullOrEmpty(goods.getCouponLink())) {
+                        url = goods.getCouponLink();
+                    }
+                    String relationId = userExtraTaoBaoInfoService.getRelationIdByUid(Long.parseLong(uid));
+                    if (!StringUtil.isNullOrEmpty(relationId))
+                        url += "&relationId=" + relationId;
+                    token = TaoKeApiUtil.getTKToken(goods.getPictUrl(), goods.getTitle(), url);
+                }
+            }
+
+        } else {
+            List<TaoBaoUnionConfig> configList = taoBaoUnionConfigService
+                    .getConfigByTypeCache(PidUser.TYPE_SHARE_GOODS);
+            String pid = tbPidService.getSharePid(acceptData.getSystem()).getPid();
+            TaoKeAppInfo app = new TaoKeAppInfo();
+            app.setAdzoneId(pid.split("_")[3]);
+            app.setAppKey(configList.get(0).getAppKey());
+            app.setAppSecret(configList.get(0).getAppSecret());
+            app.setPid(pid);
+            try {
+                goods = TaoKeApiUtil.searchGoodsDetail(id, app);
+            } catch (NumberFormatException e) {
+                e.printStackTrace();
+            } catch (TaobaoGoodsDownException e) {
+                e.printStackTrace();
+            }
+            if (goods != null) {
+                String url = goods.getAuctionUrl();
+                if (!StringUtil.isNullOrEmpty(goods.getCouponLink())) {
+                    url = goods.getCouponLink();
+                }
+                if (!url.contains("uland.taobao.com") && !url.contains("s.click.taobao.com")) {
+                    TaoBaoGoodsBrief linkInfo = TaoKeApiUtil.specialConvertCouponV2(id, app, null, null);
+                    url = linkInfo.getCouponLink();
+                    if (StringUtil.isNullOrEmpty(url))
+                        url = linkInfo.getAuctionUrl();
+                }
+
+                token = TaoKeApiUtil.getTKToken(goods.getPictUrl(), goods.getTitle(), url);
+            }
+        }
+
+        if (goods == null) {
+            out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadFalseResult("鍟嗗搧淇℃伅鑾峰彇澶辫触")));
+            return;
+        }
+
+        if (StringUtil.isNullOrEmpty(token)) {
+            out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadFalseResult("鍙d护鐢熸垚澶辫触")));
+            return;
+        }
+
+        // 鍒稿悗浠�
+        BigDecimal afterCouponPrice = TaoBaoUtil.getCouponPrice(goods);
+        TaoBaoLink link = new TaoBaoLink();
+        link.setTaoToken(token);
+
+        JSONObject data = new JSONObject();
+        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", TaoBaoUtil.filterTaoToken(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);
+            // 鑰佺増鏈吋瀹�
+            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;
+        ThreadUtil.run(new Runnable() {
+
+            @Override
+            public void run() {
+                try {
+                    if (!StringUtil.isNullOrEmpty(tempUid))
+                        userShareGoodsGroupService.updateBrowseRecord(Long.parseLong(tempUid), id, 1);
+                } catch (NumberFormatException e) {
+                    e.printStackTrace();
+                } catch (UserShareGoodsRecordException e) {
+                    e.printStackTrace();
+                }
+            }
+        });
+        return;
+    }
+
+    /**
+     * 浜笢鍒嗕韩鍟嗗搧淇℃伅
+     *
+     * @param acceptData
+     * @param id
+     * @param uid
+     * @param callback
+     * @param out
+     */
+    @RequestMapping(value = "getJDGoodsDetail")
+    public void getJDGoodsDetail(final AcceptData acceptData, final String id, String uid, String callback,
+                                 PrintWriter out) {
+        if (id == null) {
+            out.print(JsonUtil.loadFalseResult(1, "璇蜂笂浼爄d"));
+            return;
+        }
+
+        if (!StringUtil.isNullOrEmpty(uid)) {
+            uid = AESUtil.decrypt(uid, Constant.UIDAESKEY);
+        }
+
+        JDGoods jdGoods = JDApiUtil.queryGoodsDetail(id);
+        if (jdGoods == null) {
+            jdGoods = JDApiUtil.getGoodsDetail(id);
+        }
+
+        if (jdGoods == null) {
+            out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadFalseResult("鍟嗗搧淇℃伅鑾峰彇澶辫触")));
+            return;
+        }
+
+        List<String> imageList = jdGoods.getImageList();
+        if (imageList == null) {
+            imageList = new ArrayList<>();
+            imageList.add(jdGoods.getPicUrl());
+        }
+
+        boolean hasCoupon = false;
+        String couponUrl = null;
+        BigDecimal discount = new BigDecimal(0);
+        JDCouponInfo couponInfo = JDUtil.getShowCouponInfo(jdGoods);
+        if (couponInfo != null) {
+            hasCoupon = true;
+            discount = couponInfo.getDiscount();
+            couponUrl = couponInfo.getLink();
+        }
+
+        boolean jdzy = false;
+        String owner = jdGoods.getOwner();
+        if (!StringUtil.isNullOrEmpty(owner) && "g".equalsIgnoreCase(owner)) {
+            jdzy = true;
+        }
+
+        String materialId = "https://item.jd.com/" + id + ".html";
+        String jumpLink = null;
+        try {
+            jumpLink = JDApiUtil.convertLinkWithSubUnionId(materialId, couponUrl, null, pidManager.getPidCache(acceptData.getSystem(), Constant.SOURCE_TYPE_JD, SystemPIDInfo.PidType.share),
+                    uid);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+
+        int priceType = 1;
+        BigDecimal price = jdGoods.getPrice();
+        JDPingouInfo pinGouInfo = jdGoods.getPinGouInfo();
+        if (pinGouInfo != null) {
+            priceType = 2; // 鎷艰喘浠�
+            price = pinGouInfo.getPingouPrice();
+        }
+
+        JSONObject data = new JSONObject();
+        data.put("jdzy", jdzy);
+        data.put("imgs", imageList);
+        data.put("title", jdGoods.getSkuName());
+        data.put("zkPrice", price);
+        data.put("priceType", priceType);
+        data.put("coupon", hasCoupon);
+        data.put("couponAmount", discount);
+        data.put("couponPrice", JDUtil.getCouponPrice(jdGoods));
+        data.put("helpLink", configService.getValue("jd_share_h5_help_link", acceptData.getSystem()));
+        data.put("jumpLink", jumpLink);
+        JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
+
+        final String tempUid = uid;
+        ThreadUtil.run(new Runnable() {
+            @Override
+            public void run() {
+                try {
+                    if (!StringUtil.isNullOrEmpty(tempUid))
+                        userShareGoodsGroupService.updateBrowseNum(Long.parseLong(tempUid), id+"",
+                                Constant.SOURCE_TYPE_JD);
+                } catch (NumberFormatException e) {
+                    e.printStackTrace();
+                } catch (UserShareGoodsRecordException e) {
+                    e.printStackTrace();
+                }
+            }
+        });
+        return;
+    }
+
+    /**
+     * 鎷煎澶氬垎浜晢鍝佽鎯�
+     *
+     * @param acceptData
+     * @param id
+     * @param uid
+     * @param callback
+     * @param out
+     */
+    @RequestMapping(value = "getPDDGoodsDetail")
+    public void getPDDGoodsDetail(final AcceptData acceptData, final String id, String uid, String callback,
+                                  PrintWriter out) {
+        if (id == null) {
+            out.print(JsonUtil.loadFalseResult(1, "璇蜂笂浼爄d"));
+            return;
+        }
+
+        if (!StringUtil.isNullOrEmpty(uid)) {
+            uid = AESUtil.decrypt(uid, Constant.UIDAESKEY);
+        }
+
+        PDDGoodsDetail pddGoods = PinDuoDuoApiUtil.getGoodsDetail(id);
+        if (pddGoods == null) {
+            out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadFalseResult("鍟嗗搧淇℃伅鑾峰彇澶辫触")));
+            return;
+        }
+
+        List<String> imageList = null;
+        String[] goodsGalleryUrls = pddGoods.getGoodsGalleryUrls();
+        if (goodsGalleryUrls != null) {
+            imageList = Arrays.asList(goodsGalleryUrls);
+        }
+        if (imageList == null) {
+            imageList = new ArrayList<>();
+            String goodsImageUrl = pddGoods.getGoodsImageUrl();
+            if (!StringUtil.isNullOrEmpty(goodsImageUrl)) {
+                imageList.add(goodsImageUrl);
+            }
+        }
+
+        BigDecimal hundred = new BigDecimal(100);
+        Boolean hasCoupon = pddGoods.getHasCoupon();
+        BigDecimal amount = new BigDecimal(0);
+        if (hasCoupon != null && hasCoupon) {
+            amount = MoneyBigDecimalUtil.div(new BigDecimal(pddGoods.getCouponDiscount()), hundred).setScale(2);
+        } else {
+            hasCoupon = false;
+        }
+
+        String jumpLink = PinDuoDuoApiUtil.getPromotionUrl(pddGoods.getGoodsSign(), pidManager.getPidCache(acceptData.getSystem(), Constant.SOURCE_TYPE_PDD, SystemPIDInfo.PidType.share), uid);
+
+        JSONObject data = new JSONObject();
+        data.put("imgs", imageList);
+        data.put("title", pddGoods.getGoodsName());
+        data.put("zkPrice", MoneyBigDecimalUtil.div(new BigDecimal(pddGoods.getMinGroupPrice()), hundred).setScale(2));
+        data.put("coupon", hasCoupon);
+        data.put("couponAmount", amount);
+        data.put("couponPrice", PinDuoDuoUtil.getCouponPrice(pddGoods));
+        data.put("helpLink", configService.getValue("pdd_share_h5_help_link", acceptData.getSystem()));
+        data.put("jumpLink", jumpLink);
+        JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
+
+        final String tempUid = uid;
+        ThreadUtil.run(new Runnable() {
+            @Override
+            public void run() {
+                try {
+                    if (!StringUtil.isNullOrEmpty(tempUid))
+                        userShareGoodsGroupService.updateBrowseNum(Long.parseLong(tempUid), id+"",
+                                Constant.SOURCE_TYPE_PDD);
+                } catch (NumberFormatException e) {
+                    e.printStackTrace();
+                } catch (UserShareGoodsRecordException e) {
+                    e.printStackTrace();
+                }
+            }
+        });
+        return;
+    }
+}

--
Gitblit v1.8.0