Selaa lähdekoodia

修复nayax支付

ccc 4 kuukautta sitten
vanhempi
commit
63676bc1d4

+ 0 - 5
lib_base/src/main/res/values/strings.xml

@@ -175,7 +175,6 @@
     <string name="home_choosepay_title">选择支付方式</string>
     <string name="home_tips_dialog_6">请先连接服务器后进行使用</string>
     <string name="home_shopping_cart_null">购物车里没有商品\n请先选择商品</string>
-
     <string name="alarm_message_01">玉米不爆开</string>
     <string name="alarm_message_02">缺杯</string>
     <string name="alarm_message_03">缺咸玉米</string>
@@ -184,10 +183,6 @@
     <string name="alarm_message_06">温度过高</string>
     <string name="alarm_message_07">挡片复位失败</string>
     <string name="alarm_message_08">玉米芯卡住</string>
-
     <string name="heartbeat_temp">发生器温度</string>
 
-
-
-
 </resources>

+ 1 - 0
lib_common/src/main/java/com/quyunshuo/androidbaseframemvvm/common/constant/PayName.kt

@@ -6,6 +6,7 @@ package com.quyunshuo.androidbaseframemvvm.common.constant
 object PayName {
 
     val ACCEPT_BILL = "accept_bill"//投入的纸币
+    val COIN_DATA = "coin_data"//投入的硬币
     val CANCEL_PAY = "cancel_pay"//取消支付 比如nayax、mdb
     val MDB_CARD_SUCCESS = "mdb_card_success"// mdb 刷卡支付成功
     val MDB_CARD_CANCEL = "mdb_card_cancel"// mdb 刷卡取消

+ 1 - 0
lib_common/src/main/java/com/quyunshuo/androidbaseframemvvm/common/keyboard/KeyboardView.java

@@ -727,6 +727,7 @@ public class KeyboardView extends LinearLayout {
     }
 
     private void show() {
+        setTranslationY(-200);
         setVisibility(VISIBLE);
         if (keyboardListener != null)
             keyboardListener.onShow(this);

+ 2 - 0
module_backstage/src/main/java/com/module/backstage/activity/setting/SettingActivity.kt

@@ -22,6 +22,7 @@ import androidx.annotation.RequiresApi
 import androidx.core.content.ContextCompat
 import androidx.core.view.get
 import androidx.navigation.findNavController
+import androidx.navigation.fragment.findNavController
 import com.alibaba.android.arouter.facade.annotation.Route
 import com.alibaba.android.arouter.launcher.ARouter
 import com.google.gson.Gson
@@ -48,6 +49,7 @@ import com.quyunshuo.androidbaseframemvvm.common.constant.Heartbeat
 import com.quyunshuo.androidbaseframemvvm.common.constant.MMKVName
 import com.quyunshuo.androidbaseframemvvm.common.constant.MqName
 import com.quyunshuo.androidbaseframemvvm.common.constant.RouteUrl
+import com.quyunshuo.androidbaseframemvvm.common.constant.RouteUrl.Main.MainActivity
 import com.quyunshuo.androidbaseframemvvm.common.constant.event.ApiMessageEvent
 import com.quyunshuo.androidbaseframemvvm.common.enums.ConnectStateEnum
 import com.quyunshuo.androidbaseframemvvm.common.ui.BaseActivity

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

@@ -167,11 +167,16 @@ class HomeFragment : BaseFragment<HomeFragmentHomeBinding, HomeFragmentVM>(), Vi
         lifecycle.addObserver(mViewModel.threadHomeParam)
         lifecycle.addObserver(myHandler)
     }
+    var lastCoin: BigDecimal  = BigDecimal.ZERO.setScale(2, java.math.RoundingMode.HALF_UP);
 
     private fun getCoinValue(coin: String) {
         val coinData= BigDecimal(coin)
         Heartbeat.coinData=coinData
         mBinding.tvAacpeCoin.setText(""+Heartbeat.coinData)
+        if (lastCoin!=coinData){
+            lastCoin = Heartbeat.coinData
+            EventBus.getDefault().post(ApiMessageEvent(PayName.COIN_DATA, Heartbeat.coinData))
+        }
     }
 
     private fun shoppingCarSumPrice(price: Double) {

+ 7 - 1
module_home/src/main/java/com/quyunshuo/module/home/fragment/fragment/MakeFragment.kt

@@ -44,6 +44,7 @@ import kotlinx.coroutines.launch
 import org.greenrobot.eventbus.Subscribe
 import org.greenrobot.eventbus.ThreadMode
 import java.lang.ref.WeakReference
+import java.math.BigDecimal
 
 /**
  * 首页Fragment
@@ -76,7 +77,11 @@ class MakeFragment : BaseFragment<HomeFragmentMakeBinding, MakeFragmentVM>() {
         // 解析 JSON 数据
         simplePlayerUtil = SimplePlayerUtil(svVideo)
         simplePlayerUtil!!.setUrl("/storage/emulated/0/adB/1440.mp4")
-        Heartbeat.acceptBill = Heartbeat.acceptBill.subtract(price1)
+        if ((Heartbeat.acceptBill+Heartbeat.coinData)>price1){
+            Heartbeat.acceptBill = (Heartbeat.acceptBill+Heartbeat.coinData).subtract(price1)
+        }else{
+            Heartbeat.acceptBill= BigDecimal.ZERO.setScale(2, java.math.RoundingMode.HALF_UP);
+        }
         initProgress()
         //首先判断是否有做糖数据,如果有则发送指令,如果没有就结束。
         if (selectPro != null) {
@@ -147,6 +152,7 @@ class MakeFragment : BaseFragment<HomeFragmentMakeBinding, MakeFragmentVM>() {
 
     override fun onDestroyView() {
         simplePlayerUtil?.onDestroy()
+        againBuyDialog?.dismiss()
         myHandler.removeCallbacksAndMessages(null)
         stopRestCoin()
         jobHandler?.cancel()

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

@@ -48,18 +48,16 @@ class BillCoinFragment : BaseFragment<HomeFragmentBillCoinBinding, BuyFragmentVM
     @Subscribe(threadMode = ThreadMode.MAIN)
     fun event(message: ApiMessageEvent) {
         when (message.name) {
-            PayName.ACCEPT_BILL -> {
+            PayName.ACCEPT_BILL,PayName.COIN_DATA -> {
                 settlement()
-
             }
-
             else -> {}
         }
     }
 
     //金额结算
     private fun settlement() {
-        var price = sumPrice?.subtract(Heartbeat.acceptBill)
+        var price = sumPrice?.subtract(Heartbeat.acceptBill+Heartbeat.coinData)
         if (price!!.toDouble() <= 0.0) {
             //如果支付成功,通知前台。
             EventBus.getDefault().post(ApiMessageEvent(MqName.PAY_SUCCESS, ""))

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

@@ -40,13 +40,16 @@ class NayaxCardFragment : BaseFragment<HomeFragmentNayaxCardBinding, BuyFragment
     override fun createVB() = HomeFragmentNayaxCardBinding.inflate(layoutInflater)
     var cardPresenter = CreditCardPresenter.getCreditCardContract()
     private var selectPro:String?= null//传递过来的购物车内容
-
+    private val TAG = "NayaxCardFragment"
 
     override fun HomeFragmentNayaxCardBinding.initView() {
         //如果没有通讯,先打开通讯
         if (!cardPresenter.is_ready) {
             cardPresenter.startCommunication(4)
         }
+        if (cardPresenter.is_ready) {
+            cardPresenter.startThreadTimer()
+        }
         selectPro = arguments?.getString("SELECT_PRO")
         val arrayList: ArrayList<ShoppingCartBean> = Gson().fromJson(
             selectPro,
@@ -60,7 +63,6 @@ class NayaxCardFragment : BaseFragment<HomeFragmentNayaxCardBinding, BuyFragment
         cardPresenter.setNameAndPrice(price*100,0)
         if (SpUtils.getBoolean(MMKVName.NAYAX_MODE,false)!!){
             cardPresenter.vendRequest();
-
         }
     }
 

+ 1 - 1
module_pay/src/main/java/com/module/pay/common/OtherEnum.kt

@@ -22,7 +22,7 @@ enum class OtherEnum(var nameId:Int, var nameS:String, var category:String, var
     PROMOTION_CODE(R.string.promotion_code,"优惠码","功能开启",false, 1,MMKVName.PROMOTION_CODE),
 //    BILL_COUNTRY(R.string.bill_country,"国家纸币选择","串口设置",/*ArrayList<String>(listOf("MDB","ICT"))*/AmountMoney.language, 3,MMKVName.BILL_COUNTRY),
     NAYAX_MODE(R.string.nayax_mode,"Nayax闲置模式","串口设置",false,1,MMKVName.NAYAX_MODE),
-    TTYS_NAYAX(R.string.ttys_nayax,"Nayax 串口","串口设置","ttyS1",2,MMKVName.TTYS_NAYAX),
+    TTYS_NAYAX(R.string.ttys_nayax,"Nayax 串口","串口设置","ttyS3",2,MMKVName.TTYS_NAYAX),
     TTYS_MDB(R.string.ttys_mdb,"MDB 串口","串口设置","ttyS5",2,MMKVName.TTYS_MDB),
     TTYS_PLC(R.string.ttys_plc,"PLC 串口","串口设置","ttyS7",2,MMKVName.TTYS_PLC),
     BILL_COLLOCATION(R.string.bill_collocation,"MDB 纸币托管","通讯设置",false,1,MMKVName.BILL_COLLOCATION),

+ 1 - 1
module_pay/src/main/java/com/module/pay/nayax/CreditCardMain.java

@@ -38,7 +38,7 @@ public class CreditCardMain {
     private CreditCardMain() {
         m_vmc = vmc_framework.getInstance();
         vmc_config = new vmc_configuration();
-        String plcserialport = SpUtils.INSTANCE.getString(MMKVName.Companion.getTTYS_NAYAX(), "ttyS1");
+        String plcserialport = SpUtils.INSTANCE.getString(MMKVName.Companion.getTTYS_NAYAX(), "ttyS3");
         vmc_config.port_vpos = "/dev/" + plcserialport;// /dev/ttymxc1
         vmc_config.port_vpos_baud = 115200;
         vmc_config.machine_type = vmc_configuration.machine_type_none;