Browse Source

2.1.8 最新 提交 up

openlockPPP 1 year ago
parent
commit
0efcab630f
44 changed files with 365 additions and 203 deletions
  1. 14 2
      jiaPei.xcodeproj/project.pbxproj
  2. BIN
      jiaPei.xcworkspace/xcuserdata/mimasigeling.xcuserdatad/UserInterfaceState.xcuserstate
  3. BIN
      jiaPei/Images.xcassets/AppIcon_NewRule.appiconset/1024.png
  4. BIN
      jiaPei/Images.xcassets/AppIcon_NewRule.appiconset/120-1.png
  5. BIN
      jiaPei/Images.xcassets/AppIcon_NewRule.appiconset/120.png
  6. BIN
      jiaPei/Images.xcassets/AppIcon_NewRule.appiconset/180.png
  7. BIN
      jiaPei/Images.xcassets/AppIcon_NewRule.appiconset/40.png
  8. BIN
      jiaPei/Images.xcassets/AppIcon_NewRule.appiconset/58.png
  9. BIN
      jiaPei/Images.xcassets/AppIcon_NewRule.appiconset/60.png
  10. BIN
      jiaPei/Images.xcassets/AppIcon_NewRule.appiconset/80.png
  11. BIN
      jiaPei/Images.xcassets/AppIcon_NewRule.appiconset/87.png
  12. 0 62
      jiaPei/Images.xcassets/AppIcon_NewRule.appiconset/Contents.json
  13. BIN
      jiaPei/Images.xcassets/AppIcon_Old.appiconset/App Store.png
  14. 0 80
      jiaPei/Images.xcassets/AppIcon_Old.appiconset/Contents.json
  15. BIN
      jiaPei/Images.xcassets/AppIcon_Old.appiconset/iPhone App Icon iOS 5,6.png
  16. BIN
      jiaPei/Images.xcassets/AppIcon_Old.appiconset/iPhone App Icon iOS 5,6@2x.png
  17. BIN
      jiaPei/Images.xcassets/AppIcon_Old.appiconset/iPhone App Icon iOS 7,12@2x.png
  18. BIN
      jiaPei/Images.xcassets/AppIcon_Old.appiconset/iPhone App Icon iOS 7,12@3x.png
  19. BIN
      jiaPei/Images.xcassets/AppIcon_Old.appiconset/iPhone Spotlight iOS 5,6 & Settings.png
  20. BIN
      jiaPei/Images.xcassets/AppIcon_Old.appiconset/iPhone Spotlight iOS 5,6 & Settings@2x.png
  21. BIN
      jiaPei/Images.xcassets/AppIcon_Old.appiconset/iPhone Spotlight iOS 5,6 & Settings@3x.png
  22. BIN
      jiaPei/Images.xcassets/AppIcon_Old.appiconset/iPhone Spotlight iOS 7,12@2x.png
  23. BIN
      jiaPei/Images.xcassets/AppIcon_Old.appiconset/iPhone Spotlight iOS 7,12@3x.png
  24. BIN
      jiaPei/Images.xcassets/AppIcon_Old.appiconset/iPhone notification iOS 7,12@2x.png
  25. BIN
      jiaPei/Images.xcassets/AppIcon_Old.appiconset/iPhone notification iOS 7,12@3x.png
  26. 22 0
      jiaPei/Images.xcassets/Modules/TimeModule/实车认证.imageset/Contents.json
  27. BIN
      jiaPei/Images.xcassets/Modules/TimeModule/实车认证.imageset/实车认证@2x.png
  28. BIN
      jiaPei/Images.xcassets/Modules/TimeModule/实车认证.imageset/实车认证@3x.png
  29. 27 14
      jiaPei/Modules/HomePageModule/ViewController/HomePage/RQHomePageViewController.m
  30. 2 1
      jiaPei/Modules/HomePageModule/ViewModel/HomePage/itemViewModel/RQHomePageOneOrFourSmallItemViewModel.m
  31. 2 1
      jiaPei/Modules/HomePageModule/ViewModel/HomePage/itemViewModel/RQHomePageSimulationExamItemViewModel.m
  32. 11 16
      jiaPei/Modules/OtherModules/ExerciseModule/View/ExercisePage/NYTestingCentreCell.m
  33. 2 1
      jiaPei/Modules/OtherModules/ExerciseModule/View/ExerciseSubPage/考试相关/RQSimulateExamBeginCell.m
  34. 2 1
      jiaPei/Modules/OtherModules/VIPModule/View/怎么学/RQVipContentCell.m
  35. 2 1
      jiaPei/Modules/TimeModule/Controller/RQTimeViewController.m
  36. 6 1
      jiaPei/Modules/TimeModule/ViewModel/RQTimeViewModel.m
  37. 20 0
      jiaPei/Modules/TimeModule/ViewModel/itemViewModel/NYTcarStudentLiveModel.h
  38. 108 0
      jiaPei/Modules/TimeModule/ViewModel/itemViewModel/NYTcarStudentLiveModel.m
  39. 19 0
      jiaPei/Modules/TimeModule/ViewModel/itemViewModel/RQTimeSingleItemViewModel.m
  40. 6 1
      jiaPei/OLD/Util/Tools/NYTools.h
  41. 16 1
      jiaPei/OLD/Util/Tools/NYTools.m
  42. 25 19
      jiaPei/OLD/Util/Tools/Tools.mm
  43. 1 1
      jiaPei/OLD/Util/jiaPeiManager/jiaPeiManager.h
  44. 80 1
      jiaPei/OLD/Util/jiaPeiManager/jiaPeiManager.m

+ 14 - 2
jiaPei.xcodeproj/project.pbxproj

@@ -108,6 +108,7 @@
 		90798B0B2A52722300E68461 /* NYComplaintListViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 90798B092A52722300E68461 /* NYComplaintListViewCell.xib */; };
 		90798B0F2A52AE2600E68461 /* ComplaintDataModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 90798B0E2A52AE2600E68461 /* ComplaintDataModel.m */; };
 		90798B122A53E87800E68461 /* NYComplaintListViewModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 90798B112A53E87800E68461 /* NYComplaintListViewModel.m */; };
+		908592122BB7B4CC005D2507 /* AESCipher.m in Sources */ = {isa = PBXBuildFile; fileRef = 908592102BB7B4CC005D2507 /* AESCipher.m */; };
 		908E6E642A89CCFC0090F00A /* DrCityInfoThree.json in Resources */ = {isa = PBXBuildFile; fileRef = 908E6E632A89CCFC0090F00A /* DrCityInfoThree.json */; };
 		908E6E662A8A08E40090F00A /* cities.json in Resources */ = {isa = PBXBuildFile; fileRef = 908E6E652A8A08E40090F00A /* cities.json */; };
 		90958FA02BAD65BA009BAA71 /* NYTools.m in Sources */ = {isa = PBXBuildFile; fileRef = 90958F9F2BAD65BA009BAA71 /* NYTools.m */; };
@@ -132,6 +133,7 @@
 		90BA2EA82A3316510029A54A /* NYGetjobStartRuleCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 90BA2EA62A3316510029A54A /* NYGetjobStartRuleCell.xib */; };
 		90BA2EAB2A3317510029A54A /* NYGetjobStartRuleViewModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 90BA2EAA2A3317510029A54A /* NYGetjobStartRuleViewModel.m */; };
 		90EF40692B71DBA9007EA477 /* CultivatePhotoModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 90EF40682B71DBA9007EA477 /* CultivatePhotoModel.m */; };
+		90FCD6A72BB517AF00E0CB61 /* NYTcarStudentLiveModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 90FCD6A62BB517AF00E0CB61 /* NYTcarStudentLiveModel.m */; };
 		D00177E22886A6F70078949E /* RQExerciseExplainHeaderView.m in Sources */ = {isa = PBXBuildFile; fileRef = D00177E12886A6F70078949E /* RQExerciseExplainHeaderView.m */; };
 		D00177E42886A70C0078949E /* RQExerciseExplainHeaderView.xib in Resources */ = {isa = PBXBuildFile; fileRef = D00177E32886A70C0078949E /* RQExerciseExplainHeaderView.xib */; };
 		D00177E72886AA650078949E /* RQExciseExplainHeaderGroupViewModel.m in Sources */ = {isa = PBXBuildFile; fileRef = D00177E62886AA650078949E /* RQExciseExplainHeaderGroupViewModel.m */; };
@@ -1855,6 +1857,8 @@
 		90798B0E2A52AE2600E68461 /* ComplaintDataModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ComplaintDataModel.m; sourceTree = "<group>"; };
 		90798B102A53E87800E68461 /* NYComplaintListViewModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NYComplaintListViewModel.h; sourceTree = "<group>"; };
 		90798B112A53E87800E68461 /* NYComplaintListViewModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NYComplaintListViewModel.m; sourceTree = "<group>"; };
+		908592102BB7B4CC005D2507 /* AESCipher.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AESCipher.m; sourceTree = "<group>"; };
+		908592112BB7B4CC005D2507 /* AESCipher.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AESCipher.h; sourceTree = "<group>"; };
 		908E6E632A89CCFC0090F00A /* DrCityInfoThree.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = DrCityInfoThree.json; sourceTree = "<group>"; };
 		908E6E652A8A08E40090F00A /* cities.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = cities.json; sourceTree = "<group>"; };
 		90958F9E2BAD65BA009BAA71 /* NYTools.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NYTools.h; sourceTree = "<group>"; };
@@ -1896,6 +1900,8 @@
 		90BA2EAA2A3317510029A54A /* NYGetjobStartRuleViewModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NYGetjobStartRuleViewModel.m; sourceTree = "<group>"; };
 		90EF40672B71DBA9007EA477 /* CultivatePhotoModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CultivatePhotoModel.h; sourceTree = "<group>"; };
 		90EF40682B71DBA9007EA477 /* CultivatePhotoModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CultivatePhotoModel.m; sourceTree = "<group>"; };
+		90FCD6A52BB517AF00E0CB61 /* NYTcarStudentLiveModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NYTcarStudentLiveModel.h; sourceTree = "<group>"; };
+		90FCD6A62BB517AF00E0CB61 /* NYTcarStudentLiveModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NYTcarStudentLiveModel.m; sourceTree = "<group>"; };
 		D00177E02886A6F70078949E /* RQExerciseExplainHeaderView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RQExerciseExplainHeaderView.h; sourceTree = "<group>"; };
 		D00177E12886A6F70078949E /* RQExerciseExplainHeaderView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = RQExerciseExplainHeaderView.m; sourceTree = "<group>"; };
 		D00177E32886A70C0078949E /* RQExerciseExplainHeaderView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = RQExerciseExplainHeaderView.xib; sourceTree = "<group>"; };
@@ -6133,6 +6139,8 @@
 		D0295E9B243F1B2300B46AB1 /* Tools */ = {
 			isa = PBXGroup;
 			children = (
+				908592112BB7B4CC005D2507 /* AESCipher.h */,
+				908592102BB7B4CC005D2507 /* AESCipher.m */,
 				D0295E9C243F1B2300B46AB1 /* Tools.h */,
 				D0295E9D243F1B2300B46AB1 /* Tools.mm */,
 				90958F9E2BAD65BA009BAA71 /* NYTools.h */,
@@ -8705,6 +8713,8 @@
 				D08E8E5A2930C2A5001CEF97 /* RQTimeSingleItemViewModel.m */,
 				D08E8E5C2930C2B9001CEF97 /* RQTimeRuleItemViewModel.h */,
 				D08E8E5D2930C2B9001CEF97 /* RQTimeRuleItemViewModel.m */,
+				90FCD6A52BB517AF00E0CB61 /* NYTcarStudentLiveModel.h */,
+				90FCD6A62BB517AF00E0CB61 /* NYTcarStudentLiveModel.m */,
 			);
 			path = itemViewModel;
 			sourceTree = "<group>";
@@ -11335,6 +11345,7 @@
 				D0D1F68A283F84DF0086C6AE /* RQHTTPService+RQAddCollectionRecord.m in Sources */,
 				D04DF79727006F72006E3633 /* UIView+RQExtension_Layer.m in Sources */,
 				D0294814243F07E300B46AB1 /* CDPStarEvaluation.m in Sources */,
+				90FCD6A72BB517AF00E0CB61 /* NYTcarStudentLiveModel.m in Sources */,
 				D02DC4A428AF5C4500750E51 /* RQHTTPService+RQDeleteFav.m in Sources */,
 				D04DF6B327006C56006E3633 /* RQTabBarViewModel.m in Sources */,
 				D074573629272C670050BE10 /* QMChatRoomCellFactory.m in Sources */,
@@ -11589,6 +11600,7 @@
 				D02010DD29373AE8001B9F4D /* SLEditSelectedBox.m in Sources */,
 				D00A15042754A41C00793046 /* RQVideoDetailSubPageCell.m in Sources */,
 				D04DF6C827006C57006E3633 /* RQCommonViewModel.m in Sources */,
+				908592122BB7B4CC005D2507 /* AESCipher.m in Sources */,
 				D01F2501292601950014E209 /* RQVipTimeItemViewModel.m in Sources */,
 				D07C7B3D22EE982600D3CD34 /* TrainHoursSubTableViewCell.m in Sources */,
 				D0870E392701B5A0004EC94E /* RQLoginBaseViewController.m in Sources */,
@@ -11796,7 +11808,7 @@
 				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
 				"CODE_SIGN_RESOURCE_RULES_PATH[sdk=*]" = "";
 				CODE_SIGN_STYLE = Automatic;
-				CURRENT_PROJECT_VERSION = 2182024032701;
+				CURRENT_PROJECT_VERSION = 2182024040101;
 				DEBUG_INFORMATION_FORMAT = dwarf;
 				DEVELOPMENT_TEAM = K7T6CU5SW5;
 				ENABLE_BITCODE = NO;
@@ -11879,7 +11891,7 @@
 				CODE_SIGN_IDENTITY = "iPhone Developer";
 				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
 				CODE_SIGN_STYLE = Automatic;
-				CURRENT_PROJECT_VERSION = 2182024032701;
+				CURRENT_PROJECT_VERSION = 2182024040101;
 				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
 				DEVELOPMENT_TEAM = K7T6CU5SW5;
 				ENABLE_BITCODE = NO;

BIN
jiaPei.xcworkspace/xcuserdata/mimasigeling.xcuserdatad/UserInterfaceState.xcuserstate


BIN
jiaPei/Images.xcassets/AppIcon_NewRule.appiconset/1024.png


BIN
jiaPei/Images.xcassets/AppIcon_NewRule.appiconset/120-1.png


BIN
jiaPei/Images.xcassets/AppIcon_NewRule.appiconset/120.png


BIN
jiaPei/Images.xcassets/AppIcon_NewRule.appiconset/180.png


BIN
jiaPei/Images.xcassets/AppIcon_NewRule.appiconset/40.png


BIN
jiaPei/Images.xcassets/AppIcon_NewRule.appiconset/58.png


BIN
jiaPei/Images.xcassets/AppIcon_NewRule.appiconset/60.png


BIN
jiaPei/Images.xcassets/AppIcon_NewRule.appiconset/80.png


BIN
jiaPei/Images.xcassets/AppIcon_NewRule.appiconset/87.png


+ 0 - 62
jiaPei/Images.xcassets/AppIcon_NewRule.appiconset/Contents.json

@@ -1,62 +0,0 @@
-{
-  "images" : [
-    {
-      "filename" : "40.png",
-      "idiom" : "iphone",
-      "scale" : "2x",
-      "size" : "20x20"
-    },
-    {
-      "filename" : "60.png",
-      "idiom" : "iphone",
-      "scale" : "3x",
-      "size" : "20x20"
-    },
-    {
-      "filename" : "58.png",
-      "idiom" : "iphone",
-      "scale" : "2x",
-      "size" : "29x29"
-    },
-    {
-      "filename" : "87.png",
-      "idiom" : "iphone",
-      "scale" : "3x",
-      "size" : "29x29"
-    },
-    {
-      "filename" : "80.png",
-      "idiom" : "iphone",
-      "scale" : "2x",
-      "size" : "40x40"
-    },
-    {
-      "filename" : "120.png",
-      "idiom" : "iphone",
-      "scale" : "3x",
-      "size" : "40x40"
-    },
-    {
-      "filename" : "120-1.png",
-      "idiom" : "iphone",
-      "scale" : "2x",
-      "size" : "60x60"
-    },
-    {
-      "filename" : "180.png",
-      "idiom" : "iphone",
-      "scale" : "3x",
-      "size" : "60x60"
-    },
-    {
-      "filename" : "1024.png",
-      "idiom" : "ios-marketing",
-      "scale" : "1x",
-      "size" : "1024x1024"
-    }
-  ],
-  "info" : {
-    "author" : "xcode",
-    "version" : 1
-  }
-}

BIN
jiaPei/Images.xcassets/AppIcon_Old.appiconset/App Store.png


+ 0 - 80
jiaPei/Images.xcassets/AppIcon_Old.appiconset/Contents.json

@@ -1,80 +0,0 @@
-{
-  "images" : [
-    {
-      "filename" : "iPhone notification iOS 7,12@2x.png",
-      "idiom" : "iphone",
-      "scale" : "2x",
-      "size" : "20x20"
-    },
-    {
-      "filename" : "iPhone notification iOS 7,12@3x.png",
-      "idiom" : "iphone",
-      "scale" : "3x",
-      "size" : "20x20"
-    },
-    {
-      "filename" : "iPhone Spotlight iOS 5,6 & Settings.png",
-      "idiom" : "iphone",
-      "scale" : "1x",
-      "size" : "29x29"
-    },
-    {
-      "filename" : "iPhone Spotlight iOS 5,6 & Settings@2x.png",
-      "idiom" : "iphone",
-      "scale" : "2x",
-      "size" : "29x29"
-    },
-    {
-      "filename" : "iPhone Spotlight iOS 5,6 & Settings@3x.png",
-      "idiom" : "iphone",
-      "scale" : "3x",
-      "size" : "29x29"
-    },
-    {
-      "filename" : "iPhone Spotlight iOS 7,12@2x.png",
-      "idiom" : "iphone",
-      "scale" : "2x",
-      "size" : "40x40"
-    },
-    {
-      "filename" : "iPhone Spotlight iOS 7,12@3x.png",
-      "idiom" : "iphone",
-      "scale" : "3x",
-      "size" : "40x40"
-    },
-    {
-      "filename" : "iPhone App Icon iOS 5,6.png",
-      "idiom" : "iphone",
-      "scale" : "1x",
-      "size" : "57x57"
-    },
-    {
-      "filename" : "iPhone App Icon iOS 5,6@2x.png",
-      "idiom" : "iphone",
-      "scale" : "2x",
-      "size" : "57x57"
-    },
-    {
-      "filename" : "iPhone App Icon iOS 7,12@2x.png",
-      "idiom" : "iphone",
-      "scale" : "2x",
-      "size" : "60x60"
-    },
-    {
-      "filename" : "iPhone App Icon iOS 7,12@3x.png",
-      "idiom" : "iphone",
-      "scale" : "3x",
-      "size" : "60x60"
-    },
-    {
-      "filename" : "App Store.png",
-      "idiom" : "ios-marketing",
-      "scale" : "1x",
-      "size" : "1024x1024"
-    }
-  ],
-  "info" : {
-    "author" : "xcode",
-    "version" : 1
-  }
-}

BIN
jiaPei/Images.xcassets/AppIcon_Old.appiconset/iPhone App Icon iOS 5,6.png


BIN
jiaPei/Images.xcassets/AppIcon_Old.appiconset/iPhone App Icon iOS 5,6@2x.png


BIN
jiaPei/Images.xcassets/AppIcon_Old.appiconset/iPhone App Icon iOS 7,12@2x.png


BIN
jiaPei/Images.xcassets/AppIcon_Old.appiconset/iPhone App Icon iOS 7,12@3x.png


BIN
jiaPei/Images.xcassets/AppIcon_Old.appiconset/iPhone Spotlight iOS 5,6 & Settings.png


BIN
jiaPei/Images.xcassets/AppIcon_Old.appiconset/iPhone Spotlight iOS 5,6 & Settings@2x.png


BIN
jiaPei/Images.xcassets/AppIcon_Old.appiconset/iPhone Spotlight iOS 5,6 & Settings@3x.png


BIN
jiaPei/Images.xcassets/AppIcon_Old.appiconset/iPhone Spotlight iOS 7,12@2x.png


BIN
jiaPei/Images.xcassets/AppIcon_Old.appiconset/iPhone Spotlight iOS 7,12@3x.png


BIN
jiaPei/Images.xcassets/AppIcon_Old.appiconset/iPhone notification iOS 7,12@2x.png


BIN
jiaPei/Images.xcassets/AppIcon_Old.appiconset/iPhone notification iOS 7,12@3x.png


+ 22 - 0
jiaPei/Images.xcassets/Modules/TimeModule/实车认证.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "实车认证@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "实车认证@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
jiaPei/Images.xcassets/Modules/TimeModule/实车认证.imageset/实车认证@2x.png


BIN
jiaPei/Images.xcassets/Modules/TimeModule/实车认证.imageset/实车认证@3x.png


+ 27 - 14
jiaPei/Modules/HomePageModule/ViewController/HomePage/RQHomePageViewController.m

@@ -36,7 +36,8 @@
 @property (nonatomic, readwrite, copy) NSString    *scanData;
 
 @property (nonatomic, readwrite, assign) CLLocationCoordinate2D  myLocation;
-
+// 在头文件中定义一个属性来跟踪扫描状态
+@property (nonatomic, assign) BOOL isScanning;
 @end
 
 @implementation RQHomePageViewController
@@ -59,19 +60,20 @@
 
 - (void)viewDidAppear:(BOOL)animated {
     [super viewDidAppear:animated];
-    if (RQ_COMMON_MANAGER.JSJP_APP_ICON_NEED_CHANGE) {
-        [[UIApplication sharedApplication] setAlternateIconName:@"AppIcon_NewRule" completionHandler:^(NSError * _Nullable error) {
-            if (error != nil) {
-                NSLog(@"set alternative icon error:%@", error.localizedDescription);
-            }
-        }];
-    } else {
-        [[UIApplication sharedApplication] setAlternateIconName:@"AppIcon_Old" completionHandler:^(NSError * _Nullable error) {
-            if (error != nil) {
-                NSLog(@"set alternative icon error:%@", error.localizedDescription);
-            }
-        }];
-    }
+//    if (RQ_COMMON_MANAGER.JSJP_APP_ICON_NEED_CHANGE&&
+//        !RQ_COMMON_MANAGER.APP_SWITCH) {//非审核下
+//        [[UIApplication sharedApplication] setAlternateIconName:@"AppIcon_NewRule" completionHandler:^(NSError * _Nullable error) {
+//            if (error != nil) {
+//                NSLog(@"set alternative icon error:%@", error.localizedDescription);
+//            }
+//        }];
+//    } else {
+//        [[UIApplication sharedApplication] setAlternateIconName:@"AppIcon_Old" completionHandler:^(NSError * _Nullable error) {
+//            if (error != nil) {
+//                NSLog(@"set alternative icon error:%@", error.localizedDescription);
+//            }
+//        }];
+//    }
 }
 
 - (void)viewDidLayoutSubviews {
@@ -252,6 +254,13 @@
 
 - (void)gotoPt {
     @weakify(self)
+    // 检查是否正在扫描,如果是,则直接返回
+    if (self.isScanning) {
+        return;
+    }
+    NSLog(@"点击了 扫码");
+    // 设置扫描状态为正在进行
+    self.isScanning = YES;
     [QMUITips showLoadingInView:DefaultTipsParentView];
     RQQRCodeViewController *vc = [[RQQRCodeViewController alloc] init];
     vc.modalPresentationStyle = UIModalPresentationFullScreen;
@@ -271,21 +280,25 @@
             if (RQ_USER_MANAGER.verifyLevel == 0) {
                 [self presentViewController:vc animated:YES completion:^{
                     [QMUITips hideAllTips];
+                    self.isScanning = NO;
                 }];
             } else {
                 if (bmkLocation.mockProbability <= RQ_USER_MANAGER.verifyLevel) {
                     [self presentViewController:vc animated:YES completion:^{
                         [QMUITips hideAllTips];
+                        self.isScanning = NO;
                     }];
                 } else {
                     [RQ_SHARE_FUNCTION showAlertWithMessage:@"请勿篡改定位信息!" completion:^(NSUInteger selectedOtherButtonIndex) {
                         [QMUITips hideAllTips];
+                        self.isScanning = NO;
                     }];
                 }
             }
         } else {
             [RQ_SHARE_FUNCTION showAlertWithMessage:@"定位失败!" completion:^(NSUInteger selectedOtherButtonIndex) {
                 [QMUITips hideAllTips];
+                self.isScanning = NO;
             }];
         }
     }];

+ 2 - 1
jiaPei/Modules/HomePageModule/ViewModel/HomePage/itemViewModel/RQHomePageOneOrFourSmallItemViewModel.m

@@ -46,7 +46,8 @@
                         webViewModel.prefersNavigationBarHidden = YES;
                         [RQ_APPDELEGATE.services pushViewModel:webViewModel animated:YES];
                     } else {
-                        if (RQ_VIP_Module.freeLookSimExamNum == 1) {
+                        if (RQ_VIP_Module.freeLookSimExamNum == 1||
+                            RQ_COMMON_MANAGER.APP_SWITCH) {//审核状态不用看广告
                             NSString *urlStr = [NSString stringWithFormat:@"https://mn.zzxcx.net/#/exam/begin?username=%@&subject=%@&model=%@&headimg=%@",[RQ_USER_MANAGER.currentUser.userName qmui_stringByEncodingUserInputQuery],RQ_YDTQuestion_Module.subjectStr,RQ_YDTQuestion_Module.carTypeStrNew,RQ_USER_MANAGER.currentUser.photo];
                             NSURLRequest *request = [[NSURLRequest alloc] initWithURL:[NSURL URLWithString:urlStr]];
                             RQWebViewModel *webViewModel = [[RQWebViewModel alloc] initWithServices:RQ_APPDELEGATE.services params:@{RQViewModelRequestKey:request, RQViewModelWebViewTypeKey:@(RQWebViewType_Exam)}];

+ 2 - 1
jiaPei/Modules/HomePageModule/ViewModel/HomePage/itemViewModel/RQHomePageSimulationExamItemViewModel.m

@@ -29,7 +29,8 @@
                     webViewModel.prefersNavigationBarHidden = YES;
                     [RQ_APPDELEGATE.services pushViewModel:webViewModel animated:YES];
                 } else {
-                    if (RQ_VIP_Module.freeLookSimExamNum == 1) {
+                    if (RQ_VIP_Module.freeLookSimExamNum == 1||
+                        RQ_COMMON_MANAGER.APP_SWITCH) {//审核状态不用看广告
                         NSString *urlStr = [NSString stringWithFormat:@"https://mn.zzxcx.net/#/exam/begin?username=%@&subject=%@&model=%@&headimg=%@",[RQ_USER_MANAGER.currentUser.userName qmui_stringByEncodingUserInputQuery],RQ_YDTQuestion_Module.subjectStr,RQ_YDTQuestion_Module.carTypeStrNew,RQ_USER_MANAGER.currentUser.photo];
                         NSURLRequest *request = [[NSURLRequest alloc] initWithURL:[NSURL URLWithString:urlStr]];
                         RQWebViewModel *webViewModel = [[RQWebViewModel alloc] initWithServices:RQ_APPDELEGATE.services params:@{RQViewModelRequestKey:request, RQViewModelWebViewTypeKey:@(RQWebViewType_Exam)}];

+ 11 - 16
jiaPei/Modules/OtherModules/ExerciseModule/View/ExercisePage/NYTestingCentreCell.m

@@ -56,26 +56,21 @@
         if(RQ_Exercise_Module.currentExerciseType == RQExerciseType_Recitation){//背题模式
             tryCount = 0;
         }
-        if (RQ_Exercise_Module.currentExerciseType == RQExerciseType_Sequential||
-            RQ_Exercise_Module.currentExerciseType == RQExerciseType_Recitation//背题模式
-            ){
-            if (RQ_YDTQuestion_Module.subject == RQHomePageSubjectType_SubjectOne) {
-                if (RQ_VIP_Module.isSubject1Vip||tryCount>0) {
-                    self.bottom_view.hidden = YES;
-                } else {
-                    self.bottom_view.hidden = NO;
-                }
-            } else if (RQ_YDTQuestion_Module.subject == RQHomePageSubjectType_SubjectFour) {
-                if (RQ_VIP_Module.isSubject4Vip||tryCount>0) {
-                    self.bottom_view.hidden = YES;
-                } else {
-                    self.bottom_view.hidden = NO;
-                }
+        if (RQ_YDTQuestion_Module.subject == RQHomePageSubjectType_SubjectOne) {
+            if (RQ_VIP_Module.isSubject1Vip||tryCount>0) {
+                self.bottom_view.hidden = YES;
             } else {
+                self.bottom_view.hidden = NO;
+            }
+        } else if (RQ_YDTQuestion_Module.subject == RQHomePageSubjectType_SubjectFour) {
+            if (RQ_VIP_Module.isSubject4Vip||tryCount>0) {
                 self.bottom_view.hidden = YES;
+            } else {
+                self.bottom_view.hidden = NO;
             }
+        } else {
+            self.bottom_view.hidden = YES;
         }
-        
 //        self.skillLabel.hidden = RQObjectIsNil(ydtJSModel);
     }];
     

+ 2 - 1
jiaPei/Modules/OtherModules/ExerciseModule/View/ExerciseSubPage/考试相关/RQSimulateExamBeginCell.m

@@ -91,7 +91,8 @@
                 webViewModel.prefersNavigationBarHidden = YES;
                 [RQ_APPDELEGATE.services pushViewModel:webViewModel animated:YES];
             } else {
-                if (RQ_VIP_Module.freeLookSimExamNum == 1) {
+                if (RQ_VIP_Module.freeLookSimExamNum == 1||
+                    RQ_COMMON_MANAGER.APP_SWITCH) {//审核状态不用看广告
                     NSString *urlStr = [NSString stringWithFormat:@"https://mn.zzxcx.net/#/exam/begin?username=%@&subject=%@&model=%@&headimg=%@",[RQ_USER_MANAGER.currentUser.userName qmui_stringByEncodingUserInputQuery],RQ_YDTQuestion_Module.subjectStr,RQ_YDTQuestion_Module.carTypeStrNew,RQ_USER_MANAGER.currentUser.photo];
                     NSURLRequest *request = [[NSURLRequest alloc] initWithURL:[NSURL URLWithString:urlStr]];
                     RQWebViewModel *webViewModel = [[RQWebViewModel alloc] initWithServices:RQ_APPDELEGATE.services params:@{RQViewModelRequestKey:request, RQViewModelWebViewTypeKey:@(RQWebViewType_Exam)}];

+ 2 - 1
jiaPei/Modules/OtherModules/VIPModule/View/怎么学/RQVipContentCell.m

@@ -144,7 +144,8 @@
                 webViewModel.prefersNavigationBarHidden = YES;
                 [RQ_APPDELEGATE.services pushViewModel:webViewModel animated:YES];
             } else {
-                if (RQ_VIP_Module.freeLookSimExamNum == 1) {
+                if (RQ_VIP_Module.freeLookSimExamNum == 1||
+                    RQ_COMMON_MANAGER.APP_SWITCH) {//审核状态不用看广告
                     NSString *urlStr = [NSString stringWithFormat:@"https://mn.zzxcx.net/#/exam/begin?username=%@&subject=%@&model=%@&headimg=%@",[RQ_USER_MANAGER.currentUser.userName qmui_stringByEncodingUserInputQuery],RQ_YDTQuestion_Module.subjectStr,RQ_YDTQuestion_Module.carTypeStrNew,RQ_USER_MANAGER.currentUser.photo];
                     NSURLRequest *request = [[NSURLRequest alloc] initWithURL:[NSURL URLWithString:urlStr]];
                     RQWebViewModel *webViewModel = [[RQWebViewModel alloc] initWithServices:RQ_APPDELEGATE.services params:@{RQViewModelRequestKey:request, RQViewModelWebViewTypeKey:@(RQWebViewType_Exam)}];

+ 2 - 1
jiaPei/Modules/TimeModule/Controller/RQTimeViewController.m

@@ -63,7 +63,8 @@
 - (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout minimumInteritemSpacingForSectionAtIndex:(NSInteger)section {
     switch (section) {
         case 1:
-            return (RQ_SCREEN_WIDTH - 32 - (RQ_FIT_HORIZONTAL(90.f) * 3)) / 2.f;
+            //理论计时,实车认证,我的学时,课堂培训
+            return (RQ_SCREEN_WIDTH - 32 - (RQ_FIT_HORIZONTAL(90.f) * 4)) / 2.f;
             
         default:
             return 8;

+ 6 - 1
jiaPei/Modules/TimeModule/ViewModel/RQTimeViewModel.m

@@ -67,10 +67,15 @@
         timeSingle5ItemViewModel.icon = @"模拟培训";
         timeSingle5ItemViewModel.title = @"模拟培训";
         
+        RQTimeSingleItemViewModel *timeSingle6ItemViewModel = [[RQTimeSingleItemViewModel alloc] init];
+        timeSingle6ItemViewModel.icon = @"实车认证";
+        timeSingle6ItemViewModel.title = @"实车认证";
+        
         //2023-12-13 日 , 从业计时不在开启
 //        group1.itemViewModels = RQ_USER_MANAGER.isCykh? @[timeSingle1ItemViewModel, timeSingle2ItemViewModel, timeSingle3ItemViewModel] : @[timeSingle1ItemViewModel, timeSingle3ItemViewModel];
         //2023-02-04 日 , 新增 课堂培训,模拟培训(待定)
-        group1.itemViewModels = @[timeSingle1ItemViewModel, timeSingle3ItemViewModel,timeSingle4ItemViewModel];
+        //2024-03-28 日 , 新增 实车认证
+        group1.itemViewModels = @[timeSingle1ItemViewModel,timeSingle6ItemViewModel, timeSingle3ItemViewModel,timeSingle4ItemViewModel];
         RQCommonGroupViewModel *group2 = [RQCommonGroupViewModel groupViewModel];
         RQTimeRuleItemViewModel *timeRuleItemViewModel = [[RQTimeRuleItemViewModel alloc] init];
         group2.itemViewModels = @[timeRuleItemViewModel];

+ 20 - 0
jiaPei/Modules/TimeModule/ViewModel/itemViewModel/NYTcarStudentLiveModel.h

@@ -0,0 +1,20 @@
+//
+//  NYTcarStudentLiveModel.h
+//  jiaPei
+//
+//  Created by Ning.ge on 2024/3/28.
+//  Copyright © 2024 JCZ. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface NYTcarStudentLiveModel : NSObject
+
+//处理实车认证
+-(void)tcarStudentLivedo;
+
+@end
+
+NS_ASSUME_NONNULL_END

+ 108 - 0
jiaPei/Modules/TimeModule/ViewModel/itemViewModel/NYTcarStudentLiveModel.m

@@ -0,0 +1,108 @@
+//
+//  NYTcarStudentLiveModel.m
+//  jiaPei
+//
+//  Created by Ning.ge on 2024/3/28.
+//  Copyright © 2024 JCZ. All rights reserved.
+//
+
+#import "NYTcarStudentLiveModel.h"
+#import "MapManager.h"
+
+@interface NYTcarStudentLiveModel (){
+    CGFloat _itemWH;
+    CGFloat _margin;
+    NSInteger _index;
+}
+
+@property (nonatomic, readwrite, assign) CLLocationCoordinate2D  myLocation;
+
+@end
+
+@implementation NYTcarStudentLiveModel
+
+-(void)tcarStudentLivedo{
+    NSString *citystr = [RQ_USER_MANAGER getParamsKey:@"APP_STU_LIVE"];
+    if ([citystr rangeOfString:RQ_USER_MANAGER.currentUser.city].location != NSNotFound) {
+        //定位功能
+        [MBProgressHUD rq_showProgressHUD:@"正在获取当前位置..."];
+        [[MapManager sharedManager] updateLocationWithCompleteBlock:^(BOOL success, CLLocation * _Nonnull location, BMKLocation * _Nullable bmkLocation) {
+            [MBProgressHUD rq_hideHUD];
+            if (success) {
+                _myLocation = location.coordinate;
+                //[self updateSTcarPhoto:@"123123"];
+                [self beginCheckBodyHumanface];
+            }
+        }];
+    }else{
+        ShowMsg(@"您所在城市未开启此功能");
+        return;
+    }
+}
+
+//人脸比对流程
+- (void)beginCheckBodyHumanface{
+    //先走人脸-在走api接口
+    @weakify(self)
+    ///  1.本地活体检测
+    [RQ_CHECKBODY_MANAGER beginCheckBodyWithCheckNum:3 completeBlock:^(BOOL success, NSDictionary * _Nullable dic) {
+        if (success) {
+            //上传-照片
+            __block NSMutableArray *arr = [NSMutableArray array];
+            NSData *imageData = [[NSData alloc] initWithBase64EncodedString:dic[@"normalImg"] options:NSDataBase64DecodingIgnoreUnknownCharacters];
+            NSString *method = [NSString stringWithFormat:@"education/imageup/%@/1/%@/face",RQ_USER_MANAGER.currentUser.city,RQ_USER_MANAGER.currentUser.outId];
+            [jiaPeiManager requestAnythingImageWithURL:method array:arr data:imageData completion:^(NSDictionary *dict) {
+                NSLog(@"%@",dict);
+                int code = [dict[@"code"] intValue];
+                if(code == 0 ){
+                    NSString *paths = dict[@"data"][@"paths"];
+                    NSString *photoid = dict[@"data"][@"id"];
+                    [self updateSTcarPhoto:photoid];
+                }else{
+                    if (!RQObjectIsNil(dict[@"msg"])) {
+                        ShowMsg(dict[@"msg"]);
+                        return;
+                    }
+                    if (!RQObjectIsNil(dict[@"body"])) {
+                        ShowMsg(dict[@"body"]);
+                        return;
+                    }
+                }
+            }];
+        }else{
+            ShowMsg(@"活体检测失败");
+        }
+    }];
+}
+
+//  实车认证
+-(void)updateSTcarPhoto:(NSString *)photoid{
+    NSString *lat = [NSString stringWithFormat:@"%.6f",_myLocation.latitude];
+    NSString *lng = [NSString stringWithFormat:@"%.6f",_myLocation.longitude];
+    NSMutableArray *arr = [NSMutableArray array];
+    [arr property:RQ_USER_MANAGER.currentUser.outId forKey:@"stuid"];//学员ID
+    [arr property:RQ_USER_MANAGER.currentUser.city   forKey:@"dqbh"];//地区编号
+    [arr property:[Tools getIDFV]   forKey:@"imei"];//IMEI
+//    [arr property:[Tools getIpAddresses]   forKey:@"ip"];//IP
+    [arr property:photoid   forKey:@"photo"];//imageup上传的ID
+    [arr property:lng   forKey:@"lng"];//经度
+    [arr property:lat   forKey:@"lat"];//纬度RQ_USER_MANAGER.currentUser.pxjd
+    [arr property:RQ_USER_MANAGER.currentUser.pxjd   forKey:@"subject"];//当前科目-阶段
+    NSString* method = @"uploadStudentLive";//http://api.jppt.com.cn/xmtmsappservice/appservice/uploadStudentLive
+    [jiaPeiManager requestAnythingWithURL:method arrayAES:arr data:nil completion:^(NSDictionary * dict) {
+        if(dict==nil)return;
+        if ([dict[@"code"] intValue] == 0) {
+            ShowMsg(@"实车认证成功!");
+        }
+        else
+        {
+            if (!RQObjectIsNil(dict[@"body"])) {
+                NSString *body = [NYTools decryptAES:dict[@"body"]];
+                ShowMsg(body);
+                return;
+            }
+        }
+    }];
+}
+
+@end

+ 19 - 0
jiaPei/Modules/TimeModule/ViewModel/itemViewModel/RQTimeSingleItemViewModel.m

@@ -13,6 +13,7 @@
 #import "NYTheoryTimeViewModel.h"
 #import "NYGetjobTimeViewModel.h"
 #import "NYClassRoomViewModel.h"
+#import "NYTcarStudentLiveModel.h"
 
 @interface RQTimeSingleItemViewModel () {
 //    PeriodVC                   *KVOPeriodVC;
@@ -26,6 +27,9 @@
     NSString                 *coachOrderId;        // 教练订单ID
     NSDictionary            *coachQRCodeDic;
 }
+
+@property (nonatomic,strong) NYTcarStudentLiveModel *tcarStudentLiveModel;
+
 @end
 
 @implementation RQTimeSingleItemViewModel
@@ -74,6 +78,8 @@
         [self gotoPeriod:2];
     } else if ([str isEqualToString:@"模拟培训"]) {
         [self gotoTrainInfo];
+    } else if ([str isEqualToString:@"实车认证"]) {
+        [self gotoTcarStudentLive];
     } else {
         
     }
@@ -199,6 +205,11 @@
     }
 }
 
+//实车认证
+- (void)gotoTcarStudentLive{
+    [self.tcarStudentLiveModel tcarStudentLivedo];
+}
+
 - (void)gotoTrainInfo {
 //    //是否开启活体检测 0-不开启 1-开启 活体检测比对动作数量
 //    if (RQ_USER_MANAGER.isycbd == 1 && RQ_USER_MANAGER.ycbdFaceCount == 0) {
@@ -318,4 +329,12 @@
         [Tools playAudioWithString:@"签退成功!"];
     }];
 }
+
+/// property
+- (NYTcarStudentLiveModel *)tcarStudentLiveModel{
+    if(!_tcarStudentLiveModel){
+        _tcarStudentLiveModel = [NYTcarStudentLiveModel new];
+    }
+    return _tcarStudentLiveModel;
+}
 @end

+ 6 - 1
jiaPei/OLD/Util/Tools/NYTools.h

@@ -7,7 +7,7 @@
 //
 
 #import <Foundation/Foundation.h>
-
+#import <CommonCrypto/CommonCryptor.h>
 NS_ASSUME_NONNULL_BEGIN
 @class RQExerciseModel;
 @interface NYTools : NSObject
@@ -25,6 +25,11 @@ NS_ASSUME_NONNULL_BEGIN
 //删除-题目
 +(void)delateUserKey:(NSString*)userKey;
 
+// AES加密方法
++ (NSString *)encryptAES:(NSString *)plainText;
+// AES解密方法
++ (NSString *)decryptAES:(id)cipherText;
+
 @end
 
 NS_ASSUME_NONNULL_END

+ 16 - 1
jiaPei/OLD/Util/Tools/NYTools.m

@@ -7,11 +7,13 @@
 //
 
 #import "NYTools.h"
+#import "AESCipher.h"
+#define nykey            @"YojZ7wyaYkgSqf1O"
+#define nyIv             @"KXh9DfxR0UKCEkH2"
 
 @implementation NYTools
 
 
-
 /**
  *记录-题目-对错
  *userKey 用户id
@@ -60,4 +62,17 @@
     [yyCache removeAllObjects];
 }
 
+
+// AES加密方法
++ (NSString *)encryptAES:(NSString *)plainText{
+    NSString *cipherText = aesEncryptString(plainText, nykey);
+    return cipherText;
+}
+
+// AES解密方法
++ (NSString *)decryptAES:(id)cipherText{
+    NSString *decryptedText = aesDecryptString(cipherText, nykey);
+    return decryptedText;
+}
+
 @end

+ 25 - 19
jiaPei/OLD/Util/Tools/Tools.mm

@@ -200,40 +200,46 @@
 
 
 //获取ip地址
-+ (NSString *)getIpAddresses
-{
++ (NSString *)getIpAddresses {
     NSString *address = @"error";
+    
     struct ifaddrs *interfaces = NULL;
     struct ifaddrs *temp_addr = NULL;
-    int success = 0;
-    // retrieve the current interfaces - returns 0 on success
-    success = getifaddrs(&interfaces);
-    if (success == 0)
-    {
-        // Loop through linked list of interfaces
+    
+    // 获取当前设备的网络接口列表
+    if (getifaddrs(&interfaces) == 0) {
+        // 遍历链表中的接口
         temp_addr = interfaces;
-        while(temp_addr != NULL)
-        {
-            if(temp_addr->ifa_addr->sa_family == AF_INET)
-            {
-                // Check if interface is en0 which is the wifi connection on the iPhone
-                if([[NSString stringWithUTF8String:temp_addr->ifa_name] isEqualToString:@"en0"])
-                {
-                    // Get NSString from C String
-                    address = [NSString stringWithUTF8String:inet_ntoa(((struct sockaddr_in *)temp_addr->ifa_addr)->sin_addr)];
+        while (temp_addr != NULL) {
+            sa_family_t sa_type = temp_addr->ifa_addr->sa_family;
+            if (sa_type == AF_INET || sa_type == AF_INET6) {
+                // 检查接口是否为WiFi连接
+                NSString *iface = [NSString stringWithUTF8String:temp_addr->ifa_name];
+                if ([iface isEqualToString:@"en0"]) {
+                    // 获取IPv4地址
+                    if (sa_type == AF_INET) {
+                        address = [NSString stringWithUTF8String:inet_ntoa(((struct sockaddr_in *)temp_addr->ifa_addr)->sin_addr)];
+                    }
+                    // 获取IPv6地址
+                    else {
+                        char str[INET6_ADDRSTRLEN];
+                        inet_ntop(AF_INET6, &(((struct sockaddr_in6 *)temp_addr->ifa_addr)->sin6_addr), str, INET6_ADDRSTRLEN);
+                        address = [NSString stringWithUTF8String:str];
+                    }
                 }
             }
             temp_addr = temp_addr->ifa_next;
         }
     }
-    // Free memory
+    
+    // 释放链表内存
     freeifaddrs(interfaces);
+    
     return address;
 }
 
 
 
-
 //获取IDFV
 + (NSString *)getIDFV
 {

+ 1 - 1
jiaPei/OLD/Util/jiaPeiManager/jiaPeiManager.h

@@ -24,7 +24,7 @@
  */
 + (void)requestAnythingWithURL:(NSString *)urlString array:(NSArray *)aAarray data:(NSData *)uplownData completion:(MyBlockType)finishBlock;
 
-
++ (void)requestAnythingWithURL:(NSString *)urlString arrayAES:(NSArray *)aAarray data:(NSData *)uplownData completion:(MyBlockType)finishBlock;
 
 #pragma mark              GET 请求
 + (void)requestGetAnythingWithURL:(NSString *)urlString completion:(MyBlockType)finishBlock;

+ 80 - 1
jiaPei/OLD/Util/jiaPeiManager/jiaPeiManager.m

@@ -154,7 +154,13 @@
             urlDefault = @"api/";
         }
     }
-
+    
+//    //实车认证
+//    NSArray *carAuthenticationArray = @[@"uploadStudentLive",
+//                              ];
+//    if ([carAuthenticationArray containsObject:urlP]) {
+//        urlDefault = @"xmtmsappservice/appservice/";
+//    }
 	
 	// 远程理论计时
 	NSArray *educationArr = @[@"getCurrentTime",			// 获取当前时间
@@ -350,6 +356,79 @@
     }];
 }
 
++ (void)requestAnythingWithURL:(NSString *)urlString arrayAES:(NSArray *)aAarray data:(NSData *)uplownData completion:(MyBlockType)finishBlock{
+    NSDictionary *dic = [jiaPeiManager getDicWithArray:aAarray];
+    if (aAarray == nil) {
+        dic = nil;
+    }else {
+        NSArray *keyArr = @[@"userOutId", @"stuOutId", @"queryValue", @"outId", @"stuId"];
+        NSPredicate * filterPredicate = [NSPredicate predicateWithFormat:@"SELF IN %@",keyArr];
+        NSArray * filter = [[dic allKeys] filteredArrayUsingPredicate:filterPredicate];
+        if (filter.count > 0) {
+            if (!dic[filter.firstObject] || [dic[filter.firstObject] length] < 1) {
+                ShowMsg(@"未绑定运管账号,无法进行此操作");
+                return;
+            }
+        }
+    }
+    //生成请求加密后的url
+    NSString *urlS = [jiaPeiManager getURLWithDict:dic urlPre:urlString];
+    [jiaPeiManager QMLog:urlS obj:dic];
+    if (![urlString isEqualToString:@"getSchInfoListByTujian"]) {
+        NSLog(@"发起请求---urlString---><>%@--->\n%@",urlS,dic);
+    }
+    
+    //设置请求管理器
+    AFHTTPSessionManager *afSessionManager = [AFHTTPSessionManager manager];
+    afSessionManager.requestSerializer  = [AFJSONRequestSerializer serializer];
+    afSessionManager.responseSerializer = [AFHTTPResponseSerializer serializer];
+//    [afSessionManager.requestSerializer setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
+    afSessionManager.responseSerializer.acceptableContentTypes = [afSessionManager.responseSerializer.acceptableContentTypes setByAddingObject:@"text/html"];
+
+    afSessionManager.requestSerializer.timeoutInterval = [urlString isEqualToString:@"uploadEduPic"]? 60 : 30;
+    NSString *dict_str = [NYTools encryptAES:dic.yy_modelToJSONString];
+    NSDictionary *body_dict = @{
+        @"body":dict_str
+    };
+    [afSessionManager POST:urlS parameters:body_dict headers:nil progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {
+        //请求成功
+        
+        if (responseObject == nil) {
+            NSDictionary *dic = nil;
+            finishBlock(dic);
+            return;
+        }
+        NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:responseObject
+                                                            options:NSJSONReadingMutableContainers
+                                                              error:nil];
+        
+        if (![urlString isEqualToString:@"getSchInfoListByTujian"]) {
+            NSLog(@"请求成功123---urlString---><>%@--->\n%@",urlS,dic);
+        }
+        [jiaPeiManager QMLog:urlS obj:dic];
+
+        finishBlock(dic);
+        
+    } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
+        //请求失败
+//            NSLog(@"请求失败123----><>%@",error);
+        RemoveHUD();
+        [jiaPeiManager QMLog:urlS obj:error.description];
+        //失败的时候 要把失败的事情传输回去
+        if ([error.domain isEqualToString:NSURLErrorDomain]) {
+            // network error
+            finishBlock(@{@"code" : @"1",@"body" : @"请检查网络连接"});
+        } else {
+            NSString *errorStr = [NSError rq_tipsFromError:error];
+            if (errorStr && ![errorStr isEqualToString:@""]) {
+                finishBlock(@{@"code" : @"1",@"body" : errorStr});
+            } else {
+                NSDictionary *dic = nil;
+                finishBlock(dic);
+            }
+        }
+    }];
+}
 
 + (void)requestAnythingWithURL:(NSString *)urlString array:(NSArray *)aAarray data:(NSData *)uplownData completion:(MyBlockType)finishBlock
 {