admin
2020-04-15 ee5c8055b1c0dd7c67a9025a76b10bd287c93d9a
fanli/src/main/java/com/yeshi/fanli/service/impl/goods/ShareGoodsServiceImpl.java
@@ -19,15 +19,11 @@
import org.yeshi.utils.exception.HttpException;
import org.yeshi.utils.tencentcloud.COSManager;
import com.yeshi.fanli.dao.mybatis.HongBaoManageMapper;
import com.yeshi.fanli.dao.mybatis.UserInfoMapper;
import com.yeshi.fanli.dao.mybatis.UserShareGoodsHistoryMapper;
import com.yeshi.fanli.dao.mybatis.share.PidUserMapper;
import com.yeshi.fanli.dto.taobao.TaoLiJinDTO;
import com.yeshi.fanli.entity.bus.share.UserShareGoodsHistory;
import com.yeshi.fanli.entity.bus.tlj.UserTaoLiJinRecord;
import com.yeshi.fanli.entity.bus.user.UserInfo;
import com.yeshi.fanli.entity.bus.user.UserMoneyExtra;
import com.yeshi.fanli.entity.taobao.PidUser;
import com.yeshi.fanli.entity.taobao.TBPid;
import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
@@ -35,28 +31,28 @@
import com.yeshi.fanli.entity.taobao.TaoBaoUnionConfig;
import com.yeshi.fanli.entity.taobao.TaoKeAppInfo;
import com.yeshi.fanli.entity.taobao.UserTLJBuyHistory;
import com.yeshi.fanli.exception.ShareGoodsException;
import com.yeshi.fanli.exception.share.ShareGoodsException;
import com.yeshi.fanli.exception.taobao.TaoKeApiException;
import com.yeshi.fanli.exception.taobao.TaobaoGoodsDownException;
import com.yeshi.fanli.exception.tlj.TaoLiJinCreateException;
import com.yeshi.fanli.exception.tlj.UserTaoLiJinRecordException;
import com.yeshi.fanli.exception.tlj.UserTaoLiJinNewbiesException;
import com.yeshi.fanli.log.LogHelper;
import com.yeshi.fanli.service.impl.monitor.BusinessEmergent110ServiceImpl;
import com.yeshi.fanli.log.LogManager;
import com.yeshi.fanli.log.LogType;
import com.yeshi.fanli.service.inter.config.ConfigService;
import com.yeshi.fanli.service.inter.goods.CommonGoodsService;
import com.yeshi.fanli.service.inter.goods.ShareGoodsService;
import com.yeshi.fanli.service.inter.hongbao.HongBaoManageService;
import com.yeshi.fanli.service.inter.monitor.BusinessEmergent110Service;
import com.yeshi.fanli.service.inter.order.config.HongBaoManageService;
import com.yeshi.fanli.service.inter.redpack.UserTaoLiJinNewbiesService;
import com.yeshi.fanli.service.inter.taobao.TLJBuyGoodsService;
import com.yeshi.fanli.service.inter.taobao.TaoBaoUnionConfigService;
import com.yeshi.fanli.service.inter.taobao.UserTLJBuyHistoryService;
import com.yeshi.fanli.service.inter.tlj.UserTaoLiJinRecordService;
import com.yeshi.fanli.service.inter.user.TBPidService;
import com.yeshi.fanli.service.inter.user.UserAccountService;
import com.yeshi.fanli.service.inter.user.UserMoneyExtraService;
import com.yeshi.fanli.service.inter.user.UserShareGoodsRecordService;
import com.yeshi.fanli.service.manger.goods.ConvertLinkManager;
import com.yeshi.fanli.util.AESUtil;
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.FilePathEnum;
import com.yeshi.fanli.util.FileUtil;
import com.yeshi.fanli.util.ImageUtil;
import com.yeshi.fanli.util.RedisManager;
@@ -69,8 +65,7 @@
@Service
public class ShareGoodsServiceImpl implements ShareGoodsService {
   @Resource
   private PidUserMapper pidUserMapper;
   @Resource
   private TBPidService tbPidService;
@@ -78,8 +73,6 @@
   @Resource
   private UserShareGoodsHistoryMapper userShareGoodsHistoryMapper;
   @Resource
   private HongBaoManageMapper hongBaoManageMapper;
   @Resource
   private UserInfoMapper userinfoMapper;
@@ -99,17 +92,6 @@
   @Resource
   private HongBaoManageService hongBaoManageService;
   @Resource
   private UserShareGoodsRecordService userShareGoodsRecordService;
   @Resource
   private CommonGoodsService commonGoodsService;
   @Resource
   private UserMoneyExtraService userMoneyExtraService;
   @Resource
   private UserTaoLiJinRecordService userTaoLiJinRecordService;
   @Resource
   private UserTLJBuyHistoryService userTLJBuyHistoryService;
@@ -119,6 +101,12 @@
   @Resource
   private BusinessEmergent110Service businessEmergent110Service;
   @Resource
   private UserTaoLiJinNewbiesService userTaoLiJinNewbiesService;
   @Resource
   private ConvertLinkManager convertLinkManager;
   @Override
   public void addShareGoodsHistory(UserShareGoodsHistory history) {
@@ -205,10 +193,10 @@
      }
      UserShareGoodsHistory history = new UserShareGoodsHistory();
      history.setTkCode(tbLink.getTaoToken());
      history.setTkCode(TaoBaoUtil.filterTaoToken(tbLink.getTaoToken()));
      history.setLink(tbLink.getClickUrl());
      history.setQuanLink(tbLink.getCouponLink());
      history.setTkCode(tbLink.getTaoToken());
      history.setTkCode(TaoBaoUtil.filterTaoToken(tbLink.getTaoToken()));
      history.setCreateTime(new Date());
      history.setGoodsId(goods.getAuctionId());
@@ -247,7 +235,7 @@
         // throw new ShareGoodsException(4, "生成二维码失败");
         // }
         // 获取到用户的头像
         UserInfo user = userinfoMapper.selectByPrimaryKey(uid);
         UserInfo user = userinfoMapper.selectAvailableByPrimaryKey(uid);
         InputStream portrait = null;
         if (!StringUtil.isNullOrEmpty(user.getPortrait())) {
            try {
@@ -303,7 +291,8 @@
         }
         FileUploadResult shareImgResult = COSManager.getInstance().uploadInputStream(shareImgInputStream,
               "sharegoods/share_" + uid + "_" + goods.getAuctionId() + "_" + System.currentTimeMillis() + ".png");
               FilePathEnum.shareGoods.getPath() + "share_" + uid + "_" + goods.getAuctionId() + "_"
                     + System.currentTimeMillis() + ".png");
         if (shareImgResult == null || StringUtil.isNullOrEmpty(shareImgResult.getUrl())) {
            throw new ShareGoodsException(6, "分享图片保存失败");
@@ -367,16 +356,16 @@
         UserShareGoodsHistory history = new UserShareGoodsHistory();
         history.setId(userShareGoodsHistory.getId());
         history.setTkCode(tbLink.getTaoToken());
         history.setTkCode(TaoBaoUtil.filterTaoToken(tbLink.getTaoToken()));
         history.setLink(tbLink.getClickUrl());
         history.setQuanLink(tbLink.getCouponLink());
         history.setTkCode(tbLink.getTaoToken());
         history.setTkCode(TaoBaoUtil.filterTaoToken(tbLink.getTaoToken()));
         userShareGoodsHistoryMapper.updateByPrimaryKeySelective(history);
         userShareGoodsHistory.setTkCode(tbLink.getTaoToken());
         userShareGoodsHistory.setTkCode(TaoBaoUtil.filterTaoToken(tbLink.getTaoToken()));
         userShareGoodsHistory.setLink(tbLink.getClickUrl());
         userShareGoodsHistory.setQuanLink(tbLink.getCouponLink());
         userShareGoodsHistory.setTkCode(tbLink.getTaoToken());
         userShareGoodsHistory.setTkCode(TaoBaoUtil.filterTaoToken(tbLink.getTaoToken()));
      }
      return userShareGoodsHistory;
@@ -419,8 +408,6 @@
      }
      TaoBaoGoodsBrief goods = null;
      try {
         // 测试
         // info.setAdzoneId("123");
         goods = TaoKeApiUtil.searchGoodsDetail(auctionId, info);
      } catch (TaobaoGoodsDownException e) {
         throw new ShareGoodsException(4, "商品已下架");
@@ -431,8 +418,6 @@
      }
      if (StringUtil.isNullOrEmpty(goods.getCouponLink()) && !goods.getAuctionUrl().contains("s.click.taobao.com")) {
         TaoBaoUnionConfig taoBaoUnionConfig = taoBaoUnionConfigService
               .getConfigByAppIdCache(info.getPid().split("_")[2]);
         TaoBaoGoodsBrief taoBaoLink = TaoKeApiUtil.specialConvertCoupon(auctionId, info);
         if (taoBaoLink == null) {
            throw new ShareGoodsException(201, "商品转链失败");
@@ -457,12 +442,12 @@
      tbLink.setCouponLink(goods.getCouponLink());
      if (!StringUtil.isNullOrEmpty(tbLink.getCouponLink())) {// 通过立即推广方式获取淘口令成功
         String quanToken = TaoKeApiUtil.getTKToken(goods.getPictUrl(), goods.getTitle(), tbLink.getCouponLink());
         String quanToken = convertLinkManager.createTaoBaoToken(uid, goods.getPictUrl(), goods.getTitle(), tbLink.getCouponLink());
         if (!StringUtil.isNullOrEmpty(quanToken)) {
            tbLink.setTaoToken(quanToken);
         }
      } else if (!StringUtil.isNullOrEmpty(tbLink.getClickUrl())) {
         String quanToken = TaoKeApiUtil.getTKToken(goods.getPictUrl(), goods.getTitle(), tbLink.getClickUrl());
         String quanToken = convertLinkManager.createTaoBaoToken(uid,goods.getPictUrl(), goods.getTitle(), tbLink.getClickUrl());
         if (!StringUtil.isNullOrEmpty(quanToken)) {
            tbLink.setTaoToken(quanToken);
         }
@@ -474,9 +459,24 @@
      if (Constant.IS_OUTNET)
         redisManager.saveTaoBaoGoodsBriefTemp(goods);
      LogManager.getLogger(LogType.taobaoTrade)
            .info(String.format("淘宝商品分享\n UID:%s \n 商品ID:%s \n 券链接%s \n商品链接:%s \n 口令:%s ", uid, auctionId,
                  tbLink.getCouponLink(), tbLink.getClickUrl(), tbLink.getTaoToken()));
      return tbLink;
   }
   @Override
   public String createTaoBaoToken(Long uid, TaoBaoGoodsBrief goods) {
      String quanToken = "";
      if (!StringUtil.isNullOrEmpty(goods.getCouponLink())) {// 通过立即推广方式获取淘口令成功
         quanToken = convertLinkManager.createTaoBaoToken(uid, goods.getPictUrl(), goods.getTitle(), goods.getCouponLink());
      } else if (!StringUtil.isNullOrEmpty(goods.getAuctionUrl())) {
         quanToken = convertLinkManager.createTaoBaoToken(uid,goods.getPictUrl(), goods.getTitle(), goods.getAuctionUrl());
      }
      return quanToken;
   }
   @Override
   public TaoBaoLink getTaoBaoLinkForBuy(Long uid, Long auctionId, int pidType) throws ShareGoodsException {
@@ -572,8 +572,9 @@
      taoBaoLink.setAuctionId(auctionId);
      taoBaoLink.setClickUrl(goods.getAuctionUrl());
      taoBaoLink.setCouponLink(goods.getCouponLink());
      if (!StringUtil.isNullOrEmpty(goods.getYsylClickUrl()))
         taoBaoLink.setCouponLink(goods.getYsylClickUrl());
      taoBaoLink.setGoods(goods);
      return taoBaoLink;
   }
@@ -650,6 +651,8 @@
      tbLink.setAuctionId(goods.getAuctionId());
      tbLink.setClickUrl(goods.getAuctionUrl());
      tbLink.setCouponLink(goods.getCouponLink());
      if (!StringUtil.isNullOrEmpty(goods.getYsylClickUrl()))
         tbLink.setCouponLink(goods.getYsylClickUrl());
      if (!StringUtil.isNullOrEmpty(tbLink.getCouponLink())) {// 通过立即推广方式获取淘口令成功
         String quanToken = TaoKeApiUtil.getTKToken(goods.getPictUrl(), goods.getTitle(), tbLink.getCouponLink());
@@ -675,39 +678,28 @@
   @Override
   public TaoBaoLink getTaoLiJinLinkForBuy(Long uid, String specialId, Long auctionId, String pid)
         throws ShareGoodsException {
      if (uid == null || uid <= 0) {
      if (uid == null || uid <= 0)
         throw new ShareGoodsException(1, "用户ID不能为空");
      if (auctionId == null || auctionId <= 0)
         throw new ShareGoodsException(1, "商品ID不能为空");
      TaoBaoGoodsBrief goods = null;
      try {
         goods = TaoKeApiUtil.searchGoodsDetail(auctionId);
      } catch (TaobaoGoodsDownException e) {
         throw new ShareGoodsException(1, "该商品已下架");
      }
      if (auctionId == null || auctionId <= 0) {
         throw new ShareGoodsException(2, "商品ID不能为空");
      }
      // 用户剩余可以淘礼金验证
      UserMoneyExtra userMoneyExtra = userMoneyExtraService.selectByPrimaryKey(uid);
      if (userMoneyExtra == null || userMoneyExtra.getTlj() == null) {
         throw new ShareGoodsException(101, "红包余额不足");
      }
      TaoKeAppInfo app = new TaoKeAppInfo();
      app.setAppKey(TaoBaoConstant.TAOBAO_AUTH_APPKEY);
      app.setAppSecret(TaoBaoConstant.TAOBAO_AUTH_APPSECRET);
      if (pid == null)
         app.setPid(TaoBaoConstant.TAOBAO_SPECIAL_PID_DEFAULT);
      else
         app.setPid(pid);
      TaoBaoGoodsBrief goods = TaoKeApiUtil.specialConvertCoupon(auctionId, app);
      if (goods == null) {
         throw new ShareGoodsException(1, "");
      }
      if (goods == null)
         throw new ShareGoodsException(1, "该商品已下架");
      String taoLiJinLink = null;
      try {
         goods.setAuctionId(auctionId);
         UserTaoLiJinRecord createUserTaoLiJin = userTaoLiJinRecordService.createSelfBuyTaoLiJin(uid, 1, goods);
         taoLiJinLink = createUserTaoLiJin.getSendUrl();
      } catch (UserTaoLiJinRecordException e) {
         throw new ShareGoodsException(e.getCode(), e.getMsg());
         taoLiJinLink = userTaoLiJinNewbiesService.createTaoLiJinForBuy(goods, uid);
      } catch (UserTaoLiJinNewbiesException e1) {
         throw new ShareGoodsException(e1.getCode(), e1.getMsg());
      }
      TaoBaoLink taoBaoLink = new TaoBaoLink();
@@ -715,7 +707,6 @@
      taoBaoLink.setClickUrl(goods.getAuctionUrl());
      taoBaoLink.setCouponLink(taoLiJinLink);
      taoBaoLink.setGoods(goods);
      return taoBaoLink;
   }
@@ -834,7 +825,7 @@
            TaoBaoUnionConfig config = taoBaoUnionConfigService.getConfigByAppKeyCache(app.getAppKey());
            businessEmergent110Service.tljNoMoney(config.getAccount());
         } else if (e1.getCode() == TaoLiJinCreateException.CODE_TLJ_FORBIDDEN) {// 商品不允许创建淘礼金
            tljBuyGoodsService.removeGoods(auctionId);
         }
         LogHelper.errorDetailInfo(e1, e1.getMessage(), null);
      } catch (TaoKeApiException e) {