admin
2020-07-14 eec7e789a87863c25d92c10ad5dfc22ad80c448d
fanli/src/main/java/com/yeshi/fanli/service/impl/goods/ShareGoodsTextTemplateServiceImpl.java
@@ -5,6 +5,8 @@
import javax.annotation.Resource;
import com.yeshi.fanli.entity.SystemEnum;
import com.yeshi.fanli.service.inter.user.UserInfoService;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.yeshi.utils.BigDecimalUtil;
@@ -47,6 +49,9 @@
   @Resource
   private ConfigTaoLiJinService configTaoLiJinService;
   @Resource
   private UserInfoService userInfoService;
   @Override
   public void saveCommonTemplate(Long uid, String template) throws ShareGoodsTextTemplateException {
@@ -234,8 +239,9 @@
            template = ""; // 老板分享
         }
      }
      SystemEnum system=userInfoService.getUserSystem(uid);
      if (StringUtil.isNullOrEmpty(template)) {
         template = configService.get(ConfigKeyEnum.shareCommentTextTB.getKey());
         template = configService.getValue(ConfigKeyEnum.shareCommentTextTB.getKey(),system);
      }
      return template;
@@ -252,7 +258,8 @@
         }
      }
      if (StringUtil.isNullOrEmpty(template)) {
         template = configService.get(ConfigKeyEnum.shareCommentTextJD.getKey());
         SystemEnum system=userInfoService.getUserSystem(uid);
         template = configService.getValue(ConfigKeyEnum.shareCommentTextJD.getKey(),system);
      }
      return template;
   }
@@ -268,7 +275,8 @@
         }
      }
      if (StringUtil.isNullOrEmpty(template)) {
         template = configService.get(ConfigKeyEnum.shareCommentTextPDD.getKey());
         SystemEnum system=userInfoService.getUserSystem(uid);
         template = configService.getValue(ConfigKeyEnum.shareCommentTextPDD.getKey(),system);
      }
      return template;
@@ -278,30 +286,36 @@
   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 (objct != null && !StringUtil.isNullOrEmpty(objct.getShareVIPTextTemplate())) {
         template = objct.getShareVIPTextTemplate();
      }
      if (StringUtil.isNullOrEmpty(template)) {
         template = configService.get(ConfigKeyEnum.shareCommentTextPDD.getKey());
         SystemEnum system=userInfoService.getUserSystem(uid);
         template = configService.getValue(ConfigKeyEnum.shareCommentTextVIP.getKey(),system);
      }
      return template;
   }
   
   @Override
   public String createContentSuning(String template, SuningGoodsInfo goods, String jumpLink) {
      String commentText = template.replace("{原价}", goods.getCommodityInfo().getCommodityPrice());
      commentText = commentText.replace("{链接}", jumpLink);
   public String getTextTemplateBySuNing(Long uid) {
      String template = "";
      ShareGoodsTextTemplate objct = shareGoodsTextTemplateMapper.selectByUid(uid);
      if (objct != null && !StringUtil.isNullOrEmpty(objct.getShareSuNingTextTemplate())) {
         template = objct.getShareSuNingTextTemplate();
      }
      if (StringUtil.isNullOrEmpty(template)) {
         SystemEnum system=userInfoService.getUserSystem(uid);
         template = configService.getValue(ConfigKeyEnum.shareCommentTextSuNing.getKey(),system);
      }
      commentText = commentText.replace("领券抢购", "抢购");
      commentText = commentText.replace("【券后价】{券后价}元", "");
      return deleteBlankLine(commentText);
      return template;
   }
   @Override
   public void saveTemplateTB(Long uid, String template) throws ShareGoodsTextTemplateException {
      verifyRightTB(template);
@@ -359,6 +373,47 @@
      }
   }
   @Override
   public void saveTemplateVIP(Long uid, String template) throws ShareGoodsTextTemplateException {
      verifyRightVIP(template);
      ShareGoodsTextTemplate old = shareGoodsTextTemplateMapper.selectByUid(uid);
      if (old != null) {
         ShareGoodsTextTemplate update = new ShareGoodsTextTemplate();
         update.setId(old.getId());
         update.setShareVIPTextTemplate(template);
         update.setUpdateTime(new Date());
         shareGoodsTextTemplateMapper.updateByPrimaryKeySelective(update);
      } else {
         ShareGoodsTextTemplate textTemplate = new ShareGoodsTextTemplate();
         textTemplate.setCreateTime(new Date());
         textTemplate.setShareVIPTextTemplate(template);
         textTemplate.setUid(uid);
         shareGoodsTextTemplateMapper.insertSelective(textTemplate);
      }
   }
   @Override
   public void saveTemplateSuNing(Long uid, String template) throws ShareGoodsTextTemplateException {
      verifyRightSuNing(template);
      ShareGoodsTextTemplate old = shareGoodsTextTemplateMapper.selectByUid(uid);
      if (old != null) {
         ShareGoodsTextTemplate update = new ShareGoodsTextTemplate();
         update.setId(old.getId());
         update.setShareSuNingTextTemplate(template);
         update.setUpdateTime(new Date());
         shareGoodsTextTemplateMapper.updateByPrimaryKeySelective(update);
      } else {
         ShareGoodsTextTemplate textTemplate = new ShareGoodsTextTemplate();
         textTemplate.setCreateTime(new Date());
         textTemplate.setShareSuNingTextTemplate(template);
         textTemplate.setUid(uid);
         shareGoodsTextTemplateMapper.insertSelective(textTemplate);
      }
   }
   @Override
   public void verifyRightTB(String template) throws ShareGoodsTextTemplateException {
      String[] keys = new String[] { "{原价}", "{券后价}", "{淘口令}" };
@@ -392,6 +447,29 @@
         throw new ShareGoodsTextTemplateException(1, "模板格式有误");
   }
   @Override
   public void verifyRightVIP(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 verifyRightSuNing(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());
@@ -436,15 +514,14 @@
   @Override
   public String createContentVIP(String template, VIPGoodsInfo goods, String jumpLink) {
      String commentText = template.replace("{原价}", goods.getMarketPrice());
      String commentText = template.replace("{在售价}", ""+BigDecimalUtil.getWithNoZera(new BigDecimal(goods.getMarketPrice())));
      commentText = commentText.replace("{链接}", jumpLink);
      commentText = commentText.replace("领券抢购", "抢购");
      commentText = commentText.replace("【券后价】{券后价}元", "");
      commentText = commentText.replace("{折扣价}", "" +MoneyBigDecimalUtil.getWithNoZera(new BigDecimal(goods.getVipPrice())));
      return deleteBlankLine(commentText);
   }
   @Override
   public void isCommonTemplateRight(String template) throws ShareGoodsTextTemplateException {
      String[] keys = new String[] { "{标题}", "{店铺类型}", "{商品原价}", "{月销量}", "{短链}", "{淘口令}" };
@@ -703,7 +780,60 @@
         shareGoodsTextTemplateMapper.updateByPrimaryKeySelective(update);
      }
   }
   @Override
   public void resetCommonTemplateVIP(Long uid) {
      ShareGoodsTextTemplate template = shareGoodsTextTemplateMapper.selectByUid(uid);
      if (template != null) {
         ShareGoodsTextTemplate update = new ShareGoodsTextTemplate();
         update.setId(template.getId());
         update.setShareVIPTextTemplate("");
         update.setUpdateTime(new Date());
         shareGoodsTextTemplateMapper.updateByPrimaryKeySelective(update);
      }
   }
   @Override
   public void resetCouponTemplateVIP(Long uid) {
      ShareGoodsTextTemplate template = shareGoodsTextTemplateMapper.selectByUid(uid);
      if (template != null) {
         ShareGoodsTextTemplate update = new ShareGoodsTextTemplate();
         update.setId(template.getId());
         update.setShareVIPTextTemplateCoupon("");
         update.setUpdateTime(new Date());
         shareGoodsTextTemplateMapper.updateByPrimaryKeySelective(update);
      }
   }
   @Override
   public void resetCommonTemplateSuNing(Long uid) {
      ShareGoodsTextTemplate template = shareGoodsTextTemplateMapper.selectByUid(uid);
      if (template != null) {
         ShareGoodsTextTemplate update = new ShareGoodsTextTemplate();
         update.setId(template.getId());
         update.setShareSuNingTextTemplate("");
         update.setUpdateTime(new Date());
         shareGoodsTextTemplateMapper.updateByPrimaryKeySelective(update);
      }
   }
   @Override
   public void resetCouponTemplateSuNing(Long uid) {
      ShareGoodsTextTemplate template = shareGoodsTextTemplateMapper.selectByUid(uid);
      if (template != null) {
         ShareGoodsTextTemplate update = new ShareGoodsTextTemplate();
         update.setId(template.getId());
         update.setShareSuNingTextTemplateCoupon("");
         update.setUpdateTime(new Date());
         shareGoodsTextTemplateMapper.updateByPrimaryKeySelective(update);
      }
   }
   @Override
   public void resetTaoLijinTemplate(Long uid) {
      ShareGoodsTextTemplate template = shareGoodsTextTemplateMapper.selectByUid(uid);
@@ -717,8 +847,8 @@
   }
   @Override
   public String getRecommendText(boolean coupon, String title, String sales, String couponAmount, String description) {
      String template = configService.get(ConfigKeyEnum.quickShareGoodsText.getKey());
   public String getRecommendText(boolean coupon, String title, String sales, String couponAmount, String description, SystemEnum system) {
      String template = configService.getValue(ConfigKeyEnum.quickShareGoodsText.getKey(),system);
      String recommendText = template.replace("[商品标题]", title);
      if (!coupon) {
         recommendText = recommendText.replace("推荐理由:[推荐语]", "");
@@ -742,8 +872,8 @@
   
   @Override
   public String getCommentTextByTaoToken(boolean coupon, String taoToken, String zkPrice, String quanPrice) {
      String quickCommentText = configService.get(ConfigKeyEnum.quickShareTBCommentText.getKey());
   public String getCommentTextByTaoToken(boolean coupon, String taoToken, String zkPrice, String quanPrice, SystemEnum system) {
      String quickCommentText = configService.getValue(ConfigKeyEnum.quickShareTBCommentText.getKey(),system);
      String commentText = quickCommentText.replace("[原价]", zkPrice);
      commentText = commentText.replace("[淘口令]", TaoBaoUtil.filterTaoToken(taoToken));
      if (!coupon) {
@@ -756,8 +886,8 @@
   }
   
   @Override
   public String getCommentTextByLink(boolean coupon, String link, String zkPrice, String quanPrice, ConfigKeyEnum keyEnum) {
      String quickCommentText = configService.get(keyEnum.getKey());
   public String getCommentTextByLink(boolean coupon, String link, String zkPrice, String quanPrice, ConfigKeyEnum keyEnum, SystemEnum system) {
      String quickCommentText = configService.getValue(keyEnum.getKey(),system);
      String commentText = quickCommentText.replace("[原价]", zkPrice);
      commentText = commentText.replace("[链接]", link);
      if (!coupon) {
@@ -769,4 +899,62 @@
      
      return commentText.replace("\r\n\r\n", "\r\n").replace("\r\n\r\n", "\r\n").replace("\r\n\r\n", "\r\n");
   }
   @Override
   public String createQuickShareTextSuNing(String template, SuningGoodsInfo goods, String jumpLink) {
      String commodityPrice = goods.getCommodityInfo().getCommodityPrice();
      if (StringUtil.isNullOrEmpty(commodityPrice)) {
         commodityPrice = goods.getCommodityInfo().getSnPrice();
      }
      String commentText =  template.replace("[原价]", BigDecimalUtil.getWithNoZera(new BigDecimal(commodityPrice)).toString());
      commentText = commentText.replace("[链接]", jumpLink);
      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);
         if (zkPrice.compareTo(startFee) >= 0) {
            BigDecimal couponPrice = zkPrice.subtract(amount);
            commentText = commentText.replace("[券后价]",BigDecimalUtil.getWithNoZera(couponPrice).toString());
         } else {
            commentText = commentText.replace("[券后价]", BigDecimalUtil.getWithNoZera(new BigDecimal(commodityPrice)).toString());
         }
      } else {
         commentText = commentText.replace("领券抢购", "抢购");
         commentText = commentText.replace("【券后价】[券后价]元", "");
      }
      return deleteBlankLine(commentText);
   }
   @Override
   public String createCommonShareTextSuNing(String template, SuningGoodsInfo goods, String jumpLink) {
      String commodityPrice = goods.getCommodityInfo().getCommodityPrice();
      if (StringUtil.isNullOrEmpty(commodityPrice)) {
         commodityPrice = goods.getCommodityInfo().getSnPrice();
      }
      String commentText =  template.replace("{原价}", BigDecimalUtil.getWithNoZera(new BigDecimal(commodityPrice)).toString());
      commentText = commentText.replace("{链接}", jumpLink);
      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);
            commentText = commentText.replace("{券后价}",BigDecimalUtil.getWithNoZera(couponPrice).toString());
         } else {
            commentText = commentText.replace("{券后价}", BigDecimalUtil.getWithNoZera(new BigDecimal(commodityPrice)).toString());
         }
      } else {
         commentText = commentText.replace("领券抢购", "抢购");
         commentText = commentText.replace("【券后价】{券后价}元", "");
      }
      return deleteBlankLine(commentText);
   }
}