From 21003a1a8ce7bd7a0cfe2bc59094027b3a0854e3 Mon Sep 17 00:00:00 2001 From: yangyakun Date: Tue, 19 Nov 2024 19:08:13 +0800 Subject: [PATCH] =?UTF-8?q?[6.8.0]=20[fea]=20[=E6=A0=B8=E9=94=80=E6=AC=A1?= =?UTF-8?q?=E6=95=B0=E6=A0=A1=E9=AA=8C]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../manager/socket/lan/bean/DataBean.kt | 30 ++++++------ .../com/mogo/och/weaknet/model/TicketModel.kt | 3 +- .../repository/db/dao/WriteOffDataDao.kt | 2 +- .../repository/db/repository/WriteOffDb.kt | 7 +-- .../writeoff/impl/WriteOffCacheRepository.kt | 47 ++++++++++--------- 5 files changed, 44 insertions(+), 45 deletions(-) diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/socket/lan/bean/DataBean.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/socket/lan/bean/DataBean.kt index 2c2582aa48..e23793e500 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/socket/lan/bean/DataBean.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/socket/lan/bean/DataBean.kt @@ -71,21 +71,21 @@ data class WriteOffMsg( ) : BaseDPMsg(DPMsgType.TYPE_WRITEOFF_INFO.type) data class WriteOffDetialMsg( - val code:Int, - val msg:String?, - val expiryTime: Long?=null, - val bookingTime: Long?=null, - val lineId: Long?=null, - val availableTimes: Int?=null,//剩余票数 - val orderNo: String?=null, - val uid: String?=null, - val phone: String?=null, - val ticketSize: Int?=null, - val ticketName: String?=null, - val typeBiz: String?=null, - val pipe:String?=null, - val startStationId:Long?=null, - val tenantId:Long?=null + val code:Int, // 0 乘客端参加校验成功 给司机屏 3001 乘客屏校验失败 + val msg:String?,// code 非0时具体错误信息 + val expiryTime: Long?=null, // 二维码有效期 + val bookingTime: Long?=null,// 预定时间 + val lineId: Long?=null, // 线路id + val availableTimes: Int?=null,//总票数 + val orderNo: String?=null, // 订单Id + val uid: String?=null,// 服务器端唯一码 + val phone: String?=null,// 手机号码 + val ticketSize: Int?=null,// 票上几个人 + val ticketName: String?=null,// 票的名称 + val typeBiz: String?=null,//bus shuttle + val pipe:String?=null,// 渠道ehsafety mogogosafety + val startStationId:Long?=null,// 开始站点名称 + val tenantId:Long?=null// 租户id ) : BaseDPMsg(DPMsgType.TYPE_WRITEOFF_INFO_DETAIL.type) diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/TicketModel.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/TicketModel.kt index fe0e48ebd2..db16aab5bc 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/TicketModel.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/TicketModel.kt @@ -193,10 +193,9 @@ object TicketModel { 1009 -> sendMessage2Driver("车票所选乘车日期非今日", phone,1009) 1005 -> sendMessage2Driver("车辆未登录、或没有任务", phone,1005) 1006 -> sendMessage2Driver("车票路线信息与当前车辆执行任务的路线信息不符合", phone,1006) - 1008 -> sendMessage2Driver("车票剩余可用次数为0", phone,1008) + 1008 -> sendMessage2Driver("车票剩余可用次数为0", phone,99) 6001 -> sendMessage2Driver("二维码已过期", phone,6001) 1012 -> sendMessage2Driver("当前用户下单路线非当前的车辆所属公司", phone,1012) - 99 -> sendMessage2Driver("已核验、请勿重新核验", phone,99) else -> { try { val tempcode=msg.toInt() diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/dao/WriteOffDataDao.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/dao/WriteOffDataDao.kt index 07907fb002..7a3a566aa6 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/dao/WriteOffDataDao.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/dao/WriteOffDataDao.kt @@ -19,7 +19,7 @@ interface WriteOffDataDao { @Delete fun delete(vararg eventDataBean: WriteOffDataBean) - @Query("SELECT * FROM ${WriteOffDataBean.writeoffDataTable} WHERE event_save_time > :zeroTime and order_no = :orderNo") + @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? @Query("SELECT * FROM ${WriteOffDataBean.writeoffDataTable} WHERE event_save_time > :zeroTime and task_id = :taskId and update_status = ${WriteOffDataBean.notUpdate}") diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/WriteOffDb.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/WriteOffDb.kt index f49abf8bb7..6bcf688869 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/WriteOffDb.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/WriteOffDb.kt @@ -28,12 +28,9 @@ object WriteOffDb: IDbRepository { } - fun queryWaitUpdateEventCount(orderNo:String): WriteOffDataBean?{ + fun queryWaitUpdateEventCount(orderNo:String): List? { val queryWriteOffByOrderNo = writeOffDataDao?.queryWriteOffByOrderNo(orderNo = orderNo) - if(!queryWriteOffByOrderNo.isNullOrEmpty()){ - return queryWriteOffByOrderNo.last() - } - return null + return queryWriteOffByOrderNo } fun queryWaitUpdateEvent(): List? { diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/writeoff/impl/WriteOffCacheRepository.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/writeoff/impl/WriteOffCacheRepository.kt index 9eb7b7ecaf..8b928b8699 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/writeoff/impl/WriteOffCacheRepository.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/writeoff/impl/WriteOffCacheRepository.kt @@ -129,33 +129,36 @@ class WriteOffCacheRepository : IWriteOffRepository { }else{ throw DataException(1006,"车票路线信息与当前车辆执行任务的路线信息不符合") } - - if(AppIdentityModeUtils.isShuttle(FunctionBuildConfig.appIdentityMode)) { + if (!it.orderNo.isNullOrEmpty()) { + val lastWriteOff = WriteOffDb.queryWaitUpdateEventCount(it.orderNo!!) // 7、校验次数 - if((it.availableTimes?:0)<=0){ - throw DataException(1008,"车票剩余可用次数为0") + if ((it.availableTimes ?: 0) >= (lastWriteOff?.size ?: 0)) { + throw DataException(1008, "车票剩余可用次数为0") } - // 8、同一个订单2分钟内只能核销一次 - if (!it.orderNo.isNullOrEmpty()) { - val lastWriteOff = WriteOffDb.queryWaitUpdateEventCount(it.orderNo!!) - if(lastWriteOff!=null){ - if(System.currentTimeMillis()-lastWriteOff.eventSaveTime<=120_000){ - throw DataException(6002,"同一订单核销间隔时间需大于2分钟") + if (AppIdentityModeUtils.isShuttle(FunctionBuildConfig.appIdentityMode)) { + // 8、同一个订单2分钟内只能核销一次 + if (lastWriteOff != null && lastWriteOff.size > 0) { + if (System.currentTimeMillis() - lastWriteOff.last().eventSaveTime <= 120_000) { + throw DataException(6002, "同一订单核销间隔时间需大于2分钟") } } - }else{ - throw DataException(11000,"缺少orderNo") - } - val (start, _) = LineManager.getStations() - siteId = start?.siteId?.toLong()?:0 - }else if(AppIdentityModeUtils.isBus(FunctionBuildConfig.appIdentityMode)) { - // 7、校验起始站点 - val (start, _) = LineManager.getStations() - if(start?.siteId?.toLong()==it.startStationId){ - siteId = it.startStationId - }else{ - throw DataException(1006,"车票站点信息与当前车辆执行任务的站点信息不符合") + + val (start, _) = LineManager.getStations() + siteId = start?.siteId?.toLong() ?: 0 + } else if (AppIdentityModeUtils.isBus(FunctionBuildConfig.appIdentityMode)) { + // 8、校验起始站点 + val (start, _) = LineManager.getStations() + if (start?.siteId?.toLong() == it.startStationId) { + siteId = it.startStationId + } else { + throw DataException( + 1006, + "车票站点信息与当前车辆执行任务的站点信息不符合" + ) + } } + } else { + throw DataException(11000, "缺少orderNo") } val addWrite = WriteOffDataBean()