From 8ce7c720e4e7a604b0ff770349b5556f39d37759 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期一, 13 九月 2021 11:44:38 +0800
Subject: [PATCH] 好省呗应用兼容

---
 fanli/src/main/java/com/yeshi/fanli/controller/client/v2/DynamicControllerV2.java |  176 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 174 insertions(+), 2 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/DynamicControllerV2.java b/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/DynamicControllerV2.java
index b5cac21..9e367ba 100644
--- a/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/DynamicControllerV2.java
+++ b/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/DynamicControllerV2.java
@@ -13,18 +13,39 @@
 import java.util.List;
 import java.util.Map;
 import java.util.UUID;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
 
 import javax.annotation.Resource;
 
+import com.ks.lib.common.exception.ParamsException;
 import com.yeshi.fanli.dto.pdd.PDDGoodsDetail;
 import com.yeshi.fanli.entity.SystemEnum;
 import com.yeshi.fanli.entity.SystemFunction;
 import com.yeshi.fanli.entity.SystemPIDInfo;
+import com.yeshi.fanli.exception.pdd.PDDAuthException;
+import com.yeshi.fanli.exception.pdd.PDDGoodsException;
 import com.yeshi.fanli.exception.taobao.TaoBaoConvertLinkException;
+import com.yeshi.fanli.exception.taobao.TaoBaoTokenParseException;
+import com.yeshi.fanli.service.inter.pdd.PDDAuthService;
+import com.yeshi.fanli.service.manger.ClipboardContentType;
 import com.yeshi.fanli.service.manger.PIDManager;
 import com.yeshi.fanli.service.manger.goods.TaoBaoLinkManager;
+import com.yeshi.fanli.service.manger.goods.jd.JDConvertLinkManager;
+import com.yeshi.fanli.service.manger.goods.pdd.PDDConvertLinkManager;
+import com.yeshi.fanli.service.manger.goods.suning.SuningConvertLinkManager;
+import com.yeshi.fanli.service.manger.goods.tb.TBConvertLinkManager;
+import com.yeshi.fanli.service.manger.goods.vipshop.VipShopConvertLinkManager;
 import com.yeshi.fanli.util.*;
 import com.yeshi.fanli.util.StringUtil;
+import com.yeshi.fanli.util.exception.ExceptionConstant;
+import com.yeshi.fanli.util.goods.GoodsJumpUtil;
+import com.yeshi.fanli.util.goods.GoodsTextUtil;
+import com.yeshi.fanli.util.suning.SuningUtil;
+import com.yeshi.fanli.util.taobao.TaoKeApiUtil;
+import com.yeshi.fanli.util.vipshop.VipShopUtil;
+import com.yeshi.fanli.vo.goods.ConvertLinkJumpVO;
+import com.yeshi.fanli.vo.pdd.PDDConvertLinkResultVO;
 import org.apache.commons.beanutils.PropertyUtils;
 import org.springframework.core.task.TaskExecutor;
 import org.springframework.stereotype.Controller;
@@ -145,10 +166,28 @@
     private ConvertLinkManager convertLinkManager;
 
     @Resource
+    private TBConvertLinkManager tbConvertLinkManager;
+
+    @Resource
+    private JDConvertLinkManager jdConvertLinkManager;
+
+    @Resource
+    private PDDConvertLinkManager pddConvertLinkManager;
+
+    @Resource
+    private SuningConvertLinkManager suningConvertLinkManager;
+
+    @Resource
+    private VipShopConvertLinkManager vipShopConvertLinkManager;
+
+    @Resource
     private DailyCountMomentsService dailyCountMomentsService;
 
     @Resource
     private CommonShareInfoService commonShareInfoService;
+
+    @Resource
+    private PDDAuthService pddAuthService;
 
 
     @Resource
@@ -643,6 +682,9 @@
                 }
 
                 for (GoodsEvaluate goodsEvaluate : list) {
+                    if (goodsEvaluate.getGoods() != null) {
+                        goodsEvaluate.getGoods().setCreatetime(null);
+                    }
                     GoodsEvaluate evaluateNew = new GoodsEvaluate();
                     try {
                         PropertyUtils.copyProperties(evaluateNew, goodsEvaluate);
@@ -678,7 +720,7 @@
 
                         for (ImgInfo imgInfo : goodsEvaluate.getImgList()) {
 
-                            if (acceptData.getSystem() == SystemEnum.yhqjx) {
+                            if (acceptData.getSystem() == SystemEnum.yhqjx||acceptData.getSystem() == SystemEnum.hsb) {
                                 imgInfo.setGoods(null);
                                 imgInfo.setGoodsVO(null);
                             }
@@ -820,6 +862,124 @@
             LogHelper.errorDetailInfo(e);
         }
 
+    }
+
+
+    /**
+     * 杞摼
+     *
+     * @param acceptData
+     * @param uid
+     * @param link
+     * @param out
+     */
+    @RequestMapping(value = "convertLink", method = RequestMethod.POST)
+    public void convertLink(AcceptData acceptData, Long uid, String link, PrintWriter out) {
+        if (StringUtil.isNullOrEmpty(link)) {
+            out.print(JsonUtil.loadFalseResult("閾炬帴涓虹┖"));
+            return;
+        }
+
+        ConvertLinkJumpVO convertLinkJumpVO = null;
+        //鍒ゆ柇result鏄惁涓烘窐鍙d护
+        List<String> urlList = UrlUtils.parseUrlsFromText(link);
+        if (urlList.size() > 0) {
+            //鍙鐞嗕含涓�/鎷煎澶氶摼鎺�
+            String url = urlList.get(0);
+            if (JDUtil.isJDLink(url)) {
+                try {
+                    url = jdConvertLinkManager.convertShortUrl(url, uid, acceptData.getSystem(), uid == null ? SystemPIDInfo.PidType.coupon : SystemPIDInfo.PidType.fanli);
+                } catch (ParamsException e) {
+                    e.printStackTrace();
+                }
+                convertLinkJumpVO = new ConvertLinkJumpVO(GoodsJumpUtil.getJDJumpInfo(url), Constant.SOURCE_TYPE_JD);
+                outPrintConvertResult(convertLinkJumpVO, out);
+                return;
+            }
+
+            if (PinDuoDuoUtil.isPDDLink(url)) {
+                String pddGoodsId = PinDuoDuoUtil.getPDDGoodsId(url);
+                String customParams = pddAuthService.getFanliCustomParams(uid);
+                PDDConvertLinkResultVO convertLinkResult = null;
+                try {
+                    convertLinkResult = pddConvertLinkManager.convertGoods(Long.parseLong(pddGoodsId), acceptData.getSystem(), customParams, uid == null ? SystemPIDInfo.PidType.coupon : SystemPIDInfo.PidType.fanli);
+                    convertLinkJumpVO = new ConvertLinkJumpVO(GoodsJumpUtil.getPDDJumpInfo(convertLinkResult), Constant.SOURCE_TYPE_PDD);
+                    outPrintConvertResult(convertLinkJumpVO, out);
+                    return;
+                } catch (PDDGoodsException e) {
+                    e.printStackTrace();
+                    //鍟嗗搧涓嬬嚎
+                    out.print(JsonUtil.loadFalseResult(ExceptionConstant.CODE_GOODS_OFFLINE, "鍟嗗搧宸蹭笅绾�"));
+                    return;
+                } catch (PDDAuthException e) {
+                    e.printStackTrace();
+                    //鎷煎澶氭湭鎺堟潈
+                    out.print(JsonUtil.loadFalseResult(ExceptionConstant.CODE_AUTH_PDD_NO_AUTH, "鎷煎澶氬皻鏈巿鏉冿紝璇锋巿鏉�"));
+                    return;
+                }
+            }
+
+
+            return;
+        }
+
+        List<String> tokenList = TaoBaoUtil.getTokenListFromTextWithKuoHao(link);
+        if (tokenList.size() > 0) {
+            //杩樺師鍙d护
+            try {
+                TaoKeApiUtil.TokenConvertResult convertResult = TaoKeApiUtil.tokenConvert(tokenList.get(0));
+                if (convertResult != null) {
+                    String originUrl = convertResult.getOrigin_url();
+                    long goodsId = convertResult.getNum_iid();
+                    TaoBaoLink taoBaoLink = tbConvertLinkManager.convertGoods(goodsId, uid, acceptData.getSystem(), uid == null ? SystemPIDInfo.PidType.coupon : SystemPIDInfo.PidType.fanli);
+                    convertLinkJumpVO = new ConvertLinkJumpVO(GoodsJumpUtil.getTBJumpInfo(taoBaoLink), Constant.SOURCE_TYPE_TAOBAO);
+                    outPrintConvertResult(convertLinkJumpVO, out);
+                    return;
+                } else {
+                    throw new Exception("杞摼澶辫触");
+                }
+            } catch (Exception e) {
+                e.printStackTrace();
+                //杈撳嚭鍘熸潵鐨勬窐鍙d护
+                JSONObject root = new JSONObject();
+                root.put("data", new Gson().toJson(new ConvertLinkJumpVO(null, Constant.SOURCE_TYPE_TAOBAO)));
+                root.put("code", ExceptionConstant.CODE_JUMP_NO_SUPPORT);
+                out.print(root.toString());
+                return;
+            }
+
+        }
+        out.print(JsonUtil.loadFalseResult("涓嶆敮鎸佺殑绫诲瀷"));
+    }
+
+
+    private void outPrintConvertResult(ConvertLinkJumpVO vo, PrintWriter out) {
+        out.print(JsonUtil.loadTrueResult(new Gson().toJson(vo)));
+    }
+
+
+    /**
+     * 澶嶅埗鎺ㄨ崘璇�
+     *
+     * @param acceptData
+     * @param uid
+     * @param id
+     * @param type
+     * @param goodsId
+     * @param goodsType
+     * @param out
+     */
+    @RequestMapping(value = "evaluateCopyRecommend", method = RequestMethod.POST)
+    public void evaluateCopyRecommend(AcceptData acceptData, Long uid, String id, PrintWriter out) {
+        GoodsEvaluate goodsEvaluate = goodsEvaluateService.getById(id);
+        if (goodsEvaluate == null) {
+            out.print(JsonUtil.loadFalseResult("璇ュ唴瀹瑰凡涓嶅瓨鍦�"));
+            return;
+        }
+        JSONObject data = new JSONObject();
+        String result = GoodsTextUtil.decodeAppHtmlText(goodsEvaluate.getTitle());
+        data.put("content", result);
+        out.print(JsonUtil.loadTrueResult(data));
     }
 
     /**
@@ -1102,6 +1262,18 @@
         }
 
         String newText = text; // 闈為�氱敤鍒搁渶瑕侀獙璇�
+
+        //鐗逛环鍙渶瑕佸鍒舵枃瀛楋紝涓嶉渶瑕佽浆閾�
+        if (acceptData.getSystem() == SystemEnum.yhqjx||acceptData.getSystem() == SystemEnum.hsb) {
+            newText = GoodsTextUtil.decodeAppHtmlText(newText);
+            //鍙鍒舵枃瀛�
+            JSONObject data = new JSONObject();
+            data.put("text", newText);
+            out.print(JsonUtil.loadTrueResult(data));
+            return;
+        }
+
+
         if (comment != null && (comment.getNeedSpin() == null || comment.getNeedSpin())) {
             try {
                 newText = convertLinkManager.convertLinkFromText(acceptData.getSystem(), text, uid, true, true);
@@ -1258,7 +1430,7 @@
 
             int platformCode = Constant.getPlatformCode(acceptData.getPlatform());
             jumpDetail = jumpDetailV2Service.getByTypeCache("web", platformCode,
-                    Integer.parseInt(acceptData.getVersion()));
+                    Integer.parseInt(acceptData.getVersion()),acceptData.getSystem());
             JSONObject inner = new JSONObject();
             inner.put("url", jumpLink);
             params = inner.toString();

--
Gitblit v1.8.0