From 88b00f3fc74446a1727c93722c7b64179b45a9db Mon Sep 17 00:00:00 2001
From: zhujie <leon.zhu@cloudroam.com.cn>
Date: 星期五, 18 四月 2025 17:40:45 +0800
Subject: [PATCH] Merge branch 'master' of http://47.96.225.205:8888/r/FirstApp2

---
 app/src/main/java/com/example/firstapp/activity/PickupActivity.kt |   97 +++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 79 insertions(+), 18 deletions(-)

diff --git a/app/src/main/java/com/example/firstapp/activity/PickupActivity.kt b/app/src/main/java/com/example/firstapp/activity/PickupActivity.kt
index 9713e2c..7270793 100644
--- a/app/src/main/java/com/example/firstapp/activity/PickupActivity.kt
+++ b/app/src/main/java/com/example/firstapp/activity/PickupActivity.kt
@@ -5,7 +5,8 @@
 import androidx.appcompat.app.AppCompatActivity
 import androidx.lifecycle.lifecycleScope
 import androidx.recyclerview.widget.LinearLayoutManager
-import com.example.firstapp.adapter.ExpressPackageAdapter
+import com.example.firstapp.R
+import com.example.firstapp.adapter.PickupPackageAdapter
 import com.example.firstapp.core.Core
 import com.example.firstapp.databinding.ActivityPickupBinding
 import com.example.firstapp.model.ExpressPackage
@@ -13,12 +14,31 @@
 
 class PickupActivity : AppCompatActivity() {
     private lateinit var binding: ActivityPickupBinding
-    private lateinit var expressAdapter: ExpressPackageAdapter
+    private lateinit var expressAdapter: PickupPackageAdapter
+    private var stationIconResId = R.drawable.location // 默认图标
+
+
+    // 添加类型常量
+    companion object {
+        const val TYPE_EXPRESS = "express"
+        const val TYPE_REPAYMENT = "repayment"
+        const val TYPE_INCOME = "income"
+        const val TYPE_TRAIN = "train"
+        const val TYPE_FLIGHT = "flight"
+    }
+
+    private var pageType = TYPE_EXPRESS
 
     override fun onCreate(savedInstanceState: Bundle?) {
         super.onCreate(savedInstanceState)
         binding = ActivityPickupBinding.inflate(layoutInflater)
         setContentView(binding.root)
+
+        // 获取页面类型
+        pageType = intent.getStringExtra("page_type") ?: TYPE_EXPRESS
+
+        stationIconResId = intent.getIntExtra("station_icon_res_id", R.drawable.location)
+
 
         initViews()
         loadData()
@@ -26,10 +46,10 @@
 
     private fun initViews() {
         // 初始化适配器,传入取件回调
-        expressAdapter = ExpressPackageAdapter { pack ->
+        expressAdapter = PickupPackageAdapter { pack ->
             handleSinglePickup(pack)
         }
-        
+
         binding.rvPackages.apply {
             layoutManager = LinearLayoutManager(this@PickupActivity)
             adapter = expressAdapter
@@ -39,17 +59,43 @@
             finish()
         }
 
-        // 修改底部按钮点击事件
-        binding.btnPickupAll.setOnClickListener {
-            showPickupConfirmDialog()
+        // 设置底部按钮文本并添加点击事件
+        binding.btnPickupAll.apply {
+            text = getButtonText()
+            setOnClickListener {
+                showPickupConfirmDialog()
+            }
         }
+        // 设置驿站图标
+        binding.ivBack.setImageResource(stationIconResId)
+    }
 
+    private fun getConfirmMessage(): String {
+        return when (pageType) {
+            TYPE_EXPRESS -> "是否确认取出所有包裹?"
+            TYPE_REPAYMENT -> "是否确认处理所有还款?"
+            TYPE_INCOME -> "是否确认处理所有收入?"
+            TYPE_TRAIN -> "是否确认处理所有火车票?"
+            TYPE_FLIGHT -> "是否确认处理所有机票?"
+            else -> "是否确认处理所有项目?"
+        }
+    }
+
+    private fun getButtonText(): String {
+        return when (pageType) {
+            TYPE_EXPRESS -> "全部取件"
+            TYPE_REPAYMENT -> "全部还款"
+            TYPE_INCOME -> "全部收款"
+            TYPE_TRAIN -> "全部处理票务"
+            TYPE_FLIGHT -> "全部处理机票"
+            else -> "全部处理"
+        }
     }
 
     private fun showPickupConfirmDialog() {
         AlertDialog.Builder(this)
-            .setTitle("确认取件")
-            .setMessage("是否确认取出所有包裹?")
+            .setTitle(getButtonText())
+            .setMessage(getConfirmMessage())
             .setPositiveButton("确认") { _, _ ->
                 handlePickupAll()
             }
@@ -61,7 +107,7 @@
         lifecycleScope.launch {
             try {
                 // 处理单个包裹取件
-//                Core.code.pickup(pack.trackingNumber)
+                Core.code.pickup(pack.id)
                 // 重新加载数据
                 loadData()
                 // 通知MainActivity刷新
@@ -79,12 +125,12 @@
                 val packages = expressAdapter.currentList
                 // 批量处理取件
                 packages.forEach { pack ->
-//                    Core.code.pickup(pack.trackingNumber)
+                    Core.code.pickup(pack.id)
                 }
                 // 清空列表
                 expressAdapter.submitList(emptyList())
                 // 更新包裹数量显示
-                binding.tvPackageCount.text = "共0个包裹"
+                binding.tvPackageCount.text = getCountText(0)
                 // 通知MainActivity刷新
                 setResult(RESULT_OK)
             } catch (e: Exception) {
@@ -95,23 +141,38 @@
         }
     }
 
+    private fun getCountText(count: Int): String {
+        return when (pageType) {
+            TYPE_EXPRESS -> "共${count}个包裹"
+            TYPE_REPAYMENT -> "共${count}笔还款"
+            TYPE_INCOME -> "共${count}笔收入"
+            TYPE_TRAIN -> "共${count}张车票"
+            TYPE_FLIGHT -> "共${count}张机票"
+            else -> "共${count}个"
+        }
+    }
+
     private fun loadData() {
         val stationName = intent.getStringExtra("station_name") ?: ""
         val company = intent.getStringExtra("company") ?: ""
-        
+
         lifecycleScope.launch {
             val codes = Core.code.getByKeyword(stationName)
             val packages = codes.map { code ->
                 ExpressPackage(
-                    company = code.name ?: company,
+                    id = code.id,
+                    company = code.secondLevel ?: company,
                     trackingNumber = code.code,
-                    date = code.overtime
+                    createTime = code.createTime
                 )
             }
-            
+
             expressAdapter.submitList(packages)
             binding.tvStationName.text = stationName
-            binding.tvPackageCount.text = "共${packages.size}个包裹"
+            binding.tvPackageCount.text = getCountText(packages.size)
+
+            // 根据PageType设置适配器的CompanyLogo处理逻辑
+            expressAdapter.setPageType(pageType)
         }
     }
-} 
\ No newline at end of file
+}
\ No newline at end of file

--
Gitblit v1.9.3