IMApi.java 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198
  1. package com.cooleshow.chatmodule.api;
  2. import com.cooleshow.base.common.BaseConstant;
  3. import com.cooleshow.base.data.net.BaseResponse;
  4. import com.cooleshow.chatmodule.bean.ContactListBean;
  5. import com.cooleshow.chatmodule.bean.ContactRoomListBean;
  6. import com.cooleshow.chatmodule.bean.GroupApplyBean;
  7. import com.cooleshow.chatmodule.bean.GroupMemberBean;
  8. import com.cooleshow.chatmodule.bean.GroupNoticeBean;
  9. import com.cooleshow.chatmodule.bean.IMGroupInfo;
  10. import com.cooleshow.chatmodule.bean.IMUserInfo;
  11. import com.cooleshow.chatmodule.bean.MusicSheetListBean;
  12. import java.util.List;
  13. import io.reactivex.rxjava3.core.Observable;
  14. import okhttp3.RequestBody;
  15. import retrofit2.http.Body;
  16. import retrofit2.http.Field;
  17. import retrofit2.http.FormUrlEncoded;
  18. import retrofit2.http.GET;
  19. import retrofit2.http.POST;
  20. import retrofit2.http.Path;
  21. import retrofit2.http.Query;
  22. import static com.cooleshow.base.common.BaseConstant.TEACHER_GROUP;
  23. /**
  24. * Author by pq, Date on 2023/6/25.
  25. */
  26. public interface IMApi {
  27. /**
  28. * 退出群组
  29. *
  30. * @param
  31. * @return
  32. */
  33. @POST("{group_name}" + "/imGroup/quit/{groupId}")
  34. Observable<BaseResponse<Object>> quitChatGroup(@Path("groupId") String groupId,@Path("group_name")String group_name);
  35. /**
  36. * 解散群组
  37. *
  38. * @param
  39. * @return
  40. */
  41. @POST("{group_name}" + "/imGroup/dismiss/{groupId}")
  42. Observable<BaseResponse<Object>> dissolveChatGroup(@Path("groupId") String groupId,@Path("group_name")String group_name);
  43. /**
  44. * 查询群详情
  45. *
  46. * @returnClassListAdapter
  47. */
  48. @POST("{group_name}" + "/imGroup/getDetail/{groupId}")
  49. Observable<BaseResponse<IMGroupInfo>> queryGroupDetail(@Path("groupId") String groupId,@Path("group_name")String group_name);
  50. /**
  51. * 获取群成员列表-学员
  52. *
  53. * @param body
  54. * @return
  55. */
  56. @POST("{group_name}" + "/imGroupMember/queryAll")
  57. Observable<BaseResponse<List<GroupMemberBean>>> queryGroupAllMembers(@Body RequestBody body,@Path("group_name")String group_name);
  58. /**
  59. * 群公告-学生
  60. *
  61. * @param body
  62. * @return
  63. */
  64. @POST("{group_name}" + "/imGroupNotice/queryPage")
  65. Observable<BaseResponse<GroupNoticeBean>> queryTeaGroupNotice(@Body RequestBody body,@Path("group_name")String group_name);
  66. /**
  67. * 修改群公告
  68. *
  69. * @param body
  70. * @return
  71. */
  72. @POST("{group_name}" + "/imGroupNotice/update")
  73. Observable<BaseResponse<Object>> updateGroupNotice(@Body RequestBody body,@Path("group_name")String group_name);
  74. /**
  75. * 修改群公告
  76. *
  77. * @return
  78. */
  79. @FormUrlEncoded
  80. @POST("{group_name}" + "/imGroupNotice/remove")
  81. Observable<BaseResponse<String>> noticeDel(@Field("id") String id,@Path("group_name")String group_name);
  82. /**
  83. * 群公告详情
  84. *
  85. * @return
  86. */
  87. @GET("{group_name}" + "/imGroupNotice/get/{id}")
  88. Observable<BaseResponse<GroupNoticeBean.RowsBean>> noticeDetail(@Path("group_name") String group_name,@Path("id") String id);
  89. /**
  90. * 新增群公告
  91. *
  92. * @param body
  93. * @return
  94. */
  95. @POST("{group_name}" + "/imGroupNotice/create")
  96. Observable<BaseResponse<Object>> createGroupNotice(@Body RequestBody body, @Path("group_name") String group_name);
  97. /**
  98. * @param body
  99. * @return
  100. */
  101. @POST("{group_name}" + "/sysImComplaint/add")
  102. Observable<BaseResponse<Object>> sysImComplaint(@Body RequestBody body,@Path("group_name")String group_name);
  103. /**
  104. * 群列表-学员
  105. *
  106. * @return
  107. */
  108. @POST("{group_name}" + "/imGroup/queryAll")
  109. Observable<BaseResponse<List<ContactRoomListBean>>> queryGroupList(@Body RequestBody requestBody, @Path("group_name") String group_name);
  110. /**
  111. * 获取好友列表-学员
  112. *
  113. * @return
  114. */
  115. @POST("{group_name}" + "/imUserFriend/queryAll")
  116. Observable<BaseResponse<List<ContactListBean>>> queryFriendList(@Body RequestBody requestBody,@Path("group_name") String group_name);
  117. /**
  118. * 申请入群列表
  119. *
  120. * @param body
  121. * @return
  122. */
  123. @POST("{group_name}" + "/imGroupMemberAudit/queryAll")
  124. Observable<BaseResponse<List<GroupApplyBean>>> groupApplyList(@Body RequestBody body,@Path("group_name")String group_name);
  125. /**
  126. * 申请入群批量审核
  127. *
  128. * @param body
  129. * @return
  130. */
  131. @POST("{group_name}" + "/imGroupMemberAudit/applyAudit")
  132. Observable<BaseResponse<Object>> doGroupApply(@Body RequestBody body,@Path("group_name")String group_name);
  133. /**
  134. * 分页查询分页查询
  135. *
  136. * @param body
  137. * @return
  138. */
  139. @POST("{group_name}" + "/music/sheet/list")
  140. Observable<BaseResponse<MusicSheetListBean>> queryMusicList(@Body RequestBody body,@Path("group_name")String group_name);
  141. /**
  142. * 创建粉丝群
  143. *
  144. * @param body
  145. * @return
  146. */
  147. @POST(TEACHER_GROUP + "imGroup/create/v2")
  148. Observable<BaseResponse<Object>> createImGroup(@Body RequestBody body);
  149. @POST("{group_name}" + "/imGroup/addGroupMember/v2")
  150. Observable<BaseResponse<Object>> addGroupMembers(@Body RequestBody body,@Path("group_name")String group_name);
  151. /**
  152. * 修改群信息
  153. *
  154. * @param body
  155. * @return
  156. */
  157. @POST(TEACHER_GROUP + "imGroup/update")
  158. Observable<BaseResponse<Object>> updateGroupInfo(@Body RequestBody body);
  159. @POST("{group_name}" + "/imGroupMember/groupMute")
  160. Observable<BaseResponse<Object>> groupMemberMute(@Body RequestBody body,@Path("group_name")String group_name);
  161. @POST("{group_name}" + "/imGroup/muteAll")
  162. Observable<BaseResponse<Object>> groupMute(@Body RequestBody body,@Path("group_name")String group_name);
  163. /**
  164. * 根据用户编号获取用户基本信息-老师
  165. *
  166. * @param userId
  167. * @return
  168. */
  169. @POST("{group_name}" + "/imUserFriend/getDetail/{imUserId}")
  170. Observable<BaseResponse<IMUserInfo>> queryFriendDetail(@Path("group_name")String group_name,@Path("imUserId") String imUserId);
  171. }