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.dto.jd.JDPingouInfo;
|
import com.yeshi.fanli.dto.pdd.PDDGoodsDetail;
|
import com.yeshi.fanli.entity.goods.ShareGoodsTextTemplate;
|
import com.yeshi.fanli.entity.jd.JDGoods;
|
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.MoneyBigDecimalUtil;
|
import com.yeshi.fanli.util.StringUtil;
|
import com.yeshi.fanli.util.jd.JDUtil;
|
import com.yeshi.fanli.util.pinduoduo.PinDuoDuoUtil;
|
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 void saveCommonTemplateJD(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.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 saveCommonTemplatePDD(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.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 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 saveCouponTemplateJD(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.setShareJDTextTemplateCoupon(template);
|
update.setUpdateTime(new Date());
|
shareGoodsTextTemplateMapper.updateByPrimaryKeySelective(update);
|
} else {
|
ShareGoodsTextTemplate textTemplate = new ShareGoodsTextTemplate();
|
textTemplate.setCreateTime(new Date());
|
textTemplate.setShareJDTextTemplateCoupon(template);
|
textTemplate.setUid(uid);
|
shareGoodsTextTemplateMapper.insertSelective(textTemplate);
|
}
|
}
|
|
|
@Transactional
|
@Override
|
public void saveCouponTemplatePDD(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.setSharePDDTextTemplateCoupon(template);
|
update.setUpdateTime(new Date());
|
shareGoodsTextTemplateMapper.updateByPrimaryKeySelective(update);
|
} else {
|
ShareGoodsTextTemplate textTemplate = new ShareGoodsTextTemplate();
|
textTemplate.setCreateTime(new Date());
|
textTemplate.setSharePDDTextTemplateCoupon(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 ShareGoodsTextTemplate getShareGoodsTextTemplate(Long uid) {
|
return shareGoodsTextTemplateMapper.selectByUid(uid);
|
}
|
|
@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 isCommonTemplateRightJD(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 isCommonTemplateRightPDD(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 isCouponTemplateRightJD(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 isCouponTemplateRightPDD(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 String createContentByTemplateJD(String template, Long uid, JDGoods goods, String shortLink, boolean hasCoupon) {
|
BigDecimal price = goods.getPrice();
|
JDPingouInfo pinGouInfo = goods.getPinGouInfo();
|
if (pinGouInfo != null) {
|
price = pinGouInfo.getPingouPrice();
|
}
|
|
if (!hasCoupon) {
|
template = template.replace("{标题}", goods.getSkuName()).replace("{商品原价}", BigDecimalUtil.getWithNoZera(price).toString())
|
.replace("{月销量}", JDUtil.getSaleCount(goods.getInOrderCount30Days())).replace("{短链接}", shortLink);
|
} else {
|
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.getQuanPrice(goods)).toString());
|
}
|
|
if (pinGouInfo != null) {
|
template = template.replace("{京东价}", "拼购价");
|
} else {
|
template = template.replace("{京东价}", "京东价");
|
}
|
return template;
|
}
|
|
|
@Override
|
public String createContentByTemplatePDD(String template, Long uid, PDDGoodsDetail goods,
|
String shortLink, boolean hasCoupon, String token) {
|
BigDecimal hundred = new BigDecimal(100);
|
BigDecimal price = MoneyBigDecimalUtil.div(new BigDecimal(goods.getMinGroupPrice()), hundred);
|
if (!hasCoupon) {
|
template = template.replace("{标题}", goods.getGoodsName()).replace("{商品原价}", BigDecimalUtil.getWithNoZera(price).toString())
|
.replace("{总销量}", goods.getSalesTip()).replace("{短链接}", shortLink);
|
} else {
|
BigDecimal amount = MoneyBigDecimalUtil.div(new BigDecimal(goods.getCouponDiscount()), hundred);
|
template = template.replace("{标题}", goods.getGoodsName()).replace("{商品原价}", BigDecimalUtil.getWithNoZera(price).toString())
|
.replace("{总销量}", goods.getSalesTip()).replace("{短链接}", shortLink)
|
.replace("{优惠券面额}", BigDecimalUtil.getWithNoZera(amount).toString())
|
.replace("{优惠券价}", BigDecimalUtil.getWithNoZera(PinDuoDuoUtil.getQuanPrice(goods)).toString());
|
}
|
|
if (StringUtil.isNullOrEmpty(token)) {
|
template = template.replace("{多多口令}打开拼多多,", "");
|
} else {
|
template = template.replace("{多多口令}", token);
|
}
|
|
return template;
|
}
|
|
@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 resetCommonTemplateJD(Long uid) {
|
ShareGoodsTextTemplate template = shareGoodsTextTemplateMapper.selectByUid(uid);
|
if (template != null) {
|
ShareGoodsTextTemplate update = new ShareGoodsTextTemplate();
|
update.setId(template.getId());
|
update.setShareJDTextTemplate("");
|
update.setUpdateTime(new Date());
|
shareGoodsTextTemplateMapper.updateByPrimaryKeySelective(update);
|
}
|
|
}
|
|
@Override
|
public void resetCouponTemplateJD(Long uid) {
|
ShareGoodsTextTemplate template = shareGoodsTextTemplateMapper.selectByUid(uid);
|
if (template != null) {
|
ShareGoodsTextTemplate update = new ShareGoodsTextTemplate();
|
update.setId(template.getId());
|
update.setShareJDTextTemplateCoupon("");
|
update.setUpdateTime(new Date());
|
shareGoodsTextTemplateMapper.updateByPrimaryKeySelective(update);
|
}
|
}
|
|
|
@Override
|
public void resetCommonTemplatePDD(Long uid) {
|
ShareGoodsTextTemplate template = shareGoodsTextTemplateMapper.selectByUid(uid);
|
if (template != null) {
|
ShareGoodsTextTemplate update = new ShareGoodsTextTemplate();
|
update.setId(template.getId());
|
update.setSharePDDTextTemplate("");
|
update.setUpdateTime(new Date());
|
shareGoodsTextTemplateMapper.updateByPrimaryKeySelective(update);
|
}
|
|
}
|
|
@Override
|
public void resetCouponTemplatePDD(Long uid) {
|
ShareGoodsTextTemplate template = shareGoodsTextTemplateMapper.selectByUid(uid);
|
if (template != null) {
|
ShareGoodsTextTemplate update = new ShareGoodsTextTemplate();
|
update.setId(template.getId());
|
update.setSharePDDTextTemplateCoupon("");
|
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);
|
}
|
}
|
|
}
|