新版仿ok交易所-后端
zyy
2025-09-29 f9059d489acb3728859b6fed976a7d5cce817ac7
Merge remote-tracking branch 'origin/9.17' into 9.17
5 files modified
107 ■■■■■ changed files
trading-order-admin/src/main/java/com/yami/trading/admin/controller/data/AdminKlineController.java 7 ●●●●● patch | view | raw | blame | history
trading-order-admin/src/main/java/com/yami/trading/admin/controller/user/UserController.java 13 ●●●●● patch | view | raw | blame | history
trading-order-huobi/src/main/java/com.yami.trading.huobi/data/internal/KlineInitServiceImpl.java 2 ●●● patch | view | raw | blame | history
trading-order-service/src/main/java/com/yami/trading/service/CapitaltWalletService.java 2 ●●●●● patch | view | raw | blame | history
trading-order-service/src/main/java/com/yami/trading/service/impl/CapitaltWalletServiceImpl.java 83 ●●●●● patch | view | raw | blame | history
trading-order-admin/src/main/java/com/yami/trading/admin/controller/data/AdminKlineController.java
@@ -78,4 +78,11 @@
        cryptosKlineService.initBySql(symbol);
        return Result.ok("success");
    }
    @GetMapping("klineSaveInit")
    public Result <String> klineSaveInit(String symbol) {
        cryptosKlineService.saveInit(symbol);
        return Result.ok("success");
    }
}
trading-order-admin/src/main/java/com/yami/trading/admin/controller/user/UserController.java
@@ -19,6 +19,7 @@
import com.yami.trading.security.common.util.SecurityUtils;
import com.yami.trading.security.common.enums.SysTypeEnum;
import com.yami.trading.security.common.manager.TokenStore;
import com.yami.trading.service.CapitaltWalletService;
import com.yami.trading.service.WalletService;
import com.yami.trading.service.system.LogService;
import com.yami.trading.service.user.UserRecomService;
@@ -65,6 +66,9 @@
    @Autowired
    PasswordManager passwordManager;
    @Autowired
    CapitaltWalletService capitaltWalletService;
    @PostMapping("list")
    @ApiOperation("列表")
    public Result<Page<UserDto>> list(@Valid @RequestBody UserListModel model) {
@@ -104,6 +108,15 @@
        return Result.ok(null);
    }
    @ApiOperation(value = "修改账户资金余额")
    @PostMapping("updateCapitaltWallt")
    @SysLog("修改账户余额")
    public Result updateCapitaltWallt(@Valid @RequestBody UpdateWalltModel model) {
        sysUserService.checkSafeWord(model.getSafePassword());
        return capitaltWalletService.updateCapitaltWallt(model.getUserId(), model.getMoneyRevise(),
                model.getAccountType(), model.getCoinType());
    }
    @ApiOperation(value = "修改提现限制流水")
    @PostMapping("updateWithdrawalLimitFlow")
    @SysLog("修改提现限制流水")
trading-order-huobi/src/main/java/com.yami.trading.huobi/data/internal/KlineInitServiceImpl.java
@@ -37,7 +37,7 @@
        if (!symbols.contains(",")) {
            Item bySymbol = itemService.findBySymbol(symbols);
            if (Item.cryptos.equalsIgnoreCase(bySymbol.getType())) {
                cryptosKlineService.saveInit(symbols);
                cryptosKlineService.init(symbols);
            } else if ("1".equalsIgnoreCase(bySymbol.getFake())) {
                fakeKlineInitService.saveInit(symbols);
            } else {
trading-order-service/src/main/java/com/yami/trading/service/CapitaltWalletService.java
@@ -14,4 +14,6 @@
    void update(CapitaltWallet capitaltWallet, double amount1);
    Result updateCapitaltWallt(String userId, BigDecimal moneyRevise,  int accountType, String coinType);
}
trading-order-service/src/main/java/com/yami/trading/service/impl/CapitaltWalletServiceImpl.java
@@ -4,15 +4,21 @@
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yami.trading.bean.contract.domain.ContractOrder;
import com.yami.trading.bean.item.domain.Item;
import com.yami.trading.bean.model.CapitaltWallet;
import com.yami.trading.bean.model.MoneyLog;
import com.yami.trading.bean.model.Wallet;
import com.yami.trading.bean.model.WalletExtend;
import com.yami.trading.common.constants.Constants;
import com.yami.trading.common.domain.Result;
import com.yami.trading.common.exception.YamiShopBindException;
import com.yami.trading.common.util.Arith;
import com.yami.trading.dao.CapitaltWalletMapper;
import com.yami.trading.service.CapitaltWalletService;
import com.yami.trading.service.MoneyLogService;
import com.yami.trading.service.WalletService;
import com.yami.trading.service.contract.ContractOrderService;
import com.yami.trading.service.item.ItemService;
import lombok.extern.slf4j.Slf4j;
import org.checkerframework.checker.units.qual.A;
import org.springframework.beans.factory.annotation.Autowired;
@@ -20,6 +26,7 @@
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
/**
@@ -36,6 +43,12 @@
    @Autowired
    private ContractOrderService contractOrderService;
    @Autowired
    MoneyLogService moneyLogService;
    @Autowired
    ItemService itemService;
    @Override
    public CapitaltWallet getUserIdWallet(String userId) {
@@ -106,6 +119,76 @@
        }
    }
    /**
     * @return
     */
    @Override
    @Transactional
    public Result updateCapitaltWallt(String userId, BigDecimal moneyRevise,  int accountType, String coinType) {
        if (accountType == 1 && moneyRevise.compareTo(BigDecimal.ZERO) <= 0) { //充值
            throw new YamiShopBindException("请输入大于0的数量");
        }
        if (accountType == 2) {
            moneyRevise = moneyRevise.negate();
        }
        if ("usdt".equals(coinType)) {
            double amount1 = moneyRevise.doubleValue();
            CapitaltWallet capitaltWallet = getOne(new LambdaQueryWrapper<>(CapitaltWallet.class)
                    .eq(CapitaltWallet::getUserId, userId).last(" limit 1 "));
            double amount_before = capitaltWallet.getMoney().doubleValue();
            if (accountType == 2 && capitaltWallet.getMoney().subtract(moneyRevise).compareTo(BigDecimal.ZERO) < 0) {
                throw new YamiShopBindException("账号资金不足");
            }
            update(capitaltWallet, amount1);
            // 保存资金日志
            MoneyLog moneyLog = new MoneyLog();
            moneyLog.setCategory(Constants.MONEYLOG_CATEGORY_COIN);
            moneyLog.setAmountBefore(new BigDecimal(amount_before));
            moneyLog.setAmount(new BigDecimal(amount1));
            moneyLog.setAmountAfter(BigDecimal.valueOf(Arith.add(amount_before, amount1)));
            moneyLog.setLog("后台手动充值/扣款");
            moneyLog.setUserId(userId);
            moneyLog.setWalletType(Constants.WALLET);
            moneyLog.setContentType(Constants.MONEYLOG_CONTENT_RECHARGE);
            moneyLog.setCreateTime(new Date());
            moneyLogService.save(moneyLog);
        } else {
            Item item = itemService.findBySymbol(coinType);
            if (item == null) {
                throw new YamiShopBindException("暂不支持的币种");
            }
            WalletExtend walletExtend = new WalletExtend();
            walletExtend = walletService.saveExtendByPara(userId, coinType);
            double volume = moneyRevise.doubleValue();
            double amount_before = walletExtend.getAmount();
            if (accountType == 2 && Arith.sub(amount_before, volume) < 0) {
                throw new YamiShopBindException("账号资金不足");
            }
            // walletExtend = walletService.saveWalletExtendByParaAndUpdate(String.valueOf(recharge.getPartyId()), recharge.getSymbol(), volume);
            walletService.updateExtend(walletExtend.getPartyId().toString(), walletExtend.getWallettype(), volume);
            // 保存资金日志
            MoneyLog moneyLog = new MoneyLog();
            moneyLog.setCategory(Constants.MONEYLOG_CATEGORY_COIN);
            moneyLog.setAmountBefore(new BigDecimal(amount_before));
            moneyLog.setAmount(new BigDecimal(volume));
            moneyLog.setAmountAfter(new BigDecimal(Arith.add(amount_before, volume)));
            moneyLog.setLog("后台手动充值/扣款");
            moneyLog.setUserId(userId);
            moneyLog.setWalletType(coinType);
            moneyLog.setContentType(Constants.MONEYLOG_CONTENT_RECHARGE);
            moneyLog.setCreateTime(new Date());
            moneyLogService.save(moneyLog);
        }
        return Result.succeed();
    }
    @Override
    public void update(CapitaltWallet capitaltWallet, double amount1) {
        capitaltWallet.setMoney(new BigDecimal(Arith.add(capitaltWallet.getMoney().doubleValue(), amount1)));