Commit d52a317c by 宁斌

BaseQMUI替換

parent 8805141a
...@@ -383,10 +383,9 @@ public class ColdChainMainActivity extends BaseFragmentActivity<ColdChainMainPre ...@@ -383,10 +383,9 @@ public class ColdChainMainActivity extends BaseFragmentActivity<ColdChainMainPre
view.findViewById(R.id.layout_history_order).setOnClickListener(v1 -> { view.findViewById(R.id.layout_history_order).setOnClickListener(v1 -> {
CC.obtainBuilder(com.gingersoft.gsa.cloud.component.ComponentName.COMPONENT_DELIVERYPICK) CC.obtainBuilder(com.gingersoft.gsa.cloud.component.ComponentName.COMPONENT_DELIVERYPICK)
.setActionName("historyActivity") .setActionName("historyActivity")
.addParam(DeliveryPickConstans.ORDER_TYPE, 8) .addParam(DeliveryPickConstans.ORDER_TYPE, "1")
.build() .build()
.callAsyncCallbackOnMainThread((cc, result) -> { .call();
});
pop.dismiss(); pop.dismiss();
}); });
} else { } else {
......
...@@ -7,7 +7,7 @@ import okhttp3.FormBody ...@@ -7,7 +7,7 @@ import okhttp3.FormBody
class HistoryOrderRepository private constructor(private val network: CoolWeatherNetwork) { class HistoryOrderRepository private constructor(private val network: CoolWeatherNetwork) {
suspend fun getHistoryOrderList(restaurantId: String, status: String, startDate: String, endDate: String, pageIndex: String, pageSize: String, orderType: String, orderNo: String = "", phone: String = "") = withContext(Dispatchers.IO) { suspend fun getHistoryOrderList(restaurantId: String, status: String, startDate: String, endDate: String, pageIndex: String, pageSize: String, orderType: String,orderFrom:Int, orderNo: String = "", phone: String = "") = withContext(Dispatchers.IO) {
// val builder = FormBody.Builder() // val builder = FormBody.Builder()
// .add("restaurantId", restaurantId) // .add("restaurantId", restaurantId)
// .add("status", status)//4為已完成 6為取消 // .add("status", status)//4為已完成 6為取消
...@@ -23,7 +23,7 @@ class HistoryOrderRepository private constructor(private val network: CoolWeathe ...@@ -23,7 +23,7 @@ class HistoryOrderRepository private constructor(private val network: CoolWeathe
// builder.add("orderType", orderType.toString()) // builder.add("orderType", orderType.toString())
// } // }
// val requestBody = builder.build() // val requestBody = builder.build()
val heWeather = network.getHistoryOrderList(restaurantId,startDate, endDate, phone, status, orderType, pageIndex, pageSize) val heWeather = network.getHistoryOrderList(restaurantId,startDate, endDate, phone, status, orderType,orderFrom, pageIndex, pageSize)
heWeather heWeather
} }
......
...@@ -27,6 +27,8 @@ class HistoryOrderBean( ...@@ -27,6 +27,8 @@ class HistoryOrderBean(
val orderNo: String, val orderNo: String,
@SerializedName("orderPayType") @SerializedName("orderPayType")
val orderPayType: Int, val orderPayType: Int,
@SerializedName("payType")
val payType: Int,
@SerializedName("orderStatus") @SerializedName("orderStatus")
val orderStatus: Int, val orderStatus: Int,
@SerializedName("orderType") @SerializedName("orderType")
...@@ -38,7 +40,7 @@ class HistoryOrderBean( ...@@ -38,7 +40,7 @@ class HistoryOrderBean(
@SerializedName("receiver") @SerializedName("receiver")
val `receiver`: String, val `receiver`: String,
@SerializedName("status") @SerializedName("status")
val status: Int, val status: Int, //退款状态
@SerializedName("takeFoodCode") @SerializedName("takeFoodCode")
val takeFoodCode: String, val takeFoodCode: String,
@SerializedName("takeTime") @SerializedName("takeTime")
......
...@@ -73,7 +73,7 @@ class CoolWeatherNetwork { ...@@ -73,7 +73,7 @@ class CoolWeatherNetwork {
//獲取歷史訂單 //獲取歷史訂單
suspend fun getHistoryOrderList(restaurantId: String, startTime: String, endTime: String, param: String, suspend fun getHistoryOrderList(restaurantId: String, startTime: String, endTime: String, param: String,
status: String, orderType: String, pageIndex: String, pageSize: String) = orderPayService.getHistoryOrderList(restaurantId,startTime, endTime, param, status, orderType, pageIndex, pageSize).await() status: String, orderType: String, orderFrom:Int, pageIndex: String, pageSize: String) = orderPayService.getHistoryOrderList(restaurantId,startTime, endTime, param, status, orderType,orderFrom, pageIndex, pageSize).await()
//取消物流 //取消物流
suspend fun cancelLogistics(requestBody: RequestBody) = gsposService.cancelLogistics(requestBody).await() suspend fun cancelLogistics(requestBody: RequestBody) = gsposService.cancelLogistics(requestBody).await()
......
...@@ -56,7 +56,7 @@ interface WeatherService { ...@@ -56,7 +56,7 @@ interface WeatherService {
@GET("historyOrder/getOrderList") @GET("historyOrder/getOrderList")
fun getHistoryOrderList(@Query("restaurantId") restaurantId: String, fun getHistoryOrderList(@Query("restaurantId") restaurantId: String,
@Query("startTime") startTime: String, @Query("endTime") endTime: String, @Query("param") param: String, @Query("startTime") startTime: String, @Query("endTime") endTime: String, @Query("param") param: String,
@Query("status") status: String, @Query("orderType") orderType: String, @Query("pageIndex") pageIndex: String, @Query("pageSize") pageSize: String): Call<HistoryOrderBean> @Query("status") status: String, @Query("orderType") orderType: String, @Query("orderFrom") orderFrom: Int,@Query("pageIndex") pageIndex: String, @Query("pageSize") pageSize: String): Call<HistoryOrderBean>
@POST("gsa/cancelOrder") @POST("gsa/cancelOrder")
fun cancelLogistics(@Body requestBody: RequestBody): Call<CancelLogisticsBean> fun cancelLogistics(@Body requestBody: RequestBody): Call<CancelLogisticsBean>
......
...@@ -27,6 +27,7 @@ class HistoryOrderViewModel(private val historyOrderRepository: HistoryOrderRepo ...@@ -27,6 +27,7 @@ class HistoryOrderViewModel(private val historyOrderRepository: HistoryOrderRepo
var status = MutableLiveData("4") //按類型查詢 var status = MutableLiveData("4") //按類型查詢
var searchValue = MutableLiveData("")//按搜索內容查詢 var searchValue = MutableLiveData("")//按搜索內容查詢
var orderType = "2,7" //訂單類型 2 線上外賣訂單,7 自取訂單 var orderType = "2,7" //訂單類型 2 線上外賣訂單,7 自取訂單
var orderFrom = 0 //訂單來源 8 冷鏈用
fun getHistoryOrderList(pageIndex: String, orderNum: String = "", startDate: String, endDate: String, status: String) { fun getHistoryOrderList(pageIndex: String, orderNum: String = "", startDate: String, endDate: String, status: String) {
launch({ launch({
...@@ -37,14 +38,17 @@ class HistoryOrderViewModel(private val historyOrderRepository: HistoryOrderRepo ...@@ -37,14 +38,17 @@ class HistoryOrderViewModel(private val historyOrderRepository: HistoryOrderRepo
} else { } else {
orderNumber = orderNum orderNumber = orderNum
} }
historyOrderRepository.getHistoryOrderList(RestaurantInfoManager.newInstance().getRestaurantId().toString(), status, startDate, endDate, pageIndex, "10", orderType, orderNumber, phone).apply { if (orderType.equals("1")) {
orderFrom = 8;
}
historyOrderRepository.getHistoryOrderList(RestaurantInfoManager.newInstance().getRestaurantId().toString(), status, startDate, endDate, pageIndex, "10", orderType, orderFrom, orderNumber, phone).apply {
if (this.data == null) { if (this.data == null) {
historyData.postValue(this) historyData.postValue(this)
} else { } else {
this.data.let { this.data.let {
if (it?.list != null && it?.list.size > 0) { // if (it?.list != null && it?.list.size > 0) {
it.list.removeAt(it.list.size - 1)//移除最後一個,最後一個是顯示總條數的 // it.list.removeAt(it.list.size - 1)//移除最後一個,最後一個是顯示總條數的
} // }
if (pageIndex == "1") { if (pageIndex == "1") {
historyData.postValue(this) historyData.postValue(this)
} else { } else {
......
...@@ -82,38 +82,30 @@ class HistoryOrderAdapter(var stauts: String?, private val context: Context, var ...@@ -82,38 +82,30 @@ class HistoryOrderAdapter(var stauts: String?, private val context: Context, var
if (stauts.equals("4")) { if (stauts.equals("4")) {
//已完成訂單 //已完成訂單
holder.iv_end.setImageResource(R.drawable.ic_has_end) holder.iv_end.setImageResource(R.drawable.ic_has_end)
setReasonViewVisvible(holder);
} else if (stauts.equals("6")) { } else if (stauts.equals("6")) {
//已取消訂單 //已取消訂單
holder.iv_end.setImageResource(R.drawable.img_cancelled) holder.iv_end.setImageResource(R.drawable.img_cancelled)
setOrderReason(holder, stauts!!, data.orderPayType, data.reasonDesc); setOrderReason(holder, data.status, data.orderPayType, data.payType, data.reasonDesc);
} }
// setViewVisableByStatus(holder, stauts!!);
} else { } else {
holder.iv_end.setImageResource(R.drawable.ic_has_end) holder.iv_end.setImageResource(R.drawable.ic_has_end)
} }
} }
private fun setViewVisiableByStatus(holder: ViewHolder, status: String) { private fun setReasonViewVisvible(holder: ViewHolder) {
when (status) { holder.tv_cancel_reason_text.visibility = View.GONE
"4" -> { holder.tv_cancel_reason.visibility = View.GONE
holder.tv_cancel_reason_text.visibility = View.GONE; holder.tv_refund_reason_text.visibility = View.GONE
holder.tv_cancel_reason.visibility = View.GONE; holder.tv_refund_reason.visibility = View.GONE
holder.tv_refund_reason_text.visibility = View.GONE; holder.tv_address_text.visibility = View.GONE
holder.tv_refund_reason.visibility = View.GONE; holder.tv_address.visibility = View.GONE
}
"6" -> {
holder.tv_cancel_reason_text.visibility = View.VISIBLE;
holder.tv_cancel_reason.visibility = View.VISIBLE;
holder.tv_refund_reason_text.visibility = View.VISIBLE;
holder.tv_refund_reason.visibility = View.VISIBLE;
}
}
} }
private fun setOrderReason(holder: ViewHolder, status: String, orderPayType: Int, reasonDesc: String) { private fun setOrderReason(holder: ViewHolder, refundStatus: Int, orderPayType: Int, payType: Int, reasonDesc: String) {
var refundReason = getRefundReasonByStatus(status, orderPayType); var refundReason = getRefundReasonByStatus(refundStatus, orderPayType, payType);
if (!TextUtils.isEmpty(refundReason)) { if (!TextUtils.isEmpty(refundReason)) {
if (status.equals("5")) { if (refundStatus == 5) {
holder.tv_refund_reason.setTextColor(getColor(R.color.green_400)) holder.tv_refund_reason.setTextColor(getColor(R.color.green_400))
} else { } else {
holder.tv_refund_reason.setTextColor(getColor(R.color.red)) holder.tv_refund_reason.setTextColor(getColor(R.color.red))
...@@ -146,18 +138,25 @@ class HistoryOrderAdapter(var stauts: String?, private val context: Context, var ...@@ -146,18 +138,25 @@ class HistoryOrderAdapter(var stauts: String?, private val context: Context, var
/** /**
* 獲取退款說明 * 獲取退款說明
*/ */
private fun getRefundReasonByStatus(status: String, orderPayType: Int): String { private fun getRefundReasonByStatus(refundStatus: Int, orderPayType: Int, payType: Int): String {
when (status) { when (refundStatus) {
"5" -> { 5 -> {
return "退款完成" return "退款完成"
} }
else -> { else -> {
when (orderPayType) { when (payType) {
PayTypeContract.PAY_METHOD_ID_1021 -> { //只有Google pay需要5-7天,其他支付方式都是秒退 1 -> {
return "退款中(預計5-7個工作日退回原賬戶)" return ""
} }
else -> { else -> {
return "無"; when (orderPayType) {
PayTypeContract.PAY_METHOD_ID_1021 -> { //Google pay需要5-7天
return "退款中(預計5-7個工作日退回原賬戶)"
}
else -> {
return "退款中(預計1-3個工作日退回原賬戶)"
}
}
} }
} }
} }
......
...@@ -29,7 +29,7 @@ class HistoryFragment : BaseFragment(R.layout.fragment_other_order) { ...@@ -29,7 +29,7 @@ class HistoryFragment : BaseFragment(R.layout.fragment_other_order) {
override fun onActivityCreated(savedInstanceState: Bundle?) { override fun onActivityCreated(savedInstanceState: Bundle?) {
super.onActivityCreated(savedInstanceState) super.onActivityCreated(savedInstanceState)
viewModel = ViewModelProvider(requireActivity().viewModelStore, InjectorUtil.getHistoryModelFactory())[HistoryOrderViewModel::class.java].apply { viewModel = ViewModelProvider(requireActivity().viewModelStore, InjectorUtil.getHistoryModelFactory())[HistoryOrderViewModel::class.java].apply {
historyData.observe(viewLifecycleOwner, Observer{ it -> historyData.observe(viewLifecycleOwner, Observer { it ->
cancelDialogForLoading() cancelDialogForLoading()
refresh_layout.finishRefresh() refresh_layout.finishRefresh()
refresh_layout.finishLoadMore() refresh_layout.finishLoadMore()
...@@ -47,7 +47,11 @@ class HistoryFragment : BaseFragment(R.layout.fragment_other_order) { ...@@ -47,7 +47,11 @@ class HistoryFragment : BaseFragment(R.layout.fragment_other_order) {
if (it2.data != null && it2.data!!.isNotEmpty()) { if (it2.data != null && it2.data!!.isNotEmpty()) {
//顯示彈窗 //顯示彈窗
context?.let { context -> context?.let { context ->
OtherOrderUtils.showOrderDetailsDialog(context, it2, it.status, it.orderType, true) { _, _, _ -> var reasonDesc = it.reasonDesc
if (reasonDesc == null) {
reasonDesc = "";
}
OtherOrderUtils.showOrderDetailsDialog(context, it2, it.orderStatus, it.orderType,it.payType, it.status, reasonDesc, true) { _, _, _ ->
//重印 //重印
showLoading() showLoading()
viewModel.printOrder(context, it) { viewModel.printOrder(context, it) {
......
...@@ -6,6 +6,7 @@ import android.media.AudioAttributes ...@@ -6,6 +6,7 @@ import android.media.AudioAttributes
import android.media.AudioManager import android.media.AudioManager
import android.media.SoundPool import android.media.SoundPool
import android.os.Build import android.os.Build
import android.text.TextUtils
import android.view.View import android.view.View
import android.widget.ImageView import android.widget.ImageView
import android.widget.TextView import android.widget.TextView
...@@ -13,30 +14,40 @@ import androidx.core.content.ContextCompat ...@@ -13,30 +14,40 @@ import androidx.core.content.ContextCompat
import androidx.databinding.DataBindingUtil import androidx.databinding.DataBindingUtil
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import com.gingersoft.gsa.cloud.app.GsaCloudApplication
import com.gingersoft.gsa.cloud.common.core.delivery.OrderDetails import com.gingersoft.gsa.cloud.common.core.delivery.OrderDetails
import com.gingersoft.gsa.cloud.common.utils.MoneyUtil import com.gingersoft.gsa.cloud.common.utils.MoneyUtil
import com.gingersoft.gsa.cloud.common.utils.other.TextUtil import com.gingersoft.gsa.cloud.common.utils.other.TextUtil
import com.gingersoft.gsa.cloud.pay.contract.PayTypeContract
import com.gingersoft.gsa.cloud.ui.utils.DialogUtils import com.gingersoft.gsa.cloud.ui.utils.DialogUtils
import com.gingersoft.gsa.delivery_pick_mode.R import com.gingersoft.gsa.delivery_pick_mode.R
import com.gingersoft.gsa.delivery_pick_mode.data.model.bean.BillBean import com.gingersoft.gsa.delivery_pick_mode.data.model.bean.BillBean
import com.gingersoft.gsa.delivery_pick_mode.databinding.LayoutOrderInfoDialogNewBinding import com.gingersoft.gsa.delivery_pick_mode.databinding.LayoutOrderInfoDialogNewBinding
import com.gingersoft.gsa.delivery_pick_mode.ui.adapter.FoodListAdapter import com.gingersoft.gsa.delivery_pick_mode.ui.adapter.FoodListAdapter
import com.gingersoft.gsa.delivery_pick_mode.ui.adapter.HistoryOrderAdapter
import com.gingersoft.gsa.delivery_pick_mode.ui.adapter.PayBillAdapter import com.gingersoft.gsa.delivery_pick_mode.ui.adapter.PayBillAdapter
import com.jess.arms.utils.ArmsUtils import com.jess.arms.utils.ArmsUtils
import java.lang.Double.parseDouble import java.lang.Double.parseDouble
object OtherOrderUtils { object OtherOrderUtils {
fun showOrderDetailsDialog(context: Context, data: OrderDetails, orderStuats: Int, orderType: Int, isHistory: Boolean = false, listenter: ((view: View, data: OrderDetails.DataBean, dialog: Dialog) -> Unit)?) { fun showOrderDetailsDialog(context: Context, data: OrderDetails, orderStuats: Int, orderType: Int, payType: Int, refundStatus: Int, reasonDesc: String = "", isHistory: Boolean = false, listenter: ((view: View, data: OrderDetails.DataBean, dialog: Dialog) -> Unit)?) {
object : DialogUtils(context, R.layout.layout_order_info_dialog_new) { object : DialogUtils(context, R.layout.layout_order_info_dialog_new) {
override fun initLayout(hepler: ViewHepler, dialog: Dialog) { override fun initLayout(hepler: ViewHepler, dialog: Dialog) {
if (data.data != null) { if (data.data != null) {
val tvStatus = hepler.getView<TextView>(R.id.tv_order_state) val tvStatus = hepler.getView<TextView>(R.id.tv_order_state)
val ivOrderState = hepler.getView<ImageView>(R.id.iv_order_state)
var tv_receive_address_text = hepler.getView<TextView>(R.id.tv_receive_address_text)
var tv_receive_address = hepler.getView<TextView>(R.id.tv_receive_address)
var tv_cancel_reason_text = hepler.getView<TextView>(R.id.tv_cancel_reason_text)
var tv_cancel_reason = hepler.getView<TextView>(R.id.tv_cancel_reason)
var tv_refund_reason_text = hepler.getView<TextView>(R.id.tv_refund_reason_text)
var tv_refund_reason = hepler.getView<TextView>(R.id.tv_refund_reason)
val orderData = data.data!![0] val orderData = data.data!![0]
val layoutOrderInfoDialogBinding: LayoutOrderInfoDialogNewBinding = DataBindingUtil.bind(hepler.contentView)!! val layoutOrderInfoDialogBinding: LayoutOrderInfoDialogNewBinding = DataBindingUtil.bind(hepler.contentView)!!
var totalAmount = orderData.TOTAL_AMOUNT!!.toDouble() var totalAmount = orderData.TOTAL_AMOUNT!!.toDouble()
orderData.couponList?.let { orderData.couponList?.let {
for(coupon in it){ for (coupon in it) {
totalAmount = MoneyUtil.sub(totalAmount, coupon.discount_amount) totalAmount = MoneyUtil.sub(totalAmount, coupon.discount_amount)
} }
} }
...@@ -92,6 +103,23 @@ object OtherOrderUtils { ...@@ -92,6 +103,23 @@ object OtherOrderUtils {
cancelBtnContent = "取消訂單" cancelBtnContent = "取消訂單"
} }
} }
when (orderStuats) {
4 -> {
//已完成訂單
ivOrderState.setImageResource(R.drawable.ic_has_end)
tv_cancel_reason_text.visibility = View.GONE
tv_cancel_reason.visibility = View.GONE
tv_refund_reason_text.visibility = View.GONE
tv_refund_reason.visibility = View.GONE
tv_receive_address_text.visibility = View.GONE
tv_receive_address.visibility = View.GONE
}
6 -> {
//已取消訂單
ivOrderState.setImageResource(R.drawable.img_cancelled)
setOrderReason(hepler, orderStuats, refundStatus, orderType,payType, reasonDesc)
}
}
// val payName = StringBuffer() // val payName = StringBuffer()
// if (orderData.payMultiple != null) { // if (orderData.payMultiple != null) {
// for (payMethod in orderData.payMultiple!!) { // for (payMethod in orderData.payMultiple!!) {
...@@ -179,7 +207,78 @@ object OtherOrderUtils { ...@@ -179,7 +207,78 @@ object OtherOrderUtils {
}.setWidth((ArmsUtils.getScreenWidth(context) * 0.9).toInt()) }.setWidth((ArmsUtils.getScreenWidth(context) * 0.9).toInt())
.setHeight((ArmsUtils.getScreenHeidth(context) * 0.9).toInt()) .setHeight((ArmsUtils.getScreenHeidth(context) * 0.9).toInt())
.show() .show()
}
private fun setOrderReason(holder: DialogUtils.ViewHepler, orderStatus: Int, refundStatus: Int, orderPayType: Int,payType: Int, reasonDesc: String) {
var tv_address_text = holder.getView<TextView>(R.id.tv_receive_address_text)
var tv_address = holder.getView<TextView>(R.id.tv_receive_address)
var tv_cancel_reason_text = holder.getView<TextView>(R.id.tv_cancel_reason_text)
var tv_cancel_reason = holder.getView<TextView>(R.id.tv_cancel_reason)
var tv_refund_reason_text = holder.getView<TextView>(R.id.tv_refund_reason_text)
var tv_refund_reason = holder.getView<TextView>(R.id.tv_refund_reason)
var refundReason = getRefundReasonByStatus(refundStatus, orderPayType,payType);
if (!TextUtils.isEmpty(refundReason)) {
if (refundStatus == 5) {
tv_refund_reason.setTextColor(getColor(R.color.green_400))
} else {
tv_refund_reason.setTextColor(getColor(R.color.red))
}
tv_refund_reason.setText(refundReason)
tv_refund_reason_text.setText("退款進度:")
tv_refund_reason_text.visibility = View.VISIBLE
tv_refund_reason.visibility = View.VISIBLE
tv_address_text.visibility = View.GONE
tv_address.visibility = View.GONE
} else {
tv_refund_reason_text.visibility = View.GONE
tv_refund_reason.visibility = View.GONE
tv_address_text.visibility = View.VISIBLE
tv_address.visibility = View.VISIBLE
}
if (reasonDesc != null) {
tv_cancel_reason.setText(reasonDesc)
tv_cancel_reason_text.setText("取消原因:")
tv_cancel_reason_text.visibility = View.VISIBLE
tv_cancel_reason.visibility = View.VISIBLE
} else {
tv_cancel_reason_text.visibility = View.GONE
tv_cancel_reason.visibility = View.GONE
}
}
/**
* 獲取退款說明
*/
private fun getRefundReasonByStatus(refundStatus: Int, orderPayType: Int,payType: Int): String {
when (refundStatus) {
5 -> {
return "退款完成"
}
else -> {
when (payType) {
1 -> {
return "無"
}
else -> {
when (orderPayType) {
PayTypeContract.PAY_METHOD_ID_1021 -> { //Google pay需要5-7天
return "退款中(預計5-7個工作日退回原賬戶)"
}
else -> {
return "退款中(預計1-3個工作日退回原賬戶)"
}
}
}
}
}
}
return "";
}
private fun getColor(color: Int): Int {
return ContextCompat.getColor(GsaCloudApplication.getAppContext(), color)
} }
private var soundPool: SoundPool? = null private var soundPool: SoundPool? = null
......
...@@ -122,6 +122,14 @@ ...@@ -122,6 +122,14 @@
app:layout_constraintRight_toRightOf="parent" app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@id/tv_total_amount_text" /> app:layout_constraintTop_toBottomOf="@id/tv_total_amount_text" />
<ImageView
android:id="@+id/iv_order_state"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="@dimen/dp_10"
app:layout_constraintRight_toRightOf="parent"
android:src="@drawable/ic_has_end"/>
<TextView <TextView
android:id="@+id/tv_take_food_code" android:id="@+id/tv_take_food_code"
android:layout_width="wrap_content" android:layout_width="wrap_content"
...@@ -394,13 +402,69 @@ ...@@ -394,13 +402,69 @@
app:layout_constraintRight_toRightOf="parent" app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="@id/tv_delivery_num_text" /> app:layout_constraintTop_toTopOf="@id/tv_delivery_num_text" />
<TextView
android:id="@+id/tv_cancel_reason_text"
style="@style/otherOrderReceiving_title_textStyle"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/other_order_info_dialog_content_marginLeft"
android:layout_marginTop="@dimen/dp_10"
android:visibility="gone"
android:text="取消原因: "
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toBottomOf="@id/tv_delivery_num_text" />
<TextView
android:id="@+id/tv_cancel_reason"
style="@style/otherOrderReceiving_information_textStyle"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginRight="@dimen/other_order_info_dialog_content_marginRight"
android:gravity="left"
android:textColor="@color/red_600"
android:textSize="@dimen/sp_14"
android:text="商戶未確定"
android:visibility="gone"
app:layout_constraintTop_toTopOf="@+id/tv_cancel_reason_text"
app:layout_constraintLeft_toRightOf="@id/tv_cancel_reason_text"
app:layout_constraintRight_toRightOf="parent" />
<TextView
android:id="@+id/tv_refund_reason_text"
style="@style/otherOrderReceiving_title_textStyle"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/other_order_info_dialog_content_marginLeft"
android:layout_marginTop="@dimen/dp_10"
android:text="退款進度: "
android:visibility="gone"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toBottomOf="@id/tv_cancel_reason_text" />
<TextView
android:id="@+id/tv_refund_reason"
style="@style/otherOrderReceiving_information_textStyle"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginRight="@dimen/other_order_info_dialog_content_marginRight"
android:gravity="left"
android:layout_marginTop="@dimen/dp_5"
android:textColor="@color/green_400"
android:textSize="@dimen/sp_14"
android:text="退款完成"
android:visibility="gone"
app:layout_constraintTop_toTopOf="@+id/tv_refund_reason_text"
app:layout_constraintBottom_toBottomOf="@+id/tv_refund_reason_text"
app:layout_constraintLeft_toRightOf="@id/tv_refund_reason_text"
app:layout_constraintRight_toRightOf="parent" />
<View <View
android:id="@+id/line_info_bottom" android:id="@+id/line_info_bottom"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="@dimen/dp_10" android:layout_height="@dimen/dp_10"
android:layout_marginTop="@dimen/dp_10" android:layout_marginTop="@dimen/dp_10"
android:background="@color/color_ef" android:background="@color/color_ef"
app:layout_constraintTop_toBottomOf="@id/tv_delivery_num" /> app:layout_constraintTop_toBottomOf="@id/tv_refund_reason_text" />
<TextView <TextView
android:id="@+id/tv_food_details_text" android:id="@+id/tv_food_details_text"
...@@ -491,5 +555,4 @@ ...@@ -491,5 +555,4 @@
app:layout_constraintRight_toRightOf="parent" /> app:layout_constraintRight_toRightOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>
</layout> </layout>
\ No newline at end of file
...@@ -32,6 +32,8 @@ import com.jess.arms.base.BaseActivity; ...@@ -32,6 +32,8 @@ import com.jess.arms.base.BaseActivity;
import com.jess.arms.base.DefaultAdapter; import com.jess.arms.base.DefaultAdapter;
import com.jess.arms.di.component.AppComponent; import com.jess.arms.di.component.AppComponent;
import com.jess.arms.utils.ArmsUtils; import com.jess.arms.utils.ArmsUtils;
import com.jess.arms.utils.StatusBarUtil;
import butterknife.BindView; import butterknife.BindView;
import static com.jess.arms.utils.Preconditions.checkNotNull; import static com.jess.arms.utils.Preconditions.checkNotNull;
...@@ -83,12 +85,6 @@ public class DownloadActivity extends BaseActivity<DownloadPresenter> implements ...@@ -83,12 +85,6 @@ public class DownloadActivity extends BaseActivity<DownloadPresenter> implements
} }
@Override @Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
setTransparent(this);
super.onCreate(savedInstanceState);
}
@Override
public int initView(@Nullable Bundle savedInstanceState) { public int initView(@Nullable Bundle savedInstanceState) {
return R.layout.download_data_activity_download; //如果你不需要框架帮你设置 setContentView(id) 需要自行设置,请返回 0 return R.layout.download_data_activity_download; //如果你不需要框架帮你设置 setContentView(id) 需要自行设置,请返回 0
} }
......
...@@ -4,6 +4,7 @@ import android.animation.AnimatorSet; ...@@ -4,6 +4,7 @@ import android.animation.AnimatorSet;
import android.animation.ObjectAnimator; import android.animation.ObjectAnimator;
import android.content.Intent; import android.content.Intent;
import android.os.Bundle; import android.os.Bundle;
import android.os.PersistableBundle;
import android.text.TextUtils; import android.text.TextUtils;
import android.view.View; import android.view.View;
import android.view.animation.Animation; import android.view.animation.Animation;
...@@ -36,13 +37,12 @@ import com.gingersoft.gsa.cloud.login.mvp.ui.adapter.GuideAdapter; ...@@ -36,13 +37,12 @@ import com.gingersoft.gsa.cloud.login.mvp.ui.adapter.GuideAdapter;
import com.gingersoft.gsa.cloud.ui.widget.Indicator.UIndicator; import com.gingersoft.gsa.cloud.ui.widget.Indicator.UIndicator;
import com.jess.arms.di.component.AppComponent; import com.jess.arms.di.component.AppComponent;
import com.jess.arms.utils.ArmsUtils; import com.jess.arms.utils.ArmsUtils;
import com.qmuiteam.qmui.util.QMUIDisplayHelper;
import com.qmuiteam.qmui.util.QMUIStatusBarHelper;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import butterknife.BindView; import butterknife.BindView;
import butterknife.OnClick; import butterknife.OnClick;
import static com.jess.arms.utils.Preconditions.checkNotNull; import static com.jess.arms.utils.Preconditions.checkNotNull;
......
...@@ -4,8 +4,6 @@ ...@@ -4,8 +4,6 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:background="@color/theme_white_color" android:background="@color/theme_white_color"
android:fillViewport="true"
android:fitsSystemWindows="false"
android:orientation="vertical"> android:orientation="vertical">
<LinearLayout <LinearLayout
...@@ -185,7 +183,6 @@ ...@@ -185,7 +183,6 @@
app:layout_constraintTop_toBottomOf="@id/rb_auto_login" app:layout_constraintTop_toBottomOf="@id/rb_auto_login"
app:layout_constraintTop_toTopOf="@id/rb_auto_login" /> app:layout_constraintTop_toTopOf="@id/rb_auto_login" />
</LinearLayout> </LinearLayout>
</LinearLayout> </LinearLayout>
<com.qmuiteam.qmui.alpha.QMUIAlphaButton <com.qmuiteam.qmui.alpha.QMUIAlphaButton
......
...@@ -47,5 +47,9 @@ public interface SettlementReportContract { ...@@ -47,5 +47,9 @@ public interface SettlementReportContract {
Observable<SendSettlement> sendSettlement(RequestBody requestBody); Observable<SendSettlement> sendSettlement(RequestBody requestBody);
Observable<BaseResult> getSettlementReport(int restaurantId); Observable<BaseResult> getSettlementReport(int restaurantId);
Observable<BaseResult> addHywebPosSettlementOperation();
Observable<BaseResult> updateHywebPosSettlementOperation(RequestBody requestBody);
} }
} }
...@@ -4,6 +4,7 @@ import android.app.Application; ...@@ -4,6 +4,7 @@ import android.app.Application;
import com.gingersoft.gsa.cloud.common.bean.BaseResult; import com.gingersoft.gsa.cloud.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.main.mvp.model.bean.SendSettlement; import com.gingersoft.gsa.cloud.main.mvp.model.bean.SendSettlement;
import com.gingersoft.gsa.cloud.main.mvp.model.service.MainService;
import com.gingersoft.gsa.cloud.main.mvp.model.service.SettlementService; import com.gingersoft.gsa.cloud.main.mvp.model.service.SettlementService;
import com.google.gson.Gson; import com.google.gson.Gson;
import com.jess.arms.integration.IRepositoryManager; import com.jess.arms.integration.IRepositoryManager;
...@@ -60,4 +61,17 @@ public class SettlementReportModel extends BaseModel implements SettlementReport ...@@ -60,4 +61,17 @@ public class SettlementReportModel extends BaseModel implements SettlementReport
return mRepositoryManager.obtainRetrofitService(SettlementService.class) return mRepositoryManager.obtainRetrofitService(SettlementService.class)
.getSettlementReport(restaurantId); .getSettlementReport(restaurantId);
} }
@Override
public Observable<BaseResult> addHywebPosSettlementOperation() {
return mRepositoryManager.obtainRetrofitService(SettlementService.class)
.addHywebPosSettlementOperation();
}
@Override
public Observable<BaseResult> updateHywebPosSettlementOperation(RequestBody requestBody) {
return mRepositoryManager.obtainRetrofitService(SettlementService.class)
.updateHywebPosSettlementOperation(requestBody);
}
} }
\ No newline at end of file
package com.gingersoft.gsa.cloud.main.mvp.model.bean;
import android.graphics.Bitmap;
import android.os.Parcel;
import android.os.Parcelable;
import com.gingersoft.gsa.cloud.common.core.table.TableManagerItem;
import com.qmuiteam.qmui.widget.section.QMUISection;
import lombok.Data;
/**
* @作者: bin
* @創建時間: 2021-01-25 15:10
* @更新時間: 2021-01-25 15:10
* @描述:
*/
@Data
public class OriginalKitchenPrjBean implements QMUISection.Model<OriginalKitchenPrjBean>{
private Bitmap bitmap;
@Override
public OriginalKitchenPrjBean cloneForDiff() {
return null;
}
@Override
public boolean isSameItem(OriginalKitchenPrjBean other) {
return false;
}
@Override
public boolean isSameContent(OriginalKitchenPrjBean other) {
return false;
}
}
package com.gingersoft.gsa.cloud.main.mvp.model.bean;
import android.graphics.Bitmap;
import com.qmuiteam.qmui.widget.section.QMUISection;
import lombok.Data;
/**
* @作者: bin
* @創建時間: 2021-01-25 15:10
* @更新時間: 2021-01-25 15:10
* @描述:
*/
@Data
public class OriginalKitchenPrjDirectoryBean implements QMUISection.Model<OriginalKitchenPrjDirectoryBean>{
private String directoryName;
@Override
public OriginalKitchenPrjDirectoryBean cloneForDiff() {
return null;
}
@Override
public boolean isSameItem(OriginalKitchenPrjDirectoryBean other) {
return false;
}
@Override
public boolean isSameContent(OriginalKitchenPrjDirectoryBean other) {
return false;
}
}
...@@ -28,4 +28,10 @@ public interface SettlementService { ...@@ -28,4 +28,10 @@ public interface SettlementService {
@GET("ricepon-report/api/restaurantOperation/report" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2) @GET("ricepon-report/api/restaurantOperation/report" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<BaseResult> getSettlementReport(@Query("restaurantId") int restaurantId); Observable<BaseResult> getSettlementReport(@Query("restaurantId") int restaurantId);
@POST("posPay/addOperation" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<BaseResult> addHywebPosSettlementOperation();
@POST("posPay/updateOperation" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<BaseResult> updateHywebPosSettlementOperation(@Body RequestBody requestBody);
} }
...@@ -23,7 +23,9 @@ import com.jess.arms.integration.AppManager; ...@@ -23,7 +23,9 @@ import com.jess.arms.integration.AppManager;
import com.jess.arms.mvp.BasePresenter; import com.jess.arms.mvp.BasePresenter;
import com.jess.arms.utils.DeviceUtils; import com.jess.arms.utils.DeviceUtils;
import com.jess.arms.utils.RxLifecycleUtils; import com.jess.arms.utils.RxLifecycleUtils;
import javax.inject.Inject; import javax.inject.Inject;
import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.annotations.NonNull; import io.reactivex.annotations.NonNull;
import io.reactivex.schedulers.Schedulers; import io.reactivex.schedulers.Schedulers;
...@@ -163,7 +165,7 @@ public class NewMainPresenter extends BasePresenter<NewMainContract.Model, NewMa ...@@ -163,7 +165,7 @@ public class NewMainPresenter extends BasePresenter<NewMainContract.Model, NewMa
public void addSettlementOperation(int restaurantId) { public void addSettlementOperation(int restaurantId) {
RequestBody requestBody = new FormBody.Builder() RequestBody requestBody = new FormBody.Builder()
.add("restaurantId",String.valueOf(restaurantId)) .add("restaurantId", String.valueOf(restaurantId))
.build(); .build();
mModel.addSettlementOperation() mModel.addSettlementOperation()
.subscribeOn(Schedulers.io()) .subscribeOn(Schedulers.io())
...@@ -182,19 +184,19 @@ public class NewMainPresenter extends BasePresenter<NewMainContract.Model, NewMa ...@@ -182,19 +184,19 @@ public class NewMainPresenter extends BasePresenter<NewMainContract.Model, NewMa
@Override @Override
public void onPosSuccess(HywebPosResponse response) { public void onPosSuccess(HywebPosResponse response) {
mRootView.showMessage("清機成功!"); mRootView.showMessage("清機成功!");
updateSettlementOperation(restaurantId, GsonUtils.GsonString(response),1); updateSettlementOperation(restaurantId, GsonUtils.GsonString(response), 1);
} }
@Override @Override
public void onPosException(Exception e) { public void onPosException(Exception e) {
mRootView.showMessage("清機Exception :"+e.getMessage()); mRootView.showMessage("清機Exception :" + e.getMessage());
updateSettlementOperation(restaurantId, e.getMessage(),0); updateSettlementOperation(restaurantId, e.getMessage(), 0);
} }
@Override @Override
public void onPosInvalid(String e) { public void onPosInvalid(String e) {
mRootView.showMessage(e); mRootView.showMessage(e);
updateSettlementOperation(restaurantId, e,2); updateSettlementOperation(restaurantId, e, 2);
} }
@Override @Override
...@@ -214,16 +216,16 @@ public class NewMainPresenter extends BasePresenter<NewMainContract.Model, NewMa ...@@ -214,16 +216,16 @@ public class NewMainPresenter extends BasePresenter<NewMainContract.Model, NewMa
@Override @Override
public void onError(Throwable t) { public void onError(Throwable t) {
super.onError(t); super.onError(t);
mRootView.showMessage("調起POS清機失敗: "+t.getMessage()); mRootView.showMessage("調起POS清機失敗: " + t.getMessage());
} }
}); });
} }
public void updateSettlementOperation(int restaurantId,String content,int status) { public void updateSettlementOperation(int restaurantId, String content, int status) {
RequestBody requestBody = new FormBody.Builder() RequestBody requestBody = new FormBody.Builder()
.add("restaurantId",String.valueOf(restaurantId)) .add("restaurantId", String.valueOf(restaurantId))
.add("content",content) .add("content", content)
.add("status",String.valueOf(status)) .add("status", String.valueOf(status))
.build(); .build();
mModel.updateSettlementOperation(requestBody) mModel.updateSettlementOperation(requestBody)
.subscribeOn(Schedulers.io()) .subscribeOn(Schedulers.io())
...@@ -238,7 +240,7 @@ public class NewMainPresenter extends BasePresenter<NewMainContract.Model, NewMa ...@@ -238,7 +240,7 @@ public class NewMainPresenter extends BasePresenter<NewMainContract.Model, NewMa
public void onNext(@NonNull BaseResult info) { public void onNext(@NonNull BaseResult info) {
if (info != null && info.isSuccess()) { if (info != null && info.isSuccess()) {
mRootView.showMessage("更新清機狀態成功"); mRootView.showMessage("更新清機狀態成功");
}else { } else {
mRootView.showMessage("更新清機狀態無效"); mRootView.showMessage("更新清機狀態無效");
} }
} }
...@@ -246,12 +248,12 @@ public class NewMainPresenter extends BasePresenter<NewMainContract.Model, NewMa ...@@ -246,12 +248,12 @@ public class NewMainPresenter extends BasePresenter<NewMainContract.Model, NewMa
@Override @Override
public void onError(Throwable t) { public void onError(Throwable t) {
super.onError(t); super.onError(t);
mRootView.showMessage("更新清機狀態失敗: "+t.getMessage()); mRootView.showMessage("更新清機狀態失敗: " + t.getMessage());
} }
}); });
} }
public void clearHeartbeat(){ public void clearHeartbeat() {
RequestBody requestBody = new FormBody.Builder() RequestBody requestBody = new FormBody.Builder()
.add("restaurantId", RestaurantInfoManager.newInstance().getRestaurantId() + "") .add("restaurantId", RestaurantInfoManager.newInstance().getRestaurantId() + "")
.build(); .build();
...@@ -272,25 +274,25 @@ public class NewMainPresenter extends BasePresenter<NewMainContract.Model, NewMa ...@@ -272,25 +274,25 @@ public class NewMainPresenter extends BasePresenter<NewMainContract.Model, NewMa
} }
public void updateAPK(int type, String downApkURL) { public void updateAPK(int type, String downApkURL) {
if(type == 4 || type == 5){ if (type == 4 || type == 5) {
if(type == 4){ if (type == 4) {
try { try {
DeviceUtils.launchAppDetail(IActivity, mApplication.getPackageName(), "com.android.vending"); DeviceUtils.launchAppDetail(IActivity, mApplication.getPackageName(), "com.android.vending");
} catch (Exception e) { } catch (Exception e) {
//跳转goole play下载app //跳转goole play下载app
CC.obtainBuilder(ComponentName.COMPONENT_WEBVIEW) CC.obtainBuilder(ComponentName.COMPONENT_WEBVIEW)
.setActionName("openWebActivity") .setActionName("openWebActivity")
.addParam(WebviewHelper.TYPE_KEY,downApkURL) .addParam(WebviewHelper.TYPE_KEY, downApkURL)
.addParam(WebviewHelper.URL_KEY,WebviewHelper.RIGHT_TYPE_REFRESH) .addParam(WebviewHelper.URL_KEY, WebviewHelper.RIGHT_TYPE_REFRESH)
.addParam(WebviewHelper.RIGHT_IMG_TYPE,WebviewHelper.RIGHT_TYPE_REFRESH) .addParam(WebviewHelper.RIGHT_IMG_TYPE, WebviewHelper.RIGHT_TYPE_REFRESH)
.build() .build()
.callAsyncCallbackOnMainThread((cc, result) -> { .callAsyncCallbackOnMainThread((cc, result) -> {
}); });
} }
}else{ } else {
try { try {
DeviceUtils.launchAppDetail(IActivity,mApplication.getPackageName(), "com.android.vending"); DeviceUtils.launchAppDetail(IActivity, mApplication.getPackageName(), "com.android.vending");
} catch (Exception e) { } catch (Exception e) {
Intent intent = new Intent(); Intent intent = new Intent();
intent.setAction("android.intent.action.VIEW"); intent.setAction("android.intent.action.VIEW");
......
...@@ -5,8 +5,12 @@ import android.app.Application; ...@@ -5,8 +5,12 @@ import android.app.Application;
import com.gingersoft.gsa.cloud.common.core.restaurant.RestaurantInfoManager; import com.gingersoft.gsa.cloud.common.core.restaurant.RestaurantInfoManager;
import com.gingersoft.gsa.cloud.common.bean.BaseResult; import com.gingersoft.gsa.cloud.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.common.utils.JsonUtils; import com.gingersoft.gsa.cloud.common.utils.JsonUtils;
import com.gingersoft.gsa.cloud.common.utils.gson.GsonUtils;
import com.gingersoft.gsa.cloud.main.mvp.contract.SettlementContract; import com.gingersoft.gsa.cloud.main.mvp.contract.SettlementContract;
import com.gingersoft.gsa.cloud.common.core.settlement.SettlementReport; import com.gingersoft.gsa.cloud.common.core.settlement.SettlementReport;
import com.gingersoft.gsa.cloud.pay.pos.OnPosActionListener;
import com.gingersoft.gsa.cloud.pay.pos.PosPay;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.response.pos.HywebPosResponse;
import com.jess.arms.di.scope.ActivityScope; import com.jess.arms.di.scope.ActivityScope;
import com.jess.arms.http.imageloader.ImageLoader; import com.jess.arms.http.imageloader.ImageLoader;
import com.jess.arms.integration.AppManager; import com.jess.arms.integration.AppManager;
...@@ -20,6 +24,8 @@ import io.reactivex.annotations.NonNull; ...@@ -20,6 +24,8 @@ import io.reactivex.annotations.NonNull;
import io.reactivex.schedulers.Schedulers; import io.reactivex.schedulers.Schedulers;
import me.jessyan.rxerrorhandler.core.RxErrorHandler; import me.jessyan.rxerrorhandler.core.RxErrorHandler;
import me.jessyan.rxerrorhandler.handler.ErrorHandleSubscriber; import me.jessyan.rxerrorhandler.handler.ErrorHandleSubscriber;
import okhttp3.FormBody;
import okhttp3.RequestBody;
/** /**
...@@ -45,6 +51,9 @@ public class SettlementPresenter extends BasePresenter<SettlementContract.Model, ...@@ -45,6 +51,9 @@ public class SettlementPresenter extends BasePresenter<SettlementContract.Model,
@Inject @Inject
AppManager mAppManager; AppManager mAppManager;
@Inject @Inject
public SettlementPresenter(SettlementContract.Model model, SettlementContract.View rootView) { public SettlementPresenter(SettlementContract.Model model, SettlementContract.View rootView) {
super(model, rootView); super(model, rootView);
...@@ -59,7 +68,7 @@ public class SettlementPresenter extends BasePresenter<SettlementContract.Model, ...@@ -59,7 +68,7 @@ public class SettlementPresenter extends BasePresenter<SettlementContract.Model,
this.mApplication = null; this.mApplication = null;
} }
public void getSettlementReport() { public void getSettlementReport(int settlementType) {
int restaurantId = RestaurantInfoManager.newInstance().getRestaurantId(); int restaurantId = RestaurantInfoManager.newInstance().getRestaurantId();
mModel.getSettlementReport(restaurantId) mModel.getSettlementReport(restaurantId)
.subscribeOn(Schedulers.io()) .subscribeOn(Schedulers.io())
...@@ -85,4 +94,5 @@ public class SettlementPresenter extends BasePresenter<SettlementContract.Model, ...@@ -85,4 +94,5 @@ public class SettlementPresenter extends BasePresenter<SettlementContract.Model,
} }
}); });
} }
} }
...@@ -7,12 +7,16 @@ import com.gingersoft.gsa.cloud.common.bean.BaseResult; ...@@ -7,12 +7,16 @@ import com.gingersoft.gsa.cloud.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.common.core.restaurant.RestaurantInfoManager; import com.gingersoft.gsa.cloud.common.core.restaurant.RestaurantInfoManager;
import com.gingersoft.gsa.cloud.common.core.settlement.SettlementReport; import com.gingersoft.gsa.cloud.common.core.settlement.SettlementReport;
import com.gingersoft.gsa.cloud.common.utils.JsonUtils; import com.gingersoft.gsa.cloud.common.utils.JsonUtils;
import com.gingersoft.gsa.cloud.common.utils.gson.GsonUtils;
import com.gingersoft.gsa.cloud.main.R; import com.gingersoft.gsa.cloud.main.R;
import com.gingersoft.gsa.cloud.main.mvp.contract.SettlementReportContract; import com.gingersoft.gsa.cloud.main.mvp.contract.SettlementReportContract;
import com.gingersoft.gsa.cloud.main.mvp.model.bean.SendSettlement; import com.gingersoft.gsa.cloud.main.mvp.model.bean.SendSettlement;
import com.gingersoft.gsa.cloud.main.mvp.ui.activity.SettlementReportActivity; import com.gingersoft.gsa.cloud.main.mvp.ui.activity.SettlementReportActivity;
import com.gingersoft.gsa.cloud.main.mvp.ui.adapter.SettlementReportItem5Adapter; import com.gingersoft.gsa.cloud.main.mvp.ui.adapter.SettlementReportItem5Adapter;
import com.gingersoft.gsa.cloud.main.mvp.ui.adapter.SettlementReportItemAdapter; import com.gingersoft.gsa.cloud.main.mvp.ui.adapter.SettlementReportItemAdapter;
import com.gingersoft.gsa.cloud.pay.pos.OnPosActionListener;
import com.gingersoft.gsa.cloud.pay.pos.PosPay;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.response.pos.HywebPosResponse;
import com.gingersoft.gsa.cloud.ui.bean.view.SectionTextItem3; import com.gingersoft.gsa.cloud.ui.bean.view.SectionTextItem3;
import com.gingersoft.gsa.cloud.ui.bean.view.SectionTextItem5; import com.gingersoft.gsa.cloud.ui.bean.view.SectionTextItem5;
import com.gingersoft.gsa.cloud.ui.widget.dialog.CommonTipDialog; import com.gingersoft.gsa.cloud.ui.widget.dialog.CommonTipDialog;
...@@ -209,7 +213,97 @@ public class SettlementReportPresenter extends BasePresenter<SettlementReportCon ...@@ -209,7 +213,97 @@ public class SettlementReportPresenter extends BasePresenter<SettlementReportCon
}); });
} }
public void getSettlementReport() { public void addSettlementOperation(int restaurantId) {
RequestBody requestBody = new FormBody.Builder()
.add("restaurantId", String.valueOf(restaurantId))
.build();
mModel.addHywebPosSettlementOperation()
.subscribeOn(Schedulers.io())
.doOnSubscribe(disposable -> mRootView.showLoading("調起POS清機中..."))
.subscribeOn(AndroidSchedulers.mainThread())
.observeOn(AndroidSchedulers.mainThread())
.doAfterTerminate(() -> mRootView.hideLoading())
.compose(RxLifecycleUtils.bindToLifecycle(mRootView))
.subscribe(new ErrorHandleSubscriber<BaseResult>(mErrorHandler) {
@Override
public void onNext(@NonNull BaseResult info) {
if (info != null && info.isSuccess()) {
if (info.getData() != null) {
PosPay.settlement(IActivity, mRootView, new OnPosActionListener() {
@Override
public void onPosSuccess(HywebPosResponse response) {
mRootView.showMessage("清機成功!");
updateSettlementOperation(restaurantId, GsonUtils.GsonString(response), 1);
}
@Override
public void onPosException(Exception e) {
mRootView.showMessage("清機Exception :" + e.getMessage());
updateSettlementOperation(restaurantId, e.getMessage(), 0);
}
@Override
public void onPosInvalid(String e) {
mRootView.showMessage(e);
updateSettlementOperation(restaurantId, e, 2);
}
@Override
public void onUpdateStatusSuccess(HywebPosResponse response) {
}
@Override
public void onUpdateStatusError(Throwable e) {
}
});
}
} else {
mRootView.showMessage("調起POS清機失敗");
}
}
@Override
public void onError(Throwable t) {
super.onError(t);
mRootView.showMessage("調起POS清機失敗: " + t.getMessage());
}
});
}
public void updateSettlementOperation(int restaurantId, String content, int status) {
RequestBody requestBody = new FormBody.Builder()
.add("restaurantId", String.valueOf(restaurantId))
.add("content", content)
.add("status", String.valueOf(status))
.build();
mModel.updateHywebPosSettlementOperation(requestBody)
.subscribeOn(Schedulers.io())
.doOnSubscribe(disposable -> mRootView.showLoading(null))
.subscribeOn(AndroidSchedulers.mainThread())
.observeOn(AndroidSchedulers.mainThread())
.doAfterTerminate(() -> mRootView.hideLoading())
.compose(RxLifecycleUtils.bindToLifecycle(mRootView))
.subscribe(new ErrorHandleSubscriber<BaseResult>(mErrorHandler) {
@Override
public void onNext(@NonNull BaseResult info) {
if (info != null && info.isSuccess()) {
mRootView.showMessage("更新清機狀態成功");
} else {
mRootView.showMessage("更新清機狀態無效");
}
}
@Override
public void onError(Throwable t) {
super.onError(t);
mRootView.showMessage("更新清機狀態失敗: " + t.getMessage());
}
});
}
public void getSettlementReport(int settlementType) {
int restaurantId = RestaurantInfoManager.newInstance().getRestaurantId(); int restaurantId = RestaurantInfoManager.newInstance().getRestaurantId();
mModel.getSettlementReport(restaurantId) mModel.getSettlementReport(restaurantId)
.subscribeOn(Schedulers.io()) .subscribeOn(Schedulers.io())
......
...@@ -34,6 +34,7 @@ import com.gingersoft.gsa.cloud.common.function.FunctionManager; ...@@ -34,6 +34,7 @@ import com.gingersoft.gsa.cloud.common.function.FunctionManager;
import com.gingersoft.gsa.cloud.common.function.jump.ActivityJumpBean; import com.gingersoft.gsa.cloud.common.function.jump.ActivityJumpBean;
import com.gingersoft.gsa.cloud.common.function.jump.ActivityJumpStrategy; import com.gingersoft.gsa.cloud.common.function.jump.ActivityJumpStrategy;
import com.gingersoft.gsa.cloud.common.logan.LoganManager; import com.gingersoft.gsa.cloud.common.logan.LoganManager;
import com.gingersoft.gsa.cloud.common.utils.AppDevices;
import com.gingersoft.gsa.cloud.common.utils.JsonUtils; import com.gingersoft.gsa.cloud.common.utils.JsonUtils;
import com.gingersoft.gsa.cloud.common.utils.encryption.Aes; import com.gingersoft.gsa.cloud.common.utils.encryption.Aes;
import com.gingersoft.gsa.cloud.common.utils.other.SPUtils; import com.gingersoft.gsa.cloud.common.utils.other.SPUtils;
...@@ -224,15 +225,18 @@ public class NewMainActivity extends BaseFragmentActivity<NewMainPresenter> impl ...@@ -224,15 +225,18 @@ public class NewMainActivity extends BaseFragmentActivity<NewMainPresenter> impl
if (BuildConfig.DEBUG) { if (BuildConfig.DEBUG) {
mainSideMenuBeans.add(new MainSideMenuBean(R.drawable.ic_setting, "複製Token")); mainSideMenuBeans.add(new MainSideMenuBean(R.drawable.ic_setting, "複製Token"));
// mainSideMenuBeans.add(new MainSideMenuBean(R.drawable.ic_setting, "查看日誌")); // mainSideMenuBeans.add(new MainSideMenuBean(R.drawable.ic_setting, "查看日誌"));
// mainSideMenuBeans.add(new MainSideMenuBean(R.drawable.ic_setting, "廚房單原圖"));
mainSideMenuBeans.add(new MainSideMenuBean(R.drawable.ic_mall_center, "商城中心")); mainSideMenuBeans.add(new MainSideMenuBean(R.drawable.ic_mall_center, "商城中心"));
mainSideMenuBeans.add(new MainSideMenuBean(R.drawable.ic_about_us, "關於我們")); mainSideMenuBeans.add(new MainSideMenuBean(R.drawable.ic_about_us, "關於我們"));
mainSideMenuBeans.add(new MainSideMenuBean(R.drawable.ic_password, "修改密碼")); mainSideMenuBeans.add(new MainSideMenuBean(R.drawable.ic_password, "修改密碼"));
mainSideMenuBeans.add(new MainSideMenuBean(R.drawable.ic_setting, "設置")); mainSideMenuBeans.add(new MainSideMenuBean(R.drawable.ic_setting, "設置"));
} }
mainSideMenuBeans.add(new MainSideMenuBean(R.drawable.ic_setting, "廚房單原圖"));
mainSideMenuBeans.add(new MainSideMenuBean(R.drawable.ic_setting, "查看日誌")); mainSideMenuBeans.add(new MainSideMenuBean(R.drawable.ic_setting, "查看日誌"));
mainSideMenuBeans.add(new MainSideMenuBean(R.drawable.ic_setting, "上傳日誌")); mainSideMenuBeans.add(new MainSideMenuBean(R.drawable.ic_setting, "上傳日誌"));
mainSideMenuBeans.add(new MainSideMenuBean(R.drawable.ic_settlement_report, "清機")); mainSideMenuBeans.add(new MainSideMenuBean(R.drawable.ic_settlement_report, "清機"));
if (AppDevices.isHywebPos()) {
mainSideMenuBeans.add(new MainSideMenuBean(R.drawable.ic_settlement_report, "N5清機"));
}
if (BuildConfig.DEBUG) { if (BuildConfig.DEBUG) {
mainSideMenuBeans.add(new MainSideMenuBean(R.drawable.ic_setting, "切換環境")); mainSideMenuBeans.add(new MainSideMenuBean(R.drawable.ic_setting, "切換環境"));
} }
...@@ -260,9 +264,18 @@ public class NewMainActivity extends BaseFragmentActivity<NewMainPresenter> impl ...@@ -260,9 +264,18 @@ public class NewMainActivity extends BaseFragmentActivity<NewMainPresenter> impl
cm.setPrimaryClip(label); cm.setPrimaryClip(label);
ToastUtils.show(mContext, "已複製"); ToastUtils.show(mContext, "已複製");
break; break;
case "清機": case "清機": {
launchActivity(new Intent(mContext, SettlementActivity.class)); Intent intent = new Intent(this, SettlementActivity.class);
break; intent.putExtra(SettlementActivity.SETTLEMENT_TYPE_TAG, SettlementActivity.SETTLEMENT_TYPE_NOMAL);
startActivity(intent);
}
break;
case "N5清機": {
Intent intent = new Intent(this, SettlementActivity.class);
intent.putExtra(SettlementActivity.SETTLEMENT_TYPE_TAG, SettlementActivity.SETTLEMENT_TYPE_HYWEB_POS);
startActivity(intent);
}
break;
case "查看日誌": case "查看日誌":
launchActivity(new Intent(mContext, LookLogActivity.class)); launchActivity(new Intent(mContext, LookLogActivity.class));
break; break;
...@@ -291,7 +304,6 @@ public class NewMainActivity extends BaseFragmentActivity<NewMainPresenter> impl ...@@ -291,7 +304,6 @@ public class NewMainActivity extends BaseFragmentActivity<NewMainPresenter> impl
} }
List<Function> managerFuncations = FunctionManager.getDefault().getFunctionByResModule(this, ComponentMain.main.class, ComponentMain.main.manager, "manager"); List<Function> managerFuncations = FunctionManager.getDefault().getFunctionByResModule(this, ComponentMain.main.class, ComponentMain.main.manager, "manager");
managerFuncations.add(new Function(172, 163, 5, "N5清機", R.drawable.ic_expand_list, 0));
managerFuncations.add(new Function(171, 163, 5, "配置列表", R.drawable.ic_expand_list, 0)); managerFuncations.add(new Function(171, 163, 5, "配置列表", R.drawable.ic_expand_list, 0));
// managerFuncations.add(new Function(171, 163, 5, "廚房打印查詢", R.drawable.ic_kitchen_print_query, 0)); // managerFuncations.add(new Function(171, 163, 5, "廚房打印查詢", R.drawable.ic_kitchen_print_query, 0));
// managerFuncations.add(new Function(171, 163, 5, "餐牌管理", R.drawable.ic_food_menu_manger, 0)); // managerFuncations.add(new Function(171, 163, 5, "餐牌管理", R.drawable.ic_food_menu_manger, 0));
...@@ -374,9 +386,6 @@ public class NewMainActivity extends BaseFragmentActivity<NewMainPresenter> impl ...@@ -374,9 +386,6 @@ public class NewMainActivity extends BaseFragmentActivity<NewMainPresenter> impl
private void functionClick(String name, int status) { private void functionClick(String name, int status) {
switch (name) { switch (name) {
case "N5清機":
mPresenter.addSettlementOperation(RestaurantInfoManager.newInstance().getRestaurantId());
break;
case "餐檯模式": case "餐檯模式":
CC.obtainBuilder(ComponentName.COMPONENT_TABLE) CC.obtainBuilder(ComponentName.COMPONENT_TABLE)
.setActionName("showTableActivity") .setActionName("showTableActivity")
......
...@@ -6,7 +6,6 @@ import android.os.Bundle; ...@@ -6,7 +6,6 @@ import android.os.Bundle;
import android.text.TextUtils; import android.text.TextUtils;
import android.view.View; import android.view.View;
import android.widget.TextView; import android.widget.TextView;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.core.content.ContextCompat; import androidx.core.content.ContextCompat;
...@@ -14,10 +13,11 @@ import androidx.recyclerview.widget.GridLayoutManager; ...@@ -14,10 +13,11 @@ import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.ItemTouchHelper; import androidx.recyclerview.widget.ItemTouchHelper;
import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView;
import com.gingersoft.gsa.cloud.common.core.table.TableManagerItem;
import com.gingersoft.gsa.cloud.main.R; import com.gingersoft.gsa.cloud.main.R;
import com.gingersoft.gsa.cloud.main.R2; import com.gingersoft.gsa.cloud.main.R2;
import com.gingersoft.gsa.cloud.main.di.component.DaggerOriginalPrintPaperComponent;
import com.gingersoft.gsa.cloud.main.mvp.model.bean.OriginalKitchenPrjBean;
import com.gingersoft.gsa.cloud.main.mvp.ui.adapter.OriginalKitchenPrjSectiontAdapter;
import com.gingersoft.gsa.cloud.ui.bean.view.SectionHeader; import com.gingersoft.gsa.cloud.ui.bean.view.SectionHeader;
import com.gingersoft.gsa.cloud.ui.recylcler.event.OnRecyclerItemClickListener; import com.gingersoft.gsa.cloud.ui.recylcler.event.OnRecyclerItemClickListener;
import com.gingersoft.gsa.cloud.ui.recylcler.event.RecyItemTouchHelperCallback; import com.gingersoft.gsa.cloud.ui.recylcler.event.RecyItemTouchHelperCallback;
...@@ -59,6 +59,7 @@ public class OriginalPrintPaperActivity extends BaseFragmentActivity<OriginalPri ...@@ -59,6 +59,7 @@ public class OriginalPrintPaperActivity extends BaseFragmentActivity<OriginalPri
@BindView(R2.id.section_kitchen_prj) @BindView(R2.id.section_kitchen_prj)
QMUIStickySectionLayout mSectionLayout; QMUIStickySectionLayout mSectionLayout;
private OriginalKitchenPrjSectiontAdapter mKitchenPrjSectiontAdapter;
@Override @Override
public void setupActivityComponent(@NonNull AppComponent appComponent) { public void setupActivityComponent(@NonNull AppComponent appComponent) {
...@@ -79,6 +80,7 @@ public class OriginalPrintPaperActivity extends BaseFragmentActivity<OriginalPri ...@@ -79,6 +80,7 @@ public class OriginalPrintPaperActivity extends BaseFragmentActivity<OriginalPri
public void initData(@Nullable Bundle savedInstanceState) { public void initData(@Nullable Bundle savedInstanceState) {
initStickyLayout(); initStickyLayout();
initSectionData();
} }
@Override @Override
...@@ -88,38 +90,16 @@ public class OriginalPrintPaperActivity extends BaseFragmentActivity<OriginalPri ...@@ -88,38 +90,16 @@ public class OriginalPrintPaperActivity extends BaseFragmentActivity<OriginalPri
private void initStickyLayout() { private void initStickyLayout() {
mSectionLayout.setLayoutManager(createLayoutManager()); mSectionLayout.setLayoutManager(createLayoutManager());
mAdapter = new TableManageSectiontAdapter(); mKitchenPrjSectiontAdapter = new OriginalKitchenPrjSectiontAdapter();
mAdapter.setCallback(new QMUIStickySectionAdapter.Callback<SectionHeader, TableManagerItem>() { mKitchenPrjSectiontAdapter.setCallback(new QMUIStickySectionAdapter.Callback<SectionHeader, OriginalKitchenPrjBean>() {
@Override @Override
public void loadMore(QMUISection<SectionHeader, TableManagerItem> section, boolean loadMoreBefore) { public void loadMore(QMUISection<SectionHeader, OriginalKitchenPrjBean> section, boolean loadMoreBefore) {
} }
@Override @Override
public void onItemClick(QMUIStickySectionAdapter.ViewHolder holder, int position) { public void onItemClick(QMUIStickySectionAdapter.ViewHolder holder, int position) {
if (holder instanceof TableManageSectiontAdapter.ViewHolder) {
TableManageSectiontAdapter.ViewHolder viewHolder = (TableManageSectiontAdapter.ViewHolder) holder;
if (viewHolder.getTvName().getText() != null) {
TableManagerItem item = viewHolder.getTableItem(position);
if (item.getLayoutType() == 1) {
start(AddTableFragment.newInstance(item));
} else {
if (isRadioEdit) {
item.setChecked(!item.isChecked());
mAdapter.notifyItemChanged(position);
} else {
if (item.getUseStatus() == 0 && item.getStatus() == 0) {
start(AddTableFragment.newInstance(item));
} else {
CommonTipDialog.showSurpisedDialog(mActivity, item.getTableName() + "檯正在使用中", null, null, null, null, null);
}
}
}
}
} else {
//點擊的頭部,折疊
}
} }
@Override @Override
...@@ -131,7 +111,7 @@ public class OriginalPrintPaperActivity extends BaseFragmentActivity<OriginalPri ...@@ -131,7 +111,7 @@ public class OriginalPrintPaperActivity extends BaseFragmentActivity<OriginalPri
@Override @Override
public void getItemOffsets(@NonNull Rect outRect, @NonNull View view, @NonNull RecyclerView parent, @NonNull RecyclerView.State state) { public void getItemOffsets(@NonNull Rect outRect, @NonNull View view, @NonNull RecyclerView parent, @NonNull RecyclerView.State state) {
if (view instanceof TextView) { if (view instanceof TextView) {
int margin = QMUIDisplayHelper.dp2px(getContext(), 10); int margin = QMUIDisplayHelper.dp2px(mContext, 10);
outRect.set(margin, margin, margin, margin); outRect.set(margin, margin, margin, margin);
} else { } else {
outRect.set(5, 5, 5, 5); outRect.set(5, 5, 5, 5);
...@@ -139,7 +119,7 @@ public class OriginalPrintPaperActivity extends BaseFragmentActivity<OriginalPri ...@@ -139,7 +119,7 @@ public class OriginalPrintPaperActivity extends BaseFragmentActivity<OriginalPri
} }
}); });
RecyItemTouchHelperCallback itemTouchHelperCallback = new RecyItemTouchHelperCallback(mAdapter); RecyItemTouchHelperCallback itemTouchHelperCallback = new RecyItemTouchHelperCallback(mKitchenPrjSectiontAdapter);
final ItemTouchHelper itemTouchHelper = new ItemTouchHelper(itemTouchHelperCallback); final ItemTouchHelper itemTouchHelper = new ItemTouchHelper(itemTouchHelperCallback);
itemTouchHelper.attachToRecyclerView(mSectionLayout.getRecyclerView()); itemTouchHelper.attachToRecyclerView(mSectionLayout.getRecyclerView());
...@@ -158,7 +138,7 @@ public class OriginalPrintPaperActivity extends BaseFragmentActivity<OriginalPri ...@@ -158,7 +138,7 @@ public class OriginalPrintPaperActivity extends BaseFragmentActivity<OriginalPri
// } // }
} }
}); });
mSectionLayout.setAdapter(mAdapter, true); mSectionLayout.setAdapter(mKitchenPrjSectiontAdapter, true);
} }
private RecyclerView.LayoutManager createLayoutManager() { private RecyclerView.LayoutManager createLayoutManager() {
...@@ -166,12 +146,16 @@ public class OriginalPrintPaperActivity extends BaseFragmentActivity<OriginalPri ...@@ -166,12 +146,16 @@ public class OriginalPrintPaperActivity extends BaseFragmentActivity<OriginalPri
layoutManager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() { layoutManager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() {
@Override @Override
public int getSpanSize(int i) { public int getSpanSize(int i) {
return mAdapter.getItemIndex(i) < 0 ? layoutManager.getSpanCount() : 1; return mKitchenPrjSectiontAdapter.getItemIndex(i) < 0 ? layoutManager.getSpanCount() : 1;
} }
}); });
return layoutManager; return layoutManager;
} }
private void initSectionData() {
}
@Override @Override
public void initTopBar() { public void initTopBar() {
mTopBar.setBackgroundColor(ContextCompat.getColor(mContext, R.color.theme_color)); mTopBar.setBackgroundColor(ContextCompat.getColor(mContext, R.color.theme_color));
......
...@@ -51,6 +51,11 @@ public class SettlementActivity extends BaseActivity<SettlementPresenter> implem ...@@ -51,6 +51,11 @@ public class SettlementActivity extends BaseActivity<SettlementPresenter> implem
private SettlementReport mSettlementReportBean; private SettlementReport mSettlementReportBean;
private int mSettlementType;
public static final String SETTLEMENT_TYPE_TAG = "settlement_type";
public static final int SETTLEMENT_TYPE_NOMAL = 1;
public static final int SETTLEMENT_TYPE_HYWEB_POS = 2;
@Override @Override
public void setupActivityComponent(@NonNull AppComponent appComponent) { public void setupActivityComponent(@NonNull AppComponent appComponent) {
DaggerSettlementComponent //如找不到该类,请编译一下项目 DaggerSettlementComponent //如找不到该类,请编译一下项目
...@@ -69,12 +74,13 @@ public class SettlementActivity extends BaseActivity<SettlementPresenter> implem ...@@ -69,12 +74,13 @@ public class SettlementActivity extends BaseActivity<SettlementPresenter> implem
@Override @Override
public void initData(@Nullable Bundle savedInstanceState) { public void initData(@Nullable Bundle savedInstanceState) {
// tv_settlement_time.setVisibility(View.GONE); // tv_settlement_time.setVisibility(View.GONE);
mPresenter.getSettlementReport(); mPresenter.getSettlementReport(mSettlementType);
} }
@Override @Override
public void initIntent() { public void initIntent() {
Intent intent = getIntent();
mSettlementType = intent.getIntExtra(SETTLEMENT_TYPE_TAG, SETTLEMENT_TYPE_NOMAL);
} }
@Override @Override
...@@ -85,7 +91,6 @@ public class SettlementActivity extends BaseActivity<SettlementPresenter> implem ...@@ -85,7 +91,6 @@ public class SettlementActivity extends BaseActivity<SettlementPresenter> implem
@Override @Override
public void onClick(View v) { public void onClick(View v) {
killMyself(); killMyself();
// overridePendingTransition(R.anim.slide_still, R.anim.slide_out_right);
} }
}); });
mTopBar.setTitle(LanguageUtils.get_language_system(this, "funcSelect.settlement", "清機")).setTextColor(ArmsUtils.getColor(this, R.color.theme_white_color)); mTopBar.setTitle(LanguageUtils.get_language_system(this, "funcSelect.settlement", "清機")).setTextColor(ArmsUtils.getColor(this, R.color.theme_white_color));
...@@ -96,6 +101,7 @@ public class SettlementActivity extends BaseActivity<SettlementPresenter> implem ...@@ -96,6 +101,7 @@ public class SettlementActivity extends BaseActivity<SettlementPresenter> implem
if (v.getId() == R.id.btn_settlement_report) { if (v.getId() == R.id.btn_settlement_report) {
Intent intent = new Intent(this, SettlementReportActivity.class); Intent intent = new Intent(this, SettlementReportActivity.class);
intent.putExtra("settlementReportBean", mSettlementReportBean); intent.putExtra("settlementReportBean", mSettlementReportBean);
intent.putExtra(SETTLEMENT_TYPE_TAG, mSettlementType);
launchActivity(intent); launchActivity(intent);
mSettlementReportBean = null; mSettlementReportBean = null;
} }
...@@ -137,9 +143,9 @@ public class SettlementActivity extends BaseActivity<SettlementPresenter> implem ...@@ -137,9 +143,9 @@ public class SettlementActivity extends BaseActivity<SettlementPresenter> implem
@Override @Override
public void returnSettlementData(SettlementReport datasBean) { public void returnSettlementData(SettlementReport datasBean) {
this.mSettlementReportBean = datasBean; this.mSettlementReportBean = datasBean;
if(mSettlementReportBean.getRestaurantOperation() != null) { if (mSettlementReportBean.getRestaurantOperation() != null) {
String lastSettlementText = LanguageUtils.get_language_system(this, "", "上次清機時間:"); String lastSettlementText = LanguageUtils.get_language_system(this, "", "上次清機時間:");
setLastTime(lastSettlementText + TimeUtils.getStringByFormat(mSettlementReportBean.getRestaurantOperation().getOperationTime(), TimeUtils.DEFAULT_DATE_FORMAT) ); setLastTime(lastSettlementText + TimeUtils.getStringByFormat(mSettlementReportBean.getRestaurantOperation().getOperationTime(), TimeUtils.DEFAULT_DATE_FORMAT));
} }
} }
......
...@@ -124,6 +124,8 @@ public class SettlementReportActivity extends BaseActivity<SettlementReportPrese ...@@ -124,6 +124,8 @@ public class SettlementReportActivity extends BaseActivity<SettlementReportPrese
private int type; private int type;
private SettlementReport mSettlementReport; private SettlementReport mSettlementReport;
private SettlementReport mSettlementReportBean;
private int mSettlementType;
/** /**
* 1#全部計入到10號清機數據 * 1#全部計入到10號清機數據
* 2#全部計入到12號清機數據 * 2#全部計入到12號清機數據
...@@ -158,28 +160,28 @@ public class SettlementReportActivity extends BaseActivity<SettlementReportPrese ...@@ -158,28 +160,28 @@ public class SettlementReportActivity extends BaseActivity<SettlementReportPrese
public void initData(@Nullable Bundle savedInstanceState) { public void initData(@Nullable Bundle savedInstanceState) {
// tv_last_time.setVisibility(View.GONE); // tv_last_time.setVisibility(View.GONE);
scrollView.post(() -> scrollView.fullScroll(ScrollView.FOCUS_UP)); scrollView.post(() -> scrollView.fullScroll(ScrollView.FOCUS_UP));
}
@Override
public void initIntent() {
Intent intent = getIntent();
SettlementReport settlementReportBean = intent.getParcelableExtra("settlementReportBean");
df = new DecimalFormat(dfformat); df = new DecimalFormat(dfformat);
if (settlementReportBean != null) { if (mSettlementReportBean != null) {
mPresenter.initAdapter(); mPresenter.initAdapter();
returnSettlementData(settlementReportBean); returnSettlementData(mSettlementReportBean);
} else { } else {
mPresenter.initAdapter(); mPresenter.initAdapter();
mPresenter.getSettlementReport(); mPresenter.getSettlementReport(mSettlementType);
} }
} }
@Override @Override
public void initIntent() {
Intent intent = getIntent();
mSettlementType = intent.getIntExtra(SettlementActivity.SETTLEMENT_TYPE_TAG, SettlementActivity.SETTLEMENT_TYPE_NOMAL);
mSettlementReportBean = intent.getParcelableExtra("settlementReportBean");
}
@Override
public void initTopBar() { public void initTopBar() {
mTopBar.setBackgroundColor(ContextCompat.getColor(this, R.color.theme_color)); mTopBar.setBackgroundColor(ContextCompat.getColor(this, R.color.theme_color));
mTopBar.addLeftBackImageButton().setOnClickListener(v -> { mTopBar.addLeftBackImageButton().setOnClickListener(v -> {
killMyself(); killMyself();
// overridePendingTransition(R.anim.slide_still, R.anim.slide_out_right);
}); });
rightBtn = mTopBar.addRightTextButton("打印", R.id.tv_right); rightBtn = mTopBar.addRightTextButton("打印", R.id.tv_right);
rightBtn.setTextColor(ArmsUtils.getColor(this, R.color.theme_white_color)); rightBtn.setTextColor(ArmsUtils.getColor(this, R.color.theme_white_color));
......
...@@ -10,9 +10,9 @@ import android.widget.RelativeLayout; ...@@ -10,9 +10,9 @@ import android.widget.RelativeLayout;
import android.widget.TextView; import android.widget.TextView;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.core.content.ContextCompat; import androidx.core.content.ContextCompat;
import com.gingersoft.gsa.cloud.common.core.table.TableManagerItem;
import com.gingersoft.gsa.cloud.common.utils.StringUtils; import com.gingersoft.gsa.cloud.common.utils.StringUtils;
import com.gingersoft.gsa.cloud.main.R; import com.gingersoft.gsa.cloud.main.R;
import com.gingersoft.gsa.cloud.main.mvp.model.bean.OriginalKitchenPrjBean;
import com.gingersoft.gsa.cloud.ui.bean.view.SectionHeader; import com.gingersoft.gsa.cloud.ui.bean.view.SectionHeader;
import com.gingersoft.gsa.cloud.ui.view.TriangleLabelView; import com.gingersoft.gsa.cloud.ui.view.TriangleLabelView;
import com.gingersoft.gsa.cloud.ui.view.qm.QDLoadingItemView; import com.gingersoft.gsa.cloud.ui.view.qm.QDLoadingItemView;
...@@ -36,7 +36,7 @@ import butterknife.ButterKnife; ...@@ -36,7 +36,7 @@ import butterknife.ButterKnife;
* 修订历史:2020-02-09 * 修订历史:2020-02-09
* 描述: * 描述:
*/ */
public class OriginalKitcherPrjSectiontAdapter extends QMUIDefaultStickySectionAdapter<SectionHeader, TableManagerItem> { public class OriginalKitchenPrjSectiontAdapter extends QMUIDefaultStickySectionAdapter<SectionHeader, OriginalKitchenPrjBean> {
private Context context; private Context context;
...@@ -51,7 +51,7 @@ public class OriginalKitcherPrjSectiontAdapter extends QMUIDefaultStickySectionA ...@@ -51,7 +51,7 @@ public class OriginalKitcherPrjSectiontAdapter extends QMUIDefaultStickySectionA
@Override @Override
protected ViewHolder onCreateSectionItemViewHolder(@NonNull ViewGroup viewGroup) { protected ViewHolder onCreateSectionItemViewHolder(@NonNull ViewGroup viewGroup) {
this.context = viewGroup.getContext(); this.context = viewGroup.getContext();
return new ViewHolder(View.inflate(viewGroup.getContext(), R.layout.manager_item_manage_table, null)); return new ViewHolder(View.inflate(viewGroup.getContext(), R.layout.main_item_original_kitchen, null));
} }
@NonNull @NonNull
...@@ -61,7 +61,7 @@ public class OriginalKitcherPrjSectiontAdapter extends QMUIDefaultStickySectionA ...@@ -61,7 +61,7 @@ public class OriginalKitcherPrjSectiontAdapter extends QMUIDefaultStickySectionA
} }
@Override @Override
protected void onBindSectionHeader(QMUIStickySectionAdapter.ViewHolder holder, int position, QMUISection<SectionHeader, TableManagerItem> section) { protected void onBindSectionHeader(QMUIStickySectionAdapter.ViewHolder holder, int position, QMUISection<SectionHeader, OriginalKitchenPrjBean> section) {
super.onBindSectionHeader(holder, position, section); super.onBindSectionHeader(holder, position, section);
QDSectionHeaderView itemView = (QDSectionHeaderView) holder.itemView; QDSectionHeaderView itemView = (QDSectionHeaderView) holder.itemView;
itemView.render(section.getHeader(), section.isFold()); itemView.render(section.getHeader(), section.isFold());
...@@ -75,63 +75,20 @@ public class OriginalKitcherPrjSectiontAdapter extends QMUIDefaultStickySectionA ...@@ -75,63 +75,20 @@ public class OriginalKitcherPrjSectiontAdapter extends QMUIDefaultStickySectionA
} }
@Override @Override
protected void onBindSectionItem(QMUIStickySectionAdapter.ViewHolder holder, int position, QMUISection<SectionHeader, TableManagerItem> section, int itemIndex) { protected void onBindSectionItem(QMUIStickySectionAdapter.ViewHolder holder, int position, QMUISection<SectionHeader, OriginalKitchenPrjBean> section, int itemIndex) {
super.onBindSectionItem(holder, position, section, itemIndex); super.onBindSectionItem(holder, position, section, itemIndex);
ViewHolder viewHolder = (ViewHolder) holder; ViewHolder viewHolder = (ViewHolder) holder;
TableManagerItem tableItem = section.getItemAt(itemIndex);
} }
public class ViewHolder extends QMUIStickySectionAdapter.ViewHolder { public class ViewHolder extends QMUIStickySectionAdapter.ViewHolder {
@BindView(R2.id.ll_container)
QMUIRelativeLayout ll_container;
@BindView(R2.id.rl_table)
RelativeLayout rl_table;
@BindView(R2.id.tv_table)
TextView tv_table;
@BindView(R2.id.tv_people)
TextView tv_people;
// @BindView(R2.id.btn_showMain)
// Button btn_showMain;
// @BindView(R2.id.iv_vip)
// ImageView iv_vip;
// @BindView(R2.id.tv_scan_flag)
// TextView tv_scan_flag;
@BindView(R2.id.tv_service_fee)
TextView tv_service_fee;
@BindView(R2.id.cb_checked)
CheckBox cb_checked;
@BindView(R2.id.fl_add_table)
FrameLayout fl_add_table;
@BindView(R2.id.fl_table_type)
FrameLayout fl_table_type;
@BindView(R2.id.tlv_table_type)
TriangleLabelView tlv_table_type;
@BindView(R2.id.tv_type_labe)
TextView tv_type_labe;
public ViewHolder(View itemView) { public ViewHolder(View itemView) {
super(itemView); super(itemView);
ButterKnife.bind(this, itemView); ButterKnife.bind(this, itemView);
} }
public TextView getTvName() {
return tv_table;
}
public TextView getTvServiceFee() {
return tv_service_fee;
}
public TableManagerItem getTableItem(int position) {
TableManagerItem item = getSectionItem(position);
return item;
}
} }
} }
<?xml version="1.0" encoding="utf-8"?>
<ImageView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/iv_kitchen"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:scaleType="fitXY">
</ImageView>
...@@ -238,7 +238,7 @@ public class AddAreaFragment extends BaseFragment<AddAreaPresenter> implements A ...@@ -238,7 +238,7 @@ public class AddAreaFragment extends BaseFragment<AddAreaPresenter> implements A
int restaurantId = RestaurantInfoManager.newInstance().getRestaurantId(); int restaurantId = RestaurantInfoManager.newInstance().getRestaurantId();
AreaRequest.Add areaRequest = new AreaRequest.Add(); AreaRequest.Add areaRequest = new AreaRequest.Add();
areaRequest.setRestaurantId(restaurantId); areaRequest.setRestaurantId(restaurantId);
areaRequest.setRegionName(ed_area_name.getText().toString()); areaRequest.setRegionName(ed_area_name.getText().toString().trim());
areaRequest.setSort(Integer.parseInt(ed_area_sort.getText().toString())); areaRequest.setSort(Integer.parseInt(ed_area_sort.getText().toString()));
return areaRequest; return areaRequest;
} }
...@@ -246,7 +246,7 @@ public class AddAreaFragment extends BaseFragment<AddAreaPresenter> implements A ...@@ -246,7 +246,7 @@ public class AddAreaFragment extends BaseFragment<AddAreaPresenter> implements A
public AreaRequest.Update createUpateAreaRequest(int id) { public AreaRequest.Update createUpateAreaRequest(int id) {
AreaRequest.Update areaRequest = new AreaRequest.Update(); AreaRequest.Update areaRequest = new AreaRequest.Update();
areaRequest.setId(id); areaRequest.setId(id);
areaRequest.setRegionName(ed_area_name.getText().toString()); areaRequest.setRegionName(ed_area_name.getText().toString().trim());
areaRequest.setSort(Integer.parseInt(ed_area_sort.getText().toString())); areaRequest.setSort(Integer.parseInt(ed_area_sort.getText().toString()));
return areaRequest; return areaRequest;
} }
......
...@@ -432,7 +432,7 @@ public class AddTableFragment extends BaseFragment<AddTablePresenter> implements ...@@ -432,7 +432,7 @@ public class AddTableFragment extends BaseFragment<AddTablePresenter> implements
TableRequest.Add addTableRequest = new TableRequest.Add(); TableRequest.Add addTableRequest = new TableRequest.Add();
addTableRequest.setRegionId(currentAreaId); addTableRequest.setRegionId(currentAreaId);
addTableRequest.setRestaurantId(RestaurantInfoManager.newInstance().getRestaurantId()); addTableRequest.setRestaurantId(RestaurantInfoManager.newInstance().getRestaurantId());
addTableRequest.setTableName(tableNameEditText.getText().toString()); addTableRequest.setTableName(tableNameEditText.getText().toString().trim());
if (!TextUtils.isEmpty(serverchargeEditText.getText().toString())) { if (!TextUtils.isEmpty(serverchargeEditText.getText().toString())) {
addTableRequest.setServiceCharge(Double.parseDouble(serverchargeEditText.getText().toString())); addTableRequest.setServiceCharge(Double.parseDouble(serverchargeEditText.getText().toString()));
} }
...@@ -454,7 +454,7 @@ public class AddTableFragment extends BaseFragment<AddTablePresenter> implements ...@@ -454,7 +454,7 @@ public class AddTableFragment extends BaseFragment<AddTablePresenter> implements
update.setId(id); update.setId(id);
update.setRegionId(currentAreaId); update.setRegionId(currentAreaId);
update.setRestaurantId(RestaurantInfoManager.newInstance().getRestaurantId()); update.setRestaurantId(RestaurantInfoManager.newInstance().getRestaurantId());
update.setTableName(tableNameEditText.getText().toString()); update.setTableName(tableNameEditText.getText().toString().trim());
if (!TextUtils.isEmpty(serverchargeEditText.getText().toString())) { if (!TextUtils.isEmpty(serverchargeEditText.getText().toString())) {
update.setServiceCharge(Double.parseDouble(serverchargeEditText.getText().toString())); update.setServiceCharge(Double.parseDouble(serverchargeEditText.getText().toString()));
} }
......
...@@ -122,12 +122,6 @@ public class AreaListFragment extends BaseFragment<AreaListPresenter> implements ...@@ -122,12 +122,6 @@ public class AreaListFragment extends BaseFragment<AreaListPresenter> implements
.inject(this); .inject(this);
} }
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
return super.onCreateView(inflater, container, savedInstanceState);
}
@Override @Override
public View initView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { public View initView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment_area_list, container, false); return inflater.inflate(R.layout.fragment_area_list, container, false);
......
...@@ -208,7 +208,7 @@ public class PrintBill extends PrinterRoot<PrintBillContent> { ...@@ -208,7 +208,7 @@ public class PrintBill extends PrinterRoot<PrintBillContent> {
layout.addView(getLine(mContext)); layout.addView(getLine(mContext));
//食品信息 //食品信息
layout.addView(getDiningFoodList(mContext, mPrintBillContent.getFoodItemList(), deviceBean, 1, true)); layout.addView(getDiningFoodList(mContext, mPrintBillContent.getFoodItemList(), deviceBean, 1, true));
layout.addView(getHalfLine(mContext)); layout.addView(getHalfLine(mContext));
//訂單金額信息 //訂單金額信息
......
package com.joe.print.mvp.print.service; package com.joe.print.mvp.print.service;
import android.app.IntentService;
import android.app.Service; import android.app.Service;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
...@@ -43,6 +44,7 @@ import com.gingersoft.gsa.cloud.print.bean.UpdateBean; ...@@ -43,6 +44,7 @@ import com.gingersoft.gsa.cloud.print.bean.UpdateBean;
import com.hyweb.n5.lib.constant.PrinterConstant; import com.hyweb.n5.lib.constant.PrinterConstant;
import com.hyweb.n5.lib.util.PrinterUtil; import com.hyweb.n5.lib.util.PrinterUtil;
import com.hyweb.n5.server.aidl.IOnPrintCallback; import com.hyweb.n5.server.aidl.IOnPrintCallback;
import com.jess.arms.utils.RxLifecycleUtils;
import com.joe.print.mvp.print.PrintPrjKitchen; import com.joe.print.mvp.print.PrintPrjKitchen;
import com.joe.print.mvp.print.PrinterRoot; import com.joe.print.mvp.print.PrinterRoot;
import com.joe.print.mvp.print.common.PrinterFinderCallback; import com.joe.print.mvp.print.common.PrinterFinderCallback;
...@@ -76,6 +78,7 @@ import io.reactivex.Observable; ...@@ -76,6 +78,7 @@ import io.reactivex.Observable;
import io.reactivex.Observer; import io.reactivex.Observer;
import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.disposables.Disposable; import io.reactivex.disposables.Disposable;
import io.reactivex.functions.Consumer;
import io.reactivex.schedulers.Schedulers; import io.reactivex.schedulers.Schedulers;
import jcifs.smb.SmbFile; import jcifs.smb.SmbFile;
import jcifs.smb.SmbFileOutputStream; import jcifs.smb.SmbFileOutputStream;
...@@ -104,6 +107,7 @@ public class PrjService extends Service implements ReceiveListener { ...@@ -104,6 +107,7 @@ public class PrjService extends Service implements ReceiveListener {
private Context mContext; private Context mContext;
private String TAG = "Prj"; private String TAG = "Prj";
@Override @Override
public void onCreate() { public void onCreate() {
super.onCreate(); super.onCreate();
...@@ -115,6 +119,7 @@ public class PrjService extends Service implements ReceiveListener { ...@@ -115,6 +119,7 @@ public class PrjService extends Service implements ReceiveListener {
public int onStartCommand(Intent intent, int flags, int startId) { public int onStartCommand(Intent intent, int flags, int startId) {
mContext = this; mContext = this;
ThreadPoolManager.getInstence().putExecutableTasks(() -> { ThreadPoolManager.getInstence().putExecutableTasks(() -> {
LoganManager.w_printer(TAG, "currentThreadName: "+Thread.currentThread().getName());
LoganManager.w_printer(TAG, "開始請求 PRJ 數據"); LoganManager.w_printer(TAG, "開始請求 PRJ 數據");
getPrintList(); getPrintList();
//開始請求 //開始請求
...@@ -209,15 +214,16 @@ public class PrjService extends Service implements ReceiveListener { ...@@ -209,15 +214,16 @@ public class PrjService extends Service implements ReceiveListener {
@Override @Override
public void onSubscribe(Disposable d) { public void onSubscribe(Disposable d) {
LoganManager.w_printer(TAG, "RxCurrentThreadName: "+Thread.currentThread().getName());
LoganManager.w_printer(TAG, "getPrjInfo onSubscribe"); LoganManager.w_printer(TAG, "getPrjInfo onSubscribe");
} }
@Override @Override
public void onNext(String s) { public void onNext(String prjInfo) {
LoganManager.w_printer(TAG, "getPrjInfo onNext: " + s); LoganManager.w_printer(TAG, "getPrjInfo onNext: " + prjInfo);
//請求到數據,停止輪詢,開始打印,在打印完之後再重新開始輪詢 //請求到數據,停止輪詢,開始打印,在打印完之後再重新開始輪詢
// startPrint(s); // startPrint(s);
newPrint(s); newPrint(prjInfo);
//開啟另一個定時,三十秒之後自動請求,避免上面的打印成功或失敗時沒有回調。 //開啟另一個定時,三十秒之後自動請求,避免上面的打印成功或失敗時沒有回調。
cancel(wakeDisposable); cancel(wakeDisposable);
Observable.timer(30, TimeUnit.SECONDS) Observable.timer(30, TimeUnit.SECONDS)
...@@ -523,7 +529,11 @@ public class PrjService extends Service implements ReceiveListener { ...@@ -523,7 +529,11 @@ public class PrjService extends Service implements ReceiveListener {
LoganManager.w_printer(TAG, "generatePrintData PrinterDeviceBean deviceType: " + printerDeviceBean.getPrinterDeviceType() LoganManager.w_printer(TAG, "generatePrintData PrinterDeviceBean deviceType: " + printerDeviceBean.getPrinterDeviceType()
+ " ip: " + printerDeviceBean.getIp()); + " ip: " + printerDeviceBean.getIp());
PrintPaperPlugins.getOnPrinterFlowHandler().onPrinterDataBefore(GsonUtils.GsonString(beans), GsonUtils.GsonString(printerDeviceBean)); int orderType = 1;
if (beans.size() > 0) {
orderType = beans.get(0).getOrderType();
}
PrintPaperPlugins.getOnPrinterFlowHandler().onPrinterDataBefore(orderType,GsonUtils.GsonString(beans), GsonUtils.GsonString(printerDeviceBean));
if (isPinPrinter(printerDeviceBean) && printerDeviceBean.getPrinterDeviceType() == PRINT_IP) { if (isPinPrinter(printerDeviceBean) && printerDeviceBean.getPrinterDeviceType() == PRINT_IP) {
//針式打印機並且打印機類型為IP打印,生成獨特的格式 //針式打印機並且打印機類型為IP打印,生成獨特的格式
...@@ -922,10 +932,12 @@ public class PrjService extends Service implements ReceiveListener { ...@@ -922,10 +932,12 @@ public class PrjService extends Service implements ReceiveListener {
if (bitmapMaps.size() > 0) { if (bitmapMaps.size() > 0) {
String prjName = null; String prjName = null;
int orderType = 1;
if (beans.size() > 0) { if (beans.size() > 0) {
prjName = beans.get(0).getBillNo(); prjName = beans.get(0).getBillNo().isEmpty() ? beans.get(0).getOrderNo() : beans.get(0).getBillNo();
orderType = beans.get(0).getOrderType();
} }
PrintPaperPlugins.getOnPrinterFlowHandler().onPrinterBitmapBefore(prjName, bitmapMaps); PrintPaperPlugins.getOnPrinterFlowHandler().onPrinterBitmapBefore(orderType,prjName, bitmapMaps);
} }
return bitmapMaps; return bitmapMaps;
......
...@@ -4,6 +4,7 @@ import android.text.TextUtils; ...@@ -4,6 +4,7 @@ import android.text.TextUtils;
import com.gingersoft.gsa.cloud.common.logan.LoganManager; import com.gingersoft.gsa.cloud.common.logan.LoganManager;
import com.gingersoft.gsa.cloud.common.patterns.Strategy; import com.gingersoft.gsa.cloud.common.patterns.Strategy;
import com.gingersoft.gsa.cloud.common.utils.AppDevices;
import com.gingersoft.gsa.cloud.pay.bean.PosActionStatusExceptionParam; import com.gingersoft.gsa.cloud.pay.bean.PosActionStatusExceptionParam;
import com.gingersoft.gsa.cloud.pay.pos.OnPosActionListener; import com.gingersoft.gsa.cloud.pay.pos.OnPosActionListener;
import com.gingersoft.gsa.cloud.pay.pos.PosAction; import com.gingersoft.gsa.cloud.pay.pos.PosAction;
...@@ -56,7 +57,7 @@ public class CancelOrder implements Strategy<OrderManagerResponse> { ...@@ -56,7 +57,7 @@ public class CancelOrder implements Strategy<OrderManagerResponse> {
dialogBuilder.setMessage("是否取消訂單?"); dialogBuilder.setMessage("是否取消訂單?");
dialogBuilder.addAction(0, "確認", QMUIDialogAction.ACTION_PROP_NEGATIVE, (dialog, index) -> { dialogBuilder.addAction(0, "確認", QMUIDialogAction.ACTION_PROP_NEGATIVE, (dialog, index) -> {
dialog.dismiss(); dialog.dismiss();
if (datasBean.withHywebPay()) { if (datasBean.withHywebPay() && AppDevices.isHywebPos()) {
hywebOrderCancle(datasBean); hywebOrderCancle(datasBean);
} else { } else {
if (cancelListener != null) { if (cancelListener != null) {
......
...@@ -228,7 +228,6 @@ public class OrderManagerResponse implements Serializable { ...@@ -228,7 +228,6 @@ public class OrderManagerResponse implements Serializable {
} }
} }
public boolean withHywebPay() { public boolean withHywebPay() {
if (!TextUtils.isEmpty(payTxnId) || !TextUtils.isEmpty(cancelTxnId) || !TextUtils.isEmpty(refundTxnId)) { if (!TextUtils.isEmpty(payTxnId) || !TextUtils.isEmpty(cancelTxnId) || !TextUtils.isEmpty(refundTxnId)) {
return true; return true;
......
...@@ -259,9 +259,9 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex ...@@ -259,9 +259,9 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex
* 1、更新食品折扣 * 1、更新食品折扣
* 2、更新合計 * 2、更新合計
* 3、更新食品折扣 * 3、更新食品折扣
* 4、更新服務費項 * 4、更新服務費項{@link ServiceChargeItem}
* 5、更新賬單折扣項{@link NomalDiscount} * 5、更新賬單折扣項{@link NomalDiscount}
* 6、更新賬單小數項 * 6、更新賬單小數項{@link RoundingItem}
* 7、總金額 * 7、總金額
*/ */
public void updateBillInfo(UpdateBillInfoEndListener updateBillInfoEndListener) { public void updateBillInfo(UpdateBillInfoEndListener updateBillInfoEndListener) {
...@@ -436,7 +436,7 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex ...@@ -436,7 +436,7 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex
* @param cla * @param cla
* @return * @return
*/ */
private BillItem findBillItemByClass(Class<?> cla) { public BillItem findBillItemByClass(Class<?> cla) {
BillItem billItem = null; BillItem billItem = null;
for (BillItem item : mBillItemList) { for (BillItem item : mBillItemList) {
if (item.getClass().equals(cla)) { if (item.getClass().equals(cla)) {
...@@ -1134,7 +1134,7 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex ...@@ -1134,7 +1134,7 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex
orderItem.setDiscountList(discountList); orderItem.setDiscountList(discountList);
} }
} }
orderItem.setLunchboxPrice(0); // orderItem.setLunchboxPrice(0);
orderItem.setPointsAdd(item.getPointsAdd()); orderItem.setPointsAdd(item.getPointsAdd());
orderItem.setPointsRedeem(item.getPointsRedeem()); orderItem.setPointsRedeem(item.getPointsRedeem());
......
...@@ -150,7 +150,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra ...@@ -150,7 +150,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
this.mAppManager = null; this.mAppManager = null;
this.mImageLoader = null; this.mImageLoader = null;
this.mApplication = null; this.mApplication = null;
if(mNomalDiscountAction != null){ if (mNomalDiscountAction != null) {
mNomalDiscountAction.destroy(); mNomalDiscountAction.destroy();
} }
stopTablePolling(); stopTablePolling();
...@@ -249,7 +249,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra ...@@ -249,7 +249,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
@Override @Override
public void onItemDeleteClick(BillItem datasBean, int position) { public void onItemDeleteClick(BillItem datasBean, int position) {
removeBillItem(position); removeBillItemByPosition(position);
} }
}); });
} }
...@@ -385,7 +385,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra ...@@ -385,7 +385,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
mergeMainFoodNumber(mOrderMealList); mergeMainFoodNumber(mOrderMealList);
} }
PrintContent printContent = new PrintContentAdapter().adaptationServingPaperContent(DoshokuOrder.getInstance(),mTableInfo); PrintContent printContent = new PrintContentAdapter().adaptationServingPaperContent(DoshokuOrder.getInstance(), mTableInfo);
CC.obtainBuilder(ComponentName.COMPONENT_PRINT) CC.obtainBuilder(ComponentName.COMPONENT_PRINT)
.setActionName("printActivity") .setActionName("printActivity")
...@@ -432,7 +432,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra ...@@ -432,7 +432,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
mergeMainFoodNumber(mOrderMealList); mergeMainFoodNumber(mOrderMealList);
} }
PrintContent printContent = new PrintContentAdapter().adaptationPrintSlipContent(DoshokuOrder.getInstance(),mTableInfo); PrintContent printContent = new PrintContentAdapter().adaptationPrintSlipContent(DoshokuOrder.getInstance(), mTableInfo);
CC.obtainBuilder(ComponentName.COMPONENT_PRINT) CC.obtainBuilder(ComponentName.COMPONENT_PRINT)
.addParam(PrintConstans.PRINT_TYPE, PrintConstans.PRINT_SLIP)//印單 .addParam(PrintConstans.PRINT_TYPE, PrintConstans.PRINT_SLIP)//印單
...@@ -810,15 +810,18 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra ...@@ -810,15 +810,18 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
private void updateOrderDetails(BaseOrderResponse info) { private void updateOrderDetails(BaseOrderResponse info) {
if (mDoshokuOrder != null && info.getData() != null) { if (mDoshokuOrder != null && info.getData() != null) {
if (info.getData().getOrderDetails() != null) { mTableInfo.setPerson(info.getData().getPerson());
mTableInfo.setCreateTime(info.getData().getCreateTime());
mDoshokuOrder.setOpenTableInfo(mTableInfo);
mDoshokuOrder.setOrderPlaced(info.getData());
mTableInfo.setPerson(info.getData().getPerson()); if (info.getData().getOrderDetails() != null) {
//緩存訂單信息 //组装食品信息
mDoshokuOrder.setOrderPlaced(new OrderResponse(info.getData()));
//緩存食品信息
// List<OrderDetail> orderDetailList = OrderDetail.orderTransOrderDetails(info.getData().getOrderDetails());
List<OrderDetail> orderDetailList = OrderAssemblyUtil.assemblyOrder(OrderDetail.orderTransOrderDetails(info.getData().getOrderDetails())); List<OrderDetail> orderDetailList = OrderAssemblyUtil.assemblyOrder(OrderDetail.orderTransOrderDetails(info.getData().getOrderDetails()));
mDoshokuOrder.setNewFoodList(orderDetailList);
mOrderMealList.clear(); mOrderMealList.clear();
mOrderMealList.addAll(orderDetailList); mOrderMealList.addAll(orderDetailList);
mSelectMealAdapter.notifyDataSetChanged(); mSelectMealAdapter.notifyDataSetChanged();
...@@ -874,8 +877,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra ...@@ -874,8 +877,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
return true; return true;
} }
public void removeBillItemByPosition(int index) {
public void removeBillItem(int index) {
if (index < mBillItemList.size()) { if (index < mBillItemList.size()) {
BillItem billItem = mBillItemList.get(index); BillItem billItem = mBillItemList.get(index);
if (billItem instanceof DiscountItem) { if (billItem instanceof DiscountItem) {
...@@ -888,11 +890,12 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra ...@@ -888,11 +890,12 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
/** /**
* 修改訂單包含修改或刪除過的的食品 * 修改訂單包含修改或刪除過的的食品
*
* @return * @return
*/ */
private boolean hasModifyFoods() { private boolean hasModifyFoods() {
for (OrderDetail orderDetail : getOrderFoodLists()) { for (OrderDetail orderDetail : getOrderFoodLists()) {
if(orderDetail.isModify()){ if (orderDetail.isModify()) {
return true; return true;
} }
} }
......
...@@ -57,6 +57,7 @@ public class OrderDetailPresenter extends BaseOrderConterPresenter<OrderDetailCo ...@@ -57,6 +57,7 @@ public class OrderDetailPresenter extends BaseOrderConterPresenter<OrderDetailCo
@Inject @Inject
AppManager mAppManager; AppManager mAppManager;
@Inject @Inject
public OrderDetailPresenter(OrderDetailContract.Model model, OrderDetailContract.View rootView) { public OrderDetailPresenter(OrderDetailContract.Model model, OrderDetailContract.View rootView) {
super(model, rootView); super(model, rootView);
...@@ -88,8 +89,7 @@ public class OrderDetailPresenter extends BaseOrderConterPresenter<OrderDetailCo ...@@ -88,8 +89,7 @@ public class OrderDetailPresenter extends BaseOrderConterPresenter<OrderDetailCo
if (result.getData() != null) { if (result.getData() != null) {
OrderManagerResponse orderDetailItem = JsonUtils.parseObject(JsonUtils.toJson(result.getData()), OrderManagerResponse.class); OrderManagerResponse orderDetailItem = JsonUtils.parseObject(JsonUtils.toJson(result.getData()), OrderManagerResponse.class);
mRootView.returnOrderDetail(orderDetailItem); mRootView.returnOrderDetail(orderDetailItem);
//刷新訂單列表 } else {
EventBus.getDefault().post(true, PosActionStatusExceptionFragment.REFREAFSH_ORDER_EVENT); } else {
mRootView.showMessage("獲取賬單失敗"); mRootView.showMessage("獲取賬單失敗");
} }
} else { } else {
......
...@@ -49,8 +49,10 @@ import com.gingersoft.gsa.cloud.component.ComponentName; ...@@ -49,8 +49,10 @@ import com.gingersoft.gsa.cloud.component.ComponentName;
import com.gingersoft.gsa.cloud.database.bean.Food; import com.gingersoft.gsa.cloud.database.bean.Food;
import com.gingersoft.gsa.cloud.order.bean.response.OrderResponse; import com.gingersoft.gsa.cloud.order.bean.response.OrderResponse;
import com.gingersoft.gsa.cloud.order.billItem.BillItem; import com.gingersoft.gsa.cloud.order.billItem.BillItem;
import com.gingersoft.gsa.cloud.order.billItem.DiscountItem;
import com.gingersoft.gsa.cloud.order.cart.ShoppingCart; import com.gingersoft.gsa.cloud.order.cart.ShoppingCart;
import com.gingersoft.gsa.cloud.order.commodity.OrderDetail; import com.gingersoft.gsa.cloud.order.commodity.OrderDetail;
import com.gingersoft.gsa.cloud.order.discount.MemberDiscount;
import com.gingersoft.gsa.cloud.order.discount.MultyDiscount; import com.gingersoft.gsa.cloud.order.discount.MultyDiscount;
import com.gingersoft.gsa.cloud.order.order.BaseOrder; import com.gingersoft.gsa.cloud.order.order.BaseOrder;
import com.gingersoft.gsa.cloud.order.order.DoshokuOrder; import com.gingersoft.gsa.cloud.order.order.DoshokuOrder;
...@@ -440,8 +442,8 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter> ...@@ -440,8 +442,8 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter>
} else { } else {
ivPoints[i].setImageResource(R.drawable.meal_food_group_point_unfocused); ivPoints[i].setImageResource(R.drawable.meal_food_group_point_unfocused);
} }
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(ArmsUtils.dip2px(this,20),ArmsUtils.dip2px(this,12)); LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(ArmsUtils.dip2px(this, 20), ArmsUtils.dip2px(this, 12));
lp.leftMargin = ArmsUtils.dip2px(this,5); lp.leftMargin = ArmsUtils.dip2px(this, 5);
ivPoints[i].setLayoutParams(lp); ivPoints[i].setLayoutParams(lp);
ivPoints[i].setPadding(0, 0, 0, 0); ivPoints[i].setPadding(0, 0, 0, 0);
ll_food_group_point.addView(ivPoints[i]); ll_food_group_point.addView(ivPoints[i]);
...@@ -648,8 +650,14 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter> ...@@ -648,8 +650,14 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter>
public void clearMemberInfo() { public void clearMemberInfo() {
btn_table.setBackgroundColor(Color.parseColor("#336699")); btn_table.setBackgroundColor(Color.parseColor("#336699"));
DoshokuOrder.getInstance().setMemberInfo(null); DoshokuOrder.getInstance().setMemberInfo(null);
//更新賬單信息
mPresenter.updateBillInfo(); DiscountItem memberDiscountBillItem = (DiscountItem) mPresenter.findBillItemByClass(MemberDiscount.class);
if(memberDiscountBillItem != null){
ShoppingCart shoppingCart = mPresenter.getShoppingCart();
shoppingCart.delMultyDiscount(memberDiscountBillItem.getDiscount());
//更新賬單信息
mPresenter.updateBillInfo();
}
if (DoshokuOrder.getInstance().needUpdateMemberInfo()) { if (DoshokuOrder.getInstance().needUpdateMemberInfo()) {
return; return;
} }
......
...@@ -344,7 +344,7 @@ public class OrderDetailActivity extends BaseFragmentActivity<OrderDetailPresent ...@@ -344,7 +344,7 @@ public class OrderDetailActivity extends BaseFragmentActivity<OrderDetailPresent
if (mOrderDetailItem.getRestaurantOperationId() != null) { if (mOrderDetailItem.getRestaurantOperationId() != null) {
setWithSettlementLayoutVisible(); setWithSettlementLayoutVisible();
} else { } else {
if (mOrderDetailItem.withHywebPay()) { if (mOrderDetailItem.withHywebPay() && AppDevices.isHywebPos()) {
if (mOrderDetailItem.isCurrDeviceOrder()) { if (mOrderDetailItem.isCurrDeviceOrder()) {
setCurrPosDeviceLayoutVisible(); setCurrPosDeviceLayoutVisible();
} else { } else {
......
...@@ -34,6 +34,7 @@ import com.jess.arms.integration.lifecycle.ActivityLifecycleable; ...@@ -34,6 +34,7 @@ import com.jess.arms.integration.lifecycle.ActivityLifecycleable;
import com.jess.arms.mvp.IPresenter; import com.jess.arms.mvp.IPresenter;
import com.jess.arms.utils.AndroidWorkaround; import com.jess.arms.utils.AndroidWorkaround;
import com.jess.arms.utils.ArmsUtils; import com.jess.arms.utils.ArmsUtils;
import com.qmuiteam.qmui.arch.QMUIActivity;
import com.qmuiteam.qmui.util.QMUIDeviceHelper; import com.qmuiteam.qmui.util.QMUIDeviceHelper;
import com.trello.rxlifecycle2.android.ActivityEvent; import com.trello.rxlifecycle2.android.ActivityEvent;
...@@ -57,7 +58,7 @@ import static com.jess.arms.utils.ThirdViewUtil.convertAutoView; ...@@ -57,7 +58,7 @@ import static com.jess.arms.utils.ThirdViewUtil.convertAutoView;
* <a href="https://github.com/JessYanCoding">Follow me</a> * <a href="https://github.com/JessYanCoding">Follow me</a>
* ================================================ * ================================================
*/ */
public abstract class BaseActivity<P extends IPresenter> extends AppCompatActivity implements IActivity, ActivityLifecycleable { public abstract class BaseActivity<P extends IPresenter> extends QMUIActivity implements IActivity, ActivityLifecycleable {
protected final String TAG = this.getClass().getSimpleName(); protected final String TAG = this.getClass().getSimpleName();
private final BehaviorSubject<ActivityEvent> mLifecycleSubject = BehaviorSubject.create(); private final BehaviorSubject<ActivityEvent> mLifecycleSubject = BehaviorSubject.create();
private Cache<String, Object> mCache; private Cache<String, Object> mCache;
......
...@@ -30,13 +30,18 @@ import com.jess.arms.integration.lifecycle.FragmentLifecycleable; ...@@ -30,13 +30,18 @@ import com.jess.arms.integration.lifecycle.FragmentLifecycleable;
import com.jess.arms.mvp.IPresenter; import com.jess.arms.mvp.IPresenter;
import com.jess.arms.utils.ArmsUtils; import com.jess.arms.utils.ArmsUtils;
import com.qmuiteam.qmui.arch.QMUIFragment; import com.qmuiteam.qmui.arch.QMUIFragment;
import com.qmuiteam.qmui.arch.QMUIFragmentLazyLifecycleOwner;
import com.trello.rxlifecycle2.android.FragmentEvent; import com.trello.rxlifecycle2.android.FragmentEvent;
import java.util.Observable; import java.util.Observable;
import javax.inject.Inject; import javax.inject.Inject;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment; import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentActivity; import androidx.fragment.app.FragmentActivity;
import io.reactivex.Observer; import io.reactivex.Observer;
import io.reactivex.subjects.BehaviorSubject; import io.reactivex.subjects.BehaviorSubject;
import io.reactivex.subjects.Subject; import io.reactivex.subjects.Subject;
...@@ -56,7 +61,7 @@ import me.yokeyword.fragmentation.anim.FragmentAnimator; ...@@ -56,7 +61,7 @@ import me.yokeyword.fragmentation.anim.FragmentAnimator;
* <a href="https://github.com/JessYanCoding">Follow me</a> * <a href="https://github.com/JessYanCoding">Follow me</a>
* ================================================ * ================================================
*/ */
public abstract class BaseFragment<P extends IPresenter> extends Fragment implements IFragment, ISupportFragment, FragmentLifecycleable { public abstract class BaseFragment<P extends IPresenter> extends QMUIFragment implements IFragment, ISupportFragment, FragmentLifecycleable {
protected final String TAG = this.getClass().getSimpleName(); protected final String TAG = this.getClass().getSimpleName();
private final BehaviorSubject<FragmentEvent> mLifecycleSubject = BehaviorSubject.create(); private final BehaviorSubject<FragmentEvent> mLifecycleSubject = BehaviorSubject.create();
private Cache<String, Object> mCache; private Cache<String, Object> mCache;
...@@ -87,8 +92,6 @@ public abstract class BaseFragment<P extends IPresenter> extends Fragment implem ...@@ -87,8 +92,6 @@ public abstract class BaseFragment<P extends IPresenter> extends Fragment implem
return mLifecycleSubject; return mLifecycleSubject;
} }
private View view;
@Override @Override
public SupportFragmentDelegate getSupportDelegate() { public SupportFragmentDelegate getSupportDelegate() {
return mDelegate; return mDelegate;
...@@ -117,7 +120,7 @@ public abstract class BaseFragment<P extends IPresenter> extends Fragment implem ...@@ -117,7 +120,7 @@ public abstract class BaseFragment<P extends IPresenter> extends Fragment implem
Activity activity = (Activity) context; Activity activity = (Activity) context;
mDelegate.onAttach(activity); mDelegate.onAttach(activity);
_mActivity = (BaseFragmentActivity) mDelegate.getActivity(); _mActivity = (BaseFragmentActivity) mDelegate.getActivity();
mContext = mDelegate.getActivity(); mContext = mDelegate.getActivity();
} }
@Override @Override
...@@ -137,24 +140,30 @@ public abstract class BaseFragment<P extends IPresenter> extends Fragment implem ...@@ -137,24 +140,30 @@ public abstract class BaseFragment<P extends IPresenter> extends Fragment implem
mDelegate.onActivityCreated(savedInstanceState); mDelegate.onActivityCreated(savedInstanceState);
} }
@Nullable
@Override @Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { protected View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container) {
if (view != null) { mCacheRootView = initView(inflater, container, null);
ViewGroup viewGroup = (ViewGroup) view.getRootView(); return mCacheRootView;
if (viewGroup != null) {
viewGroup.removeView(view);
}
return view;
}
view = initView(inflater, container, savedInstanceState);
return view;
} }
// @Nullable
// @Override
// public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
// if (view != null) {
// ViewGroup viewGroup = (ViewGroup) view.getRootView();
// if (viewGroup != null) {
// viewGroup.removeView(view);
// }
// return view;
// }
// view = initView(inflater, container, savedInstanceState);
// return view;
// }
@Nullable @Nullable
@Override @Override
public View getView() { public View getView() {
return view; return mCacheRootView;
} }
/** /**
......
...@@ -34,6 +34,8 @@ import com.jess.arms.integration.lifecycle.ActivityLifecycleable; ...@@ -34,6 +34,8 @@ import com.jess.arms.integration.lifecycle.ActivityLifecycleable;
import com.jess.arms.mvp.IPresenter; import com.jess.arms.mvp.IPresenter;
import com.jess.arms.utils.ArmsUtils; import com.jess.arms.utils.ArmsUtils;
import com.jess.arms.utils.DeviceUtils; import com.jess.arms.utils.DeviceUtils;
import com.qmuiteam.qmui.arch.QMUIActivity;
import com.qmuiteam.qmui.arch.QMUIFragmentActivity;
import com.qmuiteam.qmui.util.QMUIDeviceHelper; import com.qmuiteam.qmui.util.QMUIDeviceHelper;
import com.trello.rxlifecycle2.android.ActivityEvent; import com.trello.rxlifecycle2.android.ActivityEvent;
...@@ -62,7 +64,7 @@ import static com.jess.arms.utils.ThirdViewUtil.convertAutoView; ...@@ -62,7 +64,7 @@ import static com.jess.arms.utils.ThirdViewUtil.convertAutoView;
* <a href="https://github.com/JessYanCoding">Follow me</a> * <a href="https://github.com/JessYanCoding">Follow me</a>
* ================================================ * ================================================
*/ */
public abstract class BaseFragmentActivity<P extends IPresenter> extends FragmentActivity implements IActivity, ISupportActivity, ActivityLifecycleable { public abstract class BaseFragmentActivity<P extends IPresenter> extends QMUIActivity implements IActivity, ISupportActivity, ActivityLifecycleable {
protected final String TAG = this.getClass().getSimpleName(); protected final String TAG = this.getClass().getSimpleName();
private final BehaviorSubject<ActivityEvent> mLifecycleSubject = BehaviorSubject.create(); private final BehaviorSubject<ActivityEvent> mLifecycleSubject = BehaviorSubject.create();
private Cache<String, Object> mCache; private Cache<String, Object> mCache;
...@@ -95,6 +97,7 @@ public abstract class BaseFragmentActivity<P extends IPresenter> extends Fragmen ...@@ -95,6 +97,7 @@ public abstract class BaseFragmentActivity<P extends IPresenter> extends Fragmen
return view == null ? super.onCreateView(name, context, attrs) : view; return view == null ? super.onCreateView(name, context, attrs) : view;
} }
@Override @Override
protected void onCreate(@Nullable Bundle savedInstanceState) { protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
...@@ -179,6 +182,7 @@ public abstract class BaseFragmentActivity<P extends IPresenter> extends Fragmen ...@@ -179,6 +182,7 @@ public abstract class BaseFragmentActivity<P extends IPresenter> extends Fragmen
*/ */
@Override @Override
final public void onBackPressed() { final public void onBackPressed() {
super.onBackPressed();
mDelegate.onBackPressed(); mDelegate.onBackPressed();
} }
......
...@@ -63,6 +63,7 @@ import com.hyweb.n5.lib.exception.NoInitPrinterException; ...@@ -63,6 +63,7 @@ import com.hyweb.n5.lib.exception.NoInitPrinterException;
import com.hyweb.n5.lib.util.PrinterUtil; import com.hyweb.n5.lib.util.PrinterUtil;
import com.jess.arms.base.BaseApplication; import com.jess.arms.base.BaseApplication;
import com.kingja.loadsir.core.LoadSir; import com.kingja.loadsir.core.LoadSir;
import com.qmuiteam.qmui.arch.QMUISwipeBackActivityManager;
import com.scwang.smartrefresh.layout.SmartRefreshLayout; import com.scwang.smartrefresh.layout.SmartRefreshLayout;
import com.scwang.smartrefresh.layout.footer.ClassicsFooter; import com.scwang.smartrefresh.layout.footer.ClassicsFooter;
import com.scwang.smartrefresh.layout.header.ClassicsHeader; import com.scwang.smartrefresh.layout.header.ClassicsHeader;
...@@ -137,10 +138,8 @@ public class GsaCloudApplication extends BaseApplication { ...@@ -137,10 +138,8 @@ public class GsaCloudApplication extends BaseApplication {
initHywebCommandImpl(); initHywebCommandImpl();
//初始化服務器地址 //初始化服務器地址
initDomainUrl(); initDomainUrl();
//初始化側滑回退 //初始化QMUI相关
// QMUISwipeBackActivityManager.init(this); initQMUI();
//初始化主題管理器
// QDSkinManager.install(this);
//初始化哆啦A夢 //初始化哆啦A夢
// initDoraemonKit(); // initDoraemonKit();
//初始化上下拉刷新 //初始化上下拉刷新
...@@ -169,6 +168,13 @@ public class GsaCloudApplication extends BaseApplication { ...@@ -169,6 +168,13 @@ public class GsaCloudApplication extends BaseApplication {
LoganManager.w_action(TAG, TAG + ": onCreate end....."); LoganManager.w_action(TAG, TAG + ": onCreate end.....");
} }
private void initQMUI() {
//初始化側滑回退
QMUISwipeBackActivityManager.init(this);
//初始化主題管理器
// QDSkinManager.install(this);
}
/** /**
* 初始化美團日誌框架 * 初始化美團日誌框架
*/ */
...@@ -337,29 +343,32 @@ public class GsaCloudApplication extends BaseApplication { ...@@ -337,29 +343,32 @@ public class GsaCloudApplication extends BaseApplication {
PrintPaperPlugins.setOnPrinterFlowHandler(new PrinterFlowListener() { PrintPaperPlugins.setOnPrinterFlowHandler(new PrinterFlowListener() {
@Override @Override
public void onPrinterDataBefore(String printerData, String printerDeviceInfo) { public void onPrinterDataBefore(int orderType, String printerData, String printerDeviceInfo) {
LoganManager.w_code(TAG, "onPrinterDataBefore printerData=" + printerData + " printerDeviceInfo=" + printerDeviceInfo); LoganManager.w_code(TAG, "onPrinterDataBefore printerData=" + printerData + " printerDeviceInfo=" + printerDeviceInfo);
} }
@Override @Override
public void onPrinterBitmapBefore(String directoryName, List<Map<String, Bitmap>> bitmaps) { public void onPrinterBitmapBefore(int orderType, String directoryName, List<Map<String, Bitmap>> bitmaps) {
LoganManager.w_code(TAG, "onPrinterBitmapBefore"); LoganManager.w_code(TAG, "onPrinterBitmapBefore");
RxIOTask rxIOTask = new RxIOTask(0) { RxIOTask rxIOTask = new RxIOTask(0) {
@Override @Override
public Object doInIOThread(Object o) { public Object doInIOThread(Object o) {
long FILE_SIZE = FileUtils.getFileSize(FileUtils.PrinterImagePath.KITCHEN_PRJ_IMAGE_PATH); File file = new File(FileUtils.PrinterImagePath.KITCHEN_PRJ_IMAGE_PATH);
if (FILE_SIZE > FileUtils.PrinterImagePath.PRINTER_MAX_FILE_SIZE) { if (file != null && file.exists()) {
//大於100M 就刪除 long FILE_SIZE = FileUtils.getDirSize(file);
File prjPath = new File(FileUtils.PrinterImagePath.KITCHEN_PRJ_IMAGE_PATH); if (FILE_SIZE > FileUtils.PrinterImagePath.PRINTER_MAX_FILE_SIZE) {
if (prjPath.isDirectory()) { //大於100M 就刪除
File[] prjDirectorys = prjPath.listFiles(); File prjPath = new File(FileUtils.PrinterImagePath.KITCHEN_PRJ_IMAGE_PATH);
for (int i = prjDirectorys.length - 1; i >= 0; i--) { if (prjPath.isDirectory()) {
File prjDirectory = prjDirectorys[i]; File[] prjDirectorys = prjPath.listFiles();
boolean deleteResult = prjDirectory.delete(); for (int i = prjDirectorys.length - 1; i >= 0; i--) {
if (deleteResult && FILE_SIZE <= FileUtils.PrinterImagePath.PRINTER_KEEP_FILE_SIZE) { File prjDirectory = prjDirectorys[i];
FILE_SIZE = FileUtils.getFileSize(FileUtils.PrinterImagePath.KITCHEN_PRJ_IMAGE_PATH); boolean deleteResult = prjDirectory.delete();
LoganManager.w_code(TAG, "onPrinterBitmapBefore delete kitchen prj file after size :" + FILE_SIZE); if (deleteResult && FILE_SIZE <= FileUtils.PrinterImagePath.PRINTER_KEEP_FILE_SIZE) {
break; FILE_SIZE = FileUtils.getFileSize(FileUtils.PrinterImagePath.KITCHEN_PRJ_IMAGE_PATH);
LoganManager.w_code(TAG, "onPrinterBitmapBefore delete kitchen prj file after size :" + FILE_SIZE);
break;
}
} }
} }
} }
......
...@@ -3,4 +3,6 @@ package com.gingersoft.gsa.cloud.common.constans; ...@@ -3,4 +3,6 @@ package com.gingersoft.gsa.cloud.common.constans;
public class DeliveryPickConstans { public class DeliveryPickConstans {
public static final String ORDER_TYPE = "orderType"; public static final String ORDER_TYPE = "orderType";
} }
...@@ -11,7 +11,7 @@ public interface OrderTypeConstans { ...@@ -11,7 +11,7 @@ public interface OrderTypeConstans {
*/ */
int order_type_2 = 2; int order_type_2 = 2;
/** /**
* 掃碼點餐 * skyorder
*/ */
int order_type_3 = 3; int order_type_3 = 3;
/** /**
......
...@@ -14,9 +14,9 @@ import java.util.Map; ...@@ -14,9 +14,9 @@ import java.util.Map;
*/ */
public interface PrinterFlowListener extends ExternalPrinterConnection { public interface PrinterFlowListener extends ExternalPrinterConnection {
void onPrinterDataBefore(String printerData,String printerDeviceInfo); void onPrinterDataBefore(int orderType,String printerData,String printerDeviceInfo);
void onPrinterBitmapBefore(String directoryName, List<Map<String, Bitmap>> bitmaps); void onPrinterBitmapBefore(int orderType,String directoryName, List<Map<String, Bitmap>> bitmaps);
void onPrintSuccess(PrinterDeviceBean printerDeviceBean); void onPrintSuccess(PrinterDeviceBean printerDeviceBean);
......
...@@ -78,10 +78,10 @@ public class FileUtils { ...@@ -78,10 +78,10 @@ public class FileUtils {
public static String BillImage = "BillImage"; public static String BillImage = "BillImage";
public static String ServingPaperImage = "ServingPaperImage"; public static String ServingPaperImage = "ServingPaperImage";
public final static String ROOT_PATH = ALBUM_PATH + PrinterImagesRootPath + File.separator; public final static String ROOT_PATH = ALBUM_PATH + PrinterImagesRootPath + File.separator;
public final static String KITCHEN_PRJ_IMAGE_PATH = ROOT_PATH + KitchenImage; public final static String KITCHEN_PRJ_IMAGE_PATH = ROOT_PATH + KitchenImage + File.separator;
public final static String ORDER_IMAGE_PATH = ROOT_PATH + OrderImage; public final static String ORDER_IMAGE_PATH = ROOT_PATH + OrderImage + File.separator;
public final static String BILL_IMAGE_PATH = ROOT_PATH + BillImage; public final static String BILL_IMAGE_PATH = ROOT_PATH + BillImage + File.separator;
public final static String SERVING_PAPER_IMAGE_PATH = ROOT_PATH + ServingPaperImage; public final static String SERVING_PAPER_IMAGE_PATH = ROOT_PATH + ServingPaperImage + File.separator;
} }
public final static String FILE_EXTENSION_SEPARATOR = "."; public final static String FILE_EXTENSION_SEPARATOR = ".";
...@@ -284,6 +284,28 @@ public class FileUtils { ...@@ -284,6 +284,28 @@ public class FileUtils {
return size; return size;
} }
/**
* 获取目录文件大小
*/
public static long getDirSize(File dir) {
if (dir == null) {
return 0;
}
if (!dir.isDirectory()) {
return 0;
}
long dirSize = 0;
File[] files = dir.listFiles();
for (File file : files) {
if (file.isFile()) {
dirSize += file.length();
} else if (file.isDirectory()) {
dirSize += getDirSize(file); // 递归调用继续统计
}
}
return dirSize;
}
/* /*
* Java文件操作 获取文件扩展名 * Java文件操作 获取文件扩展名
* */ * */
......
...@@ -40,7 +40,7 @@ public class OrderDiscountRequest { ...@@ -40,7 +40,7 @@ public class OrderDiscountRequest {
/** /**
* 折扣金額 * 折扣金額
*/ */
private double discountAmount; private Double discountAmount;
/** /**
* 是否计算服务费 * 是否计算服务费
*/ */
......
...@@ -26,7 +26,7 @@ public class OrderDiscountResponse implements Serializable { ...@@ -26,7 +26,7 @@ public class OrderDiscountResponse implements Serializable {
* 1#會員折扣 * 1#會員折扣
* 2#优惠券折扣 * 2#优惠券折扣
*/ */
private int type; private byte type;
/** /**
* 餐廳折扣類型 0:金額,1:折扣,2:自定義金額,3:自由金額,數字盤,4:免服務費 * 餐廳折扣類型 0:金額,1:折扣,2:自定義金額,3:自由金額,數字盤,4:免服務費
*/ */
......
...@@ -138,7 +138,7 @@ public class OrderResponse { ...@@ -138,7 +138,7 @@ public class OrderResponse {
/** /**
* 成本價 * 成本價
*/ */
private double cost; private Double cost;
/** /**
* 自定義字段 * 自定義字段
......
...@@ -64,13 +64,12 @@ public class PrjBean { ...@@ -64,13 +64,12 @@ public class PrjBean {
private String takeFoodCode; //取餐碼 private String takeFoodCode; //取餐碼
private String billNo;//訂單碼 private String billNo;//訂單碼
/** /**
* 訂單類型 * 訂單類型{@link com.gingersoft.gsa.cloud.common.constans.OrderTypeConstans}
* 1:堂食 */
* 2: private int orderType;
* 3:skyorder /**
* 7:自取 * 服務員名稱
*/ */
private int orderType;//訂單類型
private String userName; private String userName;
/*** /***
* 層級 * 層級
......
...@@ -179,15 +179,16 @@ public class QMUIActivity extends InnerBaseActivity { ...@@ -179,15 +179,16 @@ public class QMUIActivity extends InnerBaseActivity {
* final this method, if need override this method, use doOnBackPressed as an alternative * final this method, if need override this method, use doOnBackPressed as an alternative
*/ */
@Override @Override
public final void onBackPressed() { // public final void onBackPressed() {
public void onBackPressed() {
if (!mIsInSwipeBack) { if (!mIsInSwipeBack) {
doOnBackPressed(); super.onBackPressed();
} }
} }
protected void doOnBackPressed() { // protected void doOnBackPressed() {
super.onBackPressed(); // super.onBackPressed();
} // }
public boolean isInSwipeBack() { public boolean isInSwipeBack() {
return mIsInSwipeBack; return mIsInSwipeBack;
......
...@@ -105,7 +105,7 @@ public abstract class QMUIFragment extends Fragment implements ...@@ -105,7 +105,7 @@ public abstract class QMUIFragment extends Fragment implements
private View mBaseView; private View mBaseView;
private SwipeBackLayout mCacheSwipeBackLayout; private SwipeBackLayout mCacheSwipeBackLayout;
private View mCacheRootView; protected View mCacheRootView;
private boolean isCreateForSwipeBack = false; private boolean isCreateForSwipeBack = false;
private int mBackStackIndex = 0; private int mBackStackIndex = 0;
private SwipeBackLayout.ListenerRemover mListenerRemover; private SwipeBackLayout.ListenerRemover mListenerRemover;
...@@ -288,26 +288,26 @@ public abstract class QMUIFragment extends Fragment implements ...@@ -288,26 +288,26 @@ public abstract class QMUIFragment extends Fragment implements
} }
public void setFragmentResult(int resultCode, Intent data) { // public void setFragmentResult(int resultCode, Intent data) {
int targetRequestCode = getTargetRequestCode(); // int targetRequestCode = getTargetRequestCode();
if (targetRequestCode == 0) { // if (targetRequestCode == 0) {
QMUILog.w(TAG, "call setFragmentResult, but not requestCode exists"); // QMUILog.w(TAG, "call setFragmentResult, but not requestCode exists");
return; // return;
} // }
Fragment fragment = getTargetFragment(); // Fragment fragment = getTargetFragment();
if (!(fragment instanceof QMUIFragment)) { // if (!(fragment instanceof QMUIFragment)) {
return; // return;
} // }
QMUIFragment targetFragment = (QMUIFragment) fragment; // QMUIFragment targetFragment = (QMUIFragment) fragment;
//
if (targetFragment.mSourceRequestCode == targetRequestCode) { // if (targetFragment.mSourceRequestCode == targetRequestCode) {
if (targetFragment.mChildTargetFragment != null) { // if (targetFragment.mChildTargetFragment != null) {
targetFragment = targetFragment.mChildTargetFragment; // targetFragment = targetFragment.mChildTargetFragment;
} // }
targetFragment.mResultCode = resultCode; // targetFragment.mResultCode = resultCode;
targetFragment.mResultData = data; // targetFragment.mResultData = data;
} // }
} // }
@Override @Override
public void onCreate(@Nullable Bundle savedInstanceState) { public void onCreate(@Nullable Bundle savedInstanceState) {
...@@ -357,10 +357,10 @@ public abstract class QMUIFragment extends Fragment implements ...@@ -357,10 +357,10 @@ public abstract class QMUIFragment extends Fragment implements
} }
} }
private SwipeBackLayout newSwipeBackLayout() { private SwipeBackLayout newSwipeBackLayout(@NonNull LayoutInflater inflater, ViewGroup container) {
View rootView = mCacheRootView; View rootView = mCacheRootView;
if (rootView == null) { if (rootView == null) {
rootView = onCreateView(); rootView = onCreateView(inflater,container);
mCacheRootView = rootView; mCacheRootView = rootView;
} else { } else {
if (rootView.getParent() != null) { if (rootView.getParent() != null) {
...@@ -721,7 +721,7 @@ public abstract class QMUIFragment extends Fragment implements ...@@ -721,7 +721,7 @@ public abstract class QMUIFragment extends Fragment implements
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
SwipeBackLayout swipeBackLayout; SwipeBackLayout swipeBackLayout;
if (mCacheSwipeBackLayout == null) { if (mCacheSwipeBackLayout == null) {
swipeBackLayout = newSwipeBackLayout(); swipeBackLayout = newSwipeBackLayout(inflater,container);
mCacheSwipeBackLayout = swipeBackLayout; mCacheSwipeBackLayout = swipeBackLayout;
} else { } else {
if (canNotUseCacheViewInCreateView()) { if (canNotUseCacheViewInCreateView()) {
...@@ -734,7 +734,7 @@ public abstract class QMUIFragment extends Fragment implements ...@@ -734,7 +734,7 @@ public abstract class QMUIFragment extends Fragment implements
Log.i(TAG, "can not use cache swipeBackLayout, this may happen " + Log.i(TAG, "can not use cache swipeBackLayout, this may happen " +
"if invoke popBackStack duration fragment transition"); "if invoke popBackStack duration fragment transition");
mCacheSwipeBackLayout.clearSwipeListeners(); mCacheSwipeBackLayout.clearSwipeListeners();
swipeBackLayout = newSwipeBackLayout(); swipeBackLayout = newSwipeBackLayout(inflater,container);
mCacheSwipeBackLayout = swipeBackLayout; mCacheSwipeBackLayout = swipeBackLayout;
} else { } else {
swipeBackLayout = mCacheSwipeBackLayout; swipeBackLayout = mCacheSwipeBackLayout;
...@@ -915,7 +915,7 @@ public abstract class QMUIFragment extends Fragment implements ...@@ -915,7 +915,7 @@ public abstract class QMUIFragment extends Fragment implements
/** /**
* onCreateView * onCreateView
*/ */
protected abstract View onCreateView(); protected abstract View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container);
/** /**
......
...@@ -66,7 +66,7 @@ ...@@ -66,7 +66,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="取餐碼:" android:text="取餐碼:"
android:textSize="@dimen/dp_20" android:textSize="@dimen/dp_20"
android:visibility="gone" /> android:visibility="visible" />
<TextView <TextView
android:id="@+id/tv_take_code" android:id="@+id/tv_take_code"
...@@ -74,7 +74,7 @@ ...@@ -74,7 +74,7 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:textSize="@dimen/dp_20" android:textSize="@dimen/dp_20"
android:visibility="gone" /> android:visibility="visible" />
</LinearLayout> </LinearLayout>
......
This source diff could not be displayed because it is too large. You can view the blob instead.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment