Код: Выделить всё
suspend fun saveServiceProviderCategories(data: String?) {
val result = data?.convertFromJson()
val directoryForSave =
result?.data?.apply {
val images = mutableListOf()
this.forEach {
val hashPart = if (it.icon?.base64 != null && it.icon?.base64!!.length > 50) it.icon?.base64?.toMD5()?.take(30) else uuidString62()
val fileName = "${it.id}_$hashPart"
it.iconPath = fileName
it.icon?.let { icon -> images.add(icon) }
}
images.saveImagesInCache()
}
directoryForSave?.apply {
filter { it.isDeleted == true }.forEach { it.id?.let { it1 ->
dao.deleteServiceProviderCategory(
it1
)
} }
filter { it.isDeleted != true }.let {
dao.saveServiceProviderCategory(it)
}
if (result.dataVersion != null) {
appPreferences.saveServiceProviderCategoryVersion(result.dataVersion?.toLongOrNull() ?: 0L)
}
}
}
Фактическая таблица каталог_Service_Provider_Category — 31573.
dv_of_directories (directory_Service_Provider_Category) — 32090 (то же самое, что и сзади, фактическое значение также должно обновиться до 32090).
Теперь, что происходит, когда я это делаю: вызывается saveServiceProviderCategories(), и информация отладки показывает, что dataVersion имеет значение null, поэтому он проходит через метод, а затем, когда дело доходит до
if (result.dataVersion != null) {
appPreferences.saveServiceProviderCategoryVersion(result.dataVersion?.toLongOrNull() ?: 0L)
Поскольку dataVersion имеет значение null. Он пропускает это, если условие и метод завершены. DataVersion фактической таблицы увеличивается на 30 значений (как установлено серверной частью), а значение dv_of_directories возвращается к 32090.
Не ожидаю чудесных решений, но любые советы и помощь будут оценены по достоинству. Старшему, назначенному мне помогать, трудно объяснить мне, как решить эту задачу, и он вроде как верит в то, что ребенка нужно бросать в воду, пока он не научится выплывать сам, лол.
Подробнее здесь: https://stackoverflow.com/questions/797 ... gue-versio
Мобильная версия