131 lines
4.9 KiB
Swift
131 lines
4.9 KiB
Swift
//
|
|
// PushNotiCommonTool.swift
|
|
// OrderScheduling
|
|
//
|
|
// Created by 中道 on 2023/9/5.
|
|
//
|
|
|
|
import Foundation
|
|
import RxSwift
|
|
import RxCocoa
|
|
|
|
public let PUSHNOTICOMMONTOOL = PushNotiCommonTool.default
|
|
|
|
open class PushNotiCommonTool : NSObject {
|
|
public static let `default` = PushNotiCommonTool()
|
|
private let disposeBag = DisposeBag()
|
|
|
|
func open(userInfo:[AnyHashable:Any]?) {
|
|
let commonView = PushNotiCommonView()
|
|
var userOrderId : Int?
|
|
var taskOrderId : Int?
|
|
var taskCode : String?
|
|
if let dict = GROUP.parserAlertToDictionary(userInfo: userInfo) {
|
|
if let title = dict[pushNoti_title_key] {
|
|
commonView.titleLabel.text = title
|
|
}
|
|
if let body = dict[pushNoti_body_key] {
|
|
commonView.contentLabel.text = body
|
|
}
|
|
}
|
|
if let _userOrderId = (userInfo?[pushNoti_userOrderId_key] as? Int) {
|
|
userOrderId = _userOrderId
|
|
}
|
|
if let _taskOrderId = (userInfo?[pushNoti_taskOrderId_key] as? Int) {
|
|
taskOrderId = _taskOrderId
|
|
}
|
|
if let _taskCode = (userInfo?[pushNoti_taskCode_key] as? String) {
|
|
taskCode = _taskCode
|
|
}
|
|
if let cancel = (userInfo?[pushNoti_cancelButtonText_key] as? String) {
|
|
commonView.cancelButton.setTitle(cancel, for: .normal)
|
|
}
|
|
if let sure = (userInfo?[pushNoti_confirmButtonText_key] as? String) {
|
|
commonView.sureButton.setTitle(sure, for: .normal)
|
|
}
|
|
|
|
commonView.cancelButton.rx.tap
|
|
.observe(on: MainScheduler.instance)
|
|
.subscribe(onNext: {
|
|
ENTRY.dismiss(name: pushNotiCommonViewEntry) {
|
|
// 停止声音播放
|
|
TOOL.stopVoice()
|
|
}
|
|
})
|
|
.disposed(by: disposeBag)
|
|
|
|
commonView.sureButton.rx.tap
|
|
.flatMapLatest({ _ in
|
|
return (GROUP.isCancelOrderPushNotification(userInfo: userInfo) == true) ? RQ.giveUpUserOrder(parameters: GiveUpUserOrderParameters(userOrderId: userOrderId,taskOrderId: taskOrderId)) : Single.just(nil)
|
|
})
|
|
.observe(on: MainScheduler.instance)
|
|
.subscribe(onNext: { _ in
|
|
ENTRY.dismiss(name: pushNotiCommonViewEntry) {
|
|
// 停止声音播放
|
|
TOOL.stopVoice()
|
|
|
|
// 报备跳转webview
|
|
if GROUP.isReportIndexPushNotification(userInfo: userInfo) == true {
|
|
if let supplierId = USER.supplierId,let taskCode,let userOrderId {
|
|
WEBTOOL.open(name: .reportIndex,appending: "&userOrderId=\(userOrderId)&type=1&userOrderCode=\(taskCode)&supplierId=\(supplierId)")
|
|
}
|
|
}
|
|
}
|
|
})
|
|
.disposed(by: disposeBag)
|
|
|
|
ENTRY.showPushNotiCommonEntry(view: commonView,name: pushNotiCommonViewEntry)
|
|
}
|
|
|
|
func open(model:AppPushRecordListDataModel?,continueHandler: (() -> Void)? = nil) {
|
|
let commonView = PushNotiCommonView()
|
|
var userOrderId : Int?
|
|
var taskOrderId : Int?
|
|
if let title = model?.pushPayloadObj?.title {
|
|
commonView.titleLabel.text = title
|
|
}
|
|
if let body = model?.pushPayloadObj?.content {
|
|
commonView.contentLabel.text = body
|
|
}
|
|
if let orderId = model?.pushPayloadObj?.userOrderId {
|
|
userOrderId = Int(orderId)
|
|
}
|
|
if let taskId = model?.pushPayloadObj?.taskOrderId {
|
|
taskOrderId = Int(taskId)
|
|
}
|
|
if let cancel = model?.pushPayloadObj?.cancelButtonText {
|
|
commonView.cancelButton.setTitle(cancel, for: .normal)
|
|
}
|
|
if let sure = model?.pushPayloadObj?.confirmButtonText {
|
|
commonView.sureButton.setTitle(sure, for: .normal)
|
|
}
|
|
|
|
commonView.cancelButton.rx.tap
|
|
.observe(on: MainScheduler.instance)
|
|
.subscribe(onNext: {
|
|
ENTRY.dismiss(name: pushNotiCommonViewEntry) {
|
|
// 停止声音播放
|
|
TOOL.stopVoice()
|
|
}
|
|
})
|
|
.disposed(by: disposeBag)
|
|
|
|
commonView.sureButton.rx.tap
|
|
.flatMapLatest({ _ in
|
|
return RQ.giveUpUserOrder(parameters: GiveUpUserOrderParameters(userOrderId: userOrderId,taskOrderId: taskOrderId))
|
|
})
|
|
.observe(on: MainScheduler.instance)
|
|
.subscribe(onNext: { _ in
|
|
ENTRY.dismiss(name: pushNotiCommonViewEntry) {
|
|
// 停止声音播放
|
|
TOOL.stopVoice()
|
|
|
|
continueHandler?()
|
|
}
|
|
})
|
|
.disposed(by: disposeBag)
|
|
|
|
ENTRY.showPushNotiCommonEntry(view: commonView,name: pushNotiCommonViewEntry)
|
|
}
|
|
}
|