SwiftMoyaNetWorkServiceConfig.swift 7.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192
  1. //
  2. // SwiftMoyaNetWorkServiceConfig.swift
  3. // RainbowPlanet
  4. //
  5. // Created by 南鑫林 on 2019/4/26.
  6. // Copyright © 2019 南鑫林. All rights reserved.
  7. //
  8. import UIKit
  9. import Moya
  10. import SwiftyJSON
  11. import ObjectMapper
  12. class SwiftMoyaNetWorkServiceConfig: NSObject {
  13. private static let _sharedInstance = SwiftMoyaNetWorkServiceConfig()
  14. private override init() {} // 私有化init方法
  15. class func shared() -> SwiftMoyaNetWorkServiceConfig {
  16. return _sharedInstance
  17. }
  18. /// 前端config配置
  19. ///
  20. /// - Parameter completion: 回调
  21. func configApi(completion: @escaping successCallBack,fail:@escaping failCallback) {
  22. let parameters = Dictionary<String,Any>()
  23. SwiftMoyaNetWorkManager.shared.requestObject(ConfigModel.self,target: MultiTarget(SwiftMoyaServiceConfigApi.configConfig(parameters: parameters)), completion: {(configModel) in
  24. ConfigModel.shared.saveObject(configModel: configModel as! ConfigModel)
  25. completion(configModel)
  26. }) {
  27. (loadingStatus) in
  28. fail(loadingStatus)
  29. }
  30. }
  31. /// 自提点列表
  32. ///
  33. /// - Parameters:
  34. /// - longitude: 经度
  35. /// - latitude: 纬度
  36. /// - page: 页数
  37. /// - completion: 完成
  38. func configPickupNodeIndexApi(longitude:String?,latitude:String?, page:Int = 1,completion: @escaping successCallBack) {
  39. var parameters = Dictionary<String,Any>()
  40. let loacationModel = LocationModel.shared().object()
  41. let baiduToCityModel = BaiduToCityFactory.shared.query(bjcityId: loacationModel!.cityCode)
  42. parameters.updateValue(baiduToCityModel.areaCode, forKey: "city_id")
  43. parameters.updateValue(longitude ?? "", forKey: "longitude")
  44. parameters.updateValue(latitude ?? "", forKey: "latitude")
  45. parameters.updateValue(page, forKey: "page")
  46. SwiftMoyaNetWorkManager.shared.requestObject(SelfMentionAddressListModel.self,target: MultiTarget(SwiftMoyaServiceConfigApi.configPickupNodeIndex(parameters: parameters)), completion: {(selfMentionAddressListModel) in
  47. completion(selfMentionAddressListModel)
  48. }) {
  49. (loadingStatus) in
  50. }
  51. }
  52. /// 已开通城市列表
  53. ///
  54. /// - Parameters:
  55. /// - city_id: 城市Id
  56. /// - page: 页数
  57. /// - completion: 完成
  58. func configCityManagementIndexApi(page:Int = 1,completion: @escaping successCallBack) {
  59. var parameters = Dictionary<String,Any>()
  60. let loacationModel = LocationModel.shared().object()
  61. let baiduToCityModel = BaiduToCityFactory.shared.query(bjcityId: loacationModel!.cityCode)
  62. parameters.updateValue(baiduToCityModel.areaCode, forKey: "city_id")
  63. parameters.updateValue(page, forKey: "page")
  64. SwiftMoyaNetWorkManager.shared.requestObject(OpenCityListModel.self,target: MultiTarget(SwiftMoyaServiceConfigApi.configCityManagementIndex(parameters: parameters)), completion: {
  65. (selfMentionAddressListModel) in
  66. completion(selfMentionAddressListModel)
  67. }) {
  68. (loadingStatus) in
  69. }
  70. }
  71. // MARK: 单图上传
  72. /// 单图上传
  73. ///
  74. /// - Parameters:
  75. /// - imageArray: 图片数据
  76. /// - completion: null
  77. func configUploadSingleImgApi(imageArray:Array<UIImage>, completion: @escaping successCallBack) {
  78. var multipartData = Array<Any>()
  79. let parameters = Dictionary<String,Any>()
  80. for (_,image) in imageArray.enumerated() {
  81. let data = image.jpegData(compressionQuality: 0.3)
  82. let today = Date()
  83. let formData = MultipartFormData(provider: .data(data!), name: "image",fileName: "\(today).png", mimeType: "image/png")
  84. multipartData.append(formData)
  85. }
  86. SwiftMoyaNetWorkManager.shared.requestObject(ImageUrlModel.self, target: MultiTarget(SwiftMoyaServiceConfigApi.configUploadSingleImg(parameters: parameters, dataArray: multipartData)), completion: { (imageUrlModel) in
  87. let imageUrlModel = imageUrlModel as! ImageUrlModel
  88. completion(imageUrlModel.url as Any)
  89. }) {
  90. (loadingStatus) in
  91. }
  92. }
  93. // MARK: 单图上传(无提示框)
  94. /// 单图上传
  95. ///
  96. /// - Parameters:
  97. /// - imageArray: 图片数据
  98. /// - completion: null
  99. func configUploadSingleImgWithoutHudApi(imageArray:Array<UIImage>, completion: @escaping successCallBack) {
  100. var multipartData = Array<Any>()
  101. let parameters = Dictionary<String,Any>()
  102. for (_,image) in imageArray.enumerated() {
  103. let data = image.jpegData(compressionQuality: 1)
  104. let today = Date()
  105. let formData = MultipartFormData(provider: .data(data!), name: "image",fileName: "\(today).png", mimeType: "image/png")
  106. multipartData.append(formData)
  107. }
  108. SwiftMoyaNetWorkManager.shared.requestObject(ImageUrlModel.self, target: MultiTarget(SwiftMoyaServiceConfigApi.configUploadSingleImg(parameters: parameters, dataArray: multipartData)), completion: { (imageUrlModel) in
  109. let imageUrlModel = imageUrlModel as! ImageUrlModel
  110. completion(imageUrlModel.url as Any)
  111. }) {
  112. (loadingStatus) in
  113. }
  114. }
  115. // MARK: 多图上传
  116. /// 多图上传
  117. ///
  118. /// - Parameters:
  119. /// - imageArray: 图片数据
  120. /// - completion: null
  121. func configUploadMultiImgApi(imageArray:Array<UIImage>, completion: @escaping successCallBack) {
  122. var multipartData = Array<Any>()
  123. let parameters = Dictionary<String,Any>()
  124. for (_,image) in imageArray.enumerated() {
  125. let data = image.jpegData(compressionQuality: 0.3)
  126. let today = Date()
  127. let formData = MultipartFormData(provider: .data(data!), name: "image[]",fileName: "\(today).png", mimeType: "image/png")
  128. multipartData.append(formData)
  129. }
  130. SwiftMoyaNetWorkManager.shared.requestAnyArray(target: MultiTarget(SwiftMoyaServiceConfigApi.configUploadMultiImg(parameters: parameters, dataArray: multipartData)), completion: { (imgUrlArr) in
  131. completion(imgUrlArr)
  132. }) {
  133. (loadingStatus) in
  134. }
  135. }
  136. // MARK: 邀请海报
  137. func configPosterInviteApi(completion: @escaping successCallBack) {
  138. let parameters = Dictionary<String,Any>()
  139. SwiftMoyaNetWorkManager.shared.requestAny(target: MultiTarget(SwiftMoyaServiceConfigApi.configPosterInvite(parameters: parameters)), completion: { (data) in
  140. completion(data)
  141. }) {
  142. (loadingStatus) in
  143. }
  144. }
  145. /// 系统升级接口
  146. ///
  147. /// - Parameter completion: <#completion description#>
  148. func configUpGradeApi(completion: @escaping successCallBack) {
  149. var parameters = Dictionary<String,Any>()
  150. parameters.updateValue("ios", forKey: "os")
  151. parameters.updateValue(AppInfo.clientBuildVersion, forKey: "version_code")
  152. SwiftMoyaNetWorkManager.shared.requestObject(UpdateVersionModel.self,target: MultiTarget(SwiftMoyaServiceConfigApi.configUpgrade(parameters: parameters)), completion: { (updateVersionModel) in
  153. UpdateVersionModel.shared.saveObject(model: updateVersionModel as? UpdateVersionModel ?? UpdateVersionModel())
  154. completion(updateVersionModel)
  155. }) {
  156. (loadingStatus) in
  157. }
  158. }
  159. }