ListingService.cs 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364
  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/9/14 16:42:39
  12. //Author
  13. //Description Create
  14. //----------------------------------------------------------------
  15. using Muchinfo.MTPClient.Adapter.Abstract;
  16. using Muchinfo.MTPClient.Data;
  17. using Muchinfo.MTPClient.Data.Enums;
  18. using Muchinfo.MTPClient.Data.Model.Account;
  19. using Muchinfo.MTPClient.Data.Model.Listing;
  20. using Muchinfo.MTPClient.Infrastructure.LinkProxy;
  21. using Muchinfo.MTPClient.Infrastructure.Utilities;
  22. using Muchinfo.MTPClient.IService;
  23. using Muchinfo.MTPClient.NetworkCore;
  24. using Muchinfo.MTPClient.Resources;
  25. using Muchinfo.MTPClient.Service.Utilities;
  26. namespace Muchinfo.MTPClient.Service
  27. {
  28. public class ListingService : IListingService
  29. {
  30. private ListingAdapter _listingAdapter;
  31. public ListingService()
  32. {
  33. _listingAdapter = LinkManager.Instance.TradeAdapterFactory.CreateListingAdapter();
  34. }
  35. public void QueryListingEntrust(long goodsid, Action<List<ListingEntrustOrder>> successAction,
  36. Action<Data.ErrorEntity> errorAction)
  37. {
  38. var queryCommonParams = new List<QueryCommonParam>();
  39. queryCommonParams.Add(new QueryCommonParam() { ParamKey = "DeliveryGoodsId", ParamValue = goodsid + string.Empty });
  40. QueryCommonHelper.QueryCommon(QueryStatement.QueryListingOrder, queryCommonParams, new Action<List<ListingEntrustOrder>>((listingOrder) =>
  41. {
  42. if (successAction != null)
  43. {
  44. successAction(listingOrder);
  45. }
  46. }), (error) =>
  47. {
  48. if (errorAction != null)
  49. {
  50. //RequestFunc = 查询委托单
  51. error.RequestFunc = Client_Resource.Listing_Query;
  52. errorAction(error);
  53. }
  54. });
  55. }
  56. public void QueryListingEntrust(string key,long goodsGroupid, Action<List<ListingEntrustOrder>> successAction, Action<Data.ErrorEntity> errorAction )
  57. {
  58. //#if DEBUG
  59. // if (successAction != null)
  60. // {
  61. // var listings = new List<ListingEntrustOrder>();
  62. // for (int i = 0; i < 20; i++)
  63. // {
  64. // var tem = new ListingEntrustOrder() { AllowModifyPrice = 34, AuditStatus = 1, OrderQty = 33, OrderPrice = 3553, AvailQty = 55555, };
  65. // tem.MoneyMode = i % 2 == 0 ? eMoneyMode.MONEYMODE_MARGIN : eMoneyMode.MONEYMODE_PAY;
  66. // listings.Add(tem);
  67. // }
  68. // successAction(listings);
  69. // }
  70. // return;
  71. //#endif
  72. var queryCommonParams=new List<QueryCommonParam>();
  73. if (!string.IsNullOrWhiteSpace(key))
  74. {
  75. queryCommonParams.Add(new QueryCommonParam(){ParamKey ="QueryKey",ParamValue = key});
  76. }
  77. if (goodsGroupid>0)
  78. {
  79. queryCommonParams.Add(new QueryCommonParam() { ParamKey = "GoodsGroupid", ParamValue = goodsGroupid+string.Empty });
  80. }
  81. QueryCommonHelper.QueryCommon(QueryStatement.QueryListingOrder, queryCommonParams, new Action<List<ListingEntrustOrder>>((listingOrder) =>
  82. {
  83. if (successAction != null)
  84. {
  85. successAction(listingOrder);
  86. }
  87. }), (error) =>
  88. {
  89. if (errorAction != null)
  90. {
  91. //RequestFunc = 查询委托单
  92. error.RequestFunc = Client_Resource.Listing_Query;
  93. errorAction(error);
  94. }
  95. });
  96. }
  97. public void QueryDelistingOrders(ulong accountid, Direction direction, int orderStatus, Action<List<Data.Model.Listing.DelistingOrder>> successAction, Action<Data.ErrorEntity> errorAction)
  98. {
  99. var queryCommonParams = new List<QueryCommonParam>();
  100. queryCommonParams.Add(new QueryCommonParam() { ParamKey = "accountId", ParamValue = accountid + string.Empty });
  101. ////查询个人摘牌记录(这个字段不为空时查询摘牌记录)
  102. queryCommonParams.Add(new QueryCommonParam() { ParamKey = "Delisting", ParamValue = accountid + string.Empty });
  103. if (direction != Direction.unSet)
  104. {
  105. queryCommonParams.Add(new QueryCommonParam() { ParamKey = "buyOrSell", ParamValue = ((int)direction) + string.Empty });
  106. }
  107. if (orderStatus != -1)
  108. {
  109. queryCommonParams.Add(new QueryCommonParam() { ParamKey = "status", ParamValue = orderStatus + string.Empty });
  110. }
  111. QueryCommonHelper.QueryCommon(QueryStatement.QueryDeListingOrder, queryCommonParams, new Action<PageInfo<DelistingOrder>>((dlistingOrder) =>
  112. {
  113. if (successAction != null)
  114. {
  115. UserManager.UpdateCacheOrder(dlistingOrder.QueryResults);
  116. successAction(dlistingOrder.QueryResults);
  117. }
  118. }), (error) =>
  119. {
  120. if (errorAction != null)
  121. {
  122. //RequestFunc = 查询委托单
  123. error.RequestFunc = Client_Resource.Delisting_Query;
  124. errorAction(error);
  125. }
  126. });
  127. }
  128. /// <summary>
  129. /// 摘牌委托订单
  130. /// </summary>
  131. /// <param name="entrustOrder"></param>
  132. /// <param name="successAction"></param>
  133. /// <param name="errorAction"></param>
  134. public void DeListingEntrustOrder(Data.Model.NewEntrustOrder entrustOrder, Action<Data.Model.Account.OrderDetail> successAction, Action<Data.ErrorEntity> errorAction)
  135. {
  136. return;
  137. //var reqeust = _listingAdapter.ToDeListingEntrustOrder(entrustOrder);
  138. //var packgage = new TCPPackage() { Content = reqeust, FunCode = FuncCode.FID_DeListingOrderReq };
  139. //LinkManager.Instance.TradeTcpLinkProxy.SendPackage(packgage, new Action<TCPPackage>((revPackgage) =>
  140. //{
  141. // var responeEntrity = _listingAdapter.ToDeListingOrder(revPackgage.Content);
  142. // if (responeEntrity.RetCode == 0)
  143. // {
  144. // //todo:生成委托单
  145. // successAction(responeEntrity.Entity);
  146. // }
  147. // else
  148. // {
  149. // if (errorAction != null)
  150. // {
  151. // //RequestFunc = 市场委托订单
  152. // errorAction(new ErrorEntity() { ReturnCode = responeEntrity.RetCode, ReturnDesc = responeEntrity.RetMessage, RequestFunc = Client_Resource.Delisting_Order });
  153. // }
  154. // }
  155. //}), new Action<int, string>((errorCode, errorDesc) =>
  156. //{ ////通信错误
  157. // if (errorAction != null)
  158. // {
  159. // errorAction(new ErrorEntity() { ReturnCode = errorCode, ReturnDesc = errorDesc, RequestFunc = Client_Resource.Delisting_Order });
  160. // }
  161. //}));
  162. }
  163. public void QueryDelistingRecord(long orderId, Action<List<DlgRecord>> successAction, Action<ErrorEntity> errorAction)
  164. {
  165. var queryCommonParams = new List<QueryCommonParam>();
  166. queryCommonParams.Add(new QueryCommonParam() { ParamKey = "RelationID", ParamValue = orderId+string.Empty });
  167. QueryCommonHelper.QueryCommon(QueryStatement.QueryDeListingRecord, queryCommonParams, new Action<PageInfo<DlgRecord>>((dlistingOrder) =>
  168. {
  169. if (successAction != null)
  170. {
  171. successAction(dlistingOrder.QueryResults);
  172. }
  173. }), (error) =>
  174. {
  175. if (errorAction != null)
  176. {
  177. //RequestFunc = 查询委托单
  178. error.RequestFunc = Client_Resource.Delisting_Record;
  179. errorAction(error);
  180. }
  181. });
  182. }
  183. public void QueryCustomerDelistingCount(long orderId, ulong accountId, Action<List<TradeCount>> successAction, Action<ErrorEntity> errorAction)
  184. {
  185. var queryCommonParams = new List<QueryCommonParam>();
  186. queryCommonParams.Add(new QueryCommonParam() { ParamKey = "accountId", ParamValue = accountId + string.Empty });
  187. queryCommonParams.Add(new QueryCommonParam() { ParamKey = "orderId", ParamValue = orderId + string.Empty });
  188. QueryCommonHelper.QueryCommon(QueryStatement.QueryDeListingTradeCount, queryCommonParams, new Action<PageInfo<TradeCount>>((dlistingOrder) =>
  189. {
  190. if (successAction != null)
  191. {
  192. successAction(dlistingOrder.QueryResults);
  193. }
  194. }), (error) =>
  195. {
  196. if (errorAction != null)
  197. {
  198. //RequestFunc = 查询委托单
  199. error.RequestFunc = Client_Resource.Delisting_Record;
  200. errorAction(error);
  201. }
  202. });
  203. }
  204. public void QueryDeliveryGoods(long exchId, eSponsorType sponsor, Action<List<ListingDeliveryGoods>> successAction, Action<ErrorEntity> errorAction)
  205. {
  206. var queryCommonParams = new List<QueryCommonParam>();
  207. queryCommonParams.Add(new QueryCommonParam() { ParamKey = "exchangeAreaId", ParamValue = exchId + string.Empty });
  208. // queryCommonParams.Add(new QueryCommonParam() { ParamKey = "sponsor", ParamValue = sponsor + string.Empty });
  209. QueryCommonHelper.QueryCommon(QueryStatement.SearchDeliveryGoods, queryCommonParams, new Action<List<ListingDeliveryGoods>>((dlistingOrder) =>
  210. {
  211. if (successAction != null)
  212. {
  213. successAction(dlistingOrder);
  214. }
  215. }), (error) =>
  216. {
  217. if (errorAction != null)
  218. {
  219. //RequestFunc = 查询委托单
  220. error.RequestFunc = Client_Resource.Delisting_Record;
  221. errorAction(error);
  222. }
  223. });
  224. }
  225. public void QueryMyOrders(string NameCodeOrder, ulong accountId, Action<List<DelistingOrder>> successAction, Action<ErrorEntity> errorAction)
  226. {
  227. var queryCommonParams = new List<QueryCommonParam>();
  228. if (!string.IsNullOrWhiteSpace(NameCodeOrder))
  229. {
  230. queryCommonParams.Add(new QueryCommonParam() { ParamKey = "QueryKey", ParamValue = NameCodeOrder + string.Empty });
  231. }
  232. queryCommonParams.Add(new QueryCommonParam() { ParamKey = "accountId", ParamValue = accountId + string.Empty });
  233. QueryCommonHelper.QueryCommon(QueryStatement.QueryListingMyOrders, queryCommonParams, new Action<List<DelistingOrder>>((dlistingOrder) =>
  234. {
  235. if (successAction != null)
  236. {
  237. successAction(dlistingOrder);
  238. }
  239. }), (error) =>
  240. {
  241. if (errorAction != null)
  242. {
  243. //RequestFunc = 查询委托单
  244. error.RequestFunc = Client_Resource.ListingMarket_MyOrders;
  245. errorAction(error);
  246. }
  247. });
  248. }
  249. public void QueryMyListingOrders(ulong accountId, int direction, int status, Action<List<ListingEntrustOrder>> successAction, Action<ErrorEntity> errorAction)
  250. {
  251. var queryCommonParams = new List<QueryCommonParam>();
  252. if (direction!=-1)
  253. {
  254. queryCommonParams.Add(new QueryCommonParam() { ParamKey = "buyOrSell", ParamValue = direction + string.Empty });
  255. }
  256. if (status != -1)
  257. {
  258. queryCommonParams.Add(new QueryCommonParam() { ParamKey = "status", ParamValue = status + string.Empty });
  259. }
  260. queryCommonParams.Add(new QueryCommonParam() { ParamKey = "accountId", ParamValue = accountId + string.Empty });
  261. QueryCommonHelper.QueryCommon(QueryStatement.QueryListingRequest, queryCommonParams, new Action<List<ListingEntrustOrder>>((listingOrder) =>
  262. {
  263. if (successAction != null)
  264. {
  265. successAction(listingOrder);
  266. }
  267. }), (error) =>
  268. {
  269. if (errorAction != null)
  270. {
  271. //RequestFunc = 查询委托单
  272. error.RequestFunc = Client_Resource.ListingMarket_MyOrders;
  273. errorAction(error);
  274. }
  275. });
  276. }
  277. public void ListingEntrustOrders(ListingEntrustOrder order, Action<ListingEntrustOrder> successAction, Action<ErrorEntity> errorAction)
  278. {
  279. return;
  280. //var reqeust = _listingAdapter.ToListingEntrustOrder(order);
  281. //var packgage = new TCPPackage() { Content = reqeust, FunCode = FuncCode.FID_ListingOrderReq };
  282. //LinkManager.Instance.TradeTcpLinkProxy.SendPackage(packgage, new Action<TCPPackage>((revPackgage) =>
  283. //{
  284. // var responeEntrity = _listingAdapter.ToListingOrder(revPackgage.Content);
  285. // if (responeEntrity.RetCode == 0)
  286. // {
  287. // //todo:生成委托单
  288. // successAction(responeEntrity.Entity);
  289. // }
  290. // else
  291. // {
  292. // if (errorAction != null)
  293. // {
  294. // //RequestFunc = 市场委托订单
  295. // errorAction(new ErrorEntity() { ReturnCode = responeEntrity.RetCode, ReturnDesc = responeEntrity.RetMessage, RequestFunc = Client_Resource.ListingMarket_ListingTrade });
  296. // }
  297. // }
  298. //}), new Action<int, string>((errorCode, errorDesc) =>
  299. //{ ////通信错误
  300. // if (errorAction != null)
  301. // {
  302. // errorAction(new ErrorEntity() { ReturnCode = errorCode, ReturnDesc = errorDesc, RequestFunc = Client_Resource.ListingMarket_ListingTrade });
  303. // }
  304. //}));
  305. }
  306. public void QueryListingEntrust(uint goodsid, Direction direction, Action<List<ListingEntrustOrder>> successAction, Action<ErrorEntity> errorAction)
  307. {
  308. var queryCommonParams = new List<QueryCommonParam>();
  309. queryCommonParams.Add(new QueryCommonParam() { ParamKey = "DeliveryGoodsId", ParamValue = goodsid + string.Empty });
  310. queryCommonParams.Add(new QueryCommonParam() { ParamKey = "buyOrSell", ParamValue =((int) direction) + string.Empty });
  311. QueryCommonHelper.QueryCommon(QueryStatement.QueryListingOrder, queryCommonParams, new Action<List<ListingEntrustOrder>>((listingOrder) =>
  312. {
  313. if (successAction != null)
  314. {
  315. successAction(listingOrder);
  316. }
  317. }), (error) =>
  318. {
  319. if (errorAction != null)
  320. {
  321. //RequestFunc = 查询委托单
  322. error.RequestFunc = Client_Resource.Listing_Query;
  323. errorAction(error);
  324. }
  325. });
  326. }
  327. }
  328. }