[6.7.3]
[fix] [线路和站点更新逻辑变更]
This commit is contained in:
@@ -46,13 +46,6 @@ object LineDb: IDbRepository {
|
||||
// TODO: Ui展示需要动态刷新UI去
|
||||
return
|
||||
}
|
||||
val tempList = loadData.groupBy { it.lineId }.filter { it.value.size > 1 }
|
||||
val needDelete = mutableListOf<LineDataBean>()
|
||||
tempList.forEach {multData->
|
||||
needDelete.add(multData.value.first())
|
||||
}
|
||||
// 删除本地重复的
|
||||
lineDao.delete(*needDelete.toTypedArray())
|
||||
// 后台新增数据
|
||||
val needAddDatas = serverDatalist-loadData
|
||||
// 后台没有本地数据库有的未分配线路
|
||||
@@ -83,6 +76,34 @@ object LineDb: IDbRepository {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 交集 服务器端
|
||||
val needUpdateByMd5 = serverDatalist-needAddDatas
|
||||
// 交集 本地数据库
|
||||
val oldDataList = loadData-needMinusDatas
|
||||
|
||||
val needDelete = mutableListOf<LineDataBean>()
|
||||
val needUpDate = mutableListOf<LineDataBean>()
|
||||
|
||||
needUpdateByMd5.forEach {
|
||||
val oldList = oldDataList.filter { local -> local.lineId == it.lineId }
|
||||
if(oldList.isNotEmpty()){
|
||||
oldList.forEachIndexed { index, lineBean ->
|
||||
if(index==0){
|
||||
if (lineBean.lineName == it.lineName && lineBean.endStationName == it.endStationName) {
|
||||
// 数据没有变化
|
||||
}else{
|
||||
it.id = lineBean.id
|
||||
needUpDate.add(it)
|
||||
}
|
||||
}else{
|
||||
needDelete.add(lineBean)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
lineDao.delete(*needDelete.toTypedArray())
|
||||
lineDao.insert(*needUpDate.toTypedArray())
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -59,6 +59,10 @@ object SiteDb: IDbRepository {
|
||||
// 交集 本地数据库
|
||||
val oldDataList = localAllSites-needMinusDatas
|
||||
|
||||
val needDelete = mutableListOf<SiteDataBean>()
|
||||
val needUpDate = mutableListOf<SiteDataBean>()
|
||||
|
||||
|
||||
needUpdateByMd5.forEach {
|
||||
val md5Source = it.toString()
|
||||
val md5Hex = DigestUtils.md5Hex(md5Source)
|
||||
@@ -67,19 +71,23 @@ object SiteDb: IDbRepository {
|
||||
if(oldList.isNotEmpty()){
|
||||
oldList.forEachIndexed { index, siteDataBean ->
|
||||
if(index==0){
|
||||
if(siteDataBean.md5==md5Hex){
|
||||
if (siteDataBean.md5 == md5Hex) {
|
||||
// 数据没有变化
|
||||
}else{
|
||||
it.id = siteDataBean.id
|
||||
it.md5 = md5Hex
|
||||
siteDataDao.insert(it)
|
||||
needUpDate.add(it)
|
||||
|
||||
}
|
||||
}else{
|
||||
siteDataDao.deleteById(siteDataBean)
|
||||
needDelete.add(siteDataBean)
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
siteDataDao.insert(*needUpDate.toTypedArray())
|
||||
siteDataDao.deleteById(*needDelete.toTypedArray())
|
||||
checkData()
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user