兼容后台接口不规范
This commit is contained in:
parent
b64a200deb
commit
1dae6c840f
@ -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,
|
||||
|
@ -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,
|
||||
|
@ -28,4 +28,10 @@ data class UserBean(
|
||||
var credit :String
|
||||
)
|
||||
|
||||
data class CodeBean(
|
||||
val captchaEnabled:Boolean,
|
||||
val img:String,
|
||||
val uuid:String
|
||||
)
|
||||
|
||||
|
||||
|
@ -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>>
|
||||
|
||||
|
||||
}
|
@ -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
|
||||
}
|
||||
|
@ -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()
|
||||
}
|
||||
}))
|
||||
}
|
||||
|
@ -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?) {
|
||||
|
@ -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;
|
||||
|
@ -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
|
||||
}
|
||||
}
|
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user