| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384 |
- //
- // QSLNetwork.swift
- // QuickSearchLocation
- //
- // Created by Destiny on 2024/12/4.
- //
- import Foundation
- import Moya
- import MoyaMapper
- struct NetParameter: ModelableParameterType {
- var successValue = "0"
- var statusCodeKey = "code"
- var tipStrKey = "msg"
- var modelKey = "data"
- }
- let QSLNetworkProvider = MoyaProvider<QSLNetworkAPI>(plugins: [networkLoggerPlugin, MoyaMapperPlugin(NetParameter())])
- let networkLoggerPlugin = NetworkLoggerPlugin()
- enum QSLNetworkAPI {
-
- case userCode(dict: [String: Any])
- case userMember(dict: [String: Any])
- case userLogin(dict: [String: Any])
- case userClear(dict: [String: Any])
- case userPhoneAttribution(dict: [String: Any])
-
- case friendList(dict: [String: Any])
- case requestSend(dict: [String: Any])
- case requestList(dict: [String: Any])
- case messageList(dict: [String: Any])
- case requestAccept(dict: [String: Any])
- case requestRefuse(dict: [String: Any])
- case friendDelete(dict: [String: Any])
- case friendRemark(dict: [String: Any])
- case friendBlocked(dict: [String: Any])
- case friendGet(dict: [String: Any])
- case locationTrackQuery(dict: [String: Any])
- case vipItemList(dict: [String: Any])
- case vipActivityItemList(dict: [String: Any])
- case vipOrderSubmitAndPay(dict: [String: Any])
- case vipOrderPayStatus(dict: [String: Any])
- case vipMemberResume(dict: [String: Any])
- case vipCheckSubscription(dict: [String: Any])
- case contactList(dict: [String: Any])
- case contactCreate(dict: [String: Any])
- case contactFavor(dict: [String: Any])
- case contactDelete(dict: [String: Any])
- case contactMayday(dict: [String: Any])
- case contactMaydayFavor(dict: [String: Any])
- case contactMaydayAll(dict: [String: Any])
- case deviceInfoUpload(dict: [String: Any])
- case loginOneclick(dict: [String: Any])
- case guideIsTriggered(dict: [String : Any])
- case guideReceiveReward(dict: [String : Any])
-
- case wakeupTrialList(dict: [String: Any])
- case wakeUpPressInfo(dict: [String : Any])
- case wakeUpPressCheck(dict: [String : Any])
- case confGlobal(dict: [String : Any])
- case notiTokenReport(dict: [String : Any])
- case memberTrialTrack(dict: [String : Any])
- case wakeupTrialBanner(dict: [String : Any])
- }
- extension QSLNetworkAPI: TargetType {
- // 地址
- public var baseURL: URL {
- switch QSLApi.environment {
- case .local:
- return URL(string: QSLApi.LocalUrl)!
- case .dev:
- return URL(string: QSLApi.devUrl)!
- case .prod:
- return URL(string: QSLApi.prodUrl)!
- }
- }
-
- var path: String {
- switch self {
- case .userCode: return QSLApi.user_code
- case .userMember: return QSLApi.user_member
- case .userLogin: return QSLApi.user_login
- case .userClear: return QSLApi.user_clear
- case .friendList: return QSLApi.friend_list
- case .requestSend: return QSLApi.request_send
- case .requestList: return QSLApi.request_list
- case .messageList: return QSLApi.message_list
- case .requestAccept: return QSLApi.request_accept
- case .requestRefuse: return QSLApi.request_refuse
- case .friendDelete: return QSLApi.friend_delete
- case .friendRemark: return QSLApi.friend_remark
- case .friendBlocked: return QSLApi.friend_blocked
- case .friendGet: return QSLApi.friend_get
- case .locationTrackQuery: return QSLApi.location_track_query
- case .vipItemList: return QSLApi.vip_item_list
- case .vipActivityItemList: return QSLApi.vip_activity_item_list
- case .vipOrderSubmitAndPay: return QSLApi.vip_order_submitAndPay
- case .vipOrderPayStatus: return QSLApi.vip_order_payStatus
- case .vipMemberResume: return QSLApi.vip_subscription_resume
- case .vipCheckSubscription: return QSLApi.vip_subscription_check
- case .contactList: return QSLApi.contact_list
- case .contactCreate: return QSLApi.contact_create
- case .contactFavor: return QSLApi.contact_favor
- case .contactDelete: return QSLApi.contact_delete
- case .contactMayday: return QSLApi.contact_mayday
- case .contactMaydayFavor: return QSLApi.contact_mayday_favor
- case .contactMaydayAll: return QSLApi.contact_mayday_all
- case .deviceInfoUpload: return QSLApi.device_info_upload
- case .loginOneclick: return QSLApi.login_oneclick
- case .guideIsTriggered: return QSLApi.guide_is_triggered
- case .guideReceiveReward: return QSLApi.guide_receisve_reward
-
- case .wakeupTrialList: return QSLApi.wakeup_trial_list
- case .wakeUpPressInfo: return QSLApi.wakeup_press_info
- case .wakeUpPressCheck: return QSLApi.wakeup_press_check
- case .confGlobal: return QSLApi.conf_global
-
- case .userPhoneAttribution: return QSLApi.user_phone_attr
-
- case .notiTokenReport: return QSLApi.noti_token_push
- case .memberTrialTrack: return QSLApi.member_trial_track
-
-
- case .wakeupTrialBanner: return QSLApi.wakeup_trial_banner
-
- }
- }
-
- var method: Moya.Method { return .post }
-
- var task: Task {
- var parameters : [String:Any] = QSLApi.params
- switch self {
- case let .userCode(Dict):
- for (key, value) in Dict {
- parameters[key] = value
- }
- break
- case let .userMember(Dict):
- for (key, value) in Dict {
- parameters[key] = value
- }
- break
- case let .userLogin(Dict):
- for (key, value) in Dict {
- parameters[key] = value
- }
- break
- case let .userClear(Dict):
- for (key, value) in Dict {
- parameters[key] = value
- }
- break
- case let .friendList(Dict):
- for (key, value) in Dict {
- parameters[key] = value
- }
- break
- case let .requestSend(Dict):
- for (key, value) in Dict {
- parameters[key] = value
- }
- break
- case let .requestList(Dict):
- for (key, value) in Dict {
- parameters[key] = value
- }
- break
- case let .messageList(Dict):
- for (key, value) in Dict {
- parameters[key] = value
- }
- break
- case let .requestAccept(Dict):
- for (key, value) in Dict {
- parameters[key] = value
- }
- break
- case let .requestRefuse(Dict):
- for (key, value) in Dict {
- parameters[key] = value
- }
- break
- case let .friendDelete(Dict):
- for (key, value) in Dict {
- parameters[key] = value
- }
- break
- case let .friendRemark(Dict):
- for (key, value) in Dict {
- parameters[key] = value
- }
- break
- case let .friendBlocked(Dict):
- for (key, value) in Dict {
- parameters[key] = value
- }
- break
- case let .friendGet(Dict):
- for (key, value) in Dict {
- parameters[key] = value
- }
- break
- case let .locationTrackQuery(Dict):
- for (key, value) in Dict {
- parameters[key] = value
- }
- break
- case let .vipItemList(Dict):
- for (key, value) in Dict {
- parameters[key] = value
- }
- break
- case let .vipActivityItemList(Dict):
- for (key, value) in Dict {
- parameters[key] = value
- }
- break
- case let .vipOrderSubmitAndPay(Dict):
- for (key, value) in Dict {
- parameters[key] = value
- }
- break
- case let .vipOrderPayStatus(Dict):
- for (key, value) in Dict {
- parameters[key] = value
- }
- break
- case let .vipCheckSubscription(Dict):
- for (key, value) in Dict {
- parameters[key] = value
- }
- break
- case let .vipMemberResume(Dict):
- for (key, value) in Dict {
- parameters[key] = value
- }
- break
- case let .contactList(Dict):
- for (key, value) in Dict {
- parameters[key] = value
- }
- break
- case let .contactCreate(Dict):
- for (key, value) in Dict {
- parameters[key] = value
- }
- break
- case let .contactFavor(Dict):
- for (key, value) in Dict {
- parameters[key] = value
- }
- break
- case let .contactDelete(Dict):
- for (key, value) in Dict {
- parameters[key] = value
- }
- break
- case let .contactMayday(Dict):
- for (key, value) in Dict {
- parameters[key] = value
- }
- break
- case let .contactMaydayFavor(Dict):
- for (key, value) in Dict {
- parameters[key] = value
- }
- break
- case let .contactMaydayAll(Dict):
- for (key, value) in Dict {
- parameters[key] = value
- }
- break
- case let .deviceInfoUpload(Dict):
- for (key, value) in Dict {
- parameters[key] = value
- }
- break
- case let .loginOneclick(Dict):
- for (key, value) in Dict {
- parameters[key] = value
- }
- case let .guideIsTriggered(Dict):
- for (key, value) in Dict {
- parameters[key] = value
- }
- case let .guideReceiveReward(Dict):
- for (key, value) in Dict {
- parameters[key] = value
- }
- case .wakeupTrialList(dict: let dict):
- for (key, value) in dict {
- parameters[key] = value
- }
- case .wakeUpPressInfo(dict: let dict):
- for (key, value) in dict {
- parameters[key] = value
- }
- case .wakeUpPressCheck(dict: let dict):
- for (key, value) in dict {
- parameters[key] = value
- }
- case .confGlobal(dict: let dict):
- for (key, value) in dict {
- parameters[key] = value
- }
- case .userPhoneAttribution(dict: let dict):
- for (key, value) in dict {
- parameters[key] = value
- }
- case .notiTokenReport(dict: let dict):
- for (key, value) in dict {
- parameters[key] = value
- }
- case .memberTrialTrack(dict: let dict):
- for (key, value) in dict {
- parameters[key] = value
- }
- case .wakeupTrialBanner(dict: let dict):
- for (key, value) in dict {
- parameters[key] = value
- }
- }
- debugPrint(parameters)
- return .requestParameters(parameters: parameters, encoding: JSONEncoding.default)
- }
-
- var sampleData: Data { return "".data(using: String.Encoding.utf8)! }
-
- var headers: [String : String]? {
- return nil
- }
- }
- struct QSLNetwork {
-
- ///先添加一个闭包用于成功时后台返回数据的回调
- typealias completeCallback = ((Response) -> (Void))
- typealias failCallback = ((Int, String) -> (Void))
-
- func request(_ target: QSLNetworkAPI, success: @escaping completeCallback, fail: @escaping failCallback){
- QSLNetworkProvider.request(target) { (result) in
-
- switch result {
- case let .success(response):
-
- if response.statusCode == 200 {
- if response.toJSON(modelKey: "code") == 0 {
- success(response)
- } else {
- fail(response.toJSON(modelKey: "code").intValue, response.toJSON(modelKey: "msg").stringValue)
- }
- } else if response.statusCode == 1006 {
- if QSLBaseManager.shared.isLogin() {
- QSLBaseManager.shared.logOut()
- }
- UIApplication.keyWindow?.toast(text: "登录状态失效")
- } else {
- fail(response.statusCode, response.toJSON(modelKey: "msg").stringValue)
- }
-
- #if DEBUG
- print("data:\(response.fetchJSONString())")
- #endif
-
- break
- case let .failure(error):
- fail(error.errorCode, "网络错误,请检查后重试")
- //网络连接失败,提示用户
- UIApplication.keyWindow?.toast(text: "网络错误,请检查后重试")
- break
- }
- }
- }
- }
|