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.BigDecimalUtil;
|
|
import com.yeshi.fanli.dao.mybatis.goods.ShareGoodsTextTemplateMapper;
|
import com.yeshi.fanli.entity.goods.ShareGoodsTextTemplate;
|
import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
|
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.service.inter.tlj.ConfigTaoLiJinService;
|
import com.yeshi.fanli.util.taobao.TaoBaoUtil;
|
import com.yeshi.fanli.util.taobao.TaoLiJinUtil;
|
|
/**
|
* 分享商品模板
|
*
|
* @author Administrator
|
*
|
*/
|
@Service
|
public class ShareGoodsTextTemplateServiceImpl implements ShareGoodsTextTemplateService {
|
|
@Resource
|
private ShareGoodsTextTemplateMapper shareGoodsTextTemplateMapper;
|
|
@Resource
|
private ConfigService configService;
|
|
@Resource
|
private ConfigTaoLiJinService configTaoLiJinService;
|
|
|
|
@Override
|
public void saveCommonTemplate(Long uid, String template) throws ShareGoodsTextTemplateException {
|
isCommonTemplateRight(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 String getCommonTemplate(Long uid) {
|
ShareGoodsTextTemplate template = shareGoodsTextTemplateMapper.selectByUid(uid);
|
if (template != null)
|
return template.getShareTextTemplate();
|
return null;
|
}
|
|
@Transactional
|
@Override
|
public void saveCouponTemplate(Long uid, String template) throws ShareGoodsTextTemplateException {
|
// 格式验证
|
isTaoLiJinTemplateRight(template);
|
|
ShareGoodsTextTemplate old = shareGoodsTextTemplateMapper.selectByUid(uid);
|
if (old != null) {
|
ShareGoodsTextTemplate update = new ShareGoodsTextTemplate();
|
update.setId(old.getId());
|
update.setShareCouponTextTemplate(template);
|
update.setUpdateTime(new Date());
|
shareGoodsTextTemplateMapper.updateByPrimaryKeySelective(update);
|
} else {
|
ShareGoodsTextTemplate textTemplate = new ShareGoodsTextTemplate();
|
textTemplate.setCreateTime(new Date());
|
textTemplate.setShareCouponTextTemplate(template);
|
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);
|
if (template != null)
|
return template.getShareCouponTextTemplate();
|
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[] { "{标题}", "{店铺类型}", "{商品原价}", "{月销量}", "{短链}", "{淘口令}" };
|
int keysCount = 0;
|
for (String key : keys)
|
if (template != null && template.contains(key))
|
keysCount++;
|
if (keysCount == 0)
|
throw new ShareGoodsTextTemplateException(1, "模板格式有误");
|
}
|
|
@Override
|
public void isCouponTemplateRight(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 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) {
|
return template.replace("{标题}", goods.getTitle()).replace("{商品原价}", BigDecimalUtil.getWithNoZera(goods.getZkPrice()).toString())
|
.replace("{月销量}", TaoBaoUtil.getSaleCount(goods.getBiz30day())).replace("{短链}", shortLink)
|
.replace("{淘口令}", "").replace("{店铺类型}", goods.getUserType() == 1 ? "天猫价"
|
: "淘宝价");
|
} else {
|
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( TaoBaoUtil.getAfterUseCouplePrice(goods)).toString())
|
.replace("{店铺类型}", goods.getUserType() == 1 ? "天猫价" : "淘宝价");
|
}
|
}
|
|
@Override
|
public void resetCommonTemplate(Long uid) {
|
ShareGoodsTextTemplate template = shareGoodsTextTemplateMapper.selectByUid(uid);
|
if (template != null) {
|
ShareGoodsTextTemplate update = new ShareGoodsTextTemplate();
|
update.setId(template.getId());
|
update.setShareTextTemplate("");
|
update.setUpdateTime(new Date());
|
shareGoodsTextTemplateMapper.updateByPrimaryKeySelective(update);
|
}
|
|
}
|
|
@Override
|
public void resetCouponTemplate(Long uid) {
|
ShareGoodsTextTemplate template = shareGoodsTextTemplateMapper.selectByUid(uid);
|
if (template != null) {
|
ShareGoodsTextTemplate update = new ShareGoodsTextTemplate();
|
update.setId(template.getId());
|
update.setShareCouponTextTemplate("");
|
update.setUpdateTime(new Date());
|
shareGoodsTextTemplateMapper.updateByPrimaryKeySelective(update);
|
}
|
}
|
|
@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);
|
}
|
}
|
|
}
|