撤销委托功能

# 币币交易撤销委托功能文档 ## 功能简介 已有当前委托单的条件下,用户撤销委托的功能简介。 ## 代码流程 ### 1.发布撤销委托消息 #### a.发起撤销委托申请 ##### 1)代码结构:app/trade/tradeController/cancelExEntrust ##### 2)实现功能 ###### i. 判断委托是否计划委托,如果是则判断当前价格和触发价格大小关系,返回失败。 ###### ii.构造EntrustTrade对象,注意这里的time设为空,然后调用撤销委托方法 #### b.撤销委托方法 ##### 1)代码结构:trade/entrust/service/impl/ExEntrustServiceImpl ##### 2)内容实现 ###### i. 将构造的trade对象发送到消息队列toTrade中。 ### 2.消费委托消息 #### a.监听消息队列 ##### 1)代码结构:trade/mq/messagetrade ##### 2)实现内容:在mq中配置的消息监听totrade消息,调用匹配委托方法 #### b.匹配委托 ##### 1) 代码结构:trade/entrust/tradeserviceimpl/matchExtrustToOrderQueue ##### 2)实现内容 ###### i 判断委托时间,为空撤销委托。 #### c.根据类型撤销委托 ##### 1) 代码结构 trade/entrust/service/impl/tradeServiceImpl/canceltype ##### 2) 内容实现 ###### i. 根据是否有委托单号判断是否批量撤销。 ###### ii. 有委托单号则直接调用撤销接口 #### d.撤销委托 ##### 1) 代码结构 trade/entrust/service/impl/tradeServiceImpl/cancelExEntrust ##### 2) 内容实现 ###### i. 判断是否未触发 ###### ii. 如果未触发调用撤销未触发委托接口从待触发列表中撤销。 ###### iii. 从交易对+交易价格委托作为key的列表中删除 ###### iv. 将委托单状态设为取消或者部分取消、然后解冻用户资金。 ###### v. 将委托修改日志保存,然后存入用户委托单列表中。