diff --git a/app/src/main/java/com/cheng/blzb/bean/ConfigEntity.kt b/app/src/main/java/com/cheng/blzb/bean/ConfigEntity.kt index ed08c91..75eb22c 100644 --- a/app/src/main/java/com/cheng/blzb/bean/ConfigEntity.kt +++ b/app/src/main/java/com/cheng/blzb/bean/ConfigEntity.kt @@ -36,4 +36,7 @@ class ConfigEntity { @SerializedName("client.pay.type") //全局支付方式 var payType: List = emptyList() + + @SerializedName("client.invoice.urgent.interval.minutes") //加急开票间隔分钟数 + var invoiceIntervalMinutes: String? = null } \ No newline at end of file diff --git a/app/src/main/java/com/cheng/blzb/bean/OrderEntity.kt b/app/src/main/java/com/cheng/blzb/bean/OrderEntity.kt index 7f1c2f6..7f7c521 100644 --- a/app/src/main/java/com/cheng/blzb/bean/OrderEntity.kt +++ b/app/src/main/java/com/cheng/blzb/bean/OrderEntity.kt @@ -3,11 +3,12 @@ package com.cheng.blzb.bean import java.io.Serializable data class OrderEntity( + val id: String, val create_time: String, val goods_name: String, - val id: String, val invoice_major: Boolean, val invoice_status: String, + val invoice_url: String, val out_trade_no: String, val pay_params: String, val pay_time: String, diff --git a/app/src/main/java/com/cheng/blzb/manager/UserConfigManager.kt b/app/src/main/java/com/cheng/blzb/manager/UserConfigManager.kt index 8c6abc9..5b85458 100644 --- a/app/src/main/java/com/cheng/blzb/manager/UserConfigManager.kt +++ b/app/src/main/java/com/cheng/blzb/manager/UserConfigManager.kt @@ -85,6 +85,7 @@ object UserConfigManager { saveAdSwitch(data.config!!.adSwitch) saveServicePhoneList(data.config!!.servicePhoneList) savePayType(data.config!!.payType) + saveInvoiceIntervalTime(data.config!!.invoiceIntervalMinutes) } } catch (e : Exception) { e.printStackTrace() @@ -229,6 +230,17 @@ object UserConfigManager { return emptyList() } + /** + * 加急开票间隔时间 + */ + private fun saveInvoiceIntervalTime(minutes: String?) { + MMKVUtils.put("invoice_interval_time", minutes) + } + + fun getInvoiceIntervalTime(): String? { + return MMKVUtils.getString("invoice_interval_time") + } + /** * 搜索排序 */ diff --git a/app/src/main/java/com/cheng/blzb/ui/fragment/mine/order/invoice/InvoiceFragment.kt b/app/src/main/java/com/cheng/blzb/ui/fragment/mine/order/invoice/InvoiceFragment.kt index 1aeab2d..84666f9 100644 --- a/app/src/main/java/com/cheng/blzb/ui/fragment/mine/order/invoice/InvoiceFragment.kt +++ b/app/src/main/java/com/cheng/blzb/ui/fragment/mine/order/invoice/InvoiceFragment.kt @@ -3,10 +3,12 @@ package com.cheng.blzb.ui.fragment.mine.order.invoice import android.graphics.Color import android.os.Build import android.text.TextUtils +import android.view.View import com.cheng.blzb.R import com.cheng.blzb.bean.OrderEntity import com.cheng.blzb.databinding.FragmentInvoiceBinding import com.cheng.blzb.event.OrderEvent +import com.efs.sdk.memleaksdk.monitor.internal.bi import com.example.base.common.RxBus import com.example.base.extensions.gone import com.example.base.extensions.onClick @@ -37,6 +39,9 @@ class InvoiceFragment : BaseFragment() arguments?.getSerializable("item") as? OrderEntity } + binding.rb2.visibility = if (orderInfo!!.invoice_major) View.VISIBLE else View.GONE + binding.tv2.visibility = if (orderInfo!!.invoice_major) View.VISIBLE else View.GONE + binding.tvAmount.text = DecimalFormat("0.00").format(orderInfo!!.total_fee.toFloat()) } diff --git a/app/src/main/java/com/cheng/blzb/ui/fragment/mine/order/list/OrderAdapter.kt b/app/src/main/java/com/cheng/blzb/ui/fragment/mine/order/list/OrderAdapter.kt index 984828f..f11c0f9 100644 --- a/app/src/main/java/com/cheng/blzb/ui/fragment/mine/order/list/OrderAdapter.kt +++ b/app/src/main/java/com/cheng/blzb/ui/fragment/mine/order/list/OrderAdapter.kt @@ -1,11 +1,13 @@ package com.cheng.blzb.ui.fragment.mine.order.list -import android.graphics.Color import android.text.TextUtils +import androidx.core.graphics.toColorInt import com.chad.library.adapter.base.BaseQuickAdapter import com.chad.library.adapter.base.viewholder.BaseViewHolder import com.cheng.blzb.R import com.cheng.blzb.bean.OrderEntity +import com.cheng.blzb.manager.UserConfigManager +import com.cheng.blzb.utils.DateUtils import com.cheng.blzb.widget.CommonShapeView import java.text.DecimalFormat @@ -41,38 +43,72 @@ class OrderAdapter : BaseQuickAdapter(R.layout.list when (item.status) { "1" -> { status.text = "待支付" - status.setTextColor(Color.parseColor("#FF4C4C")) - status.setBgColor(Color.parseColor("#FFEDED")) + status.setTextColor("#FF4C4C".toColorInt()) + status.setBgColor("#FFEDED".toColorInt()) if (item.pay_type == "bank") { holder.setVisible(R.id.btn_certificate, true) } } "2" -> { - status.text = "已支付" - status.setTextColor(Color.parseColor("#2090FE")) - status.setBgColor(Color.parseColor("#E8F3FE")) - if (item.invoice_status == "1") { - holder.setVisible(R.id.btn_invoice, true) + when (item.invoice_status) { + "1" -> { //1:未开票 2:开票中 3:催开票4:开票完成 + status.text = "已支付" + status.setTextColor("#2090FE".toColorInt()) + status.setBgColor("#E8F3FE".toColorInt()) + + holder.setText(R.id.btn_invoice, "开具发票") + holder.setVisible(R.id.btn_invoice, true) + } + "2" -> { + status.text = "开票中" + status.setTextColor("#FF9B2F".toColorInt()) + status.setBgColor("#1AFF9B2F".toColorInt()) + + val intervalMinutes = UserConfigManager.getInvoiceIntervalTime() + val intervalTime = if (!TextUtils.isEmpty(intervalMinutes)) { + intervalMinutes!!.toInt() * 60 * 1000L + } else { + 3 * 24 * 60 * 60 * 1000L + } + val payTime = DateUtils.strDateToLong(item.pay_time, "yyyy-MM-dd HH:mm:ss") + if (intervalTime + payTime <= System.currentTimeMillis()) { + holder.setText(R.id.btn_invoice, "加急开票") + holder.setVisible(R.id.btn_invoice, true) + } + } + "3" -> { + status.text = "开票中" + status.setTextColor("#FF9B2F".toColorInt()) + status.setBgColor("#1AFF9B2F".toColorInt()) + } + "4" -> { + status.text = "已开票" + status.setTextColor("#125FFE".toColorInt()) + status.setBgColor("#E7EFFE".toColorInt()) + + holder.setText(R.id.btn_invoice, "查看发票") + holder.setVisible(R.id.btn_invoice, true) + } } } "3" -> { status.text = "已退款" - status.setTextColor(Color.parseColor("#CCCCCC")) - status.setBgColor(Color.parseColor("#EEEEEE")) + status.setTextColor("#CCCCCC".toColorInt()) + status.setBgColor("#EEEEEE".toColorInt()) } "4" -> { status.text = "已取消" - status.setTextColor(Color.parseColor("#CCCCCC")) - status.setBgColor(Color.parseColor("#EEEEEE")) + status.setTextColor("#CCCCCC".toColorInt()) + status.setBgColor("#EEEEEE".toColorInt()) } "5" -> { status.text = "待审核" - status.setTextColor(Color.parseColor("#FF9B2F")) - status.setBgColor(Color.parseColor("#1AFF9B2F")) + status.setTextColor("#FF9B2F".toColorInt()) + status.setBgColor("#1AFF9B2F".toColorInt()) } } } diff --git a/app/src/main/java/com/cheng/blzb/ui/fragment/mine/order/list/OrderListFragment.kt b/app/src/main/java/com/cheng/blzb/ui/fragment/mine/order/list/OrderListFragment.kt index 86571b7..c66a876 100644 --- a/app/src/main/java/com/cheng/blzb/ui/fragment/mine/order/list/OrderListFragment.kt +++ b/app/src/main/java/com/cheng/blzb/ui/fragment/mine/order/list/OrderListFragment.kt @@ -4,10 +4,14 @@ import android.os.Bundle import com.cheng.blzb.R import com.cheng.blzb.databinding.FragmentOrderListBinding import com.cheng.blzb.event.OrderEvent +import com.cheng.blzb.manager.DialogEnum import com.cheng.blzb.ui.activity.PublicActivity +import com.cheng.blzb.ui.dialog.TipDialog import com.cheng.blzb.ui.fragment.mine.order.cert.CertificateFragment import com.cheng.blzb.ui.fragment.mine.order.invoice.InvoiceFragment +import com.example.base.browser.BrowserActivity import com.example.base.common.RxBus +import com.example.base.extensions.toast import com.example.base.ui.BaseFragment import com.example.base.widget.EmptyView import com.example.base.widget.PageStatus @@ -51,8 +55,27 @@ class OrderListFragment : BaseFragment val item = mAdapter.getItem(i) when (view.id) { - R.id.btn_invoice -> { - PublicActivity.start(requireContext(), InvoiceFragment::class.java, Pair("item", item)) + R.id.btn_invoice -> { //1:未开票 2:开票中 3:催开票4:开票完成 + when (item.invoice_status) { + "1" -> { + PublicActivity.start(requireContext(), InvoiceFragment::class.java, Pair("item", item)) + } + "2" -> { + val f = TipDialog.newInstance("温馨提示", "发票正在开具中,确定要加急开票吗?") + f.setOnSelectListener { + if (it == DialogEnum.CLICK_OK) { + mViewModel.updateOrder(item.id) + } + } + f.show(childFragmentManager, TipDialog::class.java.simpleName) + } + "3" -> { + + } + "4" -> { + BrowserActivity.start(requireContext(), "查看发票", item.invoice_url) + } + } } R.id.btn_certificate -> { @@ -74,6 +97,11 @@ class OrderListFragment : BaseFragment>() + val updateLiveData = MutableLiveData() fun getOrderList(status: String) { showDialog() @@ -24,4 +28,22 @@ class OrderListViewModel : BaseViewModel() { L.d(it) }) } + + fun updateOrder(orderId: String) { + showDialog() + launchOnUiTryCatch({ + val jsonObject = JsonObject() + jsonObject.addProperty("order_id", orderId) + jsonObject.addProperty("invoice_status", "3") + val response = ApiFactory.apiService.updateOrder(jsonObject.toString().toRequestBody()) + if (response.status) { + updateLiveData.postValue(Any()) + } else toast(response.message, true) + dismissDialog() + }, { + dismissDialog() + setError(it) + L.d(it) + }) + } } \ No newline at end of file