1
zj
2024-06-13 8eea5be3b36875bd4ffe70e6c3a5bb07b1d829bf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
Êþº¾4W
VŸ ¡
£    T¤¥ ¦§œ@
¨©ª«
¬­
®¯
¬°è    T±
²³´
µ¶
·¸    T¹
º »¼ ½¾ ½¿ÀÁ ¦Â    TÃ
ÄÅ
ÆÇ
ÈÉÊ
ËÌ
ÏÐ
ÏÒ
TÓÔÕ ¦Ö
ØÙd
ØÚÛ
ÜÝ
8ŸÞß
8â    Tã äå æç æè    Té
êëì
êî    Ïï
ðñ
²óô
êõö÷ ¦øùú
ûüýþlogLorg/slf4j/Logger;contractOrderService8Lcom/yami/trading/service/contract/ContractOrderService;RuntimeVisibleAnnotations8Lorg/springframework/beans/factory/annotation/Autowired;contractApplyOrderService=Lcom/yami/trading/service/contract/ContractApplyOrderService; dataService+Lcom/yami/trading/service/data/DataService;8Lorg/springframework/beans/factory/annotation/Qualifier;value itemService+Lcom/yami/trading/service/item/ItemService;redissonClient!Lorg/redisson/api/RedissonClient;<init>()VCodeLineNumberTableLocalVariableTablethisBLcom/yami/trading/huobi/task/contract/ContractApplyOrderHandleJob;startrunorder:Lcom/yami/trading/bean/contract/domain/ContractApplyOrder; realtime_listLjava/util/List;realtime,Lcom/yami/trading/bean/data/domain/Realtime;bySymbol(Lcom/yami/trading/bean/item/domain/Item;isOpenZeLjava/lang/Exception;processSuccessoneContractApplyOrderIdLjava/lang/String;LocalVariableTypeTable>Ljava/util/List<Lcom/yami/trading/bean/data/domain/Realtime;>; StackMapTableÿ´ÀúÔhandlei(Lcom/yami/trading/bean/contract/domain/ContractApplyOrder;Lcom/yami/trading/bean/data/domain/Realtime;)ZlockKeyrLockLorg/redisson/api/RLock;5Lcom/yami/trading/bean/contract/domain/ContractOrder;
lock_orderiIlist allProcessOk
applyOrderlockGLjava/util/List<Lcom/yami/trading/bean/contract/domain/ContractOrder;>;ô<clinit>
SourceFile ContractApplyOrderHandleJob.java*Lorg/springframework/stereotype/Component; hijava/lang/ThreadContractApplyOrderHandleJob h oi XY委托单处理线程启动!      
+com/yami/trading/common/constants/RedisKeysnew_contract_apply_orders      ^_ 8com/yami/trading/bean/contract/domain/ContractApplyOrder     submittedÿ  `a  u   *com/yami/trading/bean/data/domain/RealtimeE---> ContractApplyOrderHandleJob.run symbol:{} çš„ realTime å€¼ä¸ºç©º !" de# $% &' ()limit *buy + ,-. /0 12 34 ‹Œjava/lang/Exception合约订单:{} å¤„理失败 56 78 9) :open ;java/lang/StringBuilder7com/yami/trading/common/constants/RedisLockKeyConstantslock_contract_apply_to_order_ <= > ? fg@ AB CD Ei Z[F GHclose I JK LM NOcreated P Q3com/yami/trading/bean/contract/domain/ContractOrder RS>---> ContractApplyOrderHandleJob.handle å¤„理合约:{} æŠ¥é”™J---> ContractApplyOrderHandleJob.handle å½“前合约:{} è®°å½•无法处理 5"?---> ContractApplyOrderHandleJob.handle å¤„理合约:{} æŠ¥é”™:@com/yami/trading/huobi/task/contract/ContractApplyOrderHandleJobT UVjava/lang/Objectjava/lang/Runnablejava/lang/Stringjava/util/List&com/yami/trading/bean/item/domain/Itemjava/lang/Throwableorg/redisson/api/RLock)(Ljava/lang/Runnable;Ljava/lang/String;)Vorg/slf4j/Loggerinfo(Ljava/lang/String;)V(com/yami/trading/common/util/ThreadUtilssleep(J)V&com/yami/trading/common/util/RedisUtilspop&(Ljava/lang/String;)Ljava/lang/String;cn/hutool/core/util/StrUtilisBlank(Ljava/lang/CharSequence;)Zsadd'(Ljava/lang/String;Ljava/lang/String;)V;com/yami/trading/service/contract/ContractApplyOrderServicegetById*(Ljava/io/Serializable;)Ljava/lang/Object;getState()Ljava/lang/String;equals(Ljava/lang/Object;)Z    getSymbol)com/yami/trading/service/data/DataService$(Ljava/lang/String;)Ljava/util/List;size()Iget(I)Ljava/lang/Object;warn'(Ljava/lang/String;Ljava/lang/Object;)V)com/yami/trading/service/item/ItemService findBySymbol<(Ljava/lang/String;)Lcom/yami/trading/bean/item/domain/Item;getOpenCloseType*com/yami/trading/service/MarketOpenCheckerisMarketOpenByItemCloseType(Ljava/lang/String;)ZgetOrderPriceType getDirectiongetClose()Djava/math/BigDecimalvalueOf(D)Ljava/math/BigDecimal;getPrice()Ljava/math/BigDecimal;    compareTo(Ljava/math/BigDecimal;)Ierror9(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
getOrderNo.com/yami/trading/service/contract/ContractLockaddremove    getOffsetappend-(Ljava/lang/String;)Ljava/lang/StringBuilder;getUuidtoStringorg/redisson/api/RedissonClientgetLock,(Ljava/lang/String;)Lorg/redisson/api/RLock;tryLock()Zunlock6com/yami/trading/service/contract/ContractOrderServicesaveOpeni(Lcom/yami/trading/bean/contract/domain/ContractApplyOrder;Lcom/yami/trading/bean/data/domain/Realtime;)V
getPartyId findSubmittedH(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/util/List;ZEROLjava/math/BigDecimal;    setVolume(Ljava/math/BigDecimal;)VsetState
updateById    saveClose´(Lcom/yami/trading/bean/contract/domain/ContractApplyOrder;Lcom/yami/trading/bean/data/domain/Realtime;Ljava/lang/String;)Lcom/yami/trading/bean/contract/domain/ContractApplyOrder;org/slf4j/LoggerFactory    getLogger%(Ljava/lang/Class;)Lorg/slf4j/Logger;!TVWXYZ[\]^_\]`a\]bcs`de\]fg\]hij/*·±k"l mnoijJ»Y*·¶²¹±k4 56l mnpijÔ    –    ¸ <M ¸M,¸™<š     ,¸¸ §ÿÝ*´,¶ÀN-Æ-¶¶š<š     ,¸¸ §ÿ¬*´-¶¹::¹ž¹À:§$²-¶¹ š     ,¸¸ §ÿ_*´!-¶¶":Çš     ,¸¸ §ÿ:¶#¸$6šš     ,¸¸ §ÿ%-¶&¶™I'-¶(¶™ ¶)¸*-¶+¶,3*-¶-<§(¶)¸*-¶+¶,›*-¶-<§ *-¶-<š     ,¸¸ §8N²/,-¹0š     ,¸¸ §:š     ,¸¸ ¿§þs
^.,J^.]—^.ª¼^.ÏÞ^.ñK^.
~,J~]—~ª¼~ÏÞ~ñK~^k~~€~kÞ7=?@
BCE‚…#ˆ,K8LHMJ‚N…Tˆ]QlRoSyT‰W—‚›…¡ˆª\·]¼‚À…ƈÏ`Ùaނâ…èˆñfýj    no&u8vC}K‚O…Uˆ[‰^_€k‚o…uˆ{‰~‚„…Šˆ‰“Šl\    8qrlßstoÜuv·”wxÙryz_ {|‹}z
‰~–mn€ lßs‚dýƒü„ ý+…†ü‡ü4ÿˆƒ    H‰HŠÿ     ˆƒŠÿˆ‹Œj ž>+¶1¸2š6™3¸ +¶1¸5¬>6+¶7¶™¿»8Y·9;¶<+¶=¶<¶>:*´?¹@:¹Aš6™3¸ +¶1¸5¬*´+¶=¶À:ƶ¶š!6¹B™3¸ +¶1¸5¬*´C+,¶D¹B§:¹B¿6™3¸ +¶1¸5¬E+¶7¶™D*´C+¶F+¶+¶(¶G:¹š0+²H¶I+J¶K*´+¶LW6™3¸ +¶1¸5¬66¹¢Î¹ÀM:6¶N¸2š6™¤3¸ ¶N¸5§“6*´C+,¶N¶OLJ+¶¶™6™s3¸ ¶N¸5§b™W3¸ ¶N¸5§F:    6²P+¶=    ¹0™,3¸ ¶N¸5§:
™3¸ ¶N¸5
¿„§ÿ,6™3¸ +¶1¸5¬²Q+¶=¹R6™3¸ +¶1¸5¬:²S+¶=¹06™3¸ +¶1¸5¬: ™3¸ +¶1¸5 ¿wœÊ·ÀÊÊÌÊhvÙ.Œ­Ù.hvŒ­Ùî_.#c_.w£_.·Ù_.í1_.E&_.:K_.ˆ#cˆw£ˆ·Ùˆí1ˆE&ˆ:Kˆ_tˆˆŠˆk’dސ ‘ÛÜÝ ‘#“%”1–I—V˜`™cÛgÜmÝt™w‡ž™ œ¥£Û§Ü­Ý´ ·£À¥Ç¦Ê¥Ó¦Ö¨ÙÛÝÜãÝê¨í©ù­®    ­¯°±%².³1Û5Ü;ÝB³E¶H·W¸e¹h»s¼vÊ{ˁ̌¿ÀžÂªÃ­Ê²Ë¸ÌÃÊÈËÎÌÙÆÛÇÞÈîÊóËùÌÊ ËÌη"Ñ&Û*Ü0Ý7Ñ:ÔHÕKÛOÜUÝ\Õ_Öa×qÙtÛxÜ~݅وێܔݛßlއ9qrI¤V—ŽÛ{|    e·qh´‘zKג“,”tHò•za'{|žmnž–ržuvœ—z€ ,”˜‚Úý úþPƒ™úü!„üúÿˆ„†ƒ™Š üøýT…úýý@š6U‰jŠýŠÿˆ„†…úüøü!ÿˆ„†‰ý%‰ÿˆ„†Šÿ ˆ„†Š›ij!    T¸U³±k œ\ž