BidPayTradeViewModel.cs 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. //----------------------------------------------------------------
  6. //Module Name: $safeprojectname$
  7. //Purpose:
  8. //CopyRight: Muchinfo
  9. //History:
  10. //----------------------------------------------------------------
  11. //DateTime 2016/7/27 20:20:33
  12. //Author
  13. //Description Create
  14. //----------------------------------------------------------------
  15. using Muchinfo.MTPClient.Data;
  16. using Muchinfo.MTPClient.Data.Enums;
  17. using Muchinfo.MTPClient.Data.Model;
  18. using Muchinfo.MTPClient.Data.Model.Account;
  19. using Muchinfo.MTPClient.Infrastructure.Utilities;
  20. using Muchinfo.MTPClient.Infrastructure.Cache;
  21. namespace Muchinfo.MTPClient.Trade.ViewModels
  22. {
  23. /// <summary>
  24. /// 竞价商品-所有权/全额商品
  25. /// <para>
  26. /// 所有权不能建空,只能买(建),卖(平)-》有头寸
  27. /// 挂开买 ●
  28. /// 挂开卖 ×
  29. /// 挂平买 ×
  30. /// 挂平卖 ●
  31. /// 摘开买 ●
  32. /// 摘开卖 ×
  33. /// 摘平买 ×
  34. /// 摘平卖 ●
  35. /// </para>
  36. /// </summary>
  37. public class BidPayTradeViewModel : BidTradeViewModel
  38. {
  39. #region "=========私有成员/Private Data Members"
  40. //To declare private service data
  41. #endregion "Private Data Members"
  42. #region "=========构造函数/Constructor/Initialization"
  43. public BidPayTradeViewModel(QuoteGoods goods, Direction direction)
  44. : base(goods, direction)
  45. {
  46. SetDefaultBinding(direction);
  47. }
  48. public BidPayTradeViewModel(QuoteGoods goods, OrderBase orderBase)
  49. : base(goods, orderBase)
  50. {
  51. }
  52. #endregion "Constructor/Initialization"
  53. #region "=========接口重写/Interface implementation Or override"
  54. /// <summary>
  55. /// 是否显示最大可下单数量=》只有卖平仓的时候显示
  56. /// </summary>
  57. public override bool IsLotMaxVsb
  58. {
  59. get
  60. {
  61. if (Direction == Direction.Ask && OpenCloseMode == OpenCloseMode.BUILDTYPE_CLOSE)
  62. {
  63. return true;
  64. }
  65. return false;
  66. }
  67. }
  68. /// <summary>
  69. /// 设置默认绑定值
  70. /// </summary>
  71. /// <param name="direction"></param>
  72. private void SetDefaultBinding(Direction direction)
  73. {
  74. if (direction == Direction.Ask)
  75. {
  76. OpenCloseMode = OpenCloseMode.BUILDTYPE_CLOSE;
  77. }
  78. else
  79. {
  80. OpenCloseMode = OpenCloseMode.BUILDTYPE_OPEN;
  81. }
  82. }
  83. /// <summary>
  84. /// 是否可平仓
  85. /// </summary>
  86. public override bool IsCloseEnable
  87. {
  88. get
  89. {
  90. if (OpenCloseMode == OpenCloseMode.BUILDTYPE_OPEN)
  91. {
  92. return false;
  93. }
  94. else
  95. {
  96. return true;
  97. }
  98. }
  99. }
  100. /// <summary>
  101. /// 所有权商品,买建卖平显示
  102. /// </summary>
  103. protected override void SetSellCloseBuyOpen()
  104. {
  105. if (Direction == Direction.Bid)
  106. {
  107. OpenCloseMode = OpenCloseMode.BUILDTYPE_OPEN;
  108. }
  109. else
  110. {
  111. OpenCloseMode = OpenCloseMode.BUILDTYPE_CLOSE;
  112. }
  113. }
  114. /// <summary>
  115. /// 是否可以选择建仓
  116. /// </summary>
  117. public override bool IsEnableSelectOpenMode
  118. {
  119. get
  120. {
  121. if (OpenCloseMode == OpenCloseMode.BUILDTYPE_OPEN)
  122. {
  123. return true;
  124. }
  125. else
  126. {
  127. return false;
  128. }
  129. }
  130. }
  131. /// <summary>
  132. /// 设置默认价格模式[读取数据库配置--设置]
  133. /// </summary>
  134. protected override void setDefaultPriceMode()
  135. {
  136. PriceMode = ePriceMode.PRICEMODE_LIMIT;//【客户需求】若商品为竞价模式,则默认成交的价格类型为“限价”
  137. if (ApplicationParameter.BidTradeDefaultPriceMode == 0)
  138. {
  139. PriceMode = ePriceMode.PRICEMODE_MARKET;
  140. }
  141. }
  142. public override bool IsSellEnable
  143. {
  144. get
  145. {
  146. //return CacheManager.GetGoodsPositionAvailableQty(Direction.Bid,_currentGoods.GoodsId,eTradeMode.Full_Transfer)>0;
  147. return true;
  148. }
  149. }
  150. /// <summary>
  151. /// 按单、寸头是否可见
  152. /// </summary>
  153. public override bool IsCloseTypeVsb
  154. {
  155. get
  156. {
  157. //卖方向的时候可见
  158. return false;//Direction == Direction.Ask;
  159. }
  160. }
  161. protected override void SetMinMaxQtyVaule()
  162. {
  163. if (this.Direction == Direction.Bid)
  164. {
  165. SetOpenQty();
  166. }
  167. else
  168. {
  169. SetCloseQty();
  170. }
  171. }
  172. public override void PostOrder(Action<OrderDetail> successAction, Action<ErrorEntity> errorAction)
  173. {
  174. var entrustOrder = BuildEntrustOrder();
  175. entrustOrder.BuildType = Direction == Direction.Ask ? OpenCloseMode.BUILDTYPE_CLOSE : OpenCloseMode.BUILDTYPE_OPEN;
  176. ////按单平
  177. if (Direction == Direction.Ask && GoodsOrderMode == GoodsOrderMode.Order)
  178. {
  179. //entrustOrder.RelationTicket = SelectOrder == null ? 0 : SelectOrder.OrderID;
  180. }
  181. //_orderService.BidMarketEntrustOrder(entrustOrder, successAction, errorAction);
  182. _orderService.MakeMarketEntrustOrder(entrustOrder, successAction, errorAction);
  183. }
  184. #endregion "Interface implementation Or override"
  185. #region "=========公共属性/Public Properties To Get/Set "
  186. //To do Get/Set
  187. #endregion "Public Properties To Get/Set "
  188. #region "=========公共命令/Public Commands"
  189. //To to some Commands
  190. #endregion "Public Commands"
  191. #region "=========私有方法/Private Methods"
  192. //To to something
  193. #endregion "Private Methods"
  194. #region "=========其它方法/Other Methods"
  195. //To to something
  196. #endregion "Other Methods"
  197. }
  198. }