From 7a3e44294be3de47acba2351ffefac7d40127119 Mon Sep 17 00:00:00 2001 From: yangyakun Date: Wed, 24 Jan 2024 15:43:39 +0800 Subject: [PATCH] =?UTF-8?q?[5.2.9]=20[charter=5Fp]=20[200m=20=E6=92=AD?= =?UTF-8?q?=E6=94=BE=E7=AB=99=E7=82=B9=E4=BB=8B=E7=BB=8D]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bean/response/SiteInfoResponse.kt | 1 + .../constant/CharterPassengerConst.kt | 2 +- .../passenger/model/CharterPassengerModel.kt | 70 +++++++++++++++++-- 3 files changed, 67 insertions(+), 6 deletions(-) diff --git a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/bean/response/SiteInfoResponse.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/bean/response/SiteInfoResponse.kt index 51e39a0a2d..1498c49eb1 100644 --- a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/bean/response/SiteInfoResponse.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/bean/response/SiteInfoResponse.kt @@ -17,6 +17,7 @@ data class SiteInfoResponse(val data: List?) : BaseData(){ val Wgs84Lat: Double?,//高精坐标 val GcjLon: Double?,//高德坐标 val GcjLat: Double?,//高德坐标 + val introduction: String?,//站点介绍 val seq: Double?, val type: Int?, var isNear:Boolean=false, diff --git a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/constant/CharterPassengerConst.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/constant/CharterPassengerConst.kt index 6578f4ef4a..686e4af11d 100644 --- a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/constant/CharterPassengerConst.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/constant/CharterPassengerConst.kt @@ -23,7 +23,7 @@ class CharterPassengerConst { // 到达起始点围栏 const val ARRIVE_AT_START_STATION_DISTANCE = 15 //围栏由20m改为50m 再次改为15m - const val ARRIVE_SOON_AT_START_STATION_DISTANCE = 100 //100米提示 + const val ARRIVE_SOON_AT_START_STATION_DISTANCE = 50 //100米提示 const val ARRIVE_DISTANCE_4_STATION_INTRODUCE = 200 //站点介绍 const val MIN_DISTANCE_STATION = 30 //站点选择小于30m 不能选 diff --git a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/model/CharterPassengerModel.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/model/CharterPassengerModel.kt index db603f25a4..558143a2d8 100644 --- a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/model/CharterPassengerModel.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/model/CharterPassengerModel.kt @@ -111,7 +111,8 @@ object CharterPassengerModel { // 到站仅一次 private val endKey = "arrivedLine" private val endKeyRequestIng = "arrivedLineRequestIng" - private val ending100Key = "arrivingLine" + private val ending50Key = "arrivingLine" + private val ending200Key = "palyStationInfo" private val min5Speak = "min5Speak" private var carTypeChageListener: IOrderChangeCallback? = null @@ -421,9 +422,13 @@ object CharterPassengerModel { checkArriveDesk(currentInfo) } if (calculateLineDistance < CharterPassengerConst.ARRIVE_SOON_AT_START_STATION_DISTANCE && calculateLineDistance > 0) { - d(M_BUS_P + TAG, "小于100米到站") + d(M_BUS_P + TAG, "小于50米到站") arriveDestSoon() } + if (calculateLineDistance < CharterPassengerConst.ARRIVE_DISTANCE_4_STATION_INTRODUCE && calculateLineDistance > 0) { + d(M_BUS_P + TAG, "小于200米到站") + playSiteInfomation() + } } } // 启动时间校准 @@ -713,8 +718,14 @@ object CharterPassengerModel { M_BUS_P + "calculateDistance", "最终信息:lastSumLength: ${lastSumLength}lastTime : $lastTime thread = ${Thread.currentThread().name}" ) + + if (lastSumLength < CharterPassengerConst.ARRIVE_DISTANCE_4_STATION_INTRODUCE && lastSumLength > 0) { + d(M_BUS_P + TAG, "小于200米到站") + playSiteInfomation() + } + if (lastSumLength < CharterPassengerConst.ARRIVE_SOON_AT_START_STATION_DISTANCE && lastSumLength > 0) { - d(M_BUS_P + TAG, "小于100米到站2") + d(M_BUS_P + TAG, "小于50米到站2") arriveDestSoon() } if (lastSumLength < CharterPassengerConst.ARRIVE_AT_START_STATION_DISTANCE && lastSumLength > 0) { @@ -1018,16 +1029,65 @@ object CharterPassengerModel { return Triple(null, null, null) } + @Synchronized + fun playSiteInfomation() { + orderInfo?.let { order -> + order.lineId?.let { lineId -> + order.siteId?.let { siteId -> + if (order.arriveStatus == OrderInfoResponse.ARRIVING) { + if (isSuccess("${siteId}$ending200Key")) { + broadcastList["${siteId}$ending50Key"] = true + getSiteInfo2Play(lineId,siteId,1) + } + } + } + } + } + } + + private fun getSiteInfo2Play(lineId: Long, siteId: Long, size: Int) { + if(size>3){ + return + } + BusPassengerServiceManager.queryLineSiteList(mContext,"$lineId",object :OchCommonServiceCallback{ + override fun onSuccess(data: SiteInfoResponse?) { + data?.data?.forEach { + if (it.siteId==siteId) { + if (!StringUtils.isEmpty(it.introduction)) { + VoiceNotice.showNotice(it.introduction) + } + return + } + } + } + + override fun onFail(code: Int, msg: String?) { + getSiteInfo2Play(lineId,siteId,size+1) + } + + override fun onError() { + super.onError() + getSiteInfo2Play(lineId,siteId,size+1) + } + + override fun onError(msg: String?) { + super.onError(msg) + getSiteInfo2Play(lineId,siteId,size+1) + } + + }) + } + @Synchronized fun arriveDestSoon() { orderInfo?.let { order -> order.siteId?.let { siteId -> if (order.arriveStatus == OrderInfoResponse.ARRIVING) { - if (isSuccess("${siteId}$ending100Key")) { + if (isSuccess("${siteId}$ending50Key")) { val string = mContext.getString(R.string.charter_p_arrived_station_left_100, order.siteName) VoiceNotice.showNotice(string) - broadcastList["${siteId}$ending100Key"] = true + broadcastList["${siteId}$ending50Key"] = true } } }