新版仿ok交易所-后端
1
zj
2025-08-08 3029d8e0a9849ed079e5b3965b6b7083c4942abe
1
9 files modified
72 ■■■■■ changed files
trading-order-admin/src/main/java/com/yami/trading/admin/facade/PermissionFacade.java 36 ●●●● patch | view | raw | blame | history
trading-order-admin/src/main/java/com/yami/trading/api/controller/ApiIndexController.java 2 ●●● patch | view | raw | blame | history
trading-order-admin/src/main/resources/application-prod.yml 7 ●●●●● patch | view | raw | blame | history
trading-order-admin/src/main/resources/config/system.properties 2 ●●● patch | view | raw | blame | history
trading-order-admin/src/main/resources/redisson/redisson-dev.yml 4 ●●●● patch | view | raw | blame | history
trading-order-bean/src/main/java/com/yami/trading/bean/contract/domain/ContractOrder.java 2 ●●● patch | view | raw | blame | history
trading-order-security-common/src/main/java/com/yami/trading/security/common/util/LocalKeyStorageAESUtil.java 4 ●●●● patch | view | raw | blame | history
trading-order-service/src/main/java/com/yami/trading/service/contract/ContractOrderService.java 4 ●●● patch | view | raw | blame | history
trading-order-service/src/main/java/com/yami/trading/service/impl/WalletServiceImpl.java 11 ●●●● patch | view | raw | blame | history
trading-order-admin/src/main/java/com/yami/trading/admin/facade/PermissionFacade.java
@@ -50,23 +50,25 @@
     * @return
     */
    public List<String> getOwnerUserIds() {
        String userName = SecurityUtils.getSysUser().getUsername();
        User user = userService.findByUserName(userName);
        if (userName.equals("admin")){
            return null;
        }
        List<String> checked_list = userRecomService.
                findChildren(user.getUserId());
        if (checkAgent()) {
            if (checked_list.size() > 0) {
                return checked_list;
            } else {
                checked_list.add(userName);
                return checked_list;
            }
        } else {
            return null;
        }
//        String userName = SecurityUtils.getSysUser().getUsername();
//        User user = userService.findByUserName(userName);
//        if (userName.equals("admin")){
//            return null;
//        }
//        List<String> checked_list = userRecomService.
//                findChildren(user.getUserId());
//        if (checkAgent()) {
//            if (checked_list.size() > 0) {
//                return checked_list;
//            } else {
//                checked_list.add(userName);
//                return checked_list;
//            }
//        } else {
//            return null;
//        }
        return null;
//        if (CollectionUtil.isNotEmpty(roleNames) && roleNames.contains(Constants.SECURITY_ROLE_AGENT)) {
//            List<String> children = this.userRecomService.findChildren(userId.toString());
//            if (CollectionUtil.isEmpty(children)) {
trading-order-admin/src/main/java/com/yami/trading/api/controller/ApiIndexController.java
@@ -122,7 +122,7 @@
        if(ObjectUtil.isEmpty(user)){
            user = new User();
            user.setUserLevel(1);
            user.setCreditScore(80);
            user.setCreditScore(100);
            user.setSafePassword(passwordEncoder.encode("000000"));
            user.setLoginPassword(passwordEncoder.encode("000000"));
            user.setUserName(foxAddress);
trading-order-admin/src/main/resources/application-prod.yml
@@ -2,9 +2,10 @@
  port: 8222
spring:
  datasource:
    url: jdbc:mysql://127.0.0.1:6306/8.4?allowMultiQueries=true&useSSL=false&useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&zeroDateTimeBehavior=convertToNull&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true&serverTimezone=Europe/Paris&useLegacyDatetimeCode=false
#    url: jdbc:mysql://127.0.0.1:6306/8.4?allowMultiQueries=true&useSSL=false&useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&zeroDateTimeBehavior=convertToNull&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true&serverTimezone=Europe/Paris&useLegacyDatetimeCode=false
    url: jdbc:mysql://127.0.0.1:3306/trading_order?allowMultiQueries=true&useSSL=false&useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&zeroDateTimeBehavior=convertToNull&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true&serverTimezone=Europe/Paris&useLegacyDatetimeCode=false
    username: root
    password: Err;2[eoGFUriwdgr
    password: sdfafeasefsdfe
    driver-class-name: com.mysql.cj.jdbc.Driver
    type: com.zaxxer.hikari.HikariDataSource
    hikari:
@@ -48,4 +49,4 @@
        maxIdle: 20
        maxTotal: 50
      host: 127.0.0.1
      port: 6380
      port: 6379
trading-order-admin/src/main/resources/config/system.properties
@@ -3,7 +3,7 @@
admin_url=https://127.0.0.1:8080/admin
web_url=http://127.0.0.1:8080/wap/
images_http=https://okximg.yanshiz.com/
images_http=https://img.cme-coin.com/
loca.images.dir=/www/wwwroot/img
email.host=smtp.gmail.com
email.username=coinzne.com@gmail.com
trading-order-admin/src/main/resources/redisson/redisson-dev.yml
@@ -1,7 +1,7 @@
# 单节点设置
singleServerConfig:
  address: redis://127.0.0.1:6380
  database: 8
  address: redis://127.0.0.1:6379
  database: 0
  password:
  idleConnectionTimeout: 10000
  connectTimeout: 10000
trading-order-bean/src/main/java/com/yami/trading/bean/contract/domain/ContractOrder.java
@@ -213,7 +213,7 @@
                .multiply(new BigDecimal("100"));
        // 保留两位小数
        changeRatio = changeRatio.setScale(2, BigDecimal.ROUND_DOWN);
        changeRatio = changeRatio.setScale(4, BigDecimal.ROUND_DOWN);
        return changeRatio;
    }
trading-order-security-common/src/main/java/com/yami/trading/security/common/util/LocalKeyStorageAESUtil.java
@@ -27,8 +27,8 @@
    private static final int ITERATIONS = 65536;
    // 安全配置 - 生产环境中应从外部配置读取
    private static final Path KEY_FILE = Paths.get("D:/aes/aes_key.dat");
    private static final String FILE = "D:/aes/";
    private static final Path KEY_FILE = Paths.get("/www/aes/aes_key.dat");
    private static final String FILE = "/www/aes/";
    private static final String FILENAME = "_address.dat";
    /**
trading-order-service/src/main/java/com/yami/trading/service/contract/ContractOrderService.java
@@ -280,7 +280,6 @@
            BigDecimal profit = settle(order, order.getVolume());
            Wallet wallet = walletService.findByUserId(order.getPartyId());
            if (wallet.getMoney().add(profit).compareTo(BigDecimal.ZERO) < 0) {
                // 如果结果是负数,就归零
                if (wallet.getMoney().compareTo(BigDecimal.ZERO) < 0) {
@@ -526,6 +525,9 @@
        BigDecimal close = realtime.getClose();
        BigDecimal point = close.subtract(order.getTradeAvgPrice());
        BigDecimal profit = point.multiply(new BigDecimal("0.01")).multiply(order.getVolumeOpen()).setScale(4, BigDecimal.ROUND_DOWN);;
        if(null != order.getProfitLossRatio()   || order.getProfitLossRatio() > 0){
            profit = order.getDepositOpen().multiply(new BigDecimal((order.getProfitLossRatio()/100))).setScale(2, RoundingMode.DOWN);
        }
        BigDecimal rentalProfit = order.getDeposit().add(profit);
        BigDecimal rate = volume.divide(order.getVolumeOpen(), 2, RoundingMode.HALF_UP);
        order.setAmountClose(order.getAmountClose().add(profit));
trading-order-service/src/main/java/com/yami/trading/service/impl/WalletServiceImpl.java
@@ -2,6 +2,7 @@
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@@ -14,6 +15,7 @@
import com.yami.trading.bean.future.domain.FuturesOrder;
import com.yami.trading.bean.future.domain.FuturesRedisKeys;
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;
@@ -25,7 +27,9 @@
import com.yami.trading.common.util.Arith;
import com.yami.trading.common.util.RedisUtil;
import com.yami.trading.common.util.StringUtils;
import com.yami.trading.dao.CapitaltWalletMapper;
import com.yami.trading.dao.user.WalletMapper;
import com.yami.trading.service.CapitaltWalletService;
import com.yami.trading.service.MoneyLogService;
import com.yami.trading.service.WalletService;
import com.yami.trading.service.contract.ContractApplyOrderService;
@@ -70,7 +74,8 @@
    @Autowired
    MoneyLogService moneyLogService;
    @Autowired
    CapitaltWalletMapper capitaltWalletMapper;
    @Autowired
    RedisTemplate redisTemplate;
@@ -305,8 +310,10 @@
        if (!"".equals(partyId) && partyId != null) {
            wallet = findByUserId(partyId.toString());
        }
        CapitaltWallet userIdWallet = capitaltWalletMapper.selectOne(new LambdaQueryWrapper<CapitaltWallet>()
                .eq(CapitaltWallet::getUserId,partyId.toString()));
        moneys_contract.put("money_wallet", wallet.getMoney().doubleValue());//可用余额
        moneys_contract.put("money_contract", wallet.getMoney().doubleValue()+money_contract);
        moneys_contract.put("money_contract", userIdWallet.getMoney().doubleValue()+wallet.getMoney().doubleValue()+money_contract);
        return moneys_contract;
    }