From 0e8e5917dfc650ed6731f9b5d9b068484a365f83 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期四, 21 三月 2019 15:32:22 +0800
Subject: [PATCH] 提现验证的BUG修改

---
 fanli/src/main/java/com/yeshi/fanli/service/impl/user/ExtractServiceImpl.java |   50 ++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 46 insertions(+), 4 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 7d75d63..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;
@@ -31,10 +32,12 @@
 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;
@@ -42,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;
@@ -94,6 +99,9 @@
 	private HongBaoV2Mapper hongBaoV2Mapper;
 
 	@Resource
+	private HongBaoV2Service hongBaoV2Service;
+
+	@Resource
 	private PushService pushService;
 
 	@Resource
@@ -107,6 +115,9 @@
 
 	@Resource
 	private AlipayAccountValidNormalHistoryMapper alipayAccountValidNormalHistoryMapper;
+
+	@Resource
+	private UserMoneyDetailService userMoneyDetailService;
 
 	@Transactional
 	public Integer addExtract(Extract extract) {
@@ -477,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