From e40d1c22c7202aac843c66f9ee9cc000744f9e10 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期二, 30 六月 2020 15:52:49 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/div' into div
---
fanli/src/main/java/com/yeshi/fanli/service/impl/money/UserMoneyDebtServiceImpl.java | 128 +++++++++++++++++++++++++++++++++++++-----
1 files changed, 113 insertions(+), 15 deletions(-)
diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/money/UserMoneyDebtServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/money/UserMoneyDebtServiceImpl.java
index bc53c80..678f1f8 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/impl/money/UserMoneyDebtServiceImpl.java
+++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/money/UserMoneyDebtServiceImpl.java
@@ -2,29 +2,38 @@
import java.math.BigDecimal;
import java.util.Date;
+import java.util.List;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+import com.yeshi.fanli.dao.mybatis.AlipayAccountValidNormalHistoryMapper;
import com.yeshi.fanli.dao.mybatis.money.UserMoneyDebtMapper;
import com.yeshi.fanli.dao.mybatis.money.UserMoneyDebtReturnHistoryMapper;
+import com.yeshi.fanli.entity.bus.user.AlipayAccountValidNormalHistory;
import com.yeshi.fanli.entity.bus.user.HongBaoV2;
import com.yeshi.fanli.entity.money.UserMoneyDebt;
import com.yeshi.fanli.entity.money.UserMoneyDebt.UserMoneyDebtTypeEnum;
import com.yeshi.fanli.entity.money.UserMoneyDebtReturnHistory;
import com.yeshi.fanli.entity.money.UserMoneyDetail;
+import com.yeshi.fanli.entity.order.CommonOrder;
+import com.yeshi.fanli.entity.order.HongBaoOrder;
import com.yeshi.fanli.entity.taobao.TaoBaoWeiQuanDrawBack;
import com.yeshi.fanli.exception.money.UserMoneyDebtException;
import com.yeshi.fanli.exception.money.UserMoneyDetailException;
-import com.yeshi.fanli.service.inter.hongbao.HongBaoV2Service;
+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.taobao.TaoBaoOrderService;
-import com.yeshi.fanli.service.inter.taobao.TaoBaoWeiQuanDrawBackService;
+import com.yeshi.fanli.service.inter.money.UserMoneyService;
+import com.yeshi.fanli.service.inter.money.msg.UserMoneyMsgNotificationService;
+import com.yeshi.fanli.service.inter.money.tb.TaoBaoWeiQuanDrawBackService;
+import com.yeshi.fanli.service.inter.order.CommonOrderService;
+import com.yeshi.fanli.service.inter.order.HongBaoOrderService;
+import com.yeshi.fanli.service.inter.order.HongBaoV2Service;
+import com.yeshi.fanli.service.inter.order.tb.TaoBaoOrderService;
import com.yeshi.fanli.service.inter.user.UserInfoService;
-import com.yeshi.fanli.service.inter.user.UserMoneyService;
+import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.factory.UserMoneyDetailFactory;
@Service
@@ -46,6 +55,9 @@
private HongBaoV2Service hongBaoV2Service;
@Resource
+ private HongBaoOrderService hongBaoOrderService;
+
+ @Resource
private UserMoneyService userMoneyService;
@Resource
@@ -53,6 +65,12 @@
@Resource
private UserInfoService userInfoService;
+
+ @Resource
+ private AlipayAccountValidNormalHistoryMapper alipayAccountValidNormalHistoryMapper;
+
+ @Resource
+ private CommonOrderService commonOrderService;
@Override
public void addUserMoneyDebt(UserMoneyDebt debt) throws UserMoneyDebtException {
@@ -74,7 +92,7 @@
UserMoneyDebt old = userMoneyDebtMapper.selectByUidAndTypeAndSourceId(debt.getUid(), debt.getType(),
debt.getSourceId());
if (old != null) {
- throw new UserMoneyDebtException(3, "瀵瑰簲缁存潈宸茬粡瀛樺湪");
+ throw new UserMoneyDebtException(3, "瀵瑰簲鍞悗宸茬粡瀛樺湪");
}
userMoneyDebtMapper.insertSelective(debt);
}
@@ -86,7 +104,7 @@
return userMoneyDebtMapper.selectByTypeAndSourceId(type, sourceId);
}
- @Transactional
+ @Transactional(rollbackFor = Exception.class)
@Override
public void repayDebt(UserMoneyDebt debt, BigDecimal money) throws UserMoneyDebtException {
if (debt == null || debt.getId() == null)
@@ -143,8 +161,25 @@
}
// 鏂扮増閫氱煡
- userMoneyMsgNotificationService.fanliOrderWeiQuan(uid, weiQuanDrawBack.getOrderId(), money,
- userInfoService.getMyHB(uid));
+ List<CommonOrder> orderList = commonOrderService.listBySourceTypeAndOrderId(Constant.SOURCE_TYPE_TAOBAO,
+ weiQuanDrawBack.getOrderId());
+ int goodsCount = 0;
+ for (CommonOrder co : orderList) {
+ if (co.getState() != CommonOrder.STATE_SX)
+ goodsCount += co.getCount();
+ }
+
+ BigDecimal fanliMoney = new BigDecimal(0);
+ List<HongBaoOrder> hongBaoOrderList = hongBaoOrderService
+ .listDetailByOrderIdAndSourceType(weiQuanDrawBack.getOrderId(), Constant.SOURCE_TYPE_TAOBAO);
+
+ for (HongBaoOrder hongBaoOrder : hongBaoOrderList) {
+ fanliMoney = fanliMoney.add(hongBaoOrder.getHongBaoV2().getMoney());
+ }
+
+ userMoneyMsgNotificationService.fanliOrderWeiQuan(uid, weiQuanDrawBack.getOrderId(),
+ Constant.SOURCE_TYPE_TAOBAO, money, fanliMoney, goodsCount,
+ orderList.get(0).getThirdCreateTime());
break;
case HongBaoV2.TYPE_SHARE_GOODS:
@@ -155,8 +190,26 @@
weiQuanDrawBack, money);
userMoneyService.subUserMoney(uid, money, userMoneyDetail);
- userMoneyMsgNotificationService.shareOrderWeiQuan(debt.getUid(), weiQuanDrawBack.getOrderId(),
- money, userInfoService.getMyHB(uid));
+ // 鏂扮増閫氱煡
+ List<CommonOrder> orderList1 = commonOrderService
+ .listBySourceTypeAndOrderId(Constant.SOURCE_TYPE_TAOBAO, weiQuanDrawBack.getOrderId());
+ int goodsCount1 = 0;
+ for (CommonOrder co : orderList1) {
+ if (co.getState() != CommonOrder.STATE_SX)
+ goodsCount1 += co.getCount();
+ }
+
+ BigDecimal fanliMoney1 = new BigDecimal(0);
+ List<HongBaoOrder> hongBaoOrderList1 = hongBaoOrderService.listDetailByOrderIdAndSourceType(
+ weiQuanDrawBack.getOrderId(), Constant.SOURCE_TYPE_TAOBAO);
+
+ for (HongBaoOrder hongBaoOrder : hongBaoOrderList1) {
+ fanliMoney1 = fanliMoney1.add(hongBaoOrder.getHongBaoV2().getMoney());
+ }
+
+ userMoneyMsgNotificationService.shareOrderWeiQuan(uid, weiQuanDrawBack.getOrderId(),
+ Constant.SOURCE_TYPE_TAOBAO, money, fanliMoney1, goodsCount1,
+ orderList1.get(0).getThirdCreateTime());
} catch (UserMoneyDetailException e) {
throw new UserMoneyDebtException(12, "鎻掑叆璧勯噾璇︽儏鍑洪敊");
@@ -176,14 +229,59 @@
throw new UserMoneyDebtException(12, "鎻掑叆璧勯噾璇︽儏鍑洪敊");
}
- // 鏂扮増閫氱煡
- userMoneyMsgNotificationService.inviteOrderWeiQuan(uid, weiQuanDrawBack.getOrderId(), money,
- userInfoService.getMyHB(uid));
break;
-
}
+ } else if (debt.getType() == UserMoneyDebtTypeEnum.extractVerify) {// 鎻愮幇楠岃瘉
+ // 鏂扮増璧勯噾璁板綍
+ AlipayAccountValidNormalHistory aliPayAccountHistory = alipayAccountValidNormalHistoryMapper
+ .selectByPrimaryKey(debt.getSourceId());
+ AlipayAccountValidNormalHistory first = alipayAccountValidNormalHistoryMapper
+ .selectLatestByUid(aliPayAccountHistory.getUid());
+
+ if (aliPayAccountHistory == null)
+ return;
+ try {
+ UserMoneyDetail userMoneyDetail = UserMoneyDetailFactory.createExtractAccountValid(aliPayAccountHistory,
+ money);
+ userMoneyService.subUserMoney(aliPayAccountHistory.getUid(), money, userMoneyDetail);
+ } catch (UserMoneyDetailException e) {
+ throw new UserMoneyDebtException(12, "鎻掑叆璧勯噾璇︽儏鍑洪敊");
+ }
+ userMoneyMsgNotificationService.alipayAccountValid(aliPayAccountHistory, "1涓湀",
+ first.getId().longValue() != aliPayAccountHistory.getId());
}
}
+ @Transactional(rollbackFor = Exception.class)
+ @Override
+ public void repayDebt(Long uid) {
+ // 鏌ヨ鏄惁鏈夋瑺鍊�
+ List<UserMoneyDebt> list = userMoneyDebtMapper.listByUidWithHasLeftMoney(uid, 0, 50);
+ if (list != null && list.size() > 0) {// 鏈夋瑺鍊�
+ for (UserMoneyDebt debt : list) {
+ BigDecimal leftMoney = userInfoService.getBalance(uid);
+ if (leftMoney.compareTo(debt.getLeftMoney()) >= 0) {// 鏈夎冻澶熺殑璧勯噾鍋胯繕鍊哄姟
+ try {
+ repayDebt(debt, debt.getLeftMoney());
+ } catch (UserMoneyDebtException e) {
+ try {
+ LogHelper.errorDetailInfo(e, "uid:" + uid + " debtId:" + debt.getId(), null);
+ } catch (Exception e1) {
+ e1.printStackTrace();
+ }
+ }
+ }
+ }
+ }
+ }
+
+ @Override
+ public boolean isHaveDebtToRepay(Long uid) {
+ List<UserMoneyDebt> debtList = userMoneyDebtMapper.listByUidWithHasLeftMoney(uid, 0, 1);
+ if (debtList != null && debtList.size() > 0)
+ return true;
+ return false;
+ }
+
}
--
Gitblit v1.8.0