From df0580d68f3c37896d9712a6cddf94802b092aee Mon Sep 17 00:00:00 2001 From: lvmeng <848755140@qq.com> Date: Thu, 23 Apr 2026 11:58:14 +0800 Subject: [PATCH] =?UTF-8?q?refactor(viewmodel):=20=E7=BB=9F=E4=B8=80=20DbV?= =?UTF-8?q?iewModel=20=E5=88=9D=E5=A7=8B=E5=8C=96=E5=B9=B6=E6=8B=86?= =?UTF-8?q?=E5=88=86=20DAO=20=E7=BB=93=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Sonnet 4.6 --- .../shuwei/dish/match/base/BaseActivity.kt | 2 + .../com/shuwei/dish/match/db/AppDatabase.kt | 13 ++- .../com/shuwei/dish/match/db/DbRepository.kt | 70 +++++++------- .../match/{viewmodel => db}/DbViewModel.kt | 7 +- .../com/shuwei/dish/match/db/dao/AppDao.kt | 92 ------------------- .../shuwei/dish/match/db/dao/CookFoodDao.kt | 50 ++++++---- .../dish/match/db/dao/CookFoodGoodsDao.kt | 59 ++++++------ .../shuwei/dish/match/db/dao/SeasoningDao.kt | 67 +++++++++----- .../dish/match/ui/DeviceConfigActivity.kt | 2 - .../dish/match/ui/DishSamplingActivity.kt | 13 --- .../com/shuwei/dish/match/ui/HomeActivity.kt | 11 --- .../com/shuwei/dish/match/ui/InitActivity.kt | 12 --- .../dish/match/ui/MasterScaleActivity.kt | 7 -- .../dish/match/ui/SamplingListActivity.kt | 11 --- .../dish/match/ui/SelectDishActivity.kt | 13 --- .../dish/match/ui/SingleFragmentActivity.kt | 10 -- .../com/shuwei/dish/match/ui/SlaveActivity.kt | 9 -- .../dish/match/ui/SubmitFoodActivity.kt | 11 --- .../match/ui/fragment/DeviceConfigFragment.kt | 10 -- .../match/viewmodel/CookFoodGoodsViewModel.kt | 42 --------- .../dish/match/viewmodel/CookFoodViewModel.kt | 44 --------- .../match/viewmodel/DeviceSettingViewModel.kt | 47 ---------- .../match/viewmodel/SubmitDishViewModel.kt | 24 ----- .../dish/match/viewmodel/factory/VMFactory.kt | 44 --------- 24 files changed, 147 insertions(+), 523 deletions(-) rename app/src/main/java/com/shuwei/dish/match/{viewmodel => db}/DbViewModel.kt (98%) delete mode 100644 app/src/main/java/com/shuwei/dish/match/db/dao/AppDao.kt delete mode 100644 app/src/main/java/com/shuwei/dish/match/viewmodel/CookFoodGoodsViewModel.kt delete mode 100644 app/src/main/java/com/shuwei/dish/match/viewmodel/CookFoodViewModel.kt delete mode 100644 app/src/main/java/com/shuwei/dish/match/viewmodel/DeviceSettingViewModel.kt delete mode 100644 app/src/main/java/com/shuwei/dish/match/viewmodel/SubmitDishViewModel.kt delete mode 100644 app/src/main/java/com/shuwei/dish/match/viewmodel/factory/VMFactory.kt diff --git a/app/src/main/java/com/shuwei/dish/match/base/BaseActivity.kt b/app/src/main/java/com/shuwei/dish/match/base/BaseActivity.kt index 6f26be9..633a665 100644 --- a/app/src/main/java/com/shuwei/dish/match/base/BaseActivity.kt +++ b/app/src/main/java/com/shuwei/dish/match/base/BaseActivity.kt @@ -22,6 +22,7 @@ import com.shuwei.dish.match.R import com.shuwei.dish.match.databinding.ActivityBaseBinding import com.shuwei.dish.match.dialog.Loading import com.shuwei.dish.match.net.NetViewModel +import com.shuwei.dish.match.db.DbViewModel import com.shuwei.dish.match.ui.InitActivity import com.shuwei.dish.match.utils.ActivityManager import com.shuwei.dish.match.utils.ext.dp @@ -181,6 +182,7 @@ open class BaseActivity : AppCompatActivity() { val netViewModel: NetViewModel by viewModels() + val appViewModel: DbViewModel by viewModels() private var permissionCallback: ((isGranted: Boolean) -> Unit)? = null private var activityCallback: ((intent: Intent?) -> Unit)? = null diff --git a/app/src/main/java/com/shuwei/dish/match/db/AppDatabase.kt b/app/src/main/java/com/shuwei/dish/match/db/AppDatabase.kt index 81ddcb8..21c2d8f 100644 --- a/app/src/main/java/com/shuwei/dish/match/db/AppDatabase.kt +++ b/app/src/main/java/com/shuwei/dish/match/db/AppDatabase.kt @@ -6,7 +6,9 @@ import androidx.room.Room import androidx.room.RoomDatabase import androidx.room.migration.Migration import androidx.sqlite.db.SupportSQLiteDatabase -import com.shuwei.dish.match.db.dao.AppDao +import com.shuwei.dish.match.db.dao.CookFoodDao +import com.shuwei.dish.match.db.dao.CookFoodGoodsDao +import com.shuwei.dish.match.db.dao.SeasoningDao import com.shuwei.dish.match.db.dao.SeasoningSlotDao import com.shuwei.dish.match.entity.CookFoodEntity import com.shuwei.dish.match.entity.CookFoodGoodsEntity @@ -27,11 +29,12 @@ import com.shuwei.dish.match.entity.SeasoningSlotEntity exportSchema = true ) abstract class AppDatabase : RoomDatabase() { -// abstract fun seasoningDao(): SeasoningDao -// abstract fun cookFoodDao(): CookFoodDao -// abstract fun cookFoodGoodsDao(): CookFoodGoodsDao - abstract fun appDao(): AppDao + abstract fun cookFoodDao(): CookFoodDao + + abstract fun cookFoodGoodsDao(): CookFoodGoodsDao + + abstract fun seasoningDao(): SeasoningDao abstract fun seasoningSlotDao(): SeasoningSlotDao diff --git a/app/src/main/java/com/shuwei/dish/match/db/DbRepository.kt b/app/src/main/java/com/shuwei/dish/match/db/DbRepository.kt index a0b5bbe..3d523c2 100644 --- a/app/src/main/java/com/shuwei/dish/match/db/DbRepository.kt +++ b/app/src/main/java/com/shuwei/dish/match/db/DbRepository.kt @@ -1,8 +1,6 @@ package com.shuwei.dish.match.db import com.shuwei.dish.match.base.BaseApp -import com.shuwei.dish.match.db.dao.AppDao -import com.shuwei.dish.match.db.dao.SeasoningSlotDao import com.shuwei.dish.match.entity.CookFoodEntity import com.shuwei.dish.match.entity.CookFoodGoodsEntity import com.shuwei.dish.match.entity.SeasoningEntity @@ -11,101 +9,95 @@ import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.withContext -class DbRepository(val appDao: AppDao, val seasoningSlotDao: SeasoningSlotDao) { +class DbRepository { + + private val db = BaseApp.instance!!.database suspend fun insertCookFood(item: CookFoodEntity) = withContext(Dispatchers.IO) { - appDao.insertCookFood(item) + db.cookFoodDao().insertCookFood(item) } suspend fun updateCookFood(item: CookFoodEntity) = withContext(Dispatchers.IO) { - appDao.updateCookFood(item) + db.cookFoodDao().updateCookFood(item) } suspend fun getCookFoodById(foodId: String, cookMode: Int) = withContext(Dispatchers.IO) { - appDao.getCookFoodById(BaseApp.canteenId, foodId, cookMode) + db.cookFoodDao().getCookFoodById(BaseApp.canteenId, foodId, cookMode) } suspend fun getCookFoodList(cookMode: Int, dinnerType: String) = withContext(Dispatchers.IO) { - appDao.getCookFoodList(BaseApp.canteenId, cookMode, dinnerType) + db.cookFoodDao().getCookFoodList(BaseApp.canteenId, cookMode, dinnerType) } suspend fun countCookFood(cookMode: Int) = withContext(Dispatchers.IO) { - appDao.countCookFood(BaseApp.canteenId, cookMode) + db.cookFoodDao().countCookFood(BaseApp.canteenId, cookMode) } suspend fun deleteCookFood(foodId: String, cookMode: Int) = withContext(Dispatchers.IO) { - appDao.deleteCookFood(BaseApp.canteenId, foodId, cookMode) + db.cookFoodDao().deleteCookFood(BaseApp.canteenId, foodId, cookMode) } - suspend fun deleteCookFoodGoodsList(pid:Long, foodId: String) = withContext(Dispatchers.IO) { - appDao.deleteCookFoodGoodsList(pid, foodId) + suspend fun deleteCookFoodGoodsList(pid: Long, foodId: String) = withContext(Dispatchers.IO) { + db.cookFoodGoodsDao().deleteCookFoodGoodsList(pid, foodId) } //-------------------------------------------------------------------------------------------- -// suspend fun insertGoods(item: CookFoodGoodsEntity) = withContext(Dispatchers.IO) { -// appDao.insertGoods(item) -// } - suspend fun insertGoodsList(items: MutableList) = withContext(Dispatchers.IO) { - appDao.insertGoodsList(items) + db.cookFoodGoodsDao().insertGoodsList(items) } -// suspend fun updateGoods(item: CookFoodGoodsEntity) = withContext(Dispatchers.IO) { -// appDao.updateGoods(item) -// } - - suspend fun getCookFoodGoodsList(pid:Long, foodId: String) = withContext(Dispatchers.IO) { - appDao.getCookFoodGoodsList(pid, foodId) + suspend fun getCookFoodGoodsList(pid: Long, foodId: String) = withContext(Dispatchers.IO) { + db.cookFoodGoodsDao().getCookFoodGoodsList(pid, foodId) } suspend fun getCookFoodGoodsListByType( foodId: String, materialType: Int ) = withContext(Dispatchers.IO) { - appDao.getCookFoodGoodsListByType(foodId, materialType) + db.cookFoodGoodsDao().getCookFoodGoodsListByType(foodId, materialType) } //-------------------------------------------------------------------------------------------- suspend fun getSeasoningById(id: Long) = withContext(Dispatchers.IO) { - appDao.getSeasoningById(id) + db.seasoningDao().getSeasoningById(id) } - suspend fun getSeasoningBySort(sort:Int) = withContext(Dispatchers.IO) { - appDao.getSeasoningBySort(sort) + suspend fun getSeasoningBySort(sort: Int) = withContext(Dispatchers.IO) { + db.seasoningDao().getSeasoningBySort(sort) } suspend fun getSeasoningByGoodsId(goodsId: Int) = withContext(Dispatchers.IO) { - appDao.getSeasoningByGoodsId(goodsId) + db.seasoningDao().getSeasoningByGoodsId(goodsId) } suspend fun getAllStream() = withContext(Dispatchers.IO) { - appDao.getAllStream() + db.seasoningDao().getAllStream() } suspend fun search(query: String) = withContext(Dispatchers.IO) { - appDao.search(query) + db.seasoningDao().search(query) } suspend fun clearAllSeasoning() = withContext(Dispatchers.IO) { - appDao.clearAllSeasoning() + db.seasoningDao().clearAllSeasoning() } suspend fun deleteSeasoningBySort(sort: Int) = withContext(Dispatchers.IO) { - appDao.deleteSeasoningBySort(sort) + db.seasoningDao().deleteSeasoningBySort(sort) } suspend fun insertSeasoningList(items: MutableList) = withContext(Dispatchers.IO) { - appDao.insertSeasoningList(items) + db.seasoningDao().insertSeasoningList(items) } suspend fun updateSeasoning(item: SeasoningEntity) = withContext(Dispatchers.IO) { - appDao.updateSeasoning(item) + db.seasoningDao().updateSeasoning(item) } suspend fun insertSeasoning(item: SeasoningEntity) = withContext(Dispatchers.IO) { - appDao.insertSeasoning(item) + db.seasoningDao().insertSeasoning(item) } /** @@ -114,14 +106,14 @@ class DbRepository(val appDao: AppDao, val seasoningSlotDao: SeasoningSlotDao) { * @return true 表示已有配置,false 表示未配置 */ suspend fun hasSeasoningSlotConfig(deviceId: String) = withContext(Dispatchers.IO) { - seasoningSlotDao.queryByDeviceId(deviceId).isNotEmpty() + db.seasoningSlotDao().queryByDeviceId(deviceId).isNotEmpty() } /** * 查询所有设备的调料槽位配置 */ suspend fun getAllSeasoningSlots() = withContext(Dispatchers.IO) { - seasoningSlotDao.queryAll() + db.seasoningSlotDao().queryAll() } /** @@ -129,21 +121,21 @@ class DbRepository(val appDao: AppDao, val seasoningSlotDao: SeasoningSlotDao) { * @param deviceId 目标设备 ID */ suspend fun getSeasoningSlotsByDeviceId(deviceId: String) = withContext(Dispatchers.IO) { - seasoningSlotDao.queryByDeviceId(deviceId) + db.seasoningSlotDao().queryByDeviceId(deviceId) } /** * 插入或更新单个调料槽位配置 */ suspend fun upsertSeasoningSlot(slot: SeasoningSlotEntity) = withContext(Dispatchers.IO) { - seasoningSlotDao.upsert(slot) + db.seasoningSlotDao().upsert(slot) } /** * 批量插入或更新调料槽位配置 */ suspend fun upsertAllSeasoningSlots(slots: List) = withContext(Dispatchers.IO) { - seasoningSlotDao.upsertAll(slots) + db.seasoningSlotDao().upsertAll(slots) } } // diff --git a/app/src/main/java/com/shuwei/dish/match/viewmodel/DbViewModel.kt b/app/src/main/java/com/shuwei/dish/match/db/DbViewModel.kt similarity index 98% rename from app/src/main/java/com/shuwei/dish/match/viewmodel/DbViewModel.kt rename to app/src/main/java/com/shuwei/dish/match/db/DbViewModel.kt index ab4864f..8cbbbba 100644 --- a/app/src/main/java/com/shuwei/dish/match/viewmodel/DbViewModel.kt +++ b/app/src/main/java/com/shuwei/dish/match/db/DbViewModel.kt @@ -1,8 +1,7 @@ -package com.shuwei.dish.match.viewmodel +package com.shuwei.dish.match.db import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope -import com.shuwei.dish.match.db.DbRepository import com.shuwei.dish.match.entity.CookFoodEntity import com.shuwei.dish.match.entity.CookFoodGoodsEntity import com.shuwei.dish.match.entity.SeasoningEntity @@ -15,7 +14,9 @@ import kotlinx.coroutines.sync.Mutex import kotlinx.coroutines.sync.withLock import kotlin.collections.forEach -class DbViewModel(private val rep: DbRepository) : ViewModel() { +class DbViewModel : ViewModel() { + + private val rep = DbRepository() fun updateCookFood(entity: CookFoodEntity) { viewModelScope.launch { diff --git a/app/src/main/java/com/shuwei/dish/match/db/dao/AppDao.kt b/app/src/main/java/com/shuwei/dish/match/db/dao/AppDao.kt deleted file mode 100644 index 19cf5e1..0000000 --- a/app/src/main/java/com/shuwei/dish/match/db/dao/AppDao.kt +++ /dev/null @@ -1,92 +0,0 @@ -package com.shuwei.dish.match.db.dao - -import androidx.room.Dao -import androidx.room.Insert -import androidx.room.OnConflictStrategy -import androidx.room.Query -import androidx.room.Update -import com.shuwei.dish.match.entity.CookFoodEntity -import com.shuwei.dish.match.entity.CookFoodGoodsEntity -import com.shuwei.dish.match.entity.SeasoningEntity -import kotlinx.coroutines.flow.Flow - -@Dao -interface AppDao { - - @Insert(onConflict = OnConflictStrategy.REPLACE) - suspend fun insertCookFood(item: CookFoodEntity): Long - - @Update - suspend fun updateCookFood(item: CookFoodEntity) - - @Query("SELECT * FROM dm_cook_food WHERE isDel = 0 AND canteenId = :canteenId AND foodId = :foodId AND cookMode = :cookMode") - suspend fun getCookFoodById(canteenId:String, foodId: String, cookMode: Int): CookFoodEntity? - - @Query("SELECT * FROM dm_cook_food WHERE isDel = 0 AND canteenId = :canteenId AND cookMode = :cookMode AND dinnerType = :dinnerType ORDER BY createTime DESC") - suspend fun getCookFoodList(canteenId:String, cookMode: Int, dinnerType:String): MutableList? - - @Query("SELECT count(1) FROM dm_cook_food WHERE isDel = 0 AND canteenId = :canteenId AND cookMode = :cookMode") - suspend fun countCookFood(canteenId:String, cookMode: Int): Int - - @Query("DELETE FROM dm_cook_food WHERE canteenId = :canteenId AND foodId = :foodId AND cookMode = :cookMode") - suspend fun deleteCookFood(canteenId:String, foodId: String, cookMode: Int) - - //-------------------------------------------------------------------------------------------- - - @Insert(onConflict = OnConflictStrategy.REPLACE) - suspend fun insertGoods(item: CookFoodGoodsEntity): Long - - @Insert(onConflict = OnConflictStrategy.REPLACE) - suspend fun insertGoodsList(items: MutableList): Array - - @Update - suspend fun updateGoods(item: CookFoodGoodsEntity) - - @Query("SELECT * FROM dm_cook_food_goods WHERE isDel = 0 AND pid = :pid AND foodId = :foodId") - suspend fun getCookFoodGoodsList(pid:Long, foodId: String): MutableList - - @Query("SELECT * FROM dm_cook_food_goods WHERE isDel = 0 AND foodId = :foodId AND materialType = :materialType") - suspend fun getCookFoodGoodsListByType( - foodId: String, - materialType: Int - ): MutableList - - @Query("DELETE FROM dm_cook_food_goods WHERE pid = :pid AND foodId = :foodId") - suspend fun deleteCookFoodGoodsList(pid:Long, foodId: String) - - //-------------------------------------------------------------------------------------------- - - @Query("SELECT * FROM dm_seasoning WHERE isDel = 0 AND id = :id") - suspend fun getSeasoningById(id: Long): SeasoningEntity? - - @Query("SELECT * FROM dm_seasoning WHERE isDel = 0 AND sort = :sort") - suspend fun getSeasoningBySort(sort: Int): MutableList? - - @Query("SELECT * FROM dm_seasoning WHERE isDel = 0 AND goodsId = :goodsId") - suspend fun getSeasoningByGoodsId(goodsId: Int): SeasoningEntity? - -// @Query("SELECT * FROM dm_seasoning WHERE isDel = 0 AND goodsId != -1 AND goodsName != '' ORDER BY sort ASC") -// fun getAllStream(): Flow> - - @Query("SELECT * FROM dm_seasoning WHERE isDel = 0 AND goodsId != -1 AND goodsName != '' ORDER BY sort ASC") - fun getAllStream(): MutableList - - @Query("SELECT * FROM dm_seasoning WHERE isDel = 0 AND goodsName LIKE '%' || :query || '%'") - suspend fun search(query: String): MutableList - - @Query("DELETE FROM dm_seasoning WHERE isDel = 0 AND sort = :sort") - suspend fun deleteSeasoningBySort(sort:Int): Int - - @Query("DELETE FROM dm_seasoning WHERE isDel = 0") - suspend fun clearAllSeasoning(): Int - - @Insert(onConflict = OnConflictStrategy.REPLACE) - suspend fun insertSeasoningList(items: MutableList): Array - - @Update - suspend fun updateSeasoning(item: SeasoningEntity) - - @Insert - suspend fun insertSeasoning(item: SeasoningEntity): Long - //-------------------------------------------------------------------------------------------- -} \ No newline at end of file diff --git a/app/src/main/java/com/shuwei/dish/match/db/dao/CookFoodDao.kt b/app/src/main/java/com/shuwei/dish/match/db/dao/CookFoodDao.kt index f09e59f..72a5072 100644 --- a/app/src/main/java/com/shuwei/dish/match/db/dao/CookFoodDao.kt +++ b/app/src/main/java/com/shuwei/dish/match/db/dao/CookFoodDao.kt @@ -1,20 +1,30 @@ -//package com.shuwei.dish.match.db.dao -// -//import androidx.room.Dao -//import androidx.room.Query -//import com.shuwei.dish.match.db.BaseDao -//import com.shuwei.dish.match.entity.CookFoodEntity -// -//@Dao -//interface CookFoodDao : BaseDao { -// -// @Query("SELECT * FROM dm_cook_food WHERE isDel = 0 AND foodId = :foodId AND cookMode = :cookMode") -// suspend fun getCookFoodById(foodId: String, cookMode:Int): CookFoodEntity? -// -// @Query("SELECT * FROM dm_cook_food WHERE isDel = 0 AND cookMode = :cookMode") -// suspend fun getCookFoodList(cookMode:Int): MutableList? -// -// @Query("SELECT count(1) FROM dm_cook_food WHERE isDel = 0 AND cookMode = :cookMode") -// suspend fun countCookFood(cookMode:Int): Int -// -//} \ No newline at end of file +package com.shuwei.dish.match.db.dao + +import androidx.room.Dao +import androidx.room.Insert +import androidx.room.OnConflictStrategy +import androidx.room.Query +import androidx.room.Update +import com.shuwei.dish.match.entity.CookFoodEntity + +@Dao +interface CookFoodDao { + + @Insert(onConflict = OnConflictStrategy.REPLACE) + suspend fun insertCookFood(item: CookFoodEntity): Long + + @Update + suspend fun updateCookFood(item: CookFoodEntity) + + @Query("SELECT * FROM dm_cook_food WHERE isDel = 0 AND canteenId = :canteenId AND foodId = :foodId AND cookMode = :cookMode") + suspend fun getCookFoodById(canteenId: String, foodId: String, cookMode: Int): CookFoodEntity? + + @Query("SELECT * FROM dm_cook_food WHERE isDel = 0 AND canteenId = :canteenId AND cookMode = :cookMode AND dinnerType = :dinnerType ORDER BY createTime DESC") + suspend fun getCookFoodList(canteenId: String, cookMode: Int, dinnerType: String): MutableList? + + @Query("SELECT count(1) FROM dm_cook_food WHERE isDel = 0 AND canteenId = :canteenId AND cookMode = :cookMode") + suspend fun countCookFood(canteenId: String, cookMode: Int): Int + + @Query("DELETE FROM dm_cook_food WHERE canteenId = :canteenId AND foodId = :foodId AND cookMode = :cookMode") + suspend fun deleteCookFood(canteenId: String, foodId: String, cookMode: Int) +} diff --git a/app/src/main/java/com/shuwei/dish/match/db/dao/CookFoodGoodsDao.kt b/app/src/main/java/com/shuwei/dish/match/db/dao/CookFoodGoodsDao.kt index cd0b298..701ce3b 100644 --- a/app/src/main/java/com/shuwei/dish/match/db/dao/CookFoodGoodsDao.kt +++ b/app/src/main/java/com/shuwei/dish/match/db/dao/CookFoodGoodsDao.kt @@ -1,29 +1,30 @@ -//package com.shuwei.dish.match.db.dao -// -//import androidx.room.Dao -//import androidx.room.Query -//import com.shuwei.dish.match.db.BaseDao -//import com.shuwei.dish.match.entity.CookFoodGoodsEntity -// -//@Dao -//interface CookFoodGoodsDao : BaseDao { -// -// @Query("SELECT * FROM dm_cook_food_goods WHERE isDel = 0 AND foodId = :foodId") -// suspend fun getCookFoodGoodsList(foodId: String): MutableList -// -// @Query("SELECT * FROM dm_cook_food_goods WHERE isDel = 0 AND foodId = :foodId AND materialType = :materialType") -// suspend fun getCookFoodGoodsListByType(foodId: String, materialType:Int): MutableList -// -//// @Query( -//// """ -//// UPDATE dm_cook_food_goods -//// SET goodsName=:entity.goodsName, foodId=:entity.foodId, relateionType=:entity.relateionType, sort=:entity.sort -//// allEdible=:entity.allEdible, useWeight=:entity.useWeight, isDel=:entity.isDel, createTime=:entity.createTime -//// WHERE isDel = 0 -//// AND foodId=:entity.foodId -//// AND goodsId=:goodsId -//// """ -//// ) -//// fun updateByGoodsId(entity: CookFoodGoodsEntity) -// -//} \ No newline at end of file +package com.shuwei.dish.match.db.dao + +import androidx.room.Dao +import androidx.room.Insert +import androidx.room.OnConflictStrategy +import androidx.room.Query +import androidx.room.Update +import com.shuwei.dish.match.entity.CookFoodGoodsEntity + +@Dao +interface CookFoodGoodsDao { + + @Insert(onConflict = OnConflictStrategy.REPLACE) + suspend fun insertGoods(item: CookFoodGoodsEntity): Long + + @Insert(onConflict = OnConflictStrategy.REPLACE) + suspend fun insertGoodsList(items: MutableList): Array + + @Update + suspend fun updateGoods(item: CookFoodGoodsEntity) + + @Query("SELECT * FROM dm_cook_food_goods WHERE isDel = 0 AND pid = :pid AND foodId = :foodId") + suspend fun getCookFoodGoodsList(pid: Long, foodId: String): MutableList + + @Query("SELECT * FROM dm_cook_food_goods WHERE isDel = 0 AND foodId = :foodId AND materialType = :materialType") + suspend fun getCookFoodGoodsListByType(foodId: String, materialType: Int): MutableList + + @Query("DELETE FROM dm_cook_food_goods WHERE pid = :pid AND foodId = :foodId") + suspend fun deleteCookFoodGoodsList(pid: Long, foodId: String) +} diff --git a/app/src/main/java/com/shuwei/dish/match/db/dao/SeasoningDao.kt b/app/src/main/java/com/shuwei/dish/match/db/dao/SeasoningDao.kt index 105e069..cf3db3d 100644 --- a/app/src/main/java/com/shuwei/dish/match/db/dao/SeasoningDao.kt +++ b/app/src/main/java/com/shuwei/dish/match/db/dao/SeasoningDao.kt @@ -1,25 +1,42 @@ -//package com.shuwei.dish.match.db.dao -// -//import androidx.room.Dao -//import androidx.room.Query -//import com.shuwei.dish.match.db.BaseDao -//import com.shuwei.dish.match.entity.SeasoningEntity -//import kotlinx.coroutines.flow.Flow -// -//@Dao -//interface SeasoningDao : BaseDao { -// -//// @Query("SELECT * FROM dm_seasoning WHERE isDel = 0 AND id = :id") -//// suspend fun getSeasoningById(id: Long): SeasoningEntity? -//// -//// @Query("SELECT * FROM dm_seasoning WHERE isDel = 0 ORDER BY sort ASC") -//// fun getAllStream(): Flow> -//// -//// @Query("SELECT * FROM dm_seasoning WHERE isDel = 0 AND name LIKE '%' || :query || '%'") -//// suspend fun search(query: String): MutableList -//// -//// @Query("DELETE FROM dm_seasoning WHERE rowid IN " + -//// "(SELECT rowid FROM dm_seasoning LIMIT 1000)") -//// suspend fun deleteBatch(): Int -// -//} \ No newline at end of file +package com.shuwei.dish.match.db.dao + +import androidx.room.Dao +import androidx.room.Insert +import androidx.room.OnConflictStrategy +import androidx.room.Query +import androidx.room.Update +import com.shuwei.dish.match.entity.SeasoningEntity + +@Dao +interface SeasoningDao { + + @Insert(onConflict = OnConflictStrategy.REPLACE) + suspend fun insertSeasoning(item: SeasoningEntity): Long + + @Insert(onConflict = OnConflictStrategy.REPLACE) + suspend fun insertSeasoningList(items: MutableList): Array + + @Update + suspend fun updateSeasoning(item: SeasoningEntity) + + @Query("SELECT * FROM dm_seasoning WHERE isDel = 0 AND id = :id") + suspend fun getSeasoningById(id: Long): SeasoningEntity? + + @Query("SELECT * FROM dm_seasoning WHERE isDel = 0 AND sort = :sort") + suspend fun getSeasoningBySort(sort: Int): MutableList? + + @Query("SELECT * FROM dm_seasoning WHERE isDel = 0 AND goodsId = :goodsId") + suspend fun getSeasoningByGoodsId(goodsId: Int): SeasoningEntity? + + @Query("SELECT * FROM dm_seasoning WHERE isDel = 0 AND goodsId != -1 AND goodsName != '' ORDER BY sort ASC") + fun getAllStream(): MutableList + + @Query("SELECT * FROM dm_seasoning WHERE isDel = 0 AND goodsName LIKE '%' || :query || '%'") + suspend fun search(query: String): MutableList + + @Query("DELETE FROM dm_seasoning WHERE isDel = 0 AND sort = :sort") + suspend fun deleteSeasoningBySort(sort: Int): Int + + @Query("DELETE FROM dm_seasoning WHERE isDel = 0") + suspend fun clearAllSeasoning(): Int +} diff --git a/app/src/main/java/com/shuwei/dish/match/ui/DeviceConfigActivity.kt b/app/src/main/java/com/shuwei/dish/match/ui/DeviceConfigActivity.kt index 8e1ee14..b620c6c 100644 --- a/app/src/main/java/com/shuwei/dish/match/ui/DeviceConfigActivity.kt +++ b/app/src/main/java/com/shuwei/dish/match/ui/DeviceConfigActivity.kt @@ -29,8 +29,6 @@ //import com.shuwei.dish.match.utils.ext.startActivity //import com.shuwei.dish.match.utils.ext.toast //import com.shuwei.dish.match.utils.ext.visible -//import com.shuwei.dish.match.viewmodel.DbViewModel -//import com.shuwei.dish.match.viewmodel.factory.AppFactory //import com.shuwei.dish.match.adapter.TextCellAdapter //import com.shuwei.dish.match.databinding.ActivityDeviceConfigBinding //import com.shuwei.dish.match.dialog.SeasoningSearchDialog diff --git a/app/src/main/java/com/shuwei/dish/match/ui/DishSamplingActivity.kt b/app/src/main/java/com/shuwei/dish/match/ui/DishSamplingActivity.kt index 29754fc..f090f03 100644 --- a/app/src/main/java/com/shuwei/dish/match/ui/DishSamplingActivity.kt +++ b/app/src/main/java/com/shuwei/dish/match/ui/DishSamplingActivity.kt @@ -7,7 +7,6 @@ import android.util.Log import android.view.View import androidx.activity.addCallback import androidx.activity.viewModels -import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.ItemTouchHelper import androidx.recyclerview.widget.LinearLayoutManager import com.shuwei.dish.match.R @@ -15,7 +14,6 @@ import com.shuwei.dish.match.adapter.DishPartAdapter import com.shuwei.dish.match.base.BaseActivity import com.shuwei.dish.match.base.BaseApp import com.shuwei.dish.match.databinding.ActivityDishSamplingBinding -import com.shuwei.dish.match.db.DbRepository import com.shuwei.dish.match.dialog.FoodSearchDialog import com.shuwei.dish.match.dialog.CommonDialog import com.shuwei.dish.match.entity.CookFoodEntity @@ -33,8 +31,6 @@ import com.shuwei.dish.match.utils.ext.startActivity import com.shuwei.dish.match.utils.ext.toJsonString import com.shuwei.dish.match.utils.ext.toast import com.shuwei.dish.match.utils.ext.visible -import com.shuwei.dish.match.viewmodel.DbViewModel -import com.shuwei.dish.match.viewmodel.factory.AppFactory import java.io.Serializable class DishSamplingActivity : BaseActivity() { @@ -62,7 +58,6 @@ class DishSamplingActivity : BaseActivity() { setTitleBar() setHeaderBackground() addViewClickListener() - initViewModel() foodName = intent.getStringExtra(FOOD_NAME) binding.etInputDish.setText(foodName) @@ -97,15 +92,7 @@ class DishSamplingActivity : BaseActivity() { }) } - private lateinit var appViewModel: DbViewModel - private fun initViewModel() { - val db = BaseApp.instance!!.database - val factory = - AppFactory(DbRepository(db.appDao(), db.seasoningSlotDao())) - appViewModel = - ViewModelProvider(this, factory)[DbViewModel::class.java] - } fun getCookFoodList() { appViewModel.getCookFoodList(cookMode = 1) diff --git a/app/src/main/java/com/shuwei/dish/match/ui/HomeActivity.kt b/app/src/main/java/com/shuwei/dish/match/ui/HomeActivity.kt index 2deeeff..e054496 100644 --- a/app/src/main/java/com/shuwei/dish/match/ui/HomeActivity.kt +++ b/app/src/main/java/com/shuwei/dish/match/ui/HomeActivity.kt @@ -3,7 +3,6 @@ package com.shuwei.dish.match.ui import android.annotation.SuppressLint import android.os.Bundle import androidx.activity.addCallback -import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.lifecycleScope import androidx.recyclerview.widget.LinearLayoutManager import com.shuwei.dish.match.R @@ -11,13 +10,10 @@ import com.shuwei.dish.match.adapter.HomeModeAdapter import com.shuwei.dish.match.base.BaseActivity import com.shuwei.dish.match.base.BaseApp import com.shuwei.dish.match.databinding.ActivityHomeBinding -import com.shuwei.dish.match.db.DbRepository import com.shuwei.dish.match.entity.HomeModeBean import com.shuwei.dish.match.utils.SpTool import com.shuwei.dish.match.utils.ext.startActivity import com.shuwei.dish.match.utils.ext.toast -import com.shuwei.dish.match.viewmodel.DbViewModel -import com.shuwei.dish.match.viewmodel.factory.AppFactory import kotlinx.coroutines.launch class HomeActivity : BaseActivity() { @@ -34,7 +30,6 @@ class HomeActivity : BaseActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) statusBarDarkFont(enable = true) - initViewModel() // // 获取 ANDROID_ID // val deviceId = // Settings.Secure.getString(contentResolver, Settings.Secure.ANDROID_ID) @@ -136,13 +131,7 @@ class HomeActivity : BaseActivity() { ) } - private lateinit var appViewModel: DbViewModel - private fun initViewModel() { - val db = BaseApp.instance!!.database - val factory = AppFactory(DbRepository(db.appDao(), db.seasoningSlotDao())) - appViewModel = ViewModelProvider(this, factory)[DbViewModel::class.java] - } private fun goSampling() { lifecycleScope.launch { diff --git a/app/src/main/java/com/shuwei/dish/match/ui/InitActivity.kt b/app/src/main/java/com/shuwei/dish/match/ui/InitActivity.kt index 60a76ae..5a25cfc 100644 --- a/app/src/main/java/com/shuwei/dish/match/ui/InitActivity.kt +++ b/app/src/main/java/com/shuwei/dish/match/ui/InitActivity.kt @@ -9,14 +9,12 @@ import android.view.KeyEvent import android.view.animation.RotateAnimation import androidx.activity.addCallback import androidx.core.graphics.toColorInt -import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.lifecycleScope import com.shuwei.dish.match.base.BaseActivity import com.shuwei.dish.match.base.BaseApp import com.shuwei.dish.match.base.DeviceRole import com.shuwei.dish.match.base.GlobalData import com.shuwei.dish.match.databinding.ActivityInitBinding -import com.shuwei.dish.match.db.DbRepository import com.shuwei.dish.match.objbox.FoodModule import com.shuwei.dish.match.scale.ScaleServiceManager import com.shuwei.dish.match.utils.AppUtil @@ -27,8 +25,6 @@ import com.shuwei.dish.match.utils.WeightUtil import com.shuwei.dish.match.utils.ext.gone import com.shuwei.dish.match.utils.ext.startActivity import com.shuwei.dish.match.utils.ext.visible -import com.shuwei.dish.match.viewmodel.DbViewModel -import com.shuwei.dish.match.viewmodel.factory.AppFactory import kotlinx.coroutines.delay import kotlinx.coroutines.launch @@ -38,7 +34,6 @@ class InitActivity : BaseActivity() { } private lateinit var binding: ActivityInitBinding - private lateinit var appViewModel: DbViewModel private var startTime = 0L // 倒计时开始时间 private var lastNetworkCheckTime = 0L // 上次检测网络的时间 @@ -59,8 +54,6 @@ class InitActivity : BaseActivity() { BaseApp.canteenId = "0" - initViewModel() - WeightUtil.init() WeightUtil.getWeight() WeightUtil.startContinuousRead() @@ -68,11 +61,6 @@ class InitActivity : BaseActivity() { initViews() } - private fun initViewModel() { - val db = BaseApp.instance!!.database - val factory = AppFactory(DbRepository(db.appDao(), db.seasoningSlotDao())) - appViewModel = ViewModelProvider(this, factory)[DbViewModel::class.java] - } private fun startNextPage(withDelay: Boolean = false) { lifecycleScope.launch { diff --git a/app/src/main/java/com/shuwei/dish/match/ui/MasterScaleActivity.kt b/app/src/main/java/com/shuwei/dish/match/ui/MasterScaleActivity.kt index ca943ea..2fb1c90 100644 --- a/app/src/main/java/com/shuwei/dish/match/ui/MasterScaleActivity.kt +++ b/app/src/main/java/com/shuwei/dish/match/ui/MasterScaleActivity.kt @@ -26,10 +26,6 @@ import com.shuwei.dish.match.databinding.ListTypeScale18Binding import com.shuwei.dish.match.databinding.ListTypeScale2Binding import com.shuwei.dish.match.databinding.ListTypeScale22Binding import com.shuwei.dish.match.base.BaseApp -import com.shuwei.dish.match.db.DbRepository -import androidx.lifecycle.ViewModelProvider -import com.shuwei.dish.match.viewmodel.DbViewModel -import com.shuwei.dish.match.viewmodel.factory.AppFactory import com.shuwei.dish.match.databinding.ListItemScale22RowBinding import com.shuwei.dish.match.scale.ScaleData import com.shuwei.dish.match.scale.ScaleDeviceConfig @@ -56,7 +52,6 @@ class MasterScaleActivity : BaseActivity() { private lateinit var binding: ActivityMasterScaleBinding private val size by lazy { SizeTool.getFlexLayoutSize(10.dp) } - private lateinit var appViewModel: DbViewModel private data class DeviceGroup( val deviceId: String, val ip: String, @@ -80,8 +75,6 @@ class MasterScaleActivity : BaseActivity() { binding.rvScaleList.itemAnimator = null binding.rvScaleList.adapter = adapter - val db = BaseApp.instance!!.database - appViewModel = ViewModelProvider(this, AppFactory(DbRepository(db.appDao(), db.seasoningSlotDao())))[DbViewModel::class.java] loadSlotNames() } diff --git a/app/src/main/java/com/shuwei/dish/match/ui/SamplingListActivity.kt b/app/src/main/java/com/shuwei/dish/match/ui/SamplingListActivity.kt index 83545b6..511632d 100644 --- a/app/src/main/java/com/shuwei/dish/match/ui/SamplingListActivity.kt +++ b/app/src/main/java/com/shuwei/dish/match/ui/SamplingListActivity.kt @@ -6,7 +6,6 @@ import android.os.Bundle import android.view.LayoutInflater import androidx.activity.addCallback import androidx.lifecycle.Lifecycle -import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.lifecycleScope import androidx.lifecycle.repeatOnLifecycle import androidx.recyclerview.widget.ItemTouchHelper @@ -17,7 +16,6 @@ import com.shuwei.dish.match.base.BaseActivity import com.shuwei.dish.match.base.BaseApp import com.shuwei.dish.match.databinding.ActivitySamplingBinding import com.shuwei.dish.match.databinding.LayoutEmptyViewBinding -import com.shuwei.dish.match.db.DbRepository import com.shuwei.dish.match.dialog.CommonDialog import com.shuwei.dish.match.entity.CookFoodEntity import com.shuwei.dish.match.entity.FoodRecord @@ -27,8 +25,6 @@ import com.shuwei.dish.match.utils.ext.gone import com.shuwei.dish.match.utils.ext.startActivity import com.shuwei.dish.match.utils.ext.toast import com.shuwei.dish.match.utils.ext.visible -import com.shuwei.dish.match.viewmodel.DbViewModel -import com.shuwei.dish.match.viewmodel.factory.AppFactory import java.io.Serializable import kotlinx.coroutines.launch import com.shuwei.dish.match.net.UiState @@ -49,7 +45,6 @@ class SamplingListActivity : BaseActivity() { setContentView(binding.root) setTitleBar() setHeaderBackground() - initViewModel() initRecyclerView() addViewListener() initObserver() @@ -128,13 +123,7 @@ class SamplingListActivity : BaseActivity() { } - private lateinit var appViewModel: DbViewModel - private fun initViewModel() { - val db = BaseApp.instance!!.database - val factory = AppFactory(DbRepository(db.appDao(), db.seasoningSlotDao())) - appViewModel = ViewModelProvider(this, factory)[DbViewModel::class.java] - } fun getCookFoodList() { appViewModel.getCookFoodList(cookMode = 1) diff --git a/app/src/main/java/com/shuwei/dish/match/ui/SelectDishActivity.kt b/app/src/main/java/com/shuwei/dish/match/ui/SelectDishActivity.kt index 9236f03..ea25d60 100644 --- a/app/src/main/java/com/shuwei/dish/match/ui/SelectDishActivity.kt +++ b/app/src/main/java/com/shuwei/dish/match/ui/SelectDishActivity.kt @@ -3,14 +3,12 @@ package com.shuwei.dish.match.ui import android.content.Intent import android.os.Bundle import androidx.activity.addCallback -import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.lifecycleScope import kotlinx.coroutines.launch import com.shuwei.dish.match.R import com.shuwei.dish.match.base.BaseActivity import com.shuwei.dish.match.base.BaseApp import com.shuwei.dish.match.databinding.ActivitySelectDishBinding -import com.shuwei.dish.match.db.DbRepository import com.shuwei.dish.match.dialog.CommonDialog import com.shuwei.dish.match.ui.fragment.DishListFragment import com.shuwei.dish.match.utils.KeyboardUtil @@ -19,8 +17,6 @@ import com.shuwei.dish.match.utils.ext.gone import com.shuwei.dish.match.utils.ext.startActivity import com.shuwei.dish.match.utils.ext.toast import com.shuwei.dish.match.utils.ext.visible -import com.shuwei.dish.match.viewmodel.DbViewModel -import com.shuwei.dish.match.viewmodel.factory.AppFactory class SelectDishActivity : BaseActivity() { @@ -32,9 +28,6 @@ class SelectDishActivity : BaseActivity() { private lateinit var binding: ActivitySelectDishBinding - lateinit var appViewModel: DbViewModel - private set - private var dinnerType: String = "1" private val fragmentList = mutableListOf().apply { @@ -61,17 +54,11 @@ class SelectDishActivity : BaseActivity() { }, backAction = { it.gone() }) - initViewModel() addViewListener() loadFragment() onBackPressedDispatcher.addCallback(this) {} } - private fun initViewModel() { - val db = BaseApp.instance!!.database - val factory = AppFactory(DbRepository(db.appDao(), db.seasoningSlotDao())) - appViewModel = ViewModelProvider(this, factory)[DbViewModel::class.java] - } fun getCookFoodList() { appViewModel.getCookFoodList(cookMode = 0, dinnerType = dinnerType) diff --git a/app/src/main/java/com/shuwei/dish/match/ui/SingleFragmentActivity.kt b/app/src/main/java/com/shuwei/dish/match/ui/SingleFragmentActivity.kt index d3634dd..0e7268a 100644 --- a/app/src/main/java/com/shuwei/dish/match/ui/SingleFragmentActivity.kt +++ b/app/src/main/java/com/shuwei/dish/match/ui/SingleFragmentActivity.kt @@ -4,17 +4,13 @@ import android.content.Context import android.content.Intent import android.os.Bundle import androidx.fragment.app.Fragment -import androidx.lifecycle.ViewModelProvider import com.shuwei.dish.match.base.BaseActivity import com.shuwei.dish.match.base.BaseApp -import com.shuwei.dish.match.db.DbRepository import com.shuwei.dish.match.ui.fragment.CollectFragment import com.shuwei.dish.match.ui.fragment.DeviceConfigFragment import com.shuwei.dish.match.ui.fragment.SeasoningConfigFragment import com.shuwei.dish.match.utils.ext.gone import com.shuwei.dish.match.utils.ext.visible -import com.shuwei.dish.match.viewmodel.DbViewModel -import com.shuwei.dish.match.viewmodel.factory.AppFactory /** * 通用单 Fragment 容器 Activity @@ -63,15 +59,9 @@ class SingleFragmentActivity : BaseActivity() { lifecycleCallback = callback } - lateinit var appViewModel: DbViewModel - private set - override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - val db = BaseApp.instance!!.database - appViewModel = ViewModelProvider(this, AppFactory(DbRepository(db.appDao(), db.seasoningSlotDao())))[DbViewModel::class.java] - setHeaderBackground() // 解析页面类型,非法值直接关闭 diff --git a/app/src/main/java/com/shuwei/dish/match/ui/SlaveActivity.kt b/app/src/main/java/com/shuwei/dish/match/ui/SlaveActivity.kt index b2aacf4..015bc8c 100644 --- a/app/src/main/java/com/shuwei/dish/match/ui/SlaveActivity.kt +++ b/app/src/main/java/com/shuwei/dish/match/ui/SlaveActivity.kt @@ -31,10 +31,6 @@ import com.shuwei.dish.match.utils.SizeTool import com.shuwei.dish.match.utils.WeightUtil import com.shuwei.dish.match.utils.ext.dp import kotlinx.coroutines.launch -import androidx.lifecycle.ViewModelProvider -import com.shuwei.dish.match.db.DbRepository -import com.shuwei.dish.match.viewmodel.DbViewModel -import com.shuwei.dish.match.viewmodel.factory.AppFactory /** * 子设备专属页面(小屏幕设备使用) @@ -66,17 +62,12 @@ class SlaveActivity : BaseActivity() { private var clearHighlightRunnable: Runnable? = null private val size by lazy { SizeTool.getFlexLayoutSize(10.dp) } - private lateinit var appViewModel: DbViewModel - override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) binding = ActivitySlaveBinding.inflate(layoutInflater) setContentView(binding.root) setHeaderBackground() - val db = BaseApp.instance!!.database - appViewModel = ViewModelProvider(this, AppFactory(DbRepository(db.appDao(), db.seasoningSlotDao())))[DbViewModel::class.java] - binding.tvDeviceId.text = "设备:${GlobalData.deviceId}" binding.tvDeviceIp.text = "IP:${getLocalIpAddress()}" diff --git a/app/src/main/java/com/shuwei/dish/match/ui/SubmitFoodActivity.kt b/app/src/main/java/com/shuwei/dish/match/ui/SubmitFoodActivity.kt index 3606f3d..cfb1a62 100644 --- a/app/src/main/java/com/shuwei/dish/match/ui/SubmitFoodActivity.kt +++ b/app/src/main/java/com/shuwei/dish/match/ui/SubmitFoodActivity.kt @@ -4,7 +4,6 @@ import android.annotation.SuppressLint import android.os.Bundle import android.util.Log import androidx.activity.addCallback -import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.Lifecycle import androidx.lifecycle.lifecycleScope import androidx.lifecycle.repeatOnLifecycle @@ -15,7 +14,6 @@ import com.shuwei.dish.match.adapter.SeasoningWeightAdapter import com.shuwei.dish.match.base.BaseActivity import com.shuwei.dish.match.base.BaseApp import com.shuwei.dish.match.databinding.ActivitySubmitFoodBinding -import com.shuwei.dish.match.db.DbRepository import com.shuwei.dish.match.dialog.CommonDialog import com.shuwei.dish.match.entity.CookFoodEntity import com.shuwei.dish.match.entity.CookFoodGoodsEntity @@ -35,8 +33,6 @@ import com.shuwei.dish.match.utils.ext.toJsonString import com.shuwei.dish.match.utils.ext.toType import com.shuwei.dish.match.utils.ext.toast import com.shuwei.dish.match.utils.ext.visible -import com.shuwei.dish.match.viewmodel.DbViewModel -import com.shuwei.dish.match.viewmodel.factory.AppFactory import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.flow.collectLatest import kotlinx.coroutines.launch @@ -100,7 +96,6 @@ class SubmitFoodActivity : BaseActivity() { super.onCreate(savedInstanceState) binding = ActivitySubmitFoodBinding.inflate(layoutInflater) setContentView(binding.root) - initViewModel() setHeaderBackground() intent.extras?.apply { food = getSerializable(FOOD_ITEM) as FoodRecord? @@ -406,13 +401,7 @@ class SubmitFoodActivity : BaseActivity() { } } - private lateinit var appViewModel: DbViewModel - private fun initViewModel() { - val db = BaseApp.instance!!.database - val factory = AppFactory(DbRepository(db.appDao(), db.seasoningSlotDao())) - appViewModel = ViewModelProvider(this, factory)[DbViewModel::class.java] - } override fun onDestroy() { WeightUtil.removeWeightListener(TAG) diff --git a/app/src/main/java/com/shuwei/dish/match/ui/fragment/DeviceConfigFragment.kt b/app/src/main/java/com/shuwei/dish/match/ui/fragment/DeviceConfigFragment.kt index 11cfbf7..c2bbd91 100644 --- a/app/src/main/java/com/shuwei/dish/match/ui/fragment/DeviceConfigFragment.kt +++ b/app/src/main/java/com/shuwei/dish/match/ui/fragment/DeviceConfigFragment.kt @@ -54,22 +54,12 @@ class DeviceConfigFragment : BaseFragment() { } override fun initialize() { - initViewModel() initUI() // addWeighListener() // addGridItemListener() // loadSeasoning() } - /** - * 初始化ViewModel - */ - private fun initViewModel() { -// val db = BaseApp.instance!!.database -// val factory = AppFactory(DbRepository(db.appDao())) -// appViewModel = ViewModelProvider(this, factory)[DbViewModel::class.java] - } - /** * 初始化UI */ diff --git a/app/src/main/java/com/shuwei/dish/match/viewmodel/CookFoodGoodsViewModel.kt b/app/src/main/java/com/shuwei/dish/match/viewmodel/CookFoodGoodsViewModel.kt deleted file mode 100644 index 5322ca2..0000000 --- a/app/src/main/java/com/shuwei/dish/match/viewmodel/CookFoodGoodsViewModel.kt +++ /dev/null @@ -1,42 +0,0 @@ -//package com.shuwei.dish.match.viewmodel -// -//import androidx.lifecycle.ViewModel -//import androidx.lifecycle.viewModelScope -//import com.shuwei.dish.match.db.CookFoodGoodsRepository -//import com.shuwei.dish.match.entity.CookFoodGoodsEntity -//import kotlinx.coroutines.launch -// -//class CookFoodGoodsViewModel(private val rep: CookFoodGoodsRepository) : ViewModel() { -// -// fun getCookFoodGoodsList( -// foodId: String, -// action: (list: MutableList) -> Unit -// ) { -// viewModelScope.launch { -// val list = rep.cookFoodGoodsDao.getCookFoodGoodsList(foodId) -// action(list) -// } -// } -// -// fun saveCookFoodGoods(list: MutableList) { -// viewModelScope.launch { -// val foodId = list[0].foodId -// val data: MutableList? = -// rep.cookFoodGoodsDao.getCookFoodGoodsList(foodId!!) -// if (data.isNullOrEmpty()) { -// rep.cookFoodGoodsDao.insertAll(list) -// return@launch -// } -// val localDbSeasoningList = rep.cookFoodGoodsDao.getCookFoodGoodsListByType(foodId, 3) -// localDbSeasoningList.forEach { -// it.isDel = 1 -// //更新本地调料数据为已删除的状态 -// rep.cookFoodGoodsDao.update(it) -// } -// //筛选出调料数据保存,主辅材不会变更不需要再次处理 -// val saveSeasoningList = list.filter { it.materialType == 3 } -// rep.cookFoodGoodsDao.insertAll(saveSeasoningList.toMutableList()) -// } -// } -// -//} \ No newline at end of file diff --git a/app/src/main/java/com/shuwei/dish/match/viewmodel/CookFoodViewModel.kt b/app/src/main/java/com/shuwei/dish/match/viewmodel/CookFoodViewModel.kt deleted file mode 100644 index a6c8468..0000000 --- a/app/src/main/java/com/shuwei/dish/match/viewmodel/CookFoodViewModel.kt +++ /dev/null @@ -1,44 +0,0 @@ -//package com.shuwei.dish.match.viewmodel -// -//import androidx.lifecycle.ViewModel -//import androidx.lifecycle.viewModelScope -//import com.shuwei.dish.match.db.CookFoodRepository -//import com.shuwei.dish.match.entity.CookFoodEntity -//import kotlinx.coroutines.launch -// -//class CookFoodViewModel(private val rep: CookFoodRepository) : ViewModel() { -// -// fun getCookFoodById(foodId: String, cookMode: Int, action: (CookFoodEntity?) -> Unit) { -// viewModelScope.launch { -// val data = rep.cookFoodDao.getCookFoodById(foodId, cookMode) -// action(data) -// } -// } -// -// fun getCookFoodList(cookMode: Int, action: (MutableList?) -> Unit) { -// viewModelScope.launch { -// val data = rep.cookFoodDao.getCookFoodList(cookMode) -// action(data) -// } -// } -// -// fun countCookFood(cookMode: Int, action: (Int) -> Unit) { -// viewModelScope.launch { -// val count = rep.cookFoodDao.countCookFood(cookMode) -// action(count) -// } -// } -// -// fun saveCookFood(cookMode: Int, entity: CookFoodEntity) { -// viewModelScope.launch { -// val data = rep.cookFoodDao.getCookFoodById(entity.foodId, cookMode) -// if (data == null) { -// rep.cookFoodDao.insert(entity) -// return@launch -// } -// rep.cookFoodDao.update(entity) -// -// } -// } -// -//} \ No newline at end of file diff --git a/app/src/main/java/com/shuwei/dish/match/viewmodel/DeviceSettingViewModel.kt b/app/src/main/java/com/shuwei/dish/match/viewmodel/DeviceSettingViewModel.kt deleted file mode 100644 index cbb8e0d..0000000 --- a/app/src/main/java/com/shuwei/dish/match/viewmodel/DeviceSettingViewModel.kt +++ /dev/null @@ -1,47 +0,0 @@ -//package com.shuwei.dish.match.viewmodel -// -//import androidx.lifecycle.ViewModel -//import androidx.lifecycle.viewModelScope -//import com.shuwei.dish.match.db.SeasoningRepository -//import com.shuwei.dish.match.entity.SeasoningEntity -//import kotlinx.coroutines.delay -//import kotlinx.coroutines.launch -// -//class DeviceSettingViewModel(private val rep: SeasoningRepository) : ViewModel() { -// fun addSeasoning(list: MutableList, callback:()-> Unit) { -// viewModelScope.launch { -// rep.seasoningDao.deleteBatch() -// delay(500) -// val rows: Array? = rep.seasoningDao.insertAll(items = list) -// if (rows.isNullOrEmpty().not()) { -// callback() -// } -// } -// } -// -// private var isProcessing = false -// fun loadSeasoning(action: (list: MutableList) -> Unit) { -// viewModelScope.launch { -// if (isProcessing) return@launch -// isProcessing = true -// rep.seasoningDao.getAllStream().collect { list -> -// action(list) -// isProcessing = false -// } -// } -// } -// -// fun deleteAll() { -// viewModelScope.launch { -// rep.seasoningDao.deleteBatch() -// } -// } -// -// fun updateAll(list: MutableList) { -// viewModelScope.launch { -// list.forEach { -// rep.seasoningDao.update(it) -// } -// } -// } -//} \ No newline at end of file diff --git a/app/src/main/java/com/shuwei/dish/match/viewmodel/SubmitDishViewModel.kt b/app/src/main/java/com/shuwei/dish/match/viewmodel/SubmitDishViewModel.kt deleted file mode 100644 index 2919895..0000000 --- a/app/src/main/java/com/shuwei/dish/match/viewmodel/SubmitDishViewModel.kt +++ /dev/null @@ -1,24 +0,0 @@ -//package com.shuwei.dish.match.viewmodel -// -//import androidx.lifecycle.ViewModel -//import androidx.lifecycle.viewModelScope -//import com.shuwei.dish.match.db.SeasoningRepository -//import com.shuwei.dish.match.entity.CookFoodEntity -//import com.shuwei.dish.match.entity.SeasoningEntity -//import kotlinx.coroutines.launch -// -//class SubmitDishViewModel(private val rep: SeasoningRepository) : ViewModel() { -// -// private var isProcessing = false -// fun loadSeasoning(action: (list: MutableList) -> Unit) { -// viewModelScope.launch { -// if (isProcessing) return@launch -// isProcessing = true -// rep.seasoningDao.getAllStream().collect { list -> -// action(list) -// isProcessing = false -// } -// } -// } -// -//} \ No newline at end of file diff --git a/app/src/main/java/com/shuwei/dish/match/viewmodel/factory/VMFactory.kt b/app/src/main/java/com/shuwei/dish/match/viewmodel/factory/VMFactory.kt deleted file mode 100644 index 438e37c..0000000 --- a/app/src/main/java/com/shuwei/dish/match/viewmodel/factory/VMFactory.kt +++ /dev/null @@ -1,44 +0,0 @@ -package com.shuwei.dish.match.viewmodel.factory - -import androidx.lifecycle.ViewModel -import androidx.lifecycle.ViewModelProvider -import com.shuwei.dish.match.db.DbRepository -import com.shuwei.dish.match.db.dao.SeasoningSlotDao -import com.shuwei.dish.match.viewmodel.DbViewModel - -@Suppress("UNCHECKED_CAST") -class AppFactory(private val repo: DbRepository) : ViewModelProvider.Factory { - override fun create(modelClass: Class): T { - return DbViewModel(repo) as T - } -} - -// -//@Suppress("UNCHECKED_CAST") -//class DeviceSettingFactory(private val repo: SeasoningRepository) : ViewModelProvider.Factory { -// override fun create(modelClass: Class): T { -// return DeviceSettingViewModel(repo) as T -// } -//} -// -////@Suppress("UNCHECKED_CAST") -////class SubmitDishFactory(private val repo: SeasoningRepository) : ViewModelProvider.Factory { -//// override fun create(modelClass: Class): T { -//// return SubmitDishViewModel(repo) as T -//// } -////} -// -//@Suppress("UNCHECKED_CAST") -//class CookFoodFactory(private val repo: CookFoodRepository) : ViewModelProvider.Factory { -// override fun create(modelClass: Class): T { -// return CookFoodViewModel(repo) as T -// } -//} -// -//@Suppress("UNCHECKED_CAST") -//class CookFoodGoodsFactory(private val repo: CookFoodGoodsRepository) : ViewModelProvider.Factory { -// override fun create(modelClass: Class): T { -// return CookFoodGoodsViewModel(repo) as T -// } -//} -