yujian
2019-07-19 8222e8b237c5dfb0affcdc03335bfadc06403bf8
fanli/src/main/java/com/yeshi/fanli/service/impl/tlj/UserTaoLiJinRecordServiceImpl.java
@@ -24,11 +24,14 @@
import com.yeshi.fanli.entity.bus.user.UserMoneyExtra;
import com.yeshi.fanli.entity.goods.CommonGoods;
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.UserTaoLiJinRecordException;
import com.yeshi.fanli.log.LogHelper;
import com.yeshi.fanli.service.inter.goods.CommonGoodsService;
import com.yeshi.fanli.service.inter.hongbao.HongBaoManageService;
import com.yeshi.fanli.service.inter.msg.UserOtherMsgNotificationService;
import com.yeshi.fanli.service.inter.taobao.ShareHotGoodsService;
import com.yeshi.fanli.service.inter.taobao.TaoBaoBuyRelationMapService;
import com.yeshi.fanli.service.inter.tlj.ConfigTaoLiJinService;
import com.yeshi.fanli.service.inter.tlj.UserTaoLiJinDetailService;
@@ -38,6 +41,7 @@
import com.yeshi.fanli.service.inter.user.UserExtraTaoBaoInfoService;
import com.yeshi.fanli.service.inter.user.UserInfoExtraService;
import com.yeshi.fanli.service.inter.user.UserMoneyExtraService;
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.MoneyBigDecimalUtil;
import com.yeshi.fanli.util.RedisManager;
import com.yeshi.fanli.util.StringUtil;
@@ -93,6 +97,9 @@
   @Resource
   private TaoBaoBuyRelationMapService taoBaoBuyRelationMapService;
   @Resource
   private ShareHotGoodsService shareHotGoodsService;
   @Override
   public UserTaoLiJinRecord selectByPrimaryKey(Long id) {
      return userTaoLiJinRecordMapper.selectByPrimaryKey(id);
@@ -232,22 +239,39 @@
      if (origin == 1) {
         BigDecimal tljSelf = userMoneyExtra.getTljSelf();
         if (tljSelf == null || tljSelf.compareTo(totalMoney) < 0) {
            throw new UserTaoLiJinRecordException(101, "红包余额不足");
            throw new UserTaoLiJinRecordException(101, "自购红包余额不足");
         }
      } 
      
      // 分享时的红包余额
      BigDecimal tlj = userMoneyExtra.getTlj();
      if (tlj == null || tlj.compareTo(totalMoney) < 0) {
         throw new UserTaoLiJinRecordException(101, "红包余额不足");
         throw new UserTaoLiJinRecordException(101, "分享红包余额不足");
      }
      
      // 创建淘礼金红包
      TaoLiJinDTO taoLiJinDTO = TaoKeApiUtil.createTaoLiJin(auctionId, name, perface, totalNum, sendStartTime,
            sendEndTime, useStartTime, useEndTime, pid);
      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) {
         LogHelper.errorDetailInfo(e);
         executor.execute(new Runnable() {
            @Override
            public void run() {
               if (e.getCode() == TaoKeApiException.CODE_TLJ_FORBIDDEN) {
                  // 该商品不支持创建淘礼金红包
                  shareHotGoodsService.deleteByGoodsId(auctionId);
               } else if (e.getCode() == TaoKeApiException.CODE_TLJ_NO_MONEY) {
                  // 官方玩法钱包余额不足  TODO
               }
            }
         });
      }
      if (taoLiJinDTO == null) {
         throw new UserTaoLiJinRecordException(101, "红包创建失败");
         throw new UserTaoLiJinRecordException(101, "淘宝API推广红包创建失败");
      }
      // 保存记录
@@ -352,8 +376,7 @@
            // 使用成功消息
            try {
               String beizhu = "未被领取/使用的部分将会退回";
               SimpleDateFormat sd = new SimpleDateFormat("yyyy.MM.dd hh.mm");
               SimpleDateFormat sd = new SimpleDateFormat("yyyy.MM.dd HH.mm");
               String time = sd.format(new Date());
               MsgOtherTaoLiJinContentDTO content = new MsgOtherTaoLiJinContentDTO();
               content.setState("红包扣除");
@@ -400,7 +423,7 @@
         return null;
      }
      List<CommonGoods> listGoods = commonGoodsService.getByListGoodsId(listGoodsId);
      List<CommonGoods> listGoods = commonGoodsService.getByListGoodsId(listGoodsId, Constant.SOURCE_TYPE_TAOBAO);
      if (listGoods == null || listGoods.size() == 0) {
         return null;
      }
@@ -454,6 +477,12 @@
   }
   @Override
   public long countShareRecordByUid(Long uid) {
      return userTaoLiJinRecordMapper.countShareRecordByUid(uid);
   }
   @Override
   public long countTodayNum(Long uid) {
      return userTaoLiJinRecordMapper.countTodayNum(uid);
   }