Преглед изворни кода

修复数据统计,修复调试商品页

ccc пре 4 месеци
родитељ
комит
3de50c5466
26 измењених фајлова са 225 додато и 81 уклоњено
  1. 1 1
      lib_base/src/main/java/com/quyunshuo/androidbaseframemvvm/base/addressenum/PayEnum.kt
  2. BIN
      lib_common/src/main/res/drawable/icon_fashengqi.png
  3. BIN
      lib_common/src/main/res/drawable/userbottom_bg.png
  4. 1 1
      lib_common/src/main/res/layout/toast_error.xml
  5. 3 3
      lib_common/src/main/res/layout/toast_info.xml
  6. 1 1
      lib_common/src/main/res/layout/toast_success.xml
  7. 1 1
      lib_common/src/main/res/layout/toast_warn.xml
  8. 0 2
      module_backstage/src/main/java/com/module/backstage/fragment/date/DateFragment.kt
  9. 0 1
      module_backstage/src/main/java/com/module/backstage/fragment/date/HistogramDataFragment.kt
  10. 16 16
      module_backstage/src/main/java/com/module/backstage/fragment/param/DebugParamFragment.kt
  11. 1 1
      module_backstage/src/main/java/com/module/backstage/fragment/param/GeneralParamFragment.kt
  12. 112 14
      module_backstage/src/main/java/com/module/backstage/fragment/product/DebugProductFragment.kt
  13. 1 2
      module_backstage/src/main/java/com/module/backstage/repo/HistogramDataFragmentRepo.kt
  14. 2 6
      module_backstage/src/main/java/com/module/backstage/vm/DebugParamFragmentVM.kt
  15. 1 0
      module_backstage/src/main/java/com/module/backstage/vm/HistogramDataFragmentVM.kt
  16. 29 20
      module_backstage/src/main/res/layout/backstage_fragment_debug_product.xml
  17. 9 5
      module_home/src/main/java/com/quyunshuo/module/home/fragment/fragment/HomeFragment.kt
  18. 15 0
      module_home/src/main/java/com/quyunshuo/module/home/fragment/fragment/MakeFragment.kt
  19. 3 1
      module_home/src/main/java/com/quyunshuo/module/home/fragment/fragment/pay/BillCoinFragment.kt
  20. 2 1
      module_home/src/main/java/com/quyunshuo/module/home/fragment/fragment/pay/FreeMakeFragment.kt
  21. 3 1
      module_home/src/main/java/com/quyunshuo/module/home/fragment/fragment/pay/MDBCardFragment.kt
  22. 3 1
      module_home/src/main/java/com/quyunshuo/module/home/fragment/fragment/pay/NayaxCardFragment.kt
  23. 3 1
      module_home/src/main/java/com/quyunshuo/module/home/fragment/fragment/pay/QrCodeFragment.kt
  24. 9 0
      module_home/src/main/java/com/quyunshuo/module/home/fragment/repo/MakeFragmentRepo.kt
  25. 7 0
      module_home/src/main/java/com/quyunshuo/module/home/fragment/vm/MakeFragmentVM.kt
  26. 2 2
      serialport-api/src/main/java/com/hboxs/serialport/sbc/VboxSerialPortReadThread.java

+ 1 - 1
lib_base/src/main/java/com/quyunshuo/androidbaseframemvvm/base/addressenum/PayEnum.kt

@@ -27,7 +27,7 @@ enum class PayEnum(val code:String,val remark:String,val nameId:Int,val imgId:In
                     return anEnum
                 }
             }
-            return PayEnum.TWO_CODE
+            return PayEnum.FREE
         }
 
     }

BIN
lib_common/src/main/res/drawable/icon_fashengqi.png


BIN
lib_common/src/main/res/drawable/userbottom_bg.png


+ 1 - 1
lib_common/src/main/res/layout/toast_error.xml

@@ -26,7 +26,7 @@
         android:textColor="@android:color/white"
         android:layout_marginStart="20dp"
         android:layout_marginEnd="20dp"
-        android:textSize="55sp"
+        android:textSize="50sp"
         tools:text="我是 Toast 文本" />
 
 </LinearLayout>

+ 3 - 3
lib_common/src/main/res/layout/toast_info.xml

@@ -23,10 +23,10 @@
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:lineSpacingExtra="5dp"
-        android:layout_marginStart="20dp"
-        android:layout_marginEnd="20dp"
+        android:layout_marginStart="30dp"
+        android:layout_marginEnd="30dp"
         android:textColor="@android:color/white"
-        android:textSize="55sp"
+        android:textSize="50sp"
         tools:text="我是 Toast 文本" />
 
 </LinearLayout>

+ 1 - 1
lib_common/src/main/res/layout/toast_success.xml

@@ -26,7 +26,7 @@
         android:textColor="@android:color/white"
         android:layout_marginStart="20dp"
         android:layout_marginEnd="20dp"
-        android:textSize="55sp"
+        android:textSize="50sp"
         tools:text="我是 Toast 文本" />
 
 </LinearLayout>

+ 1 - 1
lib_common/src/main/res/layout/toast_warn.xml

@@ -26,7 +26,7 @@
         android:textColor="@android:color/white"
         android:layout_marginStart="20dp"
         android:layout_marginEnd="20dp"
-        android:textSize="55sp"
+        android:textSize="50sp"
         tools:text="我是 Toast 文本" />
 
 </LinearLayout>

+ 0 - 2
module_backstage/src/main/java/com/module/backstage/fragment/date/DateFragment.kt

@@ -79,8 +79,6 @@ class DateFragment : BaseFragment<BackstageFragmentDateBinding, DateFragmentVM>(
                 simplePagerTitleView.setOnClickListener {
                     mBinding.magicIndicator2.onPageSelected(index)
                     mBinding.magicIndicator2.onPageScrolled(index, 0.0F, 0);
-
-
                     val navController = Navigation.findNavController(requireActivity(),mBinding.cottoncandyFragmenttcontainerview.id)
                     navController.navigate(fragmentid[index])
                     Log.d(TAG, "getTitleView: ")

+ 0 - 1
module_backstage/src/main/java/com/module/backstage/fragment/date/HistogramDataFragment.kt

@@ -45,7 +45,6 @@ class HistogramDataFragment : BaseFragment<BackstageFragmentHistogramDataBinding
     override fun createVB() = BackstageFragmentHistogramDataBinding.inflate(layoutInflater)
     var dateStatFragment: DateDialog? = null
 
-
     override fun BackstageFragmentHistogramDataBinding.initView() {
         barChartManager = BarChartManager(barChar1)
         barChar1.setVisibility(View.INVISIBLE)

+ 16 - 16
module_backstage/src/main/java/com/module/backstage/fragment/param/DebugParamFragment.kt

@@ -94,12 +94,12 @@ class DebugParamFragment :
     private fun setLoading(b: Boolean?) {
         if (b == false){
             closeLoading()
+            debugParamAdapter?.setState(mViewModel._paramDataMap)
+            debugParamAdapter?.notifyDataSetChanged()
         }
     }
 
     private fun refreshPage(b: Boolean?) {
-        debugParamAdapter?.setState(mViewModel._paramDataMap)
-        debugParamAdapter?.notifyDataSetChanged()
         Log.d(TAG, "refreshPage: 控件刷新")
     }
 
@@ -114,20 +114,20 @@ class DebugParamFragment :
         Log.d(TAG, "paramDataList0: "+lis)
         while (i < len) {
             when (i) {
-//                5 -> {
-//                    if (lis[9]=="0"){
-//                        getValue(lis, i, 4)
-//                    }else{
-//                        getValue(lis, i, 5)
-//                    }
-//                }
-//                8 ->{
-//                    if (lis[9]=="0"){
-//                        getValue(lis, i, 6)
-//                    }else{
-//                        getValue(lis, i, 7)
-//                    }
-//                }
+                5 -> {
+                    if (lis[9]=="0"){
+                        getValue(lis, i, 4)
+                    }else{
+                        getValue(lis, i, 5)
+                    }
+                }
+                8 ->{
+                    if (lis[9]=="0"){
+                        getValue(lis, i, 6)
+                    }else{
+                        getValue(lis, i, 7)
+                    }
+                }
                 0-> getValue(lis, i, 8)
                 1 -> getValue(lis, i, 10)
             }

+ 1 - 1
module_backstage/src/main/java/com/module/backstage/fragment/param/GeneralParamFragment.kt

@@ -25,7 +25,7 @@ import org.greenrobot.eventbus.Subscribe
 import org.greenrobot.eventbus.ThreadMode
 
 /**
- * 通用参数Fragment
+ * 通用参数Fragment
  *
  * @author Qu Yunshuo
  * @since 2021/8/1 11:46 下午

+ 112 - 14
module_backstage/src/main/java/com/module/backstage/fragment/product/DebugProductFragment.kt

@@ -1,46 +1,76 @@
 package com.module.backstage.fragment.product
 
+import android.util.Log
 import android.view.View
 import androidx.fragment.app.viewModels
 import androidx.recyclerview.widget.GridLayoutManager
 import com.hboxs.serialport.plc.DialogClickListener
+import com.hboxs.serialport.plc.util.HexUtils
+import com.hboxs.serialport.sbc.VBoxMessage
+import com.hboxs.serialport.sbc.VboxSerialPortSendQueue
+import com.hboxs.serialport.sbc.frame.VboxCommand
+import com.hboxs.serialport.sbc.frame.VboxWriteCommand
 import com.module.backstage.adapter.DebugProductAdapter
 import com.module.backstage.databinding.BackstageFragmentDebugProductBinding
 import com.module.backstage.dialog.OKCancelDialog
 import com.module.backstage.vm.DebugProductFragmentVM
+import com.quyunshuo.androidbaseframemvvm.base.utils.RegisterEventBus
 import com.quyunshuo.androidbaseframemvvm.common.listener.AdapterClickListener
 import com.quyunshuo.androidbaseframemvvm.common.ui.BaseFragment
+import com.quyunshuo.androidbaseframemvvm.common.util.ByteUtils
+import com.quyunshuo.androidbaseframemvvm.common.util.ToastUtil
 import com.quyunshuo.androidbaseframemvvm.common.util.XLogUtil
 import dagger.hilt.android.AndroidEntryPoint
+import kotlinx.coroutines.CoroutineScope
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.Job
+import kotlinx.coroutines.delay
+import kotlinx.coroutines.launch
+import org.greenrobot.eventbus.Subscribe
+import org.greenrobot.eventbus.ThreadMode
 
 /**
- * 调试花型Fragment
+ * 调试商品页Fragment
  *
  * @author Qu Yunshuo
  * @since 2021/8/1 11:46 下午
  */
+@RegisterEventBus
 @AndroidEntryPoint
-class DebugProductFragment : BaseFragment<BackstageFragmentDebugProductBinding, DebugProductFragmentVM>() {
-
+class DebugProductFragment :
+    BaseFragment<BackstageFragmentDebugProductBinding, DebugProductFragmentVM>() {
 
     override val mViewModel: DebugProductFragmentVM by viewModels()
     override fun createVB() = BackstageFragmentDebugProductBinding.inflate(layoutInflater)
     private var productAdapter: DebugProductAdapter? = null
     var okCancelDialog: OKCancelDialog? = null
-
+    private val TAG = "DebugProductFragment"
 
     override fun BackstageFragmentDebugProductBinding.initView() {
         with(homeRvProduct) {
             //设置布局排列方式,默认垂直排列
             val gridLayoutManager: GridLayoutManager =
-                GridLayoutManager(this@DebugProductFragment.context, 2, androidx.recyclerview.widget.GridLayoutManager.VERTICAL, false)
+                GridLayoutManager(
+                    this@DebugProductFragment.context,
+                    2,
+                    androidx.recyclerview.widget.GridLayoutManager.VERTICAL,
+                    false
+                )
             layoutManager = gridLayoutManager
 
             productAdapter = DebugProductAdapter(mViewModel.getPriceData())
             productAdapter!!.setItemListener(object : AdapterClickListener {
                 override fun onClickListener(view: View?, position: Int, data: String?) {
                     XLogUtil.d("DebugProductFragment position:$position")
-                    showOkCancelDialog(data!!)
+                    Log.d(TAG, "onClickListener: " + data)
+                    Log.d(TAG, "onClickListener: "+deviceState)
+                    when(deviceState){
+                        "02"->showOkCancelDialog(position)
+                        else->{
+                            ToastUtil.switchToastStyleToError("当前状态无法进行制作\n请重新开机后,再做尝试。")
+                            return
+                        }
+                    }
                 }
             })
             adapter = productAdapter
@@ -54,22 +84,20 @@ class DebugProductFragment : BaseFragment<BackstageFragmentDebugProductBinding,
         mViewModel.getBanners()
         mViewModel.getArticleData()
     }
-    private fun showOkCancelDialog(data: String) {
+
+    private fun showOkCancelDialog(data: Int) {
         if (okCancelDialog == null) {
             okCancelDialog = this@DebugProductFragment.context?.let { OKCancelDialog(it) }
         }
-        okCancelDialog?.setListener(object: DialogClickListener {
+        okCancelDialog?.setListener(object : DialogClickListener {
             override fun onClickListener(type: Int, text: String?) {
                 when (type) {
-                    okCancelDialog?.type1-> {
+                    okCancelDialog?.type1 -> {
                         okCancelDialog?.dismiss()
                         //是否确认操作
-                        if (data == "MAKE") {
-                            //开始制作的逻辑
-                        }else if(data =="PIC"){
-                            //切换图片
-                        }
+                        startMake(data)
                     }
+
                     else -> {}
                 }
             }
@@ -80,6 +108,76 @@ class DebugProductFragment : BaseFragment<BackstageFragmentDebugProductBinding,
 
     override fun onDestroyView() {
         mBinding.homeRvProduct.adapter = null
+        stopSendMake()
         super.onDestroyView()
     }
+
+    @Subscribe(threadMode = ThreadMode.MAIN)
+    fun event(messageEvent: VBoxMessage) {
+        XLogUtil.d(messageEvent.cmd + ":messageEvent.data:" + messageEvent.data)
+        Log.d(TAG, messageEvent.cmd + "制作页面 :messageEvent.data:" + messageEvent.data)
+        val getSign = messageEvent.data.substring(2, 4)
+        when (getSign) {
+            "01" -> {
+                val overheatState = HexUtils.hexStr2BinStr(messageEvent.data.substring(4, 6))
+                val split = overheatState.trim().split("")
+                mBinding.tvLutou.text = ((split[1].toInt() * 256) + ByteUtils.hexStr2decimal(messageEvent.data.substring(6, 8))).toString()+"℃"
+                cmdHeartbeat(messageEvent)
+            }
+            else -> {}
+        }
+    }
+
+    private var deviceState:String=""
+
+    private fun cmdHeartbeat(messageEvent: VBoxMessage) {
+        deviceState = messageEvent.data.substring(0, 2)//机器状态码
+        when (deviceState) {
+            "00"->deviceState="00"
+            "01"->deviceState="01"
+            "02"->deviceState="02"
+            "03"->deviceState="03"
+            "04" -> {//开始制作
+                deviceState="04"
+                stopSendMake()
+            }
+            "05"->deviceState="05"
+            "06"->deviceState="06"
+            "10"->deviceState="10"
+            else -> {}
+        }
+    }
+
+    var jobM1: Job? = null
+        get() = field
+    var isActiveM1: Boolean = true
+        get() = field
+        set(value) {
+            field = value
+        }
+
+    fun startMake(value: Int) {
+        val productData: String =
+            if (value == 0) {
+                "00FC0200"//甜味爆米花
+            } else {
+                "00FC0100"//咸味爆米花
+            }
+
+        stopSendMake()
+        isActiveM1 = true
+        jobM1 = CoroutineScope(Dispatchers.Main).launch {
+            while (isActiveM1) {
+                Log.d(TAG, "startMake: ")
+                VboxSerialPortSendQueue.getInstance()
+                    .sendCommand(VboxWriteCommand(VboxCommand.MAKE_ORDER, productData))
+                delay(1000) // 每隔2秒重复执行
+            }
+        }
+    }
+
+    fun stopSendMake() {
+        isActiveM1 = false
+        jobM1?.cancel()
+    }
 }

+ 1 - 2
module_backstage/src/main/java/com/module/backstage/repo/HistogramDataFragmentRepo.kt

@@ -26,7 +26,6 @@ class HistogramDataFragmentRepo @Inject constructor() : BaseRepository() {
 
 
     suspend fun getAllLocalOrderData(): List<LocalOrderBean> {
-
         val all = localOrderDao.getAll()
         return all
     }
@@ -46,7 +45,7 @@ class HistogramDataFragmentRepo @Inject constructor() : BaseRepository() {
     }
 
     suspend fun queryTime(startTime:String,endTime:String): List<LocalOrderBean>{
-        addLocalOrder("")
+//        addLocalOrder("")
         val all =localOrderDao.queryTime(startTime , endTime )
         return all
     }

+ 2 - 6
module_backstage/src/main/java/com/module/backstage/vm/DebugParamFragmentVM.kt

@@ -279,7 +279,7 @@ class DebugParamFragmentVM @Inject constructor(private val mRepo: DebugParamFrag
             "setBtnParam: " + plcDebugAddressEnum.aName + ":" + plcDebugAddressEnum.address + ":" + checked
         )
         loading.value=true
-        _refreshPage.value=false
+//        _refreshPage.value=false
         if (checked) {
             threadDebugParamParam.setBtn(plcDebugAddressEnum.address)
         } else {
@@ -294,16 +294,12 @@ class DebugParamFragmentVM @Inject constructor(private val mRepo: DebugParamFrag
             "03"->{
                 val data = messageEvent.data.substring(84,86)
                 Log.d(TAG, "调试按钮cmdHeartbeat: "+data)
-                val data1 = messageEvent.data.substring(26, 32)
-                Log.d(TAG, "调试页 cmdHeartbeat: "+data)
-                val hexStr2BinStr = HexUtils.hexStr2BinStr(data1)
-                val split = hexStr2BinStr.split("")
                 if (!data.equals("00")){
                     Log.d(TAG, "调试按钮cmdHeartbeat: 关")
                     threadDebugParamParam.isActiveRstBtn=false
                     threadDebugParamParam.isActiveSetBtn=false
                     loading.value=false
-                    _refreshPage.value=true
+//                    _refreshPage.value=true
                 }
             }
             "01"->{

+ 1 - 0
module_backstage/src/main/java/com/module/backstage/vm/HistogramDataFragmentVM.kt

@@ -83,6 +83,7 @@ class HistogramDataFragmentVM @Inject constructor(private val mRepo: HistogramDa
             //2.数据查询
             viewModelScope.launch {
                 val list = mRepo.queryTime(startTime, endTime)
+//                val list = mRepo.getAllLocalOrderData()
                 Log.d(TAG, "screen: " + list + startTime + ":" + endTime)
 
                 //3.查询出来的数据进行汇总:比如按照小时、日、月、年进行汇总

+ 29 - 20
module_backstage/src/main/res/layout/backstage_fragment_debug_product.xml

@@ -26,9 +26,11 @@
 
     <LinearLayout
         android:id="@+id/ll_userbottom"
-        android:layout_width="wrap_content"
+        android:layout_width="match_parent"
         android:layout_height="wrap_content"
+        android:layout_marginBottom="250dp"
         android:layout_alignParentBottom="true"
+        android:background="@drawable/userbottom_bg"
         android:gravity="center"
         android:orientation="horizontal"
         app:layout_constraintBottom_toBottomOf="parent"
@@ -37,6 +39,7 @@
 
         <RelativeLayout
             android:layout_width="wrap_content"
+            android:visibility="gone"
             android:layout_height="wrap_content">
 
             <ImageView
@@ -77,6 +80,7 @@
 
         <RelativeLayout
             android:layout_width="wrap_content"
+            android:visibility="gone"
             android:layout_height="wrap_content">
 
             <ImageView
@@ -115,38 +119,43 @@
         </RelativeLayout>
 
         <RelativeLayout
+            android:layout_marginTop="15dp"
+            android:layout_marginBottom="15dp"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content">
 
             <ImageView
                 android:id="@+id/iv_lutou"
-                android:layout_width="80dp"
-                android:layout_height="80dp"
-                android:src="@drawable/icon_qxlutou_new" />
-
-            <TextView
-                android:id="@+id/tv_lutou"
+                android:layout_width="120dp"
+                android:layout_height="120dp"
+                android:src="@drawable/icon_fashengqi" />
+            <LinearLayout
+                android:gravity="center"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
                 android:layout_toRightOf="@id/iv_lutou"
-                android:text="40°C"
-                android:textColor="#d4237a"
-                android:textSize="32sp" />
+                android:orientation="vertical">
 
-            <TextView
-                android:id="@+id/tv_lutou_content"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:layout_below="@id/tv_lutou"
-                android:layout_toRightOf="@id/iv_lutou"
-                android:lines="2"
-                android:text="炉头温度"
-                android:textColor="#d4237a"
-                android:textSize="22sp" />
+                <TextView
+                    android:id="@+id/tv_lutou"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:text="40°C"
+                    android:textColor="#966035"
+                    android:textSize="40sp" />
 
+                <TextView
+                    android:id="@+id/tv_lutou_content"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:text="@string/heartbeat_temp"
+                    android:textColor="#966035"
+                    android:textSize="40sp" />
+            </LinearLayout>
         </RelativeLayout>
 
         <RelativeLayout
+            android:visibility="gone"
             android:id="@+id/rl_fashengqi"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content">

+ 9 - 5
module_home/src/main/java/com/quyunshuo/module/home/fragment/fragment/HomeFragment.kt

@@ -330,11 +330,15 @@ class HomeFragment : BaseFragment<HomeFragmentHomeBinding, HomeFragmentVM>(), Vi
             bundle.putString("SELECT_PRO", Gson().toJson(mViewModel.getShoppingTrolleyList()))
             bundle.putDouble("PRICE", mViewModel.shoppingTrolleySumPrice())
             bundle.putString("PROMOTION_CODE", promotionCode)
-
-            findNavController.navigate(
-                R.id.home_action_home_homefragment_to_home_makefragment,
-                bundle
-            )
+            bundle.putString("PAY_TYPE",payType)
+            try {
+                findNavController.navigate(
+                    R.id.home_action_home_homefragment_to_home_makefragment,
+                    bundle
+                )
+            }catch (e: IllegalArgumentException){
+                Log.d(TAG, "gotoMake: "+e.message)
+            }
         }
         XLog.d("payType:$payType")
     }

+ 15 - 0
module_home/src/main/java/com/quyunshuo/module/home/fragment/fragment/MakeFragment.kt

@@ -19,6 +19,7 @@ import com.hboxs.serialport.sbc.VBoxMessage
 import com.hboxs.serialport.sbc.VboxSerialPortSendQueue
 import com.hboxs.serialport.sbc.frame.VboxCommand
 import com.hboxs.serialport.sbc.frame.VboxWriteCommand
+import com.module.database.room.entity.LocalOrderBean
 import com.quyunshuo.androidbaseframemvvm.base.addressenum.PlcD2StatusEnum
 import com.quyunshuo.androidbaseframemvvm.base.ktx.observeLiveData
 import com.quyunshuo.androidbaseframemvvm.base.utils.RegisterEventBus
@@ -45,6 +46,7 @@ import org.greenrobot.eventbus.Subscribe
 import org.greenrobot.eventbus.ThreadMode
 import java.lang.ref.WeakReference
 import java.math.BigDecimal
+import java.util.UUID
 
 /**
  * 首页Fragment
@@ -140,9 +142,22 @@ class MakeFragment : BaseFragment<HomeFragmentMakeBinding, MakeFragmentVM>() {
 
     override fun initRequestData() {
         val promotionCodes = arguments?.getString("PROMOTION_CODE")
+        val price = arguments!!.getDouble("PRICE",0.00)
+        val payType = arguments!!.getString("PAY_TYPE","0")
+        val sysTime = System.currentTimeMillis() //获取系统时间
+        val sn = UUID.randomUUID().toString().replace("-", "")
+        val sysTimeStr = DateFormat.format("yyyy-MM-dd HH:mm:ss", sysTime) //时间显示格式
+        val localOrderBean = LocalOrderBean(
+            price = price,
+            payType = payType,
+            sn = sn,
+            time = sysTimeStr.toString(),
+            name=""
+        )
         mViewModel.getArticleData()
         //todo 优惠码处理
         mViewModel.usePromotionCode(promotionCodes)
+        mViewModel.saveOrder(localOrderBean)
     }
 
     override fun onDestroy() {

+ 3 - 1
module_home/src/main/java/com/quyunshuo/module/home/fragment/fragment/pay/BillCoinFragment.kt

@@ -2,12 +2,14 @@ package com.quyunshuo.module.home.fragment.fragment.pay
 
 import androidx.fragment.app.viewModels
 import com.elvishew.xlog.XLog
+import com.quyunshuo.androidbaseframemvvm.base.addressenum.PayEnum
 import com.quyunshuo.androidbaseframemvvm.base.utils.RegisterEventBus
 import com.quyunshuo.androidbaseframemvvm.common.constant.Heartbeat
 import com.quyunshuo.androidbaseframemvvm.common.constant.MqName
 import com.quyunshuo.androidbaseframemvvm.common.constant.PayName
 import com.quyunshuo.androidbaseframemvvm.common.constant.event.ApiMessageEvent
 import com.quyunshuo.androidbaseframemvvm.common.ui.BaseFragment
+import com.quyunshuo.androidbaseframemvvm.common.util.UiUtil
 import com.quyunshuo.androidbaseframemvvm.common.util.XLogUtil
 import com.quyunshuo.module.home.databinding.HomeFragmentBillCoinBinding
 import com.quyunshuo.module.home.fragment.vm.BuyFragmentVM
@@ -60,7 +62,7 @@ class BillCoinFragment : BaseFragment<HomeFragmentBillCoinBinding, BuyFragmentVM
         var price = sumPrice?.subtract(Heartbeat.acceptBill+Heartbeat.coinData)
         if (price!!.toDouble() <= 0.0) {
             //如果支付成功,通知前台。
-            EventBus.getDefault().post(ApiMessageEvent(MqName.PAY_SUCCESS, ""))
+            EventBus.getDefault().post(ApiMessageEvent(MqName.PAY_SUCCESS, UiUtil.getStringRes(PayEnum.BILL_COIN.nameId)))
             return
         }
         price = price.setScale(2, RoundingMode.HALF_UP)

+ 2 - 1
module_home/src/main/java/com/quyunshuo/module/home/fragment/fragment/pay/FreeMakeFragment.kt

@@ -9,6 +9,7 @@ import com.quyunshuo.androidbaseframemvvm.common.constant.MqName
 import com.quyunshuo.androidbaseframemvvm.common.constant.PayName
 import com.quyunshuo.androidbaseframemvvm.common.constant.event.ApiMessageEvent
 import com.quyunshuo.androidbaseframemvvm.common.ui.BaseFragment
+import com.quyunshuo.androidbaseframemvvm.common.util.UiUtil
 import com.quyunshuo.androidbaseframemvvm.common.util.XLogUtil
 import com.quyunshuo.module.home.databinding.HomeFragmentBillCoinBinding
 import com.quyunshuo.module.home.databinding.HomeFragmentFreeMakeBinding
@@ -38,7 +39,7 @@ class FreeMakeFragment : BaseFragment<HomeFragmentFreeMakeBinding, BuyFragmentVM
         XLogUtil.d("price:" + sumPrice + Heartbeat.acceptBill)
         tvStartMake.setOnClickListener {
             //传递支付方式。
-            EventBus.getDefault().post(ApiMessageEvent(MqName.PAY_SUCCESS, PayEnum.FREE.payType))
+            EventBus.getDefault().post(ApiMessageEvent(MqName.PAY_SUCCESS, UiUtil.getStringRes(PayEnum.FREE.nameId)))
         }
     }
 

+ 3 - 1
module_home/src/main/java/com/quyunshuo/module/home/fragment/fragment/pay/MDBCardFragment.kt

@@ -9,6 +9,7 @@ import com.module.pay.nayax.CreditCardMessage
 import com.module.pay.nayax.CreditCardPresenter
 import com.module.pay.strategy.PaySendDataFactory
 import com.module.pay.strategy.StrategyType
+import com.quyunshuo.androidbaseframemvvm.base.addressenum.PayEnum
 import com.quyunshuo.androidbaseframemvvm.base.ktx.setVisible
 import com.quyunshuo.androidbaseframemvvm.base.utils.RegisterEventBus
 import com.quyunshuo.androidbaseframemvvm.base.utils.SpUtils
@@ -19,6 +20,7 @@ import com.quyunshuo.androidbaseframemvvm.common.constant.MqName
 import com.quyunshuo.androidbaseframemvvm.common.constant.PayName
 import com.quyunshuo.androidbaseframemvvm.common.constant.event.ApiMessageEvent
 import com.quyunshuo.androidbaseframemvvm.common.ui.BaseFragment
+import com.quyunshuo.androidbaseframemvvm.common.util.UiUtil
 import com.quyunshuo.androidbaseframemvvm.common.util.XLogUtil
 import com.quyunshuo.module.home.databinding.HomeFragmentMdbCardBinding
 import com.quyunshuo.module.home.databinding.HomeFragmentNayaxCardBinding
@@ -108,7 +110,7 @@ class MDBCardFragment : BaseFragment<HomeFragmentMdbCardBinding, BuyFragmentVM>(
                     createStrategy.creditCardSessionComplete()
                     delay(500)
                     createStrategy.creditCardCashSale(price,productNumber)
-                    EventBus.getDefault().post(ApiMessageEvent(MqName.PAY_SUCCESS, ""))
+                    EventBus.getDefault().post(ApiMessageEvent(MqName.PAY_SUCCESS, UiUtil.getStringRes(PayEnum.MDB_NO_CASH.nameId)))
 
                 }
 

+ 3 - 1
module_home/src/main/java/com/quyunshuo/module/home/fragment/fragment/pay/NayaxCardFragment.kt

@@ -7,6 +7,7 @@ import com.google.gson.Gson
 import com.google.gson.reflect.TypeToken
 import com.module.pay.nayax.CreditCardMessage
 import com.module.pay.nayax.CreditCardPresenter
+import com.quyunshuo.androidbaseframemvvm.base.addressenum.PayEnum
 import com.quyunshuo.androidbaseframemvvm.base.utils.RegisterEventBus
 import com.quyunshuo.androidbaseframemvvm.base.utils.SpUtils
 import com.quyunshuo.androidbaseframemvvm.common.bean.ShoppingCartBean
@@ -16,6 +17,7 @@ import com.quyunshuo.androidbaseframemvvm.common.constant.MqName
 import com.quyunshuo.androidbaseframemvvm.common.constant.PayName
 import com.quyunshuo.androidbaseframemvvm.common.constant.event.ApiMessageEvent
 import com.quyunshuo.androidbaseframemvvm.common.ui.BaseFragment
+import com.quyunshuo.androidbaseframemvvm.common.util.UiUtil
 import com.quyunshuo.androidbaseframemvvm.common.util.XLogUtil
 import com.quyunshuo.module.home.databinding.HomeFragmentNayaxCardBinding
 import com.quyunshuo.module.home.fragment.vm.BuyFragmentVM
@@ -108,7 +110,7 @@ class NayaxCardFragment : BaseFragment<HomeFragmentNayaxCardBinding, BuyFragment
             CreditCardMessage.Type.success->{
                 //支付成功
                 //如果支付成功,通知前台。
-                EventBus.getDefault().post(ApiMessageEvent(MqName.PAY_SUCCESS, ""))
+                EventBus.getDefault().post(ApiMessageEvent(MqName.PAY_SUCCESS, UiUtil.getStringRes(PayEnum.NAYAX.nameId)))
             }
             else -> {}
         }

+ 3 - 1
module_home/src/main/java/com/quyunshuo/module/home/fragment/fragment/pay/QrCodeFragment.kt

@@ -9,6 +9,7 @@ import android.view.View
 import androidx.fragment.app.viewModels
 import com.google.gson.Gson
 import com.google.gson.reflect.TypeToken
+import com.quyunshuo.androidbaseframemvvm.base.addressenum.PayEnum
 import com.quyunshuo.androidbaseframemvvm.base.ktx.observeLiveData
 import com.quyunshuo.androidbaseframemvvm.base.utils.SpUtils
 import com.quyunshuo.androidbaseframemvvm.common.bean.ShoppingCartBean
@@ -17,6 +18,7 @@ import com.quyunshuo.androidbaseframemvvm.common.constant.MqName
 import com.quyunshuo.androidbaseframemvvm.common.constant.event.ApiMessageEvent
 import com.quyunshuo.androidbaseframemvvm.common.ui.BaseFragment
 import com.quyunshuo.androidbaseframemvvm.common.util.ToastUtil
+import com.quyunshuo.androidbaseframemvvm.common.util.UiUtil
 import com.quyunshuo.androidbaseframemvvm.common.util.XLogUtil
 import com.quyunshuo.module.home.databinding.HomeFragmentQrCodeBinding
 import com.quyunshuo.module.home.fragment.vm.QrCodeFragmentVM
@@ -65,7 +67,7 @@ class QrCodeFragment : BaseFragment<HomeFragmentQrCodeBinding, QrCodeFragmentVM>
             mBinding.ivQrCode.setImageBitmap(bitmap)
         }else if("0"==qrCode) {
             // 优惠码支付成功
-            EventBus.getDefault().post(ApiMessageEvent(MqName.PAY_SUCCESS, ""))
+            EventBus.getDefault().post(ApiMessageEvent(MqName.PAY_SUCCESS, UiUtil.getStringRes(PayEnum.TWO_CODE.nameId)))
             return
         }else{
             mBinding.ivReset.visibility = View.VISIBLE

+ 9 - 0
module_home/src/main/java/com/quyunshuo/module/home/fragment/repo/MakeFragmentRepo.kt

@@ -1,7 +1,11 @@
 package com.quyunshuo.module.home.fragment.repo
 
+import android.text.format.DateFormat
+import com.module.database.room.SZDatabase
+import com.module.database.room.entity.LocalOrderBean
 import com.quyunshuo.androidbaseframemvvm.base.mvvm.m.BaseRepository
 import com.module.pay.service.HomeApiService
+import com.quyunshuo.androidbaseframemvvm.base.BaseApplication
 import com.quyunshuo.androidbaseframemvvm.common.constant.Heartbeat
 import javax.inject.Inject
 
@@ -25,4 +29,9 @@ class MakeFragmentRepo @Inject constructor() : BaseRepository() {
             emit(this)
         }
     }
+
+    suspend fun saveOrder(localOrderBean:LocalOrderBean){
+        val orderBeanDao= SZDatabase.getDatabase(BaseApplication.context).getLocalOrderDao()
+        orderBeanDao.insert(localOrderBean)
+    }
 }

+ 7 - 0
module_home/src/main/java/com/quyunshuo/module/home/fragment/vm/MakeFragmentVM.kt

@@ -12,6 +12,7 @@ import com.hboxs.serialport.plc.util.AsciiUtils
 import com.hboxs.serialport.plc.util.HexUtils
 import com.hboxs.serialport.plc.util.HexadecimalUtil
 import com.hboxs.serialport.sbc.frame.VboxCommand
+import com.module.database.room.entity.LocalOrderBean
 import com.quyunshuo.androidbaseframemvvm.base.addressenum.PlcHomeAddressEnum
 import com.quyunshuo.androidbaseframemvvm.base.addressenum.ProTypeEnum
 import com.quyunshuo.androidbaseframemvvm.base.mvvm.vm.BaseViewModel
@@ -180,4 +181,10 @@ class MakeFragmentVM @Inject constructor(private val mRepo: MakeFragmentRepo) :
         }
 
     }
+
+    fun saveOrder(localOrderBean: LocalOrderBean) {
+        viewModelScope.launch(Dispatchers.IO) {
+            mRepo.saveOrder(localOrderBean)
+        }
+    }
 }

+ 2 - 2
serialport-api/src/main/java/com/hboxs/serialport/sbc/VboxSerialPortReadThread.java

@@ -97,7 +97,7 @@ public class VboxSerialPortReadThread extends Thread {
             if (commandFrame == null) {
                 return;
             }
-//            Log.d("backinifo","长度:"+size+","+commandFrame.getCmd());
+            Log.d("backinifo","长度:"+size+","+commandFrame.getCmd());
 //            XLogUtil.INSTANCE.d("长度:"+size+","+commandFrame.getCmd());
             vboxSerialPortSendQueue.setReceived();//收到数据了,要停止了。
             synchronized (receiveBuffer) {
@@ -143,7 +143,7 @@ public class VboxSerialPortReadThread extends Thread {
         // 示例1:将字节数组转为十六进制字符串
         String hexStr =ByteUtil.ByteArrToHex(packet, 0, packet.length);
         EventBus.getDefault().post(new VBoxMessage(commandFrame.getCmd(), hexStr));
-//        Log.d(TAG,"长度 收到的命令:3 "+ commandFrame.getCmd()+"收到有效数据包: " + hexStr);
+        Log.d(TAG,"长度 收到的命令:3 "+ commandFrame.getCmd()+"收到有效数据包: " + hexStr);
 //        XLogUtil.INSTANCE.d("长度 收到的命令:3 "+ commandFrame.getCmd()+"收到有效数据包: " + hexStr);
     }