| | |
| | | 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.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.util.AESUtil;
|
| | | import com.yeshi.fanli.util.Constant;
|
| | | 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.TaoKeApiUtil;
|
| | | import com.yeshi.fanli.util.taobao.TaoLiJinUtil;
|
| | |
|
| | | /**
|
| | | * 分享商品模板
|
| | |
| | |
|
| | | @Resource
|
| | | private ConfigService configService;
|
| | |
|
| | | @Resource
|
| | | private ConfigTaoLiJinService configTaoLiJinService;
|
| | |
|
| | | @Override
|
| | | public void saveCommonTemplate(Long uid, String template) throws ShareGoodsTextTemplateException {
|
| | |
| | | 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
|
| | |
| | | @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();
|
| | |
| | | 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
|
| | |
| | | }
|
| | |
|
| | | @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))
|
| | |
| | | }
|
| | |
|
| | | @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());
|
| | | 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, "模板格式有误");
|
| | | }
|
| | |
|
| | | 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());
|
| | | @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, "模板格式有误");
|
| | | }
|
| | |
|
| | | return template.replace("{标题}", goods.getTitle()).replace("{商品原价}", goods.getZkPrice().toString())
|
| | | @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", new Date());
|
| | | 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("{优惠券面额}", goods.getCouponAmount().toString())
|
| | | .replace("{优惠券价}", TaoBaoUtil.getAfterUseCouplePrice(goods).toString())
|
| | | .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("{淘口令}", token).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);
|
| | | if (StringUtil.isNullOrEmpty(token)) {
|
| | | template = template.replace("复制本条信息,{多多口令}打开拼多多,立即购买", "点击链接,打开拼多多,立即购买");
|
| | | } else {
|
| | | template = template.replace("{多多口令}", token);
|
| | | }
|
| | | } 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
|
| | |
| | | }
|
| | | }
|
| | |
|
| | | @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);
|
| | | }
|
| | | }
|
| | |
|
| | | }
|