//
|
// Services.swift
|
// YixiuShop
|
//
|
// Created by Sweet on 2019/9/30.
|
// Copyright © 2019 jackLove. All rights reserved.
|
//
|
|
import UIKit
|
import RxSwift
|
import Alamofire
|
|
#if DEBUG
|
//let All_Url = "http://192.168.110.22:8040"
|
let All_Url = "http://192.168.110.22:8040"
|
let Google_Url = "https://maps.googleapis.com/maps/api"
|
let Google_Url_Road = "https://roads.googleapis.com/v1"
|
#else
|
let All_Url = "http://54.67.44.33:8040"
|
let Google_Url = "https://maps.googleapis.com/maps/api"
|
let Google_Url_Road = "https://roads.googleapis.com/v1"
|
#endif
|
|
|
class Services: NSObject {
|
|
static let pageSize: Int = 20
|
|
class func companyLogin(username:String,password:String)->Observable<BaseResponse<UserInfoModel>>{
|
let params = ParamsAppender.build(url: All_Url)
|
.interface(url: "/gunsApi/companyLogin")
|
.append(key: "username", value: username)
|
.append(key: "password", value: password)
|
return NetworkRequest.request(params: params, method: .post, progress: true)
|
}
|
|
class func getCompanyInfo()->Observable<BaseResponse<UserCompanyModel>>{
|
let params = ParamsAppender.build(url: All_Url)
|
.interface(url: "/api/me/getMeCompanyInfo")
|
.append(key: "id", value: UserViewModel.getUserInfo()!.id)
|
return NetworkRequest.request(params: params, method: .get, progress: false)
|
}
|
|
class func getMeWallet()->Observable<BaseResponse<UserWalletModel>>{
|
let params = ParamsAppender.build(url: All_Url)
|
.interface(url: "/api/me/getMeWallet")
|
.append(key: "id", value: UserViewModel.getUserInfo()!.id)
|
return NetworkRequest.request(params: params, method: .get, progress: false)
|
}
|
|
class func getMeInfo()->Observable<BaseResponse<UserProfileModel>>{
|
let params = ParamsAppender.build(url: All_Url)
|
.interface(url: "/api/me/getMeInfo")
|
.append(key: "id", value: UserViewModel.getUserInfo()!.id)
|
return NetworkRequest.request(params: params, method: .get, progress: false)
|
}
|
|
|
/// - Parameters:
|
/// - type: 1: in progress 2:completed
|
class func getList(type:HomePageVC.PageStyle,pageNumber:Int,containerNo:String? = nil,date:String? = nil)->Observable<BaseResponse<[OrderModel]>>{
|
let params = ParamsAppender.build(url: All_Url)
|
.interface(url: "/api/index/index")
|
.append(key: "containerNo", value: containerNo)
|
.append(key: "date", value: date)
|
.append(key: "pageNumber", value: pageNumber)
|
.append(key: "pageSize", value: 20)
|
.append(key: "type", value:type.rawValue)
|
.append(key: "id", value: UserViewModel.getUserInfo()!.id)
|
return NetworkRequest.request(params: params, method: .get, progress: false)
|
}
|
|
class func orderInfo(id:String)->Observable<BaseResponse<OrderDetailModel>>{
|
let params = ParamsAppender.build(url: All_Url)
|
.interface(url: "/api/index/orderInfo")
|
.append(key: "driverId", value:UserViewModel.getUserInfo()!.id)
|
.append(key: "id", value: id)
|
return NetworkRequest.request(params: params, method: .get, progress: true)
|
}
|
|
class func orderAttachment(id:String,page:Int)->Observable<BaseResponse<AttachmentModel>>{
|
let params = ParamsAppender.build(url: All_Url)
|
.interface(url: "/api/index/orderAttachment")
|
.append(key: "pageNumber", value:page)
|
.append(key: "pageSize", value: 20)
|
.append(key: "id", value: id)
|
return NetworkRequest.request(params: params, method: .get, progress: false)
|
}
|
|
class func addOrderAttachment(model:HomeDetailAttachVC.AttachmentType)->Observable<BaseResponse<AttachmentModel>>{
|
let params = ParamsAppender.build(url: All_Url)
|
.interface(url: "/api/index/addOrderAttachment")
|
.append(dic: model.toJSON() ?? [:])
|
return NetworkRequest.request(params: params, method: .post, encoding: JSONEncoding.default, progress: true)
|
}
|
|
class func orderNote(id:String,page:Int)->Observable<BaseResponse<NoteModel>>{
|
let params = ParamsAppender.build(url: All_Url)
|
.interface(url: "/api/index/orderNote")
|
.append(key: "pageNumber", value:page)
|
.append(key: "pageSize", value: 20)
|
.append(key: "id", value: id)
|
.append(key: "type", value: TextType.note.rawValue)
|
return NetworkRequest.request(params: params, method: .get, progress: false)
|
}
|
|
class func orderTrouble(id:String,page:Int)->Observable<BaseResponse<TroubleModel>>{
|
let params = ParamsAppender.build(url: All_Url)
|
.interface(url: "/api/index/orderNote")
|
.append(key: "pageNumber", value:page)
|
.append(key: "pageSize", value: 20)
|
.append(key: "id", value: id)
|
.append(key: "type", value: TextType.troble.rawValue)
|
return NetworkRequest.request(params: params, method: .get, progress: false)
|
}
|
|
class func uploadFile(file:Data,progress:Bool = true)->Observable<BaseResponse<UploadModel>>{
|
let params = ParamsAppender.build(url: All_Url)
|
.interface(url: "/api/upload/upload")
|
.append(key: "multipartFile", data: file)
|
return NetworkRequest.upload(params: params)
|
}
|
|
class func delAttachment(id:Int)->Observable<BaseResponse<SimpleModel>>{
|
let params = ParamsAppender.build(url: All_Url)
|
.interface(url: "/api/index/delOrderAttachment")
|
.append(key: "id", value: id)
|
return NetworkRequest.request(params: params, method: .get, progress: false)
|
}
|
|
|
class func addOrderNote(model:HomeDetailNoteVC.DetailNotModel)->Observable<BaseResponse<AttachmentModel>>{
|
let params = ParamsAppender.build(url: All_Url)
|
.interface(url: "/api/index/addOrderNote")
|
.append(dic: model.toJSON() ?? [:])
|
return NetworkRequest.request(params: params, method: .post, encoding: JSONEncoding.default, progress: true)
|
}
|
|
class func delOrderNote(id:Int)->Observable<BaseResponse<SimpleModel>>{
|
let params = ParamsAppender.build(url: All_Url)
|
.interface(url: "/api/index/delOrderNote")
|
.append(key: "id", value: id)
|
return NetworkRequest.request(params: params, method: .get, progress: false)
|
}
|
|
class func deleteFile(_ url:String)->Observable<BaseResponse<SimpleModel>>{
|
let params = ParamsAppender.build(url: All_Url)
|
.interface(url: "/api/upload/fileDelete")
|
.append(key: "url", value: url)
|
return NetworkRequest.request(params: params, method: .get, progress: false)
|
}
|
|
class func nextStatus(id:String)->Observable<BaseResponse<SimpleModel>>{
|
let params = ParamsAppender.build(url: All_Url)
|
.interface(url: "/api/index/nextStatus")
|
.append(key: "id", value: id)
|
.append(key: "driverId", value:UserViewModel.getUserInfo()!.id)
|
return NetworkRequest.request(params: params, method: .get, progress: true)
|
}
|
|
class func sendCode(email:String)->Observable<BaseResponse<SimpleModel>>{
|
let params = ParamsAppender.build(url: All_Url)
|
.interface(url: "/gunsApi/sendCode")
|
.append(key: "email", value: email)
|
return NetworkRequest.request(params: params, method: .post, progress: true)
|
}
|
|
class func forget(code:String,password:String,username:String)->Observable<BaseResponse<SimpleModel>>{
|
let params = ParamsAppender.build(url: All_Url)
|
.interface(url: "/gunsApi/forget")
|
.append(key: "code", value: code)
|
.append(key: "password", value: password)
|
.append(key: "username", value: username)
|
return NetworkRequest.request(params: params, method: .post, progress: true)
|
}
|
|
/// 上传定位
|
class func uploadLocation(coordinate:CLLocationCoordinate2D,type:Int)->Observable<BaseResponse<SimpleModel>>{
|
let params = ParamsAppender.build(url: All_Url)
|
.interface(url: "/api/order/updateLonLat")
|
.append(key: "driverId", value:UserViewModel.getUserInfo()!.id)
|
.append(key: "type", value:type) //type 1 打点 2 上传位置
|
.append(key: "lat", value: "\(coordinate.latitude)")
|
.append(key: "lon", value: "\(coordinate.longitude)")
|
return NetworkRequest.request(params: params, method: .get, progress: false)
|
}
|
|
class func driverRegister(model:RegisterModel)->Observable<BaseResponse<SimpleModel>>{
|
let params = ParamsAppender.build(url: All_Url)
|
.interface(url: "/gunsApi/driverAdd")
|
.append(dic: model.toJSON()!)
|
return NetworkRequest.request(params: params, method: .post, progress: true)
|
}
|
|
|
/// - Parameter type: 1:公司,2:物流商
|
class func driverCompanyList(type:Int)->Observable<BaseResponse<[BasicModel]>>{
|
let params = ParamsAppender.build(url: All_Url)
|
.interface(url: "/gunsApi/driverAddCompanyList")
|
.append(key: "type", value: type)
|
return NetworkRequest.request(params: params, method: .post, progress: true)
|
}
|
|
}
|
|
class GoogleServices:NSObject{
|
|
enum DirectionType {
|
case byPlaceId(String)
|
case byAddress(String)
|
case byCoordinates(CLLocationCoordinate2D)
|
|
func toFormat()->String{
|
switch self {
|
case .byPlaceId(let string):
|
return String(format: "place_id:%@", string)
|
case .byAddress(let string):
|
return string
|
case .byCoordinates(let coordiante):
|
return String(format: "%lf,%lf", coordiante.latitude,coordiante.longitude)
|
}
|
}
|
}
|
|
class func directionsLine(origin:DirectionType,destination:DirectionType,waypoints:String)->Observable<GoogleRoteModel>{
|
let params = ParamsAppender.build(url: Google_Url)
|
.interface(url: "/directions/json")
|
.append(key: "origin", value: origin.toFormat())
|
.append(key: "destination", value: destination.toFormat())
|
.append(key: "waypoints", value: waypoints)
|
.append(key: "alternatives", value: false) //可供选择方案:会增加请求时间
|
// .append(key: "optimize", value: true)
|
return NetworkRequest.requestMap(params: params.googleMapDone(), method: .get, progress: false)
|
}
|
|
|
/// When directions line was done , need call the method snap to the road.
|
/// - Parameter path: coordiante paths
|
class func snapToRoads(path:String)->Observable<SnappedPointsModel>{
|
let params = ParamsAppender.build(url: Google_Url_Road)
|
.interface(url: "/snapToRoads/")
|
.append(key: "path", value: path)
|
.append(key: "interpolate", value: "true")
|
return NetworkRequest.requestMap(params: params.googleMapDone(has: false), method: .get, progress: false)
|
}
|
}
|