//
|
// Services.swift
|
// YixiuShop
|
//
|
// Created by Sweet on 2019/9/30.
|
// Copyright © 2019 jackLove. All rights reserved.
|
//
|
|
import UIKit
|
import RxSwift
|
import Alamofire
|
import JQTools
|
|
#if DEBUG
|
//let All_Url = "http://192.168.110.237:9000"
|
let All_Url = "https://dollearn.com/api"
|
#else
|
let All_Url = "https://dollearn.com/api"
|
#endif
|
|
class Services: NSObject {
|
|
}
|
|
extension Services{
|
class func weekList(quarter:Int)->Observable<BaseResponse<[ListenWeekModel]>>{
|
let params = ParamsAppender.build(url: All_Url)
|
params.interface(url: "/study/base/study/weekList")
|
params.append(key: "quarter", value: quarter)
|
return NetworkRequest.request(params: params, method: .get, progress: true)
|
}
|
|
|
/// 自主学习1-听音选图
|
class func listenSelectPicture(day:Int,quarter:Int,week:Int)->Observable<BaseResponse<ListenNewModel>>{
|
let params = ParamsAppender.build(url: All_Url)
|
params.interface(url: "/study/base/study/listenSelectPicture")
|
params.append(key: "quarter", value: quarter)
|
params.append(key: "day", value: day)
|
params.append(key: "week", value: week)
|
return NetworkRequest.request(params: params, method: .get, progress: true)
|
}
|
|
|
/// 自主学习2-看图选音
|
class func pictureSelectVoice(day:Int,quarter:Int,week:Int)->Observable<BaseResponse<ListenNewModel>>{
|
let params = ParamsAppender.build(url: All_Url)
|
params.interface(url: "/study/base/study/pictureSelectVoice")
|
params.append(key: "quarter", value: quarter)
|
params.append(key: "day", value: day)
|
params.append(key: "week", value: week)
|
return NetworkRequest.request(params: params, method: .get, progress: true)
|
}
|
|
/// 自主学习3-归纳排除
|
class func induceExclude(day:Int,quarter:Int,week:Int)->Observable<BaseResponse<ListenNewModel>>{
|
let params = ParamsAppender.build(url: All_Url)
|
params.interface(url: "/study/base/study/induceExclude")
|
params.append(key: "quarter", value: quarter)
|
params.append(key: "day", value: day)
|
params.append(key: "week", value: week)
|
return NetworkRequest.request(params: params, method: .get, progress: true)
|
}
|
|
/// 自主学习4-有问有答
|
class func questionsAndAnswers(day:Int,quarter:Int,week:Int)->Observable<BaseResponse<ListenNewModel>>{
|
let params = ParamsAppender.build(url: All_Url)
|
params.interface(url: "/study/base/study/questionsAndAnswers")
|
params.append(key: "quarter", value: quarter)
|
params.append(key: "day", value: day)
|
params.append(key: "week", value: week)
|
return NetworkRequest.request(params: params, method: .get, progress: true)
|
}
|
|
/// 自主学习5-音图相配
|
class func pictureMateVoice(day:Int,quarter:Int,week:Int)->Observable<BaseResponse<ListenNewModel>>{
|
let params = ParamsAppender.build(url: All_Url)
|
params.interface(url: "/study/base/study/pictureMateVoice")
|
params.append(key: "quarter", value: quarter)
|
params.append(key: "day", value: day)
|
params.append(key: "week", value: week)
|
return NetworkRequest.request(params: params, method: .get, progress: true)
|
}
|
|
/// 完成学习
|
class func completeLearing(type:Int,studyTime:Int,studyIds:String,quarter:Int,week:Int,day:Int,accracy:Int)->Observable<BaseResponse<Int>>{
|
let params = ParamsAppender.build(url: All_Url)
|
params.interface(url: "/study/base/study/completeLearning")
|
.append(key: "type", value: type)
|
.append(key: "studyTime", value: studyTime)
|
.append(key: "studyIds", value: studyIds)
|
.append(key: "week", value: week)
|
.append(key: "day", value: day)
|
.append(key: "quarter", value: quarter)
|
.append(key: "accuracy", value: accracy)
|
return NetworkRequest.request(params: params, method: .post,encoding: JSONEncoding.default, progress: true)
|
}
|
|
/// 完成游戏
|
class func completeGames(gameId:Int,gameName:String,difficulty:Int,accuracy:Int,useTime:Int)->Observable<BaseResponse<Int>>{
|
let params = ParamsAppender.build(url: All_Url)
|
params.interface(url: "/study/base/study/gameAchievement")
|
.append(key: "gameId", value: gameId)
|
.append(key: "accuracy", value: accuracy)
|
.append(key: "difficulty", value: difficulty)
|
.append(key: "useTime", value: useTime)
|
.append(key: "gameName", value: gameName)
|
return NetworkRequest.request(params: params, method: .post,encoding: JSONEncoding.default, progress: true)
|
}
|
|
class func gameHearing(difficulty:Int,quarter:Int,week:Int)->Observable<BaseResponse<Listen1Model>>{
|
let params = ParamsAppender.build(url: All_Url)
|
params.interface(url: "/study/base/study/gameHearing")
|
params.append(key: "quarter", value: quarter)
|
params.append(key: "difficulty", value: difficulty)
|
params.append(key: "week", value: week)
|
return NetworkRequest.request(params: params, method: .get, progress: true)
|
}
|
|
class func gameMemory(quarter:Int,week:Int)->Observable<BaseResponse<Listen1Model>>{
|
let params = ParamsAppender.build(url: All_Url)
|
params.interface(url: "/study/base/study/gameMemory")
|
params.append(key: "quarter", value: quarter)
|
params.append(key: "week", value: week)
|
return NetworkRequest.request(params: params, method: .get, progress: true)
|
}
|
|
class func frameworkMemory(quarter:Int,week:Int)->Observable<BaseResponse<Listen1Model>>{
|
let params = ParamsAppender.build(url: All_Url)
|
params.interface(url: "/study/base/study/frameworkMemory")
|
params.append(key: "quarter", value: quarter)
|
params.append(key: "week", value: week)
|
return NetworkRequest.request(params: params, method: .get, progress: true)
|
}
|
|
class func lookpictureDbu(quarter:Int,week:Int)->Observable<BaseResponse<Listen1Model>>{
|
let params = ParamsAppender.build(url: All_Url)
|
params.interface(url: "/study/base/study/lookPictureDbu")
|
params.append(key: "quarter", value: quarter)
|
params.append(key: "week", value: week)
|
return NetworkRequest.request(params: params, method: .get, progress: true)
|
}
|
|
class func completeStory(storyId:Int,accuracy:Int,studyTime:Int,type:Int)->Observable<BaseResponse<Int>>{
|
let params = ParamsAppender.build(url: All_Url)
|
params.interface(url: "/study/base/study/completeStory")
|
params.append(key: "storyId", value: storyId)
|
params.append(key: "accuracy", value: accuracy)
|
params.append(key: "studyTime", value: studyTime)
|
params.append(key: "type", value: type)
|
return NetworkRequest.request(params: params, method: .get, progress: true)
|
}
|
|
class func studySchedule(week:Int)->Observable<BaseResponse<StudyScheduleModel>>{
|
let params = ParamsAppender.build(url: All_Url)
|
params.interface(url: "/study/base/study/studySchedule")
|
params.append(key: "week", value: week)
|
return NetworkRequest.request(params: params, method: .get, progress: true)
|
}
|
|
class func teamSchedule(type:ListenType,week:Int,day:Int)->Observable<BaseResponse<TeamScheduleModel>>{
|
let params = ParamsAppender.build(url: All_Url)
|
params.interface(url: "/study/base/study/teamSchedule")
|
params.append(key: "type", value: type.rawValue)
|
params.append(key: "week", value: week)
|
params.append(key: "day", value: day)
|
return NetworkRequest.request(params: params, method: .get, progress: false)
|
}
|
|
class func parentPage()->Observable<BaseResponse<String>>{
|
let params = ParamsAppender.build(url: All_Url)
|
params.interface(url: "/study/base/user/studyPage")
|
return NetworkRequest.request(params: params, method: .post, progress: false)
|
}
|
|
class func promptVoice()->Observable<BaseResponse<PromptVoiceModel>>{
|
let params = ParamsAppender.build(url: All_Url)
|
params.interface(url: "/study/base/study/promptVoice")
|
return NetworkRequest.request(params: params, method: .get, progress: false)
|
}
|
}
|
|
// MARK: -- 登录部分
|
extension Services{
|
class func sendPhoneCode(phone:String)->Observable<BaseResponse<SimpleModel>>{
|
let params = ParamsAppender.build(url: All_Url)
|
params.interface(url: "/study/base/user/sendPhoneCode")
|
params.append(key: "phone", value: phone)
|
return NetworkRequest.request(params: params, method: .get, progress: true)
|
}
|
|
class func login(phone:String,code:String)->Observable<BaseResponse<LoginModel>>{
|
let params = ParamsAppender.build(url: All_Url)
|
params.interface(url: "/study/base/user/studyLogin")
|
params.append(key: "phone", value: phone)
|
params.append(key: "phoneCode", value: code)
|
return NetworkRequest.request(params: params, method: .post,encoding: JSONEncoding.default, progress: true)
|
}
|
}
|
|
// MARK: -- 首页
|
extension Services{
|
|
}
|
|
|
// MARK: -- 商品
|
extension Services{
|
class func goodRecommend()->Observable<BaseResponse<[RecommendModel]>>{
|
let params = ParamsAppender.build(url: All_Url)
|
params.interface(url: "/study/base/study/goodRecommend")
|
return NetworkRequest.request(params: params, method: .get, progress: false,ignoreAlert: true)
|
}
|
|
class func goodsList(keywords:String,page:Int,pageSize:Int = 20,type:[String])->Observable<BaseResponse<BaseResponseList<MarketModel>>>{
|
let params = ParamsAppender.build(url: All_Url)
|
params.interface(url: "/goods/base/goods/goodListStudy")
|
.append(key: "keywords", value: keywords)
|
.append(key: "pageNumber", value: page)
|
.append(key: "pageSize", value: pageSize)
|
.append(key: "type", value: type)
|
return NetworkRequest.request(params: params, method: .post,encoding: JSONEncoding.default, progress: false)
|
}
|
|
class func getIntegral()->Observable<BaseResponse<Int>>{
|
let params = ParamsAppender.build(url: All_Url)
|
params.interface(url: "/study/base/study/getIntegralStudy")
|
return NetworkRequest.request(params: params, method: .get, progress: false)
|
}
|
|
class func goodTypeStudy()->Observable<BaseResponse<[MarketTypeModel]>>{
|
let params = ParamsAppender.build(url: All_Url)
|
params.interface(url: "/goods/base/goods/goodTypeStudy")
|
return NetworkRequest.request(params: params, method: .get, progress: false)
|
}
|
|
class func goodsDetail(goodsId:Int)->Observable<BaseResponse<MarketDetailModel>>{
|
let params = ParamsAppender.build(url: All_Url)
|
params.interface(url: "/goods/base/goods/goodDetail")
|
.append(key: "goodId", value: goodsId)
|
return NetworkRequest.request(params: params, method: .get, progress: true)
|
}
|
|
class func addressList()->Observable<BaseResponse<[AddressModel]>>{
|
let params = ParamsAppender.build(url: All_Url)
|
params.interface(url: "/goods/base/goods/shopAddress")
|
return NetworkRequest.request(params: params, method: .get, progress: false)
|
}
|
|
class func deleteAddress(id:Int)->Observable<BaseResponse<SimpleModel>>{
|
let params = ParamsAppender.build(url: All_Url)
|
params.interface(url: "/goods/base/goods/addressDelete")
|
.append(key: "id", value: id)
|
return NetworkRequest.request(params: params, method: .get, progress: true)
|
}
|
|
class func redeemNow(goodId:Int)->Observable<BaseResponse<MarketDetailModel>>{
|
let params = ParamsAppender.build(url: All_Url)
|
params.interface(url: "/goods/base/goods/redeemNow")
|
.append(key: "goodId", value: goodId)
|
return NetworkRequest.request(params: params, method: .get, progress: true)
|
}
|
|
class func addressTree()->Observable<BaseResponse<[AddressTreeModel]>>{
|
let params = ParamsAppender.build(url: All_Url)
|
params.interface(url: "/goods/base/goods/addressTree")
|
return NetworkRequest.request(params: params, method: .get, progress: true)
|
}
|
|
class func addressSaveOrUpdate(id:Int?,province:AddressTreeModel?,city:AddressTreeModel?,country:AddressTreeModel?,userName:String?,userPhone:String?,isDefault:Bool,detailAddress:String)->Observable<BaseResponse<SimpleModel>>{
|
let params = ParamsAppender.build(url: All_Url)
|
params.interface(url: "/goods/base/goods/addressSaveOrUpdate")
|
.append(key: "id", value: id)
|
.append(key: "address", value: detailAddress)
|
.append(key: "city", value: city?.name)
|
.append(key: "cityCode", value: city?.code)
|
.append(key: "province", value: province?.name)
|
.append(key: "provinceCode", value: province?.code)
|
.append(key: "recipient", value: userName)
|
.append(key: "recipientPhone", value: userPhone)
|
.append(key: "isDefault", value: (isDefault == true) ? 1:0)
|
return NetworkRequest.request(params: params, method: .post,encoding: JSONEncoding.default, progress: true)
|
}
|
|
class func setDefaultStudy(id:Int)->Observable<BaseResponse<SimpleModel>>{
|
let params = ParamsAppender.build(url: All_Url)
|
params.interface(url: "/goods/base/goods/setDefaultStudy")
|
.append(key: "id", value: id)
|
return NetworkRequest.request(params: params, method: .get, progress: true)
|
}
|
|
class func goodsExchangeStudy(goodsId:Int,number:Int,orderNumber:String,recipientId:Int,remark:String)->Observable<BaseResponse<SimpleModel>>{
|
let params = ParamsAppender.build(url: All_Url)
|
params.interface(url: "/goods/base/goods/goodExchangeStudy")
|
.append(key: "goodId", value: goodsId)
|
.append(key: "number", value: number)
|
.append(key: "orderNumber", value: orderNumber)
|
.append(key: "recipientId", value: recipientId)
|
.append(key: "remark", value: remark)
|
return NetworkRequest.request(params: params, method: .post,encoding: JSONEncoding.default, progress: true,ignoreAlert: true)
|
}
|
|
class func userInfo()->Observable<BaseResponse<UserInfoModel>>{
|
let params = ParamsAppender.build(url: All_Url)
|
params.interface(url: "/study/base/user/userInfo")
|
return NetworkRequest.request(params: params, method: .get, progress: false)
|
}
|
|
class func integralDetail(pageNum:Int,pageSize:Int = 20,time:String?)->Observable<BaseResponse<BaseResponseList<IntegralModel>>>{
|
let params = ParamsAppender.build(url: All_Url)
|
params.interface(url: "/study/base/study/integralDetail")
|
.append(key: "pageNum", value: pageNum)
|
.append(key: "pageSize", value: pageSize)
|
.append(key: "time", value: time)
|
return NetworkRequest.request(params: params, method: .get, progress: false)
|
}
|
|
class func exchangeRecord(page:Int,pageSize:Int = 20)->Observable<BaseResponse<BaseResponseList<ExchangeRecordModel>>>{
|
let params = ParamsAppender.build(url: All_Url)
|
params.interface(url: "/goods/base/goods/exchangeRecord")
|
.append(key: "pageNumber", value: page)
|
.append(key: "pageSize", value: pageSize)
|
return NetworkRequest.request(params: params, method: .get, progress: false)
|
}
|
|
class func studyGamesRecord()->Observable<BaseResponse<StudyGamesModel>>{
|
let params = ParamsAppender.build(url: All_Url)
|
params.interface(url: "/study/base/study/studyRecord")
|
return NetworkRequest.request(params: params, method: .get, progress: true)
|
}
|
|
class func logoutStudy()->Observable<BaseResponse<SimpleModel>>{
|
let params = ParamsAppender.build(url: All_Url)
|
params.interface(url: "/study/base/user/logoutStudy")
|
return NetworkRequest.request(params: params, method: .post,encoding: JSONEncoding.default, progress: true)
|
}
|
|
class func exitLearning(type:Int,quarter:Int,week:Int,day:Int,teamIds:[String],topicIds:[String],answerNumber:Int,correctNumber:Int,studyTime:Int,schedule:Int)->Observable<BaseResponse<SimpleModel>>{
|
let params = ParamsAppender.build(url: All_Url)
|
params.interface(url: "/study/base/study/exitLearning")
|
.append(key: "week", value: week)
|
.append(key: "day", value: day)
|
.append(key: "teamIds", value: teamIds.joined(separator: ","))
|
.append(key: "topicIds", value: topicIds.joined(separator: ","))
|
.append(key: "type", value: type)
|
.append(key: "answerNumber", value: answerNumber)
|
.append(key: "correctNumber", value: correctNumber)
|
.append(key: "studyTime", value: studyTime)
|
.append(key: "schedule", value: schedule)
|
.append(key: "quarter", value: quarter)
|
return NetworkRequest.request(params: params, method: .post,encoding: JSONEncoding.default, progress: true)
|
}
|
|
class func exitGameOrStory(studyTime:Int)->Observable<BaseResponse<SimpleModel>>{
|
let params = ParamsAppender.build(url: All_Url)
|
params.interface(url: "/study/base/study/exitGameOrStory")
|
.append(key: "studyTime", value: studyTime)
|
return NetworkRequest.request(params: params, method: .get, progress: false)
|
}
|
|
class func updateOrderAddress(orderId:Int,recipientId:Int)->Observable<BaseResponse<SimpleModel>>{
|
let params = ParamsAppender.build(url: All_Url)
|
params.interface(url: "/goods/base/goods/updateOrderAddress")
|
.append(key: "orderId", value: orderId)
|
.append(key: "recipientId", value: recipientId)
|
return NetworkRequest.request(params: params, method: .get, progress: true)
|
}
|
|
class func onlineDuration()->Observable<BaseResponse<Int>>{
|
let params = ParamsAppender.build(url: All_Url)
|
params.interface(url: "/study/base/study/onlineDuration")
|
return NetworkRequest.request(params: params, method: .get, progress: false)
|
}
|
|
class func giveIntegral()->Observable<BaseResponse<SimpleModel>>{
|
let params = ParamsAppender.build(url: All_Url)
|
params.interface(url: "/study/base/study/giveIntegral")
|
return NetworkRequest.request(params: params, method: .get, progress: false)
|
}
|
|
class func confirmStudy(id:Int)->Observable<BaseResponse<SimpleModel>>{
|
let params = ParamsAppender.build(url: All_Url)
|
params.interface(url: "/goods/base/goods/confirmStudy")
|
.append(key: "id", value: id)
|
return NetworkRequest.request(params: params, method: .get, progress: false)
|
}
|
|
class func shareInfo()->Observable<BaseResponse<ShareInfoModel>>{
|
let params = ParamsAppender.build(url: All_Url)
|
params.interface(url: "/study/base/user/shareInfo")
|
return NetworkRequest.request(params: params, method: .get, progress: false)
|
}
|
|
class func vipInfo()->Observable<BaseResponse<[VIPInfoModel]>>{
|
let params = ParamsAppender.build(url: All_Url)
|
params.interface(url: "/study/base/user/vipInfoStudy")
|
return NetworkRequest.request(params: params, method: .post, progress: false)
|
}
|
|
class func loginOff()->Observable<BaseResponse<SimpleModel>>{
|
let params = ParamsAppender.build(url: All_Url)
|
params.interface(url: "/study/base/user/deleteUserStudy")
|
return NetworkRequest.request(params: params, method: .post, progress: true)
|
}
|
|
|
/// 支付
|
/// - Parameters:
|
/// - count: 月份,12
|
/// - price: 价格
|
class func orderStudent(count:Int,price:Double,payType:Int = 3)->Observable<BaseResponse<PaymentInfoModel>>{
|
let params = ParamsAppender.build(url: All_Url)
|
params.interface(url: "/study/base/user/orderStudent")
|
.append(key: "count", value: count)
|
.append(key: "price", value: price)
|
.append(key: "payType", value: payType)
|
return NetworkRequest.request(params: params, method: .post, progress: true)
|
}
|
|
class func pay(orderId:Int,transactionIdentifier:String,payType:Int = 3)->Observable<BaseResponse<SimpleModel>>{
|
let params = ParamsAppender.build(url: All_Url)
|
params.interface(url: "/study/base/user/pay")
|
.append(key: "orderId", value: orderId)
|
.append(key: "transactionIdentifier", value: transactionIdentifier)
|
.append(key: "payType", value: payType)
|
return NetworkRequest.request(params: params, method: .post,encoding: JSONEncoding.default, progress: true)
|
}
|
|
class func queryOrderState(orderId:Int)->Observable<BaseResponse<Bool>>{
|
let params = ParamsAppender.build(url: All_Url)
|
params.interface(url: "/study/base/user/queryOrderState")
|
.append(key: "orderId", value: orderId)
|
return NetworkRequest.request(params: params, method: .post, progress: false)
|
}
|
|
class func getIsOpen()->Observable<BaseResponse<Bool>>{
|
let params = ParamsAppender.build(url: All_Url)
|
params.interface(url: "/management/tSysSet/getIsOpen")
|
return NetworkRequest.request(params: params, method: .get, progress: false)
|
}
|
|
}
|
|
extension Services{
|
class func getAgreement(type:AgreementType)->Observable<BaseResponse<String>>{
|
let params = ParamsAppender.build(url: All_Url)
|
params.interface(url: "/study/base/user/getProtocol")
|
params.append(key: "type", value: type.rawValue)
|
return NetworkRequest.request(params: params, method: .post, progress: true)
|
}
|
}
|
|
|
extension Services{
|
static func startNetworkMonitor(){
|
let manager = NetworkReachabilityManager(host: All_Url)
|
manager?.startListening(onUpdatePerforming: { status in
|
switch status {
|
case .notReachable:alertError(msg: "当前网络不可用")
|
case .reachable(let type):
|
switch type{
|
case .ethernetOrWiFi:alert(msg: "当前为Wi-Fi网络")
|
case .cellular:alert(msg: "当前为移动网络")
|
}
|
default:break
|
}
|
})
|
}
|
}
|