1
zj
2024-03-31 6912d597b0ed44d36af5e26077cce111936fc7f2
src/main/java/com/nq/service/impl/UserAssetsServices.java
@@ -1,6 +1,7 @@
package com.nq.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.nq.common.ServerResponse;
import com.nq.dao.UserAssetsMapper;
import com.nq.enums.EUserAssets;
import com.nq.pojo.UserAssets;
@@ -12,6 +13,9 @@
import java.util.List;
import java.util.Objects;
/**
 * 用户资产
 */
@Service
public class UserAssetsServices implements IUserAssetsServices {
@@ -21,6 +25,9 @@
    @Override
    public UserAssets assetsByTypeAndUserId(String accetType, Integer userId) {
        if(accetType.equals("SZHB")){
            accetType = "US";
        }
        QueryWrapper<UserAssets>  queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("accect_type",accetType);
        queryWrapper.eq("user_id",userId);
@@ -35,6 +42,24 @@
        return userAssets;
    }
    @Override
    public ServerResponse updateUserAssets(Integer id, String amt) {
        UserAssets userAssets = userAssetsMapper.selectById(id);
        BigDecimal bigAmt = new BigDecimal(amt);
        if(amt.contains("-")){
            if(userAssets.getAvailableBalance().compareTo(bigAmt.negate())<0){
                return ServerResponse.createByErrorMsg("账户余额不足");
            }
        }
        userAssets.setAvailableBalance(userAssets.getAvailableBalance().add(bigAmt));
        if( userAssetsMapper.updateById(userAssets)>0){
            return ServerResponse.createBySuccess();
        }else{
            return ServerResponse.createByErrorMsg("修改金额失败");
        }
    }
    @Override
@@ -46,6 +71,9 @@
    @Override
    public BigDecimal getAvailableBalance(String accetType, Integer userId) {
        if(accetType.equals("SZHB")){
            accetType = "US";
        }
        return  assetsByTypeAndUserId(accetType,userId).getAvailableBalance();
    }
@@ -53,7 +81,9 @@
    @Override
    public Boolean availablebalanceChange(String accetType, Integer userId, EUserAssets eUserAssets, BigDecimal amount, String desc, String descType) {
        if(accetType.equals("SZHB")){
            accetType = "US";
        }
        UserAssets userAssets =   assetsByTypeAndUserId(accetType,userId);
       if(Objects.equals(eUserAssets.getCode(), EUserAssets.BUY.getCode())){
            userAssets.setAvailableBalance(userAssets.getAvailableBalance().add(amount));
@@ -65,7 +95,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())){
            userAssets.setProfitAndLoss(userAssets.getProfitAndLoss().add(amount));
            userAssets.setCumulativeProfitAndLoss(userAssets.getProfitAndLoss().add(amount));
        }else if(Objects.equals(eUserAssets.getCode(), EUserAssets.TRANSFER.getCode())){
            userAssets.setAvailableBalance(userAssets.getAvailableBalance().add(amount));
        }else if(Objects.equals(eUserAssets.getCode(), EUserAssets.TOP_UP.getCode())){
@@ -73,6 +103,8 @@
        }else if(Objects.equals(eUserAssets.getCode(), EUserAssets.WITHDRAW.getCode())){
            userAssets.setAvailableBalance(userAssets.getAvailableBalance().add(amount));
        }
        //TODO 添加日志
        return userAssetsMapper.updateById(userAssets)>1;
    }
}