浏览代码

统计api。测试。

openlockPPP 1 年之前
父节点
当前提交
87865a96a2

+ 4 - 0
JiaPeiManage.xcodeproj/project.pbxproj

@@ -41,6 +41,7 @@
 		90971E6F2A4979F300267B7F /* StatisticsService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 90971E6E2A4979F300267B7F /* StatisticsService.swift */; };
 		90971E742A498C4C00267B7F /* StatisticsPageController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 90971E732A498C4C00267B7F /* StatisticsPageController.swift */; };
 		90971E762A498C9C00267B7F /* StatisticsPageController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 90971E752A498C9C00267B7F /* StatisticsPageController.xib */; };
+		90971E782A499BF200267B7F /* StuCountDataModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 90971E772A499BF200267B7F /* StuCountDataModel.swift */; };
 		909DA5C12A3999B30034501F /* NYTips.swift in Sources */ = {isa = PBXBuildFile; fileRef = 909DA5C02A3999B30034501F /* NYTips.swift */; };
 		909DA5C32A3A01220034501F /* CoachcityModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 909DA5C22A3A01220034501F /* CoachcityModel.swift */; };
 		909DA5C52A3AA1E60034501F /* MeTraineeNavBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 909DA5C42A3AA1E60034501F /* MeTraineeNavBar.swift */; };
@@ -192,6 +193,7 @@
 		90971E6E2A4979F300267B7F /* StatisticsService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StatisticsService.swift; sourceTree = "<group>"; };
 		90971E732A498C4C00267B7F /* StatisticsPageController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StatisticsPageController.swift; sourceTree = "<group>"; };
 		90971E752A498C9C00267B7F /* StatisticsPageController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = StatisticsPageController.xib; sourceTree = "<group>"; };
+		90971E772A499BF200267B7F /* StuCountDataModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StuCountDataModel.swift; sourceTree = "<group>"; };
 		909DA5C02A3999B30034501F /* NYTips.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NYTips.swift; sourceTree = "<group>"; };
 		909DA5C22A3A01220034501F /* CoachcityModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CoachcityModel.swift; sourceTree = "<group>"; };
 		909DA5C42A3AA1E60034501F /* MeTraineeNavBar.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MeTraineeNavBar.swift; sourceTree = "<group>"; };
@@ -552,6 +554,7 @@
 				908FEE982A42A1D300BEB81C /* StuResultDataModel.swift */,
 				908FEEA42A42D62A00BEB81C /* StuTmsSignDataModel.swift */,
 				908FEEAE2A42FA4F00BEB81C /* StuLogFacDataModel.swift */,
+				90971E772A499BF200267B7F /* StuCountDataModel.swift */,
 			);
 			path = Models;
 			sourceTree = "<group>";
@@ -1146,6 +1149,7 @@
 				90CE52A72A36E59A0033BD06 /* UIImage+Placeholder.swift in Sources */,
 				90CE52CF2A36E5EC0033BD06 /* UICollectionView+Rx.swift in Sources */,
 				90CE52742A36E5460033BD06 /* LWPlayerManager.swift in Sources */,
+				90971E782A499BF200267B7F /* StuCountDataModel.swift in Sources */,
 				90BC4BE52A3DDF33006FD683 /* MeTraineeSubjectHeaderView.swift in Sources */,
 				90CE52BC2A36E5B70033BD06 /* Networking.swift in Sources */,
 				90CE52E22A36E73A0033BD06 /* SplashViewController.swift in Sources */,

+ 47 - 0
JiaPeiManage/Sources/Models/StuCountDataModel.swift

@@ -0,0 +1,47 @@
+//
+//  StuCountDataModel.swift
+//  JiaPeiManage
+//
+//  Created by Ning.ge on 2023/6/26.
+//
+
+import ObjectMapper
+
+
+struct StuCountInfoModel : ImmutableMappable{
+    
+    var dateTime : String!
+    var stuCount : Int!
+
+    init(map: Map) throws {
+        dateTime = try map.value("dateTime") ?? ""
+        stuCount = try map.value("stuCount") ?? 0
+    }
+    
+}
+
+struct StuCountTotalModel : ImmutableMappable{
+    var total : Int!
+
+    init(map: Map) throws {
+        total = try map.value("total") ?? 0
+    }
+}
+
+struct StuCountDataModel : ImmutableMappable{
+    
+    var code : Int!
+    var data : StuCountTotalModel!
+    var msg : String!
+    var rows : [StuCountInfoModel]!
+    var total : Int!
+    
+    init(map: Map) throws {
+        code = try map.value("code")
+        data = try map.value("data")
+        msg = try map.value("msg") ?? ""
+        rows = try map.value("rows")
+        total = try map.value("total") ?? 0
+    }
+    
+}

+ 1 - 1
JiaPeiManage/Sources/Modulars/Home/Controllers/HomeViewController.swift

@@ -74,7 +74,7 @@ final class HomeViewController: BaseViewController {
         self.statisticsAction_button.rx.tap.subscribe ({ [unowned self] (_)  in
             if !LocalManager.isOpenLogin() { return}
             print("统计-action")
-            
+            NYSwRouter.push(NYSwPushType.trainee_statistics.path)
         }).disposed(by: disposeBag)
         //个人中心-action
         self.mineAction_button.rx.tap.subscribe ({ [unowned self] (_)  in

+ 17 - 0
JiaPeiManage/Sources/Modulars/Statistics/Controllers/StatisticsPageController.swift

@@ -11,9 +11,26 @@ import RxCocoa
 
 final class StatisticsPageController: BaseViewController {
 
+    // MARK: 服务属性
+    private let statisticsService: StatisticsServiceType = StatisticsService(networking: StatisticsNetworking())
+    
     override func viewDidLoad() {
         super.viewDidLoad()
         
+        
+        self.statisticsService.everyDayStuCountRequest(city: LocalManager.userInfo.city!, schoolId: LocalManager.userInfo.schoolId, startDate: "2023-06-25", endDate: "2023-06-26").subscribe(onSuccess: { stuCountDataModel in
+            
+//            self.rows.removeAll()
+//            self.traineeDataModel = traineeDataModel
+//            self.rows += traineeDataModel.rows!
+            print("everyDayStuCountRequest成功  %@",stuCountDataModel)
+//            self.hideLoadAnimation()
+//            self.tableView.reloadData()
+//            self.stopRefresh()
+        }, onError: { error in
+//            self.stopRefresh()
+        })
+        .disposed(by: disposeBag)
     }
     
 }

+ 1 - 7
JiaPeiManage/Sources/Modulars/Statistics/Controllers/StatisticsPageController.xib

@@ -5,7 +5,6 @@
         <deployment identifier="iOS"/>
         <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="21678"/>
         <capability name="Safe area layout guides" minToolsVersion="9.0"/>
-        <capability name="System colors in document resources" minToolsVersion="11.0"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
     </dependencies>
     <objects>
@@ -19,13 +18,8 @@
             <rect key="frame" x="0.0" y="0.0" width="375" height="812"/>
             <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
             <viewLayoutGuide key="safeArea" id="vUN-kp-3ea"/>
-            <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+            <color key="backgroundColor" red="0.043137254899999998" green="0.16862745100000001" blue="0.30196078430000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
             <point key="canvasLocation" x="66" y="-12"/>
         </view>
     </objects>
-    <resources>
-        <systemColor name="systemBackgroundColor">
-            <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
-        </systemColor>
-    </resources>
 </document>

+ 79 - 74
JiaPeiManage/Sources/Services/StatisticsAPI.swift

@@ -11,107 +11,112 @@ import SwiftyUserDefaults
 enum StatisticsAPI {
     
     //查询每日报名数
-    case loginUser(user_name:String, user_password:String ,city:String)
+    case everyDayStuCount(city:String,schoolId:Int,startDate:String, endDate:String)
     //查询每月报名数
-    case updateUser(user_name:String, user_password:String, new_password:String,city:String)
+    case everyMonthStuCount(city:String,schoolId:Int,startMonth:String, endMonth:String)
     //查询每年报名数
-    case dictUser(dictType:String)
+    case everyYearStuCount(city:String,schoolId:Int,startYear:String, endYear:String)
     //查询驾校ID 报名数
+    case statisticsStuCount(city:String,schoolId:Int,month:String)
     
 }
 
 extension StatisticsAPI: TargetType {
-    
-    var isShowLoading:Bool { return true }
+
     var baseURL: URL {
         switch self {
-        case .loginUser,.updateUser,.dictUser:
+        case .everyDayStuCount,.everyMonthStuCount,.everyYearStuCount,.statisticsStuCount:
             return URL(string: HttpRequest.api.path)!
         }
     }
     
     var path: String {
         switch self {
-        case .loginUser(_,_,_):
-            return "/jsjp-admin/open-api/tms/coachInfo/coachInfoLogin"
-        case .updateUser(_,_,_,_):
-            return "/jsjp-admin/open-api/tms/coachInfo/updateCoachPassword"
-        case .dictUser(_):
-            if let parameters = parameters {
-                return "/jsjp-admin/open-api/gzpt/userInfo/type/\(parameters["dictType"] ?? "")"
-            }
-            return ""
+        case .everyDayStuCount(_,_,_,_):
+            return "/jsjp-admin/open-api/tms/coachInfo/getEveryDayStuCountBySchoolId"
+        case .everyMonthStuCount(_,_,_,_):
+            return "/jsjp-admin/open-api/tms/coachInfo/getEveryMonthStuCountBySchoolId"
+        case .everyYearStuCount(_,_,_,_):
+            return "/jsjp-admin/open-api/tms/coachInfo/getEveryYearStuCountBySchoolId"
+        case .statisticsStuCount(_,_,_):
+            return "/jsjp-admin/open-api/tms/coachInfo/getStatisticsStuCountBySchoolId"
         }
     }
-    
-    var method: Moya.Method {
-        switch self {
-        case .loginUser,.dictUser:
-            return .get
-        case .updateUser:
-            return .put
-        default:
+        var method: Moya.Method {
+            //        switch self {
+            //        case .loginUser,.dictUser:
+            //            return .get
+            //        case .updateUser:
+            //            return .put
+            //        default:
+            //            return .get
+            //        }
             return .get
         }
-    }
-    
-    var sampleData: Data {
-        return Data()
-    }
-    
-    var task: Moya.Task {
-        switch self {
-        case .loginUser(_,_,_):
-            if let parameters = parameters {
-                return .requestParameters(parameters: parameters, encoding: URLEncoding.default)
-            }
-            return .requestPlain
-        case .updateUser(_,_,_,_):
+        
+        var sampleData: Data {
+            return Data()
+        }
+        
+        var task: Moya.Task {
+            //        switch self {
+            //        case .loginUser(_,_,_):
+            //            if let parameters = parameters {
+            //                return .requestParameters(parameters: parameters, encoding: URLEncoding.default)
+            //            }
+            //            return .requestPlain
+            //        case .updateUser(_,_,_,_):
+            //            if let parameters = parameters {
+            //                return .requestParameters(parameters: parameters, encoding: URLEncoding.default)
+            //            }
+            //            return .requestPlain
+            //        case .dictUser(_):
+            //            return .requestPlain
+            //        }
             if let parameters = parameters {
                 return .requestParameters(parameters: parameters, encoding: URLEncoding.default)
             }
             return .requestPlain
-        case .dictUser(_):
-            return .requestPlain
         }
-    }
-    
-    var headers: [String: String]? {
-        switch self {
-        case .updateUser:
-            return ["Content-Type":"application/x-www-form-urlencoded"]
-        default:
+        
+        var headers: [String: String]? {
             return ["Content-Type":"application/json"]
         }
-    }
-    
-    var parameters: [String : Any]? {
-        switch self {
-        case let .loginUser(user_name, user_password,city):
+        
+        var parameters: [String : Any]? {
             
-            return ["city": city,
-                    "idcard": user_name,
-                    "password":user_password,]
-        case let .updateUser(user_name, user_password,new_password, city):
-            return ["city": city,
-                    "idcard": user_name,
-                    "password":user_password,
-                    "newPassword":new_password,]
-        case let .dictUser(dictType):
-            return ["dictType": dictType]
-        default:
-            return nil
+            switch self {
+            case let .everyDayStuCount(city, schoolId,startDate,endDate):
+                return ["city": city,
+                        "schoolId": schoolId,
+                        "startDate":startDate,
+                        "endDate":endDate,]
+            case let .everyMonthStuCount(city, schoolId,startDate,endDate):
+                return ["city": city,
+                        "schoolId": schoolId,
+                        "startDate":startDate,
+                        "endDate":endDate,]
+            case let .everyYearStuCount(city, schoolId,startDate,endDate):
+                return ["city": city,
+                        "schoolId": schoolId,
+                        "startDate":startDate,
+                        "endDate":endDate,]
+            case let .statisticsStuCount(city, schoolId,month):
+                return ["city": city,
+                        "schoolId": schoolId,
+                        "month":month]
+            default:
+                return nil
+            }
         }
-    }
-    
-    var urlParameters: [String: Any]? {
-        var parameters = parameters
-//        if let extendsParameters = ["":""] {
-//            parameters = parameters?.merging(extendsParameters) { $1 } //组合
-//        }
-        return parameters
-    }
-    
-    
+        
+        var urlParameters: [String: Any]? {
+            var parameters = parameters
+            //        if let extendsParameters = ["":""] {
+            //            parameters = parameters?.merging(extendsParameters) { $1 } //组合
+            //        }
+            return parameters
+        }
+        
     
 }

+ 27 - 22
JiaPeiManage/Sources/Services/StatisticsService.swift

@@ -10,39 +10,44 @@ import RxCocoa
 import SwiftyJSON
 
 protocol StatisticsServiceType {
-
-    func loginRequest(user_name: String, user_password: String, city:String) -> Single<UserInfo>
-    
-    func updateRequest(user_name: String, user_password: String,new_password: String, city:String) -> Single<UpdateDataModel>
     
-    func dictRequest(dictType:String) -> Single<[CityItem]>
+    //查询每日报名数
+    func everyDayStuCountRequest(city: String, schoolId: Int, startDate: String, endDate: String) -> Single<StuCountDataModel>
+    //查询每月报名数
+    func everyMonthStuCount(city: String, schoolId: Int, startMonth: String, endMonth: String) -> Single<StuCountDataModel>
+    //查询每年报名数
+    func everyYearStuCount(city: String, schoolId: Int, startYear: String, endYear: String) -> Single<StuCountDataModel>
+    //查询驾校ID 报名数
+    func statisticsStuCount(city: String, schoolId: Int, month: String) -> Single<StuCountDataModel>
     
 }
 
 final class StatisticsService: StatisticsServiceType {
-
+    
     private let networking : StatisticsNetworking
     
     init(networking: StatisticsNetworking) {
         self.networking = networking
     }
-    
-    //登录
-    func loginRequest(user_name: String, user_password: String,city:String) -> RxSwift.Single<UserInfo> {
-        
-        let api = StatisticsAPI.loginUser(user_name: user_name, user_password: user_password,city: city)
-        return networking.request(api).map(UserInfo.self)
+    //查询每日报名数
+    func everyDayStuCountRequest(city: String, schoolId: Int, startDate: String, endDate: String) -> RxSwift.Single<StuCountDataModel> {
+        let api = StatisticsAPI.everyDayStuCount(city: city, schoolId: schoolId, startDate: startDate, endDate: endDate)
+        return networking.request(api).map(StuCountDataModel.self, isModel: true)
     }
-    
-    //修改密码
-    func updateRequest(user_name: String, user_password: String, new_password: String, city: String) -> RxSwift.Single<UpdateDataModel> {
-        let api = StatisticsAPI.updateUser(user_name: user_name, user_password: user_password, new_password: new_password, city: city)
-        return networking.request(api).map(UpdateDataModel.self, isModel: true)
+    //查询每月报名数
+    func everyMonthStuCount(city: String, schoolId: Int, startMonth: String, endMonth: String) -> RxSwift.Single<StuCountDataModel> {
+        let api = StatisticsAPI.everyMonthStuCount(city: city, schoolId: schoolId, startMonth: startMonth, endMonth: endMonth)
+        return networking.request(api).map(StuCountDataModel.self, isModel: true)
     }
-    
-    //获取地区字典
-    func dictRequest(dictType: String) -> RxSwift.Single<[CityItem]> {
-        let api = StatisticsAPI.dictUser(dictType: dictType)
-        return networking.request(api).map(CityItem.self)
+    //查询每年报名数
+    func everyYearStuCount(city: String, schoolId: Int, startYear: String, endYear: String) -> RxSwift.Single<StuCountDataModel> {
+        let api = StatisticsAPI.everyYearStuCount(city: city, schoolId: schoolId, startYear: startYear, endYear: endYear)
+        return networking.request(api).map(StuCountDataModel.self, isModel: true)
+    }
+    //查询驾校ID 报名数
+    func statisticsStuCount(city: String, schoolId: Int, month: String) -> RxSwift.Single<StuCountDataModel> {
+        let api = StatisticsAPI.statisticsStuCount(city: city, schoolId: schoolId, month: month)
+        return networking.request(api).map(StuCountDataModel.self, isModel: true)
     }
+   
 }