AnnouncementService.cs 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339
  1. using System;
  2. using System.Linq;
  3. using System.Collections.ObjectModel;
  4. using Muchinfo.MTPClient.Adapter.Abstract;
  5. using Muchinfo.MTPClient.Data;
  6. using Muchinfo.MTPClient.Data.Enums;
  7. using Muchinfo.MTPClient.Data.Model;
  8. using Muchinfo.MTPClient.Data.Model.Account;
  9. using Muchinfo.MTPClient.Infrastructure.LinkProxy;
  10. using Muchinfo.MTPClient.Infrastructure.Utilities;
  11. using Muchinfo.MTPClient.IService;
  12. using Muchinfo.MTPClient.NetworkCore;
  13. using Muchinfo.PC.Common.Extensions;
  14. using Muchinfo.MTPClient.Data.Model.Message;
  15. using System.Collections.Generic;
  16. using Muchinfo.MTPClient.Service.Utilities;
  17. using Muchinfo.MTPClient.Resources;
  18. namespace Muchinfo.MTPClient.Service
  19. {
  20. public class AnnouncementService : IAnnouncementService
  21. {
  22. private readonly AnnouncementAdapter _announcementapter;
  23. public AnnouncementService()
  24. {
  25. _announcementapter = LinkManager.Instance.TradeAdapterFactory.CreateAnnouncementAdapter();
  26. }
  27. /// <summary>
  28. /// 公告
  29. /// </summary>
  30. /// <param name="tradeAccount"></param>
  31. /// <returns>公告/消息集合(已倒序排序)</returns>
  32. public ObservableCollection<Announcement> QueryClientBM(DateTime startDate, DateTime endDate, string title, MsgTypeEnum msgTypeEnum, TradeAccount tradeAccount)
  33. {
  34. return null;
  35. #region 已经注释
  36. //if (tradeAccount == null) return null;
  37. //var proxy = LinkerHelper.GetBizServiceProxy(tradeAccount.LoginCode);
  38. //if (proxy == null) return null;
  39. //var riskNtfType = ClientRiskNtfType.InvestorRiskNtfType;
  40. //switch (tradeAccount.AccountType)
  41. //{
  42. // case eLoginUserType.LOGINUSERTYPE_TRADER:
  43. // riskNtfType = ClientRiskNtfType.InvestorRiskNtfType;
  44. // break;
  45. // case ClientAccountType.MemberTradeAccount:
  46. // riskNtfType = ClientRiskNtfType.MemberRiskNtfType;
  47. // break;
  48. //}
  49. //var reqeust = new ClientBMRequest()
  50. //{
  51. // StartDate = new DateTime(startDate.Year, startDate.Month, startDate.Day, 0, 0, 0),
  52. // EndDate = new DateTime(endDate.Year, endDate.Month, endDate.Day, 23, 59, 59),
  53. // MsgType = (Tas.BusinessManager.DataContract.Enum.MsgTypeEnum)msgTypeEnum,
  54. // //todo:将Int改成枚举
  55. // AccountType = (int)tradeAccount.AccountType,
  56. // RiskNtfType = (int)riskNtfType,
  57. // TradeCode = tradeAccount.TradeCode,//AccountCode
  58. // AreaCode = tradeAccount.AreaCode,
  59. // MemberCode = tradeAccount.MemberCode,
  60. // Title = title,
  61. // IsValid = IsValidType.Valid,
  62. //};
  63. //reqeust.RequestPage = new RequestPageInfo() { NeedTotalCount = 20, Number = 0 }; // modify by justin.huang 由原来的取100条变为取前20条。
  64. //var result = proxy.QueryClientBM(reqeust);
  65. //if (result == null) throw new MuchinfoException(ExceptionManager.ReqeustTimeOutError);
  66. //if (result.ReturnCode != 0)
  67. //{
  68. // throw new MuchinfoException(result.ReturnCode, result.ReturnDesc, typeof(AnnouncementService));
  69. //}
  70. //var adapter = new OrderResponseAdapter();
  71. //ObservableCollection<Announcement> announcementList = adapter.ToLocalObservableCollection(result.Rsps.ToList());
  72. //var list = from announcement in announcementList
  73. // orderby announcement.PublishDate descending
  74. // select announcement;
  75. //return new ObservableCollection<Announcement>(list);
  76. #endregion
  77. }
  78. /// <summary>
  79. /// 修改公告状态
  80. /// </summary>
  81. /// <param name="tradeAccount"></param>
  82. /// <param name="announcement"></param>
  83. /// <returns></returns>
  84. public bool ModifyBulletinNotifyStatus(TradeAccount tradeAccount, Announcement announcement)
  85. {
  86. return false;
  87. #region 已经注释
  88. //bool status = false;
  89. //if (tradeAccount == null)
  90. //{
  91. // return false;
  92. //}
  93. //var proxy = LinkerHelper.GetBizServiceProxy(tradeAccount.LoginCode);
  94. //if (proxy == null)
  95. //{
  96. // return false;
  97. //}
  98. //var request = new ModifyBulletinNotifyStatusRequest()
  99. //{
  100. // ClientType = 2,
  101. // MsgId = announcement.MsgID,
  102. // MsgType = (int)announcement.MsgType,
  103. // AccountCode = tradeAccount.TradeCode
  104. //};
  105. //var result = proxy.ModifyBulletinNotifyStatus(request);
  106. //if (result == null)
  107. //{
  108. // status = false;
  109. // throw new MuchinfoException(ExceptionManager.ReqeustTimeOutError);
  110. //}
  111. //if (result.ReturnCode != 0)
  112. //{
  113. // status = false;
  114. // throw new MuchinfoException(result.ReturnCode, result.ReturnDesc, typeof(AnnouncementService));
  115. //}
  116. //else if (result.ReturnCode == 0)
  117. //{
  118. // status = true;
  119. //}
  120. //return status;
  121. #endregion
  122. }
  123. /// <summary>
  124. /// 交易客户端消息中心查询
  125. /// </summary>
  126. /// <param name="clientBMPar"></param>
  127. /// <param name="successAction"></param>
  128. /// <param name="errorAction"></param>
  129. public void QueryClientBM(QueryClientBMParam clientBMPar, Action<System.Collections.Generic.List<Announcement>> successAction, Action<Data.ErrorEntity> errorAction)
  130. {
  131. return;
  132. //if (clientBMPar.TradeAccount == null) return;
  133. //var tradeCacheData = UserManager.GetTradeCacheData(clientBMPar.TradeAccount.AccountId);
  134. //if (tradeCacheData == null) return;
  135. //var request = _announcementapter.ToRequestQueryClientBM(clientBMPar);
  136. //var packgage = new TCPPackage() { Content = request, FunCode = FuncCode.FID_QueryClientBMReq };
  137. //LinkManager.Instance.TradeTcpLinkProxy.SendPackage(packgage, new Action<TCPPackage>((revPackgage) =>
  138. //{
  139. // var responeEntity = _announcementapter.ToLocalQueryClientBM(revPackgage.Content);
  140. // if (responeEntity.RetCode == 0)
  141. // {
  142. // if (clientBMPar.MsgTypeEnum == MsgTypeEnum.Bulletin)
  143. // {
  144. // tradeCacheData.MessageAnnouncementOrders = responeEntity.Entity.ToObservableCollection();
  145. // }
  146. // else if(clientBMPar.MsgTypeEnum == MsgTypeEnum.NTF)
  147. // {
  148. // tradeCacheData.MessageNoticeOrders=responeEntity.Entity.ToObservableCollection();
  149. // }
  150. // successAction(responeEntity.Entity);
  151. // }
  152. // else
  153. // {
  154. // if (errorAction != null)
  155. // {
  156. // errorAction(new ErrorEntity()
  157. // {
  158. // ReturnCode = responeEntity.RetCode,
  159. // ReturnDesc = responeEntity.RetMessage
  160. // });
  161. // }
  162. // }
  163. //}), new Action<int, string>((errorCode, errorDesc) =>
  164. //{
  165. // ////通信错误
  166. // if (errorAction != null)
  167. // {
  168. // //RequestFunc = "消息中心查询"
  169. // errorAction(new ErrorEntity() { ReturnCode = errorCode, ReturnDesc = errorDesc, RequestFunc = Client_Resource.Resources_Service_QueryMessageCenter });
  170. // }
  171. //}));
  172. }
  173. /// <summary>
  174. /// 查询公告信息NEW
  175. /// </summary>
  176. /// <param name="successAction"></param>
  177. /// <param name="errorAction"></param>
  178. public void QueryNoticeMsg(List<QueryCommonParam> queryCommonParams, Action<PageInfo<NoticeMsg>> successAction, Action<ErrorEntity> errorAction, PageInfo<object> pageInfo)
  179. {
  180. //#if DEBUG
  181. //if (null != pageInfo)
  182. //{
  183. // var page = new PageInfo<NoticeMsg>()
  184. // {
  185. // TotalCount =10000,
  186. // RecordPerPage = pageInfo.RecordPerPage,
  187. // PageNumber = pageInfo.PageNumber,
  188. // };
  189. // var list = new List<NoticeMsg>();
  190. // for (int i = 0; i < 20; i++)
  191. // {
  192. // var notice = new NoticeMsg();
  193. // notice.TITLE = "MTP产品的基本规则";
  194. // notice.CONTENT = "为了提高小组的工作效率,让团队聚焦在产品交付上,保障公司的核心产品MTP研发的高效推进,就产品研发过程的一些基本规则进行定义。";
  195. // notice.END_DATE = DateTime.Now.AddHours(-50);
  196. // if (i%3 == 0)
  197. // {
  198. // notice.STATUS = (NoticeReadStatus)1;
  199. // }
  200. // else
  201. // {
  202. // notice.STATUS = 0;
  203. // }
  204. // list.Add(notice);
  205. // }
  206. // page.QueryResults = list;
  207. // if (successAction != null)
  208. // {
  209. // successAction(page);
  210. // }
  211. //}
  212. //return;
  213. //#endif
  214. QueryCommonHelper.QueryCommon(QueryStatement.QueryNoticeMsg, queryCommonParams, new Action<PageInfo<NoticeMsg>>((notice) =>
  215. {
  216. // notice = notice.OrderByDescending((item) => item.SCHEDULE_TIME).ToList();
  217. if (successAction != null)
  218. {
  219. successAction(notice);
  220. }
  221. }), (error) =>
  222. {
  223. if (errorAction != null)
  224. {
  225. //RequestFunc = "查询公告信息"
  226. error.RequestFunc = Client_Resource.Resources_Service_QueryNoticeMessage;
  227. errorAction(error);
  228. }
  229. }, pageInfo);
  230. }
  231. /// <summary>
  232. /// 查询通知信息NEW
  233. /// </summary>
  234. /// <param name="successAction"></param>
  235. /// <param name="errorAction"></param>
  236. public void QueryNotifyMsg(List<QueryCommonParam> queryCommonParams, Action<PageInfo<NoticeMsg>> successAction, Action<ErrorEntity> errorAction, PageInfo<object> pageInfo)
  237. {
  238. QueryCommonHelper.QueryCommon(QueryStatement.QueryNotifyMsg, queryCommonParams, new Action<PageInfo<NoticeMsg>>((notice) =>
  239. {
  240. // notice = notice.OrderByDescending((item) => item.RecordTime).ToList();
  241. if (successAction != null)
  242. {
  243. successAction(notice);
  244. }
  245. }), (error) =>
  246. {
  247. if (errorAction != null)
  248. {
  249. //RequestFunc = "查询通知信息"
  250. error.RequestFunc = Client_Resource.Resources_Service_QueryNotifyMessage;
  251. errorAction(error);
  252. }
  253. }, pageInfo);
  254. }
  255. /// <summary>
  256. /// 更新通知信息状态NEW
  257. /// </summary>
  258. /// <param name="successAction"></param>
  259. /// <param name="errorAction"></param>
  260. public void UpdateNoticeMsgStatus(TradeAccount tradeAccount, NoticeMsg notice, Action successAction, Action<ErrorEntity> errorAction)
  261. {
  262. return;
  263. //var reqeust = _announcementapter.ToReqeustModifyBulletinNotifyStatus(tradeAccount.AccountId, notice.MSG_ID, (int)MsgTypeEnum.Bulletin);
  264. //var packgage = new TCPPackage() { Content = reqeust, FunCode = FuncCode.FID_UpdMsgReadStatus };
  265. //LinkManager.Instance.TradeTcpLinkProxy.SendPackage(packgage, new Action<TCPPackage>((revPackgage) =>
  266. //{
  267. // ////不处理回应
  268. // if (successAction != null)
  269. // {
  270. // successAction();
  271. // }
  272. //}), null);
  273. }
  274. /// <summary>
  275. /// 更新公告信息状态NEW
  276. /// </summary>
  277. /// <param name="successAction"></param>
  278. /// <param name="errorAction"></param>
  279. public void UpdateNotifyMsgStatus(TradeAccount tradeAccount, NoticeMsg notify, Action successAction, Action<ErrorEntity> errorAction)
  280. {
  281. return;
  282. //var reqeust = _announcementapter.ToReqeustModifyBulletinNotifyStatus(tradeAccount.AccountId, notify.MSG_ID, (int)MsgTypeEnum.NTF);
  283. //var packgage = new TCPPackage() { Content = reqeust, FunCode = FuncCode.FID_UpdMsgReadStatus };
  284. //LinkManager.Instance.TradeTcpLinkProxy.SendPackage(packgage, new Action<TCPPackage>((revPackgage) =>
  285. //{
  286. // ////不处理回应
  287. // if (successAction != null)
  288. // {
  289. // successAction();
  290. // }
  291. //}), null);
  292. }
  293. public void QueryNoticeCount(uint accountId, Action<List<NoticeCount>> successAction, Action<ErrorEntity> errorAction)
  294. {
  295. var queryCommonParams = new List<QueryCommonParam>();
  296. queryCommonParams.Add(new QueryCommonParam() { ParamKey = "accountId", ParamValue = accountId + string.Empty });
  297. QueryCommonHelper.QueryCommon(QueryStatement.QueryNoticeCount, queryCommonParams, new Action<PageInfo<NoticeCount>>((noticeCount) =>
  298. {
  299. // notice = notice.OrderByDescending((item) => item.SCHEDULE_TIME).ToList();
  300. if (successAction != null)
  301. {
  302. successAction(noticeCount.QueryResults);
  303. }
  304. }), (error) =>
  305. {
  306. if (errorAction != null)
  307. {
  308. //RequestFunc = "查询公告信息"
  309. error.RequestFunc = Client_Resource.Resources_Service_QueryNoticeMessage;
  310. errorAction(error);
  311. }
  312. });
  313. }
  314. }
  315. }