Jelajahi Sumber

1、本地价格上传后台
2、本地上传商品显示状态
3、远程一键修改价格

ccc 1 bulan lalu
induk
melakukan
50e78f33e9

+ 3 - 1
lib_common/src/main/java/com/quyunshuo/sbm10/common/constant/MMKVName.kt

@@ -270,7 +270,9 @@ abstract class MMKVName {
                     "kr","₭","₲","Rs.","Ft","ƒ","₫","₡","₵",
                     "Br","Bs","¤",
                     "﷼")
-
+        val PRICE: String
+            //上传 价格
+            get() = "PRICE"
     }
     // 这里可以继续添加其他常量
 

+ 4 - 1
lib_common/src/main/java/com/quyunshuo/sbm10/common/constant/MqName.kt

@@ -58,5 +58,8 @@ object MqName {
      * 修改休眠显示文本
      */
     var SLEEPDESC= "sleepDesc"
-
+    /**
+     * 批量修改价格
+     */
+    var BATCHUPDATEPRICE= "batchUpdatePrice"
 }

+ 33 - 1
module_backstage/src/main/java/com/module/backstage/fragment/product/PriceFragment.kt

@@ -7,17 +7,23 @@ import android.widget.EditText
 import androidx.fragment.app.viewModels
 import androidx.recyclerview.widget.GridLayoutManager
 import com.google.gson.Gson
+import com.hboxs.serialport.sbc.SBCHeartbeat
 import com.module.backstage.R
 import com.module.backstage.adapter.PriceAdapter
 import com.module.backstage.databinding.BackstageFragmentPriceBinding
 import com.module.backstage.vm.PriceFragmentVM
 import com.quyunshuo.sbm10.base.utils.SpUtils
+import com.quyunshuo.sbm10.common.constant.Heartbeat
 import com.quyunshuo.sbm10.common.constant.MMKVName
+import com.quyunshuo.sbm10.common.constant.event.ApiMessageEvent
 import com.quyunshuo.sbm10.common.listener.AdapterClickListener
 import com.quyunshuo.sbm10.common.ui.BaseFragment
 import com.quyunshuo.sbm10.common.util.ToastUtil
 import com.quyunshuo.sbm10.common.util.UiUtil
 import dagger.hilt.android.AndroidEntryPoint
+import org.greenrobot.eventbus.EventBus
+import org.json.JSONArray
+import org.json.JSONObject
 
 
 /**
@@ -64,8 +70,34 @@ class PriceFragment : BaseFragment<BackstageFragmentPriceBinding, PriceFragmentV
                 }
             }
             val toJson = Gson().toJson(priceAdapter?.productList)
-            Log.d(TAG, "toJson : "+toJson)
             SpUtils.putString(MMKVName.PRODUCT_DATA, toJson)
+            Log.d(TAG, "toJson : "+toJson)
+            val jsonArray = JSONArray(toJson)
+            for (i in 0 until jsonArray.length()) {
+                val jsonObject = jsonArray.getJSONObject(i)
+                val price = jsonObject.getDouble("price") // 获取 price 值
+                val productNo = jsonObject.getString("productNo")  // 获取 price 值
+                val sellStatus = jsonObject.getBoolean("isSelected")  // 获取 price 值
+                var productName = jsonObject.getString("customName")  // 获取 price 值
+                if (productName==""){
+                    productName = UiUtil.getStringRes(R.string.base_pro_02)
+                }
+                val name = jsonObject.getString("nameChinese")  // 获取 price 值
+//                val newArray = JSONArray()
+                val newPrice = JSONObject()
+                newPrice.put("codePrice", price)  // 价格
+                newPrice.put("productName", productName)// 自定义名字
+                newPrice.put("name", name) // 默认名字
+                newPrice.put("rmbPrice",price)      // 价格
+                newPrice.put("sellStatus", sellStatus) // 商品显示
+                newPrice.put("no", productNo) // 商品编号
+                // 将新对象添加到新数组中
+//                newArray.put(newPrice)
+//                Log.d(TAG, "initViewnewArray: "+newArray)
+//                Log.d(TAG, "newArrayinitView:1 "+newArray)
+                Log.d(TAG, "newArrayinitView:2 "+newPrice)
+                EventBus.getDefault().post(ApiMessageEvent(MMKVName.PRICE, newPrice))
+            }
             ToastUtil.switchToastStyleToSuccess(UiUtil.getStringRes(R.string.backstage_update_success))
             priceAdapter?.notifyDataSetChanged()
         }

+ 25 - 0
module_backstage/src/main/java/com/module/backstage/fragment/product/ShowProductFragment.kt

@@ -22,11 +22,15 @@ import com.orhanobut.hawk.Hawk
 import com.quyunshuo.sbm10.base.DialogClickListener
 import com.quyunshuo.sbm10.base.utils.SpUtils
 import com.quyunshuo.sbm10.common.constant.MMKVName
+import com.quyunshuo.sbm10.common.constant.event.ApiMessageEvent
 import com.quyunshuo.sbm10.common.listener.AdapterClickListener
 import com.quyunshuo.sbm10.common.ui.BaseFragment
 import com.quyunshuo.sbm10.common.util.ToastUtil
 import com.quyunshuo.sbm10.common.util.UiUtil
 import dagger.hilt.android.AndroidEntryPoint
+import org.greenrobot.eventbus.EventBus
+import org.json.JSONArray
+import org.json.JSONObject
 import java.io.File
 
 /**
@@ -98,6 +102,27 @@ class ShowProductFragment :
             val toJson = Gson().toJson(productAdapter?.productList)
             Log.d(TAG, "toJson : " + toJson)
             SpUtils.putString(MMKVName.PRODUCT_DATA, toJson)
+            val jsonArray = JSONArray(toJson)
+            for (i in 0 until jsonArray.length()) {
+                val jsonObject = jsonArray.getJSONObject(i)
+                val price = jsonObject.getDouble("price") // 获取 price 值
+                val productNo = jsonObject.getString("productNo")  // 获取 price 值
+                val sellStatus = jsonObject.getBoolean("isSelected")  // 获取 price 值
+                var productName = jsonObject.getString("customName")  // 获取 price 值
+                if (productName==""){
+                    productName = UiUtil.getStringRes(R.string.base_pro_02)
+                }
+                val name = jsonObject.getString("nameChinese")  // 获取 price 值
+                val newPrice = JSONObject()
+                newPrice.put("codePrice", price)  // 价格
+                newPrice.put("productName", productName)// 自定义名字
+                newPrice.put("name", name) // 默认名字
+                newPrice.put("rmbPrice",price)      // 价格
+                newPrice.put("sellStatus", sellStatus) // 商品显示
+                newPrice.put("no", productNo) // 商品编号
+                Log.d(TAG, "newArrayinitView:2 "+newPrice)
+                EventBus.getDefault().post(ApiMessageEvent(MMKVName.PRICE, newPrice))
+            }
             ToastUtil.switchToastStyleToSuccess(UiUtil.getStringRes(R.string.backstage_update_success))
         }
         tvReset.setOnClickListener {

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

@@ -304,7 +304,7 @@ class HomeFragment : BaseFragment<HomeFragmentHomeBinding, HomeFragmentVM>(), Vi
                 return
             }
         }
-        if (checkToBuy()) return//是否开机
+//        if (checkToBuy()) return//是否开机
 //        selectProductDataBean = ProTypeEnum.getEnumByValue(product!!.nameChinese)
         //todo 测试做糖 传递价格等信息过去。
 //        gotoMake(product.nameChinese)

+ 17 - 0
module_home/src/main/java/com/quyunshuo/module/home/service/GlobalService.kt

@@ -534,6 +534,23 @@ class GlobalService : LifecycleService() {
                 Log.d(TAG, "eventqName.SLEEPDESC: "+messageEvent.data)
                 mqttHelper.sendData("response", Gson().toJson(messageEvent.data))
             }
+            MqName.BATCHUPDATEPRICE->{
+                val map = Gson().fromJson(messageEvent.data.toString(), JsonObject::class.java)
+                val response= GsonUtil.getAsString(map,"responseContent","")
+                Log.d(TAG, "MqName.BATCHUPDATEPRICE:event: "+response)
+                Log.d(TAG, " MqName.BATCHUPDATEPRICE: "+messageEvent.data)
+                val productData= SpUtils.getString(MMKVName.PRODUCT_DATA,"")
+                val list: ArrayList<ProductDataBean> = Gson().fromJson(
+                    productData,
+                    object : TypeToken<ArrayList<ProductDataBean?>?>() {}.type
+                )
+                for (i in list.indices){
+                        list[i].price= response.toDouble()
+                    }
+                XLogUtil.d("远程一键修改商品价格:"+Gson().toJson(list))
+                SpUtils.putString(MMKVName.PRODUCT_DATA,Gson().toJson(list))
+                mqttHelper.sendData("response", Gson().toJson(messageEvent.data))
+            }
         }
     }
 

+ 6 - 0
module_home/src/main/java/com/quyunshuo/module/home/service/MqService.kt

@@ -274,6 +274,12 @@ class MqService : Service() {
                     "sleepDesc" to sleepDesc
                 )
                 val map = setMap(responseContent, "sleepDesc")
+                Log.d(TAG, "MMKVName.PRICEevent: "+Gson().toJson(map))
+                mqttHelper.sendData("response", Gson().toJson(map))
+            }
+            MMKVName.PRICE ->{
+                val map = setMap(data.toString(), "updateProduct")
+                Log.d(TAG, "PRICEevent: "+Gson().toJson(map))
                 mqttHelper.sendData("response", Gson().toJson(map))
             }
         }

+ 4 - 0
module_home/src/main/java/com/quyunshuo/module/home/utils/RemotePushUtil.kt

@@ -312,6 +312,10 @@ class RemotePushUtil @Inject constructor() {
                 }
                 SpUtils.putString(MMKVName.LOGO_TEXT,logo)
             }
+            MqName.BATCHUPDATEPRICE->{
+                val map =setMap(msgId,DataBean.kind_data)
+                EventBus.getDefault().post(ApiMessageEvent(MqName.BATCHUPDATEPRICE, map))
+            }
         }
     }