澜声世纪 17669d1412 bug修复
2025-12-27 13:10:21 +08:00

179 lines
5.6 KiB
Swift
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//
// NRStatAPI.swift
// ReaderHive
//
// Created by on 2025/12/17.
//
import UIKit
import Alamofire
struct NRStatAPI {
enum EventKey: String {
case payError = "pay_error" //
case payCallback = "pay_callback" //
case payRestore = "pay_restore" //restore
case forceUpdate = "force_update"//
case payCancel = "pay_cancel" //
case payTemplateDialog = "pay_template_dialog"//
}
///w2a
static func nr_requestStatW2a(data: String) {
let parameters = [
"data" : data
]
var param = NRNetwork.Parameters(path: "/w2aSelfAttribution")
param.method = .post
param.isLoding = false
param.isToast = false
param.parameters = parameters
NRNetwork.request(parameters: param) { (response: NRNetwork.Response<String>) in }
}
///
static func nr_requestEventStat(orderCode: String?, shortPlayId: String?, videoId: String?, eventKey: EventKey, errorMsg: String?, otherParamenters: [String : Any]? = nil) {
var eventName = ""
switch eventKey {
case .payRestore:
eventName = "pay restore"
case .payCallback:
eventName = "pay callback failed"
case .forceUpdate:
eventName = "force update"
case .payCancel:
eventName = "user pay canceled"
default:
eventName = "platform pay failed"
}
var parameters: [String : Any] = [
"userId" : NRLoginManager.manager.userInfo?.customer_id ?? "",
"short_play_video_id" : videoId ?? "0",
"short_play_id" : shortPlayId ?? "0",
"event_key" : eventKey.rawValue,
"order_code": orderCode ?? "",
"event_name" : eventName,
]
if let errorMsg = errorMsg {
parameters["error_msg"] = errorMsg
}
if let otherParamenters = otherParamenters {
otherParamenters.forEach {
parameters[$0] = $1
}
}
var param = NRNetwork.Parameters(path: "/event/add")
param.method = .post
param.isLoding = false
param.isToast = false
param.parameters = parameters
NRNetwork.request(parameters: param) { (response: NRNetwork.Response<String>) in }
}
///APP
private static var nr_needRequestEnterApp = true
static func nr_requestEnterApp() {
guard nr_needRequestEnterApp else { return }
nr_needRequestEnterApp = false
DispatchQueue.global().asyncAfter(deadline: .now() + 1) {
nr_needRequestEnterApp = true
}
var param = NRNetwork.Parameters(path: "/customer/enterTheApp")
param.method = .post
param.isLoding = false
param.isToast = false
NRNetwork.request(parameters: param) { (response: NRNetwork.Response<String>) in }
}
///APP
static func nr_requestLeaveApp() {
var param = NRNetwork.Parameters(path: "/customer/leaveApp")
param.method = .post
param.isLoding = false
param.isToast = false
NRNetwork.request(parameters: param) { (response: NRNetwork.Response<String>) in }
}
static func nr_requestStatOnLine() {
var param = NRNetwork.Parameters(path: "/customer/onLine")
param.method = .post
param.isLoding = false
param.isToast = false
NRNetwork.request(parameters: param) { (response: NRNetwork.Response<String>) in }
}
static func nr_requestUploadApnsAuthorizationStatus(_ status: Bool) {
let parameters = [
"is_open_notice" : status ? 1 : 0
]
var param = NRNetwork.Parameters(path: "/customer/uploadNoticeStatus")
param.method = .post
param.isLoding = false
param.isToast = false
param.parameters = parameters
NRNetwork.request(parameters: param) { (response: NRNetwork.Response<String>) in }
}
static func nr_requestStatApnsClick(id: String, title: String) {
let parameters = [
"message_id" : id,
"title" : title
]
var param = NRNetwork.Parameters(path: "/message/sendReport")
param.method = .post
param.isLoding = false
param.isToast = false
param.parameters = parameters
NRNetwork.request(parameters: param) { (response: NRNetwork.Response<String>) in }
}
static func nr_requestUploadApnsDeviceToken(token: String) {
let parameters = [
"fcm_token": token
]
var param = NRNetwork.Parameters(path: "/customer/firebaseToken")
param.method = .post
param.isLoding = false
param.isToast = false
param.parameters = parameters
NRNetwork.request(parameters: param) { (response: NRNetwork.Response<String>) in }
}
}
extension NRStatAPI {
///
static func nr_uploadApnsAuthorizationStatus() {
UNUserNotificationCenter.current().getNotificationSettings { settings in
if settings.authorizationStatus == .authorized {
nr_requestUploadApnsAuthorizationStatus(true)
} else if settings.authorizationStatus == .denied {
nr_requestUploadApnsAuthorizationStatus(false)
}
}
}
}