167 lines
4.9 KiB
Swift
167 lines
4.9 KiB
Swift
//
|
||
// VPStatAPI.swift
|
||
// Veloria
|
||
//
|
||
// Created by 湖南秦九 on 2025/6/6.
|
||
//
|
||
|
||
import UIKit
|
||
|
||
class VPStatAPI: NSObject {
|
||
|
||
enum ErrorEventKey: String {
|
||
case payCallback = "pay_callback" //支付成功,但是后台接口失败
|
||
case payRestore = "pay_restore" //restore 失败
|
||
case payCancel = "pay_cancel" //用户取消支付
|
||
case payError = "pay_error" //支付过程中的其它错误
|
||
}
|
||
|
||
///进入APP
|
||
static func requestEnterApp() {
|
||
|
||
var param = VPNetworkParameters(path: "/customer/enterTheApp")
|
||
param.isToast = false
|
||
param.isLoding = false
|
||
|
||
VPNetwork.request(parameters: param) { (_: VPNetworkResponse<String>) in }
|
||
}
|
||
|
||
///离开APP
|
||
static func requestLeaveApp() {
|
||
var param = VPNetworkParameters(path: "/customer/leaveApp")
|
||
param.isToast = false
|
||
param.isLoding = false
|
||
|
||
VPNetwork.request(parameters: param) { (_: VPNetworkResponse<String>) in }
|
||
}
|
||
|
||
static func requestStatOnLine() {
|
||
var param = VPNetworkParameters(path: "/customer/onLine")
|
||
param.isToast = false
|
||
param.isLoding = false
|
||
|
||
VPNetwork.request(parameters: param) { (_: VPNetworkResponse<String>) in }
|
||
}
|
||
|
||
///统计w2a点击
|
||
static func requestStatW2a(data: String) {
|
||
var param = VPNetworkParameters(path: "/w2aSelfAttribution")
|
||
param.isToast = false
|
||
param.isLoding = false
|
||
param.parameters = [
|
||
"data" : data
|
||
]
|
||
|
||
VPNetwork.request(parameters: param) { (response: VPNetworkResponse<String>) in
|
||
|
||
}
|
||
}
|
||
|
||
///统计点击推送消息
|
||
static func requestStatApns(messageId: String, title: String) {
|
||
var param = VPNetworkParameters(path: "/message/sendReport")
|
||
param.isToast = false
|
||
param.isLoding = false
|
||
param.parameters = [
|
||
"message_id" : messageId,
|
||
"title" : title
|
||
]
|
||
|
||
VPNetwork.request(parameters: param) { (response: VPNetworkResponse<String>) in
|
||
|
||
}
|
||
}
|
||
|
||
///统计跳转到其它站点
|
||
static func requestJumpOtherApp(shortPlayId: String?, videoId: String?, jumpShortPlayId: String?) {
|
||
|
||
var parameters: [String : Any] = [:]
|
||
|
||
if let id = shortPlayId {
|
||
parameters["short_play_id"] = id
|
||
}
|
||
if let id = videoId {
|
||
parameters["video_id"] = id
|
||
}
|
||
if let id = jumpShortPlayId {
|
||
parameters["jump_short_play_id"] = id
|
||
}
|
||
|
||
var param = VPNetworkParameters(path: "/setJumpLaunchVideo")
|
||
param.isToast = false
|
||
param.isLoding = false
|
||
param.parameters = parameters
|
||
|
||
VPNetwork.request(parameters: param) { (response: VPNetworkResponse<String>) in
|
||
|
||
}
|
||
|
||
}
|
||
|
||
///广告统计
|
||
static func requestStatAd(model: VPStatAdModel, completer: ((_ finish: Bool) -> Void)? = nil) {
|
||
|
||
var param = VPNetworkParameters(path: "/ad/history")
|
||
param.isToast = false
|
||
param.isLoding = false
|
||
param.parameters = model.toDictionary()
|
||
|
||
VPNetwork.request(parameters: param) { (response: VPNetworkResponse<String>) in
|
||
if response.code == VPNetworkCodeSucceed {
|
||
completer?(true)
|
||
} else {
|
||
completer?(false)
|
||
}
|
||
}
|
||
|
||
}
|
||
|
||
|
||
static func requestStatError(orderCode: String?, shortPlayId: String?, videoId: String?, eventKey: ErrorEventKey, errorMsg: String?, otherParamenters: [String : Any]? = nil) {
|
||
|
||
var eventName = ""
|
||
switch eventKey {
|
||
case .payCallback:
|
||
eventName = "pay callback failed"
|
||
|
||
case .payRestore:
|
||
eventName = "pay restore"
|
||
|
||
case .payCancel:
|
||
eventName = "user pay canceled"
|
||
|
||
default:
|
||
eventName = "platform pay failed"
|
||
}
|
||
|
||
var parameters: [String : Any] = [
|
||
"userId" : VPLoginManager.manager.userInfo?.customer_id ?? "",
|
||
"event_name" : eventName,
|
||
"event_key" : eventKey.rawValue,
|
||
"short_play_id" : shortPlayId ?? "0",
|
||
"short_play_video_id" : videoId ?? "0",
|
||
"order_code": orderCode ?? ""
|
||
]
|
||
|
||
if let errorMsg = errorMsg {
|
||
parameters["error_msg"] = errorMsg
|
||
}
|
||
|
||
|
||
if let otherParamenters = otherParamenters {
|
||
otherParamenters.forEach {
|
||
parameters[$0] = $1
|
||
}
|
||
}
|
||
|
||
var param = VPNetworkParameters(path: "/event/add")
|
||
param.isLoding = false
|
||
param.isToast = false
|
||
param.parameters = parameters
|
||
|
||
VPNetwork.request(parameters: param) { (response: VPNetworkResponse<String>) in
|
||
|
||
}
|
||
}
|
||
}
|