From 2e1edcb7518f20dec30dbd6e1686e9e6b558ec15 Mon Sep 17 00:00:00 2001
From: tj <1378534974@qq.com>
Date: 星期三, 16 四月 2025 17:05:12 +0800
Subject: [PATCH] 43	首页登录->首页登录  1.首页弹窗协议同意后,不能默认自动勾选,还需要用户手动勾选  2.退出登录后,再次登录需要手动勾选与用户协议(目前是默认勾选了) 44	首页登录->邀请码  邀请码默认填入“邀请码(选填) 47	数据统计->饼状图数据分类统计问题  1、只统计快递 无需统计还款其他分类  2、图形上下间隔过大" 48	数据统计	天、周、月、年  1.数据统计只统计快递类的,其他分类不需要统计展示,例如取件码记录  2.包括周、月、年的统计环状图,只需要统计快递分类的

---
 app/src/main/java/com/example/firstapp/database/repository/CodeRepository.kt |   61 ++++++++++++++++++++++++++++--
 1 files changed, 56 insertions(+), 5 deletions(-)

diff --git a/app/src/main/java/com/example/firstapp/database/repository/CodeRepository.kt b/app/src/main/java/com/example/firstapp/database/repository/CodeRepository.kt
index 7c14c1e..19b6579 100644
--- a/app/src/main/java/com/example/firstapp/database/repository/CodeRepository.kt
+++ b/app/src/main/java/com/example/firstapp/database/repository/CodeRepository.kt
@@ -3,9 +3,9 @@
 import androidx.annotation.WorkerThread
 import com.example.firstapp.database.dao.CodeDao
 import com.example.firstapp.database.entity.Code
-import kotlinx.coroutines.Dispatchers
+import com.example.firstapp.model.DailyStat
+import com.example.firstapp.model.StationGroup
 import kotlinx.coroutines.flow.Flow
-import kotlinx.coroutines.withContext
 
 
 class CodeRepository(private val codeDao: CodeDao) {
@@ -16,6 +16,9 @@
     @WorkerThread
     fun delete(id: Long) = codeDao.delete(id)
 
+    @WorkerThread
+    fun deleteAll() = codeDao.deleteAll()
+
     fun getAll() = codeDao.getAllCodes()
 
     fun getAllDesc() = codeDao.getAllCodesDesc()
@@ -25,7 +28,8 @@
         return codeDao.getByKeyword(keyword)
     }
 
-    fun queryByTypeAndCodeAndDate(content: String, code: String, dateString: String): Code {
+    @WorkerThread
+    fun queryByTypeAndCodeAndDate(content: String, code: String, dateString: String): Code? {
         return codeDao.queryByTypeAndCodeAndDate(content, code, dateString)
     }
 
@@ -41,9 +45,27 @@
         }
     }
 
-    fun getCourierStats(date: Long) = codeDao.getCourierStatsByWeek(date)
+    fun getPackagesReaded(date: Long, dateType: String): Flow<List<Code>> {
+        return when (dateType) {
+            "DAY" -> codeDao.getPackagesByDayReaded(date)
+            "WEEK" -> codeDao.getPackagesByWeek(date)
+            else -> codeDao.getPackagesByDay(date)
+        }
+    }
 
-    fun getDailyStats() = codeDao.getDailyStatsByWeek()
+    fun getCourierStats(date: Long, dateType: String) = when(dateType) {
+        "WEEK" -> codeDao.getCourierStatsByWeek(date)
+        "MONTH" -> codeDao.getCourierStatsByMonth(date)
+        "YEAR" -> codeDao.getCourierStatsByYear(date)
+        else -> codeDao.getCourierStatsByWeek(date)
+    }
+
+//    fun getStats(date: Long, dateType: String) = when(dateType) {
+//        "WEEK" -> codeDao.getDailyStatsByWeek(date)
+//        "MONTH" -> codeDao.getMonthlyStats(date)
+//        "YEAR" -> codeDao.getYearlyStats(date)
+//        else -> codeDao.getDailyStatsByWeek(date)
+//    }
 
 
     @WorkerThread
@@ -51,5 +73,34 @@
         return codeDao.getNewPackagesByDay(date)
     }
 
+    fun getYearlyHeatmap(date: Long) = codeDao.getYearlyHeatmap(date)
+
+    fun getWeeklyStats(date: Long, weekCount: Int) = codeDao.getWeeklyStats(date, weekCount)
+    
+    fun getMonthlyStats(date: Long) = codeDao.getMonthlyStats(date)
+
+
+    fun getYearlyStats(date: Long) = codeDao.getYearlyStats(date)
+
+    fun getYearMonthlyStats(date: Long) = codeDao.getYearMonthlyStats(date)
+
+
+    fun getCurrentWeekStats(date: Long) = codeDao.getCurrentWeekStats(date)
+
+    fun getCurrentYearStats(date: Long) = codeDao.getCurrentYearStats(date)
+
+    @WorkerThread
+    fun getStationsByType(type: String): List<StationGroup> {
+        return codeDao.getStationsByType(type)
+    }
+
+    @WorkerThread
+    fun getPackagesByTypeAndStation(type: String, stationName: String): List<Code> {
+        return codeDao.getPackagesByTypeAndStation(type, stationName)
+    }
+
+    fun getCurrentWeekStats2(startDateCur: String, endDateCur: String) = codeDao.getCurrentWeekStats2(startDateCur,endDateCur)
+    fun getWeeklyStatsChart(startDateCur: String, endDateCur: String): Flow<List<DailyStat>> = codeDao.getWeeklyStatsChart(startDateCur,endDateCur)
+    fun getDateStatsByType(startDateCur: String, endDateCur: String, type: String) = codeDao.getDateStatsByType(startDateCur,endDateCur,type)
 
 }
\ No newline at end of file

--
Gitblit v1.9.3