From 70ebe043e6b62756be9e257fe954c747d46568b9 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期五, 16 九月 2022 19:00:59 +0800
Subject: [PATCH] 商品ID字符串化

---
 fanli/src/main/java/com/yeshi/fanli/controller/client/v2/ShareControllerV2.java |  176 ++++++++++++++++++++++++++++++++++++++++------------------
 1 files changed, 120 insertions(+), 56 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/ShareControllerV2.java b/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/ShareControllerV2.java
index 4811164..bc8fcec 100644
--- a/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/ShareControllerV2.java
+++ b/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/ShareControllerV2.java
@@ -1,7 +1,9 @@
 package com.yeshi.fanli.controller.client.v2;
 
 import java.io.PrintWriter;
+import java.io.UnsupportedEncodingException;
 import java.math.BigDecimal;
+import java.net.URLEncoder;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Date;
@@ -11,10 +13,17 @@
 import javax.servlet.http.HttpServletRequest;
 
 import com.yeshi.fanli.entity.SystemEnum;
+import com.yeshi.fanli.entity.SystemFunction;
+import com.yeshi.fanli.entity.SystemPIDInfo;
 import com.yeshi.fanli.exception.taobao.TaoBaoConvertLinkException;
+import com.yeshi.fanli.service.inter.pdd.PDDAuthService;
+import com.yeshi.fanli.service.inter.user.*;
+import com.yeshi.fanli.service.manger.PIDManager;
 import com.yeshi.fanli.service.manger.goods.TaoBaoLinkManager;
 import com.yeshi.fanli.util.*;
 import com.yeshi.fanli.util.StringUtil;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
@@ -23,7 +32,7 @@
 
 import com.google.gson.Gson;
 import com.google.gson.GsonBuilder;
-import com.yeshi.fanli.dto.ConfigParamsDTO;
+import com.yeshi.fanli.dto.GoodsMoneyConfigParamsDTO;
 import com.yeshi.fanli.dto.jd.JDCouponInfo;
 import com.yeshi.fanli.dto.jd.JDPingouInfo;
 import com.yeshi.fanli.dto.pdd.PDDGoodsDetail;
@@ -60,10 +69,6 @@
 import com.yeshi.fanli.service.inter.order.config.HongBaoManageService;
 import com.yeshi.fanli.service.inter.tlj.ConfigTaoLiJinService;
 import com.yeshi.fanli.service.inter.tlj.UserTaoLiJinRecordService;
-import com.yeshi.fanli.service.inter.user.UserInfoExtraService;
-import com.yeshi.fanli.service.inter.user.UserInfoService;
-import com.yeshi.fanli.service.inter.user.UserShareGoodsGroupService;
-import com.yeshi.fanli.service.inter.user.UserShareGoodsRecordService;
 import com.yeshi.fanli.service.inter.user.tb.UserExtraTaoBaoInfoService;
 import com.yeshi.fanli.util.cache.JDGoodsCacheUtil;
 import com.yeshi.fanli.util.cache.PinDuoDuoCacheUtil;
@@ -90,6 +95,9 @@
 @Controller
 @RequestMapping("api/v2/share")
 public class ShareControllerV2 {
+
+    Logger logger = LoggerFactory.getLogger(ShareControllerV2.class);
+
     @Resource
     private ShareGoodsService shareGoodsService;
 
@@ -144,6 +152,15 @@
 
     @Resource
     private UserTaoLiJinRecordService userTaoLiJinRecordService;
+
+    @Resource
+    private PDDAuthService pddAuthService;
+
+    @Resource
+    private PIDManager pidManager;
+
+    @Resource
+    private UserFunctionsLimitService userFunctionsLimitService;
 
     private List<ShareGoodsCommentChoiceInfo> getCommentChoiceList(String token, String link, String inviteCode,
                                                                    BigDecimal fanliMoney) {
@@ -208,9 +225,14 @@
             return;
         }
 
+        if (userFunctionsLimitService.isLimit(uid, SystemFunction.share, new Date())) {
+            out.print(JsonUtil.loadFalseResult(1, "璇ュ姛鑳介檺鍒朵娇鐢�"));
+            return;
+        }
+
         // 娣樺疂
         if (goodsType == null || goodsType == Constant.SOURCE_TYPE_TAOBAO) {
-            createTaoBaoShare(acceptData, uid, Long.parseLong(goodsId), totalNum, source, needGoods, request, out);
+            createTaoBaoShare(acceptData, uid, goodsId, totalNum, source, needGoods, request, out);
             return;
         }
 
@@ -241,13 +263,30 @@
     }
 
     public static String getERCodeContentNew(String template, TaoBaoGoodsBrief goods, String token) {
+        String tempToken = "";
+        String[] sts = token.split(" ");
+        if (sts.length > 1) {
+            for (int i = 0; i < sts.length - 1; i++) {
+                tempToken += sts[i] + " ";
+            }
+        } else {
+            tempToken = token;
+        }
+        tempToken = tempToken.trim();
+
+        try {
+            tempToken = URLEncoder.encode(tempToken, "UTF-8");
+        } catch (UnsupportedEncodingException e) {
+            e.printStackTrace();
+        }
+
         String commentText = template.replace("[鍘熶环]", goods.getZkPrice().toString());
-        commentText = commentText.replace("[娣樺彛浠", token);
+        commentText = commentText.replace("[娣樺彛浠", tempToken);
         if (StringUtil.isNullOrEmpty(goods.getCouponInfo())) {
             commentText = commentText.replace("棰嗗埜鎶㈣喘", "鎶㈣喘");
             commentText = commentText.replace("銆愬埜鍚庝环銆慬鍒稿悗浠穄鍏�", "");
         } else {
-            commentText = commentText.replace("[鍒稿悗浠穄", TaoBaoUtil.getAfterUseCouplePrice(goods) + "");
+            commentText = commentText.replace("[鍒稿悗浠穄", TaoBaoUtil.getCouponPrice(goods) + "");
         }
 
         commentText = commentText.replace("\r\n\r\n", "\r\n").replace("\r\n\r\n", "\r\n").replace("\r\n\r\n", "\r\n");
@@ -272,7 +311,7 @@
      * @param request
      * @param out
      */
-    public void createTaoBaoShare(AcceptData acceptData, Long uid, Long goodsId, Integer totalNum, String source,
+    public void createTaoBaoShare(AcceptData acceptData, Long uid, String goodsId, Integer totalNum, String source,
                                   Boolean needGoods, HttpServletRequest request, PrintWriter out) {
         if (needGoods == null)
             needGoods = false;
@@ -319,7 +358,7 @@
      * @param request
      * @param out
      */
-    public void createTaoLijin(Long uid, Long auctionId, int totalNum, String relationId, AcceptData acceptData, HttpServletRequest request,
+    public void createTaoLijin(Long uid, String auctionId, int totalNum, String relationId, AcceptData acceptData, HttpServletRequest request,
                                PrintWriter out) {
         try {
             TaoBaoGoodsBrief goods = null;
@@ -414,7 +453,7 @@
                         .replace("{鍟嗗搧鍘熶环}", MoneyBigDecimalUtil.getWithNoZera(goods.getZkPrice()) + "")
                         .replace("{浼樻儬鍒搁潰棰潁", MoneyBigDecimalUtil.getWithNoZera(goods.getCouponAmount()).toString())
                         .replace("{娣樼ぜ閲戦潰棰潁", MoneyBigDecimalUtil.getWithNoZera(spreadMoney).toString())
-                        .replace("{浼樻儬鍒镐环}", TaoBaoUtil.getAfterUseCouplePrice(goods) + "");
+                        .replace("{浼樻儬鍒镐环}", TaoBaoUtil.getCouponPrice(goods) + "");
             }
 
             shareText = shareText.replace("{搴楅摵绫诲瀷}", shopType)
@@ -490,17 +529,17 @@
         }
     }
 
-    public void createCommonTaoBaoShare(String platform, String version, Long goodsId, String inviteCode, Long uid,
+    public void createCommonTaoBaoShare(String platform, String version, String goodsId, String inviteCode, Long uid,
                                         boolean needGoods, String relationId, AcceptData acceptData, PrintWriter out) {
 
         SystemEnum system = SystemInfoUtil.getSystem(acceptData);
         try {
             ShareInfoVO shareInfo = new ShareInfoVO();
 
-            TaoBaoLink taoBaoLink = taoBaoLinkManager.getTaoBaoLinkForShare(uid, goodsId, relationId, null);
+            TaoBaoLink taoBaoLink = taoBaoLinkManager.getTaoBaoLinkForShare(acceptData.getSystem(), uid, goodsId, relationId, null);
 
             if (taoBaoLink != null && taoBaoLink.getGoods() != null && needGoods) {
-                ConfigParamsDTO dto = orderHongBaoMoneyComputeService.getShowComputeRate(platform, version, acceptData.getSystem());
+                GoodsMoneyConfigParamsDTO dto = orderHongBaoMoneyComputeService.getShowComputeRate(platform, version, acceptData.getSystem());
                 GoodsDetailVO goodsInfo = GoodsDetailVOFactory.convertTaoBao(taoBaoLink.getGoods(), dto);
                 shareInfo.setGoodsInfo(goodsInfo);
             }
@@ -645,7 +684,7 @@
                     commentText = commentText.replace("銆愬埜鍚庝环銆慬鍒稿悗浠穄鍏�", "");
                 } else {
                     commentText = commentText.replace("[鍒稿悗浠穄",
-                            TaoBaoUtil.getAfterUseCouplePrice(taoBaoLink.getGoods()) + "");
+                            TaoBaoUtil.getCouponPrice(taoBaoLink.getGoods()) + "");
                 }
 
                 if (StringUtil.isNullOrEmpty(taoBaoLink.getGoods().getCouponInfo())) {
@@ -734,9 +773,19 @@
             couponUrl = couponInfo.getLink();
         }
         String materialId = "https://item.jd.com/" + goodsId + ".html";
-        String jumpLink = JDApiUtil.convertLinkWithSubUnionId(materialId, couponUrl, null, JDApiUtil.POSITION_SHARE + "", uid + "");
+        String pid = pidManager.getPidCache(acceptData.getSystem(), Constant.SOURCE_TYPE_JD, SystemPIDInfo.PidType.share);
+        String jumpLink = null;
+        try {
+            jumpLink = JDApiUtil.convertLinkWithSubUnionId(materialId, couponUrl, null, pid, uid + "");
+        } catch (Exception e) {
+            logger.warn(String.format("浜笢杞摼鍑洪敊锛歮aterialId-%s  couponUrl-%s", materialId, couponUrl), e);
+        }
         if (StringUtil.isNullOrEmpty(jumpLink)) {
-            jumpLink = JDApiUtil.convertLinkWithSubUnionId(materialId, null, null, JDApiUtil.POSITION_SHARE + "", uid + "");
+            try {
+                jumpLink = JDApiUtil.convertLinkWithSubUnionId(materialId, null, null, pid, uid + "");
+            } catch (Exception e) {
+                logger.warn(String.format("浜笢杞摼鍑洪敊锛歮aterialId-%s  couponUrl-%s", materialId, couponUrl), e);
+            }
         }
 
         ShareInfoVO shareInfo = new ShareInfoVO();
@@ -783,7 +832,7 @@
         BigDecimal shareMoney = JDUtil.getGoodsFanLiMoney(jdGoods, shareRate);
         shareInfo.setShareMoney("楼" + shareMoney.toString());
         try {
-            ShareGoodsRecordDTO shareRecord = userShareGoodsRecordService.addRecordGoodsDetail(uid, goodsId,
+            ShareGoodsRecordDTO shareRecord = userShareGoodsRecordService.addRecordGoodsDetail(uid, goodsId+"",
                     Constant.SOURCE_TYPE_JD, false);
             shareInfo.setShareId(shareRecord.getRedisKey());
         } catch (Exception e) {
@@ -825,7 +874,7 @@
                 recommendText = recommendText.replace("[鍒搁潰棰漖",
                         BigDecimalUtil.getWithNoZera(couponInfo.getDiscount()).toString());
                 commentText = commentText.replace("[鍒稿悗浠穄",
-                        BigDecimalUtil.getWithNoZera(JDUtil.getQuanPrice(jdGoods)).toString());
+                        BigDecimalUtil.getWithNoZera(JDUtil.getCouponPrice(jdGoods)).toString());
             }
             commentText = commentText.replace("[閾炬帴]", jumpLink);
         } else {
@@ -859,7 +908,7 @@
                 history.setTkCode(null);
                 history.setLink(null);
                 history.setQuanLink(null);
-                history.setGoodsId(goodsId);
+                history.setGoodsId(goodsId+"");
                 history.setPostPicture(goods.getPicUrl());
                 history.setShareImg(jumpLinkNew);
 
@@ -891,9 +940,17 @@
 
         //鏌ヨ褰撳墠鐢ㄦ埛鏄惁鎺堟潈
 
+        String pid = pidManager.getPidCache(acceptData.getSystem(), Constant.SOURCE_TYPE_PDD, SystemPIDInfo.PidType.share);
+
         if (VersionUtil.greaterThan_2_1_5(acceptData.getPlatform(), acceptData.getVersion())) {
-            if (!PinDuoDuoApiUtil.isAuth(PinDuoDuoApiUtil.PID_SHARE, PinDuoDuoUtil.getCustomParams(uid))) {
-                JsonUtil.loadFalseResult(20001, "灏氭湭澶囨,璇峰厛澶囨");
+            if (!PinDuoDuoApiUtil.isAuth(pid, pddAuthService.getFanliCustomParams(uid))) {
+                out.print(JsonUtil.loadFalseResult(20001, "灏氭湭澶囨,璇峰厛澶囨"));
+                return;
+            }
+        } else {
+            if (System.currentTimeMillis() > TimeUtil.convertToTimeTemp("2021-05-01", "yyyy-MM-dd") && !PinDuoDuoApiUtil.isAuth(pid, pddAuthService.getFanliCustomParams(uid))) {
+                out.print(JsonUtil.loadFalseResult(20001, "璇峰崌绾у埌鏈�鏂扮増"));
+                return;
             }
         }
 
@@ -910,7 +967,7 @@
         // AESUtil.encrypt(uid + "", Constant.UIDAESKEY),
         // goodsId + "");
 
-        String jumpLink = PinDuoDuoApiUtil.getPromotionUrl(goods.getGoodsSign(), PinDuoDuoApiUtil.PID_SHARE + "", uid + "");
+        String jumpLink = PinDuoDuoApiUtil.getPromotionUrl(goods.getGoodsSign(), pid, pddAuthService.getFanliCustomParams(uid) + "");
 
         SystemEnum system = SystemInfoUtil.getSystem(acceptData);
 
@@ -923,7 +980,7 @@
         if (needGoods) {
             shareInfo
                     .setGoodsInfo(GoodsDetailVOFactory.convertPDDGoods(goods,
-                            new ConfigParamsDTO(hongBaoManageService.getFanLiRate(acceptData.getSystem()),
+                            new GoodsMoneyConfigParamsDTO(hongBaoManageService.getFanLiRate(acceptData.getSystem()),
                                     hongBaoManageService.getShareRate(acceptData.getSystem()), Constant.MAX_REWARD_RATE,
                                     hongBaoManageService.getFanLiRate(UserLevelEnum.superVIP, acceptData.getSystem()))));
         }
@@ -965,7 +1022,7 @@
         shareInfo.setShareMoney("楼" + shareMoney.toString());
 
         try {
-            ShareGoodsRecordDTO shareRecord = userShareGoodsRecordService.addRecordGoodsDetail(uid, goodsId,
+            ShareGoodsRecordDTO shareRecord = userShareGoodsRecordService.addRecordGoodsDetail(uid, goodsId+"",
                     Constant.SOURCE_TYPE_PDD, false);
             shareInfo.setShareId(shareRecord.getRedisKey());
         } catch (Exception e) {
@@ -1007,7 +1064,7 @@
                 recommendText = recommendText.replace("浼樻儬鍒�:[鍒搁潰棰漖鍏�", "");
             } else {
                 commentText = commentText.replace("[鍒稿悗浠穄",
-                        BigDecimalUtil.getWithNoZera(PinDuoDuoUtil.getQuanPrice(goods)).toString());
+                        BigDecimalUtil.getWithNoZera(PinDuoDuoUtil.getCouponPrice(goods)).toString());
 
                 BigDecimal hundred = new BigDecimal(100);
                 BigDecimal amount = MoneyBigDecimalUtil.div(new BigDecimal(goods.getCouponDiscount()), hundred);
@@ -1040,7 +1097,7 @@
                 history.setTkCode(null);
                 history.setLink(null);
                 history.setQuanLink(null);
-                history.setGoodsId(goodsId);
+                history.setGoodsId(goodsId+"");
                 history.setPostPicture(goods.getGoodsImageUrl());
                 history.setShareImg(jumpLink);
                 List<String> imgList = null;
@@ -1091,7 +1148,7 @@
         if (needGoods) {
             shareInfo
                     .setGoodsInfo(GoodsDetailVOFactory.convertVIPGoods(goods,
-                            new ConfigParamsDTO(hongBaoManageService.getFanLiRate(acceptData.getSystem()),
+                            new GoodsMoneyConfigParamsDTO(hongBaoManageService.getFanLiRate(acceptData.getSystem()),
                                     hongBaoManageService.getShareRate(acceptData.getSystem()), Constant.MAX_REWARD_RATE,
                                     hongBaoManageService.getFanLiRate(UserLevelEnum.superVIP, acceptData.getSystem()))));
         }
@@ -1120,7 +1177,7 @@
         shareInfo.setShareMoney("楼" + shareMoney.toString());
 
         try {
-            ShareGoodsRecordDTO shareRecord = userShareGoodsRecordService.addRecordGoodsDetail(uid, goodsId,
+            ShareGoodsRecordDTO shareRecord = userShareGoodsRecordService.addRecordGoodsDetail(uid, goodsId+"",
                     Constant.SOURCE_TYPE_VIP, false);
             shareInfo.setShareId(shareRecord.getRedisKey());
         } catch (Exception e) {
@@ -1169,7 +1226,7 @@
                 history.setTkCode(null);
                 history.setLink(null);
                 history.setQuanLink(null);
-                history.setGoodsId(goodsId);
+                history.setGoodsId(goodsId+"");
                 history.setPostPicture(goods.getGoodsThumbUrl());
                 history.setShareImg(jumpLink.getUrl());
                 List<String> imgList = goods.getGoodsDetailPictures();
@@ -1214,7 +1271,7 @@
         String couponLink = goods.getCouponInfo().getCouponUrl();
 
         String jumpLink = SuningApiUtil.convertLink(SuningUtil.getProductUrl(sts[0], sts[1]),
-                StringUtil.isNullOrEmpty(couponLink) ? null : couponLink, SuningApiUtil.PID_SHARE, uid + "");
+                StringUtil.isNullOrEmpty(couponLink) ? null : couponLink, pidManager.getPidCache(acceptData.getSystem(), Constant.SOURCE_TYPE_SUNING, SystemPIDInfo.PidType.share), uid + "");
 
         ShareInfoVO shareInfo = new ShareInfoVO();
         shareInfo.setClickUrl(jumpLink);
@@ -1226,7 +1283,7 @@
         if (needGoods) {
             shareInfo
                     .setGoodsInfo(GoodsDetailVOFactory.convertSuningGoods(goods,
-                            new ConfigParamsDTO(hongBaoManageService.getFanLiRate(acceptData.getSystem()),
+                            new GoodsMoneyConfigParamsDTO(hongBaoManageService.getFanLiRate(acceptData.getSystem()),
                                     hongBaoManageService.getShareRate(acceptData.getSystem()), Constant.MAX_REWARD_RATE,
                                     hongBaoManageService.getFanLiRate(UserLevelEnum.superVIP, acceptData.getSystem()))));
         }
@@ -1264,7 +1321,7 @@
 
         try {
             ShareGoodsRecordDTO shareRecord = userShareGoodsRecordService.addRecordGoodsDetail(uid,
-                    Long.parseLong(sts[1]), Constant.SOURCE_TYPE_SUNING, false);
+                    Long.parseLong(sts[1])+"", Constant.SOURCE_TYPE_SUNING, false);
             shareInfo.setShareId(shareRecord.getRedisKey());
         } catch (Exception e) {
             try {
@@ -1350,7 +1407,7 @@
                 history.setTkCode(null);
                 history.setLink(null);
                 history.setQuanLink(null);
-                history.setGoodsId(Long.parseLong(sts[1]));
+                history.setGoodsId(Long.parseLong(sts[1])+"");
                 if (goods.getCommodityInfo().getPictureUrl() != null
                         && goods.getCommodityInfo().getPictureUrl().size() > 0)
                     history.setPostPicture(goods.getCommodityInfo().getPictureUrl().get(0).getPicUrl());
@@ -1391,17 +1448,17 @@
         }
 
         if (goodsType == Constant.SOURCE_TYPE_TAOBAO) {
-            createTaoBaoViewText(goodsType, uid, template, Long.parseLong(goodsId), tljId, hasCoupon, out);
+            createTaoBaoViewText(acceptData.getSystem(), goodsType, uid, template, goodsId, tljId, hasCoupon, out);
             return;
         }
 
         if (goodsType == Constant.SOURCE_TYPE_JD) {
-            createJDViewText(goodsType, uid, template, Long.parseLong(goodsId), hasCoupon, out);
+            createJDViewText(acceptData.getSystem(), goodsType, uid, template, Long.parseLong(goodsId), hasCoupon, out);
             return;
         }
 
         if (goodsType == Constant.SOURCE_TYPE_PDD) {
-            createPDDViewText(goodsType, uid, template, Long.parseLong(goodsId), hasCoupon, out);
+            createPDDViewText(acceptData.getSystem(), goodsType, uid, template, Long.parseLong(goodsId), hasCoupon, out);
             return;
         }
 
@@ -1411,7 +1468,7 @@
         }
 
         if (goodsType == Constant.SOURCE_TYPE_SUNING) {
-            createSuNingViewText(goodsType, uid, template, goodsId, hasCoupon, out);
+            createSuNingViewText(acceptData.getSystem(), goodsType, uid, template, goodsId, hasCoupon, out);
             return;
         }
     }
@@ -1427,7 +1484,7 @@
      * @param hasCoupon
      * @param out
      */
-    private void createTaoBaoViewText(Integer goodsType, Long uid, String template, Long goodsId, Long tljId,
+    private void createTaoBaoViewText(SystemEnum system, Integer goodsType, Long uid, String template, String goodsId, Long tljId,
                                       Boolean hasCoupon, PrintWriter out) {
         TaoBaoGoodsBrief goods = taoBaoGoodsCacheUtil.getCommonTaoBaoGoodsInfo(goodsId);
         if (goods == null)
@@ -1462,11 +1519,12 @@
         }
 
         if (StringUtil.isNullOrEmpty(token)) {
+            String pid = pidManager.getPidCache(system, Constant.SOURCE_TYPE_TAOBAO, SystemPIDInfo.PidType.share);
             TaoKeAppInfo app = new TaoKeAppInfo();
-            app.setAdzoneId(TaoBaoConstant.TAOBAO_RELATION_PID_DEFAULT.split("_")[3]);
+            app.setAdzoneId(pid.split("_")[3]);
             app.setAppKey(TaoBaoConstant.TAOBAO_AUTH_APPKEY);
             app.setAppSecret(TaoBaoConstant.TAOBAO_AUTH_APPSECRET);
-            app.setPid(TaoBaoConstant.TAOBAO_RELATION_PID_DEFAULT);
+            app.setPid(pid);
             TaoBaoGoodsBrief goodsLink = TaoKeApiUtil.specialConvertCoupon(goods.getAuctionId(), app, null, null);
             if (goodsLink != null)
                 token = TaoKeApiUtil.getTKToken(goods.getPictUrl(), goods.getTitle(),
@@ -1489,7 +1547,7 @@
      * @param hasCoupon
      * @param out
      */
-    private void createJDViewText(Integer goodsType, Long uid, String template, Long goodsId, Boolean hasCoupon,
+    private void createJDViewText(SystemEnum system, Integer goodsType, Long uid, String template, Long goodsId, Boolean hasCoupon,
                                   PrintWriter out) {
         JDGoods goods = jdGoodsCacheUtil.getGoodsInfo(goodsId);
         if (goods == null) {
@@ -1515,8 +1573,13 @@
             couponUrl = couponInfo.getLink();
         }
         String materialId = "https://item.jd.com/" + goodsId + ".html";
-        String shortLink = JDApiUtil.convertLinkWithSubUnionId(materialId, couponUrl, null, JDApiUtil.POSITION_SHARE + "",
-                uid + "");
+        String shortLink = null;
+        try {
+            shortLink = JDApiUtil.convertLinkWithSubUnionId(materialId, couponUrl, null, pidManager.getPidCache(system, Constant.SOURCE_TYPE_JD, SystemPIDInfo.PidType.share),
+                    uid + "");
+        } catch (Exception e) {
+            logger.warn(String.format("浜笢杞摼鍑洪敊锛歮aterialId-%s  couponUrl-%s", materialId, couponUrl), e);
+        }
 
         String content = shareGoodsTextTemplateService.createContentJD(template, goods, shortLink, hasCoupon);
         JSONObject data = new JSONObject();
@@ -1534,7 +1597,7 @@
      * @param hasCoupon
      * @param out
      */
-    private void createPDDViewText(Integer goodsType, Long uid, String template, Long goodsId, Boolean hasCoupon,
+    private void createPDDViewText(SystemEnum system, Integer goodsType, Long uid, String template, Long goodsId, Boolean hasCoupon,
                                    PrintWriter out) {
         PDDGoodsDetail goods = pinDuoDuoCacheUtil.getGoodsInfo(goodsId);
         if (goods == null) {
@@ -1562,7 +1625,7 @@
         // goodsId + "");
         // String shortLink = HttpUtil.getShortLink(url);
 
-        String shortLink = PinDuoDuoApiUtil.getPromotionUrl(goods.getGoodsSign(), PinDuoDuoApiUtil.PID_SHARE + "", uid + "");
+        String shortLink = PinDuoDuoApiUtil.getPromotionUrl(goods.getGoodsSign(), pidManager.getPidCache(system, Constant.SOURCE_TYPE_PDD, SystemPIDInfo.PidType.share), uid + "");
 
         // // 鍒涘缓鍙d护
         // String token = PinDuoDuoApiUtil.createGenerate(goodsId);
@@ -1616,7 +1679,7 @@
     }
 
 
-    private void createSuNingViewText(Integer goodsType, Long uid, String template, String goodsId, Boolean hasCoupon,
+    private void createSuNingViewText(SystemEnum system, Integer goodsType, Long uid, String template, String goodsId, Boolean hasCoupon,
                                       PrintWriter out) {
         String[] ids = SuningUtil.getGoodsIdDetail(goodsId);
         SuningGoodsInfo goods = SuningApiUtil.getGoodsDetail(ids[1], ids[0]);
@@ -1639,7 +1702,7 @@
 
         String couponLink = goods.getCouponInfo().getCouponUrl();
         String jumpLink = SuningApiUtil.convertLink(SuningUtil.getProductUrl(ids[0], ids[1]),
-                StringUtil.isNullOrEmpty(couponLink) ? null : couponLink, SuningApiUtil.PID_SHARE, uid + "");
+                StringUtil.isNullOrEmpty(couponLink) ? null : couponLink, pidManager.getPidCache(system, Constant.SOURCE_TYPE_SUNING, SystemPIDInfo.PidType.share), uid + "");
 
         // 鐢熸垚鏅�氬垎浜唴瀹�
         String content = shareGoodsTextTemplateService.createCommonShareTextSuNing(template, goods, jumpLink);
@@ -1830,7 +1893,7 @@
 
         // API缃戠粶鎺ュ彛楠岃瘉鏄惁鍦ㄥ敭
         List<TaoBaoGoodsBrief> listTaoKeGoods = null;
-        List<Long> listGid = new ArrayList<Long>();
+        List<String> listGid = new ArrayList<>();
         for (UserShareGoodsGroup goodsGroup : list) {
             CommonGoods commonGoods = goodsGroup.getCommonGoods();
             Integer goodsType = commonGoods.getGoodsType();
@@ -1852,7 +1915,7 @@
             }
         }
 
-        ConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate(acceptData.getPlatform(),
+        GoodsMoneyConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate(acceptData.getPlatform(),
                 acceptData.getVersion(), acceptData.getSystem());
 
         Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder())
@@ -1869,10 +1932,10 @@
             if (listTaoKeGoods != null && listTaoKeGoods.size() > 0 && goodsType != null
                     && goodsType == Constant.SOURCE_TYPE_TAOBAO) {
                 int state = 1; // 榛樿鍋滃敭
-                Long goodsId = commonGoods.getGoodsId();
+                String goodsId = commonGoods.getGoodsId();
                 for (TaoBaoGoodsBrief taoKeGoods : listTaoKeGoods) {
-                    Long auctionId = taoKeGoods.getAuctionId();
-                    if (goodsId == auctionId || goodsId.equals(auctionId)) {
+                    String auctionId = taoKeGoods.getAuctionId();
+                    if (TaoBaoUtil.isEqual(goodsId , auctionId)) {
                         state = 0; // 鍦ㄥ敭
                         break;
                     }
@@ -1894,6 +1957,7 @@
             dataObject.put("totalMoney", "楼" + goodsGroup.getTotalMoney());
 
             GoodsDetailVO detailVO = GoodsDetailVOFactory.convertCommonGoods(commonGoods, paramsDTO);
+            detailVO.setCreatetime(null);
             detailVO.setId(commonGoods.getId());
             dataObject.put("goods", gson.toJson(detailVO));
             array.add(dataObject);
@@ -1924,15 +1988,15 @@
         }
 
         GoodsDetailVO goodsDetail = null;
-        ConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate(acceptData.getPlatform(),
+        GoodsMoneyConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate(acceptData.getPlatform(),
                 acceptData.getVersion(), acceptData.getSystem());
         paramsDTO.setBaseFanliRate(hongBaoManageService.getBaseFanliRate(acceptData.getSystem()));
 
         if (goodsType == Constant.SOURCE_TYPE_TAOBAO) {
-            TaoBaoGoodsBrief goods = taoBaoGoodsCacheUtil.getCommonTaoBaoGoodsInfo(Long.parseLong(goodsId));
+            TaoBaoGoodsBrief goods = taoBaoGoodsCacheUtil.getCommonTaoBaoGoodsInfo(goodsId);
             if (goods == null) {
                 try {
-                    goods = redisManager.getTaoBaoGoodsBrief(Long.parseLong(goodsId));
+                    goods = redisManager.getTaoBaoGoodsBrief(goodsId);
                 } catch (TaobaoGoodsDownException e) {
                     goods = null;
                 }

--
Gitblit v1.8.0