|
|
@@ -37,6 +37,7 @@ import java.math.RoundingMode;
|
|
|
import java.time.Duration;
|
|
|
import java.time.LocalDate;
|
|
|
import java.time.LocalDateTime;
|
|
|
+import java.time.LocalTime;
|
|
|
import java.time.temporal.ChronoUnit;
|
|
|
import java.util.*;
|
|
|
import java.util.regex.Pattern;
|
|
|
@@ -98,7 +99,8 @@ public class UserBalanceService {
|
|
|
.findFirst().orElse(null);
|
|
|
if (userBalance == null) {
|
|
|
userBalance = userBalanceRepo.findById(asset.getUserId())
|
|
|
- .orElse(new UserBalance(asset.getUserId(), BigDecimal.ZERO, BigDecimal.ZERO));
|
|
|
+ .orElse(new UserBalance(asset.getUserId(), BigDecimal.ZERO, BigDecimal.ZERO,
|
|
|
+ false, null, null));
|
|
|
balanceList.add(userBalance);
|
|
|
}
|
|
|
|
|
|
@@ -262,7 +264,8 @@ public class UserBalanceService {
|
|
|
}
|
|
|
failWithdraw.parallelStream().forEach(withdraw -> {
|
|
|
UserBalance userBalance = userBalanceRepo.findById(withdraw.getUserId())
|
|
|
- .orElse(new UserBalance(withdraw.getUserId(), BigDecimal.ZERO, BigDecimal.ZERO));
|
|
|
+ .orElse(new UserBalance(withdraw.getUserId(), BigDecimal.ZERO, BigDecimal.ZERO,
|
|
|
+ false, null, null));
|
|
|
userBalance.setLastBalance(userBalance.getBalance());
|
|
|
userBalance.setBalance(userBalance.getBalance().add(withdraw.getAmount()));
|
|
|
userBalanceRepo.saveAndFlush(userBalance);
|
|
|
@@ -285,7 +288,7 @@ public class UserBalanceService {
|
|
|
throw new BusinessException("今日已经提现过");
|
|
|
});
|
|
|
|
|
|
- List<UserBalance> list = userBalanceRepo.findByBalanceGreaterThanOrderByUserId(BigDecimal.ZERO);
|
|
|
+ List<UserBalance> list = userBalanceRepo.findByLockedFalseAndBalanceGreaterThanOrderByUserId(BigDecimal.ZERO);
|
|
|
|
|
|
AutoWithdrawRecord record = AutoWithdrawRecord.builder()
|
|
|
.date(LocalDate.now())
|
|
|
@@ -358,6 +361,16 @@ public class UserBalanceService {
|
|
|
record.setProgress(record.getProgress() + 1);
|
|
|
record.setCurrentUserId(userBalance.getUserId());
|
|
|
autoWithdrawRecordRepo.saveAndFlush(record);
|
|
|
+
|
|
|
+
|
|
|
+ if (!success) {
|
|
|
+ msg = msg == null ? "" : msg;
|
|
|
+ if (msg.contains("风控") || Pattern.matches(".*\\[.*\\]", msg)) {
|
|
|
+ userBalance.setLocked(true);
|
|
|
+ userBalance.setLockReason(msg);
|
|
|
+ userBalance.setLockTime(LocalDateTime.now());
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|