From b04c49c22e9615ea2d74996e26e2a8a7750d1c6d Mon Sep 17 00:00:00 2001 From: lijia Date: Mon, 4 Mar 2024 09:20:37 +0800 Subject: [PATCH] =?UTF-8?q?=E8=BD=A6=E9=98=9F=E9=95=BF=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E5=AF=B9=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/deploymentTargetDropDown.xml | 15 +- app/src/main/AndroidManifest.xml | 13 +- .../com/dahe/gldriver/bean/CommListBean.kt | 13 -- .../java/com/dahe/gldriver/bean/OrderBean.kt | 53 +++++-- .../java/com/dahe/gldriver/bean/UpInfoBean.kt | 11 +- .../main/java/com/dahe/gldriver/net/Api.kt | 64 ++++---- .../com/dahe/gldriver/net/RxHttpCallBack.kt | 8 +- .../com/dahe/gldriver/oss/OssServiceUtil.java | 47 +++--- .../java/com/dahe/gldriver/ui/HomeActivity.kt | 20 +++ .../gldriver/ui/account/SelectRoleActivity.kt | 31 +++- .../authperson/AuthBankCardActivity.kt | 2 +- .../account/authperson/AuthDriverActivity.kt | 142 +++++------------- .../account/authperson/AuthPersonActivity.kt | 96 ++++-------- .../authperson/AuthQualificationActivity.kt | 12 +- .../ui/account/authperson/AuthRoadActivity.kt | 2 +- .../ui/account/authteam/AuthTeamActivity.kt | 41 +++-- .../com/dahe/gldriver/ui/home/HomeFragment.kt | 16 ++ .../java/com/dahe/gldriver/utils/OcrUtils.kt | 117 +++++++++++++-- .../callback/OnMyDatePickedListener.kt | 11 ++ .../mylibrary/net/CommonResponseBean.java | 21 +-- .../dahe/mylibrary/net/JsonInterceptor.java | 16 +- .../com/dahe/mylibrary/utils/LoadingUtils.kt | 6 +- .../com/dahe/mylibrary/utils/PickerUtils.kt | 36 ++++- .../com/dahe/mylibrary/utils/TimeUtil.java | 31 +++- .../main/res/layout/custom_loading_popup.xml | 16 ++ mylibrary/src/main/res/values/colors.xml | 4 +- 26 files changed, 500 insertions(+), 344 deletions(-) delete mode 100644 app/src/main/java/com/dahe/gldriver/bean/CommListBean.kt create mode 100644 mylibrary/src/main/java/com/dahe/mylibrary/callback/OnMyDatePickedListener.kt create mode 100644 mylibrary/src/main/res/layout/custom_loading_popup.xml diff --git a/.idea/deploymentTargetDropDown.xml b/.idea/deploymentTargetDropDown.xml index 0c0c338..5d8d1e3 100644 --- a/.idea/deploymentTargetDropDown.xml +++ b/.idea/deploymentTargetDropDown.xml @@ -3,7 +3,20 @@ - + + + + + + + + + + + + + + diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 89ff92b..7a1f69e 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -117,7 +117,6 @@ @@ -139,44 +138,37 @@ @@ -185,7 +177,6 @@ - - - + diff --git a/app/src/main/java/com/dahe/gldriver/bean/CommListBean.kt b/app/src/main/java/com/dahe/gldriver/bean/CommListBean.kt deleted file mode 100644 index 002c268..0000000 --- a/app/src/main/java/com/dahe/gldriver/bean/CommListBean.kt +++ /dev/null @@ -1,13 +0,0 @@ -package com.dahe.glex.bean - -/** - * @ClassName TextBean - * @Author 用户 - * @Date 2023/9/21 11:08 - * @Description TODO - */ -data class CommListBean( - val list: MutableList, - val num: Int, - val totalFreight: String -) diff --git a/app/src/main/java/com/dahe/gldriver/bean/OrderBean.kt b/app/src/main/java/com/dahe/gldriver/bean/OrderBean.kt index c3cb0c7..cd9342f 100644 --- a/app/src/main/java/com/dahe/gldriver/bean/OrderBean.kt +++ b/app/src/main/java/com/dahe/gldriver/bean/OrderBean.kt @@ -7,20 +7,41 @@ package com.dahe.glex.bean * @Description TODO */ data class OrderBean( - var orderId: String, - var waybillId: String, - var orderNum: String, - var waybillNum: String, - var orderTime: String, - var totalFreight: String, - var dispatchType : Int, - var effectiveTime: String, - var sendPut: String, - var distance: String, - var loadingAddress: String, - var receiverAddress: String, - var waybillStatus: Int, - var evaluation: Int, - var complaint: Int, - var multipleScore: String, + val avatar: String, + val distance: String, + val driverFreight: Double, + val goodsList: List, + val loadingArea: String, + val loadingAreaCode: String, + val loadingCity: String, + val loadingCityCode: String, + val loadingDeadline: String, + val loadingProvince: String, + val loadingProvinceCode: String, + val orderId: String, + val orderNum: String, + val orderStatus: Int, + val orderType: String, + val passingPointsNum: String, + val realCompanyName: String, + val receiverArea: String, + val receiverAreaCode: String, + val receiverCity: String, + val receiverCityCode: String, + val receiverProvince: String, + val receiverProvinceCode: String, + val requirement: String, + val shipperCreditRating: String, + val shipperPositiveReviewRate: String, + val shipperTransactionVolume: String, + val vehicleLength: String, + val vehicleType: String ) + +data class Goods( + val goodCube: String, + val goodItemGrossWeight: String, + val goodName: String, + val goodNum: String, + val orderGoodsId: String +) \ No newline at end of file diff --git a/app/src/main/java/com/dahe/gldriver/bean/UpInfoBean.kt b/app/src/main/java/com/dahe/gldriver/bean/UpInfoBean.kt index afc9607..ae58d24 100644 --- a/app/src/main/java/com/dahe/gldriver/bean/UpInfoBean.kt +++ b/app/src/main/java/com/dahe/gldriver/bean/UpInfoBean.kt @@ -73,8 +73,17 @@ data class AuthTeamBean( var idcardIsEndless: String="", var idcardName: String="", var idcardNo: String="", + var roadLicensePhotoUrl: String="", + var roadLicense: String="", + var roadLicenseValidity: String="", + var businessLicensePhoneUrl: String="", + var businessLicenseCreditCode: String="", + var businessLicenseEffectiveStart: String="", + var businessLicenseEffectiveEnd: String="", var idcardSex: String="" ){ - constructor(captainType: String) : this() + constructor(captainType: String) : this(){ + this.captainType = captainType + } } diff --git a/app/src/main/java/com/dahe/gldriver/net/Api.kt b/app/src/main/java/com/dahe/gldriver/net/Api.kt index 7a05552..d77081c 100644 --- a/app/src/main/java/com/dahe/gldriver/net/Api.kt +++ b/app/src/main/java/com/dahe/gldriver/net/Api.kt @@ -1,6 +1,4 @@ package com.dahe.gldriver.net - -import WayBill2 import com.dahe.gldriver.BuildConfig import com.dahe.gldriver.bean.AuthTeamBean import com.dahe.gldriver.bean.OcrPersonBean @@ -22,22 +20,13 @@ import retrofit2.http.Query /** - * Created by Administrator on 2018/8/8 0008. + * Created by Administrator on 2024/01/8 0008. */ interface Api { /*-------------------登录----------------------------*/ @POST(BASE_URL + "common/register") fun log(@Body logBean: LogBean?): Observable> - //运单列表 - @POST(BASE_URL + "app/driver/waybill/listV2") - fun orderList(@Body bean: RefreshBean?): Observable> - - //获取正在执行的运单/运单详情 - @POST(BASE_URL + "app/driver/waybill/getExecuteWaybill") - fun getExecuteWaybill(@Body bean: WayBillBean?): Observable> - fun getExecuteWaybill2(@Query("waybillId") waybillId: String?): Observable> - @GET(BASE_URL + "auth/driver/login") fun login( @Query("contactPhone") contactPhone: String, @@ -46,8 +35,8 @@ interface Api { /** - * 获取验证码 - * */ + * 获取验证码 + * */ @GET(BASE_URL + "auth/driver/code") fun getCode(@Query("contactPhone") contactPhone: String): Observable> @@ -61,48 +50,48 @@ interface Api { ): Observable> /** - * 个人身份证识别 - * */ + * 个人身份证识别 + * */ @GET(BASE_URL + "ocr/aliyunOcr/recognizeIdcard") fun recognizeIdcard( @Query("imgUrl") imgUrl: String ): Observable> /** - * 驾驶证识别 - * */ + * 驾驶证识别 + * */ @GET(BASE_URL + "ocr/aliyunOcr/recognizeDrivingLicense") fun recognizeDrivingLicense( @Query("imgUrl") imgUrl: String ): Observable> /** - * 银行卡识别 - * */ + * 银行卡识别 + * */ @GET(BASE_URL + "ocr/aliyunOcr/recognizeBankCard") fun recognizeBankCard( @Query("imgUrl") imgUrl: String ): Observable> /** - * 行驶证识别 - * */ + * 行驶证识别 + * */ @GET(BASE_URL + "ocr/aliyunOcr/recognizeVehicleLicense") fun recognizeVehicleLicense( @Query("imgUrl") imgUrl: String ): Observable> /** - * 营业执照识别 - * */ + * 营业执照识别 + * */ @GET(BASE_URL + "ocr/aliyunOcr/recognizeBusinessLicense") fun recognizeBusinessLicense( @Query("imgUrl") imgUrl: String ): Observable> /** - * 获取用户信息 - * */ + * 获取用户信息 + * */ @GET(BASE_URL + "driver/driver/getUserInfo") fun getUserInfo(): Observable> @@ -114,31 +103,38 @@ interface Api { /** - * 司机上传驾驶证 - * */ + * 司机上传驾驶证 + * */ @POST(BASE_URL + "driver/driver/setUpDriverLicense") fun setUpDriverLicense(@Body driverBean: UpDriverInfoBean): Observable> /** - * 司机上传从业资格证 - * */ + * 司机上传从业资格证 + * */ @POST(BASE_URL + "driver/driver/setUpDriverQualificationCertificate") fun setUpDriverQualificationCertificate(@Body qualiBean: UpQualiInfoBean): Observable> /** - * 司机上传银行卡 - * */ + * 司机上传银行卡 + * */ @POST(BASE_URL + "driver/driver/setUpDriverBankCard") fun setUpDriverBankCard(@Body bankBean: UpBankInfoBean): Observable> /** - * 司机认证成为车队长 - * */ + * 司机认证成为车队长 + * */ @POST(BASE_URL + "driver/driver/authenticationCaptain") fun authenticationCaptain(@Body bankBean: AuthTeamBean): Observable> + @GET(BASE_URL + "driver/order/list") + fun orderList(): Observable>> + + + @GET(BASE_URL + "driver/driver/setUpDriverRole") + fun setUpDriverRole(@Query("role") role: String): Observable> + companion object { // String BASE_URL = "https://tmstest.dahehuoyun.com/"; const val BASE_URL = BuildConfig.BASE_URL diff --git a/app/src/main/java/com/dahe/gldriver/net/RxHttpCallBack.kt b/app/src/main/java/com/dahe/gldriver/net/RxHttpCallBack.kt index 7055cec..ee9bd0d 100644 --- a/app/src/main/java/com/dahe/gldriver/net/RxHttpCallBack.kt +++ b/app/src/main/java/com/dahe/gldriver/net/RxHttpCallBack.kt @@ -22,7 +22,7 @@ import javax.net.ssl.SSLException abstract class RxHttpCallBack { // private var dialog: ProgressDialog? = null private var dialog: LoadingPopupView? = null - private fun initDialog(activity: AppCompatActivity, dialogMessage: String) { + private fun initDialog(activity: AppCompatActivity?, dialogMessage: String) { // dialog = ProgressDialog(activity) // dialog!!.requestWindowFeature(Window.FEATURE_NO_TITLE) // dialog!!.setCanceledOnTouchOutside(false) @@ -30,7 +30,7 @@ abstract class RxHttpCallBack { // dialog!!.setMessage(dialogMessage) - dialog = LoadingUtils.instance.init(activity) + dialog = activity?.let { LoadingUtils.instance.init(it) } } constructor(activity: AppCompatActivity, dialogMessage: String?) { @@ -40,7 +40,7 @@ abstract class RxHttpCallBack { ) } - constructor(activity: AppCompatActivity) { + constructor(activity: AppCompatActivity?) { initDialog(activity, "网络请求中......") } @@ -89,7 +89,7 @@ abstract class RxHttpCallBack { // intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK); // mContext.startActivity(intent); ToastUtils.showToast(mContext, "您的账号再异地登录,请重新登录") - } else { + } else { ToastUtils.showToast(mContext, t.msg) } diff --git a/app/src/main/java/com/dahe/gldriver/oss/OssServiceUtil.java b/app/src/main/java/com/dahe/gldriver/oss/OssServiceUtil.java index f883321..f82faa1 100644 --- a/app/src/main/java/com/dahe/gldriver/oss/OssServiceUtil.java +++ b/app/src/main/java/com/dahe/gldriver/oss/OssServiceUtil.java @@ -69,7 +69,7 @@ public class OssServiceUtil { } private void initDialog(AppCompatActivity activity) { - dialog = LoadingUtils.Companion.getInstance().init(activity,"网络请求中......"); + dialog = LoadingUtils.Companion.getInstance().init(activity, "网络请求中......"); } //初始化使用参数 @@ -84,10 +84,6 @@ public class OssServiceUtil { conf.setMaxErrorRetry(2); // 失败后最大重试次数,默认2次 oss = new OSSClient(App.Companion.getApp(), OssConfigBean.endpoint, credentialProvider, conf); - - - System.out.println("ffff"); -// initDialog(activity); } public void setResultCallBack(picResultCallback callback) { @@ -105,7 +101,7 @@ public class OssServiceUtil { // if (object.equals("")) { // return; // } - if (activity!=null){ + if (activity != null) { activity.runOnUiThread(new Runnable() { @Override public void run() { @@ -151,11 +147,14 @@ public class OssServiceUtil { // if (mProgress != null) { // mProgress.setProgress(progress); // } - activity.runOnUiThread(() -> { - if (dialog != null&&!dialog.isShow()) { - dialog.show(); - } - }); + if (activity != null) { + activity.runOnUiThread(() -> { + if (dialog != null && !dialog.isShow()) { + dialog.show(); + } + }); + + } } }); @@ -163,11 +162,13 @@ public class OssServiceUtil { OSSAsyncTask task = oss.asyncPutObject(put, new OSSCompletedCallback() { @Override public void onSuccess(PutObjectRequest request, final PutObjectResult result) { - activity.runOnUiThread(() -> { - if (dialog != null) { - dialog.dismiss(); - } - }); + if (activity != null) { + activity.runOnUiThread(() -> { + if (dialog != null) { + dialog.dismiss(); + } + }); + } String serverCallbackReturnBody = result.getServerCallbackReturnBody(); callback.getPicData(result, OssConfigBean.BUCKET_BASE_URL + OssConfigBean.BUCKET_OBJECT + name); @@ -175,11 +176,14 @@ public class OssServiceUtil { @Override public void onFailure(PutObjectRequest request, ClientException clientExcepion, ServiceException serviceException) { - activity.runOnUiThread(() -> { - if (dialog != null) { - dialog.dismiss(); - } - }); + if (activity != null) { + activity.runOnUiThread(() -> { + if (dialog != null) { + dialog.dismiss(); + } + }); + + } String info = ""; // 请求异常 if (clientExcepion != null) { @@ -201,7 +205,6 @@ public class OssServiceUtil { } - /** * 上传次数 */ diff --git a/app/src/main/java/com/dahe/gldriver/ui/HomeActivity.kt b/app/src/main/java/com/dahe/gldriver/ui/HomeActivity.kt index 7f613fb..1449161 100644 --- a/app/src/main/java/com/dahe/gldriver/ui/HomeActivity.kt +++ b/app/src/main/java/com/dahe/gldriver/ui/HomeActivity.kt @@ -18,6 +18,8 @@ import com.dahe.mylibrary.base.BaseActivity import com.flyco.tablayout.listener.CustomTabEntity import com.flyco.tablayout.listener.OnTabSelectListener import com.permissionx.guolindev.PermissionX +import java.util.Timer +import java.util.TimerTask /** * @ClassName HomeActivity @@ -86,6 +88,24 @@ class HomeActivity: BaseActivity(), OnTabSelectListener, } } + + private var mBackKeyPressed = false + override fun onBackPressed() { + if (!mBackKeyPressed) { + showToast("再按一次退出程序") + mBackKeyPressed = true + Timer().schedule(object : TimerTask() { + override fun run() { + mBackKeyPressed = false + } + }, 2000) + } else { + canCelToast() + moveTaskToBack(true) +// finish() + } + } + override fun onTabSelect(position: Int) { binding.homeNoScrollViewPager.setCurrentItem(position) } diff --git a/app/src/main/java/com/dahe/gldriver/ui/account/SelectRoleActivity.kt b/app/src/main/java/com/dahe/gldriver/ui/account/SelectRoleActivity.kt index 82759c5..f7f852d 100644 --- a/app/src/main/java/com/dahe/gldriver/ui/account/SelectRoleActivity.kt +++ b/app/src/main/java/com/dahe/gldriver/ui/account/SelectRoleActivity.kt @@ -3,6 +3,9 @@ package com.dahe.gldriver.ui.account import android.os.Bundle import com.dahe.gldriver.R import com.dahe.gldriver.databinding.ActivitySelectRoleBinding +import com.dahe.gldriver.net.BaseObserver +import com.dahe.gldriver.net.DataManager +import com.dahe.gldriver.net.RxHttpCallBack import com.dahe.gldriver.ui.account.authperson.AuthBankCardActivity import com.dahe.gldriver.ui.account.authperson.AuthDriverActivity import com.dahe.gldriver.ui.account.authperson.AuthDrivingActivity @@ -10,7 +13,10 @@ import com.dahe.gldriver.ui.account.authperson.AuthPersonActivity import com.dahe.gldriver.ui.account.authperson.AuthQualificationActivity import com.dahe.gldriver.ui.account.authteam.AuthTeamActivity import com.dahe.mylibrary.base.BaseActivity +import com.dahe.mylibrary.net.CommonResponseBean import com.dahe.mylibrary.utils.ActivityUtils +import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers +import io.reactivex.rxjava3.schedulers.Schedulers /** * @ClassName AuthRoleActivity @@ -21,12 +27,33 @@ import com.dahe.mylibrary.utils.ActivityUtils class SelectRoleActivity : BaseActivity() { override fun initView(savedInstanceState: Bundle?) { setStatusBarColor(R.color.white) - setTitleBar("选择角色",true) + setTitleBar("选择角色", true) binding.rlPerson.setOnClickListener { - ActivityUtils.startActivity(mContext, AuthDriverActivity::class.java) + + + ActivityUtils.startActivity(mContext, AuthDrivingActivity::class.java) + +// DataManager.getInstance().setUpDriverRole("0") +// .subscribeOn(Schedulers.io()) +// .observeOn(AndroidSchedulers.mainThread()) +// .subscribe(BaseObserver(mContext, object : RxHttpCallBack(this) { +// override fun onSuccess(t: CommonResponseBean) { +// super.onSuccess(t) +// ActivityUtils.startActivity(mContext, AuthPersonActivity::class.java) +// } +// })) + // ActivityUtils.startActivity(mContext, AuthPersonActivity::class.java) } binding.rlCom.setOnClickListener { + DataManager.getInstance().setUpDriverRole("1") + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(BaseObserver(mContext, object : RxHttpCallBack(this) { + override fun onSuccess(t: CommonResponseBean) { + super.onSuccess(t) + } + })) ActivityUtils.startActivity(mContext, AuthTeamActivity::class.java) } } diff --git a/app/src/main/java/com/dahe/gldriver/ui/account/authperson/AuthBankCardActivity.kt b/app/src/main/java/com/dahe/gldriver/ui/account/authperson/AuthBankCardActivity.kt index d2effa6..a8d4e06 100644 --- a/app/src/main/java/com/dahe/gldriver/ui/account/authperson/AuthBankCardActivity.kt +++ b/app/src/main/java/com/dahe/gldriver/ui/account/authperson/AuthBankCardActivity.kt @@ -59,7 +59,7 @@ class AuthBankCardActivity : BaseActivity() { object : RxHttpCallBack(this) { override fun onSuccess(t: CommonResponseBean) { super.onSuccess(t) - t.data.data?.run { + t.data?.data?.run { bankInfo.driverBankcardPhotoUrl = oldPath binding.let { diff --git a/app/src/main/java/com/dahe/gldriver/ui/account/authperson/AuthDriverActivity.kt b/app/src/main/java/com/dahe/gldriver/ui/account/authperson/AuthDriverActivity.kt index f064a2b..60abfe9 100644 --- a/app/src/main/java/com/dahe/gldriver/ui/account/authperson/AuthDriverActivity.kt +++ b/app/src/main/java/com/dahe/gldriver/ui/account/authperson/AuthDriverActivity.kt @@ -1,13 +1,9 @@ package com.dahe.gldriver.ui.account.authperson import android.os.Bundle -import android.view.View -import androidx.core.widget.ContentLoadingProgressBar import com.dahe.gldriver.R import com.dahe.gldriver.bean.OcrPersonBean import com.dahe.gldriver.bean.UpDriverInfoBean -import com.dahe.gldriver.bean.UpPersonInfoBean -import com.dahe.gldriver.callback.OnOcrPicResultListener import com.dahe.gldriver.databinding.ActivityAuthDriverBinding import com.dahe.gldriver.net.BaseObserver import com.dahe.gldriver.net.DataManager @@ -20,6 +16,8 @@ import com.dahe.mylibrary.net.CommonResponseBean import com.dahe.mylibrary.utils.ActivityUtils import com.dahe.mylibrary.utils.ImageLoader import com.dahe.mylibrary.utils.PopsUtils +import com.dahe.mylibrary.utils.TimeUtil +import com.dahe.mylibrary.utils.ToastUtils import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers import io.reactivex.rxjava3.schedulers.Schedulers @@ -47,16 +45,16 @@ class AuthDriverActivity : BaseActivity() { tvStart.run { setOnClickListener { PickerUtils.getInstance() - .showDate(this@AuthDriverActivity, "有效起始日期") { year, month, day -> - this.text = "$year-$month-$day" + .showDate(this@AuthDriverActivity, "有效起始日期") { date -> + this.text = date } } } tvEnd.run { setOnClickListener { PickerUtils.getInstance() - .showDate(this@AuthDriverActivity, "有效结束日期") { year, month, day -> - this.text = "$year-$month-$day" + .showDate(this@AuthDriverActivity, "有效结束日期") { date -> + this.text = date } } } @@ -89,26 +87,35 @@ class AuthDriverActivity : BaseActivity() { licenseEffectiveStart = tvStart.text.toString() licenseEffectiveEnd = tvEnd.text.toString() } - - DataManager.getInstance().setUpDriverLicense(driverInfoBean) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(BaseObserver(mContext, object : RxHttpCallBack() { - override fun onSuccess(t: CommonResponseBean) { - super.onSuccess(t) - ActivityUtils.startActivity( - mContext, - AuthQualificationActivity::class.java - ) - } - })) } + if (driverInfoBean.licenseNo.isNullOrBlank() || driverInfoBean.licensePhotoBackUrl.isNullOrBlank()) { + ToastUtils.showToast(mContext, "请完善信息") + return + } + + + + DataManager.getInstance().setUpDriverLicense(driverInfoBean) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(BaseObserver(mContext, object : RxHttpCallBack() { + override fun onSuccess(t: CommonResponseBean) { + super.onSuccess(t) + ActivityUtils.startActivity( + mContext, + AuthQualificationActivity::class.java + ) + } + })) + } private fun selFrontPic() { - OcrUtils.getInstance().ocrDriver(mContext, this@AuthDriverActivity) { picPath, result -> + + OcrUtils.getInstance().ocrDriver(mContext, this) { picPath, result -> result.data.face?.data.let { - ImageLoader.getInstance().loadRoundImage(mContext, picPath, 12, binding.ivFront) + ImageLoader.getInstance() + .loadRoundImage(mContext, picPath.locPic, 12, binding.ivFront) driverInfoBean.licensePhotoFaceUrl = picPath.picPath it?.run { driverInfoBean.run { @@ -131,93 +138,18 @@ class AuthDriverActivity : BaseActivity() { } -// PopsUtils.getInstance().showSimSelPic(mContext) { -// var data = it[0] -// ossServiceUtil.asyncPutImage(data.realPath, this@AuthDriverActivity) -// ossServiceUtil.setResultCallBack { data, oldPath -> -// DataManager.getInstance().recognizeDrivingLicense(oldPath) -// .subscribeOn(Schedulers.io()) -// .observeOn(AndroidSchedulers.mainThread()) -// .subscribe( -// BaseObserver(mContext, -// object : RxHttpCallBack() { -// override fun onSuccess(t: CommonResponseBean) { -// super.onSuccess(t) -// t.data.data.face?.data.let { -// driverInfoBean.licensePhotoFaceUrl = oldPath -// it?.run { -// driverInfoBean.run { -// licenseApproveOrganization = -// issueAuthority //发证机关 -// } -// -// -// binding.run { -// etName.setText(it.name) -// etId.setText(it.licenseNumber) -// tvCarType.text = it.approvedType -// if (validPeriod.contains("至")) { -// val split = validPeriod.split("至") -// tvStart.text = split[0] -// tvEnd.text = -// if (split.size == 2) split[1] else "" -// } -// } -// } -// } -// } -// }) -// ) -// -// } -// -// ImageLoader.getInstance().loadRoundImage(mContext, data.realPath, 12, binding.ivFront) -// } } private fun selBackPic() { - PopsUtils.getInstance().showSimSelPic(mContext) { - var data = it[0] - ossServiceUtil.asyncPutImage(data.realPath, this@AuthDriverActivity) - ossServiceUtil.setResultCallBack { data, oldPath -> - run { - DataManager.getInstance().recognizeDrivingLicense(oldPath) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe( - BaseObserver(mContext, - object : RxHttpCallBack() { - override fun onSuccess(t: CommonResponseBean) { - super.onSuccess(t) - t.data.data.back?.data.let { - driverInfoBean.licensePhotoBackUrl = oldPath -// it?.run { -// driverInfoBean.run { -// licenseApproveOrganization = -// issueAuthority //发证机关 -// } -// binding.run { -// etName.setText(it.name) -// etId.setText(it.licenseNumber) -// tvCarType.text = it.approvedType -// if (validPeriod.contains("至")) { -// val split = validPeriod.split("至") -// tvStart.text = split[0] -// tvEnd.text = -// if (split.size == 2) split[1] else "" -// } -// } -// } - } - } - }) - ) - } + OcrUtils.getInstance().ocrDriver(mContext, this) { picPath, result -> + result.data.back?.data.let { + ImageLoader.getInstance() + .loadRoundImage(mContext, picPath.locPic, 12, binding.ivBack) + driverInfoBean.licensePhotoBackUrl = picPath.picPath + ToastUtils.showToast(mContext, "驾驶证副页上传成功") } - - - ImageLoader.getInstance().loadRoundImage(mContext, data.realPath, 12, binding.ivBack) } + } } \ No newline at end of file diff --git a/app/src/main/java/com/dahe/gldriver/ui/account/authperson/AuthPersonActivity.kt b/app/src/main/java/com/dahe/gldriver/ui/account/authperson/AuthPersonActivity.kt index 36f6548..41a46fb 100644 --- a/app/src/main/java/com/dahe/gldriver/ui/account/authperson/AuthPersonActivity.kt +++ b/app/src/main/java/com/dahe/gldriver/ui/account/authperson/AuthPersonActivity.kt @@ -10,6 +10,7 @@ import com.dahe.gldriver.net.BaseObserver import com.dahe.gldriver.net.DataManager import com.dahe.gldriver.net.RxHttpCallBack import com.dahe.gldriver.oss.OssServiceUtil +import com.dahe.gldriver.utils.OcrUtils import com.dahe.glex.bean.UserBean import com.dahe.mylibrary.base.BaseActivity import com.dahe.mylibrary.net.CommonResponseBean @@ -17,6 +18,7 @@ import com.dahe.mylibrary.utils.ActivityUtils import com.dahe.mylibrary.utils.ImageLoader import com.dahe.mylibrary.utils.PickerUtils import com.dahe.mylibrary.utils.PopsUtils +import com.dahe.mylibrary.utils.TimeUtil import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers import io.reactivex.rxjava3.functions.Function import io.reactivex.rxjava3.schedulers.Schedulers @@ -47,10 +49,10 @@ class AuthPersonActivity : BaseActivity() { btnOk.setOnClickListener { perInfoBean.run { - idcardNo = inBinding.etId.toString() - idcardName = inBinding.etName.toString() - idcardEffectiveStart = inBinding.tvStart.toString() - idcardEffectiveEnd = inBinding.tvEnd.toString() + idcardNo = inBinding.etId.text.toString() + idcardName = inBinding.etName.text.toString() + idcardEffectiveStart = inBinding.tvStart.text.toString() + idcardEffectiveEnd = inBinding.tvEnd.text.toString() } DataManager.getInstance().setUpDriverIdCard(perInfoBean) @@ -58,7 +60,6 @@ class AuthPersonActivity : BaseActivity() { .subscribe(BaseObserver(mContext,object : RxHttpCallBack(){ override fun onSuccess(t: CommonResponseBean) { super.onSuccess(t) - println("lijiaaaaa") ActivityUtils.startActivity(mContext, AuthDriverActivity::class.java) } })) @@ -68,79 +69,38 @@ class AuthPersonActivity : BaseActivity() { tvStart.run { setOnClickListener { PickerUtils.getInstance() - .showDate(this@AuthPersonActivity, "有效起始日期") { year, month, day -> - this.text = "$year-$month-$day" + .showDate(this@AuthPersonActivity, "有效起始日期") { date -> + this.text = date } } } tvEnd.run { setOnClickListener { PickerUtils.getInstance() - .showDate(this@AuthPersonActivity, "有效结束日期") { year, month, day -> - this.text = "$year-$month-$day" + .showDate(this@AuthPersonActivity, "有效结束日期") { date -> + this.text = date } } } ivFront.setOnClickListener { - PopsUtils.getInstance().showSimSelPic(mContext) { - var data = it[0] - - val path: String - if (data.isCut && !data.isCompressed) { - // 裁剪过 - path = data.cutPath - } else if (data.isCompressed || (data.isCut && data.isCompressed)) { - // 压缩过,或者裁剪同时压缩过,以最终压缩过图片为准 - path = data.compressPath - } else { - // 原图 - path = data.path + OcrUtils.getInstance().ocrPerson(mContext,this@AuthPersonActivity){picPath,result-> + ImageLoader.getInstance().loadRoundImage(mContext, picPath.locPic, 12, ivFront) + perInfoBean.idcardFrontUrl = picPath.picPath + result.data.face?.data.let { + it?.run { + perInfoBean.run { + idcardNo = idNumber + idcardName = name + idcardEthnicity = ethnicity + idcardSex = if (sex == "男") "0" else "1" + } + } + binding.run { + etName.setText(it?.name) + etId.setText(it?.idNumber) + } } - ImageLoader.getInstance().loadRoundImage(mContext, data.realPath, 12, ivFront) - - val file = File(data.realPath) - val filePic: MultipartBody.Part = MultipartBody.Part.createFormData( - "file", - file.getName(), - file.asRequestBody("multipart/form-data".toMediaTypeOrNull()) - ) - - DataManager.getInstance().uploadToOss(filePic).flatMap { - perInfoBean.idcardFrontUrl = it.data.url - DataManager.getInstance().recognizeIdcard(it.data.url) - }.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()) - .subscribe( - BaseObserver( - mContext, - object : RxHttpCallBack(this@AuthPersonActivity) { - override fun onSuccess(t: CommonResponseBean) { - super.onSuccess(t) - t.data.data.face?.data.let { - it?.run { - perInfoBean.run { - idcardNo = idNumber - idcardName = name - idcardSex = if (sex == "男") "0" else "1" - } - } - binding.run { - etName.setText(it?.name) - etId.setText(it?.idNumber) - } - } - } - }) - ) - - -// ossServiceUtil.asyncPutImage(path, null) -// ossServiceUtil.setResultCallBack { data, oldPath -> -// { -// -// -// } -// } } } @@ -183,9 +143,9 @@ class AuthPersonActivity : BaseActivity() { if (it.data.validPeriod?.contains("-") == true) { val split = it.data.validPeriod.split("-") binding.run { - tvStart.text = split[0] + tvStart.text = TimeUtil.changeDateFormat(split[0]) tvEnd.text = - if (split.size == 2) split[1] else "" + if (split.size == 2) TimeUtil.changeDateFormat(split[1]) else "" } } } diff --git a/app/src/main/java/com/dahe/gldriver/ui/account/authperson/AuthQualificationActivity.kt b/app/src/main/java/com/dahe/gldriver/ui/account/authperson/AuthQualificationActivity.kt index b893eb9..c5ae32b 100644 --- a/app/src/main/java/com/dahe/gldriver/ui/account/authperson/AuthQualificationActivity.kt +++ b/app/src/main/java/com/dahe/gldriver/ui/account/authperson/AuthQualificationActivity.kt @@ -38,11 +38,11 @@ class AuthQualificationActivity : BaseActivity tvDate.run { setOnClickListener { PickerUtils.getInstance() - .showDate( + .showDateSim( this@AuthQualificationActivity, "选择有效期至" - ) { year, month, day -> - this.text = "$year-$month-$day" + ) { date -> + this.text = date } } } @@ -53,7 +53,11 @@ class AuthQualificationActivity : BaseActivity ossServiceUtil.asyncPutImage(data.realPath, this@AuthQualificationActivity) ossServiceUtil.setResultCallBack { data, oldPath -> upQuaInfo.qualificationCertificatePhotoUrl = oldPath - ImageLoader.getInstance().loadRoundImage(mContext, it[0].path, 12, ivFront) + runOnUiThread { + ImageLoader.getInstance() + .loadRoundImage(mContext, it[0].realPath, 12, ivFront) + } + } } diff --git a/app/src/main/java/com/dahe/gldriver/ui/account/authperson/AuthRoadActivity.kt b/app/src/main/java/com/dahe/gldriver/ui/account/authperson/AuthRoadActivity.kt index 35c8979..63d7f78 100644 --- a/app/src/main/java/com/dahe/gldriver/ui/account/authperson/AuthRoadActivity.kt +++ b/app/src/main/java/com/dahe/gldriver/ui/account/authperson/AuthRoadActivity.kt @@ -32,7 +32,7 @@ class AuthRoadActivity : BaseActivity() { } tvDate.setOnClickListener { - PickerUtils.getInstance().showDate(this@AuthRoadActivity){ year, month, day -> + PickerUtils.getInstance().showDate(this@AuthRoadActivity){ date -> } } diff --git a/app/src/main/java/com/dahe/gldriver/ui/account/authteam/AuthTeamActivity.kt b/app/src/main/java/com/dahe/gldriver/ui/account/authteam/AuthTeamActivity.kt index ae2e56c..0e1ca4f 100644 --- a/app/src/main/java/com/dahe/gldriver/ui/account/authteam/AuthTeamActivity.kt +++ b/app/src/main/java/com/dahe/gldriver/ui/account/authteam/AuthTeamActivity.kt @@ -20,6 +20,7 @@ import com.dahe.mylibrary.utils.LoadingUtils import com.dahe.mylibrary.utils.LoadingUtils3 import com.dahe.mylibrary.utils.PickerUtils import com.dahe.mylibrary.utils.PopsUtils +import com.dahe.mylibrary.utils.TimeUtil import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers import io.reactivex.rxjava3.schedulers.Schedulers import okhttp3.MediaType.Companion.toMediaTypeOrNull @@ -34,7 +35,9 @@ import java.io.File * @Description 个人车队认证 */ class AuthTeamActivity : BaseActivity(), View.OnClickListener { - private var checkTeamType = 0 //1代表运输公司,0代表个人车队 + private var checkTeamType = 1 //1代表运输公司,0代表个人车队 + + var fff : MutableList = mutableListOf("sdfsdf","asdfasdf") var ossServiceUtil: OssServiceUtil = OssServiceUtil.getInstance() @@ -52,6 +55,13 @@ class AuthTeamActivity : BaseActivity(), View.OnClickLi ivBusiness.setOnClickListener { OcrUtils.getInstance() .ocrBusinessCard(mContext, this@AuthTeamActivity) { picPath, result -> + upComInfoBean.businessLicensePhoneUrl = picPath.picPath + + result.data?.run { + upComInfoBean.businessLicenseCreditCode = creditCode + upComInfoBean.businessLicenseEffectiveStart= TimeUtil.changeDateNoneFormat(validFromDate) + upComInfoBean.businessLicenseEffectiveEnd=TimeUtil.changeDateNoneFormat(validToDate) + } ImageLoader.getInstance() .loadRoundImage(mContext, picPath.locPic, 12, ivBusiness) } @@ -86,13 +96,12 @@ class AuthTeamActivity : BaseActivity(), View.OnClickLi result.data.back?.data?.run { if (validPeriod.contains("-")) { val split = validPeriod.split("-") - tvStart.text = split[0] - tvEnd.text = if (split.size == 2) split[1] else "" + tvStart.text = TimeUtil.changeDateFormat(split[0]) + tvEnd.text = if (split.size == 2) TimeUtil.changeDateFormat(split[1]) else "" upComInfoBean.run { - idcardEffectiveStart = split[0] - idcardEffectiveEnd = if (split.size == 2) split[1] else "" +// idcardEffectiveStart = TimeUtil.changeDateFormat(split[0]) +// idcardEffectiveEnd = if (split.size == 2) TimeUtil.changeDateFormat(split[1]) else "" idcardBackUrl = picPath.picPath - } } } @@ -129,14 +138,13 @@ class AuthTeamActivity : BaseActivity(), View.OnClickLi result.data.back?.data?.run { if (validPeriod.contains("-")) { val split = validPeriod.split("-") - tvPerStart.text = split[0] - tvPerEnd.text = if (split.size == 2) split[1] else "" + tvPerStart.text = TimeUtil.changeDateFormat(split[0]) + tvPerEnd.text = if (split.size == 2) TimeUtil.changeDateFormat(split[1]) else "" upPerInfoBean.run { - idcardEffectiveStart = split[0] - idcardEffectiveEnd = if (split.size == 2) split[1] else "" + idcardEffectiveStart = tvPerStart.text.toString() + idcardEffectiveEnd = tvPerEnd.text.toString() idcardBackUrl = picPath.picPath - } } } @@ -164,7 +172,8 @@ class AuthTeamActivity : BaseActivity(), View.OnClickLi //道路运输许可证 ivRoad.setOnClickListener { PopsUtils.getInstance().showSimSelPic(mContext) { - ImageLoader.getInstance().loadRoundImage(mContext, it[0].path, 12, ivRoad) +// upComInfoBean.roadLicensePhotoUrl = it[0].realPath + ImageLoader.getInstance().loadRoundImage(mContext, it[0].realPath, 12, ivRoad) } } @@ -189,15 +198,15 @@ class AuthTeamActivity : BaseActivity(), View.OnClickLi tvComDate.setOnClickListener { PickerUtils.getInstance() - .showDate(this@AuthTeamActivity, "请选择有效期至") { year, month, day -> - tvComDate.text = "$year-$month-$day" + .showDate(this@AuthTeamActivity, "请选择有效期至") { date-> + tvComDate.text = date } } tvPerStart.setOnClickListener { PickerUtils.getInstance() - .showDate(this@AuthTeamActivity, "请选择有效期至") { year, month, day -> - tvPerStart.text = "$year-$month-$day" + .showDate(this@AuthTeamActivity, "请选择有效期至") { date -> + tvPerStart.text = date } } diff --git a/app/src/main/java/com/dahe/gldriver/ui/home/HomeFragment.kt b/app/src/main/java/com/dahe/gldriver/ui/home/HomeFragment.kt index b7bbb25..f7e388e 100644 --- a/app/src/main/java/com/dahe/gldriver/ui/home/HomeFragment.kt +++ b/app/src/main/java/com/dahe/gldriver/ui/home/HomeFragment.kt @@ -8,18 +8,26 @@ import com.chad.library.adapter4.BaseQuickAdapter import com.dahe.gldriver.R import com.dahe.gldriver.adapter.GridItemAdapter import com.dahe.gldriver.adapter.WaybillAdapter +import com.dahe.gldriver.bean.AuthTeamBean import com.dahe.gldriver.bean.GridBean import com.dahe.gldriver.databinding.FragmentHomeBinding +import com.dahe.gldriver.net.BaseObserver +import com.dahe.gldriver.net.DataManager +import com.dahe.gldriver.net.RxHttpCallBack import com.dahe.gldriver.ui.HomeActivity import com.dahe.gldriver.ui.waybill.activity.WaybillDetailActivity +import com.dahe.glex.bean.OrderBean import com.dahe.glex.bean.WayBillBean import com.dahe.mylibrary.base.BaseFragment import com.dahe.mylibrary.callback.RefreshCallBack +import com.dahe.mylibrary.net.CommonResponseBean import com.dahe.mylibrary.recycleviewswipe.RecycleViewDivider import com.dahe.mylibrary.utils.ActivityUtils import com.dahe.mylibrary.utils.ConvertUtils import com.dahe.mylibrary.utils.ToastUtils import com.flyco.tablayout.listener.OnTabSelectListener +import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers +import io.reactivex.rxjava3.schedulers.Schedulers import okhttp3.internal.wait /** @@ -53,6 +61,14 @@ class HomeFragment : BaseFragment(), RefreshCallBack { binding.tvMar.isSelected = true + DataManager.getInstance().orderList() + .subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()) + .subscribe(BaseObserver(mContext,object : RxHttpCallBack>(){ + override fun onSuccess(t: CommonResponseBean>) { + super.onSuccess(t) + } + })) + } diff --git a/app/src/main/java/com/dahe/gldriver/utils/OcrUtils.kt b/app/src/main/java/com/dahe/gldriver/utils/OcrUtils.kt index 9143761..111d037 100644 --- a/app/src/main/java/com/dahe/gldriver/utils/OcrUtils.kt +++ b/app/src/main/java/com/dahe/gldriver/utils/OcrUtils.kt @@ -11,8 +11,9 @@ import com.dahe.gldriver.net.RxHttpCallBack import com.dahe.gldriver.oss.OssServiceUtil import com.dahe.mylibrary.base.SingletonNoPHolder import com.dahe.mylibrary.net.CommonResponseBean -import com.dahe.mylibrary.utils.PickerUtils +import com.dahe.mylibrary.utils.LoadingUtils import com.dahe.mylibrary.utils.PopsUtils +import com.dahe.mylibrary.utils.ToastUtils import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers import io.reactivex.rxjava3.schedulers.Schedulers @@ -32,21 +33,38 @@ class OcrUtils private constructor() { * */ fun ocrPerson(context: Context, activity: AppCompatActivity, listener: OnOcrPicResultListener) { PopsUtils.getInstance().showSimSelPic(context) { result -> + LoadingUtils.instance.showLoading(activity) //上传oss得到图片地址 OssServiceUtil.getInstance().run { - asyncPutImage(result[0].realPath, activity) + asyncPutImage(result[0].realPath, null) setResultCallBack { data, oldPath -> DataManager.getInstance().recognizeIdcard(oldPath) .subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()) - .subscribe(BaseObserver(context, object : RxHttpCallBack(activity) { + .subscribe(BaseObserver(context, object : RxHttpCallBack() { override fun onSuccess(t: CommonResponseBean) { super.onSuccess(t) + LoadingUtils.instance.dissLoading() t.data?.let { listener.onSuccResult( PicPath(result[0].realPath, oldPath), it ) } } + + override fun onCodeError( + mContext: Context?, + t: CommonResponseBean + ) { +// super.onCodeError(mContext, t) + LoadingUtils.instance.dissLoading() + if (t.code == 500) { + if (t.msg.contains("code: 400, The image type does not match the API operation")) { + ToastUtils.showToast(mContext, "图片识别失败,请重新上传") + } else { + ToastUtils.showToast(mContext, t.msg) + } + } + } })) } } @@ -57,20 +75,47 @@ class OcrUtils private constructor() { * 驾驶证ocr识别 * */ fun ocrDriver(context: Context, activity: AppCompatActivity, listener: OnOcrPicResultListener) { - PopsUtils.getInstance().showSimSelPic(context) {result-> + PopsUtils.getInstance().showSimSelPic(context) { result -> + LoadingUtils.instance.showLoading(activity) //上传oss得到图片地址 OssServiceUtil.getInstance().run { - asyncPutImage(result[0].realPath, activity) + asyncPutImage(result[0].realPath, null) setResultCallBack { data, oldPath -> DataManager.getInstance().recognizeDrivingLicense(oldPath) .subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()) .subscribe( BaseObserver( context, - object : RxHttpCallBack(activity) { + object : RxHttpCallBack() { override fun onSuccess(t: CommonResponseBean) { super.onSuccess(t) - t.data?.let { listener.onSuccResult(PicPath(result[0].realPath, oldPath), it) } + LoadingUtils.instance.dissLoading() + t.data?.let { + listener.onSuccResult( + PicPath( + result[0].realPath, + oldPath + ), it + ) + } + } + + override fun onCodeError( + mContext: Context?, + t: CommonResponseBean + ) { +// super.onCodeError(mContext, t) + LoadingUtils.instance.dissLoading() + if (t.code == 500) { + if (t.msg.contains("code: 400, The image type does not match the API operation")) { + ToastUtils.showToast( + mContext, + "图片识别失败,请重新上传" + ) + } else { + ToastUtils.showToast(mContext, t.msg) + } + } } }) ) @@ -88,7 +133,7 @@ class OcrUtils private constructor() { activity: AppCompatActivity, listener: OnOcrPicResultListener ) { - PopsUtils.getInstance().showSimSelPic(context) {result-> + PopsUtils.getInstance().showSimSelPic(context) { result -> //上传oss得到图片地址 OssServiceUtil.getInstance().run { asyncPutImage(result[0].realPath, activity) @@ -101,7 +146,32 @@ class OcrUtils private constructor() { object : RxHttpCallBack(activity) { override fun onSuccess(t: CommonResponseBean) { super.onSuccess(t) - t.data?.let { listener.onSuccResult(PicPath(result[0].realPath, oldPath), it) } + t.data?.let { + listener.onSuccResult( + PicPath( + result[0].realPath, + oldPath + ), it + ) + } + } + + override fun onCodeError( + mContext: Context?, + t: CommonResponseBean + ) { +// super.onCodeError(mContext, t) + LoadingUtils.instance.dissLoading() + if (t.code == 500) { + if (t.msg.contains("code: 400, The image type does not match the API operation")) { + ToastUtils.showToast( + mContext, + "图片识别失败,请重新上传" + ) + } else { + ToastUtils.showToast(mContext, t.msg) + } + } } }) ) @@ -119,7 +189,7 @@ class OcrUtils private constructor() { activity: AppCompatActivity, listener: OnOcrPicResultListener ) { - PopsUtils.getInstance().showSimSelPic(context) {result-> + PopsUtils.getInstance().showSimSelPic(context) { result -> //上传oss得到图片地址 OssServiceUtil.getInstance().run { asyncPutImage(result[0].realPath, activity) @@ -132,7 +202,32 @@ class OcrUtils private constructor() { object : RxHttpCallBack(activity) { override fun onSuccess(t: CommonResponseBean) { super.onSuccess(t) - t.data?.let { listener.onSuccResult(PicPath(result[0].realPath, oldPath), it) } + t.data?.let { + listener.onSuccResult( + PicPath( + result[0].realPath, + oldPath + ), it + ) + } + } + + override fun onCodeError( + mContext: Context?, + t: CommonResponseBean + ) { +// super.onCodeError(mContext, t) + LoadingUtils.instance.dissLoading() + if (t.code == 500) { + if (t.msg.contains("code: 400, The image type does not match the API operation")) { + ToastUtils.showToast( + mContext, + "图片识别失败,请重新上传" + ) + } else { + ToastUtils.showToast(mContext, t.msg) + } + } } }) ) diff --git a/mylibrary/src/main/java/com/dahe/mylibrary/callback/OnMyDatePickedListener.kt b/mylibrary/src/main/java/com/dahe/mylibrary/callback/OnMyDatePickedListener.kt new file mode 100644 index 0000000..5b903ae --- /dev/null +++ b/mylibrary/src/main/java/com/dahe/mylibrary/callback/OnMyDatePickedListener.kt @@ -0,0 +1,11 @@ +package com.dahe.mylibrary.callback + +/** + * @ClassName OnMyDatePickedListener + * @Author john + * @Date 2024/3/1 10:26 + * @Description TODO + */ +fun interface OnMyDatePickedListener { + fun onDatePicked(date: String) +} \ No newline at end of file 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 8c8bd99..d0bd273 100644 --- a/mylibrary/src/main/java/com/dahe/mylibrary/net/CommonResponseBean.java +++ b/mylibrary/src/main/java/com/dahe/mylibrary/net/CommonResponseBean.java @@ -11,9 +11,9 @@ public class CommonResponseBean implements Serializable { private int code; private String info; private String msg; - private String url; private int res; - private String fileName; + private int total; + private boolean success; public int getRes() { @@ -64,19 +64,12 @@ public class CommonResponseBean implements Serializable { this.success = success; } - public String getUrl() { - return url; + + public int getTotal() { + return total; } - public void setUrl(String url) { - this.url = url; - } - - public String getFileName() { - return fileName; - } - - public void setFileName(String fileName) { - this.fileName = fileName; + public void setTotal(int total) { + this.total = total; } } 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 1003b74..9141279 100644 --- a/mylibrary/src/main/java/com/dahe/mylibrary/net/JsonInterceptor.java +++ b/mylibrary/src/main/java/com/dahe/mylibrary/net/JsonInterceptor.java @@ -49,14 +49,14 @@ public class JsonInterceptor implements Interceptor { 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()); - } - } +// if (-1 == code) { +// jsonObject.put("data", new JSONObject()); +// throw new ResultException(); +// } else { +// if (TextUtils.isEmpty(str)) { +// jsonObject.put("data", new JSONObject()); +// } +// } String data = jsonObject.toString(); responseBody = ResponseBody.create(MediaType.parse("application/json; charset=utf-8"), data); diff --git a/mylibrary/src/main/java/com/dahe/mylibrary/utils/LoadingUtils.kt b/mylibrary/src/main/java/com/dahe/mylibrary/utils/LoadingUtils.kt index 875af21..1dfa2a4 100644 --- a/mylibrary/src/main/java/com/dahe/mylibrary/utils/LoadingUtils.kt +++ b/mylibrary/src/main/java/com/dahe/mylibrary/utils/LoadingUtils.kt @@ -1,6 +1,7 @@ package com.dahe.mylibrary.utils import androidx.appcompat.app.AppCompatActivity +import com.dahe.mylibrary.R import com.lxj.xpopup.XPopup import com.lxj.xpopup.impl.LoadingPopupView @@ -28,7 +29,7 @@ class LoadingUtils private constructor() { loadingPopup = XPopup.Builder(activity) .dismissOnBackPressed(false) .isLightNavigationBar(true) - .asLoading(message, LoadingPopupView.Style.ProgressBar) + .asLoading(message, LoadingPopupView.Style.Spinner) return loadingPopup } @@ -38,7 +39,8 @@ class LoadingUtils private constructor() { loadingPopup = XPopup.Builder(activity) .dismissOnBackPressed(true) .isLightNavigationBar(true) - .asLoading(message, LoadingPopupView.Style.ProgressBar) +// .asLoading(message, R.layout.custom_loading_popup,LoadingPopupView.Style.Spinner) + .asLoading(message, LoadingPopupView.Style.Spinner) .show() as LoadingPopupView } diff --git a/mylibrary/src/main/java/com/dahe/mylibrary/utils/PickerUtils.kt b/mylibrary/src/main/java/com/dahe/mylibrary/utils/PickerUtils.kt index 1d4430a..404e02f 100644 --- a/mylibrary/src/main/java/com/dahe/mylibrary/utils/PickerUtils.kt +++ b/mylibrary/src/main/java/com/dahe/mylibrary/utils/PickerUtils.kt @@ -2,8 +2,11 @@ package com.dahe.mylibrary.utils import androidx.appcompat.app.AppCompatActivity import com.dahe.mylibrary.base.SingletonNoPHolder +import com.dahe.mylibrary.callback.OnMyDatePickedListener import com.github.gzuliyujiang.wheelpicker.BirthdayPicker +import com.github.gzuliyujiang.wheelpicker.DatePicker import com.github.gzuliyujiang.wheelpicker.OptionPicker +import com.github.gzuliyujiang.wheelpicker.annotation.DateMode import com.github.gzuliyujiang.wheelpicker.contract.OnDatePickedListener import com.github.gzuliyujiang.wheelpicker.contract.OnOptionPickedListener import com.github.gzuliyujiang.wheelpicker.entity.DateEntity @@ -30,17 +33,46 @@ class PickerUtils private constructor() { activity: AppCompatActivity, title: String = "", dateEntity: DateEntity = DateEntity.today(), - listener: OnDatePickedListener + listener: OnMyDatePickedListener ) { val picker = BirthdayPicker(activity) picker.setTitle(title) + picker.setDefaultValue(1991, 11, 11) picker.setDefaultValue(dateEntity.year, dateEntity.month, dateEntity.day) - picker.setOnDatePickedListener(listener) + picker.setOnDatePickedListener { year, month, day -> + if (listener != null) + listener.onDatePicked("$year-${if (month <= 9) "0${month}" else month}-${if (day <= 9) "0${day}" else day}") + } picker.wheelLayout.setResetWhenLinkage(false) picker.show() } + /** + * TODO + * 底部弹出日期选择 + * @param activity + * @param title 日期选择title + * @param listener + */ + fun showDateSim( + activity: AppCompatActivity, + title: String = "", + listener: OnMyDatePickedListener + ) { + val picker = DatePicker(activity) + picker.setTitle(title) + val wheelLayout = picker.wheelLayout + wheelLayout.setDateMode(DateMode.YEAR_MONTH_DAY) + wheelLayout.setDateLabel("年", "月", "日") + picker.setOnDatePickedListener { year, month, day -> + listener.onDatePicked("$year-${if (month <= 9) "0${month}" else month}-${if (day <= 9) "0${day}" else day}") + + } + picker.show() + } + + /** * 选择驾驶证类型 * @param activity diff --git a/mylibrary/src/main/java/com/dahe/mylibrary/utils/TimeUtil.java b/mylibrary/src/main/java/com/dahe/mylibrary/utils/TimeUtil.java index 0cc51bc..9bcaa33 100644 --- a/mylibrary/src/main/java/com/dahe/mylibrary/utils/TimeUtil.java +++ b/mylibrary/src/main/java/com/dahe/mylibrary/utils/TimeUtil.java @@ -177,6 +177,9 @@ public final class TimeUtil { */ private static final DateFormat DEFAULT_FORMAT = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.getDefault()); + private static final DateFormat DEFAULT_FORMAT_DATE = new SimpleDateFormat("yyyy-MM-dd", Locale.getDefault()); + private static final DateFormat DEFAULT_FORMAT_DATE_POINT = new SimpleDateFormat("yyyy.MM.dd", Locale.getDefault()); + private static final DateFormat DEFAULT_FORMAT_DATE_NONE = new SimpleDateFormat("yyyyMMdd", Locale.getDefault()); private static final DateFormat DEFAULT_FORMAT2 = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZSS:SS", Locale.getDefault()); private static final DateFormat DEFAULT_FORMAT3 = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ", Locale.getDefault()); @@ -215,7 +218,7 @@ public final class TimeUtil { * @return 毫秒时间戳 */ public static long string2Millis(final String time) { - if (TextUtils.isEmpty(time)){ + if (TextUtils.isEmpty(time)) { return -1; } return string2Millis(time, DEFAULT_FORMAT); @@ -242,10 +245,10 @@ public final class TimeUtil { * 将时间字符串转为时间戳 *

time格式为format

* - * @param time 时间字符串 + * @param time 时间字符串 * @return 毫秒时间戳 */ - public static String string2String(final String time,final SimpleDateFormat format) { + public static String string2String(final String time, final SimpleDateFormat format) { try { return date2String(format.parse(time)); // return DEFAULT_FORMAT.format(DEFAULT_FORMAT2.parse(time).getTime()); @@ -421,7 +424,7 @@ public final class TimeUtil { * @return 合适型两个时间差 */ public static String getFitTimeSpan(final String time0, final String time1, final int precision) { - if (TextUtils.isEmpty(time0)||TextUtils.isEmpty(time1)){ + if (TextUtils.isEmpty(time0) || TextUtils.isEmpty(time1)) { return ""; } return millis2FitTimeSpan(Math.abs(string2Millis(time0, DEFAULT_FORMAT) - string2Millis(time1, DEFAULT_FORMAT)), precision); @@ -638,6 +641,24 @@ public final class TimeUtil { return getFitTimeSpan(getNowString(format), time, format, precision); } + + public static String changeDateFormat(String date) { + long l = string2Millis(date,DEFAULT_FORMAT_DATE_POINT); + if (l != -1) { + return millis2String(l, DEFAULT_FORMAT_DATE); + } + return ""; + } + + + public static String changeDateNoneFormat(String date) { + long l = string2Millis(date,DEFAULT_FORMAT_DATE_NONE); + if (l != -1) { + return millis2String(l, DEFAULT_FORMAT_DATE); + } + return ""; + } + /** * 获取合适型与当前时间的差 * @@ -1685,7 +1706,7 @@ public final class TimeUtil { * @param compareDate * @return */ - public static boolean compareDate(String nowDate, String compareDate,DateFormat format) { + public static boolean compareDate(String nowDate, String compareDate, DateFormat format) { DateFormat df = format; try { Date now = df.parse(nowDate); diff --git a/mylibrary/src/main/res/layout/custom_loading_popup.xml b/mylibrary/src/main/res/layout/custom_loading_popup.xml new file mode 100644 index 0000000..360d73e --- /dev/null +++ b/mylibrary/src/main/res/layout/custom_loading_popup.xml @@ -0,0 +1,16 @@ + + + + + + \ No newline at end of file diff --git a/mylibrary/src/main/res/values/colors.xml b/mylibrary/src/main/res/values/colors.xml index 2f3fa90..90deea8 100644 --- a/mylibrary/src/main/res/values/colors.xml +++ b/mylibrary/src/main/res/values/colors.xml @@ -1,7 +1,7 @@ - #28B950 - #28B950 + #FFFFFF + #FFFFFF #D81B60 #FFFFFFFF