admin
2020-11-28 dc5be7d38446f70e6ff86df311119c32b41fe7f8
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/ShareControllerV2.java
@@ -10,14 +10,15 @@
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import org.springframework.core.task.TaskExecutor;
import com.yeshi.fanli.entity.SystemEnum;
import com.yeshi.fanli.exception.taobao.TaoBaoConvertLinkException;
import com.yeshi.fanli.service.manger.goods.TaoBaoLinkManager;
import com.yeshi.fanli.util.*;
import com.yeshi.fanli.util.StringUtil;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.yeshi.utils.BigDecimalUtil;
import org.yeshi.utils.DateUtil;
import org.yeshi.utils.HttpUtil;
import org.yeshi.utils.JsonUtil;
import org.yeshi.utils.*;
import org.yeshi.utils.taobao.TbImgUtil;
import com.google.gson.Gson;
@@ -43,40 +44,27 @@
import com.yeshi.fanli.entity.goods.CommonGoods;
import com.yeshi.fanli.entity.jd.JDGoods;
import com.yeshi.fanli.entity.system.ConfigKeyEnum;
import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
import com.yeshi.goods.facade.entity.taobao.TaoBaoGoodsBrief;
import com.yeshi.fanli.entity.taobao.TaoBaoLink;
import com.yeshi.fanli.entity.taobao.TaoKeAppInfo;
import com.yeshi.common.entity.taobao.TaoKeAppInfo;
import com.yeshi.fanli.exception.goods.ShareGoodsTextTemplateException;
import com.yeshi.fanli.exception.share.ShareGoodsException;
import com.yeshi.fanli.exception.taobao.TaoKeApiException;
import com.yeshi.fanli.exception.taobao.TaobaoGoodsDownException;
import com.yeshi.fanli.exception.tlj.UserTaoLiJinRecordException;
import com.yeshi.fanli.log.LogHelper;
import com.yeshi.fanli.service.inter.config.ConfigService;
import com.yeshi.fanli.service.inter.config.SystemClientParamsService;
import com.yeshi.fanli.service.inter.dynamic.DynamicInfoService;
import com.yeshi.fanli.service.inter.goods.CommonGoodsService;
import com.yeshi.fanli.service.inter.goods.ShareGoodsService;
import com.yeshi.fanli.service.inter.goods.ShareGoodsTextTemplateService;
import com.yeshi.fanli.service.inter.monitor.BusinessEmergent110Service;
import com.yeshi.fanli.service.inter.monitor.MonitorService;
import com.yeshi.fanli.service.inter.order.OrderHongBaoMoneyComputeService;
import com.yeshi.fanli.service.inter.order.config.HongBaoManageService;
import com.yeshi.fanli.service.inter.tlj.ConfigTaoLiJinService;
import com.yeshi.fanli.service.inter.tlj.UserTaoLiJinRecordService;
import com.yeshi.fanli.service.inter.user.SpreadUserImgService;
import com.yeshi.fanli.service.inter.user.UserInfoExtraService;
import com.yeshi.fanli.service.inter.user.UserInfoService;
import com.yeshi.fanli.service.inter.user.UserShareGoodsGroupService;
import com.yeshi.fanli.service.inter.user.UserShareGoodsRecordService;
import com.yeshi.fanli.service.inter.user.tb.UserExtraTaoBaoInfoService;
import com.yeshi.fanli.util.AESUtil;
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.MoneyBigDecimalUtil;
import com.yeshi.fanli.util.RedisManager;
import com.yeshi.fanli.util.StringUtil;
import com.yeshi.fanli.util.TaoBaoConstant;
import com.yeshi.fanli.util.VersionUtil;
import com.yeshi.fanli.util.cache.JDGoodsCacheUtil;
import com.yeshi.fanli.util.cache.PinDuoDuoCacheUtil;
import com.yeshi.fanli.util.cache.TaoBaoGoodsCacheUtil;
@@ -102,12 +90,11 @@
@Controller
@RequestMapping("api/v2/share")
public class ShareControllerV2 {
   @Resource(name = "taskExecutor")
   private TaskExecutor executor;
   @Resource
   private ShareGoodsService shareGoodsService;
   @Resource
   private TaoBaoLinkManager taoBaoLinkManager;
   @Resource
   private ConfigService configService;
@@ -119,16 +106,11 @@
   private OrderHongBaoMoneyComputeService orderHongBaoMoneyComputeService;
   @Resource
   private MonitorService monitorService;
   @Resource
   private UserShareGoodsRecordService userShareGoodsRecordService;
   @Resource
   private UserShareGoodsGroupService userShareGoodsGroupService;
   @Resource
   private CommonGoodsService commonGoodsService;
   @Resource
   private UserExtraTaoBaoInfoService userExtraTaoBaoInfoService;
@@ -152,16 +134,7 @@
   private ShareGoodsTextTemplateService shareGoodsTextTemplateService;
   @Resource
   private SystemClientParamsService systemClientParamsService;
   @Resource
   private DynamicInfoService dynamicInfoService;
   @Resource
   private UserInfoExtraService userInfoExtraService;
   @Resource
   private SpreadUserImgService spreadUserImgService;
   @Resource
   private BusinessEmergent110Service businessEmergent110Service;
@@ -329,11 +302,11 @@
      // 淘礼金创建分享
      if (source != null && "taolijin".equals(source)) {// 淘礼金分享创建
         createTaoLijin(uid, goodsId, totalNum, relationId, request, out);
         createTaoLijin(uid, goodsId, totalNum, relationId,acceptData, request, out);
         return;
      } else {// 普通分享创建
         createCommonTaoBaoShare(acceptData.getPlatform(), acceptData.getVersion(), goodsId, inviteCode, uid,
               needGoods, relationId, out);
               needGoods, relationId,acceptData, out);
         return;
      }
@@ -349,7 +322,7 @@
    * @param request
    * @param out
    */
   public void createTaoLijin(Long uid, Long auctionId, int totalNum, String relationId, HttpServletRequest request,
   public void createTaoLijin(Long uid, Long auctionId, int totalNum, String relationId,AcceptData acceptData, HttpServletRequest request,
         PrintWriter out) {
      try {
         TaoBaoGoodsBrief goods = null;
@@ -396,7 +369,7 @@
            return;
         }
         String url = String.format("http://%s%s?uid=%s&id=%s&appType=flq&tid=%s", configService.getH5Host(),
         String url = String.format("http://%s%s?uid=%s&id=%s&appType=flq&tid=%s", configService.getH5Host(SystemInfoUtil.getSystem(acceptData)),
               Constant.systemCommonConfig.getShareGoodsPagePath(), AESUtil.encrypt(uid + "", Constant.UIDAESKEY),
               auctionId + "", AESUtil.encrypt(tljId + "", Constant.UIDAESKEY));
         String shortLink = HttpUtil.getShortLink(url);
@@ -416,8 +389,11 @@
               taoBaoLink.setTaoToken(quanToken);
            }
         }
         SystemEnum system= SystemInfoUtil.getSystem(acceptData);
         shareInfo.setToken(TaoBaoUtil.filterTaoToken(taoBaoLink.getTaoToken()));
         shareInfo.setRule(configService.get(ConfigKeyEnum.shareSingleGoodsRule.getKey()));
         shareInfo.setRule(configService.getValue(ConfigKeyEnum.shareSingleGoodsRule.getKey(),system));
         shareInfo.setPictUrl(TbImgUtil.getTBSizeImg(goods.getPictUrl(), 500));
         // 无券
@@ -428,7 +404,7 @@
         if (StringUtil.isNullOrEmpty(goods.getCouponInfo())) {
            String text = shareGoodsTextTemplateService.getCommonTemplate(uid);
            if (StringUtil.isNullOrEmpty(text))
               text = configService.get(ConfigKeyEnum.goodsShareTextNoCoupon.getKey());
               text = configService.getValue(ConfigKeyEnum.goodsShareTextNoCoupon.getKey(),system);
            shareText = text.replace("{标题}", goods.getTitle()).replace("{商品原价}",
                  MoneyBigDecimalUtil.getWithNoZera(goods.getZkPrice()) + "");
         } else// 有券
@@ -455,19 +431,19 @@
         shareInfo.setDescText(descText);
         String imgs = configService.get(ConfigKeyEnum.goodsShareNotifyImgs.getKey());
         String imgs = configService.getValue(ConfigKeyEnum.goodsShareNotifyImgs.getKey(),system);
         JSONArray array = JSONArray.fromObject(imgs);
         shareInfo.setNotifyPicture(array.optString(0));
         // 2.0.7版本后的提示图片
         imgs = configService.get(ConfigKeyEnum.goodsShareNotifyImgs207.getKey());
         imgs = configService.getValue(ConfigKeyEnum.goodsShareNotifyImgs207.getKey(),system);
         array = JSONArray.fromObject(imgs);
         shareInfo.setNotifyPictureNew(array.optString(0));
         shareInfo.setNotifyDesc(configService.get(ConfigKeyEnum.goodsShareNotify.getKey()));
         shareInfo.setNotifyDesc(configService.getValue(ConfigKeyEnum.goodsShareNotify.getKey(),system));
         // 添加分享记录
         BigDecimal rate = hongBaoManageService.getShareRate();
         BigDecimal rate = hongBaoManageService.getShareRate(acceptData.getSystem());
         BigDecimal shareMoney = TaoBaoUtil.getShareGoodsHongBaoInfo(goods, rate);
         shareInfo.setShareMoney("¥" + shareMoney.toString());
         try {
@@ -513,24 +489,26 @@
      } catch (Exception e) {
         LogHelper.errorDetailInfo(e, "分享出错:uid:" + uid + "auctionId:" + auctionId, "");
         out.print(JsonUtil.loadFalseResult("创建分享出错"));
         businessEmergent110Service.shareTaoBaoGoodsError(StringUtil.Md5(auctionId + ""));
         businessEmergent110Service.shareTaoBaoGoodsError(StringUtil.Md5(auctionId + ""),SystemInfoUtil.getSystem(acceptData));
      }
   }
   public void createCommonTaoBaoShare(String platform, String version, Long goodsId, String inviteCode, Long uid,
         boolean needGoods, String relationId, PrintWriter out) {
         boolean needGoods, String relationId,AcceptData acceptData, PrintWriter out) {
      SystemEnum system=SystemInfoUtil.getSystem(acceptData);
      try {
         ShareInfoVO shareInfo = new ShareInfoVO();
         TaoBaoLink taoBaoLink = shareGoodsService.getTaoBaoLinkForShare(uid, goodsId, relationId);
         TaoBaoLink taoBaoLink = taoBaoLinkManager.getTaoBaoLinkForShare(uid, goodsId, relationId,null);
         if (taoBaoLink != null && taoBaoLink.getGoods() != null && needGoods) {
            ConfigParamsDTO dto = orderHongBaoMoneyComputeService.getShowComputeRate(platform, version);
            ConfigParamsDTO dto = orderHongBaoMoneyComputeService.getShowComputeRate(platform, version,acceptData.getSystem());
            GoodsDetailVO goodsInfo = GoodsDetailVOFactory.convertTaoBao(taoBaoLink.getGoods(), dto);
            shareInfo.setGoodsInfo(goodsInfo);
         }
         String url = String.format("http://%s%s?uid=%s&id=%s&appType=flq", configService.getH5Host(),
         String url = String.format("http://%s%s?uid=%s&id=%s&appType=flq", configService.getH5Host(SystemInfoUtil.getSystem(acceptData)),
               Constant.systemCommonConfig.getShareGoodsPagePath(), AESUtil.encrypt(uid + "", Constant.UIDAESKEY),
               goodsId + "");
@@ -541,10 +519,10 @@
         shareInfo.setClickUrl(url);
         shareInfo.setToken(TaoBaoUtil.filterTaoToken(taoBaoLink.getTaoToken()));
         shareInfo.setRule(configService.get(ConfigKeyEnum.shareSingleGoodsRule.getKey()));
         shareInfo.setRule(configService.getValue(ConfigKeyEnum.shareSingleGoodsRule.getKey(),system));
         shareInfo.setPictUrl(TbImgUtil.getTBSizeImg(taoBaoLink.getGoods().getPictUrl(), 500));
         String commentTextStr = configService.get(ConfigKeyEnum.shareSingleGoodsCommentText.getKey());
         String commentTextStr = configService.getValue(ConfigKeyEnum.shareSingleGoodsCommentText.getKey(),system);
         List<String> commentTexts = new ArrayList<>();
         if (!StringUtil.isNullOrEmpty(commentTextStr)) {
            JSONArray array = JSONArray.fromObject(commentTextStr);
@@ -586,11 +564,11 @@
         // 2.0.2之前
         if (VersionUtil.greaterThan_2_0_7(platform, version)) {
            shareInfo.setClickUrl(
                  getERCodeContentNew(configService.get(ConfigKeyEnum.quickShareTBCommentText.getKey()),
                  getERCodeContentNew(configService.getValue(ConfigKeyEnum.quickShareTBCommentText.getKey(),system),
                        taoBaoLink.getGoods(), shareInfo.getToken()));
         } else if (!VersionUtil.greaterThan_2_0_2(platform, version)) {
            shareInfo.setClickUrl(
                  getERCodeContentNew(configService.get(ConfigKeyEnum.taobaoShareQrcodeText.getKey()),
                  getERCodeContentNew(configService.getValue(ConfigKeyEnum.taobaoShareQrcodeText.getKey(),system),
                        taoBaoLink.getGoods(), shareInfo.getToken()));
         }
@@ -599,26 +577,26 @@
         // getERCodeContentNew(configService.get(ConfigKeyEnum.quickShareTBCommentText.getKey()),
         // taoBaoLink.getGoods(), shareInfo.getToken()));
         // } else {
         shareInfo.setWxErCode(getERCodeContentNew(configService.get(ConfigKeyEnum.taobaoShareQrcodeText.getKey()),
         shareInfo.setWxErCode(getERCodeContentNew(configService.getValue(ConfigKeyEnum.taobaoShareQrcodeText.getKey(),system),
               taoBaoLink.getGoods(), shareInfo.getToken()));
         // }
         // 提示图文内容
         String imgs = configService.getByVersion(ConfigKeyEnum.goodsShareNotifyImgs.getKey(), platform,
               Integer.parseInt(version));
               Integer.parseInt(version),system);
         JSONArray array = JSONArray.fromObject(imgs);
         shareInfo.setNotifyPicture(array.optString(0));
         // 2.0.7版本后的提示图片
         imgs = configService.get(ConfigKeyEnum.goodsShareNotifyImgs207.getKey());
         imgs = configService.getValue(ConfigKeyEnum.goodsShareNotifyImgs207.getKey(),system);
         array = JSONArray.fromObject(imgs);
         shareInfo.setNotifyPictureNew(array.optString(0));
         shareInfo.setNotifyDesc(configService.get(ConfigKeyEnum.goodsShareNotify.getKey()));
         shareInfo.setNotifyDesc(configService.getValue(ConfigKeyEnum.goodsShareNotify.getKey(),system));
         // 分享金额
         BigDecimal rate = hongBaoManageService.getShareRate();
         BigDecimal rate = hongBaoManageService.getShareRate(acceptData.getSystem());
         BigDecimal shareMoney = TaoBaoUtil.getShareGoodsHongBaoInfo(taoBaoLink.getGoods(), rate);
         shareInfo.setShareMoney("¥" + shareMoney.toString());
@@ -638,7 +616,7 @@
         String commentText = "";
         String recommendText = "";
         if (VersionUtil.greaterThan_2_0_7(platform, version)) {
            String template2 = configService.get(ConfigKeyEnum.quickShareGoodsText.getKey());
            String template2 = configService.getValue(ConfigKeyEnum.quickShareGoodsText.getKey(),system);
            recommendText = template2.replace("[商品标题]", goods.getTitle());
            if (!coupon) {
               recommendText = recommendText.replace("推荐理由:[推荐语]", "");
@@ -657,7 +635,7 @@
               recommendText = recommendText.replace("[销量]", sales.replace("万", "w"));
            }
            String quickCommentText = configService.get(ConfigKeyEnum.quickShareTBCommentText.getKey());
            String quickCommentText = configService.getValue(ConfigKeyEnum.quickShareTBCommentText.getKey(),system);
            commentText = quickCommentText.replace("[原价]", goods.getZkPrice().toString());
            commentText = commentText.replace("[淘口令]", TaoBaoUtil.filterTaoToken(taoBaoLink.getTaoToken()));
            if (StringUtil.isNullOrEmpty(taoBaoLink.getGoods().getCouponInfo())) {
@@ -684,7 +662,7 @@
         // 设置评论文本选项
         shareInfo.setCommentTextChoiceList(
               getCommentChoiceList(shareInfo.getCommentText(), null, inviteCode, TaoBaoUtil.getGoodsHongBaoMoney(
                     taoBaoLink.getGoods(), hongBaoManageService.getFanLiRate(UserLevelEnum.superVIP), false)));
                     taoBaoLink.getGoods(), hongBaoManageService.getFanLiRate(UserLevelEnum.superVIP,acceptData.getSystem()), false)));
         out.print(JsonUtil.loadTrueResult(
               JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder()).create().toJson(shareInfo)));
@@ -714,10 +692,10 @@
            }
         });
         return;
      } catch (ShareGoodsException e) {
      } catch (TaoBaoConvertLinkException e) {
         LogHelper.errorDetailInfo(e, "分享出错:uid:" + uid + " goodsId:" + goodsId, "");
         out.print(JsonUtil.loadFalseResult(e.getCode(), e.getMessage()));
         businessEmergent110Service.shareTaoBaoGoodsError(StringUtil.Md5(goodsId + ""));
         businessEmergent110Service.shareTaoBaoGoodsError(StringUtil.Md5(goodsId + ""),SystemInfoUtil.getSystem(acceptData));
      }
   }
@@ -728,8 +706,6 @@
    * @param uid
    * @param goodsId
    * @param source
    * @param goodsType
    * @param request
    * @param out
    */
   public void createJDShare(AcceptData acceptData, Long uid, Long goodsId, String source, boolean needGoods,
@@ -752,21 +728,21 @@
         couponUrl = couponInfo.getLink();
      }
      String materialId = "https://item.jd.com/" + goodsId + ".html";
      String jumpLink = JDApiUtil.convertLinkWithSubUnionId(materialId, couponUrl, JDApiUtil.POSITION_SHARE + "", uid + "");
      String jumpLink = JDApiUtil.convertLinkWithSubUnionId(materialId, couponUrl, null,JDApiUtil.POSITION_SHARE + "", uid + "");
      if (StringUtil.isNullOrEmpty(jumpLink)) {
         jumpLink = JDApiUtil.convertLinkWithSubUnionId(materialId, null, JDApiUtil.POSITION_SHARE + "", uid + "");
         jumpLink = JDApiUtil.convertLinkWithSubUnionId(materialId, null, null,JDApiUtil.POSITION_SHARE + "", uid + "");
      }
      ShareInfoVO shareInfo = new ShareInfoVO();
      shareInfo.setClickUrl(jumpLink);
      shareInfo.setWxErCode(jumpLink);
      shareInfo.setRule(configService.get(ConfigKeyEnum.shareRuleLinkJD.getKey()));
      shareInfo.setRule(configService.getValue(ConfigKeyEnum.shareRuleLinkJD.getKey(),SystemInfoUtil.getSystem(acceptData)));
      shareInfo.setPictUrl(jdGoods.getPicUrl());
      shareInfo.setCommentTexts(new ArrayList<>());
      if (needGoods)
         shareInfo.setGoodsInfo(GoodsDetailVOFactory.convertJDGoods(jdGoods, orderHongBaoMoneyComputeService
               .getShowComputeRate(acceptData.getPlatform(), acceptData.getVersion())));
               .getShowComputeRate(acceptData.getPlatform(), acceptData.getVersion(),acceptData.getSystem())));
      boolean hasCoupon = false;
      if (couponInfo != null) {
@@ -784,20 +760,20 @@
      shareInfo.setDescText(descText);
      String imgs = configService.getByVersion(ConfigKeyEnum.goodsShareNotifyImgs.getKey(), acceptData.getPlatform(),
            Integer.parseInt(acceptData.getVersion()));
            Integer.parseInt(acceptData.getVersion()),SystemInfoUtil.getSystem(acceptData));
      JSONArray array = JSONArray.fromObject(imgs);
      shareInfo.setNotifyPicture(array.size() > 1 ? array.optString(1) : array.optString(0));
      // 2.0.7版本后的提示图片
      imgs = configService.get(ConfigKeyEnum.goodsShareNotifyImgs207.getKey());
      imgs = configService.getValue(ConfigKeyEnum.goodsShareNotifyImgs207.getKey(),SystemInfoUtil.getSystem(acceptData));
      array = JSONArray.fromObject(imgs);
      shareInfo.setNotifyPictureNew(array.size() > 1 ? array.optString(1) : array.optString(0));
      shareInfo.setNotifyDesc(configService.get(ConfigKeyEnum.goodsShareNotifyJD.getKey()));
      shareInfo.setNotifyDesc(configService.getValue(ConfigKeyEnum.goodsShareNotifyJD.getKey(),SystemInfoUtil.getSystem(acceptData)));
      // 添加分享记录
      BigDecimal shareRate = hongBaoManageService.getShareRate();
      BigDecimal shareRate = hongBaoManageService.getShareRate(acceptData.getSystem());
      BigDecimal shareMoney = JDUtil.getGoodsFanLiMoney(jdGoods, shareRate);
      shareInfo.setShareMoney("¥" + shareMoney.toString());
      try {
@@ -817,7 +793,7 @@
      String commentText = "";
      String recommendText = "";
      if (VersionUtil.greaterThan_2_0_7(acceptData.getPlatform(), acceptData.getVersion())) {
         String template2 = configService.get(ConfigKeyEnum.quickShareGoodsText.getKey());
         String template2 = configService.getValue(ConfigKeyEnum.quickShareGoodsText.getKey(),SystemInfoUtil.getSystem(acceptData));
         recommendText = template2.replace("[商品标题]", jdGoods.getSkuName());
         recommendText = recommendText.replace("推荐理由:[推荐语]", "");
         String sales = JDUtil.getSaleCount(jdGoods.getInOrderCount30Days());
@@ -833,7 +809,7 @@
            price = pinGouInfo.getPingouPrice();
         }
         String template3 = configService.get(ConfigKeyEnum.quickShareJDCommentText.getKey());
         String template3 = configService.getValue(ConfigKeyEnum.quickShareJDCommentText.getKey(),SystemInfoUtil.getSystem(acceptData));
         commentText = template3.replace("[原价]", BigDecimalUtil.getWithNoZera(price).toString());
         if (!hasCoupon) {
            recommendText = recommendText.replace("优惠券:[券面额]元", "");
@@ -855,7 +831,7 @@
      // 设置评论文本选项
      shareInfo.setCommentTextChoiceList(getCommentChoiceList(null, shareInfo.getCommentText(), inviteCode,
            JDUtil.getGoodsFanLiMoney(jdGoods, hongBaoManageService.getFanLiRate(UserLevelEnum.superVIP))));
            JDUtil.getGoodsFanLiMoney(jdGoods, hongBaoManageService.getFanLiRate(UserLevelEnum.superVIP,acceptData.getSystem()))));
      out.print(JsonUtil.loadTrueResult(
            JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder()).create().toJson(shareInfo)));
@@ -920,18 +896,20 @@
      String jumpLink = PinDuoDuoApiUtil.getPromotionUrl(goodsId, PinDuoDuoApiUtil.PID_SHARE + "", uid + "");
      SystemEnum system=SystemInfoUtil.getSystem(acceptData);
      ShareInfoVO shareInfo = new ShareInfoVO();
      shareInfo.setClickUrl(jumpLink);
      shareInfo.setWxErCode(jumpLink);
      shareInfo.setCommentTexts(new ArrayList<>());
      shareInfo.setRule(configService.get(ConfigKeyEnum.shareRuleLinkPDD.getKey()));
      shareInfo.setRule(configService.getValue(ConfigKeyEnum.shareRuleLinkPDD.getKey(),SystemInfoUtil.getSystem(acceptData)));
      shareInfo.setPictUrl(goods.getGoodsImageUrl());
      if (needGoods) {
         shareInfo
               .setGoodsInfo(GoodsDetailVOFactory.convertPDDGoods(goods,
                     new ConfigParamsDTO(hongBaoManageService.getFanLiRate(),
                           hongBaoManageService.getShareRate(), Constant.MAX_REWARD_RATE,
                           hongBaoManageService.getFanLiRate(UserLevelEnum.superVIP))));
                     new ConfigParamsDTO(hongBaoManageService.getFanLiRate(acceptData.getSystem()),
                           hongBaoManageService.getShareRate(acceptData.getSystem()), Constant.MAX_REWARD_RATE,
                           hongBaoManageService.getFanLiRate(UserLevelEnum.superVIP,acceptData.getSystem()))));
      }
      // 创建口令
@@ -953,20 +931,20 @@
      //
      String imgs = configService.getByVersion(ConfigKeyEnum.goodsShareNotifyImgs.getKey(), acceptData.getPlatform(),
            Integer.parseInt(acceptData.getVersion()));
            Integer.parseInt(acceptData.getVersion()),system);
      JSONArray array = JSONArray.fromObject(imgs);
      shareInfo.setNotifyPicture(array.size() > 1 ? array.optString(1) : array.optString(0));
      // 2.0.7版本后的提示图片
      imgs = configService.get(ConfigKeyEnum.goodsShareNotifyImgs207.getKey());
      imgs = configService.getValue(ConfigKeyEnum.goodsShareNotifyImgs207.getKey(),system);
      array = JSONArray.fromObject(imgs);
      shareInfo.setNotifyPictureNew(array.size() > 1 ? array.optString(1) : array.optString(0));
      shareInfo.setNotifyDesc(configService.get(ConfigKeyEnum.goodsShareNotifyPDD.getKey()));
      shareInfo.setNotifyDesc(configService.getValue(ConfigKeyEnum.goodsShareNotifyPDD.getKey(),system));
      // 添加分享记录
      BigDecimal shareRate = hongBaoManageService.getShareRate();
      BigDecimal shareRate = hongBaoManageService.getShareRate(acceptData.getSystem());
      BigDecimal shareMoney = PinDuoDuoUtil.getGoodsFanLiMoney(goods, shareRate);
      shareInfo.setShareMoney("¥" + shareMoney.toString());
@@ -987,7 +965,7 @@
      String commentText = "";
      String recommendText = "";
      if (VersionUtil.greaterThan_2_0_7(acceptData.getPlatform(), acceptData.getVersion())) {
         String qtemplate = configService.get(ConfigKeyEnum.quickShareGoodsText.getKey());
         String qtemplate = configService.getValue(ConfigKeyEnum.quickShareGoodsText.getKey(),system);
         recommendText = qtemplate.replace("[商品标题]", goods.getGoodsName());
         // 总销量
@@ -1003,7 +981,7 @@
         }
         recommendText = recommendText.replace("推荐理由:[推荐语]", "");
         String quickCommentText = configService.get(ConfigKeyEnum.quickSharePDDCommentText.getKey());
         String quickCommentText = configService.getValue(ConfigKeyEnum.quickSharePDDCommentText.getKey(),system);
         commentText = quickCommentText.replace("[原价]", MoneyBigDecimalUtil
               .div(new BigDecimal(goods.getMinGroupPrice()), new BigDecimal(100)).setScale(2).toString());
         commentText = commentText.replace("[链接]", jumpLink);
@@ -1028,7 +1006,7 @@
      // 设置评论文本选项
      shareInfo.setCommentTextChoiceList(getCommentChoiceList(null, shareInfo.getCommentText(), inviteCode,
            PinDuoDuoUtil.getGoodsFanLiMoney(goods, hongBaoManageService.getFanLiRate(UserLevelEnum.superVIP))));
            PinDuoDuoUtil.getGoodsFanLiMoney(goods, hongBaoManageService.getFanLiRate(UserLevelEnum.superVIP,acceptData.getSystem()))));
      out.print(JsonUtil.loadTrueResult(
            JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder()).create().toJson(shareInfo)));
@@ -1084,20 +1062,22 @@
         return;
      }
      SystemEnum system=SystemInfoUtil.getSystem(acceptData);
      VIPConvertResultDTO jumpLink = VipShopApiUtil.convertLink(goodsId + "", VipShopUtil.getShareChanTag(uid));
      ShareInfoVO shareInfo = new ShareInfoVO();
      shareInfo.setClickUrl(jumpLink.getUrl());
      shareInfo.setWxErCode(jumpLink.getUrl());
      shareInfo.setCommentTexts(new ArrayList<>());
      shareInfo.setRule(configService.get(ConfigKeyEnum.shareRuleLinkVIP.getKey()));
      shareInfo.setRule(configService.getValue(ConfigKeyEnum.shareRuleLinkVIP.getKey(),system));
      shareInfo.setPictUrl(goods.getGoodsThumbUrl());
      if (needGoods) {
         shareInfo
               .setGoodsInfo(GoodsDetailVOFactory.convertVIPGoods(goods,
                     new ConfigParamsDTO(hongBaoManageService.getFanLiRate(),
                           hongBaoManageService.getShareRate(), Constant.MAX_REWARD_RATE,
                           hongBaoManageService.getFanLiRate(UserLevelEnum.superVIP))));
                     new ConfigParamsDTO(hongBaoManageService.getFanLiRate(acceptData.getSystem()),
                           hongBaoManageService.getShareRate(acceptData.getSystem()), Constant.MAX_REWARD_RATE,
                           hongBaoManageService.getFanLiRate(UserLevelEnum.superVIP,acceptData.getSystem()))));
      }
      String template = shareGoodsTextTemplateService.getTextTemplateByVIP(uid);
@@ -1111,21 +1091,15 @@
      shareInfo.setDescText(descText);
      //
      String imgs = configService.getByVersion(ConfigKeyEnum.goodsShareNotifyImgs.getKey(), acceptData.getPlatform(),
            Integer.parseInt(acceptData.getVersion()));
      JSONArray array = JSONArray.fromObject(imgs);
      String imgs = configService.getByVersion(ConfigKeyEnum.goodsShareNotifyImgsVIP.getKey(), acceptData.getPlatform(),
            Integer.parseInt(acceptData.getVersion()),system);
      shareInfo.setNotifyPicture(imgs);
      shareInfo.setNotifyPictureNew(imgs);
      shareInfo.setNotifyPicture(array.size() > 1 ? array.optString(1) : array.optString(0));
      // 2.0.7版本后的提示图片
      imgs = configService.get(ConfigKeyEnum.goodsShareNotifyImgs207.getKey());
      array = JSONArray.fromObject(imgs);
      shareInfo.setNotifyPictureNew(array.size() > 1 ? array.optString(1) : array.optString(0));
      shareInfo.setNotifyDesc(configService.get(ConfigKeyEnum.goodsShareNotifyPDD.getKey()));
      shareInfo.setNotifyDesc(configService.getValue(ConfigKeyEnum.goodsShareNotifyVIP.getKey(),system));
      // 添加分享记录
      BigDecimal shareRate = hongBaoManageService.getShareRate();
      BigDecimal shareRate = hongBaoManageService.getShareRate(acceptData.getSystem());
      BigDecimal shareMoney = VipShopUtil.getGoodsFanLiMoney(goods, shareRate);
      shareInfo.setShareMoney("¥" + shareMoney.toString());
@@ -1145,25 +1119,23 @@
      String commentText = "";
      String recommendText = "";
      String qtemplate = configService.get(ConfigKeyEnum.quickShareGoodsText.getKey());
      String qtemplate = configService.getValue(ConfigKeyEnum.quickShareGoodsText.getKey(),system);
      recommendText = qtemplate.replace("[商品标题]", goods.getGoodsName());
      recommendText = recommendText.replace("销量:[销量]", "");
      recommendText = recommendText.replace("推荐理由:[推荐语]", "");
      String quickCommentText = configService.get(ConfigKeyEnum.quickSharePDDCommentText.getKey());
      commentText = quickCommentText.replace("[原价]", goods.getMarketPrice());
      commentText = commentText.replace("[链接]", jumpLink.getUrl());
      commentText = commentText.replace("领券抢购", "抢购");
      commentText = commentText.replace("【券后价】[券后价]元", "");
      recommendText = recommendText.replace("优惠券:[券面额]元", "");
      String quickCommentText = configService.getValue(ConfigKeyEnum.quickShareVIPCommentText.getKey(),system);
      commentText = quickCommentText.replace("[在售价]", BigDecimalUtil.getWithNoZera(new BigDecimal(goods.getMarketPrice())).toString());
      commentText = commentText.replace("[链接]", jumpLink.getUrl());
      commentText = commentText.replace("[折扣价]", "" +MoneyBigDecimalUtil.getWithNoZera(new BigDecimal(goods.getVipPrice())));
      shareInfo.setRecommendText(deleteBlankLine(recommendText));
      shareInfo.setCommentText(deleteBlankLine(commentText));
      // 设置评论文本选项
      shareInfo.setCommentTextChoiceList(getCommentChoiceList(null, shareInfo.getCommentText(), inviteCode,
            VipShopUtil.getGoodsFanLiMoney(goods, hongBaoManageService.getFanLiRate(UserLevelEnum.superVIP))));
            VipShopUtil.getGoodsFanLiMoney(goods, hongBaoManageService.getFanLiRate(UserLevelEnum.superVIP,acceptData.getSystem()))));
      out.print(JsonUtil.loadTrueResult(
            JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder()).create().toJson(shareInfo)));
@@ -1188,6 +1160,11 @@
            if (imgList == null) {
               imgList = new ArrayList<>();
            }
            if (imgList.size() > 10) {
               imgList = imgList.subList(0, 9);
            }
            history.setPictures(JsonUtil.getGson().toJson(imgList));
            shareGoodsService.addShareGoodsHistory(history);
         }
@@ -1216,6 +1193,8 @@
         return;
      }
      SystemEnum system=SystemInfoUtil.getSystem(acceptData);
      String couponLink = goods.getCouponInfo().getCouponUrl();
      String jumpLink = SuningApiUtil.convertLink(SuningUtil.getProductUrl(sts[0], sts[1]),
@@ -1225,19 +1204,21 @@
      shareInfo.setClickUrl(jumpLink);
      shareInfo.setWxErCode(jumpLink);
      shareInfo.setCommentTexts(new ArrayList<>());
      shareInfo.setRule(configService.get(ConfigKeyEnum.shareRuleLinkSuning.getKey()));
      shareInfo.setRule(configService.getValue(ConfigKeyEnum.shareRuleLinkSuning.getKey(),system));
      if (goods.getCommodityInfo().getPictureUrl() != null && goods.getCommodityInfo().getPictureUrl().size() > 0)
         shareInfo.setPictUrl(goods.getCommodityInfo().getPictureUrl().get(0).getPicUrl());
      if (needGoods) {
         shareInfo
               .setGoodsInfo(GoodsDetailVOFactory.convertSuningGoods(goods,
                     new ConfigParamsDTO(hongBaoManageService.getFanLiRate(),
                           hongBaoManageService.getShareRate(), Constant.MAX_REWARD_RATE,
                           hongBaoManageService.getFanLiRate(UserLevelEnum.superVIP))));
                     new ConfigParamsDTO(hongBaoManageService.getFanLiRate(acceptData.getSystem()),
                           hongBaoManageService.getShareRate(acceptData.getSystem()), Constant.MAX_REWARD_RATE,
                           hongBaoManageService.getFanLiRate(UserLevelEnum.superVIP,acceptData.getSystem()))));
      }
      String template = shareGoodsTextTemplateService.getTextTemplateByVIP(uid);
      String shareText = shareGoodsTextTemplateService.createContentSuning(template, goods, jumpLink);
      String template = shareGoodsTextTemplateService.getTextTemplateBySuNing(uid);
      //String shareText = shareGoodsTextTemplateService.createQuickShareTextSuNing(template, goods, jumpLink);
      String shareText = shareGoodsTextTemplateService.createCommonShareTextSuNing(template, goods, jumpLink);
      shareInfo.setShareText(shareText);
      String descText = shareText.replace(goods.getCommodityInfo().getCommodityName(), "").trim();
@@ -1248,20 +1229,20 @@
      //
      String imgs = configService.getByVersion(ConfigKeyEnum.goodsShareNotifyImgs.getKey(), acceptData.getPlatform(),
            Integer.parseInt(acceptData.getVersion()));
            Integer.parseInt(acceptData.getVersion()),system);
      JSONArray array = JSONArray.fromObject(imgs);
      shareInfo.setNotifyPicture(array.size() > 1 ? array.optString(1) : array.optString(0));
      // 2.0.7版本后的提示图片
      imgs = configService.get(ConfigKeyEnum.goodsShareNotifyImgs207.getKey());
      imgs = configService.getValue(ConfigKeyEnum.goodsShareNotifyImgs207.getKey(),system);
      array = JSONArray.fromObject(imgs);
      shareInfo.setNotifyPictureNew(array.size() > 1 ? array.optString(1) : array.optString(0));
      shareInfo.setNotifyDesc(configService.get(ConfigKeyEnum.goodsShareNotifySuning.getKey()));
      shareInfo.setNotifyDesc(configService.getValue(ConfigKeyEnum.goodsShareNotifySuning.getKey(),system));
      // 添加分享记录
      BigDecimal shareRate = hongBaoManageService.getShareRate();
      BigDecimal shareRate = hongBaoManageService.getShareRate(acceptData.getSystem());
      BigDecimal shareMoney = SuningUtil.getGoodsFanLiMoney(goods, shareRate);
      shareInfo.setShareMoney("¥" + shareMoney.toString());
@@ -1279,27 +1260,63 @@
      String inviteCode = userInfoExtraService.getInviteCodeByUid(uid);
      String commodityPrice = goods.getCommodityInfo().getCommodityPrice();
      if (StringUtil.isNullOrEmpty(commodityPrice)) {
         commodityPrice = goods.getCommodityInfo().getSnPrice();
      }
      String commentText = "";
      String recommendText = "";
      String qtemplate = configService.get(ConfigKeyEnum.quickShareGoodsText.getKey());
      String qtemplate = configService.getValue(ConfigKeyEnum.quickShareGoodsText.getKey(),system);
      recommendText = qtemplate.replace("[商品标题]", goods.getCommodityInfo().getCommodityName());
      recommendText = recommendText.replace("推荐理由:[推荐语]", "");
      String quickCommentText = configService.get(ConfigKeyEnum.quickSharePDDCommentText.getKey());
      commentText = quickCommentText.replace("[原价]", goods.getCommodityInfo().getCommodityPrice());
      String quickCommentText = configService.getValue(ConfigKeyEnum.quickShareSuNingCommentText.getKey(),system);
      commentText = quickCommentText.replace("[原价]", BigDecimalUtil.getWithNoZera(new BigDecimal(commodityPrice)).toString());
      commentText = commentText.replace("[链接]", jumpLink);
      commentText = commentText.replace("领券抢购", "抢购");
      commentText = commentText.replace("【券后价】[券后价]元", "");
      recommendText = recommendText.replace("优惠券:[券面额]元", "");
      String salesCountMidea = "";
      Integer count = Integer.parseInt(goods.getCommodityInfo().getMonthSales());
      if (count < 10000) {
         salesCountMidea = count + "";
      } else {
         double sales = count;
         salesCountMidea = String.format("%.1f", sales / 10000);
         salesCountMidea = salesCountMidea + "万";
      }
      if (StringUtil.isNullOrEmpty(salesCountMidea) || salesCountMidea.equals("0")) {
         recommendText = recommendText.replace("销量:[销量]", "");
      } else {
         recommendText = recommendText.replace("[销量]", salesCountMidea.replace("万", "w"));
      }
      if (goods.getCouponInfo() != null && !StringUtil.isNullOrEmpty(goods.getCouponInfo().getCouponUrl())) {// 有券
         BigDecimal amount = new BigDecimal(goods.getCouponInfo().getCouponValue());
         BigDecimal startFee = new BigDecimal(goods.getCouponInfo().getBounsLimit());
         BigDecimal zkPrice = new BigDecimal(commodityPrice);
         BigDecimal couponPrice  = zkPrice;
         if (zkPrice.compareTo(startFee) >= 0) {
            couponPrice = zkPrice.subtract(amount);
         }
         recommendText = recommendText.replace("[券面额]",
               BigDecimalUtil.getWithNoZera(new BigDecimal(goods.getCouponInfo().getCouponValue())).toString());
         commentText = commentText.replace("[券后价]",BigDecimalUtil.getWithNoZera(couponPrice).toString());
      } else {
         commentText = commentText.replace("领券抢购", "抢购");
         commentText = commentText.replace("【券后价】[券后价]元", "");
         recommendText = recommendText.replace("优惠券:[券面额]元", "");
      }
      shareInfo.setRecommendText(deleteBlankLine(recommendText));
      shareInfo.setCommentText(deleteBlankLine(commentText));
      // 设置评论文本选项
      shareInfo.setCommentTextChoiceList(getCommentChoiceList(null, shareInfo.getCommentText(), inviteCode,
            SuningUtil.getGoodsFanLiMoney(goods, hongBaoManageService.getFanLiRate(UserLevelEnum.superVIP))));
            SuningUtil.getGoodsFanLiMoney(goods, hongBaoManageService.getFanLiRate(UserLevelEnum.superVIP,acceptData.getSystem()))));
      out.print(JsonUtil.loadTrueResult(
            JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder()).create().toJson(shareInfo)));
@@ -1345,7 +1362,7 @@
    * @param out
    */
   @RequestMapping(value = "viewShareTextTemplate", method = RequestMethod.POST)
   public void viewShareTextTemplate(AcceptData acceptData, Long uid, String template, Integer goodsType, Long goodsId,
   public void viewShareTextTemplate(AcceptData acceptData, Long uid, String template, Integer goodsType, String goodsId,
         Long tljId, Boolean hasCoupon, PrintWriter out) {
      if (uid == null) {
         out.print(JsonUtil.loadFalseResult(1, "用户未登录"));
@@ -1357,23 +1374,28 @@
         return;
      }
      if (goodsType == null || goodsType > 3 || goodsType < 1) {
         out.print(JsonUtil.loadFalseResult(3, "平台类型不正确"));
         return;
      }
      if (goodsType == Constant.SOURCE_TYPE_TAOBAO) {
         createTaoBaoViewText(goodsType, uid, template, goodsId, tljId, hasCoupon, out);
         createTaoBaoViewText(goodsType, uid, template,Long.parseLong(goodsId) , tljId, hasCoupon, out);
         return;
      }
      if (goodsType == Constant.SOURCE_TYPE_JD) {
         createJDViewText(goodsType, uid, template, goodsId, hasCoupon, out);
         createJDViewText(goodsType, uid, template, Long.parseLong(goodsId), hasCoupon, out);
         return;
      }
      if (goodsType == Constant.SOURCE_TYPE_PDD) {
         createPDDViewText(goodsType, uid, template, goodsId, hasCoupon, out);
         createPDDViewText(goodsType, uid, template, Long.parseLong(goodsId), hasCoupon, out);
         return;
      }
      if (goodsType == Constant.SOURCE_TYPE_VIP) {
         createVIPViewText(goodsType, uid, template, Long.parseLong(goodsId), hasCoupon, out);
         return;
      }
      if (goodsType == Constant.SOURCE_TYPE_SUNING) {
         createSuNingViewText(goodsType, uid, template, goodsId, hasCoupon, out);
         return;
      }
   }
@@ -1429,7 +1451,7 @@
         app.setAppKey(TaoBaoConstant.TAOBAO_AUTH_APPKEY);
         app.setAppSecret(TaoBaoConstant.TAOBAO_AUTH_APPSECRET);
         app.setPid(TaoBaoConstant.TAOBAO_RELATION_PID_DEFAULT);
         TaoBaoGoodsBrief goodsLink = TaoKeApiUtil.specialConvertCoupon(goods.getAuctionId(), app);
         TaoBaoGoodsBrief goodsLink = TaoKeApiUtil.specialConvertCoupon(goods.getAuctionId(), app,null,null);
         if (goodsLink != null)
            token = TaoKeApiUtil.getTKToken(goods.getPictUrl(), goods.getTitle(),
                  StringUtil.isNullOrEmpty(goodsLink.getCouponLink()) ? goodsLink.getAuctionUrl()
@@ -1448,7 +1470,6 @@
    * @param template
    * @param goodsType
    * @param goodsId
    * @param tljId
    * @param hasCoupon
    * @param out
    */
@@ -1478,7 +1499,7 @@
         couponUrl = couponInfo.getLink();
      }
      String materialId = "https://item.jd.com/" + goodsId + ".html";
      String shortLink = JDApiUtil.convertLinkWithSubUnionId(materialId, couponUrl, JDApiUtil.POSITION_SHARE + "",
      String shortLink = JDApiUtil.convertLinkWithSubUnionId(materialId, couponUrl, null,JDApiUtil.POSITION_SHARE + "",
            uid + "");
      String content = shareGoodsTextTemplateService.createContentJD(template, goods, shortLink, hasCoupon);
@@ -1494,7 +1515,6 @@
    * @param template
    * @param goodsType
    * @param goodsId
    * @param tljId
    * @param hasCoupon
    * @param out
    */
@@ -1540,6 +1560,79 @@
   }
   /**
    * 唯品会分享
    * @param goodsType
    * @param uid
    * @param template
    * @param goodsId
    * @param hasCoupon
    * @param out
    */
   private void createVIPViewText(Integer goodsType, Long uid, String template, Long goodsId, Boolean hasCoupon,
         PrintWriter out) {
      VIPGoodsInfo goods = VipShopApiUtil.getGoodsDetail(goodsId + "");
      if (goods == null) {
         out.print(JsonUtil.loadFalseResult(4, "商品已下架"));
         return;
      }
      if (StringUtil.isNullOrEmpty(template)) {
         template = getShareTemplate(goodsType, uid, hasCoupon, null);
      }
      // 校验券模板是否正确
      try {
         shareGoodsTextTemplateService.verifyRightVIP(template);
      } catch (ShareGoodsTextTemplateException e) {
         out.print(JsonUtil.loadFalseResult(5, e.getMsg()));
         return;
      }
      VIPConvertResultDTO jumpLink = VipShopApiUtil.convertLink(goodsId + "", VipShopUtil.getShareChanTag(uid));
      // 生成分享内容
      String content = shareGoodsTextTemplateService.createContentVIP(template, goods, jumpLink.getUrl());
      JSONObject data = new JSONObject();
      data.put("content", content);
      out.print(JsonUtil.loadTrueResult(data));
   }
   private void createSuNingViewText(Integer goodsType, Long uid, String template, String goodsId, Boolean hasCoupon,
         PrintWriter out) {
      String[] ids = SuningUtil.getGoodsIdDetail(goodsId);
      SuningGoodsInfo goods = SuningApiUtil.getGoodsDetail(ids[1], ids[0]);
      if (goods == null) {
         out.print(JsonUtil.loadFalseResult(4, "商品已下架"));
         return;
      }
      if (StringUtil.isNullOrEmpty(template)) {
         template = getShareTemplate(goodsType, uid, hasCoupon, null);
      }
      // 校验券模板是否正确
      try {
         shareGoodsTextTemplateService.verifyRightSuNing(template);
      } catch (ShareGoodsTextTemplateException e) {
         out.print(JsonUtil.loadFalseResult(5, e.getMsg()));
         return;
      }
      String couponLink = goods.getCouponInfo().getCouponUrl();
      String jumpLink = SuningApiUtil.convertLink(SuningUtil.getProductUrl(ids[0], ids[1]),
            StringUtil.isNullOrEmpty(couponLink) ? null : couponLink, SuningApiUtil.PID_SHARE, uid + "");
      // 生成普通分享内容
      String content = shareGoodsTextTemplateService.createCommonShareTextSuNing(template, goods, jumpLink);
      JSONObject data = new JSONObject();
      data.put("content", content);
      out.print(JsonUtil.loadTrueResult(data));
   }
   /**
    * 获取分享模板
    * 
    * @param uid
@@ -1555,6 +1648,10 @@
         template = shareGoodsTextTemplateService.getTextTemplateByJD(uid);
      } else if (goodsType == Constant.SOURCE_TYPE_PDD) {
         template = shareGoodsTextTemplateService.getTextTemplateByPDD(uid);
      } else if (goodsType == Constant.SOURCE_TYPE_VIP) {
         template = shareGoodsTextTemplateService.getTextTemplateByVIP(uid);
      } else if (goodsType == Constant.SOURCE_TYPE_SUNING) {
         template = shareGoodsTextTemplateService.getTextTemplateBySuNing(uid);
      }
      return template;
   }
@@ -1593,22 +1690,22 @@
    */
   @RequestMapping(value = "getShareTextTemplateRules", method = RequestMethod.POST)
   public void getShareTextTemplateRules(AcceptData acceptData, Integer goodsType, Long tljId, PrintWriter out) {
      if (goodsType == null || goodsType > 3 || goodsType < 1) {
         out.print(JsonUtil.loadFalseResult(3, "平台类型不正确"));
         return;
      }
      SystemEnum system=SystemInfoUtil.getSystem(acceptData);
      if (goodsType == Constant.SOURCE_TYPE_TAOBAO) {
         if (tljId != null) {
            out.print(
                  JsonUtil.loadTrueResult(configTaoLiJinService.getValueByKey("share_goods_rules", new Date())));
         } else {
            out.print(JsonUtil.loadTrueResult(configService.get(ConfigKeyEnum.shareGoodsTemplateRules.getKey())));
            out.print(JsonUtil.loadTrueResult(configService.getValue(ConfigKeyEnum.shareGoodsTemplateRules.getKey(),system)));
         }
      } else if (goodsType == Constant.SOURCE_TYPE_JD) {
         out.print(JsonUtil.loadTrueResult(configService.get(ConfigKeyEnum.shareGoodsTemplateRulesJD.getKey())));
         out.print(JsonUtil.loadTrueResult(configService.getValue(ConfigKeyEnum.shareGoodsTemplateRulesJD.getKey(),system)));
      } else if (goodsType == Constant.SOURCE_TYPE_PDD) {
         out.print(JsonUtil.loadTrueResult(configService.get(ConfigKeyEnum.shareGoodsTemplateRulesPDD.getKey())));
         out.print(JsonUtil.loadTrueResult(configService.getValue(ConfigKeyEnum.shareGoodsTemplateRulesPDD.getKey(),system)));
      } else if (goodsType == Constant.SOURCE_TYPE_VIP) {
         out.print(JsonUtil.loadTrueResult(configService.getValue(ConfigKeyEnum.shareGoodsTemplateRulesVIP.getKey(),system)));
      } else if (goodsType == Constant.SOURCE_TYPE_SUNING) {
         out.print(JsonUtil.loadTrueResult(configService.getValue(ConfigKeyEnum.shareGoodsTemplateRulesSuNing.getKey(),system)));
      }
   }
@@ -1629,11 +1726,6 @@
         return;
      }
      if (goodsType == null || goodsType > 3 || goodsType < 1) {
         out.print(JsonUtil.loadFalseResult(3, "平台类型不正确"));
         return;
      }
      try {
         if (goodsType == Constant.SOURCE_TYPE_TAOBAO) {
            shareGoodsTextTemplateService.saveTemplateTB(uid, template);
@@ -1641,6 +1733,10 @@
            shareGoodsTextTemplateService.saveTemplateJD(uid, template);
         } else if (goodsType == Constant.SOURCE_TYPE_PDD) {
            shareGoodsTextTemplateService.saveTemplatePDD(uid, template);
         } else if (goodsType == Constant.SOURCE_TYPE_VIP) {
            shareGoodsTextTemplateService.saveTemplateVIP(uid, template);
         } else if (goodsType == Constant.SOURCE_TYPE_SUNING) {
            shareGoodsTextTemplateService.saveTemplateSuNing(uid, template);
         }
      } catch (ShareGoodsTextTemplateException e) {
         out.print(JsonUtil.loadFalseResult(5, e.getMsg()));
@@ -1659,15 +1755,10 @@
    * @param out
    */
   @RequestMapping(value = "resetShareTextTemplate", method = RequestMethod.POST)
   public void resetShareTextTemplate(AcceptData acceptData, Long uid, Long goodsId, Long tljId, Boolean hasCoupon,
   public void resetShareTextTemplate(AcceptData acceptData, Long uid, String goodsId, Long tljId, Boolean hasCoupon,
         Integer goodsType, PrintWriter out) {
      if (uid == null) {
         out.print(JsonUtil.loadFalseResult(1, "用户未登录"));
         return;
      }
      if (goodsType == null || goodsType > 3 || goodsType < 1) {
         out.print(JsonUtil.loadFalseResult(3, "平台类型不正确"));
         return;
      }
@@ -1677,6 +1768,10 @@
         shareGoodsTextTemplateService.resetCommonTemplateJD(uid);
      } else if (goodsType == Constant.SOURCE_TYPE_PDD) {
         shareGoodsTextTemplateService.resetCommonTemplatePDD(uid);
      } else if (goodsType == Constant.SOURCE_TYPE_VIP) {
         shareGoodsTextTemplateService.resetCommonTemplateVIP(uid);
      } else if (goodsType == Constant.SOURCE_TYPE_SUNING) {
         shareGoodsTextTemplateService.resetCommonTemplateSuNing(uid);
      }
      if (goodsId != null) {
@@ -1742,7 +1837,7 @@
      }
      ConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate(acceptData.getPlatform(),
            acceptData.getVersion());
            acceptData.getVersion(),acceptData.getSystem());
      Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder())
            .excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create();
@@ -1801,7 +1896,7 @@
   }
   @RequestMapping(value = "getShareTextQuick", method = RequestMethod.POST)
   public void getShareTextQuick(AcceptData acceptData, Long goodsId, Integer goodsType, Long uid, PrintWriter out) {
   public void getShareTextQuick(AcceptData acceptData, String goodsId, Integer goodsType, Long uid, PrintWriter out) {
      if (uid == null) {
         out.print(JsonUtil.loadFalseResult(1, "用户未登录"));
         return;
@@ -1814,14 +1909,14 @@
      GoodsDetailVO goodsDetail = null;
      ConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate(acceptData.getPlatform(),
            acceptData.getVersion());
      paramsDTO.setBaseFanliRate(hongBaoManageService.getBaseFanliRate());
            acceptData.getVersion(),acceptData.getSystem());
      paramsDTO.setBaseFanliRate(hongBaoManageService.getBaseFanliRate(acceptData.getSystem()));
      if (goodsType == Constant.SOURCE_TYPE_TAOBAO) {
         TaoBaoGoodsBrief goods = taoBaoGoodsCacheUtil.getCommonTaoBaoGoodsInfo(goodsId);
         TaoBaoGoodsBrief goods = taoBaoGoodsCacheUtil.getCommonTaoBaoGoodsInfo(Long.parseLong(goodsId));
         if (goods == null) {
            try {
               goods = redisManager.getTaoBaoGoodsBrief(goodsId);
               goods = redisManager.getTaoBaoGoodsBrief(Long.parseLong(goodsId));
            } catch (TaobaoGoodsDownException e) {
               goods = null;
            }
@@ -1830,14 +1925,25 @@
            goodsDetail = GoodsDetailVOFactory.convertTaoBao(goods, paramsDTO);
         }
      } else if (goodsType == Constant.SOURCE_TYPE_JD) {
         JDGoods goods = jdGoodsCacheUtil.getGoodsInfo(goodsId);
         JDGoods goods = jdGoodsCacheUtil.getGoodsInfo(Long.parseLong(goodsId));
         if (goods != null) {
            goodsDetail = GoodsDetailVOFactory.convertJDGoods(goods, paramsDTO);
         }
      } else if (goodsType == Constant.SOURCE_TYPE_PDD) {
         PDDGoodsDetail goods = pinDuoDuoCacheUtil.getGoodsInfo(goodsId);
         PDDGoodsDetail goods = pinDuoDuoCacheUtil.getGoodsInfo(Long.parseLong(goodsId));
         if (goods != null) {
            goodsDetail = GoodsDetailVOFactory.convertPDDGoods(goods, paramsDTO);
         }
      } else if (goodsType == Constant.SOURCE_TYPE_VIP) {
         VIPGoodsInfo goods = VipShopApiUtil.getGoodsDetail(goodsId + "");
         if (goods == null) {
            goodsDetail = GoodsDetailVOFactory.convertVIPGoods(goods, paramsDTO);
         }
      } else if (goodsType == Constant.SOURCE_TYPE_SUNING) {
         String[] ids = SuningUtil.getGoodsIdDetail(goodsId);
         SuningGoodsInfo goods = SuningApiUtil.getGoodsDetail(ids[1], ids[0]);
         if (goods != null) {
            goodsDetail = GoodsDetailVOFactory.convertSuningGoods(goods, paramsDTO);
         }
      }
@@ -1846,7 +1952,7 @@
         return;
      }
      String template = configService.get(ConfigKeyEnum.quickShareGoodsText.getKey());
      String template = configService.getValue(ConfigKeyEnum.quickShareGoodsText.getKey(),SystemInfoUtil.getSystem(acceptData));
      template = template.replace("[商品标题]", goodsDetail.getTitle()).replace("[销量]", goodsDetail.getSalesCount());
      if (!StringUtil.isNullOrEmpty(goodsDetail.getDescription())) {
         template = template.replace("[推荐语]", goodsDetail.getDescription());