[6.8.0]
[fea] [核销次数查询和展示]
This commit is contained in:
@@ -68,13 +68,13 @@ object TicketModel {
|
||||
if(passenger==null||passenger.passengerSize==0){
|
||||
return
|
||||
}
|
||||
RepositoryManager.saveWriteOff4Socket(passenger)
|
||||
writeOffSuccess(
|
||||
passenger.passengerSize,
|
||||
passenger.phone ?: "",
|
||||
passenger.ticketName?:"",
|
||||
0
|
||||
)
|
||||
TODO("服务器端核销需要在本地报备一下 用于计算数据")
|
||||
}
|
||||
}
|
||||
|
||||
@@ -110,29 +110,42 @@ object TicketModel {
|
||||
private fun selectWriteOffCount(){
|
||||
LineManager.getStations().first?.let { firstStation->
|
||||
LineModel.currentTask?.let { currentTask->
|
||||
RepositoryManager.queryWriteoffCount(
|
||||
val queryWriteoffCount = RepositoryManager.queryWriteoffCount(
|
||||
AbsMogoApplication.getApp(),
|
||||
currentTask.taskId?:0L,
|
||||
firstStation.siteId.toLong(),
|
||||
object : OchCommonServiceCallback<WriteOffCountResponse> {
|
||||
override fun onSuccess(data: WriteOffCountResponse?) {
|
||||
data?.let {
|
||||
val count = if(it.data==null){
|
||||
0
|
||||
}else{
|
||||
it.data
|
||||
}
|
||||
emitterMain?.onNext(Pair<Int,Int>(firstStation.siteId,count))
|
||||
d(SceneConstant.M_BUS + TAG, "${firstStation.name}核销人数:${count}")
|
||||
OchChainLogManager.writeChainLog("核销人数","任务:${currentTask.taskId} zhan'dian")
|
||||
currentTask.taskId ?: 0L,
|
||||
firstStation.siteId.toLong()
|
||||
)
|
||||
if(queryWriteoffCount!=null){
|
||||
queryWriteoffCount.subscribe(
|
||||
object : Observer<Int> {
|
||||
override fun onSubscribe(d: Disposable) {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
override fun onFail(code: Int, msg: String?) {
|
||||
override fun onError(e: Throwable) {
|
||||
|
||||
}
|
||||
|
||||
override fun onComplete() {
|
||||
|
||||
}
|
||||
|
||||
override fun onNext(count: Int) {
|
||||
emitterMain?.onNext(Pair<Int, Int>(firstStation.siteId, count))
|
||||
d(
|
||||
SceneConstant.M_BUS + TAG,
|
||||
"${firstStation.name}核销人数:${count}"
|
||||
)
|
||||
OchChainLogManager.writeChainLog(
|
||||
"核销人数",
|
||||
"任务:${currentTask.taskId} zhan'dian"
|
||||
)
|
||||
}
|
||||
|
||||
}
|
||||
})
|
||||
return
|
||||
)
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -7,12 +7,13 @@ import com.mogo.eagle.core.data.BaseData
|
||||
import com.mogo.eagle.core.data.config.FunctionBuildConfig
|
||||
import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
|
||||
import com.mogo.och.common.module.manager.loop.BizLoopManager
|
||||
import com.mogo.och.common.module.manager.socket.lan.bean.WriteOffDetialMsg
|
||||
import com.mogo.och.common.module.network.OchCommonServiceCallback
|
||||
import com.mogo.och.weaknet.bean.WaitUploadLine
|
||||
import com.mogo.och.weaknet.bean.WriteOffPassenger
|
||||
import com.mogo.och.weaknet.bean.request.ShuttleEventRequest
|
||||
import com.mogo.och.weaknet.bean.response.CarExecutableTaskResponse
|
||||
import com.mogo.och.weaknet.bean.response.WriteOffCountResponse
|
||||
import com.mogo.och.weaknet.repository.db.MyDataBase
|
||||
import com.mogo.och.weaknet.repository.db.bean.LineDataBean
|
||||
import com.mogo.och.weaknet.repository.db.bean.TaskDataBean
|
||||
@@ -179,8 +180,8 @@ object RepositoryManager {
|
||||
}
|
||||
}
|
||||
|
||||
fun queryWriteoffCount(context: Context, taskId: Long, siteId: Long, callback: OchCommonServiceCallback<WriteOffCountResponse>?){
|
||||
writeOffRepository?.queryWriteoffCount(context,taskId,siteId,callback)
|
||||
fun queryWriteoffCount(context: Context, taskId: Long, siteId: Long): Observable<Int>? {
|
||||
return writeOffRepository?.queryWriteoffCount(context,taskId,siteId)
|
||||
}
|
||||
|
||||
fun writeOff(writeOffDetialMsg: WriteOffDetialMsg): Observable<PassengerWriteOffResponse.Result>? {
|
||||
@@ -196,6 +197,15 @@ object RepositoryManager {
|
||||
return writeOffRepository?.canCanEndTask(taskId)?:true
|
||||
}
|
||||
|
||||
/**
|
||||
* 安全员小程序核销成功的用户计数用
|
||||
*/
|
||||
fun saveWriteOff4Socket(passenger: WriteOffPassenger) {
|
||||
BizLoopManager.runInIoThread{
|
||||
writeOffRepository?.writeOffEvent4Socket(passenger)
|
||||
}
|
||||
}
|
||||
|
||||
fun closeDb() {
|
||||
if (supportDb()) {
|
||||
MyDataBase.instance?.close()
|
||||
|
||||
@@ -19,6 +19,11 @@ interface WriteOffDataDao {
|
||||
@Delete
|
||||
fun delete(vararg eventDataBean: WriteOffDataBean)
|
||||
|
||||
// 删除过时数据
|
||||
@Query("DELETE FROM ${WriteOffDataBean.writeoffDataTable} WHERE event_save_time < :zeroTime")
|
||||
fun deleteObsoleteData(zeroTime: Long = DateTimeUtil.getCurrentDateZero()):Int
|
||||
|
||||
|
||||
@Query("SELECT * FROM ${WriteOffDataBean.writeoffDataTable} WHERE event_save_time > :zeroTime and order_no = :orderNo order by event_save_time")
|
||||
fun queryWriteOffByOrderNo(zeroTime: Long = DateTimeUtil.getCurrentDateZero(),orderNo:String): List<WriteOffDataBean>?
|
||||
|
||||
@@ -28,5 +33,8 @@ interface WriteOffDataDao {
|
||||
@Query("SELECT * FROM ${WriteOffDataBean.writeoffDataTable} WHERE update_status = ${WriteOffDataBean.notUpdate} LIMIT 10 OFFSET 0")
|
||||
fun queryWriteOffEventByStatusWithPage():List<WriteOffDataBean>?
|
||||
|
||||
@Query("SELECT * FROM ${WriteOffDataBean.writeoffDataTable} WHERE event_save_time > :zeroTime and task_id = :taskId and site_id = :siteId")
|
||||
fun queryWriteOffByTaskAndSiteId(taskId: Long, siteId: Long,zeroTime: Long = DateTimeUtil.getCurrentDateZero()):List<WriteOffDataBean>?
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.mogo.och.weaknet.repository.db.repository
|
||||
|
||||
import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager
|
||||
import com.mogo.och.weaknet.model.EventModel
|
||||
import com.mogo.och.weaknet.repository.db.IDbRepository
|
||||
import com.mogo.och.weaknet.repository.db.MyDataBase
|
||||
@@ -50,5 +51,15 @@ object WriteOffDb: IDbRepository {
|
||||
return queryWriteOffByOrderNo?.size?:0
|
||||
}
|
||||
|
||||
fun queryWriteOffByTaskAndSiteId(taskId: Long, siteId: Long): List<WriteOffDataBean>? {
|
||||
return writeOffDataDao?.queryWriteOffByTaskAndSiteId(taskId,siteId)
|
||||
}
|
||||
|
||||
fun deleteObsoleteData() {
|
||||
writeOffDataDao?.deleteObsoleteData()?.let {
|
||||
OchChainLogManager.writeChainLogDb("删除临时数据", "WriteOff删除数量:${it}")
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -47,22 +47,6 @@ object SaasBusServiceManager: NetInterface {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 只发生在大理和saas环境 查询当前站点核销的人数
|
||||
*/
|
||||
override fun writeOffCount(context: Context?, taskId: Long?, siteId: Long?): Observable<Int> {
|
||||
return mService.writeOffCount(
|
||||
MoGoAiCloudClientConfig.getInstance().serviceAppId,
|
||||
SharedPrefsMgr.getInstance().token,
|
||||
WriteOffCountReqBean(OchSPManager.getSn()?:"",taskId?:0, siteId?:0,)
|
||||
)
|
||||
.transformIoTry()
|
||||
.flatMap(OchCommonNet("saas shuttle writeOffCount",false))
|
||||
.flatMap {
|
||||
Observable.just(it.data?:0)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 同步 线路、站点、任务、自驾轨迹信息
|
||||
*/
|
||||
|
||||
@@ -4,13 +4,14 @@ import android.content.Context
|
||||
import com.mogo.och.common.module.manager.socket.lan.bean.WriteOffDetialMsg
|
||||
import com.mogo.och.common.module.network.OchCommonServiceCallback
|
||||
import com.mogo.och.weaknet.bean.WaitUploadLine
|
||||
import com.mogo.och.weaknet.bean.WriteOffPassenger
|
||||
import com.mogo.och.weaknet.bean.response.WriteOffCountResponse
|
||||
import com.mogo.och.weaknet.repository.net.bean.response.PassengerWriteOffResponse
|
||||
import io.reactivex.Observable
|
||||
|
||||
interface IWriteOffRepository {
|
||||
|
||||
fun queryWriteoffCount(context: Context, taskId: Long, siteId: Long, callback: OchCommonServiceCallback<WriteOffCountResponse>?): Observable<Int>?
|
||||
fun queryWriteoffCount(context: Context, taskId: Long, siteId: Long): Observable<Int>?
|
||||
|
||||
fun writeOffEvent(writeOffDetialMsg: WriteOffDetialMsg): Observable<PassengerWriteOffResponse.Result>?
|
||||
|
||||
@@ -21,5 +22,8 @@ interface IWriteOffRepository {
|
||||
}
|
||||
|
||||
fun queryWaitUploadData(): Observable<MutableList<WaitUploadLine>>?
|
||||
fun writeOffEvent4Socket(passenger: WriteOffPassenger) {
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -11,11 +11,10 @@ import com.mogo.och.common.module.biz.login.LoginStatusManager
|
||||
import com.mogo.och.common.module.manager.autopilot.line.LineManager
|
||||
import com.mogo.och.common.module.manager.cache.OchSPManager
|
||||
import com.mogo.och.common.module.manager.socket.lan.bean.WriteOffDetialMsg
|
||||
import com.mogo.och.common.module.network.OchCommonServiceCallback
|
||||
import com.mogo.och.common.module.utils.DateTimeUtil
|
||||
import com.mogo.och.weaknet.bean.WaitUploadLine
|
||||
import com.mogo.och.weaknet.bean.WaitUploadTask
|
||||
import com.mogo.och.weaknet.bean.response.WriteOffCountResponse
|
||||
import com.mogo.och.weaknet.bean.WriteOffPassenger
|
||||
import com.mogo.och.weaknet.model.LineModel
|
||||
import com.mogo.och.weaknet.repository.db.bean.WriteOffDataBean
|
||||
import com.mogo.och.weaknet.repository.db.repository.EventDb
|
||||
@@ -64,10 +63,13 @@ class WriteOffCacheRepository : IWriteOffRepository {
|
||||
override fun queryWriteoffCount(
|
||||
context: Context,
|
||||
taskId: Long,
|
||||
siteId: Long,
|
||||
callback: OchCommonServiceCallback<WriteOffCountResponse>?
|
||||
siteId: Long
|
||||
): Observable<Int>? {
|
||||
TODO("本地计算核销数量 数据来源有两个地方 1、本地数据库计算 + 2、服务器核销")
|
||||
val queryWriteOffByTaskAndSiteId = WriteOffDb.queryWriteOffByTaskAndSiteId(taskId, siteId)
|
||||
return Observable.just(queryWriteOffByTaskAndSiteId)
|
||||
.flatMap {
|
||||
return@flatMap Observable.just(it?.size ?:0)
|
||||
}
|
||||
}
|
||||
|
||||
override fun writeOffEvent(writeOffDetialMsg: WriteOffDetialMsg): Observable<PassengerWriteOffResponse.Result>? {
|
||||
@@ -212,6 +214,29 @@ class WriteOffCacheRepository : IWriteOffRepository {
|
||||
?.observeOn(AndroidSchedulers.mainThread())
|
||||
}
|
||||
|
||||
override fun writeOffEvent4Socket(passenger: WriteOffPassenger) {
|
||||
val addWrite = WriteOffDataBean()
|
||||
//addWrite.expiryTime = it.expiryTime
|
||||
//addWrite.bookingTime = it.bookingTime
|
||||
//addWrite.type = it.type
|
||||
addWrite.taskId = LineModel.currentTask?.taskId
|
||||
LineManager.getStationsWithLine { start, end, lineInfo ->
|
||||
addWrite.siteId = start.siteId.toLong()
|
||||
addWrite.lineId = lineInfo.lineId
|
||||
}
|
||||
//addWrite.availableTimes = it.availableTimes
|
||||
addWrite.orderNo = passenger.orderNo
|
||||
//addWrite.uid = it.uid
|
||||
addWrite.phone = passenger.phone
|
||||
addWrite.ticketSize = passenger.passengerSize
|
||||
addWrite.ticketName = passenger.ticketName
|
||||
//addWrite.msgId = OchSPManager.getSn()+System.currentTimeMillis()
|
||||
addWrite.driverId = LoginStatusManager.getLoginInfo()?.driverId?:0
|
||||
//addWrite.businessTime = System.currentTimeMillis()
|
||||
addWrite.updateStatus = WriteOffDataBean.updated
|
||||
WriteOffDb.addOrUpdate(addWrite)
|
||||
}
|
||||
|
||||
override fun release() {
|
||||
weakNetInterface = null
|
||||
CallerLogger.d(TAG,"重置 weakNetInterface")
|
||||
|
||||
@@ -62,7 +62,6 @@ class WriteOffNormallRepository: IWriteOffRepository {
|
||||
context: Context,
|
||||
taskId: Long,
|
||||
siteId: Long,
|
||||
callback: OchCommonServiceCallback<WriteOffCountResponse>?
|
||||
): Observable<Int>? {
|
||||
return normalNetInterface?.writeOffCount(context,taskId,siteId)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user