[6.8.0]
[fea] [核销]
This commit is contained in:
@@ -71,16 +71,18 @@ data class WriteOffMsg(
|
||||
) : BaseDPMsg(DPMsgType.TYPE_WRITEOFF_INFO.type)
|
||||
|
||||
data class WriteOffDetialMsg(
|
||||
val expiryTime: Long?,
|
||||
val bookingTime: Long?,
|
||||
val businessType: Int?,
|
||||
val lineId: Long?,
|
||||
val remainingTimes: Int?,
|
||||
val orderNo: String?,
|
||||
val uid: String?,
|
||||
val phone: String?,
|
||||
val ticketSize: String?,
|
||||
val ticketName: String?,
|
||||
val code:Int,
|
||||
val msg:String?,
|
||||
val expiryTime: Long?=null,
|
||||
val bookingTime: Long?=null,
|
||||
val businessType: Int?=null,
|
||||
val lineId: Long?=null,
|
||||
val remainingTimes: Int?=null,
|
||||
val orderNo: String?=null,
|
||||
val uid: String?=null,
|
||||
val phone: String?=null,
|
||||
val ticketSize: String?=null,
|
||||
val ticketName: String?=null,
|
||||
) : BaseDPMsg(DPMsgType.TYPE_WRITEOFF_INFO_DETAIL.type)
|
||||
|
||||
data class WriteOffDevicesMsg(
|
||||
|
||||
@@ -2,15 +2,16 @@ package com.mogo.och.weaknet.model
|
||||
|
||||
import com.elegant.network.utils.GsonUtil
|
||||
import com.mogo.commons.AbsMogoApplication
|
||||
import com.mogo.commons.env.ProjectUtils
|
||||
import com.mogo.eagle.core.data.enums.EventTypeEnumNew
|
||||
import com.mogo.eagle.core.data.msgbox.MsgBoxBean
|
||||
import com.mogo.eagle.core.data.msgbox.MsgBoxType
|
||||
import com.mogo.eagle.core.data.msgbox.V2XMsg
|
||||
import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxManager.saveMsgBox
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.i
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_BUS_P
|
||||
import com.mogo.och.common.module.manager.autopilot.line.LineManager
|
||||
import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager
|
||||
import com.mogo.och.common.module.manager.loop.BizLoopManager
|
||||
@@ -20,16 +21,22 @@ import com.mogo.och.common.module.manager.socket.cloud.OCHSocketMessageManager
|
||||
import com.mogo.och.common.module.manager.socket.lan.ILanMessageListener
|
||||
import com.mogo.och.common.module.manager.socket.lan.LanSocketManager
|
||||
import com.mogo.och.common.module.manager.socket.lan.bean.DPMsgType
|
||||
import com.mogo.och.common.module.manager.socket.lan.bean.WriteOffDetialMsg
|
||||
import com.mogo.och.common.module.manager.socket.lan.bean.WriteOffDevicesMsg
|
||||
import com.mogo.och.common.module.manager.socket.lan.bean.WriteOffMsg
|
||||
import com.mogo.och.common.module.network.OchCommonServiceCallback
|
||||
import com.mogo.och.weaknet.bean.response.WriteOffCountResponse
|
||||
import com.mogo.och.weaknet.bean.WriteOffPassenger
|
||||
import com.mogo.och.weaknet.repository.RepositoryManager
|
||||
import com.mogo.och.weaknet.repository.exception.DataException
|
||||
import com.mogo.och.weaknet.repository.net.bean.response.PassengerWriteOffResponse
|
||||
import com.mogo.och.weaknet.util.ShuttleVoiceManager
|
||||
import io.reactivex.Observable
|
||||
import io.reactivex.ObservableEmitter
|
||||
import io.reactivex.ObservableOnSubscribe
|
||||
import io.reactivex.Observer
|
||||
import io.reactivex.android.schedulers.AndroidSchedulers
|
||||
import io.reactivex.disposables.Disposable
|
||||
import io.reactivex.schedulers.Schedulers
|
||||
|
||||
object TicketModel : IOchOnMessageListener<WriteOffPassenger>{
|
||||
@@ -42,26 +49,27 @@ object TicketModel : IOchOnMessageListener<WriteOffPassenger>{
|
||||
|
||||
private val observable = Observable.create(ObservableOnSubscribe<Pair<Int,Int>> { emitter -> emitterMain = emitter })
|
||||
|
||||
private val writeOffMsg = object : ILanMessageListener<WriteOffMsg> {
|
||||
override fun targetLan(): Class<WriteOffMsg> = WriteOffMsg::class.java
|
||||
override fun onLanMsgReceived(obj: WriteOffMsg?) = receiveWrteOffInfo(obj)
|
||||
}
|
||||
|
||||
private val writeOfDevicefMsg = object : ILanMessageListener<WriteOffDevicesMsg> {
|
||||
override fun targetLan(): Class<WriteOffDevicesMsg> = WriteOffDevicesMsg::class.java
|
||||
override fun onLanMsgReceived(obj: WriteOffDevicesMsg?) = receiveWrteOffDevicesInfo(obj)
|
||||
}
|
||||
|
||||
private val writeOfDevicefDetialMsg = object : ILanMessageListener<WriteOffDetialMsg> {
|
||||
override fun targetLan(): Class<WriteOffDetialMsg> = WriteOffDetialMsg::class.java
|
||||
override fun onLanMsgReceived(obj: WriteOffDetialMsg?) = receiveWrteOffDefailtInfo(obj)
|
||||
}
|
||||
|
||||
|
||||
fun load(){
|
||||
// 3s轮训站点核销人数
|
||||
if(RepositoryManager.supportWriteOff()) {
|
||||
// 3s轮训站点核销人数 人数本地核销 直接计算就好
|
||||
if (RepositoryManager.supportWriteOff() && RepositoryManager.supportWriteOffDb()) {
|
||||
BizLoopManager.setLoopFunction(
|
||||
SELECTWRITEOFFCOUNT,
|
||||
LoopInfo(3, TicketModel::selectWriteOffCount, scheduler = Schedulers.io())
|
||||
)
|
||||
}
|
||||
// 核销信息
|
||||
LanSocketManager.registerSocketMessageListener(DPMsgType.TYPE_WRITEOFF_INFO.type,writeOffMsg)
|
||||
LanSocketManager.registerSocketMessageListener(DPMsgType.TYPE_WRITEOFF_INFO_DETAIL.type,writeOfDevicefDetialMsg)
|
||||
// 核销设备信息
|
||||
LanSocketManager.registerSocketMessageListener(DPMsgType.TYPE_WRITEOFF_DEVICES_INFO.type,writeOfDevicefMsg)
|
||||
//监听核销乘客
|
||||
@@ -72,7 +80,7 @@ object TicketModel : IOchOnMessageListener<WriteOffPassenger>{
|
||||
if(RepositoryManager.supportWriteOff()) {
|
||||
BizLoopManager.removeLoopFunction(SELECTWRITEOFFCOUNT)
|
||||
}
|
||||
LanSocketManager.unRegisterSocketMessageListener(DPMsgType.TYPE_WRITEOFF_INFO.type,writeOffMsg)
|
||||
LanSocketManager.unRegisterSocketMessageListener(DPMsgType.TYPE_WRITEOFF_INFO_DETAIL.type,writeOfDevicefDetialMsg)
|
||||
LanSocketManager.unRegisterSocketMessageListener(DPMsgType.TYPE_WRITEOFF_DEVICES_INFO.type,writeOfDevicefMsg)
|
||||
OCHSocketMessageManager.releaseSocketMessageListener(OCHSocketMessageManager.msgWriteOffPassengerType)
|
||||
}
|
||||
@@ -92,8 +100,8 @@ object TicketModel : IOchOnMessageListener<WriteOffPassenger>{
|
||||
passenger.passengerSize,
|
||||
passenger.phone ?: "",
|
||||
passenger.ticketName?:"",
|
||||
passenger.orderNo?:""
|
||||
)
|
||||
TODO("服务器端核销需要在本地报备一下 用于计算数据")
|
||||
selectWriteOffCount()
|
||||
}
|
||||
|
||||
@@ -172,12 +180,167 @@ object TicketModel : IOchOnMessageListener<WriteOffPassenger>{
|
||||
}
|
||||
}
|
||||
}
|
||||
private fun receiveWrteOffDefailtInfo(writeOffDetialMsg: WriteOffDetialMsg?) {
|
||||
writeOffDetialMsg?.let {
|
||||
if(writeOffDetialMsg.code!=0){
|
||||
sendMessage2Driver(
|
||||
writeOffDetialMsg.msg?:"",
|
||||
writeOffDetialMsg.phone ?: ""
|
||||
)
|
||||
}else {
|
||||
RepositoryManager.writeOff(writeOffDetialMsg)
|
||||
?.subscribeOn(Schedulers.io())
|
||||
?.observeOn(AndroidSchedulers.mainThread())
|
||||
?.subscribe(object : Observer<PassengerWriteOffResponse.Result?> {
|
||||
override fun onSubscribe(d: Disposable) {
|
||||
d(TAG, "receiveWrteOffDefailtInfo onSubscribe")
|
||||
}
|
||||
|
||||
private fun receiveWrteOffDevicesInfo(writeOffMsg: WriteOffDevicesMsg?) {
|
||||
writeOffMsg?.let {
|
||||
if (writeOffMsg.isConnectScanner != null) {
|
||||
val reason = if (writeOffMsg.reason == null) "" else writeOffMsg.reason!!
|
||||
if (writeOffMsg.isConnectScanner==true) { // 链接成功
|
||||
override fun onError(e: Throwable) {
|
||||
d(TAG, "receiveWrteOffDefailtInfo onError${e.printStackTrace()}")
|
||||
if (e is DataException) {
|
||||
CallerLogger.d(M_BUS_P + TAG, "核销失败 ${e.code}-----${e.msg}")
|
||||
when (e.code) {
|
||||
6002 -> {
|
||||
sendMessage2Driver(
|
||||
"同一订单核销间隔时间需大于2分钟",
|
||||
writeOffDetialMsg.phone ?: ""
|
||||
)
|
||||
}
|
||||
|
||||
1009 -> {
|
||||
sendMessage2Driver(
|
||||
"车票所选乘车日期非今日",
|
||||
writeOffDetialMsg.phone ?: ""
|
||||
)
|
||||
}
|
||||
|
||||
1005 -> {
|
||||
sendMessage2Driver(
|
||||
"车辆未登录、或没有任务",
|
||||
writeOffDetialMsg.phone ?: ""
|
||||
)
|
||||
}
|
||||
|
||||
1006 -> {
|
||||
sendMessage2Driver(
|
||||
"车票路线信息与当前车辆执行任务的路线信息不符合",
|
||||
writeOffDetialMsg.phone ?: ""
|
||||
)
|
||||
}
|
||||
|
||||
1008 -> {
|
||||
sendMessage2Driver(
|
||||
"车票剩余可用次数为0",
|
||||
writeOffDetialMsg.phone ?: ""
|
||||
)
|
||||
}
|
||||
|
||||
6001 -> {
|
||||
sendMessage2Driver(
|
||||
"二维码已过期",
|
||||
writeOffDetialMsg.phone ?: ""
|
||||
)
|
||||
}
|
||||
|
||||
1012 -> {
|
||||
sendMessage2Driver(
|
||||
"当前用户下单路线非当前的车辆所属公司",
|
||||
writeOffDetialMsg.phone ?: ""
|
||||
)
|
||||
}
|
||||
|
||||
else -> {
|
||||
when (e.msg) {
|
||||
"6002" -> {
|
||||
sendMessage2Driver(
|
||||
"同一订单核销间隔时间需大于2分钟",
|
||||
writeOffDetialMsg.phone ?: ""
|
||||
)
|
||||
}
|
||||
|
||||
"1009" -> {
|
||||
sendMessage2Driver(
|
||||
"车票所选乘车日期非今日",
|
||||
writeOffDetialMsg.phone ?: ""
|
||||
)
|
||||
}
|
||||
|
||||
"1005" -> {
|
||||
sendMessage2Driver(
|
||||
"车辆未登录、或没有任务",
|
||||
writeOffDetialMsg.phone ?: ""
|
||||
)
|
||||
}
|
||||
|
||||
"1006" -> {
|
||||
sendMessage2Driver(
|
||||
"车票路线信息与当前车辆执行任务的路线信息不符合",
|
||||
writeOffDetialMsg.phone ?: ""
|
||||
)
|
||||
}
|
||||
|
||||
"1008" -> {
|
||||
sendMessage2Driver(
|
||||
"车票剩余可用次数为0",
|
||||
writeOffDetialMsg.phone ?: ""
|
||||
)
|
||||
}
|
||||
|
||||
"6001" -> {
|
||||
sendMessage2Driver(
|
||||
"二维码已过期",
|
||||
writeOffDetialMsg.phone ?: ""
|
||||
)
|
||||
}
|
||||
|
||||
"1012" -> {
|
||||
sendMessage2Driver(
|
||||
"当前用户下单路线非当前的车辆所属公司",
|
||||
writeOffDetialMsg.phone ?: ""
|
||||
)
|
||||
}
|
||||
|
||||
else -> {
|
||||
sendMessage2Driver(
|
||||
e.msg,
|
||||
writeOffDetialMsg.phone ?: ""
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
override fun onComplete() {
|
||||
d(TAG, "receiveWrteOffDefailtInfo onComplete")
|
||||
}
|
||||
|
||||
override fun onNext(data: PassengerWriteOffResponse.Result) {
|
||||
d(TAG, "queryBusLines onNext ${data}")
|
||||
selectWriteOffCount()
|
||||
playPassenger(
|
||||
data.ticketSize ?: 0,
|
||||
data.phone ?: "",
|
||||
data.ticketName ?: ""
|
||||
)
|
||||
}
|
||||
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
private fun sendMessage2Driver(message:String,phone:String){
|
||||
val msg = WriteOffMsg(false, phone, 0, "", "验票失败,${message}","")
|
||||
receiveWrteOffInfo(msg)
|
||||
}
|
||||
|
||||
private fun receiveWrteOffDevicesInfo(writeOffDevicesMsg: WriteOffDevicesMsg?) {
|
||||
writeOffDevicesMsg?.let {
|
||||
if (writeOffDevicesMsg.isConnectScanner != null) {
|
||||
val reason = if (writeOffDevicesMsg.reason == null) "" else writeOffDevicesMsg.reason!!
|
||||
if (writeOffDevicesMsg.isConnectScanner==true) { // 链接成功
|
||||
saveMsgBox(
|
||||
MsgBoxBean(
|
||||
MsgBoxType.V2X,
|
||||
@@ -206,7 +369,7 @@ object TicketModel : IOchOnMessageListener<WriteOffPassenger>{
|
||||
}
|
||||
}
|
||||
|
||||
private fun playPassenger(ticketSize: Int,phone:String,ticketName:String,orderNo:String) {
|
||||
private fun playPassenger(ticketSize: Int,phone:String,ticketName:String) {
|
||||
|
||||
ShuttleVoiceManager.writeOffCount(ticketSize)
|
||||
|
||||
|
||||
@@ -7,6 +7,7 @@ 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.socket.lan.bean.WriteOffDetialMsg
|
||||
import com.mogo.och.common.module.network.OchCommonServiceCallback
|
||||
import com.mogo.och.weaknet.bean.request.ShuttleEventRequest
|
||||
import com.mogo.och.weaknet.bean.response.CarExecutableTaskResponse
|
||||
@@ -18,6 +19,7 @@ import com.mogo.och.weaknet.repository.db.repository.EventDb
|
||||
import com.mogo.och.weaknet.repository.line.ILineRepository
|
||||
import com.mogo.och.weaknet.repository.line.impl.NormalRepository
|
||||
import com.mogo.och.weaknet.repository.line.impl.WeaknetRepository
|
||||
import com.mogo.och.weaknet.repository.net.bean.response.PassengerWriteOffResponse
|
||||
import com.mogo.och.weaknet.repository.writeoff.IWriteOffRepository
|
||||
import com.mogo.och.weaknet.repository.writeoff.impl.WriteOffCacheRepository
|
||||
import com.mogo.och.weaknet.repository.writeoff.impl.WriteOffNormallRepository
|
||||
@@ -151,6 +153,12 @@ object RepositoryManager {
|
||||
}
|
||||
return false
|
||||
}
|
||||
fun supportWriteOffDb():Boolean{
|
||||
if(supportWriteOff()){
|
||||
return ProjectUtils.isSaas()
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
fun queryCarExecutableTaskList(
|
||||
ochCommonServiceCallback: OchCommonServiceCallback<CarExecutableTaskResponse>
|
||||
@@ -170,8 +178,8 @@ object RepositoryManager {
|
||||
}
|
||||
}
|
||||
|
||||
fun writeOff(){
|
||||
writeOffRepository?.writeOffEvent()
|
||||
fun writeOff(writeOffDetialMsg: WriteOffDetialMsg): Observable<PassengerWriteOffResponse.Result>? {
|
||||
return writeOffRepository?.writeOffEvent(writeOffDetialMsg)
|
||||
}
|
||||
|
||||
fun closeDb() {
|
||||
|
||||
@@ -1,8 +1,14 @@
|
||||
package com.mogo.och.weaknet.repository.exception
|
||||
|
||||
class DataException: RuntimeException {
|
||||
var code:Int = 0
|
||||
var msg:String = ""
|
||||
constructor() : super()
|
||||
constructor(code:Int,message: String?) : super("${code}_${message}")
|
||||
constructor(code:Int, message: String) : super("${code}_${message}"){
|
||||
this.code = code
|
||||
this.msg = message
|
||||
}
|
||||
|
||||
companion object{
|
||||
val startTaskErrorCode = 10010
|
||||
}
|
||||
|
||||
@@ -6,10 +6,11 @@ import com.mogo.och.common.module.network.OchCommonServiceCallback;
|
||||
import com.mogo.och.data.bean.BusRoutesResult;
|
||||
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.eagle.core.data.BaseData;
|
||||
import com.mogo.och.weaknet.repository.db.bean.LineDataBean;
|
||||
import com.mogo.och.weaknet.repository.db.bean.TaskDataBean;
|
||||
import com.mogo.och.weaknet.repository.net.bean.request.PassengerWriteOffRequest;
|
||||
import com.mogo.och.weaknet.repository.net.bean.response.PassengerWriteOffResponse;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
@@ -47,7 +48,14 @@ public interface NetInterface {
|
||||
return Observable.just(new BusRoutesResult());
|
||||
}
|
||||
|
||||
default void writeOffCount(Context context , Long taskId, Long siteId, OchCommonServiceCallback<WriteOffCountResponse> callback){}
|
||||
default Observable<Integer> writeOffCount(Context context , Long taskId, Long siteId){
|
||||
return Observable.just(0);
|
||||
}
|
||||
|
||||
default Observable<PassengerWriteOffResponse.Result> writeOffTicket(Context context,
|
||||
PassengerWriteOffRequest ticketInfo){
|
||||
return Observable.just(new PassengerWriteOffResponse.Result("",0,"",0L));
|
||||
}
|
||||
|
||||
default void queryCarExecutableTaskList(Context context , OchCommonServiceCallback<CarExecutableTaskResponse> callback){}
|
||||
|
||||
|
||||
@@ -6,6 +6,7 @@ import com.mogo.commons.storage.SharedPrefsMgr
|
||||
import com.mogo.eagle.core.data.BaseData
|
||||
import com.mogo.eagle.core.network.MoGoRetrofitFactory
|
||||
import com.mogo.och.common.module.constant.OchCommonConst
|
||||
import com.mogo.och.common.module.manager.cache.OchSPManager
|
||||
import com.mogo.och.common.module.network.OchCommonNet
|
||||
import com.mogo.och.common.module.network.OchCommonServiceCallback
|
||||
import com.mogo.och.common.module.network.OchCommonSubscribeImpl
|
||||
@@ -14,56 +15,53 @@ import com.mogo.och.data.bean.BusRoutesResult
|
||||
import com.mogo.och.weaknet.bean.request.BusQueryLineStationsRequest
|
||||
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.net.NetInterface
|
||||
import com.mogo.och.weaknet.repository.net.bean.request.PassengerWriteOffRequest
|
||||
import com.mogo.och.weaknet.repository.net.bean.response.PassengerWriteOffResponse
|
||||
import io.reactivex.Observable
|
||||
|
||||
/**
|
||||
* @author: wangmingjun
|
||||
* @date: 2021/10/20
|
||||
*/
|
||||
object DaliShuttleServiceManager: NetInterface {
|
||||
object DaliShuttleServiceManager : NetInterface {
|
||||
|
||||
private val mService: IDaliShuttleApiService = MoGoRetrofitFactory.getInstance(OchCommonConst.getShuttleUrl()).create(
|
||||
IDaliShuttleApiService::class.java
|
||||
)
|
||||
private val mService: IDaliShuttleApiService =
|
||||
MoGoRetrofitFactory.getInstance(OchCommonConst.getShuttleUrl()).create(
|
||||
IDaliShuttleApiService::class.java
|
||||
)
|
||||
|
||||
|
||||
/**
|
||||
* 查询小巴车当前任务
|
||||
* @param context
|
||||
* @param callback
|
||||
*/
|
||||
override fun queryBusRoutes(): Observable<BusRoutesResult?>? {
|
||||
//获取当前高德坐标
|
||||
return mService.queryBusRoutes(
|
||||
return mService.queryBusRoutes(
|
||||
MoGoAiCloudClientConfig.getInstance().serviceAppId,
|
||||
SharedPrefsMgr.getInstance().token,
|
||||
BusQueryLineStationsRequest()
|
||||
) .transformIoTry()
|
||||
.flatMap(OchCommonNet("saas shuttle queryBusRoutes",false))
|
||||
).transformIoTry()
|
||||
.flatMap(OchCommonNet("saas shuttle queryBusRoutes", false))
|
||||
.flatMap {
|
||||
Observable.just(it.data?:BusRoutesResult())
|
||||
Observable.just(it.data ?: BusRoutesResult())
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 只发生在大理和saas环境 查询当前站点核销的人数
|
||||
*/
|
||||
override fun writeOffCount(
|
||||
context: Context,
|
||||
taskId: Long?,
|
||||
siteId: Long?,
|
||||
callback: OchCommonServiceCallback<WriteOffCountResponse>?
|
||||
) {
|
||||
mService.writeOffCount(
|
||||
override fun writeOffCount(context: Context?, taskId: Long?, siteId: Long?): Observable<Int> {
|
||||
return mService.writeOffCount(
|
||||
MoGoAiCloudClientConfig.getInstance().serviceAppId,
|
||||
SharedPrefsMgr.getInstance().token,
|
||||
taskId?.toString(),
|
||||
siteId?.toString()
|
||||
)
|
||||
.transformIoTry()
|
||||
.subscribe(OchCommonSubscribeImpl(context, callback, "writeOffCount"))
|
||||
.flatMap(OchCommonNet("saas shuttle writeOffCount", false))
|
||||
.flatMap {
|
||||
Observable.just(it.data ?: 0)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -98,5 +96,22 @@ object DaliShuttleServiceManager: NetInterface {
|
||||
.subscribe(OchCommonSubscribeImpl(context, callback, "reportCabinEvent"))
|
||||
}
|
||||
|
||||
override fun writeOffTicket(
|
||||
context: Context,
|
||||
ticketInfo: PassengerWriteOffRequest,
|
||||
): Observable<PassengerWriteOffResponse.Result?>? {
|
||||
ticketInfo.sn = OchSPManager.getSn()
|
||||
return mService.daliwriteOffTicket(
|
||||
MoGoAiCloudClientConfig.getInstance().serviceAppId,
|
||||
SharedPrefsMgr.getInstance().token,
|
||||
ticketInfo
|
||||
)
|
||||
.transformIoTry()
|
||||
.flatMap(OchCommonNet("dali shuttle writeOffCount",false))
|
||||
.flatMap {
|
||||
Observable.just(it.data)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -14,7 +14,6 @@ import com.mogo.och.common.module.network.interceptor.transformIoTry
|
||||
import com.mogo.och.data.bean.BusRoutesResult
|
||||
import com.mogo.och.weaknet.bean.response.CarExecutableTaskResponse
|
||||
import com.mogo.och.weaknet.bean.request.ShuttleEventRequest
|
||||
import com.mogo.och.weaknet.bean.response.WriteOffCountResponse
|
||||
import com.mogo.och.weaknet.repository.net.bean.request.WriteOffCountReqBean
|
||||
import com.mogo.och.weaknet.repository.net.NetInterface
|
||||
import io.reactivex.Observable
|
||||
@@ -51,24 +50,17 @@ object SaasBusServiceManager: NetInterface {
|
||||
/**
|
||||
* 只发生在大理和saas环境 查询当前站点核销的人数
|
||||
*/
|
||||
override fun writeOffCount(
|
||||
context: Context,
|
||||
taskId: Long,
|
||||
siteId: Long,
|
||||
callback: OchCommonServiceCallback<WriteOffCountResponse>?
|
||||
) {
|
||||
OchSPManager.getSn()?.let {
|
||||
mService.writeOffCount(
|
||||
MoGoAiCloudClientConfig.getInstance().serviceAppId,
|
||||
SharedPrefsMgr.getInstance().token,
|
||||
WriteOffCountReqBean(it,taskId,
|
||||
siteId,
|
||||
)
|
||||
)
|
||||
.transformIoTry()
|
||||
.subscribe(OchCommonSubscribeImpl(context, callback, "writeOffCount"))
|
||||
}
|
||||
|
||||
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)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -15,8 +15,6 @@ import com.mogo.och.data.bean.BusRoutesResult
|
||||
import com.mogo.och.weaknet.bean.request.BusQueryLineStationsRequest
|
||||
import com.mogo.och.weaknet.bean.response.CarExecutableTaskResponse
|
||||
import com.mogo.och.weaknet.bean.request.ShuttleEventRequest
|
||||
import com.mogo.och.weaknet.bean.response.WriteOffCountResponse
|
||||
import com.mogo.och.weaknet.repository.net.bean.request.WriteOffCountReqBean
|
||||
import com.mogo.och.weaknet.repository.net.NetInterface
|
||||
import io.reactivex.Observable
|
||||
|
||||
@@ -33,8 +31,6 @@ object SaasShuttleServiceManager: NetInterface {
|
||||
|
||||
/**
|
||||
* 查询小巴车当前任务
|
||||
* @param context
|
||||
* @param callback
|
||||
*/
|
||||
override fun queryBusRoutes(): Observable<BusRoutesResult?>? {
|
||||
//获取当前高德坐标
|
||||
@@ -49,29 +45,6 @@ object SaasShuttleServiceManager: NetInterface {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 只发生在大理和saas环境 查询当前站点核销的人数
|
||||
*/
|
||||
override fun writeOffCount(
|
||||
context: Context,
|
||||
taskId: Long,
|
||||
siteId: Long,
|
||||
callback: OchCommonServiceCallback<WriteOffCountResponse>?
|
||||
) {
|
||||
OchSPManager.getSn()?.let {
|
||||
mService.writeOffCount(
|
||||
MoGoAiCloudClientConfig.getInstance().serviceAppId,
|
||||
SharedPrefsMgr.getInstance().token,
|
||||
WriteOffCountReqBean(
|
||||
it, taskId,
|
||||
siteId,
|
||||
)
|
||||
)
|
||||
.transformIoTry()
|
||||
.subscribe(OchCommonSubscribeImpl(context, callback, "writeOffCount"))
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 同步 线路、站点、任务、自驾轨迹信息
|
||||
*/
|
||||
|
||||
@@ -1,14 +1,17 @@
|
||||
package com.mogo.och.weaknet.repository.writeoff
|
||||
|
||||
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.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>?)
|
||||
fun queryWriteoffCount(context: Context, taskId: Long, siteId: Long, callback: OchCommonServiceCallback<WriteOffCountResponse>?): Observable<Int>?
|
||||
|
||||
fun writeOffEvent()
|
||||
fun writeOffEvent(writeOffDetialMsg: WriteOffDetialMsg): Observable<PassengerWriteOffResponse.Result>?
|
||||
|
||||
fun release()
|
||||
|
||||
|
||||
@@ -7,14 +7,16 @@ import com.mogo.commons.env.ProjectUtils
|
||||
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.socket.lan.bean.WriteOffDetialMsg
|
||||
import com.mogo.och.common.module.network.OchCommonServiceCallback
|
||||
import com.mogo.och.weaknet.bean.response.WriteOffCountResponse
|
||||
import com.mogo.och.weaknet.repository.net.exception.NetException
|
||||
import com.mogo.och.weaknet.repository.net.NetInterface
|
||||
import com.mogo.och.weaknet.repository.net.project.dali.shuttle.DaliShuttleServiceManager
|
||||
import com.mogo.och.weaknet.repository.net.bean.response.PassengerWriteOffResponse
|
||||
import com.mogo.och.weaknet.repository.net.project.saas.bus.SaasBusServiceManager
|
||||
import com.mogo.och.weaknet.repository.net.project.saas.shuttle.SaasShuttleServiceManager
|
||||
import com.mogo.och.weaknet.repository.writeoff.IWriteOffRepository
|
||||
import io.reactivex.Observable
|
||||
|
||||
class WriteOffCacheRepository : IWriteOffRepository {
|
||||
private val TAG = "ShuttleSaasRepository"
|
||||
@@ -51,12 +53,12 @@ class WriteOffCacheRepository : IWriteOffRepository {
|
||||
taskId: Long,
|
||||
siteId: Long,
|
||||
callback: OchCommonServiceCallback<WriteOffCountResponse>?
|
||||
) {
|
||||
weakNetInterface?.writeOffCount(context,taskId,siteId,callback)
|
||||
): Observable<Int>? {
|
||||
TODO("本地计算核销数量 数据来源有两个地方 1、本地数据库计算 + 2、服务器核销")
|
||||
}
|
||||
|
||||
override fun writeOffEvent() {
|
||||
|
||||
override fun writeOffEvent(writeOffDetialMsg: WriteOffDetialMsg): Observable<PassengerWriteOffResponse.Result>? {
|
||||
TODO("Not yet implemented")
|
||||
}
|
||||
|
||||
override fun release() {
|
||||
|
||||
@@ -1,20 +1,23 @@
|
||||
package com.mogo.och.weaknet.repository.writeoff.impl
|
||||
|
||||
import android.content.Context
|
||||
import com.mogo.commons.AbsMogoApplication
|
||||
import com.mogo.commons.env.Project
|
||||
import com.mogo.commons.env.ProjectUtils
|
||||
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.socket.lan.bean.WriteOffDetialMsg
|
||||
import com.mogo.och.common.module.network.OchCommonServiceCallback
|
||||
import com.mogo.och.weaknet.bean.response.WriteOffCountResponse
|
||||
import com.mogo.och.weaknet.repository.net.NetInterface
|
||||
import com.mogo.och.weaknet.repository.net.bean.request.PassengerWriteOffRequest
|
||||
import com.mogo.och.weaknet.repository.net.bean.response.PassengerWriteOffResponse
|
||||
import com.mogo.och.weaknet.repository.net.exception.NetException
|
||||
import com.mogo.och.weaknet.repository.net.project.dali.bus.DaliBusServiceManager
|
||||
import com.mogo.och.weaknet.repository.net.project.dali.shuttle.DaliShuttleServiceManager
|
||||
import com.mogo.och.weaknet.repository.net.project.mogo.bus.MogoBusServiceManager
|
||||
import com.mogo.och.weaknet.repository.net.project.mogo.shuttle.MogoShuttleServiceManager
|
||||
import com.mogo.och.weaknet.repository.writeoff.IWriteOffRepository
|
||||
import io.reactivex.Observable
|
||||
|
||||
class WriteOffNormallRepository: IWriteOffRepository {
|
||||
|
||||
@@ -55,12 +58,17 @@ class WriteOffNormallRepository: IWriteOffRepository {
|
||||
taskId: Long,
|
||||
siteId: Long,
|
||||
callback: OchCommonServiceCallback<WriteOffCountResponse>?
|
||||
) {
|
||||
normalNetInterface?.writeOffCount(context,taskId,siteId,callback)
|
||||
): Observable<Int>? {
|
||||
return normalNetInterface?.writeOffCount(context,taskId,siteId)
|
||||
}
|
||||
|
||||
override fun writeOffEvent() {
|
||||
|
||||
override fun writeOffEvent(writeOffDetialMsg: WriteOffDetialMsg): Observable<PassengerWriteOffResponse.Result>? {
|
||||
val passengerWriteOffRequest = PassengerWriteOffRequest(writeOffDetialMsg.orderNo, writeOffDetialMsg.uid)
|
||||
return normalNetInterface?.writeOffTicket(
|
||||
AbsMogoApplication.getApp(),
|
||||
passengerWriteOffRequest,
|
||||
)
|
||||
}
|
||||
|
||||
override fun release() {
|
||||
|
||||
@@ -1,19 +1,13 @@
|
||||
package com.mogo.och.shuttle.weaknet.passenger.model
|
||||
|
||||
import com.mogo.commons.AbsMogoApplication
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_BUS_P
|
||||
import com.mogo.eagle.core.utilcode.util.GsonUtils
|
||||
import com.mogo.eagle.core.utilcode.util.RegexUtils
|
||||
import com.mogo.och.common.module.manager.socket.lan.bean.WriteOffMsg
|
||||
import com.mogo.och.common.module.manager.socket.lan.LanSocketManager
|
||||
import com.mogo.och.common.module.network.OchCommonServiceCallback
|
||||
import com.mogo.och.shuttle.weaknet.passenger.bean.request.PassengerWriteOffRequest
|
||||
import com.mogo.och.shuttle.weaknet.passenger.bean.response.PassengerWriteOffResponse
|
||||
import com.mogo.och.common.module.manager.scnner.ScannerManager
|
||||
import com.mogo.och.common.module.manager.scnner.StateChangeListener
|
||||
import com.mogo.och.common.module.manager.socket.lan.bean.WriteOffDetialMsg
|
||||
import com.mogo.och.shuttle.weaknet.passenger.network.PassengerServiceManager
|
||||
|
||||
object TicketModel : StateChangeListener {
|
||||
|
||||
@@ -46,103 +40,16 @@ object TicketModel : StateChangeListener {
|
||||
phoneNum = phone
|
||||
}
|
||||
}
|
||||
val writeOffDetail = WriteOffDetialMsg(expiryTime as Long,bookingTime as Long,
|
||||
val writeOffDetail = WriteOffDetialMsg(0,"",expiryTime as Long,bookingTime as Long,
|
||||
businessType as Int,lineId as Long,remainingTimes as Int,
|
||||
orderNo,uid,phoneNum,ticketSize as String,ticketName as String)
|
||||
CallerLogger.d(M_BUS_P + TAG, "sendTaskDetailsToClients = " + GsonUtils.toJson(writeOffDetail))
|
||||
LanSocketManager.sendMsgToServer(writeOffDetail)
|
||||
}else{
|
||||
// 通知司机屏二维码错误
|
||||
sendMessage2Driver("参数错误:${payload}","")
|
||||
val writeOffDetail = WriteOffDetialMsg(code = -1, msg = "参数错误:${payload}")
|
||||
CallerLogger.d(M_BUS_P + TAG, "sendTaskDetailsToClients = " + GsonUtils.toJson(writeOffDetail))
|
||||
LanSocketManager.sendMsgToServer(writeOffDetail)
|
||||
}
|
||||
}
|
||||
|
||||
private fun writeOffTicket(orderNo: String, uid: String, phoneNum: String) {
|
||||
val passengerWriteOffRequest = PassengerWriteOffRequest(orderNo, uid)
|
||||
PassengerServiceManager.writeOffTicket(AbsMogoApplication.getApp(),
|
||||
passengerWriteOffRequest,
|
||||
object : OchCommonServiceCallback<PassengerWriteOffResponse> {
|
||||
override fun onSuccess(data: PassengerWriteOffResponse?) {
|
||||
if (data?.data == null) return
|
||||
val ticketInfo =
|
||||
"核销成功:票种名称:${data.data.ticketName},车票数量:${data.data.ticketSize},预留手机号:${data.data.phone},时间:${data.data.remainingTimes}"
|
||||
CallerLogger.d(M_BUS_P + TAG, ticketInfo)
|
||||
sendMessage2DriverSuccess(data.data,orderNo)
|
||||
}
|
||||
|
||||
override fun onFail(code: Int, msg: String?) {
|
||||
CallerLogger.d(M_BUS_P + TAG, "核销失败 ${code}-----${msg}")
|
||||
|
||||
when (code) {
|
||||
6002 -> {
|
||||
sendMessage2Driver("同一订单核销间隔时间需大于2分钟",phoneNum)
|
||||
}
|
||||
1009 -> {
|
||||
sendMessage2Driver("车票所选乘车日期非今日",phoneNum)
|
||||
}
|
||||
1005 -> {
|
||||
sendMessage2Driver("车辆未登录、或没有任务",phoneNum)
|
||||
}
|
||||
1006 -> {
|
||||
sendMessage2Driver("车票路线信息与当前车辆执行任务的路线信息不符合",phoneNum)
|
||||
}
|
||||
1008 -> {
|
||||
sendMessage2Driver("车票剩余可用次数为0",phoneNum)
|
||||
}
|
||||
6001 -> {
|
||||
sendMessage2Driver("二维码已过期",phoneNum)
|
||||
}
|
||||
1012 -> {
|
||||
sendMessage2Driver("当前用户下单路线非当前的车辆所属公司",phoneNum)
|
||||
}
|
||||
else -> {
|
||||
when (msg) {
|
||||
"6002" -> {
|
||||
sendMessage2Driver("同一订单核销间隔时间需大于2分钟",phoneNum)
|
||||
}
|
||||
"1009" -> {
|
||||
sendMessage2Driver("车票所选乘车日期非今日",phoneNum)
|
||||
}
|
||||
"1005" -> {
|
||||
sendMessage2Driver("车辆未登录、或没有任务",phoneNum)
|
||||
}
|
||||
"1006" -> {
|
||||
sendMessage2Driver("车票路线信息与当前车辆执行任务的路线信息不符合",phoneNum)
|
||||
}
|
||||
"1008" -> {
|
||||
sendMessage2Driver("车票剩余可用次数为0",phoneNum)
|
||||
}
|
||||
"6001" -> {
|
||||
sendMessage2Driver("二维码已过期",phoneNum)
|
||||
}
|
||||
"1012" -> {
|
||||
sendMessage2Driver("当前用户下单路线非当前的车辆所属公司",phoneNum)
|
||||
}
|
||||
else -> {
|
||||
sendMessage2Driver(msg?:"",phoneNum)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
override fun onError(message: String) {
|
||||
sendMessage2Driver("网络错误",phoneNum)
|
||||
}
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
private fun sendMessage2Driver(message:String,phone:String){
|
||||
val msg = WriteOffMsg(false, phone, 0, "", "验票失败,${message}","")
|
||||
CallerLogger.d(M_BUS_P + TAG, "sendTaskDetailsToClients = " + GsonUtils.toJson(msg))
|
||||
LanSocketManager.sendMsgToServer(msg)
|
||||
}
|
||||
private fun sendMessage2DriverSuccess(message: PassengerWriteOffResponse.Result, orderNo: String){
|
||||
val msg = WriteOffMsg(true, message.phone, message.ticketSize, message.ticketName, "",orderNo)
|
||||
CallerLogger.d(M_BUS_P + TAG, "sendTaskDetailsToClients = " + GsonUtils.toJson(msg))
|
||||
LanSocketManager.sendMsgToServer(msg)
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -2,22 +2,13 @@ package com.mogo.och.shuttle.weaknet.passenger.network
|
||||
|
||||
import android.content.Context
|
||||
import com.mogo.cloud.passport.MoGoAiCloudClientConfig
|
||||
import com.mogo.commons.env.ProjectUtils
|
||||
import com.mogo.eagle.core.network.MoGoRetrofitFactory
|
||||
import com.mogo.commons.storage.SharedPrefsMgr
|
||||
import com.mogo.eagle.core.utilcode.util.StringUtils
|
||||
import com.mogo.eagle.core.utilcode.util.ToastUtils
|
||||
import com.mogo.och.common.module.biz.lansocket.LoginLanPassengerSocket
|
||||
import com.mogo.och.common.module.constant.OchCommonConst
|
||||
import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager
|
||||
import com.mogo.och.common.module.network.OchCommonServiceCallback
|
||||
import com.mogo.och.common.module.network.OchCommonSubscribeImpl
|
||||
import com.mogo.och.common.module.network.interceptor.transformTry
|
||||
import com.mogo.och.shuttle.weaknet.passenger.bean.request.PassengerQueryLineRequest
|
||||
import com.mogo.och.shuttle.weaknet.passenger.bean.request.PassengerWriteOffRequest
|
||||
import com.mogo.och.shuttle.weaknet.passenger.bean.response.PassengerOperationStatusResponse
|
||||
import com.mogo.och.shuttle.weaknet.passenger.bean.response.PassengerRoutesResponse
|
||||
import com.mogo.och.shuttle.weaknet.passenger.bean.response.PassengerWriteOffResponse
|
||||
import com.mogo.och.shuttle.weaknet.passenger.bean.response.ResponseSiteIntroduce
|
||||
|
||||
/**
|
||||
@@ -32,43 +23,7 @@ object PassengerServiceManager {
|
||||
ServiceApi::class.java)
|
||||
|
||||
/**
|
||||
* 查询司机端出车收车状态,以及车牌号
|
||||
* @param context
|
||||
* @param callback
|
||||
*/
|
||||
@JvmStatic
|
||||
fun writeOffTicket(
|
||||
context: Context,
|
||||
ticketInfo: PassengerWriteOffRequest,
|
||||
callback: OchCommonServiceCallback<PassengerWriteOffResponse>?,
|
||||
) {
|
||||
ticketInfo.sn = LoginLanPassengerSocket.driverSn
|
||||
if(StringUtils.isEmpty(LoginLanPassengerSocket.driverSn)){
|
||||
ToastUtils.showShort("请链接司机屏${ticketInfo.uid}")
|
||||
OchChainLogManager.writeChainLogScanner(TAG +"onError","无司机屏sn请处理")
|
||||
return
|
||||
}
|
||||
if(ProjectUtils.isSaas()) {
|
||||
mShuttleBusPassengerServiceApi.saaswriteOffTicket(
|
||||
MoGoAiCloudClientConfig.getInstance().serviceAppId,
|
||||
SharedPrefsMgr.getInstance().token,
|
||||
ticketInfo
|
||||
)
|
||||
.transformTry()
|
||||
.subscribe(OchCommonSubscribeImpl(context, callback, "writeOff"))
|
||||
}else if(ProjectUtils.isDali()) {
|
||||
mShuttleBusPassengerServiceApi.daliwriteOffTicket(
|
||||
MoGoAiCloudClientConfig.getInstance().serviceAppId,
|
||||
SharedPrefsMgr.getInstance().token,
|
||||
ticketInfo
|
||||
)
|
||||
.transformTry()
|
||||
.subscribe(OchCommonSubscribeImpl(context, callback, "writeOff"))
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询绑定行驶的小巴车路线
|
||||
* 查询绑定行驶的小巴车路线包含站点的站点广告
|
||||
* @param context
|
||||
* @param callback
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user