MessageController.php 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221
  1. <?php
  2. namespace App\Http\Controllers\Api\v1;
  3. use App\Http\Controllers\Api\webApp;
  4. use App\Services\Api\ImChatService;
  5. use App\Services\Api\MemberSettingService;
  6. use App\Services\Api\MessageService;
  7. use App\Services\ZegoService;
  8. /**
  9. * 消息管理
  10. * Class MessageController
  11. * @package App\Http\Controllers\Api
  12. */
  13. class MessageController extends webApp
  14. {
  15. /**
  16. * 站内消息窗口记录
  17. * @return array
  18. */
  19. public function index()
  20. {
  21. $datas = MessageService::make()->getGroupList($this->userId);
  22. return message(1010, true, $datas);
  23. }
  24. /**
  25. * 站内推送消息历史
  26. * @return array|mixed
  27. */
  28. public function history()
  29. {
  30. $params = request()->post();
  31. $pageSize = request()->post('pageSize', 20);
  32. $datas = MessageService::make()->getDataList($this->userId, $params, $pageSize);
  33. return message(1010, true, $datas);
  34. }
  35. /**
  36. * 聊天列表
  37. * @return array
  38. */
  39. public function chat()
  40. {
  41. $params = request()->post();
  42. $pageSize = request()->post('pageSize', 20);
  43. $datas = ImChatService::make()->getDataListFromatKey($this->userId, $params, $pageSize);
  44. return message(1010, true, $datas);
  45. }
  46. /**
  47. * 消息历史
  48. * @return array
  49. */
  50. public function chatHistory()
  51. {
  52. $params = request()->post();
  53. $pageSize = request()->post('pageSize', 20);
  54. $datas = ImChatService::make()->getDataList($this->userId, $params, $pageSize);
  55. return message(1010, true, $datas);
  56. }
  57. /**
  58. * 消息参数
  59. * @return array
  60. */
  61. public function getSetting()
  62. {
  63. $datas = MemberSettingService::make()->getSetting($this->userId);
  64. if(empty($datas)){
  65. $datas = [
  66. 'receive_app'=> 1,
  67. 'receive_custom'=> 1,
  68. 'receive_order'=> 1,
  69. 'receive_account'=> 1,
  70. ];
  71. }
  72. return message(1010, true, $datas);
  73. }
  74. /**
  75. * 修改消息设置参数
  76. * @return array
  77. */
  78. public function setSetting()
  79. {
  80. $params = request()->post();
  81. if(!$result = MemberSettingService::make()->setMsgData($this->userId, $params)){
  82. return message(1020, false);
  83. }else{
  84. return message(1019, true);
  85. }
  86. }
  87. /**
  88. * 设置已读
  89. * @return array
  90. */
  91. public function setRead()
  92. {
  93. $chatKey = request()->post('chat_key','');
  94. $type = request()->post('type',1);
  95. $msgType = request()->post('msg_type',1);
  96. if($type == 1){
  97. if(!$result = MessageService::make()->setRead($this->userId, $msgType)){
  98. return message(1020, false);
  99. }else{
  100. return message(1019, true);
  101. }
  102. }else if($type == 2){
  103. if(!$result = ImChatService::make()->setRead($this->userId, $chatKey)){
  104. return message(1020, false);
  105. }else{
  106. return message(1019, true);
  107. }
  108. }
  109. return message(1020, false);
  110. }
  111. /**
  112. * 隐藏
  113. * @return array
  114. */
  115. public function setHide()
  116. {
  117. $chatKey = request()->post('chat_key','');
  118. $type = request()->post('type',1);
  119. $msgType = request()->post('msg_type',1);
  120. if($type == 1){
  121. if(!$result = MessageService::make()->setHide($this->userId, $msgType)){
  122. return message(1020, false);
  123. }else{
  124. return message(1019, true);
  125. }
  126. }else if($type == 2){
  127. if(!$result = ImChatService::make()->setHide($this->userId, $chatKey)){
  128. return message(1020, false);
  129. }else{
  130. return message(1019, true);
  131. }
  132. }
  133. return message(1020, false);
  134. }
  135. /**
  136. * 聊天清除消息历史
  137. * @return array
  138. */
  139. public function clear()
  140. {
  141. $chatKey = request()->post('chat_key','');
  142. $type = request()->post('type', 1);
  143. $msgType = request()->post('msg_type', 1);
  144. if($type == 1){
  145. if(!$result = MessageService::make()->clear($this->userId, $msgType)){
  146. return message(1003, false);
  147. }else{
  148. return message(1002, true);
  149. }
  150. }else if ($type == 2){
  151. if(!$result = ImChatService::make()->clear($this->userId, $chatKey)){
  152. return message(1003, false);
  153. }else{
  154. return message(1002, true);
  155. }
  156. }
  157. return message(1003, false);
  158. }
  159. /**
  160. * 聊天清除消息历史
  161. * @return array
  162. */
  163. public function clearAll()
  164. {
  165. $type = request()->post('type', 1);
  166. if(!$result = ImChatService::make()->clearAll($this->userId, $type)){
  167. return message(1003, false);
  168. }else{
  169. return message(1002, true);
  170. }
  171. }
  172. /**
  173. * 获取token
  174. * @return array
  175. */
  176. public function getToken()
  177. {
  178. $token = ZegoService::make()->getToken();
  179. return message(1010, true, $token);
  180. }
  181. /**
  182. * 获取token
  183. * @return array
  184. */
  185. public function loginRoom()
  186. {
  187. $roomId = request()->post('roomId', '');
  188. $toUserId = request()->post('userId', 0);
  189. $token = ZegoService::make()->loginRoom($this->userId, $toUserId, $roomId);
  190. return message(1010, true, $token);
  191. }
  192. /**
  193. * 计算聊天消息
  194. * @return array
  195. */
  196. public function chatCount()
  197. {
  198. $userId = request()->post('id',0);
  199. $result = ImChatService::make()->getCount($userId);
  200. return message(1010, true, $result);
  201. }
  202. }