From 98b1a0affd69bbe63223c21fdd2c404e8bedfccb Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期三, 20 五月 2020 17:25:08 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/div' into 2.1.2 --- fanli/src/main/java/com/yeshi/fanli/controller/h5/H5RecommendController.java | 419 +++++++++++++++++++++++++++++++++++++++++++---------------- 1 files changed, 303 insertions(+), 116 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..06c96ed 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 @@ -3,8 +3,8 @@ import java.io.PrintWriter; import java.math.BigDecimal; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; -import java.util.Map; import javax.annotation.Resource; @@ -12,49 +12,56 @@ 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.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.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.jd.JDGoods; +import com.yeshi.fanli.entity.system.BusinessSystem; 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; import com.yeshi.fanli.entity.taobao.TaoKeAppInfo; -import com.yeshi.fanli.exception.ShareGoodsException; +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.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.order.config.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.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.Utils; +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.JSONArray; import net.sf.json.JSONObject; @Controller @@ -68,19 +75,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 +91,6 @@ @Resource private TaoBaoGoodsBriefService taoBaoGoodsBriefService; - - @Resource - private ScanHistoryService scanHistoryService; @Resource private TBPidService tbPidService; @@ -106,6 +104,12 @@ @Resource private UserShareGoodsGroupService userShareGoodsGroupService; + @Resource + private UserTaoLiJinRecordService userTaoLiJinRecordService; + + @Resource + private UserExtraTaoBaoInfoService userExtraTaoBaoInfoService; + /** * * 鏂规硶璇存槑: 鎺ㄨ崘杞挱鍟嗗搧淇℃伅 @@ -117,7 +121,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 +164,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")); - } + Long auctionId = record.getGoodsId(); + String tljLink = record.getSendUrl(); + BigDecimal tljMoney = record.getPerFace(); - recommendSectionList.add(recommendSection); + 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", 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("data", dataArr); - String result = JsonUtil.loadJSONP(callback, JsonUtil.loadTrueResult(data)); - if (Constant.IS_OUTNET) - redisManager.cacheCommonString("client-api-getRecommendSection", result, 3 * 60); + data.put("tljMoney", tljMoney); - out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadTrueResult(result))); - return; + out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadTrueResult(data))); } /** @@ -260,15 +242,29 @@ @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) { + 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; @@ -297,22 +293,14 @@ } } else {// 娌℃湁鍒嗕韩璁板綍锛岄渶瑕佺洿鎺ュ垎浜� - List<TaoBaoUnionConfig> configList = taoBaoUnionConfigService - .getConfigByTypeCache(PidUser.TYPE_SHARE_GOODS); - String pid = null; - TBPid tbPid = tbPidService.getTBPid(Long.parseLong(uid), PidUser.TYPE_SHARE_GOODS); - if (tbPid != null) - pid = tbPid.getPid(); - else { - pid = configList.get(0).getDefaultPid(); - } - + LogHelper.test("娌℃湁鍒嗕韩璁板綍:uid:" + uid + " actionid:" + id); // 鑾峰彇 TaoKeAppInfo app = new TaoKeAppInfo(); - app.setAdzoneId(pid.split("_")[3]); - app.setAppKey(configList.get(0).getAppKey()); - app.setAppSecret(configList.get(0).getAppSecret()); - app.setPid(pid); + 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) { @@ -325,6 +313,9 @@ 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); } } @@ -332,7 +323,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 +341,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 +371,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("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; @@ -401,4 +411,181 @@ }); 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 = 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 = JDApiUtil.convertLinkWithSubUnionId(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; + } } -- Gitblit v1.8.0