RequestApi.java 9.28 KB

/*
 * Copyright (c) Wondertek Technologies Co., Ltd. 2019-2022. All rights reserved.
 */

package com.wd.common.api;


import com.wd.capability.network.response.BaseResponse;
import com.wd.foundation.bean.comment.DisplayWorkInfoBean;
import com.wd.foundation.bean.custom.comp.CompBean;
import com.wd.foundation.bean.custom.comp.GroupBean;
import com.wd.foundation.bean.custom.comp.PageBean;
import com.wd.foundation.bean.live.RoomDataBean;
import com.wd.foundation.bean.paper.PaperBean;
import com.wd.foundation.bean.paper.PaperNumInforListBean;
import com.wd.foundation.bean.response.AreaTreeselectBean;
import com.wd.foundation.bean.response.BottomNavBean;
import com.wd.foundation.bean.response.ContentPageListBean;
import com.wd.foundation.bean.response.FollowBean;
import com.wd.foundation.bean.response.FollowListIndexBean;
import com.wd.foundation.bean.response.FollowWorksBean;
import com.wd.foundation.bean.response.LiveStatusBean;
import com.wd.foundation.bean.response.MasterFollowsStatusBean;
import com.wd.foundation.bean.response.PageTopNavBean;
import com.wd.foundation.bean.response.PersonalInfoBean;
import com.wd.foundation.bean.response.VideoItemBean;

import java.util.List;
import java.util.Map;

import io.reactivex.Observable;
import okhttp3.RequestBody;
import okhttp3.ResponseBody;
import retrofit2.http.Body;
import retrofit2.http.GET;
import retrofit2.http.Headers;
import retrofit2.http.POST;
import retrofit2.http.Query;
import retrofit2.http.QueryMap;

/**
 * 请求的接口
 *
 * @author shishuagnxi
 */
public interface RequestApi {
    /**
     * 底部导航栏列表接口,底部导航栏
     */
    @GET("api/rmrb-bff-display-zh/display/zh/c/bottomNavGroup")
    Observable<BaseResponse<BottomNavBean>> getBottomNavGroup();


    /**
     * 根据底部导航栏id获取导航栏信息,头部频道
     */
    @GET("api/rmrb-bff-display-zh/display/zh/c/bottomNavGroup/detail")
    Observable<BaseResponse<PageTopNavBean>> getTopNavDetail(@QueryMap Map<String, Object> map);


    /**
     * 根据底部导航栏id获取导航栏信息V1.0--除默认启动时间线频道第一页情况外使用
     */
    @GET("api/rmrb-bff-display-zh/display/zh/c/pageInfo")
    Observable<BaseResponse<PageBean>> getPageData(@QueryMap Map<String, Object> map);

    /**
     * 根据底部导航栏id获取导航栏信息V1.0---热点频道第一页数据使用该接口,pageInfo合并了compInfo数据
     */
    @GET("api/rmrb-bff-display-zh/display/zh/c/pageInfo/v2")
    Observable<BaseResponse<PageBean>> getPageDataV2(@QueryMap Map<String, Object> map);

    /**
     * 根据楼层Id获取组件节目信息V1.0,【推荐频道】
     */
    @GET("api/rmrb-bff-display-zh/display/zh/c/rec/compInfo")
    Observable<BaseResponse<GroupBean>> getRecGroupData(@QueryMap Map<String, Object> map);


    /**
     * 根据楼层Id获取组件节目信息V1.0
     */
    @GET("api/rmrb-bff-display-zh/display/zh/c/compInfo")
    Observable<BaseResponse<GroupBean>> getGroupData(@QueryMap Map<String, Object> map);

    /**
     * 一级沉浸式视频推荐
     * 4.2 视频分页列表
     */
    @GET("prod-api/content/content/list")
    Observable<BaseResponse<List<VideoItemBean>>> getImmersiveRecommend(@QueryMap Map<String, Object> map);

    /**
     * 一级二级 批量查询视频详情
     * ids	number []
     * 点播播放详情批量查询
     */
    @POST("prod-api/content/content/detail")
    Observable<BaseResponse<List<VideoItemBean>>> getBatchShortPlayDetail(@Body RequestBody body);
    /**
     * 一级二级 查询单个视频详情
     */

    @GET("prod-api/content/content/{id}")
    Observable<BaseResponse<VideoItemBean>> getShortPlayDetail(@Query("Id") String Id);
    /**
     * 二级 推荐数据列表
     */
    @GET("prod-api/content/content/current/list")
    Observable<BaseResponse<List<VideoItemBean>>> getRecommendList(@QueryMap Map<String, Object> map);



    /**
     * 获取指定日期电子报版面信息
     *
     * @return
     */
    @GET("api/rmrb-bff-display-zh/display/zh/c/paperApi/paperTime")
    Observable<BaseResponse<List<PaperNumInforListBean>>> paperTime(@QueryMap Map<String, Object> map);


    /**
     * 获取电子报版面数据
     *
     * @return
     */
    @GET("api/rmrb-bff-display-zh/display/zh/c/paperApi/paperList")
    Observable<BaseResponse<PaperBean>> paperList(@QueryMap Map<String, Object> map);

    /**
     * 获取电子报版面数据-查询最近一期电子报的首个版面信息
     *
     * @return
     */
    @GET("api/rmrb-bff-display-zh/display/zh/c/paperApi/firstPaper")
    Observable<BaseResponse<PaperBean>> firstPaperList(@QueryMap Map<String, Object> map);

    /**
     * 一键读报
     *
     * @return
     */
    @GET("api/rmrb-bff-display-zh/content/zh/c/newsPaper/read")
    Observable<BaseResponse<ContentPageListBean>> oneKeyRead(@QueryMap Map<String, Object> map);

    /**
     * 获取已发布默认词
     */
    @GET("api/rmrb-search-api/zh/c/hints")
    Observable<BaseResponse<List<String>>> getSearchHints();

    /**
     * 兴趣标签卡选择标签
     * @param body
     * @return
     */
    @POST("api/rmrb-user-center/user/zh/c/tag/updateUserTagWord")
    Observable<BaseResponse<Object>> updateUserTagWord(@Body RequestBody body);

    /**
     * 直播内容回顾、预约组件-更多(预约列表)
     *
     * @return
     */
    @GET("api/rmrb-bff-display-zh/display/zh/c/channel/live/reviewList")
    Observable<BaseResponse<ContentPageListBean>> queryLiveChannelReviewList(@QueryMap Map<String, Object> map);

    /**
     * 直播月度排行列表
     *
     * @return
     */
    @GET("api/rmrb-bff-display-zh/display/zh/c/channel/live/browseList")
    Observable<BaseResponse<ContentPageListBean>> queryLiveChannelBrowseList(@QueryMap Map<String, Object> map);

    /**
     * 直播频道直播列表
     *
     * @return
     */
    @GET("api/rmrb-bff-display-zh/display/zh/c/channel/live/list")
    Observable<BaseResponse<ContentPageListBean>> queryLiveChannelList(@QueryMap Map<String, Object> map);

    /**
     * 批查直播状态
     *
     * @param liveIds
     * @return
     */
    @GET("api/rmrb-bff-content/b/zh/content/c/liveRoom/batch/liveStatus")
    Observable<BaseResponse<List<LiveStatusBean>>> getLiveStatus(@Query("liveIds") String liveIds);

    /**
     * 获取行政区
     */
    @Headers({"urlname:https://restapi.amap.com/"})
    @GET("v3/config/district")
    Observable<ResponseBody> getDistrictData(@QueryMap Map<String, Object> map);
    /**
     * 中文端的
     */
    @GET("api/rmrb-content-center/c/service/sys-area/treeselect")
    Observable<BaseResponse<List<AreaTreeselectBean>>> getAreaReveal(@Query("md5") String md5);

    /**
     * 获取二级地理信息
     * @return
     */
    @GET("api/rmrb-content-center/zh/c/sys-area/treeList")
    Observable<BaseResponse<List<AreaTreeselectBean>>> getTreeList();


    /**
     * (关注/取消关注)
     */
    @POST("api/rmrb-interact/interact/zh/c/attention/operation")
    Observable<BaseResponse<Object>> postFocusUser(@Body RequestBody body);


    /**
     * 一键关注接口
     */
    @POST("api/rmrb-interact/interact/zh/c/attention/batch")
    Observable<BaseResponse<Object>> batchAttention(@Body RequestBody body);

    /**
     * 批量查询创作者的关注状态
     *
     * @param map
     * @return
     */
    @POST("api/rmrb-interact/interact/zh/c/batchAttention/status")
    Observable<BaseResponse<List<MasterFollowsStatusBean>>> getBatchAttentionStatus(@Body RequestBody map);

    /**
     * 我的关注列表查询
     * @param map
     */
    @GET("api/rmrb-interact/interact/zh/c/attention/list")
    Observable<BaseResponse<FollowListIndexBean>> getAttentionList(@QueryMap Map<String, Object> map);
    /**
     * 客态查看别人的关注列表
     * @param map
     * @return
     */
    @GET("api/rmrb-interact/interact/zh/c/userAttention/list")
    Observable<BaseResponse<FollowListIndexBean>> getUserAttentionList(@QueryMap Map<String, Object> map);

    /**
     *  人民号关注页面 --人民号号主推荐
     *
     * @return
     */
    @POST("api/rmrb-bff-display-zh/recommend/zh/c/rmh")
    Observable<BaseResponse<List<FollowBean>>> recommendMaterList(@Body RequestBody map);

    /**
     * 我关注的创作者发布的内容列表查询
     *
     * @return
     */
    @POST("api/rmrb-bff-display-zh/content/zh/c/attention/contentList")
    Observable<BaseResponse<FollowWorksBean>> contentList(@Body RequestBody map);


    /**
     * 批量查询当前内容——用户点赞、收藏状态
     */
    @POST("api/rmrb-interact/interact/zh/c/batchLikeAndCollect/status")
    Observable<BaseResponse<List<DisplayWorkInfoBean>>> batchLikeAndCollectStatus(@Body RequestBody body);

    /**
     * C端批量查询直播信息
     */
    @GET("api/live-center-message/zh/a/live/room/number/batch/all")
    Observable<BaseResponse<List<RoomDataBean>>> getRoomBatchData(@QueryMap Map<String, Object> map);

    /**
     * 批量查询创作者信息
     */
    @POST("api/rmrb-contact/contact/zh/c/master/detailList")
    Observable<BaseResponse<List<PersonalInfoBean>>> getMasterInfoListData(@Body() RequestBody body);


    /**
     * 本地问政卡刷新接口
     */
    @GET("api/rmrb-bff-display-zh/display/zh/c/compInfo/localAsk")
    Observable<BaseResponse<CompBean>> localAsk(@QueryMap Map<String, Object> map);

}