新版仿ok交易所-后端
1
zyy
2026-03-05 9fa09b7700040b6cf416081ba0edfcfb72219b16
trading-order-admin/src/main/java/com/yami/trading/api/controller/ApiContractOrderController.java
@@ -3,26 +3,29 @@
import com.yami.trading.bean.contract.domain.ContractOrder;
import com.yami.trading.bean.data.domain.Realtime;
import com.yami.trading.bean.item.domain.Item;
import com.yami.trading.bean.model.Wallet;
import com.yami.trading.common.domain.Result;
import com.yami.trading.common.exception.YamiShopBindException;
import com.yami.trading.common.lang.LangUtils;
import com.yami.trading.common.util.StringUtils;
import com.yami.trading.common.util.ThreadUtils;
import com.yami.trading.security.common.util.SecurityUtils;
import com.yami.trading.service.WalletService;
import com.yami.trading.service.contract.ContractLockService;
import com.yami.trading.service.contract.ContractOrderService;
import com.yami.trading.service.data.DataService;
import com.yami.trading.service.item.ItemService;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.ObjectUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import javax.validation.constraints.NotBlank;
import java.io.IOException;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.*;
/**
@@ -41,6 +44,9 @@
    private ItemService itemService;
    @Autowired
    private ContractLockService contractLockService;
    @Autowired
    WalletService walletService;
    private final String action = "/api/contractOrder!";
@@ -61,6 +67,39 @@
        }
        return Result.succeed("平仓成功");
    }
    @GetMapping(action + "addDepositOpen.action")
    @ApiOperation(value = "追加保证金")
    public Result<String> addDepositOpen(@RequestParam @NotBlank String orderNo, @RequestParam @NotBlank BigDecimal addDepositOpen) {
        try {
            ContractOrder order = this.contractOrderService.findByOrderNo(orderNo);
            if (order != null && order.getState().equals(ContractOrder.STATE_SUBMITTED) && order.getLocationType() == 0) {
                contractOrderService.addDepositOpen(order, addDepositOpen);
            }
        } catch (Exception e) {
            log.error("追加保证金异常", e);
            throw new YamiShopBindException("追加保证金异常");
        }
        return Result.succeed("success");
    }
    @GetMapping(action + "setStopPrice.action")
    @ApiOperation(value = "设置止盈止损")
    public Result<String> setStopPrice(@RequestParam @NotBlank String orderNo, @RequestParam @NotBlank BigDecimal stopPriceProfit,
                                       @RequestParam @NotBlank BigDecimal stopPriceLoss) {
        try {
            ContractOrder order = this.contractOrderService.findByOrderNo(orderNo);
            if (order != null && order.getState().equals(ContractOrder.STATE_SUBMITTED)) {
                order.setStopPriceProfit(stopPriceProfit);
                order.setStopPriceLoss(stopPriceLoss);
                contractOrderService.update(order);
            }
        } catch (Exception e) {
            log.error("追加保证金异常", e);
            throw new YamiShopBindException("追加保证金异常");
        }
        return Result.succeed("success");
    }
    /**
@@ -153,10 +192,10 @@
                    bySymbol.transName();
                    map.put("name", bySymbol.getName());
                }
                map.put("mark_price", realtime.getClose());
                map.put("mark_price", realtime.getClose().setScale(4, RoundingMode.DOWN));
            }
            if (ObjectUtils.isEmpty(data.get(i).get("close_avg_price"))) {
                data.get(i).put("close_avg_price", data.get(i).get("mark_price"));
                data.get(i).put("close_avg_price", new BigDecimal(data.get(i).get("mark_price").toString()).setScale(4, RoundingMode.DOWN));
            }
        }
        return Result.ok(data);
@@ -401,7 +440,7 @@
                    } else {
                        // if (ContractLock.add(order_no)) {
                        if (contractLockService.getContractLock(order_no)) {
                            this.contractOrderService.saveClose(partyId, order_no);
                            this.contractOrderService.saveClose(partyId, order_no,null);
                            // 处理完退出
                            break;
                        }