[删除过期数据]
This commit is contained in:
yangyakun
2024-08-26 15:09:42 +08:00
parent 8902fcc18a
commit 093cb75fa5
12 changed files with 115 additions and 8 deletions

View File

@@ -2,7 +2,7 @@
"formatVersion": 1,
"database": {
"version": 1,
"identityHash": "da53315ef85c8d9609891e105a315a62",
"identityHash": "1fb2dea0f72d7abf11cbb9928b9572c3",
"entities": [
{
"tableName": "contrail_data_table",
@@ -339,7 +339,7 @@
},
{
"tableName": "used_task_data_table",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `task_id` INTEGER, `line_id` INTEGER, `site_id` INTEGER, `line_name` TEXT, `name` TEXT, `name_kr` TEXT, `seq` INTEGER, `gcj_lon` REAL, `gcj_lat` REAL, `lon` REAL, `lat` REAL, `driving_status` INTEGER, `leaving` INTEGER, `arrived_time` INTEGER, `leave_time` INTEGER, `introduction` TEXT, `is_play_tts` INTEGER)",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `task_id` INTEGER, `line_id` INTEGER, `site_id` INTEGER, `line_name` TEXT, `name` TEXT, `name_kr` TEXT, `seq` INTEGER, `gcj_lon` REAL, `gcj_lat` REAL, `lon` REAL, `lat` REAL, `driving_status` INTEGER, `leaving` INTEGER, `arrived_time` INTEGER, `leave_time` INTEGER, `introduction` TEXT, `is_play_tts` INTEGER, `event_save_time` INTEGER NOT NULL)",
"fields": [
{
"fieldPath": "id",
@@ -448,6 +448,12 @@
"columnName": "is_play_tts",
"affinity": "INTEGER",
"notNull": false
},
{
"fieldPath": "eventSaveTime",
"columnName": "event_save_time",
"affinity": "INTEGER",
"notNull": true
}
],
"primaryKey": {
@@ -569,7 +575,7 @@
"views": [],
"setupQueries": [
"CREATE TABLE IF NOT EXISTS room_master_table (id INTEGER PRIMARY KEY,identity_hash TEXT)",
"INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, 'da53315ef85c8d9609891e105a315a62')"
"INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, '1fb2dea0f72d7abf11cbb9928b9572c3')"
]
}
}

View File

@@ -5,9 +5,14 @@ import androidx.fragment.app.Fragment
import com.alibaba.android.arouter.facade.annotation.Route
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
import com.mogo.eagle.core.utilcode.util.ThreadUtils
import com.mogo.och.weaknet.fragment.ShuttleFragment
import com.mogo.och.common.module.constant.OchCommonConst
import com.mogo.och.common.module.biz.provider.CommonServiceImpl
import com.mogo.och.weaknet.database.repository.EventRepository
import com.mogo.och.weaknet.database.repository.LineRepository
import com.mogo.och.weaknet.database.repository.TaskRepository
import com.mogo.och.weaknet.database.repository.TaskSiteRepository
import com.mogo.och.weaknet.model.BusLineModel
/**
@@ -19,14 +24,20 @@ import com.mogo.och.weaknet.model.BusLineModel
class ShuttleDriverProvider : CommonServiceImpl() {
private val TAG = ShuttleDriverProvider::class.java.simpleName
private var busFragment: ShuttleFragment?=null
private var busFragment: ShuttleFragment? = null
override fun init(context: Context) {
d(SceneConstant.M_TAXI + TAG, "init")
ThreadUtils.getIoPool().submit {
LineRepository.deleteObsoleteData()
TaskRepository.deleteObsoleteData()
TaskSiteRepository.deleteObsoleteData()
EventRepository.deleteObsoleteData()
}
}
override fun getFragment(): Fragment {
if(busFragment==null){
if (busFragment == null) {
busFragment = ShuttleFragment()
}
BusLineModel.init();

View File

@@ -111,7 +111,15 @@ data class TaskSiteDataBean(
@ColumnInfo(name = "is_play_tts", typeAffinity = ColumnInfo.INTEGER)
var isPlayTts: Boolean? = null,
) {
/**
* 任务保存到数据库的时间 用来第二天删除前几天的任务
*/
@ColumnInfo(name = "event_save_time", typeAffinity = ColumnInfo.INTEGER)
var eventSaveTime: Long = System.currentTimeMillis(),
) {
companion object {
/**
* 开始任务 并把第一站置为 2 当前站

View File

@@ -6,6 +6,7 @@ import androidx.room.Insert
import androidx.room.OnConflictStrategy
import androidx.room.Query
import com.mogo.och.common.module.utils.DateTimeUtil
import com.mogo.och.weaknet.database.bean.ContrailDataBean
import com.mogo.och.weaknet.database.bean.EventDataBean
import com.mogo.och.weaknet.database.bean.LineDataBean
@@ -20,6 +21,10 @@ interface EventDataDao {
@Delete
fun delete(vararg eventDataBean: EventDataBean)
// 删除过时数据
@Query("DELETE FROM ${EventDataBean.evnetDataTable} WHERE event_save_time < :zeroTime")
fun deleteObsoleteData(zeroTime: Long = DateTimeUtil.getCurrentDateZero()):Int
@Query("SELECT * FROM ${EventDataBean.evnetDataTable} WHERE update_status = ${EventDataBean.notUpdate} LIMIT 10 OFFSET 0")
fun queryEventByStatusWithPage():List<EventDataBean>?

View File

@@ -19,6 +19,11 @@ interface LineDataDao {
@Delete
fun delete(vararg lineDataBean: LineDataBean)
// 删除过时数据
@Query("DELETE FROM ${LineDataBean.lineDataTable} WHERE line_get_time < :zeroTime")
fun deleteObsoleteData(zeroTime: Long = DateTimeUtil.getCurrentDateZero()):Int
//删除非昨天添加的数据
@Query("DELETE FROM ${LineDataBean.lineDataTable} WHERE line_get_time < :zeroTime")
fun deleteWeltData(zeroTime: Long = DateTimeUtil.getCurrentDateZero()): Int

View File

@@ -52,6 +52,11 @@ interface TaskDataDao {
@Query("SELECT * FROM ${TaskDataBean.taskDataTable} WHERE task_id = :taskId")
fun queryContrailByLineId(taskId:Long): List<TaskDataBean>?
// 删除过时数据
@Query("DELETE FROM ${TaskDataBean.taskDataTable} WHERE task_get_time < :zeroTime")
fun deleteObsoleteData(zeroTime: Long = DateTimeUtil.getCurrentDateZero()):Int
//查询线路对应的轨迹信息 只要一个结果
fun queryTaskByTaskIdOne(taskId: Long): TaskDataBean?{

View File

@@ -4,6 +4,7 @@ import androidx.room.Dao
import androidx.room.Insert
import androidx.room.OnConflictStrategy
import androidx.room.Query
import com.mogo.och.common.module.utils.DateTimeUtil
import com.mogo.och.weaknet.database.bean.TaskSiteDataBean
@Dao
@@ -25,4 +26,8 @@ interface TaskSiteDataDao {
@Query("UPDATE ${TaskSiteDataBean.usedTaskDataTable} SET driving_status = :drivingStatusCurrent WHERE task_id = :taskId and site_id = :siteId")
fun updateDrivingStatus(taskId: Long, siteId: Long, drivingStatusCurrent: Int)
// 删除过时数据
@Query("DELETE FROM ${TaskSiteDataBean.usedTaskDataTable} WHERE event_save_time < :zeroTime")
fun deleteObsoleteData(zeroTime: Long = DateTimeUtil.getCurrentDateZero()):Int
}

View File

@@ -1,5 +1,6 @@
package com.mogo.och.weaknet.database.repository
import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager
import com.mogo.och.common.module.utils.DateTimeUtil
import com.mogo.och.weaknet.database.MyDataBase
import com.mogo.och.weaknet.database.bean.EventDataBean
@@ -79,6 +80,12 @@ object EventRepository {
eventDataDao?.insert(*waitUpdateEvent.toTypedArray())
}
fun deleteObsoleteData(){
eventDataDao?.deleteObsoleteData()?.let {
OchChainLogManager.writeChainLogDb("删除临时数据","Event删除数量:${it}")
}
}
interface EventCallback {
fun notifySyn()
}

View File

@@ -1,5 +1,6 @@
package com.mogo.och.weaknet.database.repository
import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager
import com.mogo.och.weaknet.database.MyDataBase
import com.mogo.och.weaknet.database.bean.LineDataBean
import com.mogo.och.weaknet.database.dao.LineDataDao
@@ -72,4 +73,11 @@ object LineRepository {
DbThreadUtils.runInIoThread(runable)
}
fun deleteObsoleteData(){
lineDao?.deleteObsoleteData()?.let {
OchChainLogManager.writeChainLogDb("删除临时数据","Line删除数量:${it}")
}
}
}

View File

@@ -1,6 +1,7 @@
package com.mogo.och.weaknet.database.repository
import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager
import com.mogo.och.weaknet.database.MyDataBase
import com.mogo.och.weaknet.database.bean.TaskDataBean
import com.mogo.och.weaknet.database.dao.TaskDataDao
@@ -109,6 +110,13 @@ object TaskRepository {
}
}
fun deleteObsoleteData(){
taskDataDao?.deleteObsoleteData()?.let {
OchChainLogManager.writeChainLogDb("删除临时数据","Task删除数量:${it}")
}
}
interface TaskStatusCallback{
fun startSuccess()

View File

@@ -1,5 +1,6 @@
package com.mogo.och.weaknet.database.repository
import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager
import com.mogo.och.weaknet.database.MyDataBase
import com.mogo.och.weaknet.database.bean.TaskSiteDataBean
import com.mogo.och.weaknet.database.dao.TaskSiteDataDao
@@ -64,4 +65,11 @@ object TaskSiteRepository {
return taskSiteDataDao?.queryRunningTask(taskId)
}
fun deleteObsoleteData(){
taskSiteDataDao?.deleteObsoleteData()?.let {
OchChainLogManager.writeChainLogDb("删除临时数据","rurnning Task删除数量:${it}")
}
}
}

View File

@@ -145,6 +145,7 @@ object BusLineModel {
override fun onError() {
isRequesting.set(false)
BizLoopManager.postDelayed(loopQueryInfo,60_000)
if(!isBackground){
if (!NetworkUtils.isConnected(mContext)) {
ToastUtils.showShort(ResourcesUtils.getString(R.string.network_error_tip));
@@ -152,11 +153,11 @@ object BusLineModel {
ToastUtils.showShort(ResourcesUtils.getString(R.string.request_error_tip));
}
}
BizLoopManager.postDelayed(loopQueryInfo,60_000)
}
override fun onFail(code: Int, failMsg: String) {
isRequesting.set(false)
BizLoopManager.postDelayed(loopQueryInfo,60_000)
if(!isBackground){
if (!NetworkUtils.isConnected(mContext)) {
ToastUtils.showShort("网络异常,请稍后重试");
@@ -164,7 +165,7 @@ object BusLineModel {
ToastUtils.showShort(failMsg);
}
}
BizLoopManager.postDelayed(loopQueryInfo,60_000)
}
})
}
@@ -266,6 +267,8 @@ object BusLineModel {
if (runningTaskInfo.isNullOrEmpty()) {
// 本地没有进行中的任务
// todo: 尝试加载远程数据
CallerLogger.d(TAG,"没有查询到正在运行的任务")
loadServerRuningTask()
} else if (runningTaskInfo.size > 1) {
// 本地有多条正在进行的任务 需要check event
// TODO:1 比对event表 1 清理错误数据 2 加载后台数据
@@ -292,6 +295,34 @@ object BusLineModel {
}
}
private fun loadServerRuningTask() {
mContext?.let {
OrderServiceManager.queryBusRoutes(it,object :OchCommonServiceCallback<BusRoutesResponse>{
override fun onSuccess(data: BusRoutesResponse?) {
data?.result?.let {
it.sites
}
}
override fun onError() {
if (!NetworkUtils.isConnected(mContext)) {
ToastUtils.showShort(ResourcesUtils.getString(R.string.network_error_tip));
} else {
ToastUtils.showShort(ResourcesUtils.getString(R.string.request_error_tip));
}
}
override fun onFail(code: Int, msg: String?) {
if (!NetworkUtils.isConnected(mContext)) {
ToastUtils.showShort("网络异常,请稍后重试");
}else {
ToastUtils.showShort(msg);
}
}
})
}
}
// 滑动出发
fun leaveStation(){
//开始站点: leaving false->true