package com.yeshi.fanli.service.impl.goods;
|
|
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 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.util.AESUtil;
|
import com.yeshi.fanli.util.Constant;
|
import com.yeshi.fanli.util.StringUtil;
|
import com.yeshi.fanli.util.taobao.TaoBaoUtil;
|
import com.yeshi.fanli.util.taobao.TaoKeApiUtil;
|
|
/**
|
* 分享商品模板
|
*
|
* @author Administrator
|
*
|
*/
|
@Service
|
public class ShareGoodsTextTemplateServiceImpl implements ShareGoodsTextTemplateService {
|
|
@Resource
|
private ShareGoodsTextTemplateMapper shareGoodsTextTemplateMapper;
|
|
@Resource
|
private ConfigService configService;
|
|
@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 {
|
isCouponTemplateRight(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);
|
}
|
|
}
|
|
@Override
|
public String geteCouponTemplate(Long uid) {
|
ShareGoodsTextTemplate template = shareGoodsTextTemplateMapper.selectByUid(uid);
|
if (template != null)
|
return template.getShareCouponTextTemplate();
|
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 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);
|
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())
|
.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())
|
.replace("{月销量}", TaoBaoUtil.getSaleCount(goods.getBiz30day())).replace("{领券短链}", shortLink)
|
.replace("{淘口令}", token).replace("{优惠券面额}", goods.getCouponAmount().toString())
|
.replace("{优惠券价}", 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);
|
}
|
}
|
|
}
|