From d28bed1a1275131a5ca37f7da37961e2b518ac07 Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期一, 26 八月 2019 13:44:00 +0800 Subject: [PATCH] 淘礼金创建异常处理 --- fanli/src/main/java/com/yeshi/fanli/service/impl/money/UserMoneyDebtServiceImpl.java | 64 +++++++++++++++++++++++++++++--- 1 files changed, 58 insertions(+), 6 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..0d8b40b 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,14 +2,17 @@ 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; @@ -18,6 +21,7 @@ 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.log.LogHelper; import com.yeshi.fanli.service.inter.hongbao.HongBaoV2Service; import com.yeshi.fanli.service.inter.money.UserMoneyDebtService; import com.yeshi.fanli.service.inter.msg.UserMoneyMsgNotificationService; @@ -25,6 +29,7 @@ import com.yeshi.fanli.service.inter.taobao.TaoBaoWeiQuanDrawBackService; 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 @@ -53,6 +58,9 @@ @Resource private UserInfoService userInfoService; + + @Resource + private AlipayAccountValidNormalHistoryMapper alipayAccountValidNormalHistoryMapper; @Override public void addUserMoneyDebt(UserMoneyDebt debt) throws UserMoneyDebtException { @@ -143,8 +151,8 @@ } // 鏂扮増閫氱煡 - userMoneyMsgNotificationService.fanliOrderWeiQuan(uid, weiQuanDrawBack.getOrderId(), money, - userInfoService.getMyHB(uid)); + userMoneyMsgNotificationService.fanliOrderWeiQuan(uid, weiQuanDrawBack.getOrderId(), + Constant.SOURCE_TYPE_TAOBAO, money, userInfoService.getBalance(uid)); break; case HongBaoV2.TYPE_SHARE_GOODS: @@ -156,7 +164,7 @@ userMoneyService.subUserMoney(uid, money, userMoneyDetail); userMoneyMsgNotificationService.shareOrderWeiQuan(debt.getUid(), weiQuanDrawBack.getOrderId(), - money, userInfoService.getMyHB(uid)); + Constant.SOURCE_TYPE_TAOBAO, money, userInfoService.getBalance(uid)); } catch (UserMoneyDetailException e) { throw new UserMoneyDebtException(12, "鎻掑叆璧勯噾璇︽儏鍑洪敊"); @@ -177,13 +185,57 @@ } // 鏂扮増閫氱煡 - userMoneyMsgNotificationService.inviteOrderWeiQuan(uid, weiQuanDrawBack.getOrderId(), money, - userInfoService.getMyHB(uid)); + userMoneyMsgNotificationService.inviteOrderWeiQuan(uid, weiQuanDrawBack.getOrderId(), + Constant.SOURCE_TYPE_TAOBAO, money, userInfoService.getBalance(uid)); break; - + } + } else if (debt.getType() == UserMoneyDebtTypeEnum.extractVerify) {// 鎻愮幇楠岃瘉 + // 鏂扮増璧勯噾璁板綍 + AlipayAccountValidNormalHistory aliPayAccountHistory = alipayAccountValidNormalHistoryMapper + .selectByPrimaryKey(debt.getSourceId()); + 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); } } + @Transactional + @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