yujian
2019-07-31 f4548a3ee46afe45da4ee2a42dc169c575deee9f
fanli/src/main/java/com/yeshi/fanli/service/impl/taobao/TaoBaoWeiQuanDrawBackServiceImpl.java
@@ -36,15 +36,12 @@
import com.yeshi.fanli.log.LogHelper;
import com.yeshi.fanli.service.inter.money.UserMoneyDebtService;
import com.yeshi.fanli.service.inter.msg.UserMoneyMsgNotificationService;
import com.yeshi.fanli.service.inter.order.CommonOrderService;
import com.yeshi.fanli.service.inter.taobao.TaoBaoWeiQuanDrawBackService;
import com.yeshi.fanli.service.inter.taobao.TaoBaoWeiQuanOrderService;
import com.yeshi.fanli.service.inter.user.UserMoneyService;
import com.yeshi.fanli.service.inter.user.UserNotificationService;
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.MoneyBigDecimalUtil;
import com.yeshi.fanli.util.StringUtil;
import com.yeshi.fanli.util.TaoBaoConstant;
import com.yeshi.fanli.util.factory.UserMoneyDetailFactory;
import com.yeshi.fanli.vo.order.CommonOrderVO;
@@ -64,9 +61,6 @@
   @Resource
   private UserMoneyDetailMapper userMoneyDetailMapper;
   @Resource
   private UserNotificationService userNotificationService;
   @Resource
   private CommonOrderMapper commonOrderMapper;
@@ -263,10 +257,8 @@
         userMoneyService.subUserMoney(uid, drawBackMoney, userMoneyDetail);
         // 新版通知
         userMoneyMsgNotificationService.fanliOrderWeiQuan(uid, orderId, drawBackMoney,
               userInfoMapper.selectByPrimaryKey(uid).getMyHongBao());
         userNotificationService.weiQuanFanli(uid, orderId, drawBackMoney);
         userMoneyMsgNotificationService.fanliOrderWeiQuan(uid, orderId,Constant.SOURCE_TYPE_TAOBAO, drawBackMoney,
               userInfoMapper.selectByPKey(uid).getMyHongBao());
      }
   }
@@ -437,11 +429,8 @@
            }
         }
         userMoneyService.subUserMoney(uid, drawBackMoney, userMoneyDetail);
         userMoneyMsgNotificationService.shareOrderWeiQuan(uid, orderId, drawBackMoney,
         userMoneyMsgNotificationService.shareOrderWeiQuan(uid, orderId, Constant.SOURCE_TYPE_TAOBAO,drawBackMoney,
               userInfoMapper.selectByPrimaryKey(uid).getMyHongBao());
         userNotificationService.weiQuanTiCheng(uid, orderId, drawBackMoney);
      }
   }
@@ -500,36 +489,41 @@
               weiQuanDrawBack.setUser(child.getUserInfo());
               taoBaoWeiQuanDrawBackMapper.insertSelective(weiQuanDrawBack);// 加入返还记录
               // 判断资金是否足够扣款
               UserInfo user = userInfoMapper.selectByPKey(uid);
               if (user != null && user.getMyHongBao().compareTo(drawBackMoney) < 0)// 资金不足
               {
                  try {
                     addDebt(uid, child.getId(), drawBackMoney);
                  } catch (UserMoneyDebtException e) {
                     throw new TaoBaoWeiQuanException(101, "资金借贷异常");
               // 如果资金大于0才扣除
               if (drawBackMoney != null && drawBackMoney.compareTo(new BigDecimal(0)) > 0) {
                  // 判断资金是否足够扣款
                  UserInfo user = userInfoMapper.selectByPKey(uid);
                  if (user != null && user.getMyHongBao().compareTo(drawBackMoney) < 0)// 资金不足
                  {
                     try {
                        addDebt(uid, child.getId(), drawBackMoney);
                     } catch (UserMoneyDebtException e) {
                        throw new TaoBaoWeiQuanException(101, "资金借贷异常");
                     }
                     continue;
                  }
                  continue;
               }
               UserMoneyDetail userMoneyDetail = null;
               // 新版资金记录
               try {
                  userMoneyDetail = UserMoneyDetailFactory.createInviteWeiQuan(uid, weiQuanDrawBack,
                        drawBackMoney);
               } catch (UserMoneyDetailException e) {
                  UserMoneyDetail userMoneyDetail = null;
                  // 新版资金记录
                  try {
                     LogHelper.errorDetailInfo(e);
                  } catch (Exception e1) {
                     e1.printStackTrace();
                     userMoneyDetail = UserMoneyDetailFactory.createInviteWeiQuan(uid, weiQuanDrawBack,
                           drawBackMoney);
                  } catch (UserMoneyDetailException e) {
                     try {
                        LogHelper.errorDetailInfo(e);
                     } catch (Exception e1) {
                        e1.printStackTrace();
                     }
                  }
               }
               userMoneyService.subUserMoney(uid, drawBackMoney, userMoneyDetail);
                  userMoneyService.subUserMoney(uid, drawBackMoney, userMoneyDetail);
               // 新版通知
               userMoneyMsgNotificationService.inviteOrderWeiQuan(uid, orderId, drawBackMoney,
                     userInfoMapper.selectByPrimaryKey(uid).getMyHongBao());
                  // 新版通知
                  userMoneyMsgNotificationService.inviteOrderWeiQuan(uid, orderId,Constant.SOURCE_TYPE_TAOBAO, drawBackMoney,
                        userInfoMapper.selectByPrimaryKey(uid).getMyHongBao());
               }
            }
      }
   }