From 7fd124bdf3f5bd8aa2a688485b672c5e6216ffec Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期四, 23 五月 2019 16:45:12 +0800
Subject: [PATCH] 首页最低版本通知版本控制
---
fanli/src/main/java/com/yeshi/fanli/service/impl/user/ExtractServiceImpl.java | 154 +++++++++++++++++++++++++++------------------------
1 files changed, 82 insertions(+), 72 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 17ca4f6..7afddd7 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,7 +1,7 @@
package com.yeshi.fanli.service.impl.user;
-import java.io.Serializable;
import java.math.BigDecimal;
+import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
@@ -24,26 +24,21 @@
import com.yeshi.fanli.dao.mybatis.ExtractMapper;
import com.yeshi.fanli.dao.mybatis.ExtractRecordMapper;
import com.yeshi.fanli.dao.mybatis.HongBaoV2Mapper;
-import com.yeshi.fanli.dao.mybatis.MoneyRecordMapper;
import com.yeshi.fanli.dao.mybatis.PayInfoMapper;
-import com.yeshi.fanli.dao.mybatis.SystemMapper;
import com.yeshi.fanli.dao.mybatis.UserInfoMapper;
-import com.yeshi.fanli.dao.mybatis.hongbao.HongBaoMapper;
import com.yeshi.fanli.dao.mybatis.money.UserMoneyDetailMapper;
-import com.yeshi.fanli.dao.user.AccountMessageDao;
-import com.yeshi.fanli.dao.user.ExtractDao;
-import com.yeshi.fanli.dao.user.ExtractRecordDao;
-import com.yeshi.fanli.dao.user.MoneyRecordDao;
+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.HongBao;
-import com.yeshi.fanli.entity.bus.user.MoneyRecord;
+import com.yeshi.fanli.entity.bus.user.HongBaoV2;
import com.yeshi.fanli.entity.bus.user.PayInfo;
+import com.yeshi.fanli.entity.bus.user.UserAccountBindingHistory;
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;
@@ -51,13 +46,15 @@
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.money.UserMoneyDebtService;
import com.yeshi.fanli.service.inter.msg.UserMoneyMsgNotificationService;
import com.yeshi.fanli.service.inter.push.PushService;
-import com.yeshi.fanli.service.inter.user.AccountMessageService;
import com.yeshi.fanli.service.inter.user.ExtractRecordService;
import com.yeshi.fanli.service.inter.user.ExtractService;
-import com.yeshi.fanli.service.inter.user.MoneyRecordService;
+import com.yeshi.fanli.service.inter.user.UserAccountBindingHistoryService;
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;
@@ -72,13 +69,7 @@
public class ExtractServiceImpl implements ExtractService {
@Resource
- private ExtractDao extractDao;
-
- @Resource
private UserInfoService userInfoService;
-
- @Resource
- private MoneyRecordService moneyRecordService;
@Resource
private ConfigService configService;
@@ -88,10 +79,6 @@
@Resource
private SystemConfigService systemConfigService;
-
-
- @Resource
- private AccountMessageService accountMessageService;
@Resource
private ExtractMapper extractMapper;
@@ -103,19 +90,7 @@
private UserInfoMapper userInfoMapper;
@Resource
- private ExtractRecordDao extractRecordDao;
-
- @Resource
- private MoneyRecordDao moneyRecordDao;
-
- @Resource
- private AccountMessageDao accountMessageDao;
-
- @Resource
private PayInfoMapper payInfoMapper;
-
- @Resource
- private MoneyRecordMapper moneyRecordMapper;
@Resource
private AccountMessageMapper accountMessageMapper;
@@ -124,13 +99,10 @@
private ExtractRecordMapper extractRecordMapper;
@Resource
- private SystemMapper systemMapper;
-
- @Resource
- private HongBaoMapper hongBaoMapper;
-
- @Resource
private HongBaoV2Mapper hongBaoV2Mapper;
+
+ @Resource
+ private HongBaoV2Service hongBaoV2Service;
@Resource
private PushService pushService;
@@ -147,24 +119,19 @@
@Resource
private AlipayAccountValidNormalHistoryMapper alipayAccountValidNormalHistoryMapper;
- public List<Extract> getExtractInfoByUid(long uid) {
- return extractDao.list("from Extract e where e.userInfo.id=? and e.state != 2", new Serializable[] { uid });
- }
+ @Resource
+ private UserMoneyDetailService userMoneyDetailService;
+
+ @Resource
+ private UserAccountBindingHistoryService userAccountBindingHistoryService;
+
+ @Resource
+ private UserMoneyDebtService userMoneyDebtService;
@Transactional
public Integer addExtract(Extract extract) {
Integer integer = extract(extract);
return integer;
- }
-
- public List<Extract> getExtractList(int index) {
- int start = index * Constant.PAGE_SIZE;
- return extractDao.list("from Extract e order by e.id desc", start, Constant.PAGE_SIZE, new Serializable[] {});
- }
-
- public int getCount() {
- Long lcount = extractDao.getCount("select count(e.id) from Extract e");
- return lcount.intValue();
}
@Transactional
@@ -188,7 +155,7 @@
}
@Transactional
- public synchronized void rejectExtract(long id, String reason, long extractTime, AdminUser admin)
+ public synchronized void rejectExtract(long id, String reason, AdminUser admin)
throws ObjectStateException, NotExistObjectException {
Extract find = extractMapper.selectByPrimaryKey(id);
@@ -203,9 +170,6 @@
UserInfo user = find.getUserInfo();
userInfoMapper.addHongBaoByUid(user.getId(), find.getMoney());
-
- // 鍒犻櫎鎻愮幇璁板綍
- moneyRecordMapper.deleteMoneyRecordByExtractId(id);
// 鏇存柊鍘熸潵鐨勭姸鎬�
Extract updateExtract = new Extract();
@@ -273,6 +237,13 @@
*/
@Transactional
private Integer extract(Extract extract) {
+ UserAccountBindingHistory history = userAccountBindingHistoryService
+ .getLatestHistory(extract.getUserInfo().getId(), UserAccountBindingHistory.TYPE_PHONE);
+ // 鎵嬫満鍙锋洿鎹㈢粦瀹氱殑7澶╁唴涓嶈兘鎻愮幇
+ if (history != null && !history.getFirst()
+ && (System.currentTimeMillis() - history.getCreateTime().getTime()) < 1000 * 60 * 60 * 24 * 7L)
+ return 111;
+
final String autoExtract = configService.get("extract_way"); // 鏄惁鑷姩杞处
final String maxCount = configService.get("extract_count_day");
final String maxMoney = configService.get("extract_money_day");
@@ -283,10 +254,17 @@
return 3;
}
+ // 鏈夊�熻捶鍏崇郴
+ boolean isHaveToReplay = userMoneyDebtService.isHaveDebtToRepay(extract.getUserInfo().getId());
+ if (isHaveToReplay) {
+ return 110;
+ }
+
Integer type = setExtractRecord(extract, maxCount, maxMoney);
if (type != 0) {
return type;
}
+
extractMapper.insertSelective(extract);
ExtractAuditRecord auditRecord = new ExtractAuditRecord();
@@ -296,11 +274,6 @@
// 鍑忓幓璐︽埛璧勯噾
userInfoMapper.subHongBaoByUid(extract.getUserInfo().getId(), extract.getMoney());
-
- MoneyRecord moneyRecord = new MoneyRecord(user, null, extract.getMoney(), "鎻愮幇", "", extract.getExtractTime(),
- 2);
- moneyRecord.setExtract(extract);
- moneyRecordMapper.insertSelective(moneyRecord);
// 鏂扮増璧勯噾璇︽儏
try {
@@ -321,7 +294,8 @@
if ("鏄�".equals(autoExtract)) {
LogHelper.userInfo("uid=" + user.getId() + ",鎻愪氦杞处鐢宠!");
} else {// 鏆傛椂涓嶈嚜鍔ㄦ彁鐜�
- transfer(extract, null);
+ // transfer(extract, null);
+ ;
}
return null;
}
@@ -404,15 +378,15 @@
Constant.alipayConfig.getAppId(), privateKey, "json", "gbk", null, "RSA2");
AlipayFundTransToaccountTransferRequest request = new AlipayFundTransToaccountTransferRequest();
String uuid = UUID.randomUUID().toString().replace("-", "");
- String appName = systemConfigService.get("appName", extract.getSystem());
+ String appName = Constant.systemCommonConfig.getProjectChineseName();
JSONObject json = new JSONObject();
json.put("out_biz_no", uuid);
json.put("payee_type", "ALIPAY_LOGONID");
json.put("payee_account", extract.getAccount());
json.put("amount", extract.getMoney());
- json.put("payer_show_name", appName + "鎻愮幇");
+ json.put("payer_show_name", appName + "App" + "鎻愮幇");
json.put("payee_real_name", extract.getName());
- json.put("remark", "鏉ヨ嚜" + appName + "鐨勬彁鐜�");
+ json.put("remark", "鏉ヨ嚜" + appName + "App" + "鐨勬彁鐜�");
request.setBizContent(json.toString());
AlipayFundTransToaccountTransferResponse response = null;
try {
@@ -535,16 +509,52 @@
*/
@Override
public Extract getExtractById(long id) {
- return extractDao.find(Extract.class, id);
+ return extractMapper.selectByPrimaryKey(id);
}
+ @Transactional
@Override
- public void checkExtract(String uid) throws ExtractException {
- Long count = hongBaoV2Mapper.countByUidAndState(Long.parseLong(uid), HongBao.STATE_YILINGQU);
- if (count == null || count == 0)
+ public void checkExtract(Long uid) throws ExtractException {
+ BigDecimal compensateMoney = extractMapper.computeCompensateByUid(uid);
+ if (compensateMoney == null)
+ compensateMoney = new BigDecimal(0);
+ // 涓嶅垽瀹氬埌璐︾孩鍖呴棶棰�
+ Long count = hongBaoV2Mapper.countByUidAndState(uid, HongBao.STATE_YILINGQU);
+ if ((count == null || count == 0) && compensateMoney.compareTo(new BigDecimal(0)) == 0) {
throw new ExtractException(1, "娌℃湁宸插埌璐︾殑绾㈠寘");
- List<Integer> list = extractMapper.checkExtract(uid);
- if (list != null && list.size() > 0 && list.get(0) == 0)
+ }
+ // 鏌ヨ鏄惁鏈夋瑺璐�
+ boolean isDebt = userMoneyDebtService.isHaveDebtToRepay(uid);
+ if (isDebt)
+ throw new ExtractException(3, "鏈夋瑺璐︽湭杩�");
+ // 鑾峰彇鎵�鏈夋敹鍏ユ墍寰�
+ 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 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