From 4bb0b890438349a7cfd7ab2dc30999346a5acf58 Mon Sep 17 00:00:00 2001
From: zj <1772600164@qq.com>
Date: Wed, 30 Apr 2025 01:18:10 +0800
Subject: [PATCH] 1
---
src/main/java/com/nq/service/impl/UserAssetsServices.java | 116 ++++++++++++++++-----------------------------------------
1 files changed, 33 insertions(+), 83 deletions(-)
diff --git a/src/main/java/com/nq/service/impl/UserAssetsServices.java b/src/main/java/com/nq/service/impl/UserAssetsServices.java
index 88ec26c..20cc581 100644
--- a/src/main/java/com/nq/service/impl/UserAssetsServices.java
+++ b/src/main/java/com/nq/service/impl/UserAssetsServices.java
@@ -1,9 +1,8 @@
package com.nq.service.impl;
-import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.nq.common.ServerResponse;
import com.nq.dao.*;
import com.nq.enums.EStockType;
@@ -20,14 +19,13 @@
import javax.servlet.http.HttpServletRequest;
import java.math.BigDecimal;
import java.util.*;
-import java.util.function.Function;
/**
* 用户资产
*/
@Slf4j
@Service
-public class UserAssetsServices implements IUserAssetsServices {
+public class UserAssetsServices extends ServiceImpl<UserAssetsMapper, UserAssets> implements IUserAssetsServices {
@Resource
UserAssetsMapper userAssetsMapper;
@@ -50,6 +48,9 @@
@Autowired
UserPositionMapper userPositionMapper;
+ @Autowired
+ StockConfigMapper stockConfigMapper;
+
@Override
public UserAssets assetsByTypeAndUserId(String accetType, Integer userId) {
if(accetType.equals("SZHB")){
@@ -70,8 +71,11 @@
}
@Override
- public ServerResponse updateUserAssets(Integer id, String amt,String type) {
- UserAssets userAssets = userAssetsMapper.selectById(id);
+ public ServerResponse updateUserAssets(Integer id, String amt, String type, String accectType) {
+ UserAssets userAssets = userAssetsMapper.selectOne(new LambdaQueryWrapper<>(UserAssets.class)
+ .eq(UserAssets::getId,id)
+ .eq(UserAssets::getAccectType,accectType)
+ );
UserPosition userPosition = userPositionMapper.selectOne(new LambdaQueryWrapper<UserPosition>().gt(UserPosition::getAmountToBeCovered, BigDecimal.ZERO).eq(UserPosition::getUserId,userAssets.getUserId()));
// 0 入款 1是扣钱 2 是充值 3 是提币
BigDecimal bigAmt = new BigDecimal(amt);
@@ -121,33 +125,11 @@
}
}else{
if(type.equals("2")){
- return userRechargeService.createOrder(userAssets.getUserId(),1,bigAmt.intValue(),"1");
+ return userRechargeService.createOrder(accectType,userAssets.getUserId(),1,bigAmt.intValue(),"1");
}else{
return ServerResponse.createBySuccess();
}
}
- }
-
- public void saveUserRecharge(Integer userId ,BigDecimal amt){
- User user = this.userMapper.selectById(userId);
- if (user == null) {
- return;
- }
- UserRecharge userRecharge = new UserRecharge();
- userRecharge.setUserId(user.getId());
- userRecharge.setNickName(user.getRealName());
- userRecharge.setAgentId(user.getAgentId());
-
- String ordersn = KeyUtils.getRechargeOrderSn();
- userRecharge.setOrderSn(ordersn);
-
- userRecharge.setPayChannel("1");
- userRecharge.setPayAmt(new BigDecimal(amt.intValue()));
- userRecharge.setAddTime(new Date());
- userRecharge.setPayTime(new Date());
- userRecharge.setOrderStatus(Integer.valueOf(0));
- userRecharge.setPayId(1);
- userRechargeMapper.insert(userRecharge);
}
@@ -197,7 +179,7 @@
userAssets.setAvailableBalance(userAssets.getAvailableBalance().add(amount));
}
userAssets.setFreezeMoney(userAssets.getFreezeMoney().subtract(amount));
- }else if(Objects.equals(eUserAssets.getCode(), EUserAssets.CALCULATE_PROFIT_AND_LOSS.getCode())){
+ }else if(Objects.equals(eUserAssets.getCode(), EUserAssets.CALCULATE_PROFIT_AND_LOSS.getCode())){
extracted(amount, userAssets);
}else if(Objects.equals(eUserAssets.getCode(), EUserAssets.TRANSFER.getCode())){
userAssets.setAvailableBalance(userAssets.getAvailableBalance().add(amount));
@@ -239,6 +221,9 @@
userAssets.setCumulativeProfitAndLoss(userAssets.getCumulativeProfitAndLoss().add(amount));
}
extracted(userAssets);
+ }else if(Objects.equals(eUserAssets.getCode(), EUserAssets.CALL.getCode())){
+ userAssets.setFreezeMoney(userAssets.getFreezeMoney().subtract(amount));
+ extracted(amount, userAssets);
}
if(null != userPosition){
@@ -295,7 +280,7 @@
// 执行转账操作
try {
synchronized (userId){
- performTransfer(disbursement, deposit, transferAmount);
+ performTransfer(disbursementAccount,disbursement, deposit, transferAmount);
}
return ServerResponse.createBySuccess("划转成功", request);
} catch (Exception e) {
@@ -339,14 +324,23 @@
}
// 执行转账操作
- private void performTransfer(UserAssets disbursement, UserAssets deposit, BigDecimal transferAmount) {
- // 更新转出账户余额
- disbursement.setAvailableBalance(disbursement.getAvailableBalance().subtract(transferAmount));
- userAssetsMapper.updateById(disbursement);
-
- // 更新转入账户余额
- deposit.setAvailableBalance(deposit.getAvailableBalance().add(transferAmount));
- userAssetsMapper.updateById(deposit);
+ private void performTransfer(String disbursementAccount,UserAssets disbursement, UserAssets deposit, BigDecimal transferAmount) {
+ StockConfig stockConfig = stockConfigMapper.selectOne(new LambdaQueryWrapper<StockConfig>().eq(StockConfig::getCKey, "usdt_parities"));
+ if(disbursementAccount.equals("USD")){
+ // 更新转入账户余额
+ deposit.setAvailableBalance(deposit.getAvailableBalance().add(transferAmount.multiply(new BigDecimal(stockConfig.getCValue()))));
+ userAssetsMapper.updateById(deposit);
+ // 更新转出账户余额
+ disbursement.setAvailableBalance(disbursement.getAvailableBalance().subtract(transferAmount));
+ userAssetsMapper.updateById(disbursement);
+ }else if(disbursementAccount.equals("ST")){
+ // 更新转入账户余额
+ deposit.setAvailableBalance(deposit.getAvailableBalance().add(transferAmount.divide(new BigDecimal(stockConfig.getCValue()))));
+ userAssetsMapper.updateById(deposit);
+ // 更新转出账户余额
+ disbursement.setAvailableBalance(disbursement.getAvailableBalance().subtract(transferAmount));
+ userAssetsMapper.updateById(disbursement);
+ }
}
//只要涉及到cumulativeProfitAndLoss变动重新设置状态
@@ -379,48 +373,4 @@
extracted(userAssets);
}
- @Override
- public boolean saveBatch(Collection<UserAssets> entityList, int batchSize) {
- return false;
- }
-
- @Override
- public boolean saveOrUpdateBatch(Collection<UserAssets> entityList, int batchSize) {
- return false;
- }
-
- @Override
- public boolean updateBatchById(Collection<UserAssets> entityList, int batchSize) {
- return false;
- }
-
- @Override
- public boolean saveOrUpdate(UserAssets entity) {
- return false;
- }
-
- @Override
- public UserAssets getOne(Wrapper<UserAssets> queryWrapper, boolean throwEx) {
- return null;
- }
-
- @Override
- public Map<String, Object> getMap(Wrapper<UserAssets> queryWrapper) {
- return null;
- }
-
- @Override
- public <V> V getObj(Wrapper<UserAssets> queryWrapper, Function<? super Object, V> mapper) {
- return null;
- }
-
- @Override
- public BaseMapper<UserAssets> getBaseMapper() {
- return null;
- }
-
- @Override
- public Class<UserAssets> getEntityClass() {
- return null;
- }
}
--
Gitblit v1.9.3