[6.7.2]
[fix] [站点重复]
This commit is contained in:
@@ -13,6 +13,7 @@ import com.mogo.och.weaknet.repository.net.shuttlesaas.ShuttleSaasServiceManager
|
||||
import com.mogo.och.weaknet.repository.db.bean.EventDataBean
|
||||
import com.mogo.och.weaknet.repository.db.repository.EventDb
|
||||
import com.mogo.och.weaknet.repository.RepositoryManager
|
||||
import com.mogo.och.weaknet.repository.db.repository.SiteDb
|
||||
import io.reactivex.Observable
|
||||
import io.reactivex.android.schedulers.AndroidSchedulers
|
||||
import io.reactivex.schedulers.Schedulers
|
||||
@@ -43,6 +44,11 @@ object EventModel : EventDb.EventCallback {
|
||||
override fun notifySyn() {
|
||||
BizLoopManager.removeCallback(loopUpdateInfo)
|
||||
updateEvent()
|
||||
checkDbData()
|
||||
}
|
||||
|
||||
private fun checkDbData() {
|
||||
SiteDb.checkData()
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package com.mogo.och.weaknet.repository.db.dao
|
||||
|
||||
import androidx.room.Dao
|
||||
import androidx.room.Delete
|
||||
import androidx.room.Insert
|
||||
import androidx.room.OnConflictStrategy
|
||||
import androidx.room.Query
|
||||
@@ -12,6 +13,10 @@ interface SiteDataDao {
|
||||
@Insert(onConflict = OnConflictStrategy.REPLACE)
|
||||
fun insert(vararg lineDataBean: SiteDataBean)
|
||||
|
||||
@Delete()
|
||||
fun deleteById(vararg siteDataBean: SiteDataBean)
|
||||
|
||||
|
||||
// 线路删除时同步删除所属站点
|
||||
@Query("DELETE FROM ${SiteDataBean.siteDataTable} WHERE line_id = :lineId")
|
||||
fun deleteByLineId(lineId: Long)
|
||||
@@ -26,6 +31,9 @@ interface SiteDataDao {
|
||||
@Query("SELECT * FROM ${SiteDataBean.siteDataTable} WHERE line_id = :lineId")
|
||||
fun querySitesByLineId(lineId: Long):List<SiteDataBean>?
|
||||
|
||||
@Query("SELECT * FROM ${SiteDataBean.siteDataTable} GROUP by md5 HAVING count(1) > 1")
|
||||
fun checkData():List<SiteDataBean>?
|
||||
|
||||
fun querySiteByLineIdAndSiteId(lineId: Long,siteId:Long): SiteDataBean?{
|
||||
val queryContrailByLineId = querySitesByLineIdAndSiteId(lineId,siteId)
|
||||
return if(queryContrailByLineId.isNullOrEmpty()){
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
package com.mogo.och.weaknet.repository.db.repository
|
||||
|
||||
import com.mogo.eagle.core.network.utils.digest.DigestUtils
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
|
||||
import com.mogo.eagle.core.utilcode.util.TAG
|
||||
import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager
|
||||
import com.mogo.och.common.module.manager.loop.BizLoopManager
|
||||
import com.mogo.och.weaknet.repository.db.MyDataBase
|
||||
import com.mogo.och.weaknet.repository.db.bean.SiteDataBean
|
||||
@@ -31,11 +34,25 @@ object SiteDb {
|
||||
siteDataDao.insert(it)
|
||||
}
|
||||
}
|
||||
checkData()
|
||||
}
|
||||
}
|
||||
BizLoopManager.runInIoThread(runnable)
|
||||
}
|
||||
|
||||
fun checkData() {
|
||||
CallerLogger.d(TAG,"检测站点数据")
|
||||
siteDataDao?.checkData()?.let { list ->
|
||||
list.forEach {
|
||||
siteDataDao?.deleteById(it)
|
||||
}
|
||||
if (list.isNotEmpty()) {
|
||||
OchChainLogManager.writeChainLogDb("数据检测", "有重复数据${list}")
|
||||
checkData()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun deleteByLineId(lineId: Long) {
|
||||
siteDataDao?.deleteByLineId(lineId)
|
||||
}
|
||||
|
||||
@@ -25,7 +25,7 @@ object TaskSiteDb {
|
||||
fun startTask(taskId: Long, linId: Long,lineName:String):Int? {
|
||||
// 获取线路的站点
|
||||
var startTime = System.currentTimeMillis()
|
||||
val querySites = SiteDb.querySiteByLineId(linId)
|
||||
val querySites = SiteDb.querySiteByLineId(linId)?.distinctBy { it.siteId }
|
||||
if(querySites.isNullOrEmpty()){
|
||||
throw DbException("没有站点数据")
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user