From a525f3faae1d749ccceefeb10612ab59cf4d9c1d Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期五, 22 三月 2019 13:17:42 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
fanli/src/main/java/com/yeshi/fanli/service/impl/user/ExtractServiceImpl.java | 54 ++++++++++++++++++++++++++++++++++++++++++++++--------
1 files changed, 46 insertions(+), 8 deletions(-)
diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/user/ExtractServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/user/ExtractServiceImpl.java
index 2468696..6478411 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/impl/user/ExtractServiceImpl.java
+++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/user/ExtractServiceImpl.java
@@ -1,6 +1,7 @@
package com.yeshi.fanli.service.impl.user;
import java.math.BigDecimal;
+import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
@@ -26,16 +27,17 @@
import com.yeshi.fanli.dao.mybatis.PayInfoMapper;
import com.yeshi.fanli.dao.mybatis.UserInfoMapper;
import com.yeshi.fanli.dao.mybatis.money.UserMoneyDetailMapper;
-import com.yeshi.fanli.dao.user.ExtractRecordDao;
import com.yeshi.fanli.dto.HongBao;
import com.yeshi.fanli.entity.bus.user.AlipayTransferResultInfo;
import com.yeshi.fanli.entity.bus.user.Extract;
import com.yeshi.fanli.entity.bus.user.ExtractAuditRecord;
import com.yeshi.fanli.entity.bus.user.ExtractRecord;
+import com.yeshi.fanli.entity.bus.user.HongBaoV2;
import com.yeshi.fanli.entity.bus.user.PayInfo;
import com.yeshi.fanli.entity.bus.user.UserInfo;
import com.yeshi.fanli.entity.common.AdminUser;
import com.yeshi.fanli.entity.money.UserMoneyDetail;
+import com.yeshi.fanli.entity.money.UserMoneyDetail.UserMoneyDetailTypeEnum;
import com.yeshi.fanli.exception.ExtractException;
import com.yeshi.fanli.exception.NotExistObjectException;
import com.yeshi.fanli.exception.ObjectStateException;
@@ -43,11 +45,13 @@
import com.yeshi.fanli.log.LogHelper;
import com.yeshi.fanli.service.inter.config.ConfigService;
import com.yeshi.fanli.service.inter.config.SystemConfigService;
+import com.yeshi.fanli.service.inter.hongbao.HongBaoV2Service;
import com.yeshi.fanli.service.inter.msg.UserMoneyMsgNotificationService;
import com.yeshi.fanli.service.inter.push.PushService;
import com.yeshi.fanli.service.inter.user.ExtractRecordService;
import com.yeshi.fanli.service.inter.user.ExtractService;
import com.yeshi.fanli.service.inter.user.UserInfoService;
+import com.yeshi.fanli.service.inter.user.UserMoneyDetailService;
import com.yeshi.fanli.service.inter.user.UserNotificationService;
import com.yeshi.fanli.util.CMQManager;
import com.yeshi.fanli.util.Constant;
@@ -83,9 +87,6 @@
private UserInfoMapper userInfoMapper;
@Resource
- private ExtractRecordDao extractRecordDao;
-
- @Resource
private PayInfoMapper payInfoMapper;
@Resource
@@ -96,6 +97,9 @@
@Resource
private HongBaoV2Mapper hongBaoV2Mapper;
+
+ @Resource
+ private HongBaoV2Service hongBaoV2Service;
@Resource
private PushService pushService;
@@ -111,6 +115,9 @@
@Resource
private AlipayAccountValidNormalHistoryMapper alipayAccountValidNormalHistoryMapper;
+
+ @Resource
+ private UserMoneyDetailService userMoneyDetailService;
@Transactional
public Integer addExtract(Extract extract) {
@@ -481,13 +488,44 @@
return extractMapper.selectByPrimaryKey(id);
}
+ @Transactional
@Override
- public void checkExtract(String uid) throws ExtractException {
- Long count = hongBaoV2Mapper.countByUidAndState(Long.parseLong(uid), HongBao.STATE_YILINGQU);
+ public void checkExtract(Long uid) throws ExtractException {
+ Long count = hongBaoV2Mapper.countByUidAndState(uid, HongBao.STATE_YILINGQU);
if (count == null || count == 0)
throw new ExtractException(1, "娌℃湁宸插埌璐︾殑绾㈠寘");
- List<Integer> list = extractMapper.checkExtract(uid);
- if (list != null && list.size() > 0 && list.get(0) == 0)
+ // 鑾峰彇鎵�鏈夋敹鍏ユ墍寰�
+ BigDecimal hongBaoMoney = hongBaoV2Service.computeMoneyByUidAndState(uid, HongBaoV2.STATE_YILINGQU);
+
+ Date now = new Date();
+ // 鑾峰彇鎻愮幇锛岃幏鍙栨彁鐜伴獙璇�
+ List<UserMoneyDetailTypeEnum> typeList = new ArrayList<>();
+ typeList.add(UserMoneyDetailTypeEnum.extract);
+ typeList.add(UserMoneyDetailTypeEnum.extractReject);
+ typeList.add(UserMoneyDetailTypeEnum.extractVerify);
+ BigDecimal extractMoney = userMoneyDetailService.statisticUserTypeMoneyWithDate(uid, typeList, new Date(0),
+ now);
+ extractMoney = extractMoney.abs();
+ // 鑾峰彇缁存潈
+ typeList = new ArrayList<>();
+ typeList.add(UserMoneyDetailTypeEnum.weiQuan);
+ typeList.add(UserMoneyDetailTypeEnum.fanliWeiQuan);
+ typeList.add(UserMoneyDetailTypeEnum.inviteWeiQuan);
+ typeList.add(UserMoneyDetailTypeEnum.shareWeiQuan);
+ typeList.add(UserMoneyDetailTypeEnum.hongbaoDeduct);
+ BigDecimal weiqaunMoney = userMoneyDetailService.statisticUserTypeMoneyWithDate(uid, typeList, new Date(0),
+ now);
+ weiqaunMoney = weiqaunMoney.abs();
+
+ BigDecimal balance = userInfoService.selectByPKey(uid).getMyHongBao();
+
+ BigDecimal compensateMoney = extractMapper.computeCompensateByUid(uid);
+ if (compensateMoney == null)
+ compensateMoney = new BigDecimal(0);
+
+ BigDecimal after = hongBaoMoney.subtract(extractMoney.add(weiqaunMoney).add(balance).add(compensateMoney));
+
+ if (after.compareTo(new BigDecimal("0")) != 0)
throw new ExtractException(2, "缁撶畻璧勯噾寮傚父");
}
--
Gitblit v1.8.0