[6.8.4]
[fea] [room 重写 update]
This commit is contained in:
@@ -4,6 +4,7 @@ import androidx.room.Dao
|
||||
import androidx.room.Insert
|
||||
import androidx.room.OnConflictStrategy
|
||||
import androidx.room.Query
|
||||
import androidx.room.Update
|
||||
import com.mogo.och.weaknet.repository.db.bean.ContrailDataBean
|
||||
|
||||
@Dao
|
||||
@@ -13,6 +14,10 @@ interface ContrailDataDao {
|
||||
@Insert(onConflict = OnConflictStrategy.REPLACE)
|
||||
fun insert(vararg contrailDataBean: ContrailDataBean)
|
||||
|
||||
@Query("UPDATE ${ContrailDataBean.ContrailDataTable} SET csv_file_url = :csv_file_url ,csv_file_md5 = :csv_file_md5 ,txt_file_url = :txt_file_url " +
|
||||
",txt_file_md5 = :txt_file_md5 ,contrail_save_time = :contrail_save_time,md5 = :md5 WHERE id = :id")
|
||||
fun update(csv_file_url: String,csv_file_md5: String,txt_file_url: String,txt_file_md5: String,contrail_save_time: Long,md5: String,id:Int)
|
||||
|
||||
// 线路删除时同步删除所属轨迹信息
|
||||
@Query("DELETE FROM ${ContrailDataBean.ContrailDataTable} WHERE line_id = :lineId")
|
||||
fun deleteByLineId(lineId: Long)
|
||||
@@ -35,4 +40,6 @@ interface ContrailDataDao {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -20,6 +20,10 @@ interface EventDataDao {
|
||||
@Delete
|
||||
fun delete(vararg eventDataBean: EventDataBean)
|
||||
|
||||
@Query("UPDATE ${EventDataBean.evnetDataTable} SET update_status = :status WHERE id = :id")
|
||||
fun updateUpdateSatus(id:Int,status:Int):Int
|
||||
|
||||
|
||||
// 删除过时数据
|
||||
@Query("DELETE FROM ${EventDataBean.evnetDataTable} WHERE event_save_time < :zeroTime")
|
||||
fun deleteObsoleteData(zeroTime: Long = DateTimeUtil.getCurrentDateZero()):Int
|
||||
|
||||
@@ -19,6 +19,9 @@ interface LineDataDao {
|
||||
@Delete
|
||||
fun delete(vararg lineDataBean: LineDataBean)
|
||||
|
||||
@Query("UPDATE ${LineDataBean.lineDataTable} SET line_name = :lineName ,end_station_name = :endStationName WHERE id = :id")
|
||||
fun updateInfo(lineName: String?, endStationName: String?, id: Long)
|
||||
|
||||
// 删除过时数据
|
||||
@Query("DELETE FROM ${LineDataBean.lineDataTable} WHERE line_get_time < :zeroTime")
|
||||
fun deleteObsoleteData(zeroTime: Long = DateTimeUtil.getCurrentDateZero()):Int
|
||||
|
||||
@@ -16,6 +16,14 @@ interface SiteDataDao {
|
||||
@Delete()
|
||||
fun deleteById(vararg siteDataBean: SiteDataBean)
|
||||
|
||||
@Query("UPDATE ${SiteDataBean.siteDataTable} SET site_id = :site_id ,line_id = :lineId,name = :name,name_kr = :nameKr,seq = :seq," +
|
||||
"gcj_lon = :gcjLon,gcj_lat = :gcjLat,lon = :lon,lat = :lat,introduction = :introduction," +
|
||||
"is_play_tts = :isPlayTts,md5 = :md5,videoList = :videoListDB WHERE id = :id")
|
||||
fun updateInfo(site_id: Long?, lineId: Long?, name: String?,nameKr:String?,seq:Int?,
|
||||
gcjLon:Double?, gcjLat:Double?,lon:Double?,lat:Double?,introduction:String?,
|
||||
isPlayTts:Boolean?,md5:String?,videoListDB:String?,id:Int
|
||||
)
|
||||
|
||||
|
||||
// 线路删除时同步删除所属站点
|
||||
@Query("DELETE FROM ${SiteDataBean.siteDataTable} WHERE line_id = :lineId")
|
||||
|
||||
@@ -19,51 +19,63 @@ interface TaskDataDao {
|
||||
@Delete
|
||||
fun delete(vararg lineDataBean: TaskDataBean)
|
||||
|
||||
@Query("UPDATE ${TaskDataBean.taskDataTable} SET start_time = :currentTimeMillis ,status = :useing WHERE id = :id")
|
||||
fun updateStatus(currentTimeMillis: Long, useing: Long, id: Int)
|
||||
|
||||
//删除非昨天添加的数据
|
||||
@Query("DELETE FROM ${TaskDataBean.taskDataTable} WHERE task_get_time < :zeroTime")
|
||||
fun deleteDataByZero(zeroTime:Long): Int
|
||||
fun deleteDataByZero(zeroTime: Long): Int
|
||||
|
||||
@Query("UPDATE ${TaskDataBean.taskDataTable} SET end_time = :endTime,status = ${TaskDataBean.used} WHERE task_id = :taskId")
|
||||
fun endTask(taskId: Long,endTime:Long = DateTimeUtil.getCurrentTimeStamp())
|
||||
fun endTask(taskId: Long, endTime: Long = DateTimeUtil.getCurrentTimeStamp())
|
||||
|
||||
//查询当天插入的所有数据
|
||||
@Query("SELECT * FROM ${TaskDataBean.taskDataTable} WHERE task_get_time > :zeroTime")
|
||||
fun loadAllData(zeroTime:Long): List<TaskDataBean>?
|
||||
fun loadAllData(zeroTime: Long): List<TaskDataBean>?
|
||||
|
||||
// 查询当天特定线路正在执行的任务
|
||||
@Query("SELECT * FROM ${TaskDataBean.taskDataTable} WHERE task_get_time > :zeroTime and status = ${TaskDataBean.useing} and line_id = :lineId")
|
||||
fun queryRunningTaskByLineId(lineId: Long, zeroTime:Long = DateTimeUtil.getCurrentDateZero()): List<TaskDataBean>?
|
||||
fun queryRunningTaskByLineId(
|
||||
lineId: Long,
|
||||
zeroTime: Long = DateTimeUtil.getCurrentDateZero()
|
||||
): List<TaskDataBean>?
|
||||
|
||||
// 查询当天特定线路正在执行的任务
|
||||
@Query("SELECT * FROM ${TaskDataBean.taskDataTable} WHERE task_get_time > :zeroTime and status = ${TaskDataBean.useing}")
|
||||
fun queryRunningTaskByStatus(zeroTime:Long = DateTimeUtil.getCurrentDateZero()): List<TaskDataBean>?
|
||||
fun queryRunningTaskByStatus(zeroTime: Long = DateTimeUtil.getCurrentDateZero()): List<TaskDataBean>?
|
||||
|
||||
@Query("SELECT * FROM ${TaskDataBean.taskDataTable} WHERE task_get_time > :zeroTime and status = ${TaskDataBean.unUse} and line_id = :lineId order by task_start_time")
|
||||
fun queryUnuseTask(lineId: Long,zeroTime:Long = DateTimeUtil.getCurrentDateZero()): Observable<List<TaskDataBean>?>
|
||||
fun queryUnuseTask(
|
||||
lineId: Long,
|
||||
zeroTime: Long = DateTimeUtil.getCurrentDateZero()
|
||||
): Observable<List<TaskDataBean>?>
|
||||
|
||||
@Query("DELETE FROM ${TaskDataBean.taskDataTable} WHERE task_get_time > :zeroTime and line_id = :lineId")
|
||||
fun deleteByLineId(lineId: Long,zeroTime:Long = DateTimeUtil.getCurrentDateZero())
|
||||
fun deleteByLineId(lineId: Long, zeroTime: Long = DateTimeUtil.getCurrentDateZero())
|
||||
|
||||
@Query("SELECT * FROM ${TaskDataBean.taskDataTable} WHERE line_id = :lineId and task_get_time > :zeroTime")
|
||||
fun querySitesByLineId(lineId: Long?,zeroTime:Long = DateTimeUtil.getCurrentDateZero()):List<TaskDataBean>?
|
||||
fun querySitesByLineId(
|
||||
lineId: Long?,
|
||||
zeroTime: Long = DateTimeUtil.getCurrentDateZero()
|
||||
): List<TaskDataBean>?
|
||||
|
||||
//查询线路对应的轨迹信息
|
||||
@Query("SELECT * FROM ${TaskDataBean.taskDataTable} WHERE task_id = :taskId")
|
||||
fun queryContrailByLineId(taskId:Long): List<TaskDataBean>?
|
||||
fun queryContrailByLineId(taskId: Long): List<TaskDataBean>?
|
||||
|
||||
// 删除过时数据
|
||||
@Query("DELETE FROM ${TaskDataBean.taskDataTable} WHERE task_get_time < :zeroTime")
|
||||
fun deleteObsoleteData(zeroTime: Long = DateTimeUtil.getCurrentDateZero()):Int
|
||||
|
||||
fun deleteObsoleteData(zeroTime: Long = DateTimeUtil.getCurrentDateZero()): Int
|
||||
|
||||
|
||||
//查询线路对应的轨迹信息 只要一个结果
|
||||
fun queryTaskByTaskIdOne(taskId: Long): TaskDataBean?{
|
||||
fun queryTaskByTaskIdOne(taskId: Long): TaskDataBean? {
|
||||
val queryContrailByLineId = queryContrailByLineId(taskId)
|
||||
return if(queryContrailByLineId.isNullOrEmpty()){
|
||||
return if (queryContrailByLineId.isNullOrEmpty()) {
|
||||
null
|
||||
}else{
|
||||
} else {
|
||||
queryContrailByLineId.first()
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -33,10 +33,12 @@ object ContraiDb : IDbRepository {
|
||||
if(queryContrailByMd5.isNullOrEmpty()){// 没有值或者值有变化
|
||||
val needUpdate = contrailDao.queryContrailByLineIdOne(it.lineId!!)
|
||||
it.md5 = md5Hex
|
||||
if(needUpdate!=null){
|
||||
if(needUpdate!=null){// 更新
|
||||
it.id = needUpdate.id
|
||||
contrailDao.update(it.csvFileUrl?:"",it.csvFileMd5?:"",it.txtFileUrl?:"",it.txtFileMd5?:"",System.currentTimeMillis(),md5Hex,needUpdate.id)
|
||||
}else{// 插入新的
|
||||
contrailDao.insert(it)
|
||||
}
|
||||
contrailDao.insert(it)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.mogo.och.weaknet.repository.db.repository
|
||||
|
||||
import androidx.room.Transaction
|
||||
import com.mogo.och.common.module.biz.login.LoginStatusManager
|
||||
import com.mogo.och.common.module.manager.cache.OchSPManager
|
||||
import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager
|
||||
@@ -147,8 +148,11 @@ object EventDb: IDbRepository {
|
||||
return queryLastDataByWaritData.first()
|
||||
}
|
||||
|
||||
@Transaction
|
||||
fun saveUpdateSuccess(waitUpdateEvent: List<EventDataBean>) {
|
||||
eventDataDao?.insert(*waitUpdateEvent.toTypedArray())
|
||||
waitUpdateEvent.forEach {
|
||||
eventDataDao?.updateUpdateSatus(it.id,it.updateStatus)
|
||||
}
|
||||
}
|
||||
|
||||
fun deleteObsoleteData() {
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.mogo.och.weaknet.repository.db.repository
|
||||
|
||||
import androidx.room.Transaction
|
||||
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.IDbRepository
|
||||
@@ -37,11 +38,13 @@ object LineDb: IDbRepository {
|
||||
|
||||
fun checkAndUpdate(serverDatalist:List<LineDataBean>){
|
||||
val runable = object :Runnable{
|
||||
@Transaction
|
||||
override fun run() {
|
||||
// 校验数据个数
|
||||
lineDao?.let { lineDao->
|
||||
val loadData = lineDao.loadData()
|
||||
if(loadData.isNullOrEmpty()){
|
||||
// 插入新的值
|
||||
lineDao.insert(*serverDatalist.toTypedArray())
|
||||
// TODO: Ui展示需要动态刷新UI去
|
||||
return
|
||||
@@ -97,13 +100,18 @@ object LineDb: IDbRepository {
|
||||
needUpDate.add(it)
|
||||
}
|
||||
}else{
|
||||
// 站点多了 需要删除
|
||||
needDelete.add(lineBean)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
lineDao.delete(*needDelete.toTypedArray())
|
||||
lineDao.insert(*needUpDate.toTypedArray())
|
||||
|
||||
needUpDate.forEach { updateItem->
|
||||
// 跟新数据
|
||||
lineDao.updateInfo(updateItem.lineName,updateItem.endStationName,updateItem.id)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.mogo.och.weaknet.repository.db.repository
|
||||
|
||||
import androidx.room.Transaction
|
||||
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
|
||||
@@ -27,10 +28,12 @@ object SiteDb: IDbRepository {
|
||||
|
||||
fun addOrUpdate(serverDataList: List<SiteDataBean>) {
|
||||
val runnable = object :Runnable {
|
||||
@Transaction
|
||||
override fun run() {
|
||||
siteDataDao?.let { siteDataDao ->
|
||||
val localAllSites = siteDataDao.queryAllSites()
|
||||
if (localAllSites.isNullOrEmpty()) {
|
||||
// 插入新数据
|
||||
siteDataDao.insert(*serverDataList.toTypedArray())
|
||||
return
|
||||
}
|
||||
@@ -46,6 +49,7 @@ object SiteDb: IDbRepository {
|
||||
val md5Hex = DigestUtils.md5Hex(md5Source)
|
||||
it.md5 = md5Hex
|
||||
}
|
||||
// 新增插入新数据
|
||||
siteDataDao.insert(*needAddDatas.toTypedArray())
|
||||
}
|
||||
|
||||
@@ -86,7 +90,11 @@ object SiteDb: IDbRepository {
|
||||
}
|
||||
}
|
||||
}
|
||||
siteDataDao.insert(*needUpDate.toTypedArray())
|
||||
needUpDate.forEach {updateDateItem->
|
||||
siteDataDao.updateInfo(updateDateItem.siteId,updateDateItem.lineId,updateDateItem.name,updateDateItem.nameKr,
|
||||
updateDateItem.seq,updateDateItem.gcjLon,updateDateItem.gcjLat,updateDateItem.lon,updateDateItem.lat,
|
||||
updateDateItem.introduction,updateDateItem.isPlayTts,updateDateItem.md5,updateDateItem.videoListDB,updateDateItem.id)
|
||||
}
|
||||
siteDataDao.deleteById(*needDelete.toTypedArray())
|
||||
checkData()
|
||||
}
|
||||
|
||||
@@ -32,6 +32,7 @@ object TaskDb : IDbRepository {
|
||||
}
|
||||
|
||||
fun addOrUpdate(vararg lineDataBean: TaskDataBean){
|
||||
// 从接口恢复数据
|
||||
taskDataDao?.insert(*lineDataBean)
|
||||
}
|
||||
|
||||
@@ -99,7 +100,7 @@ object TaskDb : IDbRepository {
|
||||
it.startTime = System.currentTimeMillis()
|
||||
it.status = TaskDataBean.useing
|
||||
// 更新任务状态
|
||||
taskDataDao?.insert(it)
|
||||
taskDataDao?.updateStatus(System.currentTimeMillis(),TaskDataBean.useing,it.id)
|
||||
OchChainLogManager.writeChainLogDb("开始任务", "变更线路:${lineId}_${lineName}_task:${taskId} 为正在使用的状态")
|
||||
}
|
||||
CallerLogger.d(TAG,"更新任务状态用时:${System.currentTimeMillis()-startTime}")
|
||||
@@ -115,7 +116,7 @@ object TaskDb : IDbRepository {
|
||||
it.startTime = null
|
||||
it.status = TaskDataBean.unUse
|
||||
// 更新任务状态
|
||||
taskDataDao?.insert(it)
|
||||
taskDataDao?.updateStatus(System.currentTimeMillis(),TaskDataBean.unUse,it.id)
|
||||
OchChainLogManager.writeChainLogDb("开始任务", "异常情况${lineId}_${lineName}_task:${taskId} 为未使用的状态 原因:${e.message}")
|
||||
}
|
||||
}
|
||||
|
||||
@@ -223,6 +223,9 @@ class WriteOffCacheRepository : IWriteOffRepository {
|
||||
?.observeOn(AndroidSchedulers.mainThread())
|
||||
}
|
||||
|
||||
/**
|
||||
* 小程序核销的乘客插入到计算核销人数的包中
|
||||
*/
|
||||
override fun writeOffEvent4Socket(passenger: WriteOffPassenger) {
|
||||
val addWrite = WriteOffDataBean()
|
||||
//addWrite.expiryTime = it.expiryTime
|
||||
|
||||
Reference in New Issue
Block a user