新版仿ok交易所-后端
1
zj
19 hours ago 640ccb9229224642515527daf87f308a7aa9bdf4
trading-order-admin/src/main/java/com/yami/trading/admin/task/contract/ContractApplyOrderHandleJob.java
@@ -48,6 +48,11 @@
            List<ContractApplyOrder> list = this.contractApplyOrderService.findSubmitted();
            for (int i = 0; i < list.size(); i++) {
               ContractApplyOrder order = list.get(i);
               ContractApplyOrder latest = this.contractApplyOrderService.findByOrderNo(order.getOrderNo());
               if (latest == null || !ContractApplyOrder.STATE_SUBMITTED.equals(latest.getState())) {
                  continue;
               }
               order = latest;
               List<Realtime> realtime_list = this.dataService.realtime(order.getSymbol());
               Realtime realtime = null;
               if (realtime_list.size() > 0) {
@@ -107,6 +112,10 @@
   public void handle(ContractApplyOrder applyOrder, Realtime realtime) {
      boolean lock = false;
      try {
         applyOrder = this.contractApplyOrderService.findByOrderNo(applyOrder.getOrderNo());
         if (applyOrder == null || !ContractApplyOrder.STATE_SUBMITTED.equals(applyOrder.getState())) {
            return;
         }
         if (!ContractLock.add(applyOrder.getOrderNo())) {
            return;
         }
@@ -152,6 +161,11 @@
         }
      } catch (YamiShopBindException e) {
         log.error("委托单处理失败 orderNo={}, msg={}", applyOrder.getOrderNo(), e.getMessage());
         if (isInsufficientFunds(e)) {
            this.contractApplyOrderService.saveCancel(applyOrder.getPartyId(), applyOrder.getOrderNo());
         }
      } catch (Exception e) {
         log.error("error:", e);
      } finally {
@@ -163,6 +177,15 @@
      }
   }
   private boolean isInsufficientFunds(YamiShopBindException e) {
      if (e.getMessage() == null) {
         return false;
      }
      String msg = e.getMessage().toLowerCase();
      return msg.contains("not sufficient funds") || msg.contains("余额不足");
   }
   public void start(){
      new Thread(this, "ContractApplyOrderHandleJob").start();
      if (log.isInfoEnabled())