diff --git a/app/src/main/java/com/dhsd/glowner/bean/CodeBean.kt b/app/src/main/java/com/dhsd/glowner/bean/CodeBean.kt index af8a79b..890ec20 100644 --- a/app/src/main/java/com/dhsd/glowner/bean/CodeBean.kt +++ b/app/src/main/java/com/dhsd/glowner/bean/CodeBean.kt @@ -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, diff --git a/app/src/main/java/com/dhsd/glowner/bean/OrderBean.kt b/app/src/main/java/com/dhsd/glowner/bean/OrderBean.kt index c3cb0c7..98564d6 100644 --- a/app/src/main/java/com/dhsd/glowner/bean/OrderBean.kt +++ b/app/src/main/java/com/dhsd/glowner/bean/OrderBean.kt @@ -6,6 +6,10 @@ package com.dahe.glex.bean * @Date 2023/9/21 10:22 * @Description TODO */ + +data class OrderListBean( + var rows: List +) data class OrderBean( var orderId: String, var waybillId: String, diff --git a/app/src/main/java/com/dhsd/glowner/bean/UserBean.kt b/app/src/main/java/com/dhsd/glowner/bean/UserBean.kt index cb8aa0f..23242ee 100644 --- a/app/src/main/java/com/dhsd/glowner/bean/UserBean.kt +++ b/app/src/main/java/com/dhsd/glowner/bean/UserBean.kt @@ -28,4 +28,10 @@ data class UserBean( var credit :String ) +data class CodeBean( + val captchaEnabled:Boolean, + val img:String, + val uuid:String +) + diff --git a/app/src/main/java/com/dhsd/glowner/net/Api.kt b/app/src/main/java/com/dhsd/glowner/net/Api.kt index b60612d..784b63b 100644 --- a/app/src/main/java/com/dhsd/glowner/net/Api.kt +++ b/app/src/main/java/com/dhsd/glowner/net/Api.kt @@ -37,7 +37,7 @@ interface Api { * @return Observable> */ @GET(BASE_URL+"devApi/code") - fun getCode(): Observable> + fun getCode(): Observable> /** * 是否需要验证码登录 @@ -49,5 +49,8 @@ interface Api { @GET(BASE_URL+"devApi/business/shipper/order/list") fun getOrderList(): Observable>> + @GET(BASE_URL+"devApi/business/shipper/order/list") + fun getOrderList2(): Observable> + } \ No newline at end of file diff --git a/app/src/main/java/com/dhsd/glowner/ui/account/LoginActivity.kt b/app/src/main/java/com/dhsd/glowner/ui/account/LoginActivity.kt index 0b3bf8d..49d9f1e 100644 --- a/app/src/main/java/com/dhsd/glowner/ui/account/LoginActivity.kt +++ b/app/src/main/java/com/dhsd/glowner/ui/account/LoginActivity.kt @@ -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(), View.OnClickListener private fun getCode() { DataManager.getInstance().getCode().subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) - .subscribe(BaseObserver(mContext, object : RxHttpCallBack() { - override fun onSuccess(t: CommonResponseBean) { + .subscribe(BaseObserver(mContext, object : RxHttpCallBack() { + override fun onSuccess(t: CommonResponseBean) { 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 } diff --git a/app/src/main/java/com/dhsd/glowner/ui/home/HomeFragment.kt b/app/src/main/java/com/dhsd/glowner/ui/home/HomeFragment.kt index 7ce5483..d2c9908 100644 --- a/app/src/main/java/com/dhsd/glowner/ui/home/HomeFragment.kt +++ b/app/src/main/java/com/dhsd/glowner/ui/home/HomeFragment.kt @@ -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(), RefreshCallBack { } private fun initData() { - DataManager.getInstance().getOrderList() +// DataManager.getInstance().getOrderList() +// .subscribeOn(Schedulers.io()) +// .observeOn(AndroidSchedulers.mainThread()) +// .subscribe(BaseObserver(mContext,object :RxHttpCallBack>(){ +// override fun onSuccess(t: CommonResponseBean>) { +// super.onSuccess(t) +// showToast(t.rows.size.toString()) +// } +// +// override fun onCodeError( +// mContext: Context?, +// t: CommonResponseBean> +// ) { +// super.onCodeError(mContext, t) +// binding.refresh.finishRefresh() +// binding.refresh.finishLoadMore() +// } +// })) + + DataManager.getInstance().getOrderList2() .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) - .subscribe(BaseObserver(mContext,object :RxHttpCallBack>(){ - override fun onSuccess(t: CommonResponseBean>) { + .subscribe(BaseObserver(mContext,object :RxHttpCallBack(){ + override fun onSuccess(t: CommonResponseBean) { 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 + ) { + super.onCodeError(mContext, t) + binding.refresh.finishRefresh() + binding.refresh.finishLoadMore() } })) } diff --git a/app/src/main/java/com/dhsd/glowner/ui/home/activtiy/AddressEditActivity.kt b/app/src/main/java/com/dhsd/glowner/ui/home/activtiy/AddressEditActivity.kt index d1dfae5..07deae5 100644 --- a/app/src/main/java/com/dhsd/glowner/ui/home/activtiy/AddressEditActivity.kt +++ b/app/src/main/java/com/dhsd/glowner/ui/home/activtiy/AddressEditActivity.kt @@ -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(), View.OnClickListener { override fun initView(savedInstanceState: Bundle?) { diff --git a/mylibrary/src/main/java/com/dahe/mylibrary/net/CommonResponseBean.java b/mylibrary/src/main/java/com/dahe/mylibrary/net/CommonResponseBean.java index 4429759..e354bc0 100644 --- a/mylibrary/src/main/java/com/dahe/mylibrary/net/CommonResponseBean.java +++ b/mylibrary/src/main/java/com/dahe/mylibrary/net/CommonResponseBean.java @@ -12,54 +12,6 @@ public class CommonResponseBean 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; diff --git a/mylibrary/src/main/java/com/dahe/mylibrary/net/CommonResponseBean2.kt b/mylibrary/src/main/java/com/dahe/mylibrary/net/CommonResponseBean2.kt deleted file mode 100644 index 197d055..0000000 --- a/mylibrary/src/main/java/com/dahe/mylibrary/net/CommonResponseBean2.kt +++ /dev/null @@ -1,30 +0,0 @@ -package com.dahe.mylibrary.net - -import java.io.Serializable - -/** - * 返回通用的实体类 - */ -class CommonResponseBean2 : 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 - } -} diff --git a/mylibrary/src/main/java/com/dahe/mylibrary/net/JsonInterceptor.java b/mylibrary/src/main/java/com/dahe/mylibrary/net/JsonInterceptor.java index 46f59f7..ed882d2 100644 --- a/mylibrary/src/main/java/com/dahe/mylibrary/net/JsonInterceptor.java +++ b/mylibrary/src/main/java/com/dahe/mylibrary/net/JsonInterceptor.java @@ -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 keys = jsonObject.keys(); + // 标记需要删除的key + ArrayList 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);