fix:调整榜单的请求接口改为retrofit2模块

fix:调整榜单实体类为IMLoginModel而非UserBean
add:网络请求接口允许配置是否默认添加uid参数*榜单接口需求
This commit is contained in:
2022-08-22 13:53:38 +08:00
parent 5ef2015715
commit e65f0fe0ce
13 changed files with 272 additions and 37 deletions

View File

@@ -28,12 +28,10 @@ import com.yunbao.common.bean.UserBean;
import com.yunbao.common.glide.ImgLoader;
import com.yunbao.common.utils.CommonIconUtil;
import com.yunbao.common.utils.DpUtil;
import com.yunbao.common.utils.RandomUtil;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.live.R;
import com.yunbao.live.activity.LiveActivity;
import com.yunbao.live.bean.LiveUserGiftBean;
import com.yunbao.live.bean.LiveUserRankBean;
import com.yunbao.common.bean.LiveUserRankBean;
import com.yunbao.live.dialog.LiveUserMoreDialogFragment;
import java.net.MalformedURLException;

View File

@@ -1,56 +0,0 @@
package com.yunbao.live.bean;
import com.yunbao.common.bean.UserBean;
/**
* Created by zlzw on 2022/8/20.
* 直播间榜单实体类
*/
public class LiveUserRankBean extends UserBean {
private long total;
public long getTotal() {
return total;
}
public void setTotal(long total) {
this.total = total;
}
@Override
public String toString() {
return "LiveUserRankBean{" +
"id='" + id + '\'' +
", userNiceName='" + userNiceName + '\'' +
", avatar='" + avatar + '\'' +
", avatarThumb='" + avatarThumb + '\'' +
", sex=" + sex +
", signature='" + signature + '\'' +
", coin='" + coin + '\'' +
", gold='" + gold + '\'' +
", votes='" + votes + '\'' +
", consumption='" + consumption + '\'' +
", votestotal='" + votestotal + '\'' +
", province='" + province + '\'' +
", city='" + city + '\'' +
", location='" + location + '\'' +
", birthday='" + birthday + '\'' +
", level=" + level +
", levelAnchor=" + levelAnchor +
", lives=" + lives +
", follows=" + follows +
", fans=" + fans +
", vip=" + vip +
", liang=" + liang +
", car=" + car +
", medal_level=" + medal_level +
", medal_name='" + medal_name + '\'' +
", Dress=" + Dress +
", noble_id='" + noble_id + '\'' +
", yuanbao='" + yuanbao + '\'' +
", total=" + total +
'}';
}
}

View File

@@ -3,8 +3,6 @@ package com.yunbao.live.dialog;
import android.app.ActionBar;
import android.graphics.Color;
import android.os.Bundle;
import androidx.annotation.Nullable;
import androidx.recyclerview.widget.LinearLayoutManager;
import android.util.Log;
import android.view.Gravity;
import android.view.View;
@@ -14,14 +12,20 @@ import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.TextView;
import androidx.annotation.Nullable;
import androidx.recyclerview.widget.LinearLayoutManager;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.yunbao.common.Constants;
import com.yunbao.common.adapter.RefreshAdapter;
import com.yunbao.common.bean.LiveUserRankBean;
import com.yunbao.common.bean.UserBean;
import com.yunbao.common.bean.UserRankModel;
import com.yunbao.common.custom.CommonRefreshView;
import com.yunbao.common.dialog.AbsDialogFragment;
import com.yunbao.common.http.API;
import com.yunbao.common.http.HttpCallback;
import com.yunbao.common.utils.DpUtil;
import com.yunbao.live.R;
@@ -29,12 +33,14 @@ import com.yunbao.live.activity.LiveActivity;
import com.yunbao.live.adapter.UserMoreInfoAdapter;
import com.yunbao.live.bean.LiveGuardInfo;
import com.yunbao.live.bean.LiveUserGiftBean;
import com.yunbao.live.bean.LiveUserRankBean;
import com.yunbao.live.http.LiveHttpUtil;
import java.util.ArrayList;
import java.util.List;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.schedulers.Schedulers;
/**
* 观看直播的人 列表
*/
@@ -203,9 +209,20 @@ public class LiveUserMoreDialogFragment extends AbsDialogFragment implements Vie
public void loadData(int p, HttpCallback callback) {
Log.i("tag111", p + "ssss");
if(isRank()){
LiveHttpUtil.getUserRankList(mLiveUid,callback);
//榜单没有分页需求
mRefreshView.setPageCount(1);
/**
* 榜单接口的uid为直播间ID并不是也不需要用户uid
*/
API.get().createPDLiveApi(false).getRanksList(mLiveUid)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(listResponseModel -> {
UserRankModel data = listResponseModel.getData().getData();
//获取到参数后手动调用成功方法
callback.onSuccess(0,"",new String[]{JSONObject.toJSONString(data)});
}, throwable -> {
throwable.printStackTrace();
callback.onError();
}).isDisposed();
}else {
LiveHttpUtil.getUserList(mLiveUid, stream, type, p, callback);
pg = p;
@@ -269,8 +286,11 @@ public class LiveUserMoreDialogFragment extends AbsDialogFragment implements Vie
return data;
}
private List<LiveUserRankBean> processRankData(JSONObject json){
JSONArray rank=Integer.parseInt(Tips)==4?json.getJSONArray("list_day"):json.getJSONArray("list_week");
JSONArray rank=Integer.parseInt(Tips)==4?json.getJSONArray("listDay"):json.getJSONArray("listWeek");
List<LiveUserRankBean> data =new ArrayList<>();
/**
* 由于在线观众和粉丝列表实体结构与榜单结构不一致,做个兼容操作
*/
for (Object o : rank) {
JSONObject item= (JSONObject) o;
LiveUserRankBean bean=JSON.parseObject(item.getString("userinfo"),LiveUserRankBean.class);