From 0ec22dcf4fd9c4496e6f681e7fab89f56c6e4e8a Mon Sep 17 00:00:00 2001 From: yujian <yujian@163.com> Date: 星期四, 02 四月 2020 14:45:20 +0800 Subject: [PATCH] vip 消息 --- fanli/src/main/java/com/yeshi/fanli/service/impl/money/UserMoneyDebtServiceImpl.java | 78 ++++++++++++++++++++++++++++++++------ 1 files changed, 65 insertions(+), 13 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..86130d4 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,13 +21,15 @@ 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.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 @@ -54,6 +59,9 @@ @Resource private UserInfoService userInfoService; + @Resource + private AlipayAccountValidNormalHistoryMapper alipayAccountValidNormalHistoryMapper; + @Override public void addUserMoneyDebt(UserMoneyDebt debt) throws UserMoneyDebtException { if (debt == null) @@ -74,7 +82,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 +94,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 +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(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