From bc9d4bf3fddcb3107f8509159a250f7a5a5f8ae5 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期五, 11 六月 2021 17:13:01 +0800
Subject: [PATCH] 特价bug修复

---
 fanli/src/main/java/com/yeshi/fanli/controller/client/v2/DynamicControllerV2.java |  156 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 156 insertions(+), 0 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 bdcaa80..8d9f846 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,19 +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;
@@ -146,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
@@ -823,6 +861,124 @@
 
     }
 
+
+    /**
+     * 杞摼
+     *
+     * @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(), 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, 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(), 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));
+    }
+
     /**
      * @param acceptData
      * @param uid

--
Gitblit v1.8.0