package com.yidianling.uikit.custom.http import com.ydl.ydlcommon.base.config.YDL_DOMAIN import com.ydl.ydlcommon.base.config.YDL_DOMAIN_JAVA import com.ydl.ydlcommon.data.http.BaseAPIResponse import com.yidianling.im.bean.BusyBean import com.yidianling.im.bean.CanViewConsult import com.yidianling.im.bean.FirstQuestionBean import com.yidianling.uikit.custom.http.response.* import com.yidianling.uikit.custom.http.response.question.QuestionsInfoBean import io.reactivex.Observable import okhttp3.RequestBody import retrofit2.http.* /** * Created by xj on 2019/6/26. */ interface ServiceApi { //获取专家状态信息 @GET("chat/status") @Headers(YDL_DOMAIN + YDL_DOMAIN_JAVA) fun getDoctorChatStatus(@Query("doctorUid") doctorUid: Long): Observable<BaseAPIResponse<ChatStatusBean>> //获取专家状态信息 @GET("chat/assistant-online-status") @Headers(YDL_DOMAIN + YDL_DOMAIN_JAVA) fun getAssistantChatStatus(@Query("assistantUid") assistantUid: Long): Observable<BaseAPIResponse<Int>> //获取推荐专家列表信息 @GET("doctor/recommendSimilarListeners") @Headers(YDL_DOMAIN + YDL_DOMAIN_JAVA) fun getRecommendExpertList( @Query("doctorUid") doctorUid: Long, @Query("catName") catName: String, @Query( "limit" ) limit: Int ): Observable<BaseAPIResponse<ArrayList<RecommendExpertBean>>> //获取常用语 @POST("phrase/list") @Headers(YDL_DOMAIN + YDL_DOMAIN_JAVA) fun getCommonQuestionList(): Observable<BaseAPIResponse<List<CommonQuestionBean>>> //常用语的点击 @GET("phrase/count") @Headers(YDL_DOMAIN + YDL_DOMAIN_JAVA) fun sendCommonQuestionCount(@Query("id") id: String): Observable<BaseAPIResponse<Any>> //信息采集的问题 @GET("user/collect/list") @Headers(YDL_DOMAIN + YDL_DOMAIN_JAVA) fun userCollectList(): Observable<BaseAPIResponse<List<UserQuestInfoBean>>> //获取新用户收集的信息 @POST("user/getNewUserMes") @Headers(YDL_DOMAIN + YDL_DOMAIN_JAVA) fun getNewUserMes(@Body body: RequestBody): Observable<BaseAPIResponse<List<UserQuestInfoBean>>> //获取用户来源的信息 @GET("user/getExChannel") @Headers(YDL_DOMAIN + YDL_DOMAIN_JAVA) fun getUserSource(@Query("uid") uid: String): Observable<BaseAPIResponse<String>> //信息采集的问题 @POST("user/collect/submit") @Headers(YDL_DOMAIN + YDL_DOMAIN_JAVA) fun submitUserCollect(@Body body: RequestBody): Observable<BaseAPIResponse<Any>> //关注 @GET("consult/expert-page/toggle-follow") @Headers(YDL_DOMAIN + YDL_DOMAIN_JAVA) fun focus( @Query("doctorId") doctorId: String, @Query("status") status: String ): Observable<BaseAPIResponse<Any>> //服务列表 @GET("consult/expert-page/nproducts") @Headers(YDL_DOMAIN + YDL_DOMAIN_JAVA) fun serviceList(@Query("doctorId") doctorId: String): Observable<BaseAPIResponse<List<ServiceItemBean>>> //查询咨询师是否在繁忙状态 @GET("counselor/doctor/v1/doctor/isBusy") @Headers(YDL_DOMAIN + YDL_DOMAIN_JAVA) fun queryDoctorIsBusy(@Query("id") doctorId: String): Observable<BaseAPIResponse<BusyBean>> //获取输入框的hint内容 @GET("systemconfig/get-chat-view-config") @Headers(YDL_DOMAIN + YDL_DOMAIN_JAVA) fun getChatViewConfig(): Observable<BaseAPIResponse<SystemInfoBean>> //获取代运营关联的专家的信息 @GET("chat/get-source-doctor") @Headers(YDL_DOMAIN + YDL_DOMAIN_JAVA) //注意:这个接口返回的还有很多字段,但是暂时不需要,就先取这两个字段 fun getSourceDoctor( @Query("scene") scene: Int, @Query("userUid") userUid: String, @Query("assistantUid") assistantUid: String ): Observable<BaseAPIResponse<SourceDoctorInfoBean>> //新版前置信息收集 客户端灵犀信息收集卡题库 @GET("cms/exam/api/v1/exams/lingxi/pre-exam-question-paper") @Headers(YDL_DOMAIN + YDL_DOMAIN_JAVA) //注意:这个接口返回的还有很多字段,但是暂时不需要,就先取这两个字段 fun preExamQuestionPaper(): Observable<BaseAPIResponse<QuestionsInfoBean>> //创建答题信息 @POST("cms/exam/api/v1/exams") @Headers(YDL_DOMAIN + YDL_DOMAIN_JAVA) fun createEexams(@Body body: RequestBody): Observable<BaseAPIResponse<String>> //答题 @POST("cms/exam/api/v1/exams/{id}/lingxi/answer-question") @Headers(YDL_DOMAIN + YDL_DOMAIN_JAVA) fun answerQuestion(@Path("id") id: String, @Body body: RequestBody): Observable<BaseAPIResponse<String>> /** * 获取首问语 */ @POST("dmp/v1/clouddata/schemas/lingxi_quick_replies/query") @Headers(YDL_DOMAIN + YDL_DOMAIN_JAVA,"X-App-Id: crm_cloud") fun getFirstQuestion( @Body map: Map<String,@JvmSuppressWildcards Any>): Observable<BaseAPIResponse<FirstQuestionBean>> //倾诉2.0迭代 是否显示立即咨询按钮 @GET("consult/expert-page/canViewConsult") @Headers(YDL_DOMAIN + YDL_DOMAIN_JAVA) fun canViewConsult(@Query("doctorId") doctorId: String): Observable<BaseAPIResponse<CanViewConsult>> }