admin
2019-07-11 3824cbcaec6e6c67418d5280a53e9c2fedeef6f9
fanli/src/main/java/com/yeshi/fanli/service/impl/goods/ShareGoodsTextTemplateServiceImpl.java
@@ -1,12 +1,13 @@
package com.yeshi.fanli.service.impl.goods;
import java.math.BigDecimal;
import java.util.Date;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.yeshi.utils.HttpUtil;
import org.yeshi.utils.BigDecimalUtil;
import com.yeshi.fanli.dao.mybatis.goods.ShareGoodsTextTemplateMapper;
import com.yeshi.fanli.entity.goods.ShareGoodsTextTemplate;
@@ -14,11 +15,9 @@
import com.yeshi.fanli.exception.goods.ShareGoodsTextTemplateException;
import com.yeshi.fanli.service.inter.config.ConfigService;
import com.yeshi.fanli.service.inter.goods.ShareGoodsTextTemplateService;
import com.yeshi.fanli.util.AESUtil;
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.StringUtil;
import com.yeshi.fanli.service.inter.tlj.ConfigTaoLiJinService;
import com.yeshi.fanli.util.taobao.TaoBaoUtil;
import com.yeshi.fanli.util.taobao.TaoKeApiUtil;
import com.yeshi.fanli.util.taobao.TaoLiJinUtil;
/**
 * 分享商品模板
@@ -34,7 +33,12 @@
   @Resource
   private ConfigService configService;
   @Resource
   private ConfigTaoLiJinService configTaoLiJinService;
   @Override
   public void saveCommonTemplate(Long uid, String template) throws ShareGoodsTextTemplateException {
      isCommonTemplateRight(template);
@@ -66,7 +70,9 @@
   @Transactional
   @Override
   public void saveCouponTemplate(Long uid, String template) throws ShareGoodsTextTemplateException {
      isCouponTemplateRight(template);
      // 格式验证
      isTaoLiJinTemplateRight(template);
      ShareGoodsTextTemplate old = shareGoodsTextTemplateMapper.selectByUid(uid);
      if (old != null) {
         ShareGoodsTextTemplate update = new ShareGoodsTextTemplate();
@@ -81,9 +87,32 @@
         textTemplate.setUid(uid);
         shareGoodsTextTemplateMapper.insertSelective(textTemplate);
      }
   }
   @Transactional
   @Override
   public void saveTaoLiJinTemplate(Long uid, String template) throws ShareGoodsTextTemplateException {
      isCouponTemplateRight(template);
      ShareGoodsTextTemplate old = shareGoodsTextTemplateMapper.selectByUid(uid);
      if (old != null) {
         ShareGoodsTextTemplate update = new ShareGoodsTextTemplate();
         update.setId(old.getId());
         update.setShareTaoLiJinTextTemplate(template);
         update.setUpdateTime(new Date());
         shareGoodsTextTemplateMapper.updateByPrimaryKeySelective(update);
      } else {
         ShareGoodsTextTemplate textTemplate = new ShareGoodsTextTemplate();
         textTemplate.setCreateTime(new Date());
         textTemplate.setShareTaoLiJinTextTemplate(template);
         textTemplate.setUid(uid);
         shareGoodsTextTemplateMapper.insertSelective(textTemplate);
      }
   }
   @Override
   public String geteCouponTemplate(Long uid) {
      ShareGoodsTextTemplate template = shareGoodsTextTemplateMapper.selectByUid(uid);
@@ -92,6 +121,15 @@
      return null;
   }
   @Override
   public String getTaoLiJinTemplate(Long uid) {
      ShareGoodsTextTemplate template = shareGoodsTextTemplateMapper.selectByUid(uid);
      if (template != null)
         return template.getShareTaoLiJinTextTemplate();
      return null;
   }
   @Override
   public void isCommonTemplateRight(String template) throws ShareGoodsTextTemplateException {
      String[] keys = new String[] { "{标题}", "{店铺类型}", "{商品原价}", "{月销量}", "{短链}", "{淘口令}" };
@@ -114,30 +152,45 @@
         throw new ShareGoodsTextTemplateException(1, "模板格式有误");
   }
   @Override
   public String createContentByTemplate(String template, Long uid, TaoBaoGoodsBrief goods, boolean hasCoupon) {
      String url = String.format("http://%s%s?uid=%s&id=%s&appType=flq", configService.getH5Host(),
            Constant.systemCommonConfig.getShareGoodsPagePath(), AESUtil.encrypt(uid + "", Constant.UIDAESKEY),
            goods.getAuctionId() + "");
      String shortLink = HttpUtil.getShortLink(url);
   public void isTaoLiJinTemplateRight(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 createContentByTemplate(String template, Long uid, TaoBaoGoodsBrief goods, String token,
         String shortLink, boolean hasCoupon, Long tljId) {
      if (tljId != null) {
         // 计算推广红包
         String warningRate = configTaoLiJinService.getValueByKey("warning_value");
         BigDecimal spreadMoney = TaoLiJinUtil.getSpreadMoney(warningRate, goods);
         return template.replace("{标题}", goods.getTitle()).replace("{商品原价}", BigDecimalUtil.getWithNoZera( goods.getZkPrice()).toString())
               .replace("{月销量}", TaoBaoUtil.getSaleCount(goods.getBiz30day())).replace("{领券短链}", shortLink)
               .replace("{淘口令}", token).replace("{优惠券面额}", BigDecimalUtil.getWithNoZera(goods.getCouponAmount()).toString())
               .replace("{淘礼金面额}", BigDecimalUtil.getWithNoZera(spreadMoney).toString()).replace("{优惠券价}", BigDecimalUtil.getWithNoZera( TaoBaoUtil.getAfterUseCouplePrice(goods)).toString())
               .replace("{店铺类型}", goods.getUserType() == 1 ? "天猫价" : "淘宝价");
      }
      if (!hasCoupon) {
         String token = goods.getCouponLinkTaoToken();
         if (StringUtil.isNullOrEmpty(token))
            token = TaoKeApiUtil.getTKToken(goods.getPictUrl(), goods.getTitle(), goods.getAuctionUrl());
         return template.replace("{标题}", goods.getTitle()).replace("{商品原价}", goods.getZkPrice().toString())
         return template.replace("{标题}", goods.getTitle()).replace("{商品原价}",  BigDecimalUtil.getWithNoZera(goods.getZkPrice()).toString())
               .replace("{月销量}", TaoBaoUtil.getSaleCount(goods.getBiz30day())).replace("{短链}", shortLink)
               .replace("{淘口令}", "").replace("{店铺类型}", goods.getUserType() == 1 ? "天猫价"
                     : "淘宝价");
      } else {
         String token = goods.getCouponLinkTaoToken();
         if (StringUtil.isNullOrEmpty(token))
            token = TaoKeApiUtil.getTKToken(goods.getPictUrl(), goods.getTitle(), goods.getCouponLink());
         return template.replace("{标题}", goods.getTitle()).replace("{商品原价}", goods.getZkPrice().toString())
         return template.replace("{标题}", goods.getTitle()).replace("{商品原价}", BigDecimalUtil.getWithNoZera( goods.getZkPrice()).toString())
               .replace("{月销量}", TaoBaoUtil.getSaleCount(goods.getBiz30day())).replace("{领券短链}", shortLink)
               .replace("{淘口令}", token).replace("{优惠券面额}", goods.getCouponAmount().toString())
               .replace("{优惠券价}", TaoBaoUtil.getAfterUseCouplePrice(goods).toString())
               .replace("{淘口令}", token).replace("{优惠券面额}", BigDecimalUtil.getWithNoZera(goods.getCouponAmount()).toString())
               .replace("{优惠券价}", BigDecimalUtil.getWithNoZera( TaoBaoUtil.getAfterUseCouplePrice(goods)).toString())
               .replace("{店铺类型}", goods.getUserType() == 1 ? "天猫价" : "淘宝价");
      }
   }
@@ -167,4 +220,16 @@
      }
   }
   @Override
   public void resetTaoLijinTemplate(Long uid) {
      ShareGoodsTextTemplate template = shareGoodsTextTemplateMapper.selectByUid(uid);
      if (template != null) {
         ShareGoodsTextTemplate update = new ShareGoodsTextTemplate();
         update.setId(template.getId());
         update.setShareTaoLiJinTextTemplate("");
         update.setUpdateTime(new Date());
         shareGoodsTextTemplateMapper.updateByPrimaryKeySelective(update);
      }
   }
}