admin
2020-06-08 457f4881a89c03984c7b46ed10e8919d3294976c
fanli/src/main/java/com/yeshi/fanli/service/impl/goods/ShareGoodsTextTemplateServiceImpl.java
@@ -12,8 +12,11 @@
import com.yeshi.fanli.dao.mybatis.goods.ShareGoodsTextTemplateMapper;
import com.yeshi.fanli.dto.jd.JDPingouInfo;
import com.yeshi.fanli.dto.pdd.PDDGoodsDetail;
import com.yeshi.fanli.dto.suning.SuningGoodsInfo;
import com.yeshi.fanli.dto.vip.goods.VIPGoodsInfo;
import com.yeshi.fanli.entity.goods.ShareGoodsTextTemplate;
import com.yeshi.fanli.entity.jd.JDGoods;
import com.yeshi.fanli.entity.system.ConfigKeyEnum;
import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
import com.yeshi.fanli.exception.goods.ShareGoodsTextTemplateException;
import com.yeshi.fanli.service.inter.config.ConfigService;
@@ -110,7 +113,7 @@
      return null;
   }
   @Transactional
   @Transactional(rollbackFor = Exception.class)
   @Override
   public void saveCouponTemplate(Long uid, String template) throws ShareGoodsTextTemplateException {
      // 格式验证
@@ -132,7 +135,7 @@
      }
   }
   @Transactional
   @Transactional(rollbackFor = Exception.class)
   @Override
   public void saveCouponTemplateJD(Long uid, String template) throws ShareGoodsTextTemplateException {
      // 格式验证
@@ -154,7 +157,7 @@
      }
   }
   @Transactional
   @Transactional(rollbackFor = Exception.class)
   @Override
   public void saveCouponTemplatePDD(Long uid, String template) throws ShareGoodsTextTemplateException {
      // 格式验证
@@ -176,7 +179,7 @@
      }
   }
   @Transactional
   @Transactional(rollbackFor = Exception.class)
   @Override
   public void saveTaoLiJinTemplate(Long uid, String template) throws ShareGoodsTextTemplateException {
@@ -218,6 +221,228 @@
   @Override
   public ShareGoodsTextTemplate getShareGoodsTextTemplate(Long uid) {
      return shareGoodsTextTemplateMapper.selectByUid(uid);
   }
   @Override
   public String getTextTemplateByTB(Long uid) {
      String template = "";
      ShareGoodsTextTemplate objct = shareGoodsTextTemplateMapper.selectByUid(uid);
      if (objct != null && !StringUtil.isNullOrEmpty(objct.getShareTextTemplate())) {
         template = objct.getShareTextTemplate();
         if (template.contains("{商品原价}") || template.contains("{优惠券面额}") || template.contains("{优惠券价}")
               || template.contains("{月销量}")) {
            template = ""; // 老板分享
         }
      }
      if (StringUtil.isNullOrEmpty(template)) {
         template = configService.get(ConfigKeyEnum.shareCommentTextTB.getKey());
      }
      return template;
   }
   @Override
   public String getTextTemplateByJD(Long uid) {
      String template = "";
      ShareGoodsTextTemplate objct = shareGoodsTextTemplateMapper.selectByUid(uid);
      if (objct != null && !StringUtil.isNullOrEmpty(objct.getShareJDTextTemplate())) {
         template = objct.getShareJDTextTemplate();
         if (template.contains("{商品原价}") || template.contains("{月销量}") || template.contains("{短链接}")) {
            template = ""; // 老板分享
         }
      }
      if (StringUtil.isNullOrEmpty(template)) {
         template = configService.get(ConfigKeyEnum.shareCommentTextJD.getKey());
      }
      return template;
   }
   @Override
   public String getTextTemplateByPDD(Long uid) {
      String template = "";
      ShareGoodsTextTemplate objct = shareGoodsTextTemplateMapper.selectByUid(uid);
      if (objct != null && !StringUtil.isNullOrEmpty(objct.getSharePDDTextTemplate())) {
         template = objct.getSharePDDTextTemplate();
         if (template.contains("{商品原价}") || template.contains("{总销量}") || template.contains("{短链接}")) {
            template = ""; // 老板分享
         }
      }
      if (StringUtil.isNullOrEmpty(template)) {
         template = configService.get(ConfigKeyEnum.shareCommentTextPDD.getKey());
      }
      return template;
   }
   @Override
   public String getTextTemplateByVIP(Long uid) {
      String template = "";
      ShareGoodsTextTemplate objct = shareGoodsTextTemplateMapper.selectByUid(uid);
      if (objct != null && !StringUtil.isNullOrEmpty(objct.getSharePDDTextTemplate())) {
         template = objct.getSharePDDTextTemplate();
         if (template.contains("{商品原价}") || template.contains("{总销量}") || template.contains("{短链接}")) {
            template = ""; // 老板分享
         }
      }
      if (StringUtil.isNullOrEmpty(template)) {
         template = configService.get(ConfigKeyEnum.shareCommentTextPDD.getKey());
      }
      return template;
   }
   @Override
   public String createContentSuning(String template, SuningGoodsInfo goods, String jumpLink) {
      String commentText = template.replace("{原价}", goods.getCommodityInfo().getCommodityPrice());
      commentText = commentText.replace("{链接}", jumpLink);
      commentText = commentText.replace("领券抢购", "抢购");
      commentText = commentText.replace("【券后价】{券后价}元", "");
      return deleteBlankLine(commentText);
   }
   @Override
   public void saveTemplateTB(Long uid, String template) throws ShareGoodsTextTemplateException {
      verifyRightTB(template);
      ShareGoodsTextTemplate old = shareGoodsTextTemplateMapper.selectByUid(uid);
      if (old != null) {
         ShareGoodsTextTemplate update = new ShareGoodsTextTemplate();
         update.setId(old.getId());
         update.setShareTextTemplate(template);
         update.setUpdateTime(new Date());
         shareGoodsTextTemplateMapper.updateByPrimaryKeySelective(update);
      } else {
         ShareGoodsTextTemplate textTemplate = new ShareGoodsTextTemplate();
         textTemplate.setCreateTime(new Date());
         textTemplate.setShareTextTemplate(template);
         textTemplate.setUid(uid);
         shareGoodsTextTemplateMapper.insertSelective(textTemplate);
      }
   }
   @Override
   public void saveTemplateJD(Long uid, String template) throws ShareGoodsTextTemplateException {
      verifyRightJD(template);
      ShareGoodsTextTemplate old = shareGoodsTextTemplateMapper.selectByUid(uid);
      if (old != null) {
         ShareGoodsTextTemplate update = new ShareGoodsTextTemplate();
         update.setId(old.getId());
         update.setShareJDTextTemplate(template);
         update.setUpdateTime(new Date());
         shareGoodsTextTemplateMapper.updateByPrimaryKeySelective(update);
      } else {
         ShareGoodsTextTemplate textTemplate = new ShareGoodsTextTemplate();
         textTemplate.setCreateTime(new Date());
         textTemplate.setShareJDTextTemplate(template);
         textTemplate.setUid(uid);
         shareGoodsTextTemplateMapper.insertSelective(textTemplate);
      }
   }
   @Override
   public void saveTemplatePDD(Long uid, String template) throws ShareGoodsTextTemplateException {
      verifyRightPDD(template);
      ShareGoodsTextTemplate old = shareGoodsTextTemplateMapper.selectByUid(uid);
      if (old != null) {
         ShareGoodsTextTemplate update = new ShareGoodsTextTemplate();
         update.setId(old.getId());
         update.setSharePDDTextTemplate(template);
         update.setUpdateTime(new Date());
         shareGoodsTextTemplateMapper.updateByPrimaryKeySelective(update);
      } else {
         ShareGoodsTextTemplate textTemplate = new ShareGoodsTextTemplate();
         textTemplate.setCreateTime(new Date());
         textTemplate.setSharePDDTextTemplate(template);
         textTemplate.setUid(uid);
         shareGoodsTextTemplateMapper.insertSelective(textTemplate);
      }
   }
   @Override
   public void verifyRightTB(String template) throws ShareGoodsTextTemplateException {
      String[] keys = new String[] { "{原价}", "{券后价}", "{淘口令}" };
      int keysCount = 0;
      for (String key : keys)
         if (template != null && template.contains(key))
            keysCount++;
      if (keysCount == 0)
         throw new ShareGoodsTextTemplateException(1, "模板格式有误");
   }
   @Override
   public void verifyRightJD(String template) throws ShareGoodsTextTemplateException {
      String[] keys = new String[] { "{原价}", "{券后价}", "{链接}" };
      int keysCount = 0;
      for (String key : keys)
         if (template != null && template.contains(key))
            keysCount++;
      if (keysCount == 0)
         throw new ShareGoodsTextTemplateException(1, "模板格式有误");
   }
   @Override
   public void verifyRightPDD(String template) throws ShareGoodsTextTemplateException {
      String[] keys = new String[] { "{原价}", "{券后价}", "{链接}" };
      int keysCount = 0;
      for (String key : keys)
         if (template != null && template.contains(key))
            keysCount++;
      if (keysCount == 0)
         throw new ShareGoodsTextTemplateException(1, "模板格式有误");
   }
   @Override
   public String createContentTB(String template, TaoBaoGoodsBrief goods, String token, boolean coupon) {
      String commentText = template.replace("{原价}", goods.getZkPrice().toString());
      commentText = commentText.replace("{淘口令}", TaoBaoUtil.filterTaoToken(token));
      if (!coupon) {
         commentText = commentText.replace("领券抢购", "抢购");
         commentText = commentText.replace("【券后价】{券后价}元", "");
      } else {
         commentText = commentText.replace("{券后价}", TaoBaoUtil.getAfterUseCouplePrice(goods) + "");
      }
      return deleteBlankLine(commentText);
   }
   @Override
   public String createContentJD(String template, JDGoods goods, String jumpLink, boolean coupon) {
      String commentText = template.replace("{原价}", goods.getPrice().toString());
      commentText = commentText.replace("{链接}", jumpLink);
      if (!coupon) {
         commentText = commentText.replace("领券抢购", "抢购");
         commentText = commentText.replace("【券后价】{券后价}元", "");
      } else {
         commentText = commentText.replace("{券后价}",
               BigDecimalUtil.getWithNoZera(JDUtil.getQuanPrice(goods)).toString());
      }
      return deleteBlankLine(commentText);
   }
   @Override
   public String createContentPDD(String template, PDDGoodsDetail goods, String jumpLink, boolean coupon) {
      String commentText = template.replace("{原价}", MoneyBigDecimalUtil
            .div(new BigDecimal(goods.getMinGroupPrice()), new BigDecimal(100)).setScale(2).toString());
      commentText = commentText.replace("{链接}", jumpLink);
      if (!coupon) {
         commentText = commentText.replace("领券抢购", "抢购");
         commentText = commentText.replace("【券后价】{券后价}元", "");
      } else {
         commentText = commentText.replace("{券后价}",
               BigDecimalUtil.getWithNoZera(PinDuoDuoUtil.getQuanPrice(goods)).toString());
      }
      return deleteBlankLine(commentText);
   }
   @Override
   public String createContentVIP(String template, VIPGoodsInfo goods, String jumpLink) {
      String commentText = template.replace("{原价}", goods.getMarketPrice());
      commentText = commentText.replace("{链接}", jumpLink);
      commentText = commentText.replace("领券抢购", "抢购");
      commentText = commentText.replace("【券后价】{券后价}元", "");
      return deleteBlankLine(commentText);
   }
   @Override
@@ -298,6 +523,10 @@
         throw new ShareGoodsTextTemplateException(1, "模板格式有误");
   }
   private String deleteBlankLine(String st) {
      return st.replace("\r\n\r\n", "\r\n").replace("\r\n\r\n", "\r\n").replace("\r\n\r\n", "\r\n");
   }
   @Override
   public String createContentByTemplate(String template, Long uid, TaoBaoGoodsBrief goods, String token,
         String shortLink, boolean hasCoupon, Long tljId) {
@@ -315,7 +544,8 @@
               .replace("{淘礼金面额}", BigDecimalUtil.getWithNoZera(spreadMoney).toString())
               .replace("{优惠券价}",
                     BigDecimalUtil.getWithNoZera(TaoBaoUtil.getAfterUseCouplePrice(goods)).toString())
               .replace("{店铺类型}", goods.getUserType() == 1 ? TaoBaoConstant.SHARE_PRICE_TM : TaoBaoConstant.SHARE_PRICE_TAOBAO);
               .replace("{店铺类型}", goods.getUserType() == 1 ? TaoBaoConstant.SHARE_PRICE_TM
                     : TaoBaoConstant.SHARE_PRICE_TAOBAO);
      }
      if (!hasCoupon) {
@@ -323,7 +553,7 @@
               .replace("{商品原价}", BigDecimalUtil.getWithNoZera(goods.getZkPrice()).toString())
               .replace("{月销量}", TaoBaoUtil.getSaleCount(goods.getBiz30day())).replace("{领券短链}", shortLink)
               .replace("{淘口令}", token).replace("{店铺类型}", goods.getUserType() == 1 ? TaoBaoConstant.SHARE_PRICE_TM
                     :  TaoBaoConstant.SHARE_PRICE_TAOBAO);
                     : TaoBaoConstant.SHARE_PRICE_TAOBAO);
      } else {
         return template.replace("{标题}", goods.getTitle())
               .replace("{商品原价}", BigDecimalUtil.getWithNoZera(goods.getZkPrice()).toString())
@@ -332,7 +562,8 @@
               .replace("{优惠券面额}", BigDecimalUtil.getWithNoZera(goods.getCouponAmount()).toString())
               .replace("{优惠券价}",
                     BigDecimalUtil.getWithNoZera(TaoBaoUtil.getAfterUseCouplePrice(goods)).toString())
               .replace("{店铺类型}", goods.getUserType() == 1 ? TaoBaoConstant.SHARE_PRICE_TM : TaoBaoConstant.SHARE_PRICE_TAOBAO);
               .replace("{店铺类型}", goods.getUserType() == 1 ? TaoBaoConstant.SHARE_PRICE_TM
                     : TaoBaoConstant.SHARE_PRICE_TAOBAO);
      }
   }
@@ -353,7 +584,8 @@
         template = template.replace("{标题}", goods.getSkuName())
               .replace("{商品原价}", BigDecimalUtil.getWithNoZera(price).toString())
               .replace("{月销量}", JDUtil.getSaleCount(goods.getInOrderCount30Days())).replace("{短链接}", shortLink)
               .replace("{优惠券面额}", BigDecimalUtil.getWithNoZera(goods.getCouponInfo().getDiscount()).toString())
               .replace("{优惠券面额}",
                     BigDecimalUtil.getWithNoZera(JDUtil.getShowCouponInfo(goods).getDiscount()).toString())
               .replace("{优惠券价}", BigDecimalUtil.getWithNoZera(JDUtil.getQuanPrice(goods)).toString());
      }
@@ -484,4 +716,6 @@
      }
   }
}