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/client/v2/DynamicControllerV2.java | 2942 +++++++++++++++++++++++++++++++---------------------------
 1 files changed, 1,558 insertions(+), 1,384 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 4a93d1d..27a49bf 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
@@ -1,39 +1,12 @@
 package com.yeshi.fanli.controller.client.v2;
 
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.PrintWriter;
-import java.lang.reflect.Type;
-import java.math.BigDecimal;
-import java.net.MalformedURLException;
-import java.util.ArrayList;
-import java.util.Calendar;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.UUID;
-
-import javax.annotation.Resource;
-
-import org.apache.commons.beanutils.PropertyUtils;
-import org.springframework.core.task.TaskExecutor;
-import org.springframework.stereotype.Controller;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-import org.yeshi.utils.HttpUtil;
-import org.yeshi.utils.JsonUtil;
-import org.yeshi.utils.QRCodeUtil;
-import org.yeshi.utils.entity.FileUploadResult;
-import org.yeshi.utils.tencentcloud.COSManager;
-
-import com.google.gson.Gson;
-import com.google.gson.GsonBuilder;
-import com.google.gson.JsonElement;
-import com.google.gson.JsonPrimitive;
-import com.google.gson.JsonSerializationContext;
-import com.google.gson.JsonSerializer;
+import com.google.gson.*;
+import com.yeshi.common.vo.ClientTextStyleVO;
 import com.yeshi.fanli.dto.jd.JDCouponInfo;
+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.entity.accept.AcceptData;
 import com.yeshi.fanli.entity.bus.clazz.GoodsClass;
 import com.yeshi.fanli.entity.bus.homemodule.CommonShareInfo;
@@ -53,9 +26,10 @@
 import com.yeshi.fanli.entity.jd.JDGoods;
 import com.yeshi.fanli.entity.system.ConfigKeyEnum;
 import com.yeshi.fanli.entity.taobao.TaoBaoLink;
-import com.yeshi.fanli.exception.goods.ConvertLinkExceptionException;
-import com.yeshi.fanli.exception.share.ShareGoodsException;
-import com.yeshi.fanli.exception.user.cloud.UserCloudException;
+import com.yeshi.fanli.exception.goods.ConvertLinkException;
+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.log.LogHelper;
 import com.yeshi.fanli.service.inter.common.JumpDetailV2Service;
 import com.yeshi.fanli.service.inter.config.ConfigService;
@@ -63,1566 +37,1766 @@
 import com.yeshi.fanli.service.inter.dynamic.ArticleOfficialService;
 import com.yeshi.fanli.service.inter.dynamic.DynamicInfoService;
 import com.yeshi.fanli.service.inter.dynamic.GoodsEvaluateService;
-import com.yeshi.fanli.service.inter.goods.ShareGoodsService;
-import com.yeshi.fanli.service.inter.goods.TaoBaoGoodsBriefService;
 import com.yeshi.fanli.service.inter.homemodule.CommonShareInfoService;
 import com.yeshi.fanli.service.inter.homemodule.SpecialService;
 import com.yeshi.fanli.service.inter.homemodule.SwiperPictureService;
-import com.yeshi.fanli.service.inter.order.config.HongBaoManageService;
+import com.yeshi.fanli.service.inter.pdd.PDDAuthService;
 import com.yeshi.fanli.service.inter.user.QrCodeService;
+import com.yeshi.fanli.service.inter.user.UserFunctionsLimitService;
 import com.yeshi.fanli.service.inter.user.UserInfoExtraService;
 import com.yeshi.fanli.service.inter.user.UserInfoService;
-import com.yeshi.fanli.service.inter.user.cloud.UserCloudService;
 import com.yeshi.fanli.service.inter.user.tb.UserExtraTaoBaoInfoService;
+import com.yeshi.fanli.service.manger.PIDManager;
 import com.yeshi.fanli.service.manger.goods.ConvertLinkManager;
-import com.yeshi.fanli.util.Constant;
-import com.yeshi.fanli.util.FilePathEnum;
-import com.yeshi.fanli.util.ImageUtil;
-import com.yeshi.fanli.util.MoneyBigDecimalUtil;
+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.tb.TBConvertLinkManager;
+import com.yeshi.fanli.util.*;
 import com.yeshi.fanli.util.StringUtil;
-import com.yeshi.fanli.util.TimeUtil;
-import com.yeshi.fanli.util.VersionUtil;
 import com.yeshi.fanli.util.cache.JDGoodsCacheUtil;
+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.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.DaTaoKeUtil;
 import com.yeshi.fanli.util.taobao.TaoBaoUtil;
+import com.yeshi.fanli.util.taobao.TaoKeApiUtil;
 import com.yeshi.fanli.vo.dynamic.ArticleVO;
+import com.yeshi.fanli.vo.goods.ConvertLinkJumpVO;
 import com.yeshi.fanli.vo.goods.GoodsDetailVO;
 import com.yeshi.fanli.vo.homemodule.BannerVO;
 import com.yeshi.fanli.vo.homemodule.SpecialVO;
-import com.yeshi.fanli.vo.msg.ClientTextStyleVO;
-
+import com.yeshi.fanli.vo.pdd.PDDConvertLinkResultVO;
 import net.sf.json.JSONArray;
 import net.sf.json.JSONObject;
+import org.apache.commons.beanutils.PropertyUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.core.task.TaskExecutor;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.yeshi.utils.*;
+import org.yeshi.utils.entity.FileUploadResult;
+import org.yeshi.utils.tencentcloud.COSManager;
+
+import javax.annotation.Resource;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.PrintWriter;
+import java.lang.reflect.Type;
+import java.math.BigDecimal;
+import java.net.MalformedURLException;
+import java.util.*;
 
 /**
  * 鍔ㄦ��
- * 
- * @author Administrator
  *
+ * @author Administrator
  */
 @Controller
 @RequestMapping("api/v2/dynamic")
 public class DynamicControllerV2 {
 
-	@Resource
-	private HongBaoManageService hongBaoManageService;
+    private Logger logger= LoggerFactory.getLogger(DynamicControllerV2.class);
 
-	@Resource
-	private TaoBaoGoodsBriefService taoBaoGoodsBriefService;
+    @Resource
+    private TaoBaoLinkManager taoBaoLinkManager;
 
-	@Resource
-	private JumpDetailV2Service jumpDetailV2Service;
+    @Resource
+    private JumpDetailV2Service jumpDetailV2Service;
 
-	@Resource
-	private DynamicInfoService dynamicInfoService;
+    @Resource
+    private DynamicInfoService dynamicInfoService;
 
-	@Resource
-	private SpecialService specialService;
+    @Resource
+    private SpecialService specialService;
 
-	@Resource
-	private ArticleOfficialService articleOfficialService;
+    @Resource
+    private ArticleOfficialService articleOfficialService;
 
-	@Resource
-	private SwiperPictureService swiperPictureService;
+    @Resource
+    private SwiperPictureService swiperPictureService;
 
-	@Resource
-	private ConfigService configService;
+    @Resource
+    private ConfigService configService;
 
-	@Resource
-	private GoodsEvaluateService goodsEvaluateService;
+    @Resource
+    private GoodsEvaluateService goodsEvaluateService;
 
-	@Resource
-	private UserInfoService userInfoService;
-	@Resource
-	private UserInfoExtraService userInfoExtraService;
+    @Resource
+    private UserInfoService userInfoService;
+    @Resource
+    private UserInfoExtraService userInfoExtraService;
 
-	@Resource
-	private UserExtraTaoBaoInfoService userExtraTaoBaoInfoService;
+    @Resource
+    private UserExtraTaoBaoInfoService userExtraTaoBaoInfoService;
 
-	@Resource
-	private JDGoodsCacheUtil jdGoodsCacheUtil;
+    @Resource
+    private JDGoodsCacheUtil jdGoodsCacheUtil;
 
-	@Resource
-	private QrCodeService qrCodeService;
+    @Resource
+    private QrCodeService qrCodeService;
 
-	@Resource
-	private ConvertLinkManager convertLinkManager;
+    @Resource
+    private ConvertLinkManager convertLinkManager;
 
-	@Resource
-	private ShareGoodsService shareGoodsService;
+    @Resource
+    private TBConvertLinkManager tbConvertLinkManager;
 
-	@Resource
-	private DailyCountMomentsService dailyCountMomentsService;
+    @Resource
+    private JDConvertLinkManager jdConvertLinkManager;
 
-	@Resource
-	private CommonShareInfoService commonShareInfoService;
+    @Resource
+    private PDDConvertLinkManager pddConvertLinkManager;
 
-	@Resource
-	private UserCloudService userCloudService;
+    @Resource
+    private DailyCountMomentsService dailyCountMomentsService;
 
-	@Resource(name = "taskExecutor")
-	private TaskExecutor executor;
+    @Resource
+    private CommonShareInfoService commonShareInfoService;
 
-	private final static long TYPE_REXIAO = 1;// 鐑攢
-	private final static long TYPE_TUIJIAN = 2;// 鎺ㄨ崘
-	private final static long TYPE_HAODIAN = 3;// 濂藉簵
-	private final static long TYPE_YAOQING = 4;// 閭�璇�
-	private final static long TYPE_HUODONG = 5;// 娲诲姩
-	private final static long TYPE_XUEYUAN = 6;// 瀛﹂櫌
-	private final static long TYPE_FAQUAN = 7;// 鍙戝湀
-	private final static long TYPE_SUCAI = 8;// 绱犳潗
+    @Resource
+    private PDDAuthService pddAuthService;
 
-	private static Map<Long, GoodsClass> classMap = null;
+    @Resource
+    private UserFunctionsLimitService userFunctionsLimitService;
 
-	private Map<Long, GoodsClass> getAllDynamicClass() {
-		if (classMap != null && classMap.size() > 0)
-			return classMap;
-		classMap = new HashMap<Long, GoodsClass>();
-		List<GoodsClass> listSub = new ArrayList<GoodsClass>();
-		listSub.add(new GoodsClass(0L, "浠婃棩鍗曞搧"));
-		listSub.addAll(DaTaoKeUtil.goodsClasses);
 
-		GoodsClass menu = new GoodsClass(TYPE_REXIAO, "鐑攢");
-		menu.setListSub(listSub);
-		classMap.put(TYPE_REXIAO, menu);
+    @Resource
+    private PIDManager pidManager;
 
-		menu = new GoodsClass(TYPE_TUIJIAN, "鎺ㄨ崘");
-		menu.setListSub(new ArrayList<GoodsClass>());
-		classMap.put(TYPE_TUIJIAN, menu);
+    @Resource(name = "taskExecutor")
+    private TaskExecutor executor;
 
-		menu = new GoodsClass(TYPE_HAODIAN, "濂藉簵");
-		menu.setListSub(new ArrayList<GoodsClass>());
-		classMap.put(TYPE_HAODIAN, menu);
+    private final static long TYPE_REXIAO = 1;// 鐑攢
+    private final static long TYPE_TUIJIAN = 2;// 鎺ㄨ崘
+    private final static long TYPE_HAODIAN = 3;// 濂藉簵
+    private final static long TYPE_YAOQING = 4;// 閭�璇�
+    private final static long TYPE_HUODONG = 5;// 娲诲姩
+    private final static long TYPE_XUEYUAN = 6;// 瀛﹂櫌
+    private final static long TYPE_FAQUAN = 7;// 鍙戝湀
+    private final static long TYPE_SUCAI = 8;// 绱犳潗
 
-		menu = new GoodsClass(TYPE_YAOQING, "閭�璇�");
-		menu.setListSub(new ArrayList<GoodsClass>());
-		classMap.put(TYPE_YAOQING, menu);
+    private static Map<Long, GoodsClass> classMap = null;
 
-		menu = new GoodsClass(TYPE_HUODONG, "娲诲姩");
-		List<GoodsClass> sub5 = new ArrayList<GoodsClass>();
-		sub5.add(new GoodsClass(0L, "鍏ㄩ儴"));
-		sub5.add(new GoodsClass(1L, "娣樺疂"));
-		sub5.add(new GoodsClass(2L, "浜笢"));
-		sub5.add(new GoodsClass(3L, "鎷煎澶�"));
-		menu.setListSub(sub5);
-		classMap.put(TYPE_HUODONG, menu);
+    private Map<Long, GoodsClass> getAllDynamicClass() {
+        if (classMap != null && classMap.size() > 0)
+            return classMap;
+        classMap = new HashMap<Long, GoodsClass>();
+        List<GoodsClass> listSub = new ArrayList<GoodsClass>();
+        listSub.add(new GoodsClass(0L, "浠婃棩鍗曞搧"));
+        listSub.addAll(DaTaoKeUtil.goodsClasses);
 
-		menu = new GoodsClass(TYPE_XUEYUAN, "瀛﹂櫌");
-		menu.setListSub(new ArrayList<GoodsClass>());
-		classMap.put(TYPE_XUEYUAN, menu);
+        GoodsClass menu = new GoodsClass(TYPE_REXIAO, "鐑攢");
+        menu.setListSub(listSub);
+        classMap.put(TYPE_REXIAO, menu);
 
-		menu = new GoodsClass(TYPE_FAQUAN, "鍙戝湀");
-		menu.setListSub(new ArrayList<GoodsClass>());
-		classMap.put(TYPE_FAQUAN, menu);
+        menu = new GoodsClass(TYPE_TUIJIAN, "鎺ㄨ崘");
+        menu.setListSub(new ArrayList<GoodsClass>());
+        classMap.put(TYPE_TUIJIAN, menu);
 
-		menu = new GoodsClass(TYPE_SUCAI, "绱犳潗");
-		menu.setListSub(new ArrayList<GoodsClass>());
-		classMap.put(TYPE_SUCAI, menu);
-		return classMap;
-	}
+        menu = new GoodsClass(TYPE_HAODIAN, "濂藉簵");
+        menu.setListSub(new ArrayList<GoodsClass>());
+        classMap.put(TYPE_HAODIAN, menu);
 
-	/**
-	 * 鏌ヨ椤堕儴鍒嗙被
-	 * 
-	 * @param acceptData
-	 * @param page
-	 * @param cid
-	 * @param out
-	 */
-	@RequestMapping(value = "getClass", method = RequestMethod.POST)
-	public void getClass(AcceptData acceptData, Long cid, PrintWriter out) {
-		// ios 鍙繑鍥炲瓙闆嗗垎绫�
-		if (cid != null) {
-			Map<Long, GoodsClass> map = getAllDynamicClass();
-			JSONObject data = new JSONObject();
-			data.put("list", JsonUtil.getApiCommonGson().toJson(map.get(cid).getListSub()));
-			out.print(JsonUtil.loadTrueResult(data));
-			return;
-		}
+        menu = new GoodsClass(TYPE_YAOQING, "閭�璇�");
+        menu.setListSub(new ArrayList<GoodsClass>());
+        classMap.put(TYPE_YAOQING, menu);
 
-		// Android 杩斿洖鍒嗙被浠ュ強椤堕儴鏁版嵁
-		List<GoodsClass> listSub = new ArrayList<GoodsClass>();
-		listSub.add(new GoodsClass(0L, "浠婃棩鍗曞搧"));
-		listSub.addAll(DaTaoKeUtil.goodsClasses);
+        menu = new GoodsClass(TYPE_HUODONG, "娲诲姩");
+        List<GoodsClass> sub5 = new ArrayList<GoodsClass>();
+        sub5.add(new GoodsClass(0L, "鍏ㄩ儴"));
+        sub5.add(new GoodsClass(1L, "娣樺疂"));
+        sub5.add(new GoodsClass(2L, "浜笢"));
+        sub5.add(new GoodsClass(3L, "鎷煎澶�"));
+        menu.setListSub(sub5);
+        classMap.put(TYPE_HUODONG, menu);
 
-		GoodsClass menu1 = new GoodsClass(1L, "鐑攢");
-		menu1.setListSub(listSub);
+        menu = new GoodsClass(TYPE_XUEYUAN, "瀛﹂櫌");
+        menu.setListSub(new ArrayList<GoodsClass>());
+        classMap.put(TYPE_XUEYUAN, menu);
 
-		GoodsClass menu2 = new GoodsClass(2L, "鎺ㄨ崘");
-		menu2.setListSub(new ArrayList<GoodsClass>());
+        menu = new GoodsClass(TYPE_FAQUAN, "鍙戝湀");
+        menu.setListSub(new ArrayList<GoodsClass>());
+        classMap.put(TYPE_FAQUAN, menu);
 
-		GoodsClass menu3 = new GoodsClass(3L, "濂藉簵");
-		menu3.setListSub(new ArrayList<GoodsClass>());
+        menu = new GoodsClass(TYPE_SUCAI, "绱犳潗");
+        menu.setListSub(new ArrayList<GoodsClass>());
+        classMap.put(TYPE_SUCAI, menu);
+        return classMap;
+    }
 
-		GoodsClass menu4 = new GoodsClass(4L, "閭�璇�");
-		menu4.setListSub(new ArrayList<GoodsClass>());
+    /**
+     * 鏌ヨ椤堕儴鍒嗙被
+     *
+     * @param acceptData
+     * @param cid
+     * @param out
+     */
+    @RequestMapping(value = "getClass", method = RequestMethod.POST)
+    public void getClass(AcceptData acceptData, Long cid, PrintWriter out) {
+        // ios 鍙繑鍥炲瓙闆嗗垎绫�
+        if (cid != null) {
+            Map<Long, GoodsClass> map = getAllDynamicClass();
+            JSONObject data = new JSONObject();
+            data.put("list", JsonUtil.getApiCommonGson().toJson(map.get(cid).getListSub()));
+            out.print(JsonUtil.loadTrueResult(data));
+            return;
+        }
 
-		GoodsClass menu5 = new GoodsClass(5L, "娲诲姩");
-		List<GoodsClass> sub5 = new ArrayList<GoodsClass>();
-		sub5.add(new GoodsClass(0L, "鍏ㄩ儴"));
-		sub5.add(new GoodsClass(1L, "娣樺疂"));
-		sub5.add(new GoodsClass(2L, "浜笢"));
-		sub5.add(new GoodsClass(3L, "鎷煎澶�"));
-		menu5.setListSub(sub5);
+        // Android 杩斿洖鍒嗙被浠ュ強椤堕儴鏁版嵁
+        List<GoodsClass> listSub = new ArrayList<GoodsClass>();
+        listSub.add(new GoodsClass(0L, "浠婃棩鍗曞搧"));
+        listSub.addAll(DaTaoKeUtil.goodsClasses);
 
-		GoodsClass menu6 = new GoodsClass(6L, "瀛﹂櫌");
-		menu6.setListSub(new ArrayList<GoodsClass>());
+        GoodsClass menu1 = new GoodsClass(1L, "鐑攢");
+        menu1.setListSub(listSub);
 
-		List<GoodsClass> list = new ArrayList<GoodsClass>();
+        GoodsClass menu2 = new GoodsClass(2L, "鎺ㄨ崘");
+        menu2.setListSub(new ArrayList<GoodsClass>());
 
-		Map<Long, GoodsClass> map = getAllDynamicClass();
+        GoodsClass menu3 = new GoodsClass(3L, "濂藉簵");
+        menu3.setListSub(new ArrayList<GoodsClass>());
 
-		if (VersionUtil.greaterThan_2_0_7(acceptData.getPlatform(), acceptData.getVersion())) {
-			// 2.0.7杩斿洖鍙戝湀+娲诲姩+瀛﹂櫌+绱犳潗
-			list.add(map.get(TYPE_FAQUAN));
-			list.add(map.get(TYPE_HUODONG));
-			// list.add(map.get(TYPE_XUEYUAN));
-			list.add(map.get(TYPE_SUCAI));
-		} else if (VersionUtil.greaterThan_2_0_6(acceptData.getPlatform(), acceptData.getVersion())) {
-			// 2.0.6杩斿洖鐑攢+娲诲姩+鎺ㄨ崘+瀛﹂櫌+閭�璇�
-			list.add(map.get(TYPE_REXIAO));
-			list.add(map.get(TYPE_HUODONG));
-			list.add(map.get(TYPE_TUIJIAN));
-			// list.add(map.get(TYPE_XUEYUAN));
-			list.add(map.get(TYPE_YAOQING));
-		} else if (VersionUtil.greaterThan_2_0_5(acceptData.getPlatform(), acceptData.getVersion())) {
-			// 2.0.5杩斿洖鐑攢+娲诲姩+鎺ㄨ崘+閭�璇�
-			list.add(map.get(TYPE_REXIAO));
-			list.add(map.get(TYPE_HUODONG));
-			list.add(map.get(TYPE_TUIJIAN));
-			list.add(map.get(TYPE_YAOQING));
-		} else {
-			// 2.0.5浠ュ墠鐨勭増鏈繑鍥炵儹閿�+娲诲姩+鎺ㄨ崘+濂藉簵+閭�璇�
-			list.add(map.get(TYPE_REXIAO));
-			list.add(map.get(TYPE_HUODONG));
-			list.add(map.get(TYPE_TUIJIAN));
-			list.add(map.get(TYPE_HAODIAN));
-			list.add(map.get(TYPE_YAOQING));
-		}
+        GoodsClass menu4 = new GoodsClass(4L, "閭�璇�");
+        menu4.setListSub(new ArrayList<GoodsClass>());
 
-		JSONObject data = new JSONObject();
-		data.put("list", JsonUtil.getApiCommonGson().toJson(list));
-		out.print(JsonUtil.loadTrueResult(data));
-	}
+        GoodsClass menu5 = new GoodsClass(5L, "娲诲姩");
+        List<GoodsClass> sub5 = new ArrayList<GoodsClass>();
+        sub5.add(new GoodsClass(0L, "鍏ㄩ儴"));
+        sub5.add(new GoodsClass(1L, "娣樺疂"));
+        sub5.add(new GoodsClass(2L, "浜笢"));
+        sub5.add(new GoodsClass(3L, "鎷煎澶�"));
+        menu5.setListSub(sub5);
 
-	/**
-	 * 鍔ㄦ�佸晢鍝佸垪琛�
-	 * 
-	 * @param acceptData
-	 * @param page
-	 * @param cid
-	 * @param subId
-	 * @param out
-	 */
-	@RequestMapping(value = "getList", method = RequestMethod.POST)
-	public void getList(AcceptData acceptData, Integer page, Long cid, Long subId, PrintWriter out) {
-		if (cid == null) {
-			out.print(JsonUtil.loadFalseResult("涓诲垎绫籭d涓嶈兘涓虹┖"));
-			return;
-		}
+        GoodsClass menu6 = new GoodsClass(6L, "瀛﹂櫌");
+        menu6.setListSub(new ArrayList<GoodsClass>());
 
-		if (cid != null) {
-			if (cid == 5) { // 娲诲姩涓婚
-				getSpecialList(acceptData, page, subId, out);
-				return;
-			} else if (cid == 6) { // 瀛﹂櫌
-				getArticleList(acceptData, page, null, false, out);
-				return;
-			}
-		}
+        List<GoodsClass> list = new ArrayList<GoodsClass>();
 
-		long count = 0;
+        Map<Long, GoodsClass> map = getAllDynamicClass();
 
-		int platform = 1;
-		if ("ios".equalsIgnoreCase(acceptData.getPlatform())) {
-			platform = 2;
-		}
+        if (VersionUtil.greaterThan_2_0_7(acceptData.getPlatform(), acceptData.getVersion())) {
+            // 2.0.7杩斿洖鍙戝湀+娲诲姩+瀛﹂櫌+绱犳潗
+            if (acceptData.getSystem() == SystemEnum.blks) {
+                list.add(map.get(TYPE_FAQUAN));
+                list.add(map.get(TYPE_HUODONG));
+                // list.add(map.get(TYPE_XUEYUAN));
+                // 涓嶈繑鍥炵礌鏉愪簡
+                // list.add(map.get(TYPE_SUCAI));
+            } else {
+                list.add(map.get(TYPE_FAQUAN));
+            }
+        } else if (VersionUtil.greaterThan_2_0_6(acceptData.getPlatform(), acceptData.getVersion())) {
+            // 2.0.6杩斿洖鐑攢+娲诲姩+鎺ㄨ崘+瀛﹂櫌+閭�璇�
+            list.add(map.get(TYPE_REXIAO));
+            list.add(map.get(TYPE_HUODONG));
+            list.add(map.get(TYPE_TUIJIAN));
+            // list.add(map.get(TYPE_XUEYUAN));
+            list.add(map.get(TYPE_YAOQING));
+        } else if (VersionUtil.greaterThan_2_0_5(acceptData.getPlatform(), acceptData.getVersion())) {
+            // 2.0.5杩斿洖鐑攢+娲诲姩+鎺ㄨ崘+閭�璇�
+            list.add(map.get(TYPE_REXIAO));
+            list.add(map.get(TYPE_HUODONG));
+            list.add(map.get(TYPE_TUIJIAN));
+            list.add(map.get(TYPE_YAOQING));
+        } else {
+            // 2.0.5浠ュ墠鐨勭増鏈繑鍥炵儹閿�+娲诲姩+鎺ㄨ崘+濂藉簵+閭�璇�
+            list.add(map.get(TYPE_REXIAO));
+            list.add(map.get(TYPE_HUODONG));
+            list.add(map.get(TYPE_TUIJIAN));
+            list.add(map.get(TYPE_HAODIAN));
+            list.add(map.get(TYPE_YAOQING));
+        }
 
-		int version = Integer.parseInt(acceptData.getVersion());
-		List<DynamicInfo> list = dynamicInfoService.queryV2(platform, version, (page - 1) * Constant.PAGE_SIZE,
-				Constant.PAGE_SIZE, cid, subId);
-		if (list == null) {
-			list = new ArrayList<DynamicInfo>();
-		} else {
-			count = dynamicInfoService.count(cid, subId);
-		}
+        JSONObject data = new JSONObject();
+        data.put("list", JsonUtil.getApiCommonGson().toJson(list));
+        out.print(JsonUtil.loadTrueResult(data));
+    }
 
-		JSONObject data = new JSONObject();
-		data.put("count", count);
-		data.put("list", getGson().toJson(list));
-		out.print(JsonUtil.loadTrueResult(data));
-	}
+    /**
+     * 鍔ㄦ�佸晢鍝佸垪琛�
+     *
+     * @param acceptData
+     * @param page
+     * @param cid
+     * @param subId
+     * @param out
+     */
+    @RequestMapping(value = "getList", method = RequestMethod.POST)
+    public void getList(AcceptData acceptData, Integer page, Long cid, Long subId, PrintWriter out) {
+        if (cid == null) {
+            out.print(JsonUtil.loadFalseResult("涓诲垎绫籭d涓嶈兘涓虹┖"));
+            return;
+        }
 
-	/**
-	 * 娲诲姩鍒楄〃
-	 * 
-	 * @param acceptData
-	 * @param out
-	 */
-	private void getSpecialList(AcceptData acceptData, Integer page, Long subId, PrintWriter out) {
-		if (subId == null) {
-			out.print(JsonUtil.loadFalseResult("鍒嗙被id涓嶈兘涓虹┖"));
-			return;
-		}
+        if (cid != null) {
+            if (cid == 5) { // 娲诲姩涓婚
+                getSpecialList(acceptData, page, subId, out);
+                return;
+            } else if (cid == 6) { // 瀛﹂櫌
+                getArticleList(acceptData, page, null, false, out);
+                return;
+            }
+        }
 
-		// 骞冲彴鍖哄垎
-		int platformCode = Constant.getPlatformCode(acceptData.getPlatform());
-		List<String> listKey = new ArrayList<String>();
+        long count = 0;
 
-		if (subId == 1) { // 娣樺疂
-			listKey.add("special_channel_tb");
-		} else if (subId == 2) { // 浜笢
-			listKey.add("special_channel_jd");
-		} else if (subId == 3) { // 鎷煎澶�
-			listKey.add("special_channel_pdd");
-		} else { // 鍏ㄩ儴
-			listKey.add("special_channel_tb");
-			listKey.add("special_channel_jd");
-			listKey.add("special_channel_pdd");
-		}
+        int platform = 1;
+        if ("ios".equalsIgnoreCase(acceptData.getPlatform())) {
+            platform = 2;
+        }
 
-		List<SpecialVO> list = specialService.listByPlaceKeyHasLabel((page - 1) * Constant.PAGE_SIZE,
-				Constant.PAGE_SIZE, listKey, platformCode, Integer.parseInt(acceptData.getVersion()));
+        int version = Integer.parseInt(acceptData.getVersion());
+        List<DynamicInfo> list = dynamicInfoService.queryV2(platform, version, (page - 1) * Constant.PAGE_SIZE,
+                Constant.PAGE_SIZE, cid, subId);
+        if (list == null) {
+            list = new ArrayList<DynamicInfo>();
+        } else {
+            count = dynamicInfoService.count(cid, subId);
+        }
 
-		long time = System.currentTimeMillis();
+        JSONObject data = new JSONObject();
+        data.put("count", count);
+        data.put("list", getGson().toJson(list));
+        out.print(JsonUtil.loadTrueResult(data));
+    }
 
-		// 鍒犻櫎灏氭湭鍚敤鐨勮繃鏈熺殑
-		for (int i = 0; i < list.size(); i++) {
-			Special special = list.get(i);
-			if (special.getState() == 1L) {
-				continue;
-			}
+    /**
+     * 娲诲姩鍒楄〃
+     *
+     * @param acceptData
+     * @param out
+     */
+    private void getSpecialList(AcceptData acceptData, Integer page, Long subId, PrintWriter out) {
+        if (subId == null) {
+            out.print(JsonUtil.loadFalseResult("鍒嗙被id涓嶈兘涓虹┖"));
+            return;
+        }
 
-			// 鏄惁娲诲姩宸茶繃鏈�
-			if (special.getStartTime() != null && special.getEndTime() != null) {
-				if (time < special.getStartTime().getTime() || time > special.getEndTime().getTime()) {
-					continue;
-				} else {
-					special.setTimeTask(true);
-					special.setCountDownTime((special.getEndTime().getTime() - time) / 1000);
-				}
-			}
+        // 骞冲彴鍖哄垎
+        int platformCode = Constant.getPlatformCode(acceptData.getPlatform());
+        List<String> listKey = new ArrayList<String>();
 
-			// 璁剧疆鏍囩
-			List<SpecialLabel> listLabels = special.getListLabels();
-			if (listLabels != null && !listLabels.isEmpty()) {
-				List<ClientTextStyleVO> labels = new ArrayList<>();
-				for (SpecialLabel specialLabel : listLabels) {
-					labels.add(new ClientTextStyleVO(specialLabel.getName(), specialLabel.getBgColor()));
-				}
-				special.setLabels(labels);
-			}
+        if (subId == 1) { // 娣樺疂
+            listKey.add("special_channel_tb");
+        } else if (subId == 2) { // 浜笢
+            listKey.add("special_channel_jd");
+        } else if (subId == 3) { // 鎷煎澶�
+            listKey.add("special_channel_pdd");
+        } else { // 鍏ㄩ儴
+            listKey.add("special_channel_tb");
+            listKey.add("special_channel_jd");
+            listKey.add("special_channel_pdd");
+        }
 
-		}
+        List<SpecialVO> list = specialService.listByPlaceKeyHasLabel((page - 1) * Constant.PAGE_SIZE,
+                Constant.PAGE_SIZE, listKey, platformCode, Integer.parseInt(acceptData.getVersion()), acceptData.getSystem());
 
-		long count = specialService.countByPlaceKeyList(listKey, platformCode,
-				Integer.parseInt(acceptData.getVersion()));
+        long time = System.currentTimeMillis();
 
-		GsonBuilder gsonBuilder = new GsonBuilder().excludeFieldsWithoutExposeAnnotation();
-		Gson gson = gsonBuilder.create();
-		JSONObject data = new JSONObject();
-		data.put("count", count);
-		data.put("list", gson.toJson(list));
-		out.print(JsonUtil.loadTrueResult(data));
-	}
+        // 鍒犻櫎灏氭湭鍚敤鐨勮繃鏈熺殑
+        for (int i = 0; i < list.size(); i++) {
+            Special special = list.get(i);
+            if (special.getState() == 1L) {
+                continue;
+            }
 
-	/**
-	 * 鏃堕棿澶勭悊
-	 * 
-	 * @return
-	 */
-	private Gson getGson() {
-		GsonBuilder gb = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder());
-		gb.excludeFieldsWithoutExposeAnnotation();
-		gb.registerTypeAdapter(Date.class, new JsonSerializer<Date>() {
-			@Override
-			public JsonElement serialize(Date value, Type theType, JsonSerializationContext context) {
-				String desc = "";
-				if (value != null) {
-					// 鍒ゆ柇鏄惁鏄悓涓�澶�
+            // 鏄惁娲诲姩宸茶繃鏈�
+            if (special.getStartTime() != null && special.getEndTime() != null) {
+                if (time < special.getStartTime().getTime() || time > special.getEndTime().getTime()) {
+                    continue;
+                } else {
+                    special.setTimeTask(true);
+                    special.setCountDownTime((special.getEndTime().getTime() - time) / 1000);
+                }
+            }
 
-					Calendar calendar = Calendar.getInstance();
-					calendar.setTime(value);
-					int y1 = calendar.get(Calendar.YEAR);// 鑾峰彇骞翠唤
-					int d1 = calendar.get(Calendar.DAY_OF_YEAR);// 鑾峰彇骞翠腑绗嚑澶�
+            // 璁剧疆鏍囩
+            List<SpecialLabel> listLabels = special.getListLabels();
+            if (listLabels != null && !listLabels.isEmpty()) {
+                List<ClientTextStyleVO> labels = new ArrayList<>();
+                for (SpecialLabel specialLabel : listLabels) {
+                    labels.add(new ClientTextStyleVO(specialLabel.getName(), specialLabel.getBgColor()));
+                }
+                special.setLabels(labels);
+            }
 
-					Date nowDate = new Date();
-					Calendar calendar2 = Calendar.getInstance();
-					calendar2.setTime(nowDate);
-					int y2 = calendar2.get(Calendar.YEAR);// 鑾峰彇骞翠唤
-					int d2 = calendar2.get(Calendar.DAY_OF_YEAR);// 鑾峰彇骞翠腑绗嚑澶�
+        }
 
-					long old = value.getTime();
-					long now = nowDate.getTime();
-					if (y1 == y2) {
-						if (d1 == d2) {
-							long cha = now - old;
-							if (cha < 1000 * 60 * 2L) {
-								desc = "鍒氬垰";
-							} else if (cha < 1000 * 60 * 60L) {
-								desc = (cha / (1000 * 60)) + "鍒嗛挓鍓�";
-							} else {
-								desc = (cha / (1000 * 60 * 60)) + "灏忔椂鍓�";
-							}
-						} else if (d2 - d1 == 1) {
-							desc = "鏄ㄥぉ";
-						} else {
-							desc = (d2 - d1) + "澶╁墠";
-						}
-					} else {
-						int timeDistance = 0;
-						for (int i = y1; i < y2; i++) {
-							if (i % 4 == 0 && i % 100 != 0 || i % 400 == 0) {
-								timeDistance += 366; // 闂板勾
-							} else {
-								timeDistance += 365; // 涓嶆槸闂板勾
-							}
-						}
-						desc = timeDistance + (d2 - d1) + "澶╁墠";
-					}
+        long count = specialService.countByPlaceKeyList(listKey, platformCode,
+                Integer.parseInt(acceptData.getVersion()), acceptData.getSystem());
 
-					return new JsonPrimitive(desc);
-				}
+        GsonBuilder gsonBuilder = new GsonBuilder().excludeFieldsWithoutExposeAnnotation();
+        Gson gson = gsonBuilder.create();
+        JSONObject data = new JSONObject();
+        data.put("count", count);
+        data.put("list", gson.toJson(list));
+        out.print(JsonUtil.loadTrueResult(data));
+    }
 
-				return new JsonPrimitive("");
-			}
-		});
+    /**
+     * 鏃堕棿澶勭悊
+     *
+     * @return
+     */
+    private Gson getGson() {
+        GsonBuilder gb = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder());
+        gb.excludeFieldsWithoutExposeAnnotation();
+        gb.registerTypeAdapter(Date.class, new JsonSerializer<Date>() {
+            @Override
+            public JsonElement serialize(Date value, Type theType, JsonSerializationContext context) {
+                String desc = "";
+                if (value != null) {
+                    // 鍒ゆ柇鏄惁鏄悓涓�澶�
 
-		Gson gson = gb.create();
-		return gson;
-	}
+                    Calendar calendar = Calendar.getInstance();
+                    calendar.setTime(value);
+                    int y1 = calendar.get(Calendar.YEAR);// 鑾峰彇骞翠唤
+                    int d1 = calendar.get(Calendar.DAY_OF_YEAR);// 鑾峰彇骞翠腑绗嚑澶�
 
-	/**
-	 * 娲诲姩鍒楄〃
-	 * 
-	 * @param acceptData
-	 * @param out
-	 */
-	private void getArticleList(AcceptData acceptData, Integer page, String key, boolean search, PrintWriter out) {
-		List<ArticleVO> list = articleOfficialService.queryValid((page - 1) * Constant.PAGE_SIZE, Constant.PAGE_SIZE,
-				key);
-		if (list != null) {
-			for (ArticleVO article : list) {
-				String tags = article.getTags();
-				if (StringUtil.isNullOrEmpty(tags)) {
-					continue;
-				}
+                    Date nowDate = new Date();
+                    Calendar calendar2 = Calendar.getInstance();
+                    calendar2.setTime(nowDate);
+                    int y2 = calendar2.get(Calendar.YEAR);// 鑾峰彇骞翠唤
+                    int d2 = calendar2.get(Calendar.DAY_OF_YEAR);// 鑾峰彇骞翠腑绗嚑澶�
 
-				String[] arrayTags = tags.split("\\s+");
-				if (arrayTags == null || arrayTags.length == 0) {
-					continue;
-				}
+                    long old = value.getTime();
+                    long now = nowDate.getTime();
+                    if (y1 == y2) {
+                        if (d1 == d2) {
+                            long cha = now - old;
+                            if (cha < 1000 * 60 * 2L) {
+                                desc = "鍒氬垰";
+                            } else if (cha < 1000 * 60 * 60L) {
+                                desc = (cha / (1000 * 60)) + "鍒嗛挓鍓�";
+                            } else {
+                                desc = (cha / (1000 * 60 * 60)) + "灏忔椂鍓�";
+                            }
+                        } else if (d2 - d1 == 1) {
+                            desc = "鏄ㄥぉ";
+                        } else {
+                            desc = (d2 - d1) + "澶╁墠";
+                        }
+                    } else {
+                        int timeDistance = 0;
+                        for (int i = y1; i < y2; i++) {
+                            if (i % 4 == 0 && i % 100 != 0 || i % 400 == 0) {
+                                timeDistance += 366; // 闂板勾
+                            } else {
+                                timeDistance += 365; // 涓嶆槸闂板勾
+                            }
+                        }
+                        desc = timeDistance + (d2 - d1) + "澶╁墠";
+                    }
 
-				String[] arrayTagsColour = null;
-				String tagsColour = article.getTagsColour();
-				if (!StringUtil.isNullOrEmpty(tagsColour)) {
-					arrayTagsColour = tagsColour.split("\\s+");
-				}
+                    return new JsonPrimitive(desc);
+                }
 
-				String color = "#FE0014";
-				List<ClientTextStyleVO> labels = new ArrayList<ClientTextStyleVO>();
-				for (int i = 0; i < arrayTags.length; i++) {
-					String tag = arrayTags[i];
-					if (arrayTagsColour != null && arrayTagsColour.length == arrayTags.length) {
-						color = arrayTagsColour[i];
-					}
-					ClientTextStyleVO styleVO = new ClientTextStyleVO();
-					styleVO.setColor(color);
-					styleVO.setContent(tag);
-					labels.add(styleVO);
-				}
-				article.setLabels(labels);
-			}
-		}
+                return new JsonPrimitive("");
+            }
+        });
 
-		GsonBuilder gsonBuilder = new GsonBuilder().excludeFieldsWithoutExposeAnnotation();
-		Gson gson = gsonBuilder.create();
+        Gson gson = gb.create();
+        return gson;
+    }
 
-		JSONObject data = new JSONObject();
-		if (page == 1 && !search) {
-			List<BannerVO> banners = swiperPictureService.getByBannerCardAndVersion("article_banners",
-					acceptData.getPlatform(), Integer.parseInt(acceptData.getVersion()));
-			if (banners == null)
-				banners = new ArrayList<>();
-			data.put("banners", gson.toJson(banners));
+    /**
+     * 娲诲姩鍒楄〃
+     *
+     * @param acceptData
+     * @param out
+     */
+    private void getArticleList(AcceptData acceptData, Integer page, String key, boolean search, PrintWriter out) {
+        List<ArticleVO> list = articleOfficialService.queryValid((page - 1) * Constant.PAGE_SIZE, Constant.PAGE_SIZE,
+                key);
+        if (list != null) {
+            for (ArticleVO article : list) {
+                String tags = article.getTags();
+                if (StringUtil.isNullOrEmpty(tags)) {
+                    continue;
+                }
 
-			List<SpecialVO> listSpecial = specialService.listByVersion(0, Integer.MAX_VALUE, "article_specials",
-					acceptData.getPlatform(), Integer.parseInt(acceptData.getVersion()));
-			if (listSpecial == null)
-				listSpecial = new ArrayList<>();
+                String[] arrayTags = tags.split("\\s+");
+                if (arrayTags == null || arrayTags.length == 0) {
+                    continue;
+                }
 
-			for (SpecialVO special : listSpecial) {
-				boolean needLogin = special.isJumpLogin();
-				JumpDetailV2 jumpDetail = special.getJumpDetail();
-				if (jumpDetail != null) {
-					jumpDetail.setNeedLogin(needLogin);
-					special.setJumpDetail(jumpDetail);
-				}
-			}
-			data.put("specials", gson.toJson(listSpecial));
-		}
-		data.put("count", articleOfficialService.countValid(key));
-		data.put("list", gson.toJson(list));
-		out.print(JsonUtil.loadTrueResult(data));
-	}
+                String[] arrayTagsColour = null;
+                String tagsColour = article.getTagsColour();
+                if (!StringUtil.isNullOrEmpty(tagsColour)) {
+                    arrayTagsColour = tagsColour.split("\\s+");
+                }
 
-	/**
-	 * 鏂囩珷鎼滅储
-	 * 
-	 * @param acceptData
-	 * @param page
-	 * @param key
-	 * @param out
-	 */
-	@RequestMapping(value = "readArticle", method = RequestMethod.POST)
-	public void readArticle(AcceptData acceptData, String id, PrintWriter out) {
-		if (StringUtil.isNullOrEmpty(id)) {
-			out.print(JsonUtil.loadFalseResult("id涓嶈兘涓虹┖"));
-			return;
-		}
-		articleOfficialService.updateReadNum(id);
-		out.print(JsonUtil.loadTrueResult("鎿嶄綔鎴愬姛"));
-	}
+                String color = "#FE0014";
+                List<ClientTextStyleVO> labels = new ArrayList<ClientTextStyleVO>();
+                for (int i = 0; i < arrayTags.length; i++) {
+                    String tag = arrayTags[i];
+                    if (arrayTagsColour != null && arrayTagsColour.length == arrayTags.length) {
+                        color = arrayTagsColour[i];
+                    }
+                    ClientTextStyleVO styleVO = new ClientTextStyleVO();
+                    styleVO.setColor(color);
+                    styleVO.setContent(tag);
+                    labels.add(styleVO);
+                }
+                article.setLabels(labels);
+            }
+        }
 
-	/**
-	 * 鏂囩珷鎼滅储
-	 * 
-	 * @param acceptData
-	 * @param page
-	 * @param key
-	 * @param out
-	 */
-	@RequestMapping(value = "searchArticle", method = RequestMethod.POST)
-	public void searchArticle(AcceptData acceptData, Integer page, String key, PrintWriter out) {
-		getArticleList(acceptData, page, key, true, out);
-	}
+        GsonBuilder gsonBuilder = new GsonBuilder().excludeFieldsWithoutExposeAnnotation();
+        Gson gson = gsonBuilder.create();
 
-	/**
-	 * 鏂囩珷鎼滅储
-	 * 
-	 * @param acceptData
-	 * @param page
-	 * @param key
-	 * @param out
-	 */
-	@RequestMapping(value = "getArticleHot", method = RequestMethod.POST)
-	public void getArticleHot(AcceptData acceptData, PrintWriter out) {
-		JSONObject data = new JSONObject();
-		data.put("words", configService.get(ConfigKeyEnum.articleHotWords.getKey()));
-		out.print(JsonUtil.loadTrueResult(data));
-	}
+        JSONObject data = new JSONObject();
+        if (page == 1 && !search) {
+            List<BannerVO> banners = swiperPictureService.getByBannerCardAndVersion("article_banners",
+                    acceptData.getPlatform(), Integer.parseInt(acceptData.getVersion()), acceptData.getSystem());
+            if (banners == null)
+                banners = new ArrayList<>();
+            data.put("banners", gson.toJson(banners));
 
-	/**
-	 * 2.0.7鐗堟湰鍚庤皟鐢� 鍔ㄦ�佸垪琛紙閫傜敤浜庡彂鍦堜笌绱犳潗锛�
-	 * 
-	 * @param acceptData
-	 * @param page
-	 * @param cid
-	 * @param subId
-	 * @param out
-	 */
-	@RequestMapping(value = "getDynamicList", method = RequestMethod.POST)
-	public void getDynamicListNew(AcceptData acceptData, Integer page, Long cid, String subId, PrintWriter out) {
-		try {
-			int type = 1;
-			if (cid == TYPE_FAQUAN) {
-				type = 1;
-			} else if (cid == TYPE_SUCAI) {
-				type = 2;
-			}
-			List<GoodsEvaluate> listNew = new ArrayList<GoodsEvaluate>();
+            List<SpecialVO> listSpecial = specialService.listByVersion(0, Integer.MAX_VALUE, "article_specials",
+                    acceptData.getPlatform(), Integer.parseInt(acceptData.getVersion()), acceptData.getSystem());
+            if (listSpecial == null)
+                listSpecial = new ArrayList<>();
 
-			List<GoodsEvaluate> list = goodsEvaluateService.queryMaterialsCache((page - 1) * Constant.PAGE_SIZE,
-					Constant.PAGE_SIZE, type);
+            for (SpecialVO special : listSpecial) {
+                boolean needLogin = special.isJumpLogin();
+                JumpDetailV2 jumpDetail = special.getJumpDetail();
+                if (jumpDetail != null) {
+                    jumpDetail.setNeedLogin(needLogin);
+                    special.setJumpDetail(jumpDetail);
+                }
+            }
+            data.put("specials", gson.toJson(listSpecial));
+        }
+        data.put("count", articleOfficialService.countValid(key));
+        data.put("list", gson.toJson(list));
+        out.print(JsonUtil.loadTrueResult(data));
+    }
 
-			if (!VersionUtil.greaterThan_2_1_1(acceptData.getPlatform(), acceptData.getVersion())) {
-				listNew.addAll(list);
-			} else if (list.size() > 0) { // 娲诲姩鍥剧墖涓嶅厑璁歌烦杞�
-				for (GoodsEvaluate goodsEvaluate : list) {
-					EvaluateEnum evaluateEnum = goodsEvaluate.getType();
-					// 鍗曞搧 娲诲姩鍙互涓�閿簯鍙戝崟
-					if (evaluateEnum == EvaluateEnum.activity || evaluateEnum == EvaluateEnum.single ) {
-						goodsEvaluate.setCloud(true);
-					}
-					
-					
-					if (evaluateEnum != EvaluateEnum.activity) {
-						listNew.add(goodsEvaluate);
-						continue;
-					}
+    /**
+     * 鏂囩珷鎼滅储
+     *
+     * @param acceptData
+     * @param id
+     * @param out
+     */
+    @RequestMapping(value = "readArticle", method = RequestMethod.POST)
+    public void readArticle(AcceptData acceptData, String id, PrintWriter out) {
+        if (StringUtil.isNullOrEmpty(id)) {
+            out.print(JsonUtil.loadFalseResult("id涓嶈兘涓虹┖"));
+            return;
+        }
+        articleOfficialService.updateReadNum(id);
+        out.print(JsonUtil.loadTrueResult("鎿嶄綔鎴愬姛"));
+    }
 
-					GoodsEvaluate evaluateNew = new GoodsEvaluate();
-					try {
-						PropertyUtils.copyProperties(evaluateNew, goodsEvaluate);
-					} catch (Exception e) {
-						e.printStackTrace();
-						continue;
-					}
-					// 璺宠浆杩囨浮椤�
-					// String jumpLink =
-					// configService.get(ConfigKeyEnum.activityDetailLink.getKey())
-					// + "?type=%s&id=%s";
-					// jumpLink = String.format(jumpLink, "circle",
-					// evaluateNew.getId());
-					// evaluateNew.setJumpLink(jumpLink);
+    /**
+     * 鏂囩珷鎼滅储
+     *
+     * @param acceptData
+     * @param page
+     * @param key
+     * @param out
+     */
+    @RequestMapping(value = "searchArticle", method = RequestMethod.POST)
+    public void searchArticle(AcceptData acceptData, Integer page, String key, PrintWriter out) {
+        getArticleList(acceptData, page, key, true, out);
+    }
 
-					// 鍥剧墖鏁伴噺
-					if (evaluateNew.getImgList() != null && evaluateNew.getImgList().size() > 0) {
-						int size = evaluateNew.getImgList().size();
-						List<ImgInfo> listInfoNew = new ArrayList<ImgInfo>();
+    /**
+     * 鏂囩珷鎼滅储
+     *
+     * @param acceptData
+     * @param out
+     */
+    @RequestMapping(value = "getArticleHot", method = RequestMethod.POST)
+    public void getArticleHot(AcceptData acceptData, PrintWriter out) {
+        JSONObject data = new JSONObject();
+        data.put("words", configService.getValue(ConfigKeyEnum.articleHotWords.getKey(), SystemInfoUtil.getSystem(acceptData)));
+        out.print(JsonUtil.loadTrueResult(data));
+    }
 
-						for (ImgInfo imgInfo : goodsEvaluate.getImgList()) {
-							if (imgInfo.getType() != ImgEnum.activity) {
-								listInfoNew.add(imgInfo);
-								continue;
-							}
-							ImgInfo infoNew = new ImgInfo();
-							try {
-								PropertyUtils.copyProperties(infoNew, imgInfo);
-							} catch (Exception e) {
-								e.printStackTrace();
-								continue;
-							}
-							infoNew.setType(ImgEnum.img);
-							// 鍥剧墖澶т簬涓�寮犳椂 鏄剧ず涔濆鏍煎浘
-							if (size > 1) {
-								infoNew.setW(1);
-								infoNew.setH(1);
-							}
-							listInfoNew.add(infoNew);
-						}
-						evaluateNew.setImgList(listInfoNew);
-					}
-					listNew.add(evaluateNew);
-				}
-			}
+    /**
+     * 2.0.7鐗堟湰鍚庤皟鐢� 鍔ㄦ�佸垪琛紙閫傜敤浜庡彂鍦堜笌绱犳潗锛�
+     *
+     * @param acceptData
+     * @param page
+     * @param cid
+     * @param subId
+     * @param out
+     */
+    @RequestMapping(value = "getDynamicList", method = RequestMethod.POST)
+    public void getDynamicListNew(AcceptData acceptData, Integer page, Long cid, String subId, Long uid, PrintWriter out) {
+        try {
+            int type = 1;
+            if (cid == TYPE_FAQUAN) {
+                type = 1;
+            } else if (cid == TYPE_SUCAI) {
+                type = 2;
+            }
+            List<GoodsEvaluate> listNew = new ArrayList<>();
 
-			GsonBuilder gsonBuilder = new GsonBuilder().excludeFieldsWithoutExposeAnnotation();
-			gsonBuilder.registerTypeAdapter(ImgEnum.class, new JsonSerializer<ImgEnum>() {
-				@Override
-				public JsonElement serialize(ImgEnum value, Type theType, JsonSerializationContext context) {
-					if (value == null) {
-						return new JsonPrimitive("");
-					} else {
-						return new JsonPrimitive(value.getVlaue());
-					}
-				}
-			}).registerTypeAdapter(BigDecimal.class, new JsonSerializer<BigDecimal>() {
-				@Override
-				public JsonElement serialize(BigDecimal value, Type theType, JsonSerializationContext context) {
-					if (value == null) {
-						return new JsonPrimitive("");
-					} else {
-						// 淇濈暀2浣嶅皬鏁�
-						return new JsonPrimitive(MoneyBigDecimalUtil.getWithNoZera(value) + "");
-					}
-				}
-			}).registerTypeAdapter(Date.class, new JsonSerializer<Date>() {
-				@Override
-				public JsonElement serialize(Date value, Type theType, JsonSerializationContext context) {
-					String desc = "";
-					if (value != null) {
-						// 鍒ゆ柇鏄惁鏄悓涓�澶�
+            List<GoodsEvaluate> list = goodsEvaluateService.queryMaterialsCache((page - 1) * Constant.PAGE_SIZE,
+                    Constant.PAGE_SIZE, type, acceptData.getSystem());
 
-						Calendar calendar = Calendar.getInstance();
-						calendar.setTime(value);
-						int y1 = calendar.get(Calendar.YEAR);// 鑾峰彇骞翠唤
-						int d1 = calendar.get(Calendar.DAY_OF_YEAR);// 鑾峰彇骞翠腑绗嚑澶�
+            if (!VersionUtil.greaterThan_2_1_1(acceptData.getPlatform(), acceptData.getVersion())) {
+                listNew.addAll(list);
+            } else if (list.size() > 0) { // 娲诲姩鍥剧墖涓嶅厑璁歌烦杞�
 
-						Date nowDate = new Date();
-						Calendar calendar2 = Calendar.getInstance();
-						calendar2.setTime(nowDate);
-						int y2 = calendar2.get(Calendar.YEAR);// 鑾峰彇骞翠唤
-						int d2 = calendar2.get(Calendar.DAY_OF_YEAR);// 鑾峰彇骞翠腑绗嚑澶�
+                // 浜戝彂鍗曟槸鍚﹀紑鍚�
+                boolean cloudOpen = configService.isRobotCloudOpen(ConfigKeyEnum.robotCloudOpenCircle.getKey(), acceptData.getPlatform(), acceptData.getVersion(), SystemInfoUtil.getSystem(acceptData));
+                if (!cloudOpen && uid != null) {
+                    List<String> testUsers = configService.getTestUsers(SystemInfoUtil.getSystem(acceptData));
+                    if (testUsers != null && testUsers.contains(uid + "")) {
+                        cloudOpen = true;
+                    }
+                }
 
-						long old = value.getTime();
-						long now = nowDate.getTime();
-						if (y1 == y2) {
-							if (d1 == d2) {
-								long cha = now - old;
-								if (cha < 1000 * 60 * 2L) {
-									desc = "鍒氬垰";
-								} else if (cha < 1000 * 60 * 60L) {
-									desc = (cha / (1000 * 60)) + "鍒嗛挓鍓�";
-								} else {
-									desc = (cha / (1000 * 60 * 60)) + "灏忔椂鍓�";
-								}
-							} else if (d2 - d1 == 1) {
-								desc = "鏄ㄥぉ";
-							} else {
-								desc = (d2 - d1) + "澶╁墠";
-							}
-						} else {
-							int timeDistance = 0;
-							for (int i = y1; i < y2; i++) {
-								if (i % 4 == 0 && i % 100 != 0 || i % 400 == 0) {
-									timeDistance += 366; // 闂板勾
-								} else {
-									timeDistance += 365; // 涓嶆槸闂板勾
-								}
-							}
-							desc = timeDistance + (d2 - d1) + "澶╁墠";
-						}
+                for (GoodsEvaluate goodsEvaluate : list) {
+                    if (goodsEvaluate.getGoods() != null) {
+                        goodsEvaluate.getGoods().setCreatetime(null);
+                    }
+                    GoodsEvaluate evaluateNew = new GoodsEvaluate();
+                    try {
+                        PropertyUtils.copyProperties(evaluateNew, goodsEvaluate);
+                    } catch (Exception e) {
+                        e.printStackTrace();
+                        continue;
+                    }
 
-						return new JsonPrimitive(desc);
-					}
+                    EvaluateEnum evaluateEnum = evaluateNew.getType();
+                    // 鍗曞搧 娲诲姩鍙互涓�閿簯鍙戝崟
+                    if (evaluateEnum == EvaluateEnum.activity || evaluateEnum == EvaluateEnum.single) {
+                        evaluateNew.setCloud(cloudOpen);
+                    }
 
-					return new JsonPrimitive("");
-				}
-			});
-			Gson gson = gsonBuilder.create();
-			long count = goodsEvaluateService.countValidMaterials(type);
+                    if (evaluateEnum != EvaluateEnum.activity) {
+                        listNew.add(evaluateNew);
+                        continue;
+                    }
 
-			JSONArray jsonArray = new JSONArray();
 
-			String listStr = gson.toJson(listNew);
-			JSONArray array = JSONArray.fromObject(listStr);
-			for (int i = 0; i < array.size(); i++) {
-				Object object = array.get(i);
-				JSONObject json = JSONObject.fromObject(object);
-				Object shareNum = json.get("shareNum");
-				if (shareNum != null) {
-					int num = Integer.parseInt(shareNum.toString());
+                    // 璺宠浆杩囨浮椤�
+                    // String jumpLink =
+                    // configService.get(ConfigKeyEnum.activityDetailLink.getKey())
+                    // + "?type=%s&id=%s";
+                    // jumpLink = String.format(jumpLink, "circle",
+                    // evaluateNew.getId());
+                    // evaluateNew.setJumpLink(jumpLink);
 
-					if (num >= 100000000) {
-						double sales = num;
-						String salesCountMidea = String.format("%.1f", sales / 100000000);
-						json.put("shareNum", salesCountMidea + "浜�");
-					} else if (num >= 10000) {
-						double sales = num;
-						String salesCountMidea = String.format("%.1f", sales / 10000);
-						json.put("shareNum", salesCountMidea + "涓�");
-					}
-				}
-				jsonArray.add(json);
-			}
+                    // 鍥剧墖鏁伴噺
+                    if (evaluateNew.getImgList() != null && evaluateNew.getImgList().size() > 0) {
+                        int size = evaluateNew.getImgList().size();
+                        List<ImgInfo> listInfoNew = new ArrayList<ImgInfo>();
 
-			JSONObject data = new JSONObject();
-			data.put("count", count);
-			data.put("list", jsonArray);
-			out.print(JsonUtil.loadTrueResult(data));
-		} catch (Exception e) {
-			e.printStackTrace();
-			out.print(JsonUtil.loadFalseResult(1, "鏌ヨ淇℃伅澶辫触"));
-			LogHelper.errorDetailInfo(e);
-		}
+                        for (ImgInfo imgInfo : goodsEvaluate.getImgList()) {
 
-	}
+                            if (acceptData.getSystem() == SystemEnum.yhqjx || acceptData.getSystem() == SystemEnum.hsb) {
+                                imgInfo.setGoods(null);
+                                imgInfo.setGoodsVO(null);
+                            }
 
-	/**
-	 * 
-	 * @param acceptData
-	 * @param uid
-	 * @param id
-	 * @param type
-	 *            1-鏀惧ぇ 2-淇濆瓨 3-鍒嗕韩
-	 * @param goodsId
-	 * @param goodsType
-	 * @param out
-	 */
-	@RequestMapping(value = "evaluateShare", method = RequestMethod.POST)
-	public void evaluateShare(AcceptData acceptData, Long uid, String id, Integer type, String goodsId,
-			Integer goodsType, PrintWriter out) {
-		try {
-			if (uid == null) {
-				out.print(JsonUtil.loadFalseResult("鐢ㄦ埛鏈櫥褰�"));
-				return;
-			}
+                            if (imgInfo.getType() != ImgEnum.activity) {
+                                listInfoNew.add(imgInfo);
+
+
+                                continue;
+                            }
+                            ImgInfo infoNew = new ImgInfo();
+                            try {
+                                PropertyUtils.copyProperties(infoNew, imgInfo);
+                            } catch (Exception e) {
+                                e.printStackTrace();
+                                continue;
+                            }
+                            infoNew.setType(ImgEnum.img);
+                            // 鍥剧墖澶т簬涓�寮犳椂 鏄剧ず涔濆鏍煎浘
+                            if (size > 1) {
+                                infoNew.setW(1);
+                                infoNew.setH(1);
+                            }
+                            listInfoNew.add(infoNew);
+                        }
+                        evaluateNew.setImgList(listInfoNew);
+                    }
+                    listNew.add(evaluateNew);
+                }
+            }
+
+            GsonBuilder gsonBuilder = new GsonBuilder().excludeFieldsWithoutExposeAnnotation();
+            gsonBuilder.registerTypeAdapter(ImgEnum.class, new JsonSerializer<ImgEnum>() {
+                @Override
+                public JsonElement serialize(ImgEnum value, Type theType, JsonSerializationContext context) {
+                    if (value == null) {
+                        return new JsonPrimitive("");
+                    } else {
+                        return new JsonPrimitive(value.getVlaue());
+                    }
+                }
+            }).registerTypeAdapter(BigDecimal.class, new JsonSerializer<BigDecimal>() {
+                @Override
+                public JsonElement serialize(BigDecimal value, Type theType, JsonSerializationContext context) {
+                    if (value == null) {
+                        return new JsonPrimitive("");
+                    } else {
+                        // 淇濈暀2浣嶅皬鏁�
+                        return new JsonPrimitive(MoneyBigDecimalUtil.getWithNoZera(value) + "");
+                    }
+                }
+            }).registerTypeAdapter(Date.class, new JsonSerializer<Date>() {
+                @Override
+                public JsonElement serialize(Date value, Type theType, JsonSerializationContext context) {
+                    String desc = "";
+                    if (value != null) {
+                        // 鍒ゆ柇鏄惁鏄悓涓�澶�
+
+                        Calendar calendar = Calendar.getInstance();
+                        calendar.setTime(value);
+                        int y1 = calendar.get(Calendar.YEAR);// 鑾峰彇骞翠唤
+                        int d1 = calendar.get(Calendar.DAY_OF_YEAR);// 鑾峰彇骞翠腑绗嚑澶�
+
+                        Date nowDate = new Date();
+                        Calendar calendar2 = Calendar.getInstance();
+                        calendar2.setTime(nowDate);
+                        int y2 = calendar2.get(Calendar.YEAR);// 鑾峰彇骞翠唤
+                        int d2 = calendar2.get(Calendar.DAY_OF_YEAR);// 鑾峰彇骞翠腑绗嚑澶�
+
+                        long old = value.getTime();
+                        long now = nowDate.getTime();
+                        if (y1 == y2) {
+                            if (d1 == d2) {
+                                long cha = now - old;
+                                if (cha < 1000 * 60 * 2L) {
+                                    desc = "鍒氬垰";
+                                } else if (cha < 1000 * 60 * 60L) {
+                                    desc = (cha / (1000 * 60)) + "鍒嗛挓鍓�";
+                                } else {
+                                    desc = (cha / (1000 * 60 * 60)) + "灏忔椂鍓�";
+                                }
+                            } else if (d2 - d1 == 1) {
+                                desc = "鏄ㄥぉ";
+                            } else {
+                                desc = (d2 - d1) + "澶╁墠";
+                            }
+                        } else {
+                            int timeDistance = 0;
+                            for (int i = y1; i < y2; i++) {
+                                if (i % 4 == 0 && i % 100 != 0 || i % 400 == 0) {
+                                    timeDistance += 366; // 闂板勾
+                                } else {
+                                    timeDistance += 365; // 涓嶆槸闂板勾
+                                }
+                            }
+                            desc = timeDistance + (d2 - d1) + "澶╁墠";
+                        }
+
+                        return new JsonPrimitive(desc);
+                    }
+
+                    return new JsonPrimitive("");
+                }
+            });
+            Gson gson = gsonBuilder.create();
+            long count = goodsEvaluateService.countValidMaterials(type, acceptData.getSystem());
+
+            JSONArray jsonArray = new JSONArray();
+
+            String listStr = gson.toJson(listNew);
+            JSONArray array = JSONArray.fromObject(listStr);
+            for (int i = 0; i < array.size(); i++) {
+                Object object = array.get(i);
+                JSONObject json = JSONObject.fromObject(object);
+                Object shareNum = json.get("shareNum");
+                if (shareNum != null) {
+                    int num = Integer.parseInt(shareNum.toString());
+
+                    if (num >= 100000000) {
+                        double sales = num;
+                        String salesCountMidea = String.format("%.1f", sales / 100000000);
+                        json.put("shareNum", salesCountMidea + "浜�");
+                    } else if (num >= 10000) {
+                        double sales = num;
+                        String salesCountMidea = String.format("%.1f", sales / 10000);
+                        json.put("shareNum", salesCountMidea + "涓�");
+                    }
+                }
+                jsonArray.add(json);
+            }
+
+            JSONObject data = new JSONObject();
+            data.put("count", count);
+            data.put("list", jsonArray);
+            out.print(JsonUtil.loadTrueResult(data));
+        } catch (Exception e) {
+            e.printStackTrace();
+            out.print(JsonUtil.loadFalseResult(1, "鏌ヨ淇℃伅澶辫触"));
+            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 (Exception e) {
+                    logger.warn(String.format("浜笢杞摼鍑洪敊锛歮aterialId-%s",url), e);
+                }
+                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(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();
+                    String 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 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
+     * @param id
+     * @param type       1-鏀惧ぇ 2-淇濆瓨 3-鍒嗕韩
+     * @param goodsId
+     * @param goodsType
+     * @param out
+     */
+    @RequestMapping(value = "evaluateShare", method = RequestMethod.POST)
+    public void evaluateShare(AcceptData acceptData, Long uid, String id, Integer type, String goodsId,
+                              Integer goodsType, PrintWriter out) {
+        try {
+            if (uid == null) {
+                out.print(JsonUtil.loadFalseResult("鐢ㄦ埛鏈櫥褰�"));
+                return;
+            }
+
+            if (StringUtil.isNullOrEmpty(id) || type == null) {
+                out.print(JsonUtil.loadFalseResult("浼犻�掑弬鏁颁笉鑳戒负绌�"));
+                return;
+            }
+
+            if (type == 1 && (StringUtil.isNullOrEmpty(goodsId) || goodsType == null)) {
+                out.print(JsonUtil.loadFalseResult("鍟嗗搧鍙傛暟涓嶈兘涓虹┖"));
+                return;
+            }
+
+            GoodsEvaluate goodsEvaluate = goodsEvaluateService.getById(id);
+            if (goodsEvaluate == null) {
+                out.print(JsonUtil.loadFalseResult("璇ュ唴瀹瑰凡涓嶅瓨鍦�"));
+                return;
+            }
+
+            UserInfo user = userInfoService.getUserByIdWithMybatis(uid);
+            if (user == null) {
+                out.print(JsonUtil.loadFalseResult("鐢ㄦ埛鏈櫥褰�"));
+                return;
+            }
+
+            if (user != null && user.getState() != UserInfo.STATE_NORMAL) {
+                out.print(JsonUtil.loadFalseResult(Constant.CODE_FORBIDDEN_USER, Constant.FORBIDDEN_USER_REASON_DESC));
+                return;
+            }
+
+
+            if (userFunctionsLimitService.isLimit(uid, SystemFunction.share, new Date())) {
+                out.print(JsonUtil.loadFalseResult(1, "璇ュ姛鑳介檺鍒朵娇鐢�"));
+                return;
+            }
+
 
-			if (StringUtil.isNullOrEmpty(id) || type == null) {
-				out.print(JsonUtil.loadFalseResult("浼犻�掑弬鏁颁笉鑳戒负绌�"));
-				return;
-			}
+            UserExtraTaoBaoInfo taoBaoInfo = userExtraTaoBaoInfoService.getByUid(uid);
+            String relationId = null;
+            if (taoBaoInfo != null && taoBaoInfo.getRelationId() != null && taoBaoInfo.getRelationValid() != null
+                    && taoBaoInfo.getRelationValid() == true)
+                relationId = taoBaoInfo.getRelationId();
 
-			if (type == 1 && (StringUtil.isNullOrEmpty(goodsId) || goodsType == null)) {
-				out.print(JsonUtil.loadFalseResult("鍟嗗搧鍙傛暟涓嶈兘涓虹┖"));
-				return;
-			}
+            if (StringUtil.isNullOrEmpty(relationId)) {
+                out.print(JsonUtil.loadFalseResult(2, "娣樺疂鏈巿鏉冿紝璇峰墠寰�\"鎴戠殑\"缁戝畾娣樺疂璐﹀彿"));
+                return;
+            }
+            String inviteCode = userInfoExtraService.getInviteCodeByUid(uid);
+            if (SystemInfoUtil.hasFunctions(acceptData.getSystem(), SystemFunction.threeSale)) {
+                inviteCode = userInfoExtraService.getInviteCodeByUid(uid);
+                if (StringUtil.isNullOrEmpty(inviteCode)) {
+                    out.print(JsonUtil.loadFalseResult(1, "閭�璇风爜鏈縺娲�"));
+                    return;
+                }
+            }
 
-			GoodsEvaluate goodsEvaluate = goodsEvaluateService.getById(id);
-			if (goodsEvaluate == null) {
-				out.print(JsonUtil.loadFalseResult("璇ュ唴瀹瑰凡涓嶅瓨鍦�"));
-				return;
-			}
+            List<ImgInfo> imgs = goodsEvaluate.getImgList();
+            if (imgs == null) {
+                out.print(JsonUtil.loadFalseResult("璇ュ浘鐗囧唴瀹瑰凡涓嶅瓨鍦�"));
+                return;
+            }
 
-			UserInfo user = userInfoService.getUserByIdWithMybatis(uid);
-			if (user == null) {
-				out.print(JsonUtil.loadFalseResult("鐢ㄦ埛鏈櫥褰�"));
-				return;
-			}
+            List<String> list = new ArrayList<>();
+            Integer dynamicType = goodsEvaluate.getDynamicType();
+            if (dynamicType == null || dynamicType.intValue() == 2) {
+                for (ImgInfo imgInfo : imgs) {
+                    if (imgInfo.getType() == ImgEnum.goods || imgInfo.getType() == ImgEnum.video)
+                        continue;
+                    if (imgInfo.getType() == ImgEnum.img)
+                        list.add(StringUtil.isNullOrEmpty(imgInfo.getUrlHD()) ? imgInfo.getUrl() : imgInfo.getUrlHD());
+                    else if (imgInfo.getType() == ImgEnum.activity)
+                        if (!StringUtil.isNullOrEmpty(imgInfo.getActivityPic())) {
+                            list.add(imgInfo.getActivityPic());
+                        }
+                }
+            } else {
+                // 鍗曞搧
+                if (goodsEvaluate.getType() == EvaluateEnum.single) {
+                    for (ImgInfo imgInfo : imgs) {
+                        if (imgInfo.getType() == ImgEnum.video)
+                            continue;
 
-			if (user != null && user.getState() != UserInfo.STATE_NORMAL) {
-				out.print(JsonUtil.loadFalseResult(Constant.CODE_FORBIDDEN_USER, Constant.FORBIDDEN_USER_REASON_DESC));
-				return;
-			}
+                        GoodsDetailVO goodsVO = imgInfo.getGoodsVO();
+                        if (goodsVO == null) {
+                            list.add(StringUtil.isNullOrEmpty(imgInfo.getUrlHD()) ? imgInfo.getUrl()
+                                    : imgInfo.getUrlHD());
+                            continue;
+                        }
 
-			UserExtraTaoBaoInfo taoBaoInfo = userExtraTaoBaoInfoService.getByUid(uid);
-			String relationId = null;
-			if (taoBaoInfo != null && taoBaoInfo.getRelationId() != null && taoBaoInfo.getRelationValid() != null
-					&& taoBaoInfo.getRelationValid() == true)
-				relationId = taoBaoInfo.getRelationId();
+                        String jumpLink = getJumpLink(goodsVO, user, relationId, inviteCode, imgInfo.getUrl(), SystemInfoUtil.getSystem(acceptData));
+                        if (!StringUtil.isNullOrEmpty(jumpLink)) {
+                            list.add(jumpLink);
+                        }
+                    }
 
-			if (StringUtil.isNullOrEmpty(relationId)) {
-				out.print(JsonUtil.loadFalseResult(2, "娣樺疂鏈巿鏉冿紝璇峰墠寰�\"鎴戠殑\"缁戝畾娣樺疂璐﹀彿"));
-				return;
-			}
+                } else if (goodsEvaluate.getType() == EvaluateEnum.multiple) {
+                    if (type == 1) {
+                        for (ImgInfo imgInfo : imgs) {
+                            if (imgInfo.getGoodsVO() != null)
+                                if (imgInfo.getGoodsVO().getGoodsId().equalsIgnoreCase(goodsId)
+                                        && imgInfo.getGoodsVO().getGoodsType() == goodsType.intValue()) {
+                                    String jumpLink = getJumpLink(imgInfo.getGoodsVO(), user, relationId, inviteCode,
+                                            imgInfo.getUrl(), SystemInfoUtil.getSystem(acceptData));
+                                    if (!StringUtil.isNullOrEmpty(jumpLink)) {
+                                        list.add(jumpLink);
+                                    }
+                                    break;
+                                }
+                        }
+                    } else if (type == 2 || type == 3) {
+                        for (ImgInfo imgInfo : imgs) {
+                            if (imgInfo.getGoodsVO() != null) {
+                                String jumpLink = getJumpLink(imgInfo.getGoodsVO(), user, relationId, inviteCode,
+                                        imgInfo.getUrl(), SystemInfoUtil.getSystem(acceptData));
+                                if (!StringUtil.isNullOrEmpty(jumpLink)) {
+                                    list.add(jumpLink);
+                                }
+                            }
+                        }
+                    }
 
-			String inviteCode = userInfoExtraService.getInviteCodeByUid(uid);
-			if (StringUtil.isNullOrEmpty(inviteCode)) {
-				out.print(JsonUtil.loadFalseResult(1, "閭�璇风爜鏈縺娲�"));
-				return;
-			}
+                } else if (goodsEvaluate.getType() == EvaluateEnum.activity) {
+                    for (ImgInfo imgInfo : imgs) {
+                        if (imgInfo.getType() == ImgEnum.goods || imgInfo.getType() == ImgEnum.video)
+                            continue;
+                        if (imgInfo.getType() == ImgEnum.img)
+                            list.add(StringUtil.isNullOrEmpty(imgInfo.getUrlHD()) ? imgInfo.getUrl()
+                                    : imgInfo.getUrlHD());
+                        else if (imgInfo.getType() == ImgEnum.activity)
+                            if (!StringUtil.isNullOrEmpty(imgInfo.getActivityPic())) {
+                                list.add(imgInfo.getActivityPic());
+                            } else if (!StringUtil.isNullOrEmpty(imgInfo.getUrl())) {
+                                list.add(imgInfo.getUrl());
+                            }
+                    }
+                }
+            }
 
-			List<ImgInfo> imgs = goodsEvaluate.getImgList();
-			if (imgs == null) {
-				out.print(JsonUtil.loadFalseResult("璇ュ浘鐗囧唴瀹瑰凡涓嶅瓨鍦�"));
-				return;
-			}
+            Integer shareCount = goodsEvaluate.getShareNum();
+            if (shareCount == null) {
+                shareCount = 0;
+            }
 
-			List<String> list = new ArrayList<>();
-			Integer dynamicType = goodsEvaluate.getDynamicType();
-			if (dynamicType == null || dynamicType.intValue() == 2) {
-				for (ImgInfo imgInfo : imgs) {
-					if (imgInfo.getType() == ImgEnum.goods || imgInfo.getType() == ImgEnum.video)
-						continue;
-					if (imgInfo.getType() == ImgEnum.img)
-						list.add(StringUtil.isNullOrEmpty(imgInfo.getUrlHD()) ? imgInfo.getUrl() : imgInfo.getUrlHD());
-					else if (imgInfo.getType() == ImgEnum.activity)
-						if (!StringUtil.isNullOrEmpty(imgInfo.getActivityPic())) {
-							list.add(imgInfo.getActivityPic());
-						}
-				}
-			} else {
-				// 鍗曞搧
-				if (goodsEvaluate.getType() == EvaluateEnum.single) {
-					for (ImgInfo imgInfo : imgs) {
-						if (imgInfo.getType() == ImgEnum.video)
-							continue;
+            if (type == 3) {
+                shareCount++;
+                goodsEvaluateService.addShareNum(id);
 
-						GoodsDetailVO goodsVO = imgInfo.getGoodsVO();
-						if (goodsVO == null) {
-							list.add(StringUtil.isNullOrEmpty(imgInfo.getUrlHD()) ? imgInfo.getUrl()
-									: imgInfo.getUrlHD());
-							continue;
-						}
+                executor.execute(new Runnable() {
+                    @Override
+                    public void run() { // 娣诲姞姣忔棩缁熻
+                        dailyCountMomentsService.addShareClick();
+                    }
+                });
+            }
 
-						String jumpLink = getJumpLink(goodsVO, user, relationId, inviteCode, imgInfo.getUrl());
-						if (!StringUtil.isNullOrEmpty(jumpLink)) {
-							list.add(jumpLink);
-						}
-					}
+            if (list.size() == 0) {
+                out.print(JsonUtil.loadFalseResult("鎿嶄綔澶辫触"));
+                return;
+            }
 
-				} else if (goodsEvaluate.getType() == EvaluateEnum.multiple) {
-					if (type == 1) {
-						for (ImgInfo imgInfo : imgs) {
-							if (imgInfo.getGoodsVO() != null)
-								if (imgInfo.getGoodsVO().getGoodsId().equalsIgnoreCase(goodsId)
-										&& imgInfo.getGoodsVO().getGoodsType() == goodsType.intValue()) {
-									String jumpLink = getJumpLink(imgInfo.getGoodsVO(), user, relationId, inviteCode,
-											imgInfo.getUrl());
-									if (!StringUtil.isNullOrEmpty(jumpLink)) {
-										list.add(jumpLink);
-									}
-									break;
-								}
-						}
-					} else if (type == 2 || type == 3) {
-						for (ImgInfo imgInfo : imgs) {
-							if (imgInfo.getGoodsVO() != null) {
-								String jumpLink = getJumpLink(imgInfo.getGoodsVO(), user, relationId, inviteCode,
-										imgInfo.getUrl());
-								if (!StringUtil.isNullOrEmpty(jumpLink)) {
-									list.add(jumpLink);
-								}
-							}
-						}
-					}
+            JSONObject data = new JSONObject();
+            data.put("count", shareCount);
+            data.put("list", list);
+            out.print(JsonUtil.loadTrueResult(data));
+        } catch (Exception e) {
+            out.print(JsonUtil.loadFalseResult("鍒嗕韩鍥剧敓鎴愬け璐�"));
+            return;
+        }
+    }
 
-				} else if (goodsEvaluate.getType() == EvaluateEnum.activity) {
-					for (ImgInfo imgInfo : imgs) {
-						if (imgInfo.getType() == ImgEnum.goods || imgInfo.getType() == ImgEnum.video)
-							continue;
-						if (imgInfo.getType() == ImgEnum.img)
-							list.add(StringUtil.isNullOrEmpty(imgInfo.getUrlHD()) ? imgInfo.getUrl()
-									: imgInfo.getUrlHD());
-						else if (imgInfo.getType() == ImgEnum.activity)
-							if (!StringUtil.isNullOrEmpty(imgInfo.getActivityPic())) {
-								list.add(imgInfo.getActivityPic());
-							} else if (!StringUtil.isNullOrEmpty(imgInfo.getUrl())) {
-								list.add(imgInfo.getUrl());
-							}
-					}
-				}
-			}
+    private String getJumpLink(GoodsDetailVO goodsVO, UserInfo user, String relationId, String inviteCode,
+                               String mainPic, SystemEnum system) {
+        String jumpLink = null;
+        if (goodsVO.getGoodsType() == Constant.SOURCE_TYPE_TAOBAO) {
+            TaoBaoLink taoBaoLink = null;
+            try {
+                taoBaoLink = taoBaoLinkManager.getTaoBaoLinkForShare(system, user.getId(),goodsVO.getGoodsId(),
+                        relationId, null);
+            } catch (TaoBaoConvertLinkException e) {
+                e.printStackTrace();
+            }
+            jumpLink = ShareControllerV2.getERCodeContentNew(
+                    configService.getValue(ConfigKeyEnum.taobaoShareQrcodeText.getKey(), system), taoBaoLink.getGoods(),
+                    TaoBaoUtil.filterTaoToken(taoBaoLink.getTaoToken()));
+        } else if (goodsVO.getGoodsType() == Constant.SOURCE_TYPE_JD) {
+            JDGoods jdGoods = jdGoodsCacheUtil.getGoodsInfo(goodsVO.getGoodsId());
+            if (jdGoods == null) {
+                return null;
+            }
 
-			Integer shareCount = goodsEvaluate.getShareNum();
-			if (shareCount == null) {
-				shareCount = 0;
-			}
+            String couponUrl = null;
+            JDCouponInfo couponInfo = JDUtil.getShowCouponInfo(jdGoods);
+            if (couponInfo != null) {
+                couponUrl = couponInfo.getLink();
+            }
+            String materialId = "https://item.jd.com/" + goodsVO.getGoodsId() + ".html";
+            try {
+                jumpLink = JDApiUtil.convertLinkWithSubUnionId(materialId, couponUrl, null, pidManager.getPidCache(system, Constant.SOURCE_TYPE_JD, SystemPIDInfo.PidType.share),
+                        user.getId() + "");
+            } catch (Exception e) {
+                logger.warn(String.format("浜笢杞摼鍑洪敊锛歮aterialId-%s  couponUrl-%s",materialId,couponUrl), e);
+            }
+        } else if (goodsVO.getGoodsType() == Constant.SOURCE_TYPE_PDD) {
+            PDDGoodsDetail pddGoodsDetail = PinDuoDuoApiUtil.getGoodsDetail(goodsVO.getGoodsId());
+            if (pddGoodsDetail == null) {
+                return null;
+            }
 
-			if (type == 3) {
-				shareCount++;
-				goodsEvaluateService.addShareNum(id);
+            jumpLink = PinDuoDuoApiUtil.getPromotionUrl(pddGoodsDetail.getGoodsSign(), pidManager.getPidCache(system, Constant.SOURCE_TYPE_PDD, SystemPIDInfo.PidType.share), user.getId() + "");
+        }
 
-				executor.execute(new Runnable() {
-					@Override
-					public void run() { // 娣诲姞姣忔棩缁熻
-						dailyCountMomentsService.addShareClick();
-					}
-				});
-			}
+        FileUploadResult uploadResult = qrCodeService.drawDynamicGoodsPoster(jumpLink, user.getPortrait(), inviteCode,
+                mainPic, goodsVO);
+        if (uploadResult != null) {
+            return uploadResult.getUrl();
+        }
+        return null;
+    }
 
-			if (list.size() == 0) {
-				out.print(JsonUtil.loadFalseResult("璇ヤ俊鎭凡涓嬫灦"));
-				return;
-			}
+    /**
+     * 璇勮澶嶅埗-H5
+     *
+     * @param acceptData
+     * @param id
+     * @param cid        璇勮id
+     * @param out
+     */
+    @RequestMapping(value = "evaluateComment", method = RequestMethod.POST)
+    public void evaluateComment(AcceptData acceptData, Long uid, String id, String cid, PrintWriter out) {
+        if (StringUtil.isNullOrEmpty(id)) {
+            out.print(JsonUtil.loadFalseResult("id涓嶈兘涓虹┖"));
+            return;
+        }
 
-			JSONObject data = new JSONObject();
-			data.put("count", shareCount);
-			data.put("list", list);
-			out.print(JsonUtil.loadTrueResult(data));
-		} catch (Exception e) {
-			out.print(JsonUtil.loadFalseResult("鍒嗕韩鍥剧敓鎴愬け璐�"));
-			return;
-		}
-	}
+        GoodsEvaluate goodsEvaluate = goodsEvaluateService.getById(id);
+        if (goodsEvaluate == null) {
+            out.print(JsonUtil.loadFalseResult("璇ュ唴瀹瑰凡涓嶅瓨鍦�"));
+            return;
+        }
 
-	private String getJumpLink(GoodsDetailVO goodsVO, UserInfo user, String relationId, String inviteCode,
-			String mainPic) {
-		String jumpLink = null;
-		if (goodsVO.getGoodsType() == Constant.SOURCE_TYPE_TAOBAO) {
-			TaoBaoLink taoBaoLink = null;
-			try {
-				taoBaoLink = shareGoodsService.getTaoBaoLinkForShare(user.getId(), Long.parseLong(goodsVO.getGoodsId()),
-						relationId);
-			} catch (ShareGoodsException e) {
-				e.printStackTrace();
-			}
-			jumpLink = ShareControllerV2.getERCodeContentNew(
-					configService.get(ConfigKeyEnum.taobaoShareQrcodeText.getKey()), taoBaoLink.getGoods(),
-					TaoBaoUtil.filterTaoToken(taoBaoLink.getTaoToken()));
-		} else if (goodsVO.getGoodsType() == Constant.SOURCE_TYPE_JD) {
-			JDGoods jdGoods = jdGoodsCacheUtil.getGoodsInfo(Long.parseLong(goodsVO.getGoodsId()));
-			if (jdGoods == null) {
-				return null;
-			}
+        UserInfo user = userInfoService.getUserByIdWithMybatis(uid);
+        if (user == null) {
+            out.print(JsonUtil.loadFalseResult("鐢ㄦ埛鏈櫥褰�"));
+            return;
+        }
 
-			String couponUrl = null;
-			JDCouponInfo couponInfo = JDUtil.getShowCouponInfo(jdGoods);
-			if (couponInfo != null) {
-				couponUrl = couponInfo.getLink();
-			}
-			String materialId = "https://item.jd.com/" + goodsVO.getGoodsId() + ".html";
-			jumpLink = JDApiUtil.convertLinkWithSubUnionId(materialId, couponUrl, JDApiUtil.POSITION_SHARE + "",
-					user.getId() + "");
-		} else if (goodsVO.getGoodsType() == Constant.SOURCE_TYPE_PDD) {
-			jumpLink = PinDuoDuoApiUtil.getPromotionUrl(Long.parseLong(goodsVO.getGoodsId()),
-					PinDuoDuoApiUtil.PID_SHARE + "", user.getId() + "");
-		}
+        if (user != null && user.getState() != UserInfo.STATE_NORMAL) {
+            out.print(JsonUtil.loadFalseResult(Constant.CODE_FORBIDDEN_USER, Constant.FORBIDDEN_USER_REASON_DESC));
+            return;
+        }
 
-		FileUploadResult uploadResult = qrCodeService.drawDynamicGoodsPoster(jumpLink, user.getPortrait(), inviteCode,
-				mainPic, goodsVO);
-		if (uploadResult != null) {
-			return uploadResult.getUrl();
-		}
-		return null;
-	}
+        if (userFunctionsLimitService.isLimit(uid, SystemFunction.share, new Date())) {
+            out.print(JsonUtil.loadFalseResult(1, "璇ュ姛鑳介檺鍒朵娇鐢�"));
+            return;
+        }
 
-	/**
-	 * 璇勮澶嶅埗-H5
-	 * 
-	 * @param acceptData
-	 * @param id
-	 * @param cid
-	 *            璇勮id
-	 * @param out
-	 */
-	@RequestMapping(value = "evaluateComment", method = RequestMethod.POST)
-	public void evaluateComment(AcceptData acceptData, Long uid, String id, String cid, PrintWriter out) {
-		if (StringUtil.isNullOrEmpty(id)) {
-			out.print(JsonUtil.loadFalseResult("id涓嶈兘涓虹┖"));
-			return;
-		}
+        UserExtraTaoBaoInfo taoBaoInfo = userExtraTaoBaoInfoService.getByUid(uid);
+        String relationId = null;
+        if (taoBaoInfo != null && taoBaoInfo.getRelationId() != null && taoBaoInfo.getRelationValid() != null
+                && taoBaoInfo.getRelationValid() == true)
+            relationId = taoBaoInfo.getRelationId();
 
-		GoodsEvaluate goodsEvaluate = goodsEvaluateService.getById(id);
-		if (goodsEvaluate == null) {
-			out.print(JsonUtil.loadFalseResult("璇ュ唴瀹瑰凡涓嶅瓨鍦�"));
-			return;
-		}
+        if (StringUtil.isNullOrEmpty(relationId)) {
+            out.print(JsonUtil.loadFalseResult(2, "娣樺疂鏈巿鏉冿紝璇峰墠寰�\"鎴戠殑\"缁戝畾娣樺疂璐﹀彿"));
+            return;
+        }
 
-		UserInfo user = userInfoService.getUserByIdWithMybatis(uid);
-		if (user == null) {
-			out.print(JsonUtil.loadFalseResult("鐢ㄦ埛鏈櫥褰�"));
-			return;
-		}
+        String text = "";
+        CommentInfo comment = null;
+        List<CommentInfo> comments = goodsEvaluate.getComments();
+        if (comments != null) {
+            for (CommentInfo commentInfo : comments) {
+                if (cid.equals(commentInfo.getId())) {
+                    text = commentInfo.getContent();
+                    comment = commentInfo;
+                    break;
+                }
+            }
+        }
 
-		if (user != null && user.getState() != UserInfo.STATE_NORMAL) {
-			out.print(JsonUtil.loadFalseResult(Constant.CODE_FORBIDDEN_USER, Constant.FORBIDDEN_USER_REASON_DESC));
-			return;
-		}
+        String newText = text; // 闈為�氱敤鍒搁渶瑕侀獙璇�
 
-		UserExtraTaoBaoInfo taoBaoInfo = userExtraTaoBaoInfoService.getByUid(uid);
-		String relationId = null;
-		if (taoBaoInfo != null && taoBaoInfo.getRelationId() != null && taoBaoInfo.getRelationValid() != null
-				&& taoBaoInfo.getRelationValid() == true)
-			relationId = taoBaoInfo.getRelationId();
+        //鐗逛环鍙渶瑕佸鍒舵枃瀛楋紝涓嶉渶瑕佽浆閾�
+        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 (StringUtil.isNullOrEmpty(relationId)) {
-			out.print(JsonUtil.loadFalseResult(2, "娣樺疂鏈巿鏉冿紝璇峰墠寰�\"鎴戠殑\"缁戝畾娣樺疂璐﹀彿"));
-			return;
-		}
 
-		String text = "";
-		CommentInfo comment = null;
-		List<CommentInfo> comments = goodsEvaluate.getComments();
-		if (comments != null) {
-			for (CommentInfo commentInfo : comments) {
-				if (cid.equals(commentInfo.getId())) {
-					text = commentInfo.getContent();
-					comment = commentInfo;
-					break;
-				}
-			}
-		}
+        if (comment != null && (comment.getNeedSpin() == null || comment.getNeedSpin())) {
+            try {
+                newText = convertLinkManager.convertLinkFromText(acceptData.getSystem(), text, uid, true, true);
+            } catch (ConvertLinkException e) {
+                if (e.getCode() != ConvertLinkException.CODE_NONE) {
+                    out.print(JsonUtil.loadFalseResult("璇勮鐢熸垚澶辫触"));
+                    return;
+                }
+            } catch (Exception e) {
+                LogHelper.errorDetailInfo(e);
+                out.print(JsonUtil.loadFalseResult("璇勮鐢熸垚澶辫触"));
+                return;
+            }
+        }
 
-		String newText = text; // 闈為�氱敤鍒搁渶瑕侀獙璇�
-		if (comment != null && (comment.getNeedSpin() == null || comment.getNeedSpin())) {
-			try {
-				newText = convertLinkManager.convertLinkFromText(text, uid, true);
-			} catch (ConvertLinkExceptionException e) {
-				if (e.getCode() != ConvertLinkExceptionException.CODE_NONE) {
-					out.print(JsonUtil.loadFalseResult("璇勮鐢熸垚澶辫触"));
-					return;
-				}
-			} catch (Exception e) {
-				LogHelper.errorDetailInfo(e);
-				out.print(JsonUtil.loadFalseResult("璇勮鐢熸垚澶辫触"));
-				return;
-			}
-		}
+        // 鏇挎崲浠锋牸
+        if (goodsEvaluate.getType() == EvaluateEnum.single) {
+            GoodsDetailVO goods = goodsEvaluate.getGoods();
+            newText = newText.replace("[鍘熶环]", MoneyBigDecimalUtil.getWithNoZera(goods.getZkPrice()) + "");
+            if (!goods.isHasCoupon()) {
+                newText = newText.replace("棰嗗埜鎶㈣喘", "鎶㈣喘");
+                newText = newText.replace("銆愬埜鍚庝环銆慬鍒稿悗浠穄鍏�", "");
+            } else {
+                newText = newText.replace("[鍒稿悗浠穄", MoneyBigDecimalUtil.getWithNoZera(goods.getCouponPrice()) + "");
+            }
+            newText = newText.replace("\r\n\r\n", "\r\n").replace("\r\n\r\n", "\r\n").replace("\r\n\r\n", "\r\n");
+        }
 
-		// 鏇挎崲浠锋牸
-		if (goodsEvaluate.getType() == EvaluateEnum.single) {
-			GoodsDetailVO goods = goodsEvaluate.getGoods();
-			newText = newText.replace("[鍘熶环]", MoneyBigDecimalUtil.getWithNoZera(goods.getZkPrice()) + "");
-			if (!goods.isHasCoupon()) {
-				newText = newText.replace("棰嗗埜鎶㈣喘", "鎶㈣喘");
-				newText = newText.replace("銆愬埜鍚庝环銆慬鍒稿悗浠穄鍏�", "");
-			} else {
-				newText = newText.replace("[鍒稿悗浠穄", MoneyBigDecimalUtil.getWithNoZera(goods.getCouponPrice()) + "");
-			}
-			newText = newText.replace("\r\n\r\n", "\r\n").replace("\r\n\r\n", "\r\n").replace("\r\n\r\n", "\r\n");
-		}
+        JSONObject data = new JSONObject();
+        data.put("text", newText);
+        out.print(JsonUtil.loadTrueResult(data));
 
-		JSONObject data = new JSONObject();
-		data.put("text", newText);
-		out.print(JsonUtil.loadTrueResult(data));
+        executor.execute(new Runnable() {
+            @Override
+            public void run() { // 娣诲姞姣忔棩缁熻
+                dailyCountMomentsService.addCopyComment();
+            }
+        });
+    }
 
-		executor.execute(new Runnable() {
-			@Override
-			public void run() { // 娣诲姞姣忔棩缁熻
-				dailyCountMomentsService.addCopyComment();
-			}
-		});
-	}
+    /**
+     * 璇勮澶嶅埗-涓撻
+     *
+     * @param acceptData
+     * @param id
+     * @param out
+     */
+    @RequestMapping(value = "copySpecialComment", method = RequestMethod.POST)
+    public void copySpecialComment(AcceptData acceptData, Long uid, Long id, PrintWriter out) {
+        if (uid == null || id == null) {
+            out.print(JsonUtil.loadFalseResult("鍙傛暟涓嶈兘涓虹┖"));
+            return;
+        }
 
-	/**
-	 * 璇勮澶嶅埗-涓撻
-	 * 
-	 * @param acceptData
-	 * @param id
-	 * @param out
-	 */
-	@RequestMapping(value = "copySpecialComment", method = RequestMethod.POST)
-	public void copySpecialComment(AcceptData acceptData, Long uid, Long id, PrintWriter out) {
-		if (uid == null || id == null) {
-			out.print(JsonUtil.loadFalseResult("鍙傛暟涓嶈兘涓虹┖"));
-			return;
-		}
+        CommonShareInfo shareInfo = commonShareInfoService.getByPidAndType(id, CommonShareInfoEnum.special.name());
+        if (shareInfo == null || StringUtil.isNullOrEmpty(shareInfo.getComment())) {
+            out.print(JsonUtil.loadFalseResult("璇ュ唴瀹瑰凡涓嶅瓨鍦�"));
+            return;
+        }
 
-		CommonShareInfo shareInfo = commonShareInfoService.getByPidAndType(id, CommonShareInfoEnum.special.name());
-		if (shareInfo == null || StringUtil.isNullOrEmpty(shareInfo.getComment())) {
-			out.print(JsonUtil.loadFalseResult("璇ュ唴瀹瑰凡涓嶅瓨鍦�"));
-			return;
-		}
+        UserInfo user = userInfoService.getUserByIdWithMybatis(uid);
+        if (user == null) {
+            out.print(JsonUtil.loadFalseResult("鐢ㄦ埛鏈櫥褰�"));
+            return;
+        }
 
-		UserInfo user = userInfoService.getUserByIdWithMybatis(uid);
-		if (user == null) {
-			out.print(JsonUtil.loadFalseResult("鐢ㄦ埛鏈櫥褰�"));
-			return;
-		}
+        if (user != null && user.getState() != UserInfo.STATE_NORMAL) {
+            out.print(JsonUtil.loadFalseResult(Constant.CODE_FORBIDDEN_USER, Constant.FORBIDDEN_USER_REASON_DESC));
+            return;
+        }
 
-		if (user != null && user.getState() != UserInfo.STATE_NORMAL) {
-			out.print(JsonUtil.loadFalseResult(Constant.CODE_FORBIDDEN_USER, Constant.FORBIDDEN_USER_REASON_DESC));
-			return;
-		}
+        UserExtraTaoBaoInfo taoBaoInfo = userExtraTaoBaoInfoService.getByUid(uid);
+        String relationId = null;
+        if (taoBaoInfo != null && taoBaoInfo.getRelationId() != null && taoBaoInfo.getRelationValid() != null
+                && taoBaoInfo.getRelationValid() == true)
+            relationId = taoBaoInfo.getRelationId();
 
-		UserExtraTaoBaoInfo taoBaoInfo = userExtraTaoBaoInfoService.getByUid(uid);
-		String relationId = null;
-		if (taoBaoInfo != null && taoBaoInfo.getRelationId() != null && taoBaoInfo.getRelationValid() != null
-				&& taoBaoInfo.getRelationValid() == true)
-			relationId = taoBaoInfo.getRelationId();
+        if (StringUtil.isNullOrEmpty(relationId)) {
+            out.print(JsonUtil.loadFalseResult(2, "娣樺疂鏈巿鏉冿紝璇峰墠寰�\"鎴戠殑\"缁戝畾娣樺疂璐﹀彿"));
+            return;
+        }
 
-		if (StringUtil.isNullOrEmpty(relationId)) {
-			out.print(JsonUtil.loadFalseResult(2, "娣樺疂鏈巿鏉冿紝璇峰墠寰�\"鎴戠殑\"缁戝畾娣樺疂璐﹀彿"));
-			return;
-		}
+        String text = shareInfo.getComment();
+        String newText = text;
+        if (shareInfo.getNeedSpin() != null && shareInfo.getNeedSpin()) {
+            try {
+                newText = convertLinkManager.convertLinkFromText(acceptData.getSystem(), text, uid, true, true);
+            } catch (ConvertLinkException e) {
+                if (e.getCode() != ConvertLinkException.CODE_NONE) {
+                    out.print(JsonUtil.loadFalseResult("璇勮鐢熸垚澶辫触"));
+                    return;
+                }
+            } catch (Exception e) {
+                LogHelper.errorDetailInfo(e);
+                out.print(JsonUtil.loadFalseResult("璇勮鐢熸垚澶辫触"));
+                return;
+            }
+        }
 
-		String text = shareInfo.getComment();
-		String newText = text;
-		if (shareInfo.getNeedSpin() != null && shareInfo.getNeedSpin()) {
-			try {
-				newText = convertLinkManager.convertLinkFromText(text, uid, true);
-			} catch (ConvertLinkExceptionException e) {
-				if (e.getCode() != ConvertLinkExceptionException.CODE_NONE) {
-					out.print(JsonUtil.loadFalseResult("璇勮鐢熸垚澶辫触"));
-					return;
-				}
-			} catch (Exception e) {
-				LogHelper.errorDetailInfo(e);
-				out.print(JsonUtil.loadFalseResult("璇勮鐢熸垚澶辫触"));
-				return;
-			}
-		}
+        JSONObject data = new JSONObject();
+        data.put("text", newText);
+        out.print(JsonUtil.loadTrueResult(data));
+    }
 
-		JSONObject data = new JSONObject();
-		data.put("text", newText);
-		out.print(JsonUtil.loadTrueResult(data));
-	}
+    @RequestMapping(value = "getActivityDetail")
+    public void getActivityDetail(String callback, AcceptData acceptData, Long uid, String type, String id,
+                                  PrintWriter out) {
+        if (uid == null || StringUtil.isNullOrEmpty(id) || StringUtil.isNullOrEmpty(type)) {
+            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鍙傛暟涓嶈兘涓虹┖"));
+            return;
+        }
 
-	@RequestMapping(value = "getActivityDetail")
-	public void getActivityDetail(String callback, AcceptData acceptData, Long uid, String type, String id,
-			PrintWriter out) {
-		if (uid == null || StringUtil.isNullOrEmpty(id) || StringUtil.isNullOrEmpty(type)) {
-			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鍙傛暟涓嶈兘涓虹┖"));
-			return;
-		}
+        String title = "";
+        String comment = "";
+        String params = "";
+        String desc = "";
+        Date startTime = null;
+        Date endTime = null;
+        JumpDetailV2 jumpDetail = null;
+        List<String> imgs = new ArrayList<>();
+        if ("circle".equalsIgnoreCase(type)) { // 鍙戝湀娲诲姩
+            GoodsEvaluate evaluate = goodsEvaluateService.getById(id);
+            if (evaluate == null) {
+                JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇ユ椿鍔ㄥ凡涓嬫灦"));
+                return;
+            }
 
-		String title = "";
-		String comment = "";
-		String params = "";
-		String desc = "";
-		Date startTime = null;
-		Date endTime = null;
-		JumpDetailV2 jumpDetail = null;
-		List<String> imgs = new ArrayList<>();
-		if ("circle".equalsIgnoreCase(type)) { // 鍙戝湀娲诲姩
-			GoodsEvaluate evaluate = goodsEvaluateService.getById(id);
-			if (evaluate == null) {
-				JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇ユ椿鍔ㄥ凡涓嬫灦"));
-				return;
-			}
+            title = evaluate.getTitle();
+            List<CommentInfo> comments = evaluate.getComments();
+            if (comments != null && comments.size() > 0) {
+                comment = comments.get(0).getContent();
+            }
 
-			title = evaluate.getTitle();
-			List<CommentInfo> comments = evaluate.getComments();
-			if (comments != null && comments.size() > 0) {
-				comment = comments.get(0).getContent();
-			}
+            String jumpLink = null;
+            if (!StringUtil.isNullOrEmpty(evaluate.getJumpLink())) {
+                jumpLink = evaluate.getJumpLink();
+            }
 
-			String jumpLink = null;
-			if (!StringUtil.isNullOrEmpty(evaluate.getJumpLink())) {
-				jumpLink = evaluate.getJumpLink();
-			}
+            List<ImgInfo> imgList = evaluate.getImgList();
+            if (imgList != null && imgList.size() > 0) {
+                for (ImgInfo imgInfo : imgList) {
+                    if (!StringUtil.isNullOrEmpty(imgInfo.getUrl())
+                            && (imgInfo.getType() == ImgEnum.img || imgInfo.getType() == ImgEnum.activity)) {
+                        imgs.add(imgInfo.getUrl());
+                    }
 
-			List<ImgInfo> imgList = evaluate.getImgList();
-			if (imgList != null && imgList.size() > 0) {
-				for (ImgInfo imgInfo : imgList) {
-					if (!StringUtil.isNullOrEmpty(imgInfo.getUrl())
-							&& (imgInfo.getType() == ImgEnum.img || imgInfo.getType() == ImgEnum.activity)) {
-						imgs.add(imgInfo.getUrl());
-					}
+                    if (imgInfo.getType() == ImgEnum.img || imgInfo.getType() == ImgEnum.activity) {
+                        if (StringUtil.isNullOrEmpty(jumpLink) && !StringUtil.isNullOrEmpty(imgInfo.getActivityUrl())) {
+                            jumpLink = imgInfo.getActivityUrl();
+                        }
+                    }
+                }
+            }
 
-					if (imgInfo.getType() == ImgEnum.img || imgInfo.getType() == ImgEnum.activity) {
-						if (StringUtil.isNullOrEmpty(jumpLink) && !StringUtil.isNullOrEmpty(imgInfo.getActivityUrl())) {
-							jumpLink = imgInfo.getActivityUrl();
-						}
-					}
-				}
-			}
+            int platformCode = Constant.getPlatformCode(acceptData.getPlatform());
+            jumpDetail = jumpDetailV2Service.getByTypeCache("web", platformCode,
+                    Integer.parseInt(acceptData.getVersion()), acceptData.getSystem());
+            JSONObject inner = new JSONObject();
+            inner.put("url", jumpLink);
+            params = inner.toString();
+        } else {
+            long pid = Long.parseLong(id);
+            if (CommonShareInfoEnum.special.name().equalsIgnoreCase(type)) {
+                Special special = specialService.selectByPrimaryKey(pid);
+                if (special == null) {
+                    JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇ユ椿鍔ㄥ凡涓嬫灦"));
+                    return;
+                }
 
-			int platformCode = Constant.getPlatformCode(acceptData.getPlatform());
-			jumpDetail = jumpDetailV2Service.getByTypeCache("web", platformCode,
-					Integer.parseInt(acceptData.getVersion()));
-			JSONObject inner = new JSONObject();
-			inner.put("url", jumpLink);
-			params = inner.toString();
-		} else {
-			long pid = Long.parseLong(id);
-			if (CommonShareInfoEnum.special.name().equalsIgnoreCase(type)) {
-				Special special = specialService.selectByPrimaryKey(pid);
-				if (special == null) {
-					JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇ユ椿鍔ㄥ凡涓嬫灦"));
-					return;
-				}
+                params = special.getParams();
+                jumpDetail = special.getJumpDetail();
+                if (!StringUtil.isNullOrEmpty(special.getPicture())) {
+                    imgs.add(special.getPicture());
+                }
 
-				params = special.getParams();
-				jumpDetail = special.getJumpDetail();
-				if (!StringUtil.isNullOrEmpty(special.getPicture())) {
-					imgs.add(special.getPicture());
-				}
+                title = special.getName();
 
-				title = special.getName();
+                desc = special.getRemark();
+                startTime = special.getStartTime();
+                endTime = special.getEndTime();
+            } else if (CommonShareInfoEnum.banner.name().equalsIgnoreCase(type)) {
+                SwiperPicture swiper = swiperPictureService.selectByPrimaryKey(pid);
+                if (swiper == null) {
+                    JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇ユ椿鍔ㄥ凡涓嬫灦"));
+                    return;
+                }
+                params = swiper.getParams();
+                jumpDetail = swiper.getJumpDetail();
+                if (!StringUtil.isNullOrEmpty(swiper.getSrc())) {
+                    imgs.add(swiper.getSrc());
+                }
 
-				desc = special.getRemark();
-				startTime = special.getStartTime();
-				endTime = special.getEndTime();
-			} else if (CommonShareInfoEnum.banner.name().equalsIgnoreCase(type)) {
-				SwiperPicture swiper = swiperPictureService.selectByPrimaryKey(pid);
-				if (swiper == null) {
-					JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇ユ椿鍔ㄥ凡涓嬫灦"));
-					return;
-				}
-				params = swiper.getParams();
-				jumpDetail = swiper.getJumpDetail();
-				if (!StringUtil.isNullOrEmpty(swiper.getSrc())) {
-					imgs.add(swiper.getSrc());
-				}
+                title = swiper.getTitle();
+                desc = swiper.getDesc();
+                startTime = swiper.getStartTime();
+                endTime = swiper.getEndTime();
+            }
+            CommonShareInfo shareInfo = commonShareInfoService.getByPidAndType(pid, type);
+            if (shareInfo != null && !StringUtil.isNullOrEmpty(shareInfo.getComment())) {
+                comment = shareInfo.getComment();
+            }
+        }
 
-				title = swiper.getTitle();
-				desc = swiper.getDesc();
-				startTime = swiper.getStartTime();
-				endTime = swiper.getEndTime();
-			}
-			CommonShareInfo shareInfo = commonShareInfoService.getByPidAndType(pid, type);
-			if (shareInfo != null && !StringUtil.isNullOrEmpty(shareInfo.getComment())) {
-				comment = shareInfo.getComment();
-			}
-		}
+        if (!StringUtil.isNullOrEmpty(comment)) { // 鏇挎崲娣樺疂瀹樻柟娲诲姩
+            List<String> activityIdList = convertLinkManager.getTaoBaoOfficialActivityId(comment);
+            for (String st : activityIdList)
+                comment = comment.replace(st, "");
+        }
 
-		if (!StringUtil.isNullOrEmpty(comment)) { // 鏇挎崲娣樺疂瀹樻柟娲诲姩
-			List<String> activityIdList = convertLinkManager.getTaoBaoOfficialActivityId(comment);
-			for (String st : activityIdList)
-				comment = comment.replace(st, "");
-		}
+        JSONObject data = new JSONObject();
+        data.put("title", title);
+        data.put("desc", desc);
+        data.put("comment", comment);
+        data.put("params", params);
+        data.put("jumpDetail", jumpDetail);
+        data.put("imgs", imgs);
+        if (startTime != null) {
+            data.put("startTime", TimeUtil.getGernalTime(startTime.getTime(), "yyyy.MM.dd"));
+        }
 
-		JSONObject data = new JSONObject();
-		data.put("title", title);
-		data.put("desc", desc);
-		data.put("comment", comment);
-		data.put("params", params);
-		data.put("jumpDetail", jumpDetail);
-		data.put("imgs", imgs);
-		if (startTime != null) {
-			data.put("startTime", TimeUtil.getGernalTime(startTime.getTime(), "yyyy.MM.dd"));
-		}
+        if (endTime != null) {
+            data.put("endTime", TimeUtil.getGernalTime(endTime.getTime(), "yyyy.MM.dd"));
+        }
 
-		if (endTime != null) {
-			data.put("endTime", TimeUtil.getGernalTime(endTime.getTime(), "yyyy.MM.dd"));
-		}
+        JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
+    }
 
-		JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
-	}
+    /**
+     * 璇勮澶嶅埗-涓撻
+     *
+     * @param acceptData
+     * @param id
+     * @param out
+     */
+    @RequestMapping(value = "copyShareComment")
+    public void copyShareComment(String callback, AcceptData acceptData, Long uid, String id, String type,
+                                 PrintWriter out) {
+        if (uid == null || StringUtil.isNullOrEmpty(id) || StringUtil.isNullOrEmpty(type)) {
+            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鍙傛暟涓嶈兘涓虹┖"));
+            return;
+        }
 
-	/**
-	 * 璇勮澶嶅埗-涓撻
-	 * 
-	 * @param acceptData
-	 * @param id
-	 * @param out
-	 */
-	@RequestMapping(value = "copyShareComment")
-	public void copyShareComment(String callback, AcceptData acceptData, Long uid, String id, String type,
-			PrintWriter out) {
-		if (uid == null || StringUtil.isNullOrEmpty(id) || StringUtil.isNullOrEmpty(type)) {
-			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鍙傛暟涓嶈兘涓虹┖"));
-			return;
-		}
+        if ("circle".equalsIgnoreCase(type)) { // 鍙戝湀娲诲姩
+            copyActivityComment(callback, acceptData, uid, id, out);
+            return;
+        }
 
-		if ("circle".equalsIgnoreCase(type)) { // 鍙戝湀娲诲姩
-			copyActivityComment(callback, acceptData, uid, id, out);
-			return;
-		}
+        long pid = Long.parseLong(id);
+        CommonShareInfo shareInfo = commonShareInfoService.getByPidAndType(pid, type);
+        if (shareInfo == null || StringUtil.isNullOrEmpty(shareInfo.getComment())) {
+            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇ュ唴瀹瑰凡涓嶅瓨鍦�"));
+            return;
+        }
 
-		long pid = Long.parseLong(id);
-		CommonShareInfo shareInfo = commonShareInfoService.getByPidAndType(pid, type);
-		if (shareInfo == null || StringUtil.isNullOrEmpty(shareInfo.getComment())) {
-			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇ュ唴瀹瑰凡涓嶅瓨鍦�"));
-			return;
-		}
+        UserInfo user = userInfoService.getUserByIdWithMybatis(uid);
+        if (user == null) {
+            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鐢ㄦ埛鏈櫥褰�"));
+            return;
+        }
 
-		UserInfo user = userInfoService.getUserByIdWithMybatis(uid);
-		if (user == null) {
-			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鐢ㄦ埛鏈櫥褰�"));
-			return;
-		}
+        if (user != null && user.getState() != UserInfo.STATE_NORMAL) {
+            JsonUtil.printMode(out, callback,
+                    JsonUtil.loadFalseResult(Constant.CODE_FORBIDDEN_USER, Constant.FORBIDDEN_USER_REASON_DESC));
+            return;
+        }
 
-		if (user != null && user.getState() != UserInfo.STATE_NORMAL) {
-			JsonUtil.printMode(out, callback,
-					JsonUtil.loadFalseResult(Constant.CODE_FORBIDDEN_USER, Constant.FORBIDDEN_USER_REASON_DESC));
-			return;
-		}
+        UserExtraTaoBaoInfo taoBaoInfo = userExtraTaoBaoInfoService.getByUid(uid);
+        String relationId = null;
+        if (taoBaoInfo != null && taoBaoInfo.getRelationId() != null && taoBaoInfo.getRelationValid() != null
+                && taoBaoInfo.getRelationValid() == true)
+            relationId = taoBaoInfo.getRelationId();
 
-		UserExtraTaoBaoInfo taoBaoInfo = userExtraTaoBaoInfoService.getByUid(uid);
-		String relationId = null;
-		if (taoBaoInfo != null && taoBaoInfo.getRelationId() != null && taoBaoInfo.getRelationValid() != null
-				&& taoBaoInfo.getRelationValid() == true)
-			relationId = taoBaoInfo.getRelationId();
+        if (StringUtil.isNullOrEmpty(relationId)) {
+            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(2, "娣樺疂鏈巿鏉冿紝璇峰墠寰�\"鎴戠殑\"缁戝畾娣樺疂璐﹀彿"));
+            return;
+        }
 
-		if (StringUtil.isNullOrEmpty(relationId)) {
-			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(2, "娣樺疂鏈巿鏉冿紝璇峰墠寰�\"鎴戠殑\"缁戝畾娣樺疂璐﹀彿"));
-			return;
-		}
+        String text = shareInfo.getComment();
+        String newText = text;
+        if (shareInfo.getNeedSpin() != null && shareInfo.getNeedSpin()) {
+            try {
+                newText = convertLinkManager.convertLinkFromText(acceptData.getSystem(), text, uid, true, true);
+            } catch (ConvertLinkException e) {
+                if (e.getCode() != ConvertLinkException.CODE_NONE) {
+                    JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇勮鐢熸垚澶辫触"));
+                    return;
+                }
+            } catch (Exception e) {
+                LogHelper.errorDetailInfo(e);
+                JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇勮鐢熸垚澶辫触"));
+                return;
+            }
+        }
 
-		String text = shareInfo.getComment();
-		String newText = text;
-		if (shareInfo.getNeedSpin() != null && shareInfo.getNeedSpin()) {
-			try {
-				newText = convertLinkManager.convertLinkFromText(text, uid, true);
-			} catch (ConvertLinkExceptionException e) {
-				if (e.getCode() != ConvertLinkExceptionException.CODE_NONE) {
-					JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇勮鐢熸垚澶辫触"));
-					return;
-				}
-			} catch (Exception e) {
-				LogHelper.errorDetailInfo(e);
-				JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇勮鐢熸垚澶辫触"));
-				return;
-			}
-		}
+        JSONObject data = new JSONObject();
+        data.put("text", newText);
+        JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
+    }
 
-		JSONObject data = new JSONObject();
-		data.put("text", newText);
-		JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
-	}
+    /**
+     * 娲诲姩鍒嗕韩缁樺浘
+     *
+     * @param type
+     * @param id
+     * @param erCodeContent
+     * @return String 杩斿洖绫诲瀷
+     * @throws
+     * @Title: createActivityShareImg
+     * @Description:
+     */
+    private String createActivityShareImg(String type, String id, String erCodeContent) {
 
-	/**
-	 * 娲诲姩鍒嗕韩缁樺浘
-	 * @Title: createActivityShareImg
-	 * @Description: 
-	 * @param title
-	 * @param desc
-	 * @param imgUrl
-	 * @param erCodeContent
-	 * @return 
-	 * String 杩斿洖绫诲瀷
-	 * @throws
-	 */
-	private String createActivityShareImg(String type, String id, String erCodeContent) {
+        String title = "";
+        String desc = "";
+        String img = "";
+        if ("circle".equalsIgnoreCase(type)) {
 
-		String title = "";
-		String desc = "";
-		String img = "";
-		if ("circle".equalsIgnoreCase(type)) {
+        } else if ("banner".equalsIgnoreCase(type)) {
+            SwiperPicture picture = swiperPictureService.selectByPrimaryKey(Long.parseLong(id));
+            title = picture.getTitle();
+            desc = picture.getDesc();
+            img = picture.getSrc();
+        } else if ("special".equalsIgnoreCase(type)) {
+            Special special = specialService.selectByPrimaryKey(Long.parseLong(id));
+            title = special.getName();
+            desc = special.getRemark();
+            img = special.getPicture();
+        }
 
-		} else if ("banner".equalsIgnoreCase(type)) {
-			SwiperPicture picture = swiperPictureService.selectByPrimaryKey(Long.parseLong(id));
-			title = picture.getTitle();
-			desc = picture.getDesc();
-			img = picture.getSrc();
-		} else if ("special".equalsIgnoreCase(type)) {
-			Special special = specialService.selectByPrimaryKey(Long.parseLong(id));
-			title = special.getName();
-			desc = special.getRemark();
-			img = special.getPicture();
-		}
+        try {
+            InputStream erCodeInputStream = null;
+            erCodeInputStream = QRCodeUtil.getInstance(250).encode(erCodeContent);
+            int[] size = new int[2];
+            try {
+                size = ImageUtil.getImgWidthAndHeight(img);
+            } catch (MalformedURLException e) {
+                e.printStackTrace();
+            } catch (IOException e) {
+                e.printStackTrace();
+            }
+            InputStream resultInputStream = ImageUtil.drawActivityShareImg(HttpUtil.getAsInputStream(img),
+                    (float) size[0] / size[1], title, desc, erCodeInputStream);
+            if (resultInputStream != null) {
+                String filePath = FilePathEnum.activityShare.getPath() + UUID.randomUUID().toString().replace("-", "")
+                        + ".png";
+                FileUploadResult result = COSManager.getInstance().uploadFile(resultInputStream, filePath);
+                if (result != null)
+                    return result.getUrl();
+            }
+        } catch (Exception e1) {
+            e1.printStackTrace();
+        }
 
-		try {
-			InputStream erCodeInputStream = null;
-			erCodeInputStream = QRCodeUtil.getInstance(250).encode(erCodeContent);
-			int[] size = new int[2];
-			try {
-				size = ImageUtil.getImgWidthAndHeight(img);
-			} catch (MalformedURLException e) {
-				e.printStackTrace();
-			} catch (IOException e) {
-				e.printStackTrace();
-			}
-			InputStream resultInputStream = ImageUtil.drawActivityShareImg(HttpUtil.getAsInputStream(img),
-					(float) size[0] / size[1], title, desc, erCodeInputStream);
-			if (resultInputStream != null) {
-				String filePath = FilePathEnum.activityShare.getPath() + UUID.randomUUID().toString().replace("-", "")
-						+ ".png";
-				FileUploadResult result = COSManager.getInstance().uploadFile(resultInputStream, filePath);
-				if (result != null)
-					return result.getUrl();
-			}
-		} catch (Exception e1) {
-			e1.printStackTrace();
-		}
+        return null;
+    }
 
-		return null;
-	}
+    /**
+     * 璇勮澶嶅埗-涓撻
+     *
+     * @param acceptData
+     * @param id
+     * @param out
+     */
+    @RequestMapping(value = "getActivityShareImg")
+    public void getActivityShareImg(String callback, AcceptData acceptData, Long uid, String id, String type,
+                                    PrintWriter out) {
+        if (uid == null || StringUtil.isNullOrEmpty(id) || StringUtil.isNullOrEmpty(type)) {
+            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鍙傛暟涓嶈兘涓虹┖"));
+            return;
+        }
 
-	/**
-	 * 璇勮澶嶅埗-涓撻
-	 * 
-	 * @param acceptData
-	 * @param id
-	 * @param out
-	 */
-	@RequestMapping(value = "getActivityShareImg")
-	public void getActivityShareImg(String callback, AcceptData acceptData, Long uid, String id, String type,
-			PrintWriter out) {
-		if (uid == null || StringUtil.isNullOrEmpty(id) || StringUtil.isNullOrEmpty(type)) {
-			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鍙傛暟涓嶈兘涓虹┖"));
-			return;
-		}
+        if ("circle".equalsIgnoreCase(type)) { // 鍙戝湀娲诲姩
+            // copyActivityComment(callback, acceptData, uid, id, out);
+            // TODO 鍒嗕韩鍙戝湀鐨勫浘
+            return;
+        }
 
-		if ("circle".equalsIgnoreCase(type)) { // 鍙戝湀娲诲姩
-			// copyActivityComment(callback, acceptData, uid, id, out);
-			// TODO 鍒嗕韩鍙戝湀鐨勫浘
-			return;
-		}
+        long pid = Long.parseLong(id);
+        CommonShareInfo shareInfo = commonShareInfoService.getByPidAndType(pid, type);
+        if (shareInfo == null || StringUtil.isNullOrEmpty(shareInfo.getComment())) {
+            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇ュ唴瀹瑰凡涓嶅瓨鍦�"));
+            return;
+        }
 
-		long pid = Long.parseLong(id);
-		CommonShareInfo shareInfo = commonShareInfoService.getByPidAndType(pid, type);
-		if (shareInfo == null || StringUtil.isNullOrEmpty(shareInfo.getComment())) {
-			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇ュ唴瀹瑰凡涓嶅瓨鍦�"));
-			return;
-		}
+        UserInfo user = userInfoService.getUserByIdWithMybatis(uid);
+        if (user == null) {
+            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鐢ㄦ埛鏈櫥褰�"));
+            return;
+        }
 
-		UserInfo user = userInfoService.getUserByIdWithMybatis(uid);
-		if (user == null) {
-			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鐢ㄦ埛鏈櫥褰�"));
-			return;
-		}
+        if (user != null && user.getState() != UserInfo.STATE_NORMAL) {
+            JsonUtil.printMode(out, callback,
+                    JsonUtil.loadFalseResult(Constant.CODE_FORBIDDEN_USER, Constant.FORBIDDEN_USER_REASON_DESC));
+            return;
+        }
 
-		if (user != null && user.getState() != UserInfo.STATE_NORMAL) {
-			JsonUtil.printMode(out, callback,
-					JsonUtil.loadFalseResult(Constant.CODE_FORBIDDEN_USER, Constant.FORBIDDEN_USER_REASON_DESC));
-			return;
-		}
+        UserExtraTaoBaoInfo taoBaoInfo = userExtraTaoBaoInfoService.getByUid(uid);
+        String relationId = null;
+        if (taoBaoInfo != null && taoBaoInfo.getRelationId() != null && taoBaoInfo.getRelationValid() != null
+                && taoBaoInfo.getRelationValid() == true)
+            relationId = taoBaoInfo.getRelationId();
 
-		UserExtraTaoBaoInfo taoBaoInfo = userExtraTaoBaoInfoService.getByUid(uid);
-		String relationId = null;
-		if (taoBaoInfo != null && taoBaoInfo.getRelationId() != null && taoBaoInfo.getRelationValid() != null
-				&& taoBaoInfo.getRelationValid() == true)
-			relationId = taoBaoInfo.getRelationId();
+        if (StringUtil.isNullOrEmpty(relationId)) {
+            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(2, "娣樺疂鏈巿鏉冿紝璇峰墠寰�\"鎴戠殑\"缁戝畾娣樺疂璐﹀彿"));
+            return;
+        }
 
-		if (StringUtil.isNullOrEmpty(relationId)) {
-			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(2, "娣樺疂鏈巿鏉冿紝璇峰墠寰�\"鎴戠殑\"缁戝畾娣樺疂璐﹀彿"));
-			return;
-		}
+        String text = shareInfo.getComment();
+        String newText = text;
+        String imgUrl = null;
+        if (shareInfo.getNeedSpin() != null && shareInfo.getNeedSpin()) {
+            try {
+                String erCodeContent = "";
+                newText = convertLinkManager.convertLinkFromText(acceptData.getSystem(), text, uid, true, true);
+                // 鑾峰彇鍙d护
+                List<String> tokenList = TaoBaoUtil.getTokenListFromTextWithKuoHao(newText);
+                if (tokenList != null && tokenList.size() > 0) {
+                    // 鏋勯�犲垎浜摼鎺�
+                    erCodeContent = ShareControllerV2.getTaoBaoActiivtyERCodeContentNew(
+                            configService.getValue(ConfigKeyEnum.taobaoShareQrcodeText.getKey(), SystemInfoUtil.getSystem(acceptData)), tokenList.get(0));
+                } else {
+                    // 鑾峰彇閾炬帴
+                    List<String> urlList = JDUtil.getJDShortLinksFromText(newText);
+                    if (urlList != null && urlList.size() > 0) {
+                        erCodeContent = urlList.get(0);
+                    } else {
+                        urlList = PinDuoDuoUtil.getPDDShortLinksFromText(newText);
+                        if (urlList != null && urlList.size() > 0) {
+                            erCodeContent = urlList.get(0);
+                        }
+                    }
+                }
 
-		String text = shareInfo.getComment();
-		String newText = text;
-		String imgUrl = null;
-		if (shareInfo.getNeedSpin() != null && shareInfo.getNeedSpin()) {
-			try {
-				String erCodeContent = "";
-				newText = convertLinkManager.convertLinkFromText(text, uid, true);
-				// 鑾峰彇鍙d护
-				List<String> tokenList = TaoBaoUtil.getTokenListFromTextWithKuoHao(newText);
-				if (tokenList != null && tokenList.size() > 0) {
-					// 鏋勯�犲垎浜摼鎺�
-					erCodeContent = ShareControllerV2.getTaoBaoActiivtyERCodeContentNew(
-							configService.get(ConfigKeyEnum.taobaoShareQrcodeText.getKey()), tokenList.get(0));
-				} else {
-					// 鑾峰彇閾炬帴
-					List<String> urlList = JDUtil.getJDShortLinksFromText(newText);
-					if (urlList != null && urlList.size() > 0) {
-						erCodeContent = urlList.get(0);
-					} else {
-						urlList = PinDuoDuoUtil.getPDDShortLinksFromText(newText);
-						if (urlList != null && urlList.size() > 0) {
-							erCodeContent = urlList.get(0);
-						}
-					}
-				}
+                imgUrl = createActivityShareImg(type, id, erCodeContent);
+            } catch (ConvertLinkException e) {
+                if (e.getCode() != ConvertLinkException.CODE_NONE) {
+                    JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇勮鐢熸垚澶辫触"));
+                    return;
+                }
+            } catch (Exception e) {
+                LogHelper.errorDetailInfo(e);
+                JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇勮鐢熸垚澶辫触"));
+                return;
+            }
+        }
 
-				imgUrl = createActivityShareImg(type, id, erCodeContent);
-			} catch (ConvertLinkExceptionException e) {
-				if (e.getCode() != ConvertLinkExceptionException.CODE_NONE) {
-					JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇勮鐢熸垚澶辫触"));
-					return;
-				}
-			} catch (Exception e) {
-				LogHelper.errorDetailInfo(e);
-				JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇勮鐢熸垚澶辫触"));
-				return;
-			}
-		}
+        if (StringUtil.isNullOrEmpty(imgUrl)) {
+            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鍒嗕韩鍥剧敓鎴愬け璐�"));
+        } else {
+            JSONObject data = new JSONObject();
+            data.put("text", newText);
+            data.put("img", imgUrl);
+            JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
+        }
+    }
 
-		if (StringUtil.isNullOrEmpty(imgUrl)) {
-			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鍒嗕韩鍥剧敓鎴愬け璐�"));
-		} else {
-			JSONObject data = new JSONObject();
-			data.put("text", newText);
-			data.put("img", imgUrl);
-			JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
-		}
-	}
+    /**
+     * 璇勮澶嶅埗
+     *
+     * @param acceptData
+     * @param id
+     * @param out
+     */
+    private void copyActivityComment(String callback, AcceptData acceptData, Long uid, String id, PrintWriter out) {
+        if (StringUtil.isNullOrEmpty(id)) {
+            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("id涓嶈兘涓虹┖"));
+            return;
+        }
 
-	/**
-	 * 璇勮澶嶅埗
-	 * 
-	 * @param acceptData
-	 * @param id
-	 * @param out
-	 */
-	private void copyActivityComment(String callback, AcceptData acceptData, Long uid, String id, PrintWriter out) {
-		if (StringUtil.isNullOrEmpty(id)) {
-			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("id涓嶈兘涓虹┖"));
-			return;
-		}
+        GoodsEvaluate goodsEvaluate = goodsEvaluateService.getById(id);
+        if (goodsEvaluate == null) {
+            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇ュ唴瀹瑰凡涓嶅瓨鍦�"));
+            return;
+        }
 
-		GoodsEvaluate goodsEvaluate = goodsEvaluateService.getById(id);
-		if (goodsEvaluate == null) {
-			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇ュ唴瀹瑰凡涓嶅瓨鍦�"));
-			return;
-		}
+        UserInfo user = userInfoService.getUserByIdWithMybatis(uid);
+        if (user == null) {
+            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鐢ㄦ埛鏈櫥褰�"));
+            return;
+        }
 
-		UserInfo user = userInfoService.getUserByIdWithMybatis(uid);
-		if (user == null) {
-			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鐢ㄦ埛鏈櫥褰�"));
-			return;
-		}
+        if (user != null && user.getState() != UserInfo.STATE_NORMAL) {
+            JsonUtil.printMode(out, callback,
+                    JsonUtil.loadFalseResult(Constant.CODE_FORBIDDEN_USER, Constant.FORBIDDEN_USER_REASON_DESC));
+            return;
+        }
 
-		if (user != null && user.getState() != UserInfo.STATE_NORMAL) {
-			JsonUtil.printMode(out, callback,
-					JsonUtil.loadFalseResult(Constant.CODE_FORBIDDEN_USER, Constant.FORBIDDEN_USER_REASON_DESC));
-			return;
-		}
+        UserExtraTaoBaoInfo taoBaoInfo = userExtraTaoBaoInfoService.getByUid(uid);
+        String relationId = null;
+        if (taoBaoInfo != null && taoBaoInfo.getRelationId() != null && taoBaoInfo.getRelationValid() != null
+                && taoBaoInfo.getRelationValid() == true)
+            relationId = taoBaoInfo.getRelationId();
 
-		UserExtraTaoBaoInfo taoBaoInfo = userExtraTaoBaoInfoService.getByUid(uid);
-		String relationId = null;
-		if (taoBaoInfo != null && taoBaoInfo.getRelationId() != null && taoBaoInfo.getRelationValid() != null
-				&& taoBaoInfo.getRelationValid() == true)
-			relationId = taoBaoInfo.getRelationId();
+        if (StringUtil.isNullOrEmpty(relationId)) {
+            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(2, "娣樺疂鏈巿鏉冿紝璇峰墠寰�\"鎴戠殑\"缁戝畾娣樺疂璐﹀彿"));
+            return;
+        }
 
-		if (StringUtil.isNullOrEmpty(relationId)) {
-			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(2, "娣樺疂鏈巿鏉冿紝璇峰墠寰�\"鎴戠殑\"缁戝畾娣樺疂璐﹀彿"));
-			return;
-		}
+        String text = "";
+        CommentInfo comment = null;
+        List<CommentInfo> comments = goodsEvaluate.getComments();
+        if (comments != null && comments.size() > 0) {
+            CommentInfo info = comments.get(0);
+            text = info.getContent();
+            comment = info;
+        }
 
-		String text = "";
-		CommentInfo comment = null;
-		List<CommentInfo> comments = goodsEvaluate.getComments();
-		if (comments != null && comments.size() > 0) {
-			CommentInfo info = comments.get(0);
-			text = info.getContent();
-			comment = info;
-		}
+        String newText = text; // 闈為�氱敤鍒搁渶瑕侀獙璇�
+        if (comment != null && (comment.getNeedSpin() == null || comment.getNeedSpin())) {
+            try {
+                newText = convertLinkManager.convertLinkFromText(acceptData.getSystem(), text, uid, true, true);
+            } catch (ConvertLinkException e) {
+                if (e.getCode() != ConvertLinkException.CODE_NONE) {
+                    JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇勮鐢熸垚澶辫触"));
+                    return;
+                }
+            } catch (Exception e) {
+                LogHelper.errorDetailInfo(e);
+                JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇勮鐢熸垚澶辫触"));
+                return;
+            }
+        }
+        JSONObject data = new JSONObject();
+        data.put("text", newText);
+        JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
 
-		String newText = text; // 闈為�氱敤鍒搁渶瑕侀獙璇�
-		if (comment != null && (comment.getNeedSpin() == null || comment.getNeedSpin())) {
-			try {
-				newText = convertLinkManager.convertLinkFromText(text, uid, true);
-			} catch (ConvertLinkExceptionException e) {
-				if (e.getCode() != ConvertLinkExceptionException.CODE_NONE) {
-					JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇勮鐢熸垚澶辫触"));
-					return;
-				}
-			} catch (Exception e) {
-				LogHelper.errorDetailInfo(e);
-				JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇勮鐢熸垚澶辫触"));
-				return;
-			}
-		}
-		JSONObject data = new JSONObject();
-		data.put("text", newText);
-		JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
+        executor.execute(new Runnable() {
+            @Override
+            public void run() { // 娣诲姞姣忔棩缁熻
+                dailyCountMomentsService.addCopyComment();
+            }
+        });
+    }
 
-		executor.execute(new Runnable() {
-			@Override
-			public void run() { // 娣诲姞姣忔棩缁熻
-				dailyCountMomentsService.addCopyComment();
-			}
-		});
-	}
-	
 }

--
Gitblit v1.8.0