You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

160 lines
5.2 KiB

  1. using Learun.Application.IM;
  2. using Learun.Util;
  3. using System.Web.Mvc;
  4. namespace Learun.Application.Web.Areas.LR_IM.Controllers
  5. {
  6. /// <summary>
  7. /// 版 本 Learun-ADMS-Ultimate V7.0.0 数字化智慧校园
  8. /// Copyright (c) 2013-2018 北京泉江科技有限公司
  9. /// 创 建:超级管理员
  10. /// 日 期:2018-05-24 10:00
  11. /// 描 述:即时通讯
  12. /// </summary>
  13. public class IMMsgController : MvcControllerBase
  14. {
  15. private IMMsgIBLL iMMsgIBLL = new IMMsgBLL();
  16. private IMSysUserIBLL iMSysUserIBLL = new IMSysUserBLL();
  17. private IMContactsIBLL iMContactsIBLL = new IMContactsBLL();
  18. #region 视图功能
  19. /// <summary>
  20. /// 聊天记录
  21. /// <summary>
  22. /// <returns></returns>
  23. [HttpGet]
  24. public ActionResult Index()
  25. {
  26. return View();
  27. }
  28. #endregion
  29. #region 获取数据
  30. /// <summary>
  31. /// 获取列表数据(消息的最近10条数据)
  32. /// <summary>
  33. /// <param name="userId">对方用户ID</param>
  34. /// <returns></returns>
  35. [HttpGet]
  36. [AjaxOnly]
  37. public ActionResult GetMsgList(string userId)
  38. {
  39. UserInfo userInfo = LoginUserInfo.Get();
  40. var data = iMMsgIBLL.GetList(userInfo.userId, userId);
  41. return JsonResult(data);
  42. }
  43. /// <summary>
  44. /// 获取列表分页数据(消息列表)
  45. /// <summary>
  46. /// <param name="pagination">分页参数</param>
  47. /// <param name="userId">对方用户ID</param>
  48. /// <param name="keyWord">查询关键字</param>
  49. /// <returns></returns>
  50. [HttpGet]
  51. [AjaxOnly]
  52. public ActionResult GetMsgPageList(string pagination, string userId, string keyWord)
  53. {
  54. Pagination paginationobj = pagination.ToObject<Pagination>();
  55. UserInfo userInfo = LoginUserInfo.Get();
  56. var data = iMMsgIBLL.GetPageList(paginationobj, userInfo.userId, userId, keyWord);
  57. var jsonData = new
  58. {
  59. rows = data,
  60. total = paginationobj.total,
  61. page = paginationobj.page,
  62. records = paginationobj.records
  63. };
  64. return JsonResult(jsonData);
  65. }
  66. /// <summary>
  67. /// 获取最近联系人列表
  68. /// <summary>
  69. /// <returns></returns>
  70. [HttpGet]
  71. [AjaxOnly]
  72. public ActionResult GetContactsList()
  73. {
  74. UserInfo userInfo = LoginUserInfo.Get();
  75. var sysUserList = iMSysUserIBLL.GetList("");
  76. var data = iMContactsIBLL.GetList(userInfo.userId);
  77. var jsonData = new
  78. {
  79. data,
  80. sysUserList
  81. };
  82. return Success(jsonData);
  83. }
  84. #endregion
  85. #region 提交数据
  86. /// <summary>
  87. /// 保存实体数据(新增、修改)
  88. /// <param name="userId">接收方用户id</param>
  89. /// <param name="content">消息内容</param>
  90. /// <param name="content">是否是系统消息:0不是,1是</param>
  91. /// <summary>
  92. /// <returns></returns>
  93. [HttpPost]
  94. [AjaxOnly]
  95. //public ActionResult SendMsg(string userId, string content, int isSystem)
  96. public ActionResult SendMsg(string userId, string content)
  97. {
  98. UserInfo userInfo = LoginUserInfo.Get();
  99. IMMsgEntity entity = new IMMsgEntity();
  100. entity.F_SendUserId = userInfo.userId;
  101. entity.F_RecvUserId = userId;
  102. entity.F_Content = content;
  103. //entity.F_IsSystem = isSystem;
  104. iMMsgIBLL.SaveEntity(entity);
  105. return Success("保存成功!");
  106. }
  107. /// <summary>
  108. /// 添加一条最近的联系人
  109. /// </summary>
  110. /// <param name="otherUserId">对方用户Id</param>
  111. /// <returns></returns>
  112. [HttpPost]
  113. [AjaxOnly]
  114. public ActionResult AddContact(string otherUserId)
  115. {
  116. IMContactsEntity entity = new IMContactsEntity();
  117. UserInfo userInfo = LoginUserInfo.Get();
  118. entity.F_MyUserId = userInfo.userId;
  119. entity.F_OtherUserId = otherUserId;
  120. iMContactsIBLL.SaveEntity(entity);
  121. return Success("保存成功!");
  122. }
  123. /// <summary>
  124. /// 移除一个最近的联系人
  125. /// </summary>
  126. /// <returns></returns>
  127. [HttpPost]
  128. [AjaxOnly]
  129. public ActionResult RemoveContact(string otherUserId)
  130. {
  131. UserInfo userInfo = LoginUserInfo.Get();
  132. iMContactsIBLL.DeleteEntity(userInfo.userId, otherUserId);
  133. return Success("移除成功!");
  134. }
  135. /// <summary>
  136. /// 更新联系人消息读取状态
  137. /// </summary>
  138. /// <param name="otherUserId"></param>
  139. /// <returns></returns>
  140. [HttpPost]
  141. [AjaxOnly]
  142. public ActionResult UpdateContactState(string otherUserId)
  143. {
  144. UserInfo userInfo = LoginUserInfo.Get();
  145. iMContactsIBLL.UpdateState(userInfo.userId, otherUserId);
  146. return Success("保存成功!");
  147. }
  148. #endregion
  149. }
  150. }