兼容后台接口不规范

This commit is contained in:
lijia 2024-10-23 15:41:12 +08:00
parent b64a200deb
commit 1dae6c840f
10 changed files with 99 additions and 107 deletions

View File

@ -6,13 +6,13 @@ package com.dhsd.glowner.bean
* @Date 2024/10/16 09:58
* @Description TODO
*/
data class CodeBean(
val captchaEnabled: Boolean,
val code: Int,
val img: String,
val msg: String,
val uuid: String
)
//data class CodeBean(
// val captchaEnabled: Boolean,
// val code: Int,
// val img: String,
// val msg: String,
// val uuid: String
//)
data class LoginBean(
var username: String,

View File

@ -6,6 +6,10 @@ package com.dahe.glex.bean
* @Date 2023/9/21 10:22
* @Description TODO
*/
data class OrderListBean(
var rows: List<OrderBean>
)
data class OrderBean(
var orderId: String,
var waybillId: String,

View File

@ -28,4 +28,10 @@ data class UserBean(
var credit :String
)
data class CodeBean(
val captchaEnabled:Boolean,
val img:String,
val uuid:String
)

View File

@ -37,7 +37,7 @@ interface Api {
* @return Observable<CommonResponseBean<CodeBean>>
*/
@GET(BASE_URL+"devApi/code")
fun getCode(): Observable<CommonResponseBean<Any>>
fun getCode(): Observable<CommonResponseBean<CodeBean>>
/**
* 是否需要验证码登录
@ -49,5 +49,8 @@ interface Api {
@GET(BASE_URL+"devApi/business/shipper/order/list")
fun getOrderList(): Observable<CommonResponseBean<MutableList<OrderBean>>>
@GET(BASE_URL+"devApi/business/shipper/order/list")
fun getOrderList2(): Observable<CommonResponseBean<OrderListBean>>
}

View File

@ -12,6 +12,7 @@ import android.text.style.ClickableSpan
import android.view.View
import android.widget.TextView
import androidx.core.text.toSpannable
import com.dahe.glex.bean.CodeBean
import com.dahe.glex.bean.UserBean
import com.dahe.mylibrary.base.BaseActivity
import com.dahe.mylibrary.net.CommonResponseBean
@ -138,15 +139,15 @@ class LoginActivity : BaseActivity<ActivityLoginBinding>(), View.OnClickListener
private fun getCode() {
DataManager.getInstance().getCode().subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(BaseObserver(mContext, object : RxHttpCallBack<Any>() {
override fun onSuccess(t: CommonResponseBean<Any>) {
.subscribe(BaseObserver(mContext, object : RxHttpCallBack<CodeBean>() {
override fun onSuccess(t: CommonResponseBean<CodeBean>) {
super.onSuccess(t)
isNeedCode = t.isCaptchaEnabled
isNeedCode = t.data.captchaEnabled
if (isNeedCode) {
binding.run {
ivCode.setImageBitmap(Base64Utils.base64ToBitmap(t.img))
ivCode.setImageBitmap(Base64Utils.base64ToBitmap(t.data.img))
}
uuid = t.uuid
uuid = t.data.uuid
}
binding.llCode.visibility = if (isNeedCode) View.VISIBLE else View.GONE
}

View File

@ -3,12 +3,14 @@ package com.dhsd.glowner.ui.home
import BaseObserver
import DataManager
import RxHttpCallBack
import android.content.Context
import android.graphics.Color
import android.widget.LinearLayout
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import com.dahe.gldriver.bean.GridBean
import com.dahe.glex.bean.OrderBean
import com.dahe.glex.bean.OrderListBean
import com.dahe.glex.bean.WayBillBean
import com.dahe.mylibrary.base.BaseFragment
import com.dahe.mylibrary.callback.RefreshCallBack
@ -97,13 +99,43 @@ class HomeFragment : BaseFragment<FragmentHomeBinding>(), RefreshCallBack {
}
private fun initData() {
DataManager.getInstance().getOrderList()
// DataManager.getInstance().getOrderList()
// .subscribeOn(Schedulers.io())
// .observeOn(AndroidSchedulers.mainThread())
// .subscribe(BaseObserver(mContext,object :RxHttpCallBack<MutableList<OrderBean>>(){
// override fun onSuccess(t: CommonResponseBean<MutableList<OrderBean>>) {
// super.onSuccess(t)
// showToast(t.rows.size.toString())
// }
//
// override fun onCodeError(
// mContext: Context?,
// t: CommonResponseBean<MutableList<OrderBean>>
// ) {
// super.onCodeError(mContext, t)
// binding.refresh.finishRefresh()
// binding.refresh.finishLoadMore()
// }
// }))
DataManager.getInstance().getOrderList2()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(BaseObserver(mContext,object :RxHttpCallBack<MutableList<OrderBean>>(){
override fun onSuccess(t: CommonResponseBean<MutableList<OrderBean>>) {
.subscribe(BaseObserver(mContext,object :RxHttpCallBack<OrderListBean>(){
override fun onSuccess(t: CommonResponseBean<OrderListBean>) {
super.onSuccess(t)
showToast(t.rows.size.toString())
showToast(t.data.rows.size.toString())
binding.refresh.finishRefresh()
binding.refresh.finishLoadMore()
}
override fun onCodeError(
mContext: Context?,
t: CommonResponseBean<OrderListBean>
) {
super.onCodeError(mContext, t)
binding.refresh.finishRefresh()
binding.refresh.finishLoadMore()
}
}))
}

View File

@ -24,7 +24,7 @@ import com.github.gzuliyujiang.wheelpicker.entity.ProvinceEntity
* @ClassName AddresEditActivity
* @Author john
* @Date 2024/2/4 10:44
* @Description TODO
* @Description 选择地址
*/
class AddressEditActivity : BaseActivity<ActivityAddressEditBinding>(), View.OnClickListener {
override fun initView(savedInstanceState: Bundle?) {

View File

@ -12,54 +12,6 @@ public class CommonResponseBean<T> implements Serializable {
private int code;
private String msg;
// 数据未封装 无奈呀
private boolean captchaEnabled;
private String img;
private String uuid;
private int total;
private T rows;
public int getTotal() {
return total;
}
public void setTotal(int total) {
this.total = total;
}
public T getRows() {
return rows;
}
public void setRows(T rows) {
this.rows = rows;
}
public boolean isCaptchaEnabled() {
return captchaEnabled;
}
public void setCaptchaEnabled(boolean captchaEnabled) {
this.captchaEnabled = captchaEnabled;
}
public String getImg() {
return img;
}
public void setImg(String img) {
this.img = img;
}
public String getUuid() {
return uuid;
}
public void setUuid(String uuid) {
this.uuid = uuid;
}
public T getData() {
return data;

View File

@ -1,30 +0,0 @@
package com.dahe.mylibrary.net
import java.io.Serializable
/**
* 返回通用的实体类
*/
class CommonResponseBean2<T> : Serializable {
var data : T? = null
var code = 0
var msg: String? = null
// 数据未封装 无奈呀
var isCaptchaEnabled = false
var img: String? = null
var uuid: String? = null
var total = 0
var rows: T? = null
private set
fun setRows(rows: T) {
this.rows = rows
}
fun setData(data: T) {
this.data = data
}
}

View File

@ -4,13 +4,19 @@ import android.text.TextUtils;
import android.util.Log;
import com.google.zxing.common.StringUtils;
import com.google.gson.JsonNull;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import org.json.JSONTokener;
import java.io.IOException;
import java.nio.charset.Charset;
import java.security.spec.KeySpec;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.Set;
import okhttp3.Interceptor;
import okhttp3.MediaType;
@ -45,16 +51,34 @@ public class JsonInterceptor implements Interceptor {
Log.i(TAG, "result-body= " + responseBodyStr);
try {
JSONObject jsonObject = new JSONObject(responseBodyStr);
String str = jsonObject.optString("data");
int code = jsonObject.optInt("code");
// if (-1 == code) {
// jsonObject.put("data", new JSONObject());
// throw new ResultException();
// } else {
// if (TextUtils.isEmpty(str)) {
// jsonObject.put("data", new JSONObject());
// }
// }
boolean hasData = jsonObject.has("data");
if (!hasData) {
//兼容后台接口重新封装一下data
JSONObject toData = new JSONObject();
Iterator<String> keys = jsonObject.keys();
// 标记需要删除的key
ArrayList<String> strings = new ArrayList<>();
while (keys.hasNext()) {
String key = keys.next();
if ("code".equals(key) || "msg".equals(key) ) {
continue;
}
Object o = jsonObject.get(key);
if (o instanceof JSONObject) {
toData.putOpt(key, new JSONObject(o.toString()));
} else if (o instanceof JSONArray) {
toData.putOpt(key, new JSONArray(o.toString()));
}else {
toData.putOpt(key, o);
}
strings.add(key);
}
for (String s : strings) {
jsonObject.remove(s);
}
jsonObject.put("data", toData);
}
String data = jsonObject.toString();
responseBody = ResponseBody.create(MediaType.parse("application/json; charset=utf-8"), data);