admin
2019-08-26 d28bed1a1275131a5ca37f7da37961e2b518ac07
fanli/src/main/java/com/yeshi/fanli/service/impl/tlj/UserTaoLiJinRecordServiceImpl.java
@@ -26,6 +26,7 @@
import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
import com.yeshi.fanli.entity.taobao.TaoKeAppInfo;
import com.yeshi.fanli.exception.taobao.TaoKeApiException;
import com.yeshi.fanli.exception.tlj.TaoLiJinCreateException;
import com.yeshi.fanli.exception.tlj.UserTaoLiJinRecordException;
import com.yeshi.fanli.log.LogHelper;
import com.yeshi.fanli.service.inter.goods.CommonGoodsService;
@@ -99,13 +100,12 @@
   @Resource
   private ShareHotGoodsService shareHotGoodsService;
   @Override
   public UserTaoLiJinRecord selectByPrimaryKey(Long id) {
      return userTaoLiJinRecordMapper.selectByPrimaryKey(id);
   }
   @Transactional
   @Override
   public UserTaoLiJinRecord createSelfBuyTaoLiJin(Long uid, int totalNum, TaoBaoGoodsBrief goods)
@@ -147,7 +147,7 @@
         UserTaoLiJinRecord record = createUserTaoLiJin(1, uid, goods.getAuctionId(), perface, 1, name,
               sendStartTime, sendEndTime, null, useEndTime, TaoBaoConstant.TAOBAO_RELATION_AS_SPECIAL_PID);
         record.setSendUrl(record.getSendUrl() + "&relationId=" + relationId);
         UserTaoLiJinRecord updateRecoed=new UserTaoLiJinRecord();
         UserTaoLiJinRecord updateRecoed = new UserTaoLiJinRecord();
         updateRecoed.setId(record.getId());
         updateRecoed.setSendUrl(record.getSendUrl());
         userTaoLiJinRecordMapper.updateByPrimaryKeySelective(record);
@@ -202,7 +202,7 @@
         perface = new BigDecimal(1);
      } else {
         // 计算推广红包
         String warningRate = configTaoLiJinService.getValueByKey("warning_value",new Date());
         String warningRate = configTaoLiJinService.getValueByKey("warning_value", new Date());
         perface = TaoLiJinUtil.getSpreadMoney(warningRate, goods);
      }
@@ -210,7 +210,7 @@
            sendStartTime, sendEndTime, null, useEndTime, TaoBaoConstant.TAOBAO_TLJ_RELATION_PID_DEFAULT);
      String sendUrl = record.getSendUrl() + "&relationId=" + relationId;
      record.setSendUrl(sendUrl);
      UserTaoLiJinRecord updateRecoed=new UserTaoLiJinRecord();
      UserTaoLiJinRecord updateRecoed = new UserTaoLiJinRecord();
      updateRecoed.setId(record.getId());
      updateRecoed.setSendUrl(sendUrl);
      userTaoLiJinRecordMapper.updateByPrimaryKeySelective(record);
@@ -231,45 +231,46 @@
      // 过期 -取消收回
      // userTaoLiJinOriginService.overdueHongBao(uid);
      // 总推广红包
      BigDecimal totalMoney = MoneyBigDecimalUtil.mul(perface, new BigDecimal(totalNum));
      // 自购时的红包余额
      if (origin == 1) {
         BigDecimal tljSelf = userMoneyExtra.getTljSelf();
         if (tljSelf == null || tljSelf.compareTo(totalMoney) < 0) {
            throw new UserTaoLiJinRecordException(101, "自购红包余额不足");
         }
      }
      }
      // 分享时的红包余额
      BigDecimal tlj = userMoneyExtra.getTlj();
      if (tlj == null || tlj.compareTo(totalMoney) < 0) {
         throw new UserTaoLiJinRecordException(101, "分享红包余额不足");
      }
      // 创建淘礼金红包
      TaoLiJinDTO taoLiJinDTO = null;
      try {
         taoLiJinDTO = TaoKeApiUtil.createTaoLiJin(auctionId, name, perface, totalNum, sendStartTime,
               sendEndTime, useStartTime, useEndTime,   new TaoKeAppInfo(TaoBaoConstant.TAOBAO_AUTH_APPKEY, TaoBaoConstant.TAOBAO_AUTH_APPSECRET, pid));
      } catch (TaoKeApiException e) {
         taoLiJinDTO = TaoKeApiUtil.createTaoLiJin(auctionId, name, perface, totalNum, sendStartTime, sendEndTime,
               useStartTime, useEndTime,
               new TaoKeAppInfo(TaoBaoConstant.TAOBAO_AUTH_APPKEY, TaoBaoConstant.TAOBAO_AUTH_APPSECRET, pid));
      } catch (TaoLiJinCreateException e) {
         LogHelper.errorDetailInfo(e);
         executor.execute(new Runnable() {
            @Override
            public void run() {
               if (e.getCode() == TaoKeApiException.CODE_TLJ_FORBIDDEN) {
               if (e.getCode() == TaoLiJinCreateException.CODE_TLJ_FORBIDDEN) {
                  // 该商品不支持创建淘礼金红包
                  shareHotGoodsService.deleteByGoodsId(auctionId);
               } else if (e.getCode() == TaoKeApiException.CODE_TLJ_NO_MONEY) {
                  // 官方玩法钱包余额不足  TODO
               } else if (e.getCode() == TaoLiJinCreateException.CODE_TLJ_NO_MONEY) {
                  // 官方玩法钱包余额不足 TODO
               }
            }
         });
      } catch (TaoKeApiException e1) {
      }
      if (taoLiJinDTO == null) {
         throw new UserTaoLiJinRecordException(101, "淘宝API推广红包创建失败");
      }
@@ -288,21 +289,21 @@
      record.setRightsId(taoLiJinDTO.getRightsId());
      record.setSendUrl(taoLiJinDTO.getSendUrl());
      record.setCreateTime(new Date());
      if (origin == 1) { //  自购
      if (origin == 1) { // 自购
         record.setUseType(1);
      } else { //  分享
      } else { // 分享
         record.setUseType(2);
      }
      userTaoLiJinRecordMapper.insertSelective(record);
      BigDecimal surplusTlj = MoneyBigDecimalUtil.sub(tlj, totalMoney);
      BigDecimal surplusTlj = MoneyBigDecimalUtil.sub(tlj, totalMoney);
      UserMoneyExtra updateExtra = new UserMoneyExtra();
      updateExtra.setUid(uid);
      if (origin == 1) { // 剩余淘礼金-- 自购
         updateExtra.setTljSelf(MoneyBigDecimalUtil.sub(userMoneyExtra.getTljSelf(), totalMoney));
      }
      }
      updateExtra.setTlj(surplusTlj);
      updateExtra.setUpdateTime(new Date());
      userMoneyExtraService.updateByPrimaryKeySelective(updateExtra);
@@ -366,13 +367,11 @@
            } catch (Exception e) {
               LogHelper.errorDetailInfo(e);
            }
            if (origin == 1) {
               return; //  自购不推送消息
            if (origin == 1) {
               return; // 自购不推送消息
            }
            // 使用成功消息
            try {
               String beizhu = "未被领取或领取后未使用部分退回";
@@ -458,7 +457,8 @@
         BigDecimal commission = userTaoLiJinRecordVO.getCommission();
         if (commission != null && commission.compareTo(shareMoney) > 0) {
            BigDecimal shareRate = hongBaoManageService.getShareRate();
            shareMoney = MoneyBigDecimalUtil.mul(commission, MoneyBigDecimalUtil.div(shareRate, new BigDecimal(100)));
            shareMoney = MoneyBigDecimalUtil.mul(commission,
                  MoneyBigDecimalUtil.div(shareRate, new BigDecimal(100)));
            shareMoney = BigDecimalUtil.getWithNoZera(shareMoney);
         }
@@ -480,8 +480,7 @@
   public long countShareRecordByUid(Long uid) {
      return userTaoLiJinRecordMapper.countShareRecordByUid(uid);
   }
   @Override
   public long countTodayNum(Long uid) {
      return userTaoLiJinRecordMapper.countTodayNum(uid);