From 27920d99bc5925de113aa4f0c22dbba3dcea672f Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期一, 19 八月 2019 17:46:58 +0800
Subject: [PATCH] 增加通用模板免单内容
---
fanli/src/main/java/com/yeshi/fanli/service/impl/taobao/TaoBaoWeiQuanDrawBackServiceImpl.java | 275 +++++++++++++++++++++++++++++-------------------------
1 files changed, 146 insertions(+), 129 deletions(-)
diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/taobao/TaoBaoWeiQuanDrawBackServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/taobao/TaoBaoWeiQuanDrawBackServiceImpl.java
index 49872b9..6c2ad62 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/impl/taobao/TaoBaoWeiQuanDrawBackServiceImpl.java
+++ b/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;
@@ -105,6 +99,21 @@
userMoneyDebtService.addUserMoneyDebt(debt);
}
+ /**
+ * 璁$畻閫�娆鹃噾棰�
+ *
+ * @param settlement
+ * @param wqMoney
+ * @param hongBaoMoney
+ * @return
+ */
+ private BigDecimal computeDrawBackMoney(BigDecimal settlement, BigDecimal wqMoney, BigDecimal hongBaoMoney) {
+ BigDecimal money = (hongBaoMoney.multiply(wqMoney)).divide(settlement, 2, BigDecimal.ROUND_UP);
+ if (money.compareTo(hongBaoMoney) > 0)
+ money = hongBaoMoney;
+ return money;
+ }
+
@Transactional
@Override
public void doWeiQuanFanli(String orderId) throws TaoBaoWeiQuanException {
@@ -114,19 +123,6 @@
List<TaoBaoWeiQuanOrder> list = taoBaoWeiQuanOrderService.getWeiQuanSuccessOrders(orderId);
if (list == null || list.size() == 0)
return;
- // 鏌ヨ璁㈠崟搴�
- List<TaoBaoOrder> orderList = taoBaoOrderMapper.selectTaoBaoOrderByOrderId(orderId);
- // 璁$畻娣樺疂鑱旂洘杩旂粰骞冲彴鐨勮祫閲�
- BigDecimal sumFee = new BigDecimal("0");
- for (TaoBaoOrder order : orderList)
- if (order.getOrderState().equalsIgnoreCase("璁㈠崟缁撶畻")) {
- sumFee = sumFee.add(order.geteIncome());
- if (order.getSubsidy() != null)
- sumFee = sumFee.add(order.getSubsidy());
- }
- if (new BigDecimal(0).compareTo(sumFee) == 0)
- throw new TaoBaoWeiQuanException(TaoBaoWeiQuanException.CODE_NEDD_UPDATE_ORDER, "闇�瑕佹洿鏂拌鍗�");
-
// 鑾峰彇鍜岃璁㈠崟鍙锋湁鍏宠仈鐨勭敤鎴�
// 鑾峰彇涓荤孩鍖�(鍚屼竴涓鍗曞彿鐨勫崟鍙細瀵瑰簲鍚屼竴涓敤鎴�)
List<CommonOrderVO> typeList = new ArrayList<>();
@@ -146,7 +142,16 @@
commonOrderMapper.updateByPrimaryKeySelective(co);
HongBaoOrder hongBaoOrder = hongBaoOrderMapper.selectByCommonOrderId(vo.getId());
- mainHongBaoList.add(hongBaoOrder.getHongBaoV2());
+ if (hongBaoOrder.getCommonOrder() != null
+ && !StringUtil.isNullOrEmpty(hongBaoOrder.getCommonOrder().getTradeId()))
+ // 鏌ヨ鏄惁宸茬粡缁存潈
+ {
+ TaoBaoWeiQuanDrawBack drawBack = taoBaoWeiQuanDrawBackMapper.selectByOrderItemIdAndUid(
+ hongBaoOrder.getCommonOrder().getTradeId(),
+ hongBaoOrder.getHongBaoV2().getUserInfo().getId());
+ if (drawBack == null)// 娣诲姞杩樻湭鎵f鐨勫瓙璁㈠崟
+ mainHongBaoList.add(hongBaoOrder.getHongBaoV2());
+ }
}
if (mainHongBaoList == null || mainHongBaoList.size() == 0)
return;
@@ -168,7 +173,7 @@
if (mainHongBaoList != null)
for (HongBaoV2 hongBao : mainHongBaoList) {
- if (hongBao.getState() == HongBaoV2.STATE_SHIXIAO)
+ if (hongBao.getState() != HongBaoV2.STATE_YILINGQU)
continue;
// 绱涓荤孩鍖呯殑閲戦
if (fanMoneyMap.get(hongBao.getUserInfo().getId()) == null) {
@@ -183,28 +188,48 @@
while (its.hasNext()) {
Long uid = its.next();
BigDecimal userGetMoney = fanMoneyMap.get(uid);
- BigDecimal fanMoney = new BigDecimal("0");
+ BigDecimal wqMoney = new BigDecimal("0");
// 缁熻鐢ㄦ埛鍦ㄨ繖涓崟涓渶瑕佹墸闄ょ殑璧勯噾
TaoBaoWeiQuanDrawBack weiQuanDrawBack = null;
List<TaoBaoWeiQuanDrawBack> newWeiQuanDrawBackList = new ArrayList<>();
+ BigDecimal settleMent = new BigDecimal(0);
for (TaoBaoWeiQuanOrder weiQuanOrder : list) {
weiQuanDrawBack = taoBaoWeiQuanDrawBackMapper.selectByOrderItemIdAndUid(weiQuanOrder.getOrderItemId(),
uid);
if (weiQuanDrawBack != null)
continue;
+ // 璁$畻缁撶畻閲戦
+ TaoBaoOrder taoBaoOrder = taoBaoOrderMapper.selectTaoBaoOrderByTradeId(weiQuanOrder.getOrderItemId());
+ if (taoBaoOrder == null)
+ throw new TaoBaoWeiQuanException(101, "鏈壘鍒板瓙璁㈠崟鐩稿叧鏁版嵁");
+
+ if (taoBaoOrder.getSettlement() == null)
+ throw new TaoBaoWeiQuanException(102, "娣樺疂缁撶畻閲戦涓虹┖");
+
+ settleMent = settleMent.add(taoBaoOrder.getSettlement());
+
// 閫�娆剧殑璧勯噾
- fanMoney = fanMoney.add(weiQuanOrder.getFanMoney());
+ wqMoney = wqMoney.add(weiQuanOrder.getMoney());
weiQuanDrawBack = new TaoBaoWeiQuanDrawBack();
weiQuanDrawBack.setCreateTime(new Date());
- // 鏆傛椂璁句负0
- weiQuanDrawBack.setDrawBackMoney(new BigDecimal(0));
+
+ CommonOrder commonOrder = commonOrderMapper.selectBySourceTypeAndTradeId(Constant.SOURCE_TYPE_TAOBAO,
+ weiQuanOrder.getOrderItemId());
+ HongBaoOrder hongBaoOrder = hongBaoOrderMapper.selectByCommonOrderId(commonOrder.getId());
+ // 璁$畻閫�娆剧殑璧勯噾
+ BigDecimal drawBack = null;
+ if (hongBaoOrder != null && hongBaoOrder.getHongBaoV2() != null)
+ drawBack = computeDrawBackMoney(commonOrder.getSettlement(), weiQuanOrder.getMoney(),
+ hongBaoOrder.getHongBaoV2().getMoney());
+
+ weiQuanDrawBack.setDrawBackMoney(drawBack);
weiQuanDrawBack.setOrderId(weiQuanOrder.getOrderId());
weiQuanDrawBack.setOrderItemId(weiQuanOrder.getOrderItemId());
weiQuanDrawBack.setUser(new UserInfo(uid));
newWeiQuanDrawBackList.add(weiQuanDrawBack);
}
- if (fanMoney.compareTo(new BigDecimal("0")) <= 0)
+ if (wqMoney.compareTo(new BigDecimal("0")) <= 0)
continue;
// 鎻掑叆璁板綍
@@ -213,28 +238,25 @@
}
// 閫�娆鹃噾棰�
- BigDecimal drawBackMoney = MoneyBigDecimalUtil.div(userGetMoney.multiply(fanMoney), sumFee);
+ BigDecimal drawBackMoney = computeDrawBackMoney(settleMent, wqMoney, userGetMoney);
+
// 璁$畻璧勯噾鏄惁鍏呰冻
UserInfo user = userInfoMapper.selectByPKey(uid);
if (user != null && user.getMyHongBao().compareTo(drawBackMoney) < 0)// 璧勯噾涓嶈冻
{
// 娣诲姞鍊哄姟
- for (TaoBaoWeiQuanOrder weiQuanOrder : list) {
- TaoBaoOrder taoBaoOrder = taoBaoOrderMapper
- .selectTaoBaoOrderByTradeId(weiQuanOrder.getOrderItemId());
+ for (TaoBaoWeiQuanDrawBack drawBack : newWeiQuanDrawBackList) {
+ TaoBaoOrder taoBaoOrder = taoBaoOrderMapper.selectTaoBaoOrderByTradeId(drawBack.getOrderItemId());
if (taoBaoOrder != null) {
- BigDecimal totalFee = taoBaoOrder.geteIncome();
- if (taoBaoOrder.getSubsidy() != null)
- totalFee = totalFee.add(taoBaoOrder.getSubsidy());
- //
+ TaoBaoWeiQuanOrder weiQuanOrder = taoBaoWeiQuanOrderService
+ .selectByTradeId(drawBack.getOrderItemId());
CommonOrder co = commonOrderMapper.selectBySourceTypeAndTradeId(Constant.SOURCE_TYPE_TAOBAO,
- weiQuanOrder.getOrderItemId());
+ drawBack.getOrderItemId());
if (co != null) {
HongBaoOrder hongBaoOrder = hongBaoOrderMapper.selectByCommonOrderId(co.getId());
if (hongBaoOrder != null && hongBaoOrder.getHongBaoV2() != null) {
- BigDecimal drawback = MoneyBigDecimalUtil.div(
- hongBaoOrder.getHongBaoV2().getMoney().multiply(weiQuanOrder.getFanMoney()),
- totalFee);
+ BigDecimal drawback = computeDrawBackMoney(taoBaoOrder.getSettlement(),
+ weiQuanOrder.getMoney(), hongBaoOrder.getHongBaoV2().getMoney());
try {
addDebt(uid, hongBaoOrder.getHongBaoV2().getId(), drawback);
} catch (UserMoneyDebtException e) {
@@ -261,10 +283,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());
}
}
@@ -277,19 +297,8 @@
List<TaoBaoWeiQuanOrder> list = taoBaoWeiQuanOrderService.getWeiQuanSuccessOrders(orderId);
if (list == null || list.size() == 0)
return;
- // 鏌ヨ璁㈠崟搴�
- List<TaoBaoOrder> orderList = taoBaoOrderMapper.selectTaoBaoOrderByOrderId(orderId);
- // 璁$畻娣樺疂鑱旂洘杩旂粰骞冲彴鐨勮祫閲�
- BigDecimal sumFee = new BigDecimal("0");
- for (TaoBaoOrder order : orderList)
- if (order.getOrderState().equalsIgnoreCase("璁㈠崟缁撶畻")) {
- sumFee = sumFee.add(order.geteIncome());
- if (order.getSubsidy() != null)
- sumFee = sumFee.add(order.getSubsidy());
- }
// 鑾峰彇鍜岃璁㈠崟鍙锋湁鍏宠仈鐨勭敤鎴�
// 鑾峰彇涓荤孩鍖�(鍚屼竴涓鍗曞彿鐨勫崟鍙細瀵瑰簲鍚屼竴涓敤鎴�)
-
List<CommonOrderVO> typeList = new ArrayList<>();
CommonOrderVO cv = new CommonOrderVO();
cv.setSourceType(Constant.SOURCE_TYPE_TAOBAO);
@@ -305,9 +314,17 @@
co.setState(CommonOrder.STATE_WQ);
co.setUpdateTime(new Date());
commonOrderMapper.updateByPrimaryKeySelective(co);
-
HongBaoOrder hongBaoOrder = hongBaoOrderMapper.selectByCommonOrderId(vo.getId());
- mainHongBaoList.add(hongBaoOrder.getHongBaoV2());
+ if (hongBaoOrder.getCommonOrder() != null
+ && !StringUtil.isNullOrEmpty(hongBaoOrder.getCommonOrder().getTradeId()))
+ // 鏌ヨ鏄惁宸茬粡缁存潈
+ {
+ TaoBaoWeiQuanDrawBack drawBack = taoBaoWeiQuanDrawBackMapper.selectByOrderItemIdAndUid(
+ hongBaoOrder.getCommonOrder().getTradeId(),
+ hongBaoOrder.getHongBaoV2().getUserInfo().getId());
+ if (drawBack == null)// 娣诲姞杩樻湭鎵f鐨勫瓙璁㈠崟
+ mainHongBaoList.add(hongBaoOrder.getHongBaoV2());
+ }
}
if (mainHongBaoList == null || mainHongBaoList.size() == 0)
@@ -317,9 +334,9 @@
Map<Long, BigDecimal> fanMoneyMap = new HashMap<>();
if (mainHongBaoList != null)
- for (HongBaoV2 hongBao : mainHongBaoList) {
+ for (HongBaoV2 hongBao : mainHongBaoList) {// 缁熻璁㈠崟涓嬬殑鎵�鏈変富绾㈠寘
hongBao = hongBaoV2Mapper.selectByPrimaryKey(hongBao.getId());
- if (hongBao.getState() == HongBaoV2.STATE_SHIXIAO)
+ if (hongBao.getState() != HongBaoV2.STATE_YILINGQU)
continue;
// 鍙鍏ュ垎浜禋鐨勭孩鍖�
@@ -333,12 +350,13 @@
}
}
- // 璁$畻姣忎釜鐢ㄦ埛鐨勮繑鍒╂瘮渚�
Iterator<Long> its = fanMoneyMap.keySet().iterator();
+ // 鏌ヨ鍜岃繖涓鍗曟湁鍏崇殑鐢ㄦ埛锛堜富璁㈠崟锛�
while (its.hasNext()) {
Long uid = its.next();
BigDecimal userGetMoney = fanMoneyMap.get(uid);
- BigDecimal fanMoney = new BigDecimal("0");
+ BigDecimal wqMoney = new BigDecimal("0");
+ BigDecimal settleMent = new BigDecimal("0");
// 缁熻鐢ㄦ埛鍦ㄨ繖涓崟涓渶瑕佹墸闄ょ殑璧勯噾
TaoBaoWeiQuanDrawBack weiQuanDrawBack = null;
@@ -348,24 +366,46 @@
uid);
if (weiQuanDrawBack != null)
continue;
+ // 璁$畻缁撶畻閲戦
+ TaoBaoOrder taoBaoOrder = taoBaoOrderMapper.selectTaoBaoOrderByTradeId(weiQuanOrder.getOrderItemId());
+ if (taoBaoOrder == null)
+ throw new TaoBaoWeiQuanException(101, "鏈壘鍒板瓙璁㈠崟鐩稿叧鏁版嵁");
+
+ if (taoBaoOrder.getSettlement() == null)
+ throw new TaoBaoWeiQuanException(102, "娣樺疂缁撶畻閲戦涓虹┖");
+
+ settleMent = settleMent.add(taoBaoOrder.getSettlement());
+
// 閫�娆剧殑璧勯噾
- fanMoney = fanMoney.add(weiQuanOrder.getFanMoney());
+ wqMoney = wqMoney.add(weiQuanOrder.getMoney());
// 鎻掑叆璁板綍
weiQuanDrawBack = new TaoBaoWeiQuanDrawBack();
weiQuanDrawBack.setCreateTime(new Date());
- // TODO 鏆傛椂璁句负0
- weiQuanDrawBack.setDrawBackMoney(new BigDecimal(0));
+ // 璁$畻閫�娆捐祫閲�
+ CommonOrder commonOrder = commonOrderMapper.selectBySourceTypeAndTradeId(Constant.SOURCE_TYPE_TAOBAO,
+ weiQuanOrder.getOrderItemId());
+ HongBaoOrder hongBaoOrder = hongBaoOrderMapper.selectByCommonOrderId(commonOrder.getId());
+ // 璁$畻閫�娆剧殑璧勯噾
+ BigDecimal drawBack = null;
+ if (hongBaoOrder != null && hongBaoOrder.getHongBaoV2() != null)
+ drawBack = computeDrawBackMoney(commonOrder.getSettlement(), weiQuanOrder.getMoney(),
+ hongBaoOrder.getHongBaoV2().getMoney());
+
+ weiQuanDrawBack.setDrawBackMoney(drawBack);
+
weiQuanDrawBack.setOrderId(weiQuanOrder.getOrderId());
weiQuanDrawBack.setOrderItemId(weiQuanOrder.getOrderItemId());
weiQuanDrawBack.setUser(new UserInfo(uid));
newWeiQuanDrawBackList.add(weiQuanDrawBack);
}
- if (fanMoney.compareTo(new BigDecimal("0")) <= 0)
+ if (wqMoney.compareTo(new BigDecimal("0")) <= 0)
continue;
// 閫�娆鹃噾棰�
- BigDecimal drawBackMoney = MoneyBigDecimalUtil.div(userGetMoney.multiply(fanMoney), sumFee);
+ BigDecimal drawBackMoney = computeDrawBackMoney(settleMent, wqMoney, userGetMoney);
+ if (drawBackMoney.compareTo(userGetMoney) > 0)
+ drawBackMoney = userGetMoney;
for (TaoBaoWeiQuanDrawBack drawBack : newWeiQuanDrawBackList)
taoBaoWeiQuanDrawBackMapper.insertSelective(drawBack);
@@ -374,46 +414,22 @@
if (user != null && user.getMyHongBao().compareTo(drawBackMoney) < 0)// 璧勯噾涓嶈冻
{
// 娣诲姞鍊哄姟
- for (TaoBaoWeiQuanOrder weiQuanOrder : list) {
- TaoBaoOrder taoBaoOrder = taoBaoOrderMapper
- .selectTaoBaoOrderByTradeId(weiQuanOrder.getOrderItemId());
+ for (TaoBaoWeiQuanDrawBack drawBack : newWeiQuanDrawBackList) {
+ TaoBaoOrder taoBaoOrder = taoBaoOrderMapper.selectTaoBaoOrderByTradeId(drawBack.getOrderItemId());
if (taoBaoOrder != null) {
- BigDecimal totalFee = taoBaoOrder.geteIncome();
- if (taoBaoOrder.getSubsidy() != null)
- totalFee = totalFee.add(taoBaoOrder.getSubsidy());
- //
+ TaoBaoWeiQuanOrder weiQuanOrder = taoBaoWeiQuanOrderService
+ .selectByTradeId(drawBack.getOrderItemId());
+ BigDecimal settleMentMoney = taoBaoOrder.getSettlement();
CommonOrder co = commonOrderMapper.selectBySourceTypeAndTradeId(Constant.SOURCE_TYPE_TAOBAO,
weiQuanOrder.getOrderItemId());
if (co != null) {
HongBaoOrder hongBaoOrder = hongBaoOrderMapper.selectByCommonOrderId(co.getId());
- BigDecimal drawback = MoneyBigDecimalUtil.div(
- hongBaoOrder.getHongBaoV2().getMoney().multiply(weiQuanOrder.getFanMoney()),
- totalFee);
+ BigDecimal drawback = computeDrawBackMoney(settleMentMoney, weiQuanOrder.getMoney(),
+ hongBaoOrder.getHongBaoV2().getMoney());
try {
addDebt(uid, hongBaoOrder.getHongBaoV2().getId(), drawback);
} catch (UserMoneyDebtException e) {
throw new TaoBaoWeiQuanException(101, "璧勯噾鍊熻捶寮傚父");
- }
-
- if (hongBaoOrder != null && hongBaoOrder.getHongBaoV2() != null) {
- List<HongBaoV2> hongBaoList = hongBaoV2Mapper
- .listChildrenById(hongBaoOrder.getHongBaoV2().getId());
- for (int i = 0; i < hongBaoList.size(); i++) {
- if (hongBaoList.get(i).getUserInfo().getId().longValue() != uid) {
- hongBaoList.remove(i);
- i--;
- }
- }
-
- for (HongBaoV2 hb : hongBaoList) {
- drawback = MoneyBigDecimalUtil
- .div(hb.getMoney().multiply(weiQuanOrder.getFanMoney()), totalFee);
- try {
- addDebt(hb.getUserInfo().getId(), hb.getId(), drawback);
- } catch (UserMoneyDebtException e) {
- throw new TaoBaoWeiQuanException(101, "璧勯噾鍊熻捶寮傚父");
- }
- }
}
}
}
@@ -433,11 +449,9 @@
}
}
userMoneyService.subUserMoney(uid, drawBackMoney, userMoneyDetail);
+ userMoneyMsgNotificationService.shareOrderWeiQuan(uid, orderId, Constant.SOURCE_TYPE_TAOBAO, drawBackMoney,
- userMoneyMsgNotificationService.shareOrderWeiQuan(uid, orderId, drawBackMoney,
userInfoMapper.selectByPrimaryKey(uid).getMyHongBao());
-
- userNotificationService.weiQuanTiCheng(uid, orderId, drawBackMoney);
}
}
@@ -453,14 +467,12 @@
// 鏌ヨ璁㈠崟搴�
for (TaoBaoWeiQuanOrder weiQuanOrder : list) {
TaoBaoOrder taoBaoOrder = taoBaoOrderMapper.selectTaoBaoOrderByTradeId(weiQuanOrder.getOrderItemId());
- BigDecimal fanMoney = weiQuanOrder.getFanMoney();
+ BigDecimal wqMoney = weiQuanOrder.getMoney();
if (taoBaoOrder == null)
throw new TaoBaoWeiQuanException(1, "鏉ユ簮浜ゆ槗ID鏈夎");
- BigDecimal sumFee = new BigDecimal("0");
+ BigDecimal settleMent = new BigDecimal("0");
if (taoBaoOrder.getOrderState().equalsIgnoreCase("璁㈠崟缁撶畻")) {
- sumFee = sumFee.add(taoBaoOrder.geteIncome());
- if (taoBaoOrder.getSubsidy() != null)
- sumFee = sumFee.add(taoBaoOrder.getSubsidy());
+ settleMent = settleMent.add(taoBaoOrder.getSettlement());
}
// 鏌ヨ涓嬬骇瀛愮敤鎴�
@@ -485,7 +497,7 @@
.selectByOrderItemIdAndUid(weiQuanOrder.getOrderItemId(), child.getUserInfo().getId());
if (weiQuanDrawBack != null)
continue;
- BigDecimal drawBackMoney = MoneyBigDecimalUtil.div(child.getMoney().multiply(fanMoney), sumFee);
+ BigDecimal drawBackMoney = computeDrawBackMoney(settleMent, wqMoney, child.getMoney());
weiQuanDrawBack = new TaoBaoWeiQuanDrawBack();
weiQuanDrawBack.setCreateTime(new Date());
weiQuanDrawBack.setDrawBackMoney(drawBackMoney);
@@ -494,36 +506,41 @@
weiQuanDrawBack.setUser(child.getUserInfo());
taoBaoWeiQuanDrawBackMapper.insertSelective(weiQuanDrawBack);// 鍔犲叆杩旇繕璁板綍
- // 鍒ゆ柇璧勯噾鏄惁瓒冲鎵f
- 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) {
+
+ // 鍒ゆ柇璧勯噾鏄惁瓒冲鎵f
+ 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);
+
+ // 鏂扮増閫氱煡
+ userMoneyMsgNotificationService.inviteOrderWeiQuan(uid, orderId, Constant.SOURCE_TYPE_TAOBAO,
+ drawBackMoney, userInfoMapper.selectByPrimaryKey(uid).getMyHongBao());
}
-
- userMoneyService.subUserMoney(uid, drawBackMoney, userMoneyDetail);
-
- // 鏂扮増閫氱煡
- userMoneyMsgNotificationService.inviteOrderWeiQuan(uid, orderId, drawBackMoney,
- userInfoMapper.selectByPrimaryKey(uid).getMyHongBao());
}
}
}
--
Gitblit v1.8.0