openlockPPP 1 týždeň pred
rodič
commit
654bef6992
100 zmenil súbory, kde vykonal 1460 pridanie a 116 odobranie
  1. 50 8
      jiaPei.xcodeproj/project.pbxproj
  2. BIN
      jiaPei.xcworkspace/xcuserdata/mimasigeling.xcuserdatad/UserInterfaceState.xcuserstate
  3. 12 0
      jiaPei/APPdelegateModularForRequest.m
  4. 23 0
      jiaPei/Images.xcassets/Modules/HomePageModule/充值使用.imageset/Contents.json
  5. BIN
      jiaPei/Images.xcassets/Modules/HomePageModule/充值使用.imageset/充值会员无限使用.png
  6. BIN
      jiaPei/Images.xcassets/Modules/HomePageModule/充值使用.imageset/充值会员无限使用@2x.png
  7. BIN
      jiaPei/Images.xcassets/Modules/HomePageModule/充值使用.imageset/充值会员无限使用@3x.png
  8. 22 0
      jiaPei/Images.xcassets/Modules/HomePageModule/椭圆 3.imageset/Contents.json
  9. BIN
      jiaPei/Images.xcassets/Modules/HomePageModule/椭圆 3.imageset/椭圆 3@2x.png
  10. BIN
      jiaPei/Images.xcassets/Modules/HomePageModule/椭圆 3.imageset/椭圆 3@3x.png
  11. 23 0
      jiaPei/Images.xcassets/Modules/HomePageModule/看广告解锁.imageset/Contents.json
  12. BIN
      jiaPei/Images.xcassets/Modules/HomePageModule/看广告解锁.imageset/看广告解锁使用.png
  13. BIN
      jiaPei/Images.xcassets/Modules/HomePageModule/看广告解锁.imageset/看广告解锁使用@2x.png
  14. BIN
      jiaPei/Images.xcassets/Modules/HomePageModule/看广告解锁.imageset/看广告解锁使用@3x.png
  15. 22 0
      jiaPei/Images.xcassets/Modules/HomePageModule/秘卷图一.imageset/Contents.json
  16. BIN
      jiaPei/Images.xcassets/Modules/HomePageModule/秘卷图一.imageset/秘卷图一@2x.png
  17. BIN
      jiaPei/Images.xcassets/Modules/HomePageModule/秘卷图一.imageset/秘卷图一@3x.png
  18. 22 0
      jiaPei/Images.xcassets/Modules/HomePageModule/秘卷图四.imageset/Contents.json
  19. BIN
      jiaPei/Images.xcassets/Modules/HomePageModule/秘卷图四.imageset/秘卷图四@2x.png
  20. BIN
      jiaPei/Images.xcassets/Modules/HomePageModule/秘卷图四.imageset/秘卷图四@3x.png
  21. 22 0
      jiaPei/Images.xcassets/Modules/LoginModule/wxicon.imageset/Contents.json
  22. BIN
      jiaPei/Images.xcassets/Modules/LoginModule/wxicon.imageset/wxicon@2x.png
  23. BIN
      jiaPei/Images.xcassets/Modules/LoginModule/wxicon.imageset/wxicon@3x.png
  24. 22 0
      jiaPei/Images.xcassets/Modules/LoginModule/绑定.imageset/Contents.json
  25. BIN
      jiaPei/Images.xcassets/Modules/LoginModule/绑定.imageset/绑定@2x.png
  26. BIN
      jiaPei/Images.xcassets/Modules/LoginModule/绑定.imageset/绑定@3x.png
  27. BIN
      jiaPei/Images.xcassets/Modules/OtherModule/ExerciseModule/0%10%背景.imageset/0%10%背景.png
  28. BIN
      jiaPei/Images.xcassets/Modules/OtherModule/ExerciseModule/0%10%背景.imageset/0%10%背景@2x.png
  29. BIN
      jiaPei/Images.xcassets/Modules/OtherModule/ExerciseModule/0%10%背景.imageset/0%10%背景@3x.png
  30. 0 1
      jiaPei/Images.xcassets/Modules/OtherModule/ExerciseModule/0%10%背景.imageset/Contents.json
  31. BIN
      jiaPei/Images.xcassets/Modules/OtherModule/ExerciseModule/20%30%背景.imageset/20%30%背景.png
  32. BIN
      jiaPei/Images.xcassets/Modules/OtherModule/ExerciseModule/20%30%背景.imageset/20%30%背景@2x.png
  33. BIN
      jiaPei/Images.xcassets/Modules/OtherModule/ExerciseModule/20%30%背景.imageset/20%30%背景@3x.png
  34. 0 1
      jiaPei/Images.xcassets/Modules/OtherModule/ExerciseModule/20%30%背景.imageset/Contents.json
  35. BIN
      jiaPei/Images.xcassets/Modules/OtherModule/ExerciseModule/40%50%背景.imageset/40%50%背景@2x.png
  36. BIN
      jiaPei/Images.xcassets/Modules/OtherModule/ExerciseModule/40%50%背景.imageset/40%50%背景@3x.png
  37. 22 0
      jiaPei/Images.xcassets/Modules/OtherModule/ExerciseModule/40%50%背景.imageset/Contents.json
  38. BIN
      jiaPei/Images.xcassets/Modules/OtherModule/ExerciseModule/60%70%背景.imageset/60%70%背景@2x.png
  39. BIN
      jiaPei/Images.xcassets/Modules/OtherModule/ExerciseModule/60%70%背景.imageset/60%70%背景@3x.png
  40. 22 0
      jiaPei/Images.xcassets/Modules/OtherModule/ExerciseModule/60%70%背景.imageset/Contents.json
  41. BIN
      jiaPei/Images.xcassets/Modules/OtherModule/ExerciseModule/80%90%背景图.imageset/80%90%背景图.png
  42. BIN
      jiaPei/Images.xcassets/Modules/OtherModule/ExerciseModule/80%90%背景图.imageset/80%90%背景图@2x.png
  43. BIN
      jiaPei/Images.xcassets/Modules/OtherModule/ExerciseModule/80%90%背景图.imageset/80%90%背景图@3x.png
  44. 0 1
      jiaPei/Images.xcassets/Modules/OtherModule/ExerciseModule/80%90%背景图.imageset/Contents.json
  45. 22 0
      jiaPei/Images.xcassets/Modules/OtherModule/ExerciseModule/deepseek.imageset/Contents.json
  46. BIN
      jiaPei/Images.xcassets/Modules/OtherModule/ExerciseModule/deepseek.imageset/deepseek@2x.png
  47. BIN
      jiaPei/Images.xcassets/Modules/OtherModule/ExerciseModule/deepseek.imageset/deepseek@3x.png
  48. 22 0
      jiaPei/Images.xcassets/Modules/OtherModule/VipModule/mijuan背景.imageset/Contents.json
  49. BIN
      jiaPei/Images.xcassets/Modules/OtherModule/VipModule/mijuan背景.imageset/mijuan背景@2x.png
  50. BIN
      jiaPei/Images.xcassets/Modules/OtherModule/VipModule/mijuan背景.imageset/mijuan背景@3x.png
  51. 22 0
      jiaPei/Images.xcassets/Modules/OtherModule/VipModule/not_adicon.imageset/Contents.json
  52. BIN
      jiaPei/Images.xcassets/Modules/OtherModule/VipModule/not_adicon.imageset/not_adicon@2x.png
  53. BIN
      jiaPei/Images.xcassets/Modules/OtherModule/VipModule/not_adicon.imageset/not_adicon@3x.png
  54. 22 0
      jiaPei/Images.xcassets/Modules/OtherModule/VipModule/tesu_song背景.imageset/Contents.json
  55. BIN
      jiaPei/Images.xcassets/Modules/OtherModule/VipModule/tesu_song背景.imageset/tesu_song背景@2x.png
  56. BIN
      jiaPei/Images.xcassets/Modules/OtherModule/VipModule/tesu_song背景.imageset/tesu_song背景@3x.png
  57. BIN
      jiaPei/JSJPXLI.gif
  58. 5 2
      jiaPei/Modules/HomePageModule/View/HomePage/NYHomePageOneBigCell.m
  59. 1 1
      jiaPei/Modules/HomePageModule/View/HomePage/NYHomePageOneBigCell.xib
  60. 93 8
      jiaPei/Modules/HomePageModule/ViewController/HomeSubPage/考前密卷/RQHoursBeforeExamHomeViewController.m
  61. 56 8
      jiaPei/Modules/HomePageModule/ViewController/HomeSubPage/考前密卷/RQHoursBeforeExamHomeViewController.xib
  62. 2 2
      jiaPei/Modules/HomePageModule/ViewModel/HomePage/RQHomePageSubjectOneOrFourViewModel.m
  63. 3 1
      jiaPei/Modules/HomePageModule/ViewModel/HomePage/RQHomePageViewModel.m
  64. 7 3
      jiaPei/Modules/HomePageModule/ViewModel/HomePage/itemViewModel/RQHomePageOneOrFourSmallItemViewModel.m
  65. 5 1
      jiaPei/Modules/HomePageModule/ViewModel/HomePage/itemViewModel/RQHomePageSimulationExamItemViewModel.m
  66. 17 0
      jiaPei/Modules/LoginModule/Controller/NYLoginBindViewController.h
  67. 170 0
      jiaPei/Modules/LoginModule/Controller/NYLoginBindViewController.m
  68. 99 0
      jiaPei/Modules/LoginModule/Controller/NYLoginBindViewController.xib
  69. 69 2
      jiaPei/Modules/LoginModule/Controller/RQLoginViewController.m
  70. 11 11
      jiaPei/Modules/LoginModule/Controller/RQLoginViewController.xib
  71. 3 0
      jiaPei/Modules/LoginModule/LoginModule.h
  72. 20 0
      jiaPei/Modules/LoginModule/Model/NYJsCodeModel.h
  73. 19 0
      jiaPei/Modules/LoginModule/Model/NYJsCodeModel.m
  74. 1 0
      jiaPei/Modules/LoginModule/Model/RQUserModel.h
  75. 21 0
      jiaPei/Modules/LoginModule/ViewModel/NYLoginBindViewModel.h
  76. 21 0
      jiaPei/Modules/LoginModule/ViewModel/NYLoginBindViewModel.m
  77. 3 0
      jiaPei/Modules/MainModule/MainModule.h
  78. 19 0
      jiaPei/Modules/MainModule/Model/RQHTTPService+ExistFreeSch.h
  79. 26 0
      jiaPei/Modules/MainModule/Model/RQHTTPService+ExistFreeSch.m
  80. 19 0
      jiaPei/Modules/MainModule/Model/RQHTTPService+MotivateAdTime.h
  81. 26 0
      jiaPei/Modules/MainModule/Model/RQHTTPService+MotivateAdTime.m
  82. 21 0
      jiaPei/Modules/MainModule/Model/RQHTTPService+UserVipByUser.h
  83. 25 0
      jiaPei/Modules/MainModule/Model/RQHTTPService+UserVipByUser.m
  84. 32 0
      jiaPei/Modules/MainModule/ViewController/RQMainTabBarViewController.m
  85. 19 2
      jiaPei/Modules/OtherModules/ADModule/RQADModule.m
  86. 1 0
      jiaPei/Modules/OtherModules/ExerciseModule/View/ExerciseSubPage/考试相关/RQExamProbabilyCell.h
  87. 92 29
      jiaPei/Modules/OtherModules/ExerciseModule/View/ExerciseSubPage/考试相关/RQExamProbabilyCell.m
  88. 109 24
      jiaPei/Modules/OtherModules/ExerciseModule/View/ExerciseSubPage/考试相关/RQExamProbabilyCell.xib
  89. 5 1
      jiaPei/Modules/OtherModules/ExerciseModule/View/ExerciseSubPage/考试相关/RQSimulateExamBeginCell.m
  90. 1 0
      jiaPei/Modules/OtherModules/ExerciseModule/ViewModel/ExerciseSubPage/考试相关/RQExamProbabilityViewModel.m
  91. 1 1
      jiaPei/Modules/OtherModules/ExerciseModule/ViewModel/ExerciseSubPage/考试相关/itemViewModel/RQExamProbabilyItemViewModel.m
  92. 29 0
      jiaPei/Modules/OtherModules/VIPModule/Model/RQHTTPService+PostWxJsjpcode.h
  93. 32 0
      jiaPei/Modules/OtherModules/VIPModule/Model/RQHTTPService+PostWxJsjpcode.m
  94. 4 0
      jiaPei/Modules/OtherModules/VIPModule/RQVIPModule.h
  95. 5 1
      jiaPei/Modules/OtherModules/VIPModule/View/怎么学/RQVipContentCell.m
  96. 1 1
      jiaPei/Modules/OtherModules/VideoModule/RQVideoModule.m
  97. 2 1
      jiaPei/Modules/OtherModules/XLIModule/Controller/NYLIVideoDetailViewController.m
  98. 5 1
      jiaPei/Modules/OtherModules/XLIModule/ViewModel/NYLIHomePageSimulationExamItemViewModel.m
  99. 5 0
      jiaPei/Modules/OtherModules/YDTQuestionModule/Modules/RQYDTXCQuestionModule.m
  100. 5 5
      jiaPei/Modules/ProfileModule/View/ChooseCarType/RQChooseCarTypeHeaderView.xib

+ 50 - 8
jiaPei.xcodeproj/project.pbxproj

@@ -98,6 +98,7 @@
 		900A2DE62A1FA89700395C1F /* RQBaseAppEventModule.m in Sources */ = {isa = PBXBuildFile; fileRef = 900A2DE12A1FA89700395C1F /* RQBaseAppEventModule.m */; };
 		9017E8DA2A6F97DC00571501 /* NYADViewManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 9017E8D92A6F97DC00571501 /* NYADViewManager.m */; };
 		9019427D2C743FA100AD65E9 /* NYKaoMockExaminationModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 9019427C2C743FA100AD65E9 /* NYKaoMockExaminationModel.m */; };
+		901A98022D80208F0014858D /* RQHTTPService+ExistFreeSch.m in Sources */ = {isa = PBXBuildFile; fileRef = 901A98012D80208F0014858D /* RQHTTPService+ExistFreeSch.m */; };
 		902614CA2CD21A1D007A7E1A /* NYQuestionContentView.m in Sources */ = {isa = PBXBuildFile; fileRef = 902614C92CD21A1D007A7E1A /* NYQuestionContentView.m */; };
 		902614D32CD232F1007A7E1A /* NYExerciseQuestionCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 902614D12CD232F1007A7E1A /* NYExerciseQuestionCell.m */; };
 		902614D42CD232F1007A7E1A /* NYExerciseQuestionCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 902614D22CD232F1007A7E1A /* NYExerciseQuestionCell.xib */; };
@@ -131,7 +132,6 @@
 		905E56B72D59DBF30012AB13 /* NYLIVideoDetailSubPageSectionHeaderView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 905E56B62D59DBF30012AB13 /* NYLIVideoDetailSubPageSectionHeaderView.xib */; };
 		90626F3D2A204BC400C8FA05 /* kt_jq.db in Resources */ = {isa = PBXBuildFile; fileRef = 90626F3C2A204BC300C8FA05 /* kt_jq.db */; };
 		90626F402A20540600C8FA05 /* YNYDTJQQuestionModule.m in Sources */ = {isa = PBXBuildFile; fileRef = 90626F3F2A20540600C8FA05 /* YNYDTJQQuestionModule.m */; };
-		906710A22D5F129C00D48FC8 /* JSJPXLI.gif in Resources */ = {isa = PBXBuildFile; fileRef = 906710A12D5F129C00D48FC8 /* JSJPXLI.gif */; };
 		906710A62D5F141100D48FC8 /* NYLIHomePageSimulationExamCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 906710A42D5F141100D48FC8 /* NYLIHomePageSimulationExamCell.m */; };
 		906710A72D5F141100D48FC8 /* NYLIHomePageSimulationExamCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 906710A52D5F141100D48FC8 /* NYLIHomePageSimulationExamCell.xib */; };
 		906710AA2D5F151B00D48FC8 /* NYLIHomePageSimulationExamItemViewModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 906710A92D5F151B00D48FC8 /* NYLIHomePageSimulationExamItemViewModel.m */; };
@@ -177,6 +177,7 @@
 		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 */; };
+		909DB92A2D81253000F3EC28 /* RQHTTPService+UserVipByUser.m in Sources */ = {isa = PBXBuildFile; fileRef = 909DB9292D81253000F3EC28 /* RQHTTPService+UserVipByUser.m */; };
 		909F0EE62CF06D9F00834944 /* NYHomePageOneBigCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 909F0EE52CF06D9F00834944 /* NYHomePageOneBigCell.xib */; };
 		909F0EE72CF06D9F00834944 /* NYHomePageOneBigCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 909F0EE42CF06D9F00834944 /* NYHomePageOneBigCell.m */; };
 		909F0EED2CF0788A00834944 /* NYHomePageOneBigItemViewModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 909F0EEC2CF0788A00834944 /* NYHomePageOneBigItemViewModel.m */; };
@@ -204,6 +205,7 @@
 		90B32CFA2D55A6EE00DD19C3 /* NYLIVipPriceCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 90B32CF82D55A6EE00DD19C3 /* NYLIVipPriceCell.m */; };
 		90B32CFB2D55A6EE00DD19C3 /* NYLIVipPriceCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 90B32CF92D55A6EE00DD19C3 /* NYLIVipPriceCell.xib */; };
 		90B32CFE2D55A8B000DD19C3 /* NYLIVipSinglePriceItemViewModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 90B32CFD2D55A8B000DD19C3 /* NYLIVipSinglePriceItemViewModel.m */; };
+		90B7ED6E2D82D113005717D5 /* RQHTTPService+MotivateAdTime.m in Sources */ = {isa = PBXBuildFile; fileRef = 90B7ED6D2D82D113005717D5 /* RQHTTPService+MotivateAdTime.m */; };
 		90BA2E822A3177B50029A54A /* NYTheoryTimeVC.m in Sources */ = {isa = PBXBuildFile; fileRef = 90BA2E802A3177B50029A54A /* NYTheoryTimeVC.m */; };
 		90BA2E872A3177DE0029A54A /* NYGetjobTimeVC.m in Sources */ = {isa = PBXBuildFile; fileRef = 90BA2E852A3177DE0029A54A /* NYGetjobTimeVC.m */; };
 		90BA2E8B2A317BEB0029A54A /* NYBasetjTimeVC.m in Sources */ = {isa = PBXBuildFile; fileRef = 90BA2E8A2A317BEB0029A54A /* NYBasetjTimeVC.m */; };
@@ -224,6 +226,11 @@
 		90C3D1B22D01492E00126535 /* NYBlockExerciseViewModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 90C3D1B12D01492E00126535 /* NYBlockExerciseViewModel.m */; };
 		90C3D1B62D01866300126535 /* NYBlockExerciseHeaderView.m in Sources */ = {isa = PBXBuildFile; fileRef = 90C3D1B42D01866300126535 /* NYBlockExerciseHeaderView.m */; };
 		90C3D1B72D01866300126535 /* NYBlockExerciseHeaderView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 90C3D1B52D01866300126535 /* NYBlockExerciseHeaderView.xib */; };
+		90C59C882D9A41F5005D12AE /* RQHTTPService+PostWxJsjpcode.m in Sources */ = {isa = PBXBuildFile; fileRef = 90C59C872D9A41F5005D12AE /* RQHTTPService+PostWxJsjpcode.m */; };
+		90C59C8B2D9A73FA005D12AE /* NYJsCodeModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 90C59C8A2D9A73FA005D12AE /* NYJsCodeModel.m */; };
+		90C59C8F2D9A8E67005D12AE /* NYLoginBindViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 90C59C8D2D9A8E67005D12AE /* NYLoginBindViewController.m */; };
+		90C59C902D9A8E67005D12AE /* NYLoginBindViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 90C59C8E2D9A8E67005D12AE /* NYLoginBindViewController.xib */; };
+		90C59C932D9A8F27005D12AE /* NYLoginBindViewModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 90C59C922D9A8F27005D12AE /* NYLoginBindViewModel.m */; };
 		90C6400D2CF7024500F53201 /* NYVideoCatalogueViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 90C6400C2CF7024500F53201 /* NYVideoCatalogueViewController.m */; };
 		90C6401A2CF7078A00F53201 /* MultilevelTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 90C640132CF7078A00F53201 /* MultilevelTableViewCell.xib */; };
 		90C6401B2CF7078A00F53201 /* MultilevelTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 90C640122CF7078A00F53201 /* MultilevelTableViewCell.m */; };
@@ -1953,6 +1960,8 @@
 		9017E8D92A6F97DC00571501 /* NYADViewManager.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NYADViewManager.m; sourceTree = "<group>"; };
 		9019427B2C743FA100AD65E9 /* NYKaoMockExaminationModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NYKaoMockExaminationModel.h; sourceTree = "<group>"; };
 		9019427C2C743FA100AD65E9 /* NYKaoMockExaminationModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NYKaoMockExaminationModel.m; sourceTree = "<group>"; };
+		901A98002D80208F0014858D /* RQHTTPService+ExistFreeSch.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "RQHTTPService+ExistFreeSch.h"; sourceTree = "<group>"; };
+		901A98012D80208F0014858D /* RQHTTPService+ExistFreeSch.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "RQHTTPService+ExistFreeSch.m"; sourceTree = "<group>"; };
 		902614C82CD21A1D007A7E1A /* NYQuestionContentView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NYQuestionContentView.h; sourceTree = "<group>"; };
 		902614C92CD21A1D007A7E1A /* NYQuestionContentView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NYQuestionContentView.m; sourceTree = "<group>"; };
 		902614D02CD232F1007A7E1A /* NYExerciseQuestionCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NYExerciseQuestionCell.h; sourceTree = "<group>"; };
@@ -2010,7 +2019,6 @@
 		90626F3C2A204BC300C8FA05 /* kt_jq.db */ = {isa = PBXFileReference; lastKnownFileType = file; path = kt_jq.db; sourceTree = "<group>"; };
 		90626F3E2A20540600C8FA05 /* YNYDTJQQuestionModule.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YNYDTJQQuestionModule.h; sourceTree = "<group>"; };
 		90626F3F2A20540600C8FA05 /* YNYDTJQQuestionModule.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YNYDTJQQuestionModule.m; sourceTree = "<group>"; };
-		906710A12D5F129C00D48FC8 /* JSJPXLI.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = JSJPXLI.gif; sourceTree = "<group>"; };
 		906710A32D5F141100D48FC8 /* NYLIHomePageSimulationExamCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NYLIHomePageSimulationExamCell.h; sourceTree = "<group>"; };
 		906710A42D5F141100D48FC8 /* NYLIHomePageSimulationExamCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NYLIHomePageSimulationExamCell.m; sourceTree = "<group>"; };
 		906710A52D5F141100D48FC8 /* NYLIHomePageSimulationExamCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = NYLIHomePageSimulationExamCell.xib; sourceTree = "<group>"; };
@@ -2088,6 +2096,8 @@
 		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>"; };
 		90958F9F2BAD65BA009BAA71 /* NYTools.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NYTools.m; sourceTree = "<group>"; };
+		909DB9282D81253000F3EC28 /* RQHTTPService+UserVipByUser.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "RQHTTPService+UserVipByUser.h"; sourceTree = "<group>"; };
+		909DB9292D81253000F3EC28 /* RQHTTPService+UserVipByUser.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "RQHTTPService+UserVipByUser.m"; sourceTree = "<group>"; };
 		909F0EE32CF06D9F00834944 /* NYHomePageOneBigCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NYHomePageOneBigCell.h; sourceTree = "<group>"; };
 		909F0EE42CF06D9F00834944 /* NYHomePageOneBigCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NYHomePageOneBigCell.m; sourceTree = "<group>"; };
 		909F0EE52CF06D9F00834944 /* NYHomePageOneBigCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = NYHomePageOneBigCell.xib; sourceTree = "<group>"; };
@@ -2134,6 +2144,8 @@
 		90B32CF92D55A6EE00DD19C3 /* NYLIVipPriceCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = NYLIVipPriceCell.xib; sourceTree = "<group>"; };
 		90B32CFC2D55A8B000DD19C3 /* NYLIVipSinglePriceItemViewModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NYLIVipSinglePriceItemViewModel.h; sourceTree = "<group>"; };
 		90B32CFD2D55A8B000DD19C3 /* NYLIVipSinglePriceItemViewModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NYLIVipSinglePriceItemViewModel.m; sourceTree = "<group>"; };
+		90B7ED6C2D82D113005717D5 /* RQHTTPService+MotivateAdTime.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "RQHTTPService+MotivateAdTime.h"; sourceTree = "<group>"; };
+		90B7ED6D2D82D113005717D5 /* RQHTTPService+MotivateAdTime.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "RQHTTPService+MotivateAdTime.m"; sourceTree = "<group>"; };
 		90BA2E7F2A3177B50029A54A /* NYTheoryTimeVC.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NYTheoryTimeVC.h; sourceTree = "<group>"; };
 		90BA2E802A3177B50029A54A /* NYTheoryTimeVC.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NYTheoryTimeVC.m; sourceTree = "<group>"; };
 		90BA2E842A3177DE0029A54A /* NYGetjobTimeVC.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NYGetjobTimeVC.h; sourceTree = "<group>"; };
@@ -2168,6 +2180,15 @@
 		90C3D1B32D01866300126535 /* NYBlockExerciseHeaderView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NYBlockExerciseHeaderView.h; sourceTree = "<group>"; };
 		90C3D1B42D01866300126535 /* NYBlockExerciseHeaderView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NYBlockExerciseHeaderView.m; sourceTree = "<group>"; };
 		90C3D1B52D01866300126535 /* NYBlockExerciseHeaderView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = NYBlockExerciseHeaderView.xib; sourceTree = "<group>"; };
+		90C59C862D9A41F5005D12AE /* RQHTTPService+PostWxJsjpcode.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "RQHTTPService+PostWxJsjpcode.h"; sourceTree = "<group>"; };
+		90C59C872D9A41F5005D12AE /* RQHTTPService+PostWxJsjpcode.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "RQHTTPService+PostWxJsjpcode.m"; sourceTree = "<group>"; };
+		90C59C892D9A73FA005D12AE /* NYJsCodeModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NYJsCodeModel.h; sourceTree = "<group>"; };
+		90C59C8A2D9A73FA005D12AE /* NYJsCodeModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NYJsCodeModel.m; sourceTree = "<group>"; };
+		90C59C8C2D9A8E67005D12AE /* NYLoginBindViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NYLoginBindViewController.h; sourceTree = "<group>"; };
+		90C59C8D2D9A8E67005D12AE /* NYLoginBindViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NYLoginBindViewController.m; sourceTree = "<group>"; };
+		90C59C8E2D9A8E67005D12AE /* NYLoginBindViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = NYLoginBindViewController.xib; sourceTree = "<group>"; };
+		90C59C912D9A8F27005D12AE /* NYLoginBindViewModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NYLoginBindViewModel.h; sourceTree = "<group>"; };
+		90C59C922D9A8F27005D12AE /* NYLoginBindViewModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NYLoginBindViewModel.m; sourceTree = "<group>"; };
 		90C6400B2CF7024500F53201 /* NYVideoCatalogueViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NYVideoCatalogueViewController.h; sourceTree = "<group>"; };
 		90C6400C2CF7024500F53201 /* NYVideoCatalogueViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NYVideoCatalogueViewController.m; sourceTree = "<group>"; };
 		90C6400F2CF7078A00F53201 /* CollectviewChooseCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CollectviewChooseCell.h; sourceTree = "<group>"; };
@@ -4685,7 +4706,6 @@
 		185F229D1BE6F38500720049 /* Supporting Files */ = {
 			isa = PBXGroup;
 			children = (
-				906710A12D5F129C00D48FC8 /* JSJPXLI.gif */,
 				90EAB9DF2D0AC6950024F379 /* easy_error_data.json */,
 				90EAB9E02D0AC6950024F379 /* pointData.json */,
 				D074576B29275AB10050BE10 /* Localizable.strings */,
@@ -9141,6 +9161,12 @@
 			children = (
 				D0EF8FFF288A8F6600CC4F96 /* RQHTTPService+RQGetJsjpSet.h */,
 				D0EF9000288A8F6600CC4F96 /* RQHTTPService+RQGetJsjpSet.m */,
+				901A98002D80208F0014858D /* RQHTTPService+ExistFreeSch.h */,
+				901A98012D80208F0014858D /* RQHTTPService+ExistFreeSch.m */,
+				909DB9282D81253000F3EC28 /* RQHTTPService+UserVipByUser.h */,
+				909DB9292D81253000F3EC28 /* RQHTTPService+UserVipByUser.m */,
+				90B7ED6C2D82D113005717D5 /* RQHTTPService+MotivateAdTime.h */,
+				90B7ED6D2D82D113005717D5 /* RQHTTPService+MotivateAdTime.m */,
 			);
 			path = Model;
 			sourceTree = "<group>";
@@ -9268,6 +9294,8 @@
 				D0870DE82701B59F004EC94E /* RQUpdatePasswordViewModel.m */,
 				D0870DE42701B59F004EC94E /* RQVerificationSmsCodeViewModel.h */,
 				D0870DEA2701B59F004EC94E /* RQVerificationSmsCodeViewModel.m */,
+				90C59C912D9A8F27005D12AE /* NYLoginBindViewModel.h */,
+				90C59C922D9A8F27005D12AE /* NYLoginBindViewModel.m */,
 			);
 			path = ViewModel;
 			sourceTree = "<group>";
@@ -9289,6 +9317,9 @@
 				D0870DF82701B59F004EC94E /* RQVerificationSmsCodeViewController.h */,
 				D0870DF02701B59F004EC94E /* RQVerificationSmsCodeViewController.m */,
 				D0870DF92701B59F004EC94E /* RQVerificationSmsCodeViewController.xib */,
+				90C59C8C2D9A8E67005D12AE /* NYLoginBindViewController.h */,
+				90C59C8D2D9A8E67005D12AE /* NYLoginBindViewController.m */,
+				90C59C8E2D9A8E67005D12AE /* NYLoginBindViewController.xib */,
 			);
 			path = Controller;
 			sourceTree = "<group>";
@@ -9298,6 +9329,8 @@
 			children = (
 				D0870E072701B59F004EC94E /* RQUserModel.h */,
 				D0870E1B2701B59F004EC94E /* RQUserModel.m */,
+				90C59C892D9A73FA005D12AE /* NYJsCodeModel.h */,
+				90C59C8A2D9A73FA005D12AE /* NYJsCodeModel.m */,
 				D0870DFF2701B59F004EC94E /* GetCode */,
 				D0870E082701B59F004EC94E /* UpdatePassword */,
 				D0870E1C2701B59F004EC94E /* Register */,
@@ -10357,6 +10390,8 @@
 				D0110F7E27D1B53E00528D08 /* RQVideoVipModel.m */,
 				D02845402972844A0099B9B4 /* RQHTTPService+RQGetActivation.h */,
 				D02845412972844A0099B9B4 /* RQHTTPService+RQGetActivation.m */,
+				90C59C862D9A41F5005D12AE /* RQHTTPService+PostWxJsjpcode.h */,
+				90C59C872D9A41F5005D12AE /* RQHTTPService+PostWxJsjpcode.m */,
 			);
 			path = Model;
 			sourceTree = "<group>";
@@ -10903,7 +10938,6 @@
 				D0295D62243F0B8C00B46AB1 /* img07.png in Resources */,
 				D0295CC3243F0B8B00B46AB1 /* 5-15-10.jpg in Resources */,
 				D0F8F1212929C8840008019C /* orderCommentVC.xib in Resources */,
-				906710A22D5F129C00D48FC8 /* JSJPXLI.gif in Resources */,
 				D0295CE7243F0B8C00B46AB1 /* 1-5-20.jpg in Resources */,
 				D0295B80243F0B8A00B46AB1 /* 1-2-21.jpg in Resources */,
 				D0295CF2243F0B8C00B46AB1 /* 1-6-1.jpg in Resources */,
@@ -10943,6 +10977,7 @@
 				D0295C14243F0B8B00B46AB1 /* 1-1-17.jpg in Resources */,
 				D0295C6E243F0B8B00B46AB1 /* 1-7-3.jpg in Resources */,
 				D0295C0C243F0B8B00B46AB1 /* 2-12-2.jpg in Resources */,
+				90C59C902D9A8E67005D12AE /* NYLoginBindViewController.xib in Resources */,
 				D0295CBE243F0B8B00B46AB1 /* 1-8-10.jpg in Resources */,
 				D0295BCC243F0B8B00B46AB1 /* 2-12-17.jpg in Resources */,
 				D0295D02243F0B8C00B46AB1 /* 1-1-41.jpg in Resources */,
@@ -11560,6 +11595,7 @@
 				D05A320D29220C04002EB3E2 /* RQVipAuthorityNewItemViewModel.m in Sources */,
 				D084D88227CE04EC00E521F0 /* RQVipViewController.m in Sources */,
 				90044C432A4EAF6A003FBBF8 /* NYComplaintPageViewController.m in Sources */,
+				90C59C932D9A8F27005D12AE /* NYLoginBindViewModel.m in Sources */,
 				D0C44C442902811A0061B812 /* RQVipBuyNewView.m in Sources */,
 				D00A14B72754A3D600793046 /* ZFPortraitControlView+RQExtension.m in Sources */,
 				90D8AF682D5C41A90087C165 /* NYLIVideoDetailSubGroupViewModel.m in Sources */,
@@ -11593,6 +11629,7 @@
 				D0870D672701A6B9004EC94E /* NSObject+BKBlockExecution.m in Sources */,
 				D04DF7C227006F72006E3633 /* RQKeyedSubscript.m in Sources */,
 				D0870D5C2701A6B9004EC94E /* NSDictionary+BlocksKit.m in Sources */,
+				90B7ED6E2D82D113005717D5 /* RQHTTPService+MotivateAdTime.m in Sources */,
 				D04DF7BC27006F72006E3633 /* RACSignal+RQHTTPServiceAdditions.m in Sources */,
 				D0354B12230E352300E1C54D /* BMKClusterAlgorithm.m in Sources */,
 				D00A15002754A41C00793046 /* RQVideoDetailViewController.m in Sources */,
@@ -11679,6 +11716,7 @@
 				D0D1F684283F84DF0086C6AE /* RQExerciseModule.m in Sources */,
 				D0BD3F332664D1A5006858B7 /* RQRemoteTheoryManager.m in Sources */,
 				90EAB9ED2D0AE3160024F379 /* NYFailSpecialExerciseDetailItemModel.m in Sources */,
+				90C59C8B2D9A73FA005D12AE /* NYJsCodeModel.m in Sources */,
 				18C1F7311BF844D3001955D6 /* STButton.m in Sources */,
 				18A917B61BE8A73C0022B452 /* TrainRecord.m in Sources */,
 				D0D1F6A5283F84E00086C6AE /* JXCategoryTitleBackgroundCell.m in Sources */,
@@ -11731,6 +11769,7 @@
 				D0D1F689283F84DF0086C6AE /* RQHTTPService+RQCancleCollectionRecord.m in Sources */,
 				D05EF12F28C873A8002BFC0A /* RQStrongViewModel.m in Sources */,
 				D0481DBE2899442D00F90D55 /* RQSimulateExamBeginCell.m in Sources */,
+				90C59C8F2D9A8E67005D12AE /* NYLoginBindViewController.m in Sources */,
 				D09E5D4925E3AA260099E87C /* BDFaceAdjustParamsCell.m in Sources */,
 				181683A41D5F170700327270 /* LocationShareModel.m in Sources */,
 				D07C3F3725C8E18E00DA425C /* RQCustomWebViewViewController.m in Sources */,
@@ -11956,6 +11995,7 @@
 				18CDE8181CC60439004EF0A6 /* ScanVC.m in Sources */,
 				9037BAFF2D6FFDEE00C8F6FF /* NYLIHomePageVideoExamCell.m in Sources */,
 				9034A0252B80A399001FBB37 /* NYClassRoomPeiPhotoCell.m in Sources */,
+				90C59C882D9A41F5005D12AE /* RQHTTPService+PostWxJsjpcode.m in Sources */,
 				D0870D802701A6B9004EC94E /* UITextField+YYAdd.m in Sources */,
 				D04DF6B827006C56006E3633 /* RQTableViewModel.m in Sources */,
 				90BA2E8F2A31B2430029A54A /* NYTheoryTimeViewModel.m in Sources */,
@@ -11979,6 +12019,7 @@
 				D0870E502701B5A0004EC94E /* RQHTTPService+RQLogin.m in Sources */,
 				D09E5D5325E3AA260099E87C /* BDFaceBaseViewController.m in Sources */,
 				D0110F7927D1AEBB00528D08 /* RQVipAlertHeaderGroupViewModel.m in Sources */,
+				909DB92A2D81253000F3EC28 /* RQHTTPService+UserVipByUser.m in Sources */,
 				D0D1F675283F84DF0086C6AE /* RQExerciseQuestionItemViewModel.m in Sources */,
 				D074576229272C680050BE10 /* QMPickedDocViewController.m in Sources */,
 				D02010D629373AE8001B9F4D /* SLEditTextView.m in Sources */,
@@ -12149,6 +12190,7 @@
 				D074573D29272C680050BE10 /* QMChatRoomNoteCell.m in Sources */,
 				D0870E322701B5A0004EC94E /* RQLoginViewModel.m in Sources */,
 				906815182D54525300FE123F /* NYLIVipContentNewItemViewModel.m in Sources */,
+				901A98022D80208F0014858D /* RQHTTPService+ExistFreeSch.m in Sources */,
 				D0870E3B2701B5A0004EC94E /* RQUpdatePasswordViewController.m in Sources */,
 				D0870E4F2701B5A0004EC94E /* RQHTTPService+RQVerificationSmsCode.m in Sources */,
 				D04DF7A127006F72006E3633 /* UIViewController+RQExtension.m in Sources */,
@@ -12603,7 +12645,7 @@
 				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
 				"CODE_SIGN_RESOURCE_RULES_PATH[sdk=*]" = "";
 				CODE_SIGN_STYLE = Automatic;
-				CURRENT_PROJECT_VERSION = 2322025030302;
+				CURRENT_PROJECT_VERSION = 2352025040801;
 				DEBUG_INFORMATION_FORMAT = dwarf;
 				DEVELOPMENT_TEAM = K7T6CU5SW5;
 				ENABLE_BITCODE = NO;
@@ -12641,7 +12683,7 @@
 					"$(PROJECT_DIR)/jiaPei/Vendor/BaiDuFaceSDK/BDFaceSDK/lib",
 					"$(PROJECT_DIR)/jiaPei/Vendor/QiNiu_IMSDK/Vendors/Voice",
 				);
-				MARKETING_VERSION = 2.3.2;
+				MARKETING_VERSION = 2.3.5;
 				ONLY_ACTIVE_ARCH = YES;
 				OTHER_CFLAGS = (
 					"$(inherited)",
@@ -12689,7 +12731,7 @@
 				CODE_SIGN_IDENTITY = "iPhone Developer";
 				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
 				CODE_SIGN_STYLE = Automatic;
-				CURRENT_PROJECT_VERSION = 2322025030302;
+				CURRENT_PROJECT_VERSION = 2352025040801;
 				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
 				DEVELOPMENT_TEAM = K7T6CU5SW5;
 				ENABLE_BITCODE = NO;
@@ -12727,7 +12769,7 @@
 					"$(PROJECT_DIR)/jiaPei/Vendor/BaiDuFaceSDK/BDFaceSDK/lib",
 					"$(PROJECT_DIR)/jiaPei/Vendor/QiNiu_IMSDK/Vendors/Voice",
 				);
-				MARKETING_VERSION = 2.3.2;
+				MARKETING_VERSION = 2.3.5;
 				ONLY_ACTIVE_ARCH = NO;
 				OTHER_CFLAGS = (
 					"$(inherited)",

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


+ 12 - 0
jiaPei/APPdelegateModularForRequest.m

@@ -151,6 +151,8 @@ RQAppEventMod(APPdelegateModularForRequest)
                 RQ_COMMON_MANAGER.JSJP_iOS_PT = [dictInfoModel.dictValue integerValue];
             } else if ([dictInfoModel.dictLabel isEqualToString:@"JSJP_SHARE_CITY"]) {
                 RQ_COMMON_MANAGER.JSJP_SHARE_CITY = dictInfoModel.dictValue;
+            } else if ([dictInfoModel.dictLabel isEqualToString:@"JSJP_FREE_VIP"]) {
+                RQ_COMMON_MANAGER.JSJP_FREE_VIP = dictInfoModel.dictValue;
             }else if ([dictInfoModel.dictLabel isEqualToString:@"JSJP_XCX_NAME"]) {
                 RQ_COMMON_MANAGER.JSJP_XCX_NAME = dictInfoModel.dictValue;
             }else if ([dictInfoModel.dictLabel isEqualToString:@"JSJP_XCX_PAGE"]) {
@@ -175,6 +177,16 @@ RQAppEventMod(APPdelegateModularForRequest)
             }
         }];
     }];
+    
+    [[RQ_HTTP_Service getMotivateAdTime] subscribeNext:^(NSArray *setArr) {
+        [setArr.rac_sequence.signal subscribeNext:^(RQDictInfoModel *dictInfoModel) {
+            if ([dictInfoModel.dictLabel isEqualToString:RQ_USER_MANAGER.currentUser.city]) {
+                //广告间隔时间
+                RQ_COMMON_MANAGER.JSJP_APP_MAdTime = [dictInfoModel.dictValue integerValue];
+            }
+        }];
+    }];
+    
     [[RQ_HTTP_Service getChapterList] subscribeNext:^(id  _Nullable x) {
         
     }];

+ 23 - 0
jiaPei/Images.xcassets/Modules/HomePageModule/充值使用.imageset/Contents.json

@@ -0,0 +1,23 @@
+{
+  "images" : [
+    {
+      "filename" : "充值会员无限使用.png",
+      "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/HomePageModule/充值使用.imageset/充值会员无限使用.png


BIN
jiaPei/Images.xcassets/Modules/HomePageModule/充值使用.imageset/充值会员无限使用@2x.png


BIN
jiaPei/Images.xcassets/Modules/HomePageModule/充值使用.imageset/充值会员无限使用@3x.png


+ 22 - 0
jiaPei/Images.xcassets/Modules/HomePageModule/椭圆 3.imageset/Contents.json

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

BIN
jiaPei/Images.xcassets/Modules/HomePageModule/椭圆 3.imageset/椭圆 3@2x.png


BIN
jiaPei/Images.xcassets/Modules/HomePageModule/椭圆 3.imageset/椭圆 3@3x.png


+ 23 - 0
jiaPei/Images.xcassets/Modules/HomePageModule/看广告解锁.imageset/Contents.json

@@ -0,0 +1,23 @@
+{
+  "images" : [
+    {
+      "filename" : "看广告解锁使用.png",
+      "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/HomePageModule/看广告解锁.imageset/看广告解锁使用.png


BIN
jiaPei/Images.xcassets/Modules/HomePageModule/看广告解锁.imageset/看广告解锁使用@2x.png


BIN
jiaPei/Images.xcassets/Modules/HomePageModule/看广告解锁.imageset/看广告解锁使用@3x.png


+ 22 - 0
jiaPei/Images.xcassets/Modules/HomePageModule/秘卷图一.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/HomePageModule/秘卷图一.imageset/秘卷图一@2x.png


BIN
jiaPei/Images.xcassets/Modules/HomePageModule/秘卷图一.imageset/秘卷图一@3x.png


+ 22 - 0
jiaPei/Images.xcassets/Modules/HomePageModule/秘卷图四.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/HomePageModule/秘卷图四.imageset/秘卷图四@2x.png


BIN
jiaPei/Images.xcassets/Modules/HomePageModule/秘卷图四.imageset/秘卷图四@3x.png


+ 22 - 0
jiaPei/Images.xcassets/Modules/LoginModule/wxicon.imageset/Contents.json

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

BIN
jiaPei/Images.xcassets/Modules/LoginModule/wxicon.imageset/wxicon@2x.png


BIN
jiaPei/Images.xcassets/Modules/LoginModule/wxicon.imageset/wxicon@3x.png


+ 22 - 0
jiaPei/Images.xcassets/Modules/LoginModule/绑定.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/LoginModule/绑定.imageset/绑定@2x.png


BIN
jiaPei/Images.xcassets/Modules/LoginModule/绑定.imageset/绑定@3x.png


BIN
jiaPei/Images.xcassets/Modules/OtherModule/ExerciseModule/0%10%背景.imageset/0%10%背景.png


BIN
jiaPei/Images.xcassets/Modules/OtherModule/ExerciseModule/0%10%背景.imageset/0%10%背景@2x.png


BIN
jiaPei/Images.xcassets/Modules/OtherModule/ExerciseModule/0%10%背景.imageset/0%10%背景@3x.png


+ 0 - 1
jiaPei/Images.xcassets/Modules/OtherModule/ExerciseModule/0%10%背景.imageset/Contents.json

@@ -1,7 +1,6 @@
 {
   "images" : [
     {
-      "filename" : "0%10%背景.png",
       "idiom" : "universal",
       "scale" : "1x"
     },

BIN
jiaPei/Images.xcassets/Modules/OtherModule/ExerciseModule/20%30%背景.imageset/20%30%背景.png


BIN
jiaPei/Images.xcassets/Modules/OtherModule/ExerciseModule/20%30%背景.imageset/20%30%背景@2x.png


BIN
jiaPei/Images.xcassets/Modules/OtherModule/ExerciseModule/20%30%背景.imageset/20%30%背景@3x.png


+ 0 - 1
jiaPei/Images.xcassets/Modules/OtherModule/ExerciseModule/20%30%背景.imageset/Contents.json

@@ -1,7 +1,6 @@
 {
   "images" : [
     {
-      "filename" : "20%30%背景.png",
       "idiom" : "universal",
       "scale" : "1x"
     },

BIN
jiaPei/Images.xcassets/Modules/OtherModule/ExerciseModule/40%50%背景.imageset/40%50%背景@2x.png


BIN
jiaPei/Images.xcassets/Modules/OtherModule/ExerciseModule/40%50%背景.imageset/40%50%背景@3x.png


+ 22 - 0
jiaPei/Images.xcassets/Modules/OtherModule/ExerciseModule/40%50%背景.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "40%50%背景@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "40%50%背景@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
jiaPei/Images.xcassets/Modules/OtherModule/ExerciseModule/60%70%背景.imageset/60%70%背景@2x.png


BIN
jiaPei/Images.xcassets/Modules/OtherModule/ExerciseModule/60%70%背景.imageset/60%70%背景@3x.png


+ 22 - 0
jiaPei/Images.xcassets/Modules/OtherModule/ExerciseModule/60%70%背景.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "60%70%背景@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "60%70%背景@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
jiaPei/Images.xcassets/Modules/OtherModule/ExerciseModule/80%90%背景图.imageset/80%90%背景图.png


BIN
jiaPei/Images.xcassets/Modules/OtherModule/ExerciseModule/80%90%背景图.imageset/80%90%背景图@2x.png


BIN
jiaPei/Images.xcassets/Modules/OtherModule/ExerciseModule/80%90%背景图.imageset/80%90%背景图@3x.png


+ 0 - 1
jiaPei/Images.xcassets/Modules/OtherModule/ExerciseModule/80%90%背景图.imageset/Contents.json

@@ -1,7 +1,6 @@
 {
   "images" : [
     {
-      "filename" : "80%90%背景图.png",
       "idiom" : "universal",
       "scale" : "1x"
     },

+ 22 - 0
jiaPei/Images.xcassets/Modules/OtherModule/ExerciseModule/deepseek.imageset/Contents.json

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

BIN
jiaPei/Images.xcassets/Modules/OtherModule/ExerciseModule/deepseek.imageset/deepseek@2x.png


BIN
jiaPei/Images.xcassets/Modules/OtherModule/ExerciseModule/deepseek.imageset/deepseek@3x.png


+ 22 - 0
jiaPei/Images.xcassets/Modules/OtherModule/VipModule/mijuan背景.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "mijuan背景@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "mijuan背景@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
jiaPei/Images.xcassets/Modules/OtherModule/VipModule/mijuan背景.imageset/mijuan背景@2x.png


BIN
jiaPei/Images.xcassets/Modules/OtherModule/VipModule/mijuan背景.imageset/mijuan背景@3x.png


+ 22 - 0
jiaPei/Images.xcassets/Modules/OtherModule/VipModule/not_adicon.imageset/Contents.json

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

BIN
jiaPei/Images.xcassets/Modules/OtherModule/VipModule/not_adicon.imageset/not_adicon@2x.png


BIN
jiaPei/Images.xcassets/Modules/OtherModule/VipModule/not_adicon.imageset/not_adicon@3x.png


+ 22 - 0
jiaPei/Images.xcassets/Modules/OtherModule/VipModule/tesu_song背景.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "tesu_song背景@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "tesu_song背景@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
jiaPei/Images.xcassets/Modules/OtherModule/VipModule/tesu_song背景.imageset/tesu_song背景@2x.png


BIN
jiaPei/Images.xcassets/Modules/OtherModule/VipModule/tesu_song背景.imageset/tesu_song背景@3x.png


BIN
jiaPei/JSJPXLI.gif


+ 5 - 2
jiaPei/Modules/HomePageModule/View/HomePage/NYHomePageOneBigCell.m

@@ -139,7 +139,10 @@
 
 //真实考场
 - (IBAction)btnExaminationAction:(UIButton *)sender {
-    
+    if(myDelegate.isTrain&&RQ_USER_MANAGER.currentUser.isNotGcbd){//在计时-同时需要过程照片-提示
+        ShowMsg(@"请先结束理论计时在进行真实考场!");
+        return;
+    }
         [RQ_VIP_Module isVipWithSubject:RQ_YDTQuestion_Module.subject + 1 complete:^(BOOL isVip) {
             if (isVip) {
 //                                        username subject headimg gs 替换-> model
@@ -177,7 +180,7 @@
                         // 修改后的弹窗调用逻辑
                         NSString *ukey = [NSString stringWithFormat:@"%@%d",RQ_USER_MANAGER.currentUser.loginCode,RQ_YDTQuestion_Module.subjectStr.intValue];
                         if (![NYTools hasUserWatchedAdToday:ukey]) {
-                            [RQ_ALERTVIEW_MANAGER showAlertWithAlertType:RQAlertType_AD title:@"" message:@"" confirmTitle:@"充值会员无限使用" cancelTitle:@"看广告解锁使用" confirmAction:^(__kindof QMUIDialogViewController * _Nonnull dialogViewController) {
+                            [RQ_ALERTVIEW_MANAGER showAlertWithAlertType:RQAlertType_AD title:@"" message:@"车管所实题,为防恶意刷屏,每日须观看一次广告,即可正常使用。点击观看无反应。请稍等5到10秒。" confirmTitle:@"充值使用" cancelTitle:@"看广告解锁" confirmAction:^(__kindof QMUIDialogViewController * _Nonnull dialogViewController) {
                                 [RQ_VIP_Module gotoBuyVipWithVipPageType:RQVIPPageType_Full];
                             } cancelAction:^(__kindof QMUIDialogViewController * _Nonnull dialogViewController) {
                                 [RQ_AD_Module loadRewardvodAd];

+ 1 - 1
jiaPei/Modules/HomePageModule/View/HomePage/NYHomePageOneBigCell.xib

@@ -244,7 +244,7 @@
                                 </constraints>
                                 <fontDescription key="fontDescription" type="system" pointSize="14"/>
                                 <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
-                                <state key="normal" title="新规秘卷" image="电子资料-L">
+                                <state key="normal" title="考前秘卷" image="电子资料-L">
                                     <color key="titleColor" red="0.23921568630000001" green="0.23529411759999999" blue="0.21960784310000001" alpha="1" colorSpace="calibratedRGB"/>
                                 </state>
                                 <connections>

+ 93 - 8
jiaPei/Modules/HomePageModule/ViewController/HomeSubPage/考前密卷/RQHoursBeforeExamHomeViewController.m

@@ -16,6 +16,11 @@
 @property (weak, nonatomic) IBOutlet NSLayoutConstraint *stackViewBottomToSuperView;
 @property (weak, nonatomic) IBOutlet NSLayoutConstraint *backBtnTopToSuperView;
 
+@property (weak, nonatomic) IBOutlet UIStackView *stackview;
+@property (weak, nonatomic) IBOutlet UIView *stview_4;
+@property (weak, nonatomic) IBOutlet UIImageView *bg_imageview;
+
+
 @end
 
 @implementation RQHoursBeforeExamHomeViewController
@@ -24,6 +29,16 @@
     [super viewDidLoad];
     _stackViewBottomToSuperView.constant = RQ_FIT_VERTICAL(100.f) ;
     _backBtnTopToSuperView.constant = RQ_APPLICATION_STATUS_BAR_HEIGHT;
+    
+    if(RQ_YDTQuestion_Module.subject==RQHomePageSubjectType_SubjectOne){
+        self.bg_imageview.image = [UIImage imageNamed:@"秘卷图一"];
+        self.stackview.hidden = NO;
+        self.stview_4.hidden = YES;
+    }else if(RQ_YDTQuestion_Module.subject==RQHomePageSubjectType_SubjectFour){
+        self.bg_imageview.image = [UIImage imageNamed:@"秘卷图四"];
+        self.stackview.hidden = YES;
+        self.stview_4.hidden = NO;
+    }
 }
 
 
@@ -31,11 +46,12 @@
     [self.viewModel.services popViewModelAnimated:YES];
 }
 - (IBAction)miJuanOneBtnAction:(id)sender {
+    
     [RQ_VIP_Module isVipWithSubject:RQ_YDTQuestion_Module.subject + 1 complete:^(BOOL isVip) {
+        NSArray *arr = [[RQ_YDTQuestion_Module getQuestionWithSubject:RQ_YDTQuestion_Module.subject exerciseType:RQExerciseType_Mi_One ].rac_sequence.signal map:^id _Nullable(RQYDTQuestionModel  *ydtQuestionModel) {
+            return [RQExerciseModel exerciseModelWithRQYDTQuestionModel:ydtQuestionModel];
+        }].toArray;
         if (isVip) {
-            NSArray *arr = [[RQ_YDTQuestion_Module getQuestionWithSubject:RQ_YDTQuestion_Module.subject exerciseType:RQExerciseType_Mi_One ].rac_sequence.signal map:^id _Nullable(RQYDTQuestionModel  *ydtQuestionModel) {
-                return [RQExerciseModel exerciseModelWithRQYDTQuestionModel:ydtQuestionModel];
-            }].toArray;
             RQExerciseViewModel *exerciseViewModel = [[RQExerciseViewModel alloc] initWithServices:RQ_APPDELEGATE.services params:@{
                 RQHomePageCarTypeKey        : @(RQ_YDTQuestion_Module.carType),
                 RQHomePageSubjectTypeKey    : @(RQ_YDTQuestion_Module.subject),
@@ -46,17 +62,52 @@
             }];
             [RQ_APPDELEGATE.services pushViewModel:exerciseViewModel animated:YES];
         } else {
-            [RQ_VIP_Module gotoBuyVipWithVipPageType:RQVIPPageType_Full];
+            if (RQ_VIP_Module.freeLookSimExamNum == 1||
+                RQ_COMMON_MANAGER.APP_SWITCH) {//审核状态不用看广告
+                RQExerciseViewModel *exerciseViewModel = [[RQExerciseViewModel alloc] initWithServices:RQ_APPDELEGATE.services params:@{
+                    RQHomePageCarTypeKey        : @(RQ_YDTQuestion_Module.carType),
+                    RQHomePageSubjectTypeKey    : @(RQ_YDTQuestion_Module.subject),
+                    RQHomeSubPageTypeKey        : @(RQHomeSubPageType_MockExamination),
+                    RQViewModelIDKey            : @"",
+                    RQExerciseTypeKey           : @(RQExerciseType_Mi_One),
+                    RQViewModelUtilKey          : arr,
+                }];
+                [RQ_APPDELEGATE.services pushViewModel:exerciseViewModel animated:YES];
+                RQ_VIP_Module.freeLookSimExamNum = 0;
+            } else {
+                // 修改后的弹窗调用逻辑
+                NSString *ukey = [NSString stringWithFormat:@"%@%d%d",RQ_USER_MANAGER.currentUser.loginCode,RQ_YDTQuestion_Module.subjectStr.intValue,1];
+                if (![NYTools hasUserWatchedAdToday:ukey]) {
+                    [RQ_ALERTVIEW_MANAGER showAlertWithAlertType:RQAlertType_AD_MI title:@"" message:@"车管所实题,为防恶意刷屏,每日须观看一次广告,即可正常使用。点击观看无反应。请稍等5到10秒。" confirmTitle:@"充值使用" cancelTitle:@"看广告解锁" confirmAction:^(__kindof QMUIDialogViewController * _Nonnull dialogViewController) {
+                        [RQ_VIP_Module gotoBuyVipWithVipPageType:RQVIPPageType_Full];
+                    } cancelAction:^(__kindof QMUIDialogViewController * _Nonnull dialogViewController) {
+                        [RQ_AD_Module loadRewardvodAd];
+                        [NYTools saveUWatchedAdToday:ukey];
+                    }];
+                }else{
+                    RQExerciseViewModel *exerciseViewModel = [[RQExerciseViewModel alloc] initWithServices:RQ_APPDELEGATE.services params:@{
+                        RQHomePageCarTypeKey        : @(RQ_YDTQuestion_Module.carType),
+                        RQHomePageSubjectTypeKey    : @(RQ_YDTQuestion_Module.subject),
+                        RQHomeSubPageTypeKey        : @(RQHomeSubPageType_MockExamination),
+                        RQViewModelIDKey            : @"",
+                        RQExerciseTypeKey           : @(RQExerciseType_Mi_One),
+                        RQViewModelUtilKey          : arr,
+                    }];
+                    [RQ_APPDELEGATE.services pushViewModel:exerciseViewModel animated:YES];
+                }
+            }
+        
         }
     }];
 }
 
 - (IBAction)miJuanTwoBtnAction:(id)sender {
+    
     [RQ_VIP_Module isVipWithSubject:RQ_YDTQuestion_Module.subject + 1 complete:^(BOOL isVip) {
+        NSArray *arr = [[RQ_YDTQuestion_Module getQuestionWithSubject:RQ_YDTQuestion_Module.subject exerciseType:RQExerciseType_Mi_Two ].rac_sequence.signal map:^id _Nullable(RQYDTQuestionModel  *ydtQuestionModel) {
+            return [RQExerciseModel exerciseModelWithRQYDTQuestionModel:ydtQuestionModel];
+        }].toArray;
         if (isVip) {
-            NSArray *arr = [[RQ_YDTQuestion_Module getQuestionWithSubject:RQ_YDTQuestion_Module.subject exerciseType:RQExerciseType_Mi_Two ].rac_sequence.signal map:^id _Nullable(RQYDTQuestionModel  *ydtQuestionModel) {
-                return [RQExerciseModel exerciseModelWithRQYDTQuestionModel:ydtQuestionModel];
-            }].toArray;
             RQExerciseViewModel *exerciseViewModel = [[RQExerciseViewModel alloc] initWithServices:RQ_APPDELEGATE.services params:@{
                 RQHomePageCarTypeKey        : @(RQ_YDTQuestion_Module.carType),
                 RQHomePageSubjectTypeKey    : @(RQ_YDTQuestion_Module.subject),
@@ -67,7 +118,41 @@
             }];
             [RQ_APPDELEGATE.services pushViewModel:exerciseViewModel animated:YES];
         } else {
-            [RQ_VIP_Module gotoBuyVipWithVipPageType:RQVIPPageType_Full];
+            if (RQ_VIP_Module.freeLookSimExamNum == 1||
+                RQ_COMMON_MANAGER.APP_SWITCH) {//审核状态不用看广告
+                RQExerciseViewModel *exerciseViewModel = [[RQExerciseViewModel alloc] initWithServices:RQ_APPDELEGATE.services params:@{
+                    RQHomePageCarTypeKey        : @(RQ_YDTQuestion_Module.carType),
+                    RQHomePageSubjectTypeKey    : @(RQ_YDTQuestion_Module.subject),
+                    RQHomeSubPageTypeKey        : @(RQHomeSubPageType_MockExamination),
+                    RQViewModelIDKey            : @"",
+                    RQExerciseTypeKey           : @(RQExerciseType_Mi_Two),
+                    RQViewModelUtilKey          : arr,
+                }];
+                [RQ_APPDELEGATE.services pushViewModel:exerciseViewModel animated:YES];
+                RQ_VIP_Module.freeLookSimExamNum = 0;
+            } else {
+                // 修改后的弹窗调用逻辑
+                NSString *ukey = [NSString stringWithFormat:@"%@%d%d",RQ_USER_MANAGER.currentUser.loginCode,RQ_YDTQuestion_Module.subjectStr.intValue,2];
+                if (![NYTools hasUserWatchedAdToday:ukey]) {
+                    [RQ_ALERTVIEW_MANAGER showAlertWithAlertType:RQAlertType_AD_MI title:@"" message:@"车管所实题,为防恶意刷屏,每日须观看一次广告,即可正常使用。点击观看无反应。请稍等5到10秒。" confirmTitle:@"充值使用" cancelTitle:@"看广告解锁" confirmAction:^(__kindof QMUIDialogViewController * _Nonnull dialogViewController) {
+                        [RQ_VIP_Module gotoBuyVipWithVipPageType:RQVIPPageType_Full];
+                    } cancelAction:^(__kindof QMUIDialogViewController * _Nonnull dialogViewController) {
+                        [RQ_AD_Module loadRewardvodAd];
+                        [NYTools saveUWatchedAdToday:ukey];
+                    }];
+                }else{
+                    RQExerciseViewModel *exerciseViewModel = [[RQExerciseViewModel alloc] initWithServices:RQ_APPDELEGATE.services params:@{
+                        RQHomePageCarTypeKey        : @(RQ_YDTQuestion_Module.carType),
+                        RQHomePageSubjectTypeKey    : @(RQ_YDTQuestion_Module.subject),
+                        RQHomeSubPageTypeKey        : @(RQHomeSubPageType_MockExamination),
+                        RQViewModelIDKey            : @"",
+                        RQExerciseTypeKey           : @(RQExerciseType_Mi_Two),
+                        RQViewModelUtilKey          : arr,
+                    }];
+                    [RQ_APPDELEGATE.services pushViewModel:exerciseViewModel animated:YES];
+                }
+            }
+        
         }
     }];
 }

+ 56 - 8
jiaPei/Modules/HomePageModule/ViewController/HomeSubPage/考前密卷/RQHoursBeforeExamHomeViewController.xib

@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="20037" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="23504" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
     <device id="retina4_7" orientation="portrait" appearance="light"/>
     <dependencies>
         <deployment identifier="iOS"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="20020"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="23506"/>
         <capability name="System colors in document resources" minToolsVersion="11.0"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
     </dependencies>
@@ -11,9 +11,12 @@
         <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="RQHoursBeforeExamHomeViewController">
             <connections>
                 <outlet property="backBtnTopToSuperView" destination="rfK-mc-7ke" id="mvo-40-DKR"/>
+                <outlet property="bg_imageview" destination="34O-gK-jPJ" id="Rye-7C-dVI"/>
                 <outlet property="miJuanOneBtn" destination="zna-dt-q41" id="doD-3t-ouT"/>
                 <outlet property="miJuanTwoBtn" destination="8aR-cK-Bqx" id="VvW-bd-wGx"/>
                 <outlet property="stackViewBottomToSuperView" destination="dyk-Mh-N9m" id="1Vv-tt-f3x"/>
+                <outlet property="stackview" destination="h08-UG-Mnn" id="BNi-31-FaX"/>
+                <outlet property="stview_4" destination="9pH-Bc-SXg" id="Glj-Ih-7AX"/>
                 <outlet property="view" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/>
             </connections>
         </placeholder>
@@ -25,7 +28,7 @@
                 <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="桌面底纹" translatesAutoresizingMaskIntoConstraints="NO" id="m1s-tl-fdQ">
                     <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
                 </imageView>
-                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="秘卷图" translatesAutoresizingMaskIntoConstraints="NO" id="34O-gK-jPJ">
+                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="秘卷图" translatesAutoresizingMaskIntoConstraints="NO" id="34O-gK-jPJ">
                     <rect key="frame" x="0.0" y="60" width="375" height="607"/>
                     <preferredSymbolConfiguration key="preferredSymbolConfiguration" scale="default"/>
                 </imageView>
@@ -42,7 +45,7 @@
                     </connections>
                 </button>
                 <stackView opaque="NO" contentMode="scaleToFill" axis="vertical" distribution="fillEqually" translatesAutoresizingMaskIntoConstraints="NO" id="h08-UG-Mnn">
-                    <rect key="frame" x="73" y="435.5" width="229" height="131.5"/>
+                    <rect key="frame" x="73" y="500.5" width="229" height="131.5"/>
                     <subviews>
                         <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="zna-dt-q41">
                             <rect key="frame" x="0.0" y="0.0" width="229" height="65.5"/>
@@ -77,11 +80,52 @@
                     </subviews>
                 </stackView>
                 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="考前秘卷" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="4Wa-b6-IKN">
-                    <rect key="frame" x="153" y="28" width="69.5" height="20.5"/>
+                    <rect key="frame" x="154" y="28" width="67.5" height="20.5"/>
                     <fontDescription key="fontDescription" type="system" weight="medium" pointSize="17"/>
                     <color key="textColor" red="0.039215686270000001" green="0.1019607843" blue="0.20000000000000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                     <nil key="highlightedColor"/>
                 </label>
+                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="9pH-Bc-SXg" userLabel="View-center">
+                    <rect key="frame" x="30" y="402" width="315" height="65"/>
+                    <subviews>
+                        <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="PLT-yM-xOg">
+                            <rect key="frame" x="157.5" y="0.0" width="157.5" height="65"/>
+                            <fontDescription key="fontDescription" type="boldSystem" pointSize="18"/>
+                            <inset key="titleEdgeInsets" minX="0.0" minY="0.0" maxX="0.0" maxY="9"/>
+                            <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
+                            <state key="normal" title="进入秘卷二" backgroundImage="椭圆 3">
+                                <color key="titleColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                            </state>
+                            <connections>
+                                <action selector="miJuanTwoBtnAction:" destination="-1" eventType="touchUpInside" id="de8-Qc-cgS"/>
+                            </connections>
+                        </button>
+                        <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="4rC-4d-cG1">
+                            <rect key="frame" x="0.0" y="0.0" width="157.5" height="65"/>
+                            <fontDescription key="fontDescription" type="boldSystem" pointSize="18"/>
+                            <inset key="titleEdgeInsets" minX="0.0" minY="0.0" maxX="0.0" maxY="9"/>
+                            <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
+                            <state key="normal" title="进入秘卷一" backgroundImage="椭圆 3">
+                                <color key="titleColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                            </state>
+                            <connections>
+                                <action selector="miJuanOneBtnAction:" destination="-1" eventType="touchUpInside" id="4PR-Bi-yKz"/>
+                            </connections>
+                        </button>
+                    </subviews>
+                    <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                    <constraints>
+                        <constraint firstAttribute="bottom" secondItem="PLT-yM-xOg" secondAttribute="bottom" id="6su-HM-Nnv"/>
+                        <constraint firstAttribute="bottom" secondItem="4rC-4d-cG1" secondAttribute="bottom" id="Dda-6H-CCz"/>
+                        <constraint firstItem="PLT-yM-xOg" firstAttribute="leading" secondItem="4rC-4d-cG1" secondAttribute="trailing" id="GzJ-XL-LNo"/>
+                        <constraint firstItem="4rC-4d-cG1" firstAttribute="leading" secondItem="9pH-Bc-SXg" secondAttribute="leading" id="NhJ-55-KbU"/>
+                        <constraint firstAttribute="trailing" secondItem="PLT-yM-xOg" secondAttribute="trailing" id="OIK-uY-DZ5"/>
+                        <constraint firstAttribute="height" constant="65" id="Qdq-G1-s43"/>
+                        <constraint firstItem="4rC-4d-cG1" firstAttribute="width" secondItem="PLT-yM-xOg" secondAttribute="width" id="fnc-rV-Csl"/>
+                        <constraint firstItem="PLT-yM-xOg" firstAttribute="top" secondItem="9pH-Bc-SXg" secondAttribute="top" id="rqI-mP-NAP"/>
+                        <constraint firstItem="4rC-4d-cG1" firstAttribute="top" secondItem="9pH-Bc-SXg" secondAttribute="top" id="tPU-jU-jed"/>
+                    </constraints>
+                </view>
             </subviews>
             <color key="backgroundColor" systemColor="systemBackgroundColor"/>
             <constraints>
@@ -91,24 +135,28 @@
                 <constraint firstAttribute="trailing" secondItem="m1s-tl-fdQ" secondAttribute="trailing" id="8H2-X9-6jH"/>
                 <constraint firstAttribute="trailing" secondItem="34O-gK-jPJ" secondAttribute="trailing" id="B3G-wn-DKQ"/>
                 <constraint firstItem="34O-gK-jPJ" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" id="EXA-Ta-bee"/>
+                <constraint firstAttribute="trailing" secondItem="9pH-Bc-SXg" secondAttribute="trailing" constant="30" id="HvU-ql-4MH"/>
                 <constraint firstAttribute="bottom" secondItem="34O-gK-jPJ" secondAttribute="bottom" id="Nzk-Ew-bAJ"/>
+                <constraint firstItem="9pH-Bc-SXg" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" constant="30" id="UgQ-6B-9EV"/>
                 <constraint firstAttribute="bottom" secondItem="m1s-tl-fdQ" secondAttribute="bottom" id="aGU-d7-b6k"/>
-                <constraint firstAttribute="bottom" secondItem="h08-UG-Mnn" secondAttribute="bottom" constant="100" id="dyk-Mh-N9m"/>
+                <constraint firstAttribute="bottom" secondItem="h08-UG-Mnn" secondAttribute="bottom" constant="35" id="dyk-Mh-N9m"/>
                 <constraint firstItem="kge-B3-75a" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" constant="16" id="e3j-M1-pCj"/>
                 <constraint firstItem="h08-UG-Mnn" firstAttribute="centerX" secondItem="i5M-Pr-FkT" secondAttribute="centerX" id="fvj-Ui-BzD"/>
                 <constraint firstItem="kge-B3-75a" firstAttribute="top" secondItem="i5M-Pr-FkT" secondAttribute="top" constant="16" id="rfK-mc-7ke"/>
                 <constraint firstItem="h08-UG-Mnn" firstAttribute="width" secondItem="i5M-Pr-FkT" secondAttribute="width" multiplier="229/375" id="sou-Fl-e6K"/>
+                <constraint firstAttribute="bottom" secondItem="9pH-Bc-SXg" secondAttribute="bottom" constant="200" id="wd3-cW-YO0"/>
                 <constraint firstItem="4Wa-b6-IKN" firstAttribute="centerX" secondItem="i5M-Pr-FkT" secondAttribute="centerX" id="wkq-b8-Dmy"/>
                 <constraint firstItem="m1s-tl-fdQ" firstAttribute="top" secondItem="i5M-Pr-FkT" secondAttribute="top" id="yqM-gy-JIT"/>
             </constraints>
             <simulatedNavigationBarMetrics key="simulatedTopBarMetrics" prompted="NO"/>
-            <point key="canvasLocation" x="139" y="123"/>
+            <point key="canvasLocation" x="138.40000000000001" y="122.78860569715144"/>
         </view>
     </objects>
     <resources>
         <image name="backIcon" width="9.5" height="17"/>
         <image name="桌面底纹" width="375" height="812"/>
-        <image name="秘卷图" width="375.5" height="714.5"/>
+        <image name="椭圆 3" width="320" height="138"/>
+        <image name="秘卷图一" width="750" height="1624"/>
         <image name="秘卷按钮" width="240" height="69"/>
         <systemColor name="systemBackgroundColor">
             <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>

+ 2 - 2
jiaPei/Modules/HomePageModule/ViewModel/HomePage/RQHomePageSubjectOneOrFourViewModel.m

@@ -475,7 +475,7 @@
      @[
         [[RQHomePageOneOrFourItemModel alloc] initWithTitleStr:@"VIP课程" iconImgStr:(self.homePageSubjectType == RQHomePageSubjectType_SubjectOne)? @"科一VIP" : @"科四VIP"],
         [[RQHomePageOneOrFourItemModel alloc] initWithTitleStr:((RQ_YDTQuestion_Module.carType == RQHomePageCarType_Car&&self.homePageSubjectType == RQHomePageSubjectType_SubjectFour)?@"精选300题":@"精选500题") iconImgStr:((RQ_YDTQuestion_Module.carType == RQHomePageCarType_Car&&self.homePageSubjectType == RQHomePageSubjectType_SubjectFour)?@"精选300题":@"精选500题")],
-        [[RQHomePageOneOrFourItemModel alloc] initWithTitleStr:@"新规秘卷" iconImgStr:@"新规秘卷"],
+        [[RQHomePageOneOrFourItemModel alloc] initWithTitleStr:@"考前秘卷" iconImgStr:@"新规秘卷"],
         [[RQHomePageOneOrFourItemModel alloc] initWithTitleStr:@"专项练习" iconImgStr:@"专项练习"],
         [[RQHomePageOneOrFourItemModel alloc] initWithTitleStr:@"真实考场" iconImgStr:@"真实考场"],
         [[RQHomePageOneOrFourItemModel alloc] initWithTitleStr:@"错题收藏" iconImgStr:@"错题收藏"],
@@ -484,7 +484,7 @@
 }
 
 - (NSArray *)leftTitleArr {
-    return @[@"模拟考试",@"VIP课程",@"新规秘卷",@"真实考场"];
+    return @[@"模拟考试",@"VIP课程",@"考前秘卷",@"真实考场"];
 }
 
 - (NSArray *)rightTitleArr {

+ 3 - 1
jiaPei/Modules/HomePageModule/ViewModel/HomePage/RQHomePageViewModel.m

@@ -83,10 +83,12 @@
 /// 获取网络的用户数据 用于比对
 - (RACSignal *)requestReLoginSignal {
     return [[RACSignal createSignal:^RACDisposable * _Nullable(id<RACSubscriber>  _Nonnull subscriber) {
-        if(![RQ_USER_MANAGER.currentUser.nickName containsString:@"游客"]){
+        if(![RQ_USER_MANAGER.currentUser.nickName containsString:@"游客"]&&RQ_USER_MANAGER.isLogin){
             if (RQStringIsNotEmpty([SAMKeychain rawLogin]) && RQStringIsNotEmpty([SAMKeychain rawLoginPassword]) && RQ_USER_MANAGER.currentUser) {
                 RQ_USER_MANAGER.currentUser.channel = RQUserLoginChannelTypeAutoLogin;
                 [[RQ_HTTP_Service studentLoginWithLoginCode:[SAMKeychain rawLogin] password:[SAMKeychain rawLoginPassword]] subscribeNext:^(RQUserModel *userModel) {
+//                    [RQ_USER_MANAGER logoutUser];
+                    [RQ_USER_MANAGER loginUser:userModel];
                     [subscriber sendNext:userModel];
                 } error:^(NSError * _Nullable error) {
                     [subscriber sendError:error];

+ 7 - 3
jiaPei/Modules/HomePageModule/ViewModel/HomePage/itemViewModel/RQHomePageOneOrFourSmallItemViewModel.m

@@ -37,7 +37,11 @@
             };
         } else if ([self.title isEqualToString:@"真实考场"]) {
             self.operation = ^{
-                [RQ_VIP_Module isVipWithSubject:RQ_YDTQuestion_Module.subject + 1 complete:^(BOOL isVip) {  
+                if(myDelegate.isTrain&&RQ_USER_MANAGER.currentUser.isNotGcbd){//在计时-同时需要过程照片-提示
+                    ShowMsg(@"请先结束理论计时在进行真实考场!");
+                    return;
+                }
+                [RQ_VIP_Module isVipWithSubject:RQ_YDTQuestion_Module.subject + 1 complete:^(BOOL isVip) {
                     if (isVip) {
 //                        username subject headimg gs 替换-> model
                         if(RQ_COMMON_MANAGER.APP_SWITCH){//审核状态走web 页
@@ -74,7 +78,7 @@
                                 // 修改后的弹窗调用逻辑
                                 NSString *ukey = [NSString stringWithFormat:@"%@%d",RQ_USER_MANAGER.currentUser.loginCode,RQ_YDTQuestion_Module.subjectStr.intValue];
                                 if (![NYTools hasUserWatchedAdToday:ukey]) {
-                                    [RQ_ALERTVIEW_MANAGER showAlertWithAlertType:RQAlertType_AD title:@"" message:@"" confirmTitle:@"充值会员无限使用" cancelTitle:@"看广告解锁使用" confirmAction:^(__kindof QMUIDialogViewController * _Nonnull dialogViewController) {
+                                    [RQ_ALERTVIEW_MANAGER showAlertWithAlertType:RQAlertType_AD title:@"" message:@"车管所实题,为防恶意刷屏,每日须观看一次广告,即可正常使用。点击观看无反应。请稍等5到10秒。" confirmTitle:@"充值使用" cancelTitle:@"看广告解锁" confirmAction:^(__kindof QMUIDialogViewController * _Nonnull dialogViewController) {
                                         [RQ_VIP_Module gotoBuyVipWithVipPageType:RQVIPPageType_Full];
                                     } cancelAction:^(__kindof QMUIDialogViewController * _Nonnull dialogViewController) {
                                         [RQ_AD_Module loadRewardvodAd];
@@ -92,7 +96,7 @@
                     }
                 }];
             };
-        } else if ([self.title isEqualToString:@"新规秘卷"]) {
+        } else if ([self.title isEqualToString:@"考前秘卷"]) {
             self.operation = ^{
                 RQHoursBeforeExamHomeViewModel *hoursBeforeExamHomeViewModel = [[RQHoursBeforeExamHomeViewModel alloc] initWithServices:RQ_APPDELEGATE.services params:nil];
                 [RQ_APPDELEGATE.services pushViewModel:hoursBeforeExamHomeViewModel animated:YES];

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

@@ -21,6 +21,10 @@
         self.homePageSubjectType = homePageSubjectType;
         self.itemSize = CGSizeMake(RQ_SCREEN_WIDTH, RQ_FIT_HORIZONTAL(189.f));
         self.operation = ^{
+            if(myDelegate.isTrain&&RQ_USER_MANAGER.currentUser.isNotGcbd){//在计时-同时需要过程照片-提示
+                ShowMsg(@"请先结束理论计时在进行真实考场!");
+                return;
+            }
             [RQ_VIP_Module isVipWithSubject:RQ_YDTQuestion_Module.subject + 1 complete:^(BOOL isVip) {
                 if (isVip) {
                     if(RQ_COMMON_MANAGER.APP_SWITCH){//审核状态走web 页
@@ -56,7 +60,7 @@
                             // 修改后的弹窗调用逻辑
                             NSString *ukey = [NSString stringWithFormat:@"%@%d",RQ_USER_MANAGER.currentUser.loginCode,RQ_YDTQuestion_Module.subjectStr.intValue];
                             if (![NYTools hasUserWatchedAdToday:ukey]) {
-                                [RQ_ALERTVIEW_MANAGER showAlertWithAlertType:RQAlertType_AD title:@"" message:@"" confirmTitle:@"充值会员无限使用" cancelTitle:@"看广告解锁使用" confirmAction:^(__kindof QMUIDialogViewController * _Nonnull dialogViewController) {
+                                [RQ_ALERTVIEW_MANAGER showAlertWithAlertType:RQAlertType_AD title:@"" message:@"车管所实题,为防恶意刷屏,每日须观看一次广告,即可正常使用。点击观看无反应。请稍等5到10秒。" confirmTitle:@"充值使用" cancelTitle:@"看广告解锁" confirmAction:^(__kindof QMUIDialogViewController * _Nonnull dialogViewController) {
                                     [RQ_VIP_Module gotoBuyVipWithVipPageType:RQVIPPageType_Full];
                                 } cancelAction:^(__kindof QMUIDialogViewController * _Nonnull dialogViewController) {
                                     [RQ_AD_Module loadRewardvodAd];

+ 17 - 0
jiaPei/Modules/LoginModule/Controller/NYLoginBindViewController.h

@@ -0,0 +1,17 @@
+//
+//  NYLoginBindViewController.h
+//  jiaPei
+//
+//  Created by Ning.ge on 2025/3/31.
+//  Copyright © 2025 JCZ. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface NYLoginBindViewController : RQBaseViewController
+
+@end
+
+NS_ASSUME_NONNULL_END

+ 170 - 0
jiaPei/Modules/LoginModule/Controller/NYLoginBindViewController.m

@@ -0,0 +1,170 @@
+//
+//  NYLoginBindViewController.m
+//  jiaPei
+//
+//  Created by Ning.ge on 2025/3/31.
+//  Copyright © 2025 JCZ. All rights reserved.
+//
+
+#import "NYLoginBindViewController.h"
+#import "RQPhoneView.h"
+#import "RQPasswordView.h"
+
+@interface NYLoginBindViewController ()
+@property (nonatomic, readonly, strong) NYLoginBindViewModel *viewModel;
+@property (strong, readwrite, nonatomic) RQPhoneView *phoneView;
+@property (strong, readwrite, nonatomic) RQPasswordView *passwordView;
+
+@property (weak, nonatomic) IBOutlet UIView *containerView;
+
+@property (weak, nonatomic) IBOutlet UIButton *submit_btn;
+
+@end
+
+@implementation NYLoginBindViewController
+
+@dynamic viewModel;
+
+- (void)viewDidLoad {
+    [super viewDidLoad];
+    /// 设置
+    [self rq_setup];
+    [self setupSubViews];
+}
+#pragma mark - 设置子控件
+- (void)setupSubViews {
+    @weakify(self)
+
+    /// 手机号码
+    RQPhoneView *phoneView = [RQPhoneView loginCodeView];
+    self.phoneView = phoneView;
+    [self.containerView addSubview:phoneView];
+
+    /// 密码
+    RQPasswordView *passwordView = [RQPasswordView passwordView];
+    self.passwordView = passwordView;
+    [self.containerView addSubview:passwordView];
+        
+    /// 布局
+    [phoneView mas_makeConstraints:^(MASConstraintMaker *make) {
+        @strongify(self)
+        make.top.mas_equalTo(self.containerView);
+        make.left.mas_equalTo(self.containerView).mas_offset(16.f);
+        make.right.mas_equalTo(self.containerView).mas_offset(-16.f);
+        make.height.mas_offset(RQ_FIT_HORIZONTAL(44.f));
+        phoneView.layer.cornerRadius = RQ_FIT_HORIZONTAL(44.f) / 2.f;
+    }];
+
+    [passwordView mas_makeConstraints:^(MASConstraintMaker *make) {
+        @strongify(self)
+        make.top.mas_equalTo(self.phoneView.mas_bottom).mas_offset(16.f);
+        make.left.mas_equalTo(self.containerView).mas_offset(16.f);
+        make.right.mas_equalTo(self.containerView).mas_offset(-16.f);
+        make.height.mas_offset(RQ_FIT_HORIZONTAL(44.f));
+        passwordView.layer.cornerRadius = RQ_FIT_HORIZONTAL(44.f) / 2.f;
+    }];
+    
+
+}
+
+#pragma mark - 初始化
+- (void)rq_setup {
+   
+    if(self.viewModel.isBind){
+        [self.submit_btn setTitle:@"解除绑定" forState:UIControlStateNormal];
+    }else{
+        [self.submit_btn setTitle:@"立即绑定" forState:UIControlStateNormal];
+    }
+}
+
+//立即绑定
+- (IBAction)loginBinddo:(id)sender {
+    NSString *logincode = self.phoneView.loginCodeTextField.text;
+    NSString *password = self.passwordView.passwordTextField.text;
+    if(RQStringIsEmpty(logincode)){
+        ShowMsg(@"请输入账号");
+        return;
+    }
+    if(RQStringIsEmpty(password)){
+        ShowMsg(@"请输入密码");
+        return;
+    }
+    /// 存储登录账号
+    [SAMKeychain setRawLogin:logincode];
+    [SAMKeychain setRawLoginPassword:password];
+    if(self.viewModel.isBind){
+        //解除绑定
+        [MBProgressHUD rq_showProgressHUD:@""];
+        NSDictionary *dict = @{
+            @"logincode": logincode,
+            @"password": [password md5String]
+        };
+        [jiaPeiManager NYRequestAnythingDataWithURL:RQ_POST_UnBindGzptUser contentType:@"application/json" parameters:dict completion:^(NSDictionary *dict) {
+            if([dict[@"code"] intValue]==200){
+                RQUserModel *user = [RQUserModel yy_modelWithDictionary:[RQ_USER_MANAGER.currentUser yy_modelToJSONObject]];
+                user.openId = nil;
+                /// 存储用户数据
+                [RQ_USER_MANAGER loginUser:user];
+                ShowMsg(@"解绑成功");
+                [self.navigationController popViewControllerAnimated:YES];
+            }else{
+                ShowMsg(dict[@"msg"]);
+            }
+            [MBProgressHUD rq_hideHUD];
+        }];
+    }else{
+        //立即绑定
+        //提交-web
+        [MBProgressHUD rq_showProgressHUD:@""];
+        NSDictionary *dict = @{
+            @"logincode": logincode,
+            @"openid": self.viewModel.openid,
+            @"password": [password md5String]
+        };
+        [jiaPeiManager NYRequestAnythingDataWithURL:RQ_POST_BindGzptUser contentType:@"application/json" parameters:dict completion:^(NSDictionary *dict) {
+            if([dict[@"code"] intValue]==200){
+                if (myDelegate.isLogin) {//已经登录提示-绑定成功
+                    RQUserModel *user = [RQUserModel yy_modelWithDictionary:[RQ_USER_MANAGER.currentUser yy_modelToJSONObject]];
+                    user.openId = self.viewModel.openid;
+                    /// 存储用户数据
+                    [RQ_USER_MANAGER loginUser:user];
+                    ShowMsg(@"绑定成功");
+                    [self.navigationController popViewControllerAnimated:YES];
+                }else{
+                     //绑定成功-登录
+                     RQUserModel *user = [RQUserModel yy_modelWithDictionary:dict[@"data"]];
+                     /// 存储用户数据
+                     [RQ_USER_MANAGER loginUser:user];
+//                     //通知登录
+//                     [RQNotificationCenter postNotificationName:RQWeBanindOnRespNotification object:user];
+                    [RQ_VIP_Module isActiveWithCcomplete:^(RQActivationModel * _Nullable activationModel, BOOL isSuccess) {}];
+                    [[RQ_HTTP_Service getMyScoreWithSubject:RQHomePageSubjectType_SubjectOne] subscribeNext:^(NSArray *examResultModelArr) {
+                        RQ_COMMON_MANAGER.myExamOneCount = examResultModelArr.count;
+                        RQ_COMMON_MANAGER.examResultOneListArr = examResultModelArr;
+                    }];
+                    
+                    [[RQ_HTTP_Service getMyScoreWithSubject:RQHomePageSubjectType_SubjectFour] subscribeNext:^(NSArray *examResultModelArr) {
+                        RQ_COMMON_MANAGER.myExamFourCount = examResultModelArr.count;
+                        RQ_COMMON_MANAGER.examResultFourListArr = examResultModelArr;
+                    }];
+                    
+                    if (user.channel == RQUserLoginChannelTypePhone) {
+                        /// 切换更控制器
+                        dispatch_async(dispatch_get_main_queue(), ^{
+                            /// 发通知
+                            [[NSNotificationCenter defaultCenter] postNotificationName:RQSwitchRootViewControllerNotification object:nil userInfo:@{RQSwitchRootViewControllerUserInfoKey:@(RQSwitchRootViewControllerFromTypeLogin)}];
+                        });
+                    }
+                }
+            }else{
+                ShowMsg(dict[@"msg"]);
+            }
+            [MBProgressHUD rq_hideHUD];
+        }];
+    }
+   
+}
+
+
+
+@end

+ 99 - 0
jiaPei/Modules/LoginModule/Controller/NYLoginBindViewController.xib

@@ -0,0 +1,99 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="23727" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
+    <device id="retina6_12" orientation="portrait" appearance="light"/>
+    <dependencies>
+        <deployment identifier="iOS"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="23721"/>
+        <capability name="System colors in document resources" minToolsVersion="11.0"/>
+        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
+    </dependencies>
+    <objects>
+        <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="NYLoginBindViewController">
+            <connections>
+                <outlet property="containerView" destination="Kf2-HV-1Ua" id="JoE-Gn-fQG"/>
+                <outlet property="submit_btn" destination="6Jp-PY-9sW" id="6iJ-ch-PPL"/>
+                <outlet property="view" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/>
+            </connections>
+        </placeholder>
+        <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
+        <view clearsContextBeforeDrawing="NO" contentMode="scaleToFill" id="i5M-Pr-FkT">
+            <rect key="frame" x="0.0" y="0.0" width="393" height="852"/>
+            <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+            <subviews>
+                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="kQz-oL-MV6">
+                    <rect key="frame" x="0.0" y="120" width="393" height="500"/>
+                    <subviews>
+                        <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="绑定" translatesAutoresizingMaskIntoConstraints="NO" id="duW-Fu-wgt">
+                            <rect key="frame" x="207" y="8" width="160" height="79"/>
+                            <constraints>
+                                <constraint firstAttribute="width" constant="160" id="D2s-vE-j9d"/>
+                                <constraint firstAttribute="height" constant="79" id="Eio-LU-HrP"/>
+                            </constraints>
+                        </imageView>
+                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Kf2-HV-1Ua">
+                            <rect key="frame" x="0.0" y="152" width="393" height="230"/>
+                            <subviews>
+                                <button opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="6Jp-PY-9sW">
+                                    <rect key="frame" x="25" y="163" width="343" height="44"/>
+                                    <color key="backgroundColor" red="0.28627450980392155" green="0.55686274509803924" blue="0.96078431372549022" alpha="1" colorSpace="calibratedRGB"/>
+                                    <constraints>
+                                        <constraint firstAttribute="height" constant="44" id="6hc-pe-EER"/>
+                                    </constraints>
+                                    <userDefinedRuntimeAttributes>
+                                        <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
+                                            <integer key="value" value="22"/>
+                                        </userDefinedRuntimeAttribute>
+                                    </userDefinedRuntimeAttributes>
+                                    <connections>
+                                        <action selector="loginBinddo:" destination="-1" eventType="touchUpInside" id="7U6-26-NzE"/>
+                                    </connections>
+                                </button>
+                            </subviews>
+                            <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                            <constraints>
+                                <constraint firstItem="6Jp-PY-9sW" firstAttribute="leading" secondItem="Kf2-HV-1Ua" secondAttribute="leading" constant="25" id="5Fp-jM-hTR"/>
+                                <constraint firstAttribute="height" constant="230" id="7JN-6q-ezW"/>
+                                <constraint firstAttribute="trailing" secondItem="6Jp-PY-9sW" secondAttribute="trailing" constant="25" id="XV3-8S-rRZ"/>
+                                <constraint firstAttribute="bottom" secondItem="6Jp-PY-9sW" secondAttribute="bottom" constant="23" id="uD7-yt-dBy"/>
+                            </constraints>
+                        </view>
+                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="绑定微信号" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="v1p-eL-8o9">
+                            <rect key="frame" x="26" y="28" width="160" height="38"/>
+                            <constraints>
+                                <constraint firstAttribute="height" constant="38" id="6EW-nk-LCh"/>
+                                <constraint firstAttribute="width" constant="160" id="Bpe-ef-JpP"/>
+                            </constraints>
+                            <fontDescription key="fontDescription" type="system" weight="heavy" pointSize="28"/>
+                            <nil key="textColor"/>
+                            <nil key="highlightedColor"/>
+                        </label>
+                    </subviews>
+                    <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                    <constraints>
+                        <constraint firstItem="Kf2-HV-1Ua" firstAttribute="leading" secondItem="kQz-oL-MV6" secondAttribute="leading" id="5Zh-PQ-zLD"/>
+                        <constraint firstItem="Kf2-HV-1Ua" firstAttribute="top" secondItem="duW-Fu-wgt" secondAttribute="bottom" constant="65" id="6KX-4F-Vvu"/>
+                        <constraint firstItem="v1p-eL-8o9" firstAttribute="top" secondItem="kQz-oL-MV6" secondAttribute="top" constant="28" id="6qj-ec-h4d"/>
+                        <constraint firstItem="duW-Fu-wgt" firstAttribute="top" secondItem="kQz-oL-MV6" secondAttribute="top" constant="8" id="ALL-py-CCV"/>
+                        <constraint firstItem="v1p-eL-8o9" firstAttribute="leading" secondItem="kQz-oL-MV6" secondAttribute="leading" constant="26" id="C8y-5H-2UW"/>
+                        <constraint firstAttribute="trailing" secondItem="duW-Fu-wgt" secondAttribute="trailing" constant="26" id="REb-vP-adr"/>
+                        <constraint firstAttribute="trailing" secondItem="Kf2-HV-1Ua" secondAttribute="trailing" id="Yh9-3J-lrg"/>
+                        <constraint firstAttribute="height" constant="500" id="von-h6-uhM"/>
+                    </constraints>
+                </view>
+            </subviews>
+            <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+            <constraints>
+                <constraint firstItem="kQz-oL-MV6" firstAttribute="top" secondItem="i5M-Pr-FkT" secondAttribute="top" constant="120" id="Gif-Xh-aRt"/>
+                <constraint firstAttribute="trailing" secondItem="kQz-oL-MV6" secondAttribute="trailing" id="ITq-ay-dEJ"/>
+                <constraint firstItem="kQz-oL-MV6" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" id="yXl-sT-k95"/>
+            </constraints>
+            <point key="canvasLocation" x="20.610687022900763" y="-12.67605633802817"/>
+        </view>
+    </objects>
+    <resources>
+        <image name="绑定" width="160" height="79"/>
+        <systemColor name="systemBackgroundColor">
+            <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+        </systemColor>
+    </resources>
+</document>

+ 69 - 2
jiaPei/Modules/LoginModule/Controller/RQLoginViewController.m

@@ -47,6 +47,8 @@
 }
 
 - (void)dealloc {
+    
+    [RQNotificationCenter removeObserver:self];
     self.viewModel.isPush = NO;
 }
 
@@ -64,6 +66,72 @@
 	
 	/// 适配 iOS 11
 	RQAdjustsScrollViewInsets_Never(scrollView);
+    [RQNotificationCenter addObserver:self selector:@selector(wxLoginNotif:) name:RQWeChatOnRespNotification object:nil]; //注册微信登录
+    [RQNotificationCenter addObserver:self selector:@selector(loginUserNotif:) name:RQWeBanindOnRespNotification object:nil];
+    
+}
+
+- (void)wxLoginNotif:(NSNotification *)notif{
+    if (myDelegate.isLogin) {
+        return;
+    }
+    NSString *code = [notif.object stringValue];
+    //提交-web
+    [MBProgressHUD rq_showProgressHUD:@""];
+    [jiaPeiManager NYRequestAnythingDataWithURL:RQ_POST_Jsjpcode contentType:nil parameters:@{@"authorizationCode":code} completion:^(NSDictionary *dict) {
+        if([dict[@"code"] intValue]==200){
+            NYJsCodeModel *obj = [NYJsCodeModel yy_modelWithDictionary:dict[@"data"]];
+            if(obj.gzptUserInfo==NULL){//如果-没有绑定-跳绑
+                NYLoginBindViewModel *viewModel = [[NYLoginBindViewModel alloc] initWithServices:RQ_APPDELEGATE.services params:@{}];
+                viewModel.openid = obj.openid;
+                [RQ_APPDELEGATE.services pushViewModel:viewModel animated:YES];
+            }else{//绑定过-登录成功
+                RQUserModel * user = obj.gzptUserInfo;
+                myDelegate.isLogin = YES;
+                /// 存储用户数据
+                [RQ_USER_MANAGER loginUser:user];
+                [RQ_VIP_Module isVipWithSubject:0 complete:^(BOOL isVip) {}];
+                [RQ_VIP_Module isActiveWithCcomplete:^(RQActivationModel * _Nullable activationModel, BOOL isSuccess) {}];
+                [[RQ_HTTP_Service getMyScoreWithSubject:RQHomePageSubjectType_SubjectOne] subscribeNext:^(NSArray *examResultModelArr) {
+                    RQ_COMMON_MANAGER.myExamOneCount = examResultModelArr.count;
+                    RQ_COMMON_MANAGER.examResultOneListArr = examResultModelArr;
+                }];
+                
+                [[RQ_HTTP_Service getMyScoreWithSubject:RQHomePageSubjectType_SubjectFour] subscribeNext:^(NSArray *examResultModelArr) {
+                    RQ_COMMON_MANAGER.myExamFourCount = examResultModelArr.count;
+                    RQ_COMMON_MANAGER.examResultFourListArr = examResultModelArr;
+                }];
+                
+                if (user.channel == RQUserLoginChannelTypePhone) {
+                    /// 切换更控制器
+                    dispatch_async(dispatch_get_main_queue(), ^{
+                        /// 发通知
+                        [[NSNotificationCenter defaultCenter] postNotificationName:RQSwitchRootViewControllerNotification object:nil userInfo:@{RQSwitchRootViewControllerUserInfoKey:@(RQSwitchRootViewControllerFromTypeLogin)}];
+                    });
+                }
+            }
+        }else{
+            
+
+        }
+        [MBProgressHUD rq_hideHUD];
+    }];
+    
+}
+
+- (void)loginUserNotif:(NSNotification *)notif{
+    if (!myDelegate.isLogin) {
+        RQUserModel *user = notif.object;
+        [self loginUserdo:user];
+    }
+}
+
+- (void)loginUserdo:(RQUserModel *)user{
+    if(user==NULL){
+        return;
+    }
+    
+    
 }
 
 #pragma mark - 设置子控件
@@ -121,7 +189,7 @@
 	}];
 	
 //	self.weChatLoginBtn.hidden = ![WXApi isWXAppInstalled];
-    self.weChatLoginBtn.hidden = YES;
+    self.weChatLoginBtn.hidden = NO;
 	self.thirdLoginLineLeft.hidden = self.weChatLoginBtn.hidden;
 	self.thirdLoginLabel.hidden = self.weChatLoginBtn.hidden;
 	self.thirdLoginLineRight.hidden = self.weChatLoginBtn.hidden;
@@ -158,7 +226,6 @@
 		  [self.view endEditing:YES];
 	  }]
 	 subscribeNext:^(NSNumber * showHud) {
-		 @strongify(self);
 		 if (showHud.boolValue) {
 			 [MBProgressHUD rq_showProgressHUD:@"请稍后..."];
 		 }

+ 11 - 11
jiaPei/Modules/LoginModule/Controller/RQLoginViewController.xib

@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="20037" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="23504" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
     <device id="retina4_7" orientation="portrait" appearance="light"/>
     <dependencies>
         <deployment identifier="iOS"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="20020"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="23506"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
     </dependencies>
     <objects>
@@ -57,7 +57,7 @@
                             </connections>
                         </button>
                         <button hidden="YES" opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Y48-ve-zKW">
-                            <rect key="frame" x="116.5" y="408.5" width="66" height="29"/>
+                            <rect key="frame" x="117.5" y="408.5" width="65" height="29"/>
                             <fontDescription key="fontDescription" type="system" pointSize="14"/>
                             <state key="normal" title="账号注册&gt;">
                                 <color key="titleColor" red="0.28627450980000002" green="0.5568627451" blue="0.96078431369999995" alpha="1" colorSpace="deviceRGB"/>
@@ -73,7 +73,7 @@
                             <nil key="highlightedColor"/>
                         </label>
                         <button hidden="YES" opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="OcK-xO-vwk">
-                            <rect key="frame" x="201.5" y="408.5" width="66" height="29"/>
+                            <rect key="frame" x="201.5" y="408.5" width="65" height="29"/>
                             <fontDescription key="fontDescription" type="system" pointSize="14"/>
                             <state key="normal" title="忘记密码&gt;">
                                 <color key="titleColor" red="0.28627450980000002" green="0.5568627451" blue="0.96078431369999995" alpha="1" colorSpace="deviceRGB"/>
@@ -82,27 +82,27 @@
                                 <action selector="changePasswordAction:" destination="-1" eventType="touchUpInside" id="sic-rM-Dwn"/>
                             </connections>
                         </button>
-                        <view hidden="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="8ny-NW-QcU">
-                            <rect key="frame" x="34" y="567.5" width="106" height="1"/>
+                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="8ny-NW-QcU">
+                            <rect key="frame" x="34" y="567.5" width="107" height="1"/>
                             <color key="backgroundColor" red="0.59999999999999998" green="0.59999999999999998" blue="0.59999999999999998" alpha="1" colorSpace="calibratedRGB"/>
                             <constraints>
                                 <constraint firstAttribute="height" constant="1" id="PZa-8k-7dP"/>
                             </constraints>
                         </view>
-                        <label hidden="YES" opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="第三方登录" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="NAy-EW-cP9">
-                            <rect key="frame" x="156" y="559.5" width="71.5" height="17"/>
+                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="第三方登录" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="NAy-EW-cP9">
+                            <rect key="frame" x="157" y="559.5" width="69.5" height="17"/>
                             <fontDescription key="fontDescription" type="system" pointSize="14"/>
                             <color key="textColor" red="0.59999999999999998" green="0.59999999999999998" blue="0.59999999999999998" alpha="1" colorSpace="calibratedRGB"/>
                             <nil key="highlightedColor"/>
                         </label>
-                        <view hidden="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="UqK-7q-hyy">
-                            <rect key="frame" x="243.5" y="567.5" width="106" height="1"/>
+                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="UqK-7q-hyy">
+                            <rect key="frame" x="242.5" y="567.5" width="107" height="1"/>
                             <color key="backgroundColor" red="0.59999999999999998" green="0.59999999999999998" blue="0.59999999999999998" alpha="1" colorSpace="calibratedRGB"/>
                             <constraints>
                                 <constraint firstAttribute="height" constant="1" id="Q4N-Nu-ciB"/>
                             </constraints>
                         </view>
-                        <button hidden="YES" opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="vlo-SS-wKb">
+                        <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="vlo-SS-wKb">
                             <rect key="frame" x="56" y="584.5" width="272" height="40"/>
                             <color key="backgroundColor" red="0.0039215686274509803" green="0.75686274509803919" blue="0.55294117647058827" alpha="1" colorSpace="calibratedRGB"/>
                             <constraints>

+ 3 - 0
jiaPei/Modules/LoginModule/LoginModule.h

@@ -87,14 +87,17 @@
 #import "RQHomePageViewController.h"
 #import "RQHomeSubPageViewController.h"
 #import "RQLoginViewController.h"
+#import "NYLoginBindViewController.h"
 
 #pragma mark - ViewModel
 /// Controller_ViewModel
 #import "RQLoginViewModel.h"
+#import "NYLoginBindViewModel.h"
 #import "RQLoginBaseViewModel.h"
 #import "RQVerificationSmsCodeViewModel.h"
 #import "RQUpdatePasswordViewModel.h"
 #import "RQRegisterViewModel.h"
+#import "NYJsCodeModel.h"
 
 /// View_ViewModel
 

+ 20 - 0
jiaPei/Modules/LoginModule/Model/NYJsCodeModel.h

@@ -0,0 +1,20 @@
+//
+//  NYJsCodeModel.h
+//  jiaPei
+//
+//  Created by Ning.ge on 2025/3/31.
+//  Copyright © 2025 JCZ. All rights reserved.
+//
+
+#import "RQBaseModel.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface NYJsCodeModel : RQBaseModel
+
+@property (nonatomic, readwrite, strong) RQUserModel     * gzptUserInfo;
+@property (nonatomic, readwrite, copy) NSString              * openid;
+
+@end
+
+NS_ASSUME_NONNULL_END

+ 19 - 0
jiaPei/Modules/LoginModule/Model/NYJsCodeModel.m

@@ -0,0 +1,19 @@
+//
+//  NYJsCodeModel.m
+//  jiaPei
+//
+//  Created by Ning.ge on 2025/3/31.
+//  Copyright © 2025 JCZ. All rights reserved.
+//
+
+#import "NYJsCodeModel.h"
+
+@implementation NYJsCodeModel
+
++ (NSDictionary<NSString *,id> *)modelContainerPropertyGenericClass {
+    return @{
+                @"gzptUserInfo"     :         [RQUserModel class]
+            };
+}
+
+@end

+ 1 - 0
jiaPei/Modules/LoginModule/Model/RQUserModel.h

@@ -131,6 +131,7 @@
 @property (nonatomic, readwrite, copy) NSString              * busitype;
 @property (nonatomic, readwrite, copy) NSString              * isOpenScan;
 @property (nonatomic, readwrite, copy) NSString              * qzVideo;
+@property (nonatomic, readwrite, copy) NSString              * openId;
 ///未知参数
 @property (nonatomic, readwrite, copy) NSString              * sjjlbh;
 @property (nonatomic, readwrite, copy) NSString              * a_c;

+ 21 - 0
jiaPei/Modules/LoginModule/ViewModel/NYLoginBindViewModel.h

@@ -0,0 +1,21 @@
+//
+//  NYLoginBindViewModel.h
+//  jiaPei
+//
+//  Created by Ning.ge on 2025/3/31.
+//  Copyright © 2025 JCZ. All rights reserved.
+//
+
+#import "RQBaseViewModel.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface NYLoginBindViewModel : RQBaseViewModel
+
+@property (nonatomic,copy) NSString *openid;
+//是否绑定-true 解绑 false 绑定
+@property (nonatomic,assign) Boolean isBind;
+
+@end
+
+NS_ASSUME_NONNULL_END

+ 21 - 0
jiaPei/Modules/LoginModule/ViewModel/NYLoginBindViewModel.m

@@ -0,0 +1,21 @@
+//
+//  NYLoginBindViewModel.m
+//  jiaPei
+//
+//  Created by Ning.ge on 2025/3/31.
+//  Copyright © 2025 JCZ. All rights reserved.
+//
+
+#import "NYLoginBindViewModel.h"
+
+@implementation NYLoginBindViewModel
+
+- (instancetype)initWithServices:(id<RQViewModelServices>)services params:(NSDictionary *)params {
+    if (self = [super initWithServices:services params:params]) {
+
+    }
+    
+    return self;
+}
+
+@end

+ 3 - 0
jiaPei/Modules/MainModule/MainModule.h

@@ -37,3 +37,6 @@ typedef NS_ENUM(NSUInteger, RQTabBarItemTagType) {
 
 #pragma mark - Model
 #import "RQHTTPService+RQGetJsjpSet.h"
+#import "RQHTTPService+ExistFreeSch.h"
+#import "RQHTTPService+UserVipByUser.h"
+#import "RQHTTPService+MotivateAdTime.h"

+ 19 - 0
jiaPei/Modules/MainModule/Model/RQHTTPService+ExistFreeSch.h

@@ -0,0 +1,19 @@
+//
+//  RQHTTPService+ExistFreeSch.h
+//  jiaPei
+//
+//  Created by Ning.ge on 2025/3/11.
+//  Copyright © 2025 JCZ. All rights reserved.
+//
+
+#import "RQHTTPService.h"
+
+#define RQ_GET_JSJP_ExistFreeSch     @"https://jsjp-admin.zzxcx.net/jsjp-admin/open-api/free/vip/isExistFreeSch"
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface RQHTTPService (ExistFreeSch)
+- (RACSignal *)getExistFreeSch:(NSString*)jxbh;
+@end
+
+NS_ASSUME_NONNULL_END

+ 26 - 0
jiaPei/Modules/MainModule/Model/RQHTTPService+ExistFreeSch.m

@@ -0,0 +1,26 @@
+//
+//  RQHTTPService+ExistFreeSch.m
+//  jiaPei
+//
+//  Created by Ning.ge on 2025/3/11.
+//  Copyright © 2025 JCZ. All rights reserved.
+//
+
+#import "RQHTTPService+ExistFreeSch.h"
+
+@implementation RQHTTPService (ExistFreeSch)
+
+- (RACSignal *)getExistFreeSch:(NSString*)jxbh {
+    /// 1. 配置参数
+    RQKeyedSubscript *subscript = [RQKeyedSubscript subscript];
+    subscript[@"jxbh"] = jxbh;
+    /// 2. 配置参数模型
+    RQURLParameters *paramters = [RQURLParameters urlParametersWithMethod:RQ_HTTTP_METHOD_GET path:RQ_GET_JSJP_ExistFreeSch parameters:subscript.dictionary];
+    
+    /// 3.发起请求
+    return [[[RQHTTPRequest requestWithParameters:paramters]
+             enqueueResultClass:RQBaseModel.class]
+            rq_parsedResults];
+}
+
+@end

+ 19 - 0
jiaPei/Modules/MainModule/Model/RQHTTPService+MotivateAdTime.h

@@ -0,0 +1,19 @@
+//
+//  RQHTTPService+MotivateAdTime.h
+//  jiaPei
+//
+//  Created by Ning.ge on 2025/3/13.
+//  Copyright © 2025 JCZ. All rights reserved.
+//
+
+#import "RQHTTPService.h"
+#define RQ_GET_JSAD_TIME     @"https://jsjp-admin.zzxcx.net/jsjp-admin/open-api/gzpt/userInfo/type/motivate_ad_time"
+NS_ASSUME_NONNULL_BEGIN
+
+@interface RQHTTPService (MotivateAdTime)
+
+- (RACSignal *)getMotivateAdTime;
+
+@end
+
+NS_ASSUME_NONNULL_END

+ 26 - 0
jiaPei/Modules/MainModule/Model/RQHTTPService+MotivateAdTime.m

@@ -0,0 +1,26 @@
+//
+//  RQHTTPService+MotivateAdTime.m
+//  jiaPei
+//
+//  Created by Ning.ge on 2025/3/13.
+//  Copyright © 2025 JCZ. All rights reserved.
+//
+
+#import "RQHTTPService+MotivateAdTime.h"
+
+@implementation RQHTTPService (MotivateAdTime)
+
+- (RACSignal *)getMotivateAdTime {
+    /// 1. 配置参数
+    RQKeyedSubscript *subscript = [RQKeyedSubscript subscript];
+
+    /// 2. 配置参数模型
+    RQURLParameters *paramters = [RQURLParameters urlParametersWithMethod:RQ_HTTTP_METHOD_GET path:RQ_GET_JSAD_TIME parameters:subscript.dictionary];
+    
+    /// 3.发起请求
+    return [[[RQHTTPRequest requestWithParameters:paramters]
+             enqueueResultClass:[RQDictInfoModel class]]
+            rq_parsedResults];
+}
+
+@end

+ 21 - 0
jiaPei/Modules/MainModule/Model/RQHTTPService+UserVipByUser.h

@@ -0,0 +1,21 @@
+//
+//  RQHTTPService+UserVipByUser.h
+//  jiaPei
+//
+//  Created by Ning.ge on 2025/3/12.
+//  Copyright © 2025 JCZ. All rights reserved.
+//
+
+#import "RQHTTPService.h"
+
+#define RQ_GET_JSJP_UserVipByUserId     @"https://jsjp-admin.zzxcx.net/jsjp-admin/open-api/gzpt/userInfo/getUserVipByUserId"
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface RQHTTPService (UserVipByUser)
+
+- (RACSignal *)getUserVipByUserId:(NSString*)userId;
+
+@end
+
+NS_ASSUME_NONNULL_END

+ 25 - 0
jiaPei/Modules/MainModule/Model/RQHTTPService+UserVipByUser.m

@@ -0,0 +1,25 @@
+//
+//  RQHTTPService+UserVipByUser.m
+//  jiaPei
+//
+//  Created by Ning.ge on 2025/3/12.
+//  Copyright © 2025 JCZ. All rights reserved.
+//
+
+#import "RQHTTPService+UserVipByUser.h"
+
+@implementation RQHTTPService (UserVipByUser)
+
+- (RACSignal *)getUserVipByUserId:(NSString*)userId {
+    /// 1. 配置参数
+    RQKeyedSubscript *subscript = [RQKeyedSubscript subscript];
+    subscript[@"userId"] = userId;
+    /// 2. 配置参数模型
+    RQURLParameters *paramters = [RQURLParameters urlParametersWithMethod:RQ_HTTTP_METHOD_GET path:RQ_GET_JSJP_UserVipByUserId parameters:subscript.dictionary];
+    
+    /// 3.发起请求
+    return [[[RQHTTPRequest requestWithParameters:paramters]
+             enqueueResultClass:RQBaseModel.class]
+            rq_parsedResults];
+}
+@end

+ 32 - 0
jiaPei/Modules/MainModule/ViewController/RQMainTabBarViewController.m

@@ -41,6 +41,38 @@
 	
 	// set delegate
 	self.tabBarController.delegate = self;
+    [self performSelector:@selector(takeExistFreeSch) withObject:nil afterDelay:20];
+    
+    [RQ_VIP_Module isVipWithSubject:0 complete:^(BOOL isVip) {
+        
+    }];
+}
+
+- (void)takeExistFreeSch{
+    if (RQ_USER_MANAGER.isLogin&&![RQ_USER_MANAGER.currentUser.userName containsString:@"游客"]) {
+        NSLog(@"%@====%@",RQ_COMMON_MANAGER.JSJP_FREE_VIP,RQ_USER_MANAGER.currentUser.city);
+        //判断地区编号,判断是否已经开通vip,判断这个api是否满足开通
+        if ([RQ_COMMON_MANAGER.JSJP_FREE_VIP rangeOfString:RQ_USER_MANAGER.currentUser.city].location != NSNotFound) {
+//            &&!RQStringIsNotEmpty(RQ_VIP_Module.videoVipModel.subject1)&&!RQStringIsNotEmpty(RQ_VIP_Module.videoVipModel.subject4)
+            [RQ_VIP_Module isVipWithSubject:0 complete:^(BOOL isVip) {
+                if(!RQStringIsNotEmpty(RQ_VIP_Module.videoVipModel.subject1)&&!RQStringIsNotEmpty(RQ_VIP_Module.videoVipModel.subject4)){
+                    NSString *jxbh = RQStringIsNotEmpty(RQ_USER_MANAGER.currentUser.school)? RQ_USER_MANAGER.currentUser.school : @"";
+                    [[RQ_HTTP_Service getExistFreeSch:jxbh] subscribeNext:^(id prepareOrderModel) {
+                        NSLog(@"%@",prepareOrderModel);
+                        [RQ_ALERTVIEW_MANAGER showAlertWithAlertType:RQAlertType_AD_SONG title:@"" message:@"车管所实题,观看一次广告,即可正常使用。点击观看无反应。请稍等5到10秒。" confirmTitle:@"充值使用" cancelTitle:@"看广告解锁" confirmAction:^(__kindof QMUIDialogViewController * _Nonnull dialogViewController) {
+                            [RQ_VIP_Module gotoBuyVipWithVipPageType:RQVIPPageType_Full];
+                        } cancelAction:^(__kindof QMUIDialogViewController * _Nonnull dialogViewController) {
+                            RQ_VIP_Module.type=1;
+                            [RQ_AD_Module loadRewardvodAd];
+                        }];
+                    } error:^(NSError * _Nullable error) {
+
+                    }];
+                }
+            }];
+            
+        }
+    }
 }
 
 #pragma mark - Private Method

+ 19 - 2
jiaPei/Modules/OtherModules/ADModule/RQADModule.m

@@ -116,8 +116,25 @@ static id rq_adModule = nil;
  @param rewardvodAd 广告实例
  */
 - (void)adsy_rewardvodAdDidRewardEffective:(ADSuyiSDKRewardvodAd *)rewardvodAd{
-    RQ_VIP_Module.freeLookSimExamNum = 1;
-    [RQ_ALERTVIEW_MANAGER showAlertWithTitle:@"温馨提示" message:@"获得一次免费真实模拟考试" confirmTitle:@"确定" confirmAction:nil];
+    if(RQ_VIP_Module.type==1){//领vip
+        [[RQ_HTTP_Service getUserVipByUserId:RQ_USER_MANAGER.currentUser._id] subscribeNext:^(id vipUserModel) {
+            NSLog(@"%@",vipUserModel);
+            //领取成功-刷新vip
+            [RQ_VIP_Module isVipWithSubject:1 complete:^(BOOL isVip) {
+                if(isVip){
+                    [RQ_ALERTVIEW_MANAGER showAlertWithTitle:@"温馨提示" message:@"您已领取成功!" confirmTitle:@"确定" confirmAction:^(__kindof QMUIDialogViewController * _Nonnull dialogViewController) {
+         
+                    }];
+                }
+            }];
+        } error:^(NSError * _Nullable error) {
+
+        }];
+        RQ_VIP_Module.type = 0;
+    }else{
+        RQ_VIP_Module.freeLookSimExamNum = 1;
+        [RQ_ALERTVIEW_MANAGER showAlertWithTitle:@"温馨提示" message:@"获得一次免费真实模拟考试" confirmTitle:@"确定" confirmAction:nil];
+    }
 }
 
 /**

+ 1 - 0
jiaPei/Modules/OtherModules/ExerciseModule/View/ExerciseSubPage/考试相关/RQExamProbabilyCell.h

@@ -13,6 +13,7 @@ NS_ASSUME_NONNULL_BEGIN
 
 @interface RQExamProbabilyCell : RQCommonCell
 @property (weak, nonatomic) IBOutlet UILabel *passRateLabel;
+@property (weak, nonatomic) IBOutlet UILabel *passRateBigLabel;
 
 
 @property (weak, nonatomic) IBOutlet QMUIButton *passRateBtn1;

+ 92 - 29
jiaPei/Modules/OtherModules/ExerciseModule/View/ExerciseSubPage/考试相关/RQExamProbabilyCell.m

@@ -60,7 +60,7 @@
                 graColor.fromColor = [UIColor qmui_colorWithHexString:@"#01C18D"];
                 graColor.toColor = [UIColor qmui_colorWithHexString:@"#3ED2AA"];
                 graColor.type = QQGradualChangeTypeLeftToRight;
-            } size:CGSizeMake(RQ_FIT_HORIZONTAL(47.f), RQ_FIT_HORIZONTAL(26.f)) cornerRadius:QQRadiusMakeSame(0.f)]];
+            } size:CGSizeMake(RQ_FIT_HORIZONTAL(50.f), RQ_FIT_HORIZONTAL(26.f)) cornerRadius:QQRadiusMakeSame(0.f)]];
         });
         self.arrowImage = [UIImageMake(@"popover_container_arrow") qmui_imageResizedInLimitedSize:CGSizeMake(RQ_FIT_HORIZONTAL(14.f), RQ_FIT_HORIZONTAL(8.f)) resizingMode:QMUIImageResizingModeScaleAspectFit];
         
@@ -69,7 +69,7 @@
 }
 
 - (CGSize)sizeThatFitsInContentView:(CGSize)size {
-    return CGSizeMake(RQ_FIT_HORIZONTAL(47.f), RQ_FIT_HORIZONTAL(26.f));
+    return CGSizeMake(RQ_FIT_HORIZONTAL(50.f), RQ_FIT_HORIZONTAL(26.f));
 }
 
 - (void)layoutSubviews {
@@ -111,7 +111,7 @@
 - (void)bindViewModel:(RQExamProbabilyItemViewModel *)viewModel {
     _viewModel = viewModel;
     @weakify(self)
-    self.passRateTitleLabel.text = viewModel.homePageSubjectType == RQHomePageSubjectType_SubjectOne? @"科目一考试预测通过率" : @"科目四考试预测通过率";
+//    self.passRateTitleLabel.text = viewModel.homePageSubjectType == RQHomePageSubjectType_SubjectOne? @"科目一考试预测通过率" : @"科目四考试预测通过率";
     [[RACObserve(RQ_USER_MANAGER.currentUser, photo) takeUntil:self.rac_prepareForReuseSignal] subscribeNext:^(NSString *imageName) {
         @strongify(self);
         [self.myHeadImageView yy_setImageWithURL:[NSURL URLWithString:imageName] placeholder:RQWebAvatarImagePlaceholder() options:RQWebImageOptionAutomatic completion:^(UIImage * _Nullable image, NSURL * _Nonnull url, YYWebImageFromType from, YYWebImageStage stage, NSError * _Nullable error) {
@@ -155,54 +155,49 @@
         [self.popupByAddBottomSubview sizeThatFitsInContentView:CGSizeMake(RQ_FIT_HORIZONTAL(120.f), RQ_FIT_HORIZONTAL(39.f))];
         self.popupByAddBottomSubview.sourceRect = CGRectMake(16.f + 16.f + 10.f + (4.f * 5) + 2.f + (space * 4) - (RQ_FIT_HORIZONTAL(120.f) / 2.f), self.probabilyView.frame.origin.y + self.probabilyView.frame.size.height + 8.f, RQ_FIT_HORIZONTAL(120.f),  RQ_FIT_HORIZONTAL(39.f));
     }];
-    
-    [[RQ_HTTP_Service getPassRateWithSubject:viewModel.homePageSubjectType carType:RQ_YDTQuestion_Module.carType] subscribeNext:^(NSString *str) {
-        @strongify(self)
-        if (RQStringIsNotEmpty(str)) {
-            self.passRateLabel.text = [NSString stringWithFormat:@"%@%%",str];
-            NSInteger c = str.integerValue;
+    NSInteger allCount = [RQ_YDTQuestion_Module getQuestionNumWithWithSubject:viewModel.homePageSubjectType exerciseType:RQExerciseType_Sequential];
+    NSInteger wrongCount = [RQ_YDTQuestion_Module getQuestionNumWithWithSubject:viewModel.homePageSubjectType exerciseType:RQExerciseType_Wrong];
+    NSInteger doCount = [RQ_YDTQuestion_Module getQuestionNumWithWithSubject:viewModel.homePageSubjectType exerciseType:RQExerciseType_Do];
+    NSString *carTypeStr = [RQ_YDTQuestion_Module getCarTypeCNNameWithCarType:RQ_YDTQuestion_Module.carType];
+    NSDictionary *params = @{
+        @"carType":carTypeStr,
+        @"kskm":[NSString stringWithFormat:@"%zd",viewModel.homePageSubjectType+1],
+        @"practicedCount":@(doCount), //已做了
+        @"totalQuestions":@(allCount), //总题数
+        @"userId":RQ_USER_MANAGER.currentUser._id,
+        @"wrongCount":@(wrongCount),//错题
+    };
+    [jiaPeiManager NYRequestAnythingDataWithURL:RQ_POST_CalculatePassRate contentType:@"application/json" parameters:params completion:^(NSDictionary *dict) {
+        if([dict[@"code"] intValue]==200){
             UIColor *bgColor = RQColorFromHexString(@"#FF4D53");
-            
+            NSString *passRate = [NSString stringWithFormat:@"%0.2f",[dict[@"data"][@"passRate"] floatValue]];
+            NSString *tip = dict[@"data"][@"tip"];
+            NSInteger c = passRate.integerValue;
+            self.passRateLabel.text = [NSString stringWithFormat:@"考试预测通过率%@%%,%@",passRate,tip];
+            self.passRateBigLabel.text = [NSString stringWithFormat:@"%@%%",passRate];
+            self.popupByAddBottomSubview.textLabel.text = tip;
             if (c >= 0 && c <= 10) {
-                self.popupByAddBottomSubview.textLabel.text = @"想啥呢?快开始学习吧!";
                 _passRateBtn1.selected = YES;
                 _bgImageView.image = RQImageNamed(@"0%10%背景");
             } else if (c > 10 && c <= 20) {
-                self.popupByAddBottomSubview.textLabel.text = @"路遥知马力,加油!";
                 _bgImageView.image = RQImageNamed(@"0%10%背景");
             } else if (c > 20 && c <= 30) {
-                self.popupByAddBottomSubview.textLabel.text = @"征服畏惧,建立自信。";
                 _bgImageView.image = RQImageNamed(@"20%30%背景");
             } else if (c > 30 && c <= 40) {
-                self.popupByAddBottomSubview.textLabel.text = @"学习就像爬山,目的性强爬得就快。";
                 _bgImageView.image = RQImageNamed(@"20%30%背景");
             } else if (c > 40 && c <= 50) {
-                self.popupByAddBottomSubview.textLabel.text = @"快到半山腰了哦!";
                 _bgImageView.image = RQImageNamed(@"20%30%背景");
             } else if (c > 50 && c <= 60) {
-                self.popupByAddBottomSubview.textLabel.text = @"不错哦,五五开了呀。";
                 _bgImageView.image = RQImageNamed(@"20%30%背景");
             } else if (c > 60 && c <= 70) {
-                self.popupByAddBottomSubview.textLabel.text = @"努努力,希望很大!";
                 _bgImageView.image = RQImageNamed(@"80%90%背景图");
             } else if (c > 70 && c <= 80) {
-                self.popupByAddBottomSubview.textLabel.text = @"离成功不远了,加油!";
                 _bgImageView.image = RQImageNamed(@"80%90%背景图");
             } else if (c > 80 && c <= 90) {
-                self.popupByAddBottomSubview.textLabel.text = @"上升空间挺大,继线努力!";
                 _bgImageView.image = RQImageNamed(@"80%90%背景图");
             } else if (c > 90 && c <= 100) {
-                self.popupByAddBottomSubview.textLabel.text = @"十拿九稳了哦,还能审一审!";
                 _bgImageView.image = RQImageNamed(@"80%90%背景图");
             }
-            self.passRateDscLabel.text = [NSString stringWithFormat:@"考试预测通过率%@%%,%@",str,self.popupByAddBottomSubview.textLabel.text];
-            NSInteger length = 10 + self.popupByAddBottomSubview.textLabel.text.length - [@"路遥知马力,加油!" length];
-            [self.popupByAddBottomSubview mas_updateConstraints:^(MASConstraintMaker *make) {
-                @strongify(self)
-                make.size.mas_equalTo(CGSizeMake(RQ_FIT_HORIZONTAL(120.f), RQ_FIT_HORIZONTAL(39.f)));
-                [self.popupByAddBottomSubview sizeThatFitsInContentView:CGSizeMake(RQ_FIT_HORIZONTAL(120.f) + length, RQ_FIT_HORIZONTAL(39.f))];
-                self.popupByAddBottomSubview.sourceRect = CGRectMake(16.f + 16.f + 10.f + (4.f * 5) + 2.f + (space * 4) - ((RQ_FIT_HORIZONTAL(120.f)  + length) / 2.f), self.probabilyView.frame.origin.y + self.probabilyView.frame.size.height + 8.f, RQ_FIT_HORIZONTAL(120.f) + length,  RQ_FIT_HORIZONTAL(39.f));
-            }];
             [[[btnArr.rac_sequence.signal deliverOnMainThread] filter:^BOOL(QMUIButton *btn) {
                 return btn.tag * 3 <= c;
             }] subscribeNext:^(QMUIButton *btn) {
@@ -210,8 +205,76 @@
                 layoutConstraint.constant = 22.f;
                 btn.backgroundColor = bgColor;
             }];
+//            NSInteger length = 10 + self.popupByAddBottomSubview.textLabel.text.length;
+//            [self.popupByAddBottomSubview mas_updateConstraints:^(MASConstraintMaker *make) {
+//                @strongify(self)
+//                make.size.mas_equalTo(CGSizeMake(RQ_FIT_HORIZONTAL(130.f), RQ_FIT_HORIZONTAL(40.f)));
+//                [self.popupByAddBottomSubview sizeThatFitsInContentView:CGSizeMake(RQ_FIT_HORIZONTAL(130.f) + length, RQ_FIT_HORIZONTAL(40.f))];
+//                self.popupByAddBottomSubview.sourceRect = CGRectMake(16.f + 16.f + 10.f + (4.f * 5) + 2.f + (space * 4) - ((RQ_FIT_HORIZONTAL(130.f)  + length) / 2.f), self.probabilyView.frame.origin.y + self.probabilyView.frame.size.height + 8.f, RQ_FIT_HORIZONTAL(130.f) + length,  RQ_FIT_HORIZONTAL(40.f));
+//            }];
+        }else{
+            
+
         }
     }];
+//    [[RQ_HTTP_Service getPassRateWithSubject:viewModel.homePageSubjectType carType:RQ_YDTQuestion_Module.carType] subscribeNext:^(NSString *str) {
+//        @strongify(self)
+//        if (RQStringIsNotEmpty(str)) {
+//            self.passRateLabel.text = [NSString stringWithFormat:@"%@%%",str];
+//            NSInteger c = str.integerValue;
+//            UIColor *bgColor = RQColorFromHexString(@"#FF4D53");
+//            
+//            if (c >= 0 && c <= 10) {
+//                self.popupByAddBottomSubview.textLabel.text = @"想啥呢?快开始学习吧!";
+//                _passRateBtn1.selected = YES;
+//                _bgImageView.image = RQImageNamed(@"0%10%背景");
+//            } else if (c > 10 && c <= 20) {
+//                self.popupByAddBottomSubview.textLabel.text = @"路遥知马力,加油!";
+//                _bgImageView.image = RQImageNamed(@"0%10%背景");
+//            } else if (c > 20 && c <= 30) {
+//                self.popupByAddBottomSubview.textLabel.text = @"征服畏惧,建立自信。";
+//                _bgImageView.image = RQImageNamed(@"20%30%背景");
+//            } else if (c > 30 && c <= 40) {
+//                self.popupByAddBottomSubview.textLabel.text = @"学习就像爬山,目的性强爬得就快。";
+//                _bgImageView.image = RQImageNamed(@"20%30%背景");
+//            } else if (c > 40 && c <= 50) {
+//                self.popupByAddBottomSubview.textLabel.text = @"快到半山腰了哦!";
+//                _bgImageView.image = RQImageNamed(@"20%30%背景");
+//            } else if (c > 50 && c <= 60) {
+//                self.popupByAddBottomSubview.textLabel.text = @"不错哦,五五开了呀。";
+//                _bgImageView.image = RQImageNamed(@"20%30%背景");
+//            } else if (c > 60 && c <= 70) {
+//                self.popupByAddBottomSubview.textLabel.text = @"努努力,希望很大!";
+//                _bgImageView.image = RQImageNamed(@"80%90%背景图");
+//            } else if (c > 70 && c <= 80) {
+//                self.popupByAddBottomSubview.textLabel.text = @"离成功不远了,加油!";
+//                _bgImageView.image = RQImageNamed(@"80%90%背景图");
+//            } else if (c > 80 && c <= 90) {
+//                self.popupByAddBottomSubview.textLabel.text = @"上升空间挺大,继线努力!";
+//                _bgImageView.image = RQImageNamed(@"80%90%背景图");
+//            } else if (c > 90 && c <= 100) {
+//                self.popupByAddBottomSubview.textLabel.text = @"十拿九稳了哦,还能审一审!";
+//                _bgImageView.image = RQImageNamed(@"80%90%背景图");
+//            }
+//            self.passRateDscLabel.text = [NSString stringWithFormat:@"考试预测通过率%@%%,%@",str,self.popupByAddBottomSubview.textLabel.text];
+//            NSInteger length = 10 + self.popupByAddBottomSubview.textLabel.text.length - [@"路遥知马力,加油!" length];
+//            [self.popupByAddBottomSubview mas_updateConstraints:^(MASConstraintMaker *make) {
+//                @strongify(self)
+//                make.size.mas_equalTo(CGSizeMake(RQ_FIT_HORIZONTAL(120.f), RQ_FIT_HORIZONTAL(39.f)));
+//                [self.popupByAddBottomSubview sizeThatFitsInContentView:CGSizeMake(RQ_FIT_HORIZONTAL(120.f) + length, RQ_FIT_HORIZONTAL(39.f))];
+//                self.popupByAddBottomSubview.sourceRect = CGRectMake(16.f + 16.f + 10.f + (4.f * 5) + 2.f + (space * 4) - ((RQ_FIT_HORIZONTAL(120.f)  + length) / 2.f), self.probabilyView.frame.origin.y + self.probabilyView.frame.size.height + 8.f, RQ_FIT_HORIZONTAL(120.f) + length,  RQ_FIT_HORIZONTAL(39.f));
+//            }];
+//            [[[btnArr.rac_sequence.signal deliverOnMainThread] filter:^BOOL(QMUIButton *btn) {
+//                return btn.tag * 3 <= c;
+//            }] subscribeNext:^(QMUIButton *btn) {
+//                NSLayoutConstraint *layoutConstraint = btnHeightArr[btn.tag - 1];
+//                layoutConstraint.constant = 22.f;
+//                btn.backgroundColor = bgColor;
+//            }];
+//        }
+//    }];
+    
+    
 }
 - (void)awakeFromNib {
     [super awakeFromNib];
@@ -241,7 +304,7 @@
         _popupByAddBottomSubview.textLabel.text = @"路遥知马力,加油!";
         _popupByAddBottomSubview.textLabel.textAlignment = NSTextAlignmentCenter;
         _popupByAddBottomSubview.cornerRadius = 4.f;
-        _popupByAddBottomSubview.textLabel.font = [UIFont systemFontOfSize:13];
+        _popupByAddBottomSubview.textLabel.font = [UIFont systemFontOfSize:12];
         _popupByAddBottomSubview.textLabel.textColor = RQ_MAIN_TEXT_COLOR_1;
         _popupByAddBottomSubview.backgroundView = ({
             [[UIImageView alloc] initWithImage:[UIImage imageWithGradualChangingColor:^(QQGradualChangingColor *graColor) {

+ 109 - 24
jiaPei/Modules/OtherModules/ExerciseModule/View/ExerciseSubPage/考试相关/RQExamProbabilyCell.xib

@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="20037" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="23727" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
     <device id="retina6_1" orientation="portrait" appearance="light"/>
     <dependencies>
         <deployment identifier="iOS"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="20020"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="23721"/>
         <capability name="System colors in document resources" minToolsVersion="11.0"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
     </dependencies>
@@ -11,17 +11,17 @@
         <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
         <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
         <tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" id="KGk-i7-Jjw" customClass="RQExamProbabilyCell">
-            <rect key="frame" x="0.0" y="0.0" width="375" height="417"/>
+            <rect key="frame" x="0.0" y="0.0" width="375" height="617"/>
             <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
             <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="KGk-i7-Jjw" id="H2p-sc-9uM">
-                <rect key="frame" x="0.0" y="0.0" width="375" height="417"/>
+                <rect key="frame" x="0.0" y="0.0" width="375" height="617"/>
                 <autoresizingMask key="autoresizingMask"/>
                 <subviews>
                     <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Lbe-3S-wkY">
                         <rect key="frame" x="0.0" y="0.0" width="375" height="221"/>
                         <subviews>
                             <stackView opaque="NO" contentMode="scaleToFill" distribution="equalSpacing" alignment="center" spacing="16" translatesAutoresizingMaskIntoConstraints="NO" id="Uyg-K9-5Pa">
-                                <rect key="frame" x="16" y="77" width="252" height="45"/>
+                                <rect key="frame" x="16" y="86.5" width="249" height="45"/>
                                 <subviews>
                                     <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="drawer_head" translatesAutoresizingMaskIntoConstraints="NO" id="jNa-0q-G4f">
                                         <rect key="frame" x="0.0" y="0.0" width="45" height="45"/>
@@ -30,16 +30,16 @@
                                         </constraints>
                                     </imageView>
                                     <stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="4" translatesAutoresizingMaskIntoConstraints="NO" id="1cZ-DW-Rwc">
-                                        <rect key="frame" x="61" y="5.5" width="191" height="34.5"/>
+                                        <rect key="frame" x="61" y="5" width="188" height="34.5"/>
                                         <subviews>
                                             <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="崔家仪" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="GEE-i3-QoD">
-                                                <rect key="frame" x="0.0" y="0.0" width="191" height="17"/>
+                                                <rect key="frame" x="0.0" y="0.0" width="188" height="17"/>
                                                 <fontDescription key="fontDescription" type="system" pointSize="14"/>
                                                 <color key="textColor" red="1" green="0.93725490196078431" blue="0.84705882352941175" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                                 <nil key="highlightedColor"/>
                                             </label>
                                             <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="考试预测通过率15%,通过可能性极低" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="n8g-Ze-Soo">
-                                                <rect key="frame" x="0.0" y="21" width="191" height="13.5"/>
+                                                <rect key="frame" x="0.0" y="21" width="188" height="13.5"/>
                                                 <fontDescription key="fontDescription" type="system" pointSize="11"/>
                                                 <color key="textColor" red="1" green="0.93725490199999995" blue="0.84705882349999995" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                                 <nil key="highlightedColor"/>
@@ -56,25 +56,81 @@
                         </constraints>
                     </view>
                     <view clipsSubviews="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="ZqW-yT-6oA">
-                        <rect key="frame" x="16" y="138" width="343" height="279"/>
+                        <rect key="frame" x="16" y="147.5" width="343" height="469.5"/>
                         <subviews>
-                            <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="0%10%背景" translatesAutoresizingMaskIntoConstraints="NO" id="NeD-gK-jxR">
-                                <rect key="frame" x="0.0" y="0.0" width="343" height="279"/>
+                            <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="0%10%背景" translatesAutoresizingMaskIntoConstraints="NO" id="NeD-gK-jxR">
+                                <rect key="frame" x="0.0" y="0.0" width="343" height="469.5"/>
                             </imageView>
-                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="科目一考试预测通过率" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="T5b-wX-hkc">
-                                <rect key="frame" x="16" y="16" width="311" height="21"/>
+                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="综合计算,您的当前通过率" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="T5b-wX-hkc">
+                                <rect key="frame" x="15" y="129" width="313" height="21"/>
+                                <constraints>
+                                    <constraint firstAttribute="height" constant="21" id="AFc-Bn-wl8"/>
+                                </constraints>
                                 <fontDescription key="fontDescription" type="system" pointSize="15"/>
                                 <color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                                 <nil key="highlightedColor"/>
                             </label>
+                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="1.知识掌握度评估(权重40%) " lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Jv6-2a-Wkb">
+                                <rect key="frame" x="15" y="46" width="313" height="21"/>
+                                <constraints>
+                                    <constraint firstAttribute="height" constant="21" id="1jM-hr-mRP"/>
+                                </constraints>
+                                <fontDescription key="fontDescription" type="system" pointSize="15"/>
+                                <color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                <nil key="highlightedColor"/>
+                            </label>
+                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="2.模拟考试分析(权重55%)" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Dym-gd-oQM">
+                                <rect key="frame" x="15" y="72" width="313" height="21"/>
+                                <constraints>
+                                    <constraint firstAttribute="height" constant="21" id="lNf-ba-Vzh"/>
+                                </constraints>
+                                <fontDescription key="fontDescription" type="system" pointSize="15"/>
+                                <color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                <nil key="highlightedColor"/>
+                            </label>
+                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="80%以下,推荐购买 特训包" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Sh8-XY-of0">
+                                <rect key="frame" x="15" y="372.5" width="313" height="21"/>
+                                <constraints>
+                                    <constraint firstAttribute="height" constant="21" id="GGR-i4-FMm"/>
+                                </constraints>
+                                <fontDescription key="fontDescription" type="system" pointSize="15"/>
+                                <color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                <nil key="highlightedColor"/>
+                            </label>
+                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="3.特殊规则修正(权重5%)" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="tum-HZ-jhQ">
+                                <rect key="frame" x="15" y="98" width="313" height="21"/>
+                                <constraints>
+                                    <constraint firstAttribute="height" constant="21" id="4xR-w1-K9I"/>
+                                </constraints>
+                                <fontDescription key="fontDescription" type="system" pointSize="15"/>
+                                <color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                <nil key="highlightedColor"/>
+                            </label>
+                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="以下由" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Zyp-FB-E4e">
+                                <rect key="frame" x="15" y="15" width="51" height="21"/>
+                                <constraints>
+                                    <constraint firstAttribute="height" constant="21" id="7zT-dw-sPT"/>
+                                    <constraint firstAttribute="width" constant="51" id="CH7-a1-vaa"/>
+                                </constraints>
+                                <fontDescription key="fontDescription" type="system" pointSize="15"/>
+                                <color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                <nil key="highlightedColor"/>
+                            </label>
+                            <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="deepseek" translatesAutoresizingMaskIntoConstraints="NO" id="nDg-dP-4nW">
+                                <rect key="frame" x="66" y="15" width="76" height="21"/>
+                                <constraints>
+                                    <constraint firstAttribute="height" constant="21" id="Dl0-wK-fjA"/>
+                                    <constraint firstAttribute="width" constant="76" id="iPD-b9-g70"/>
+                                </constraints>
+                            </imageView>
                             <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="0%" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="S7r-YR-W4r">
-                                <rect key="frame" x="16" y="37" width="311" height="70"/>
+                                <rect key="frame" x="16" y="160" width="311" height="70"/>
                                 <fontDescription key="fontDescription" type="boldSystem" pointSize="50"/>
                                 <color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                                 <nil key="highlightedColor"/>
                             </label>
                             <view clipsSubviews="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="wUZ-Hp-2a4">
-                                <rect key="frame" x="16" y="123" width="311" height="30"/>
+                                <rect key="frame" x="16" y="246" width="311" height="30"/>
                                 <subviews>
                                     <stackView opaque="NO" contentMode="scaleToFill" distribution="equalSpacing" alignment="center" translatesAutoresizingMaskIntoConstraints="NO" id="ohK-fq-aAz">
                                         <rect key="frame" x="10" y="0.0" width="291" height="30"/>
@@ -517,7 +573,7 @@
                                 </userDefinedRuntimeAttributes>
                             </view>
                             <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="EtW-pm-04n">
-                                <rect key="frame" x="31.5" y="218" width="280" height="45"/>
+                                <rect key="frame" x="31.5" y="408.5" width="280" height="45"/>
                                 <constraints>
                                     <constraint firstAttribute="width" secondItem="EtW-pm-04n" secondAttribute="height" multiplier="56:9" id="TRG-WY-Bdw"/>
                                 </constraints>
@@ -530,23 +586,51 @@
                                     <action selector="toUpBtnAction:" destination="KGk-i7-Jjw" eventType="touchUpInside" id="jXl-3v-5Pl"/>
                                 </connections>
                             </button>
+                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="根据您的" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="cpq-Pn-Ho3">
+                                <rect key="frame" x="146" y="15" width="110" height="21"/>
+                                <constraints>
+                                    <constraint firstAttribute="height" constant="21" id="bNf-4c-44v"/>
+                                    <constraint firstAttribute="width" constant="110" id="vNU-8i-d23"/>
+                                </constraints>
+                                <fontDescription key="fontDescription" type="system" pointSize="15"/>
+                                <color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                <nil key="highlightedColor"/>
+                            </label>
                         </subviews>
                         <constraints>
-                            <constraint firstAttribute="trailing" secondItem="T5b-wX-hkc" secondAttribute="trailing" constant="16" id="1DO-I1-qBT"/>
                             <constraint firstAttribute="bottom" secondItem="NeD-gK-jxR" secondAttribute="bottom" id="1cW-XB-mpA"/>
                             <constraint firstAttribute="bottom" secondItem="EtW-pm-04n" secondAttribute="bottom" constant="16" id="2eL-vQ-M2a"/>
+                            <constraint firstItem="Dym-gd-oQM" firstAttribute="top" secondItem="Jv6-2a-Wkb" secondAttribute="bottom" constant="5" id="3rN-Y0-1M0"/>
                             <constraint firstAttribute="trailing" secondItem="NeD-gK-jxR" secondAttribute="trailing" id="57Z-OS-Vv9"/>
+                            <constraint firstItem="T5b-wX-hkc" firstAttribute="leading" secondItem="ZqW-yT-6oA" secondAttribute="leading" constant="15" id="8Xs-py-QEo"/>
+                            <constraint firstItem="cpq-Pn-Ho3" firstAttribute="leading" secondItem="nDg-dP-4nW" secondAttribute="trailing" constant="4" id="92Q-0g-PMg"/>
+                            <constraint firstItem="T5b-wX-hkc" firstAttribute="top" secondItem="tum-HZ-jhQ" secondAttribute="bottom" constant="10" id="9Mp-Tb-Z9x"/>
                             <constraint firstItem="EtW-pm-04n" firstAttribute="centerX" secondItem="ZqW-yT-6oA" secondAttribute="centerX" id="CSA-tP-VtY"/>
                             <constraint firstItem="wUZ-Hp-2a4" firstAttribute="leading" secondItem="ZqW-yT-6oA" secondAttribute="leading" constant="16" id="FC1-8i-VSU"/>
                             <constraint firstAttribute="trailing" secondItem="S7r-YR-W4r" secondAttribute="trailing" constant="16" id="FL8-zp-GAY"/>
                             <constraint firstItem="NeD-gK-jxR" firstAttribute="top" secondItem="ZqW-yT-6oA" secondAttribute="top" id="Heg-Lh-SaK"/>
+                            <constraint firstItem="cpq-Pn-Ho3" firstAttribute="top" secondItem="ZqW-yT-6oA" secondAttribute="top" constant="15" id="ION-Sr-92B"/>
+                            <constraint firstItem="Jv6-2a-Wkb" firstAttribute="top" secondItem="Zyp-FB-E4e" secondAttribute="bottom" constant="10" id="JKB-fp-EvZ"/>
                             <constraint firstItem="NeD-gK-jxR" firstAttribute="leading" secondItem="ZqW-yT-6oA" secondAttribute="leading" id="JZO-aP-eUF"/>
+                            <constraint firstItem="S7r-YR-W4r" firstAttribute="top" secondItem="T5b-wX-hkc" secondAttribute="bottom" constant="10" id="Luk-Ry-Aqi"/>
+                            <constraint firstAttribute="trailing" secondItem="Sh8-XY-of0" secondAttribute="trailing" constant="15" id="Ozy-ZE-sUa"/>
                             <constraint firstAttribute="trailing" secondItem="wUZ-Hp-2a4" secondAttribute="trailing" constant="16" id="Qbh-iy-aGH"/>
+                            <constraint firstAttribute="trailing" secondItem="Dym-gd-oQM" secondAttribute="trailing" constant="15" id="Qwn-jL-VQ2"/>
+                            <constraint firstItem="nDg-dP-4nW" firstAttribute="top" secondItem="ZqW-yT-6oA" secondAttribute="top" constant="15" id="TiZ-PP-0X0"/>
+                            <constraint firstAttribute="trailing" secondItem="T5b-wX-hkc" secondAttribute="trailing" constant="15" id="Uw7-d2-oWe"/>
+                            <constraint firstItem="Jv6-2a-Wkb" firstAttribute="leading" secondItem="ZqW-yT-6oA" secondAttribute="leading" constant="15" id="WMa-n1-9vO"/>
+                            <constraint firstItem="nDg-dP-4nW" firstAttribute="leading" secondItem="Zyp-FB-E4e" secondAttribute="trailing" id="XnM-Hg-1fk"/>
+                            <constraint firstAttribute="trailing" secondItem="Jv6-2a-Wkb" secondAttribute="trailing" constant="15" id="Zvu-FR-04Z"/>
+                            <constraint firstItem="EtW-pm-04n" firstAttribute="top" secondItem="Sh8-XY-of0" secondAttribute="bottom" constant="15" id="aW9-uj-M64"/>
+                            <constraint firstItem="tum-HZ-jhQ" firstAttribute="top" secondItem="Dym-gd-oQM" secondAttribute="bottom" constant="5" id="bLQ-Gf-Ci5"/>
                             <constraint firstItem="wUZ-Hp-2a4" firstAttribute="top" secondItem="S7r-YR-W4r" secondAttribute="bottom" constant="16" id="cS7-ku-JJR"/>
                             <constraint firstItem="S7r-YR-W4r" firstAttribute="leading" secondItem="ZqW-yT-6oA" secondAttribute="leading" constant="16" id="d8q-3D-c2I"/>
-                            <constraint firstItem="S7r-YR-W4r" firstAttribute="top" secondItem="T5b-wX-hkc" secondAttribute="bottom" id="dtm-S7-jPJ"/>
-                            <constraint firstItem="T5b-wX-hkc" firstAttribute="top" secondItem="ZqW-yT-6oA" secondAttribute="top" constant="16" id="gca-iU-0cn"/>
-                            <constraint firstItem="T5b-wX-hkc" firstAttribute="leading" secondItem="ZqW-yT-6oA" secondAttribute="leading" constant="16" id="qSL-sS-Xqg"/>
+                            <constraint firstItem="Zyp-FB-E4e" firstAttribute="top" secondItem="ZqW-yT-6oA" secondAttribute="top" constant="15" id="ihe-gz-wcI"/>
+                            <constraint firstItem="Dym-gd-oQM" firstAttribute="leading" secondItem="ZqW-yT-6oA" secondAttribute="leading" constant="15" id="sEm-lE-3ei"/>
+                            <constraint firstAttribute="trailing" secondItem="tum-HZ-jhQ" secondAttribute="trailing" constant="15" id="scr-Sh-1Uw"/>
+                            <constraint firstItem="Zyp-FB-E4e" firstAttribute="leading" secondItem="ZqW-yT-6oA" secondAttribute="leading" constant="15" id="tjB-A1-QKL"/>
+                            <constraint firstItem="tum-HZ-jhQ" firstAttribute="leading" secondItem="ZqW-yT-6oA" secondAttribute="leading" constant="15" id="vYL-he-iSa"/>
+                            <constraint firstItem="Sh8-XY-of0" firstAttribute="leading" secondItem="ZqW-yT-6oA" secondAttribute="leading" constant="15" id="xOk-ia-kcr"/>
                         </constraints>
                         <userDefinedRuntimeAttributes>
                             <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
@@ -567,15 +651,15 @@
             </tableViewCellContentView>
             <constraints>
                 <constraint firstItem="S7r-YR-W4r" firstAttribute="height" secondItem="KGk-i7-Jjw" secondAttribute="width" multiplier="70/375" id="CtG-qa-zYT"/>
-                <constraint firstItem="ZqW-yT-6oA" firstAttribute="height" secondItem="KGk-i7-Jjw" secondAttribute="width" multiplier="279/375" id="JCT-d6-aZY"/>
+                <constraint firstItem="ZqW-yT-6oA" firstAttribute="height" secondItem="KGk-i7-Jjw" secondAttribute="width" multiplier="432/345" id="JCT-d6-aZY"/>
                 <constraint firstItem="EtW-pm-04n" firstAttribute="height" secondItem="KGk-i7-Jjw" secondAttribute="width" multiplier="45/375" id="r6f-Q0-6NQ"/>
-                <constraint firstItem="T5b-wX-hkc" firstAttribute="height" secondItem="KGk-i7-Jjw" secondAttribute="width" multiplier="21/375" id="t3T-HA-lRn"/>
                 <constraint firstItem="jNa-0q-G4f" firstAttribute="width" secondItem="KGk-i7-Jjw" secondAttribute="width" multiplier="45/375" id="z5f-Ip-nbq"/>
             </constraints>
             <connections>
                 <outlet property="bgImageView" destination="NeD-gK-jxR" id="JoU-xR-QJp"/>
                 <outlet property="bottomView" destination="ZqW-yT-6oA" id="fSb-C8-l5H"/>
                 <outlet property="myHeadImageView" destination="jNa-0q-G4f" id="uwG-EI-gdB"/>
+                <outlet property="passRateBigLabel" destination="S7r-YR-W4r" id="CGS-v2-eVl"/>
                 <outlet property="passRateBtn1" destination="Rm2-BH-OHL" id="6x7-DX-vW9"/>
                 <outlet property="passRateBtn10" destination="0XL-fD-5bQ" id="LvE-F8-A1b"/>
                 <outlet property="passRateBtn11" destination="OMi-d6-eio" id="d5t-ek-Vf0"/>
@@ -636,7 +720,7 @@
                 <outlet property="passRateBtnHeight7" destination="qdb-Ut-rlS" id="MhG-0v-aVs"/>
                 <outlet property="passRateBtnHeight8" destination="6ui-Ui-7EP" id="hxr-wy-uXO"/>
                 <outlet property="passRateBtnHeight9" destination="ktr-dH-Zc3" id="ueo-Kq-KAJ"/>
-                <outlet property="passRateDscLabel" destination="n8g-Ze-Soo" id="AAY-bm-cNq"/>
+                <outlet property="passRateLabel" destination="n8g-Ze-Soo" id="v4V-Ja-r8l"/>
                 <outlet property="passRateTitleLabel" destination="T5b-wX-hkc" id="qWb-zH-Q0g"/>
                 <outlet property="probabilyView" destination="wUZ-Hp-2a4" id="iy2-N1-DCf"/>
                 <outlet property="userNameLabel" destination="GEE-i3-QoD" id="0Fj-PL-HA8"/>
@@ -645,7 +729,8 @@
         </tableViewCell>
     </objects>
     <resources>
-        <image name="0%10%背景" width="345" height="279"/>
+        <image name="0%10%背景" width="345" height="432"/>
+        <image name="deepseek" width="76" height="16"/>
         <image name="drawer_head" width="60" height="60"/>
         <image name="按钮2" width="280" height="45"/>
         <systemColor name="systemBackgroundColor">

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

@@ -83,6 +83,10 @@
     } size:CGSizeMake(RQ_FIT_HORIZONTAL(32.f), RQ_FIT_HORIZONTAL(16.f)) cornerRadius:QQRadiusMake(0.f, RQ_FIT_HORIZONTAL(16.f) / 2.f, RQ_FIT_HORIZONTAL(16.f) / 2.f, 0.f)] forState:UIControlStateNormal];
     
     [_realExamView setTapActionWithBlock:^(UITapGestureRecognizer *tap) {
+        if(myDelegate.isTrain&&RQ_USER_MANAGER.currentUser.isNotGcbd){//在计时-同时需要过程照片-提示
+            ShowMsg(@"请先结束理论计时在进行真实考场!");
+            return;
+        }
         [RQ_VIP_Module isVipWithSubject:RQ_YDTQuestion_Module.subject + 1 complete:^(BOOL isVip) {
             if (isVip) {
                 if(RQ_COMMON_MANAGER.APP_SWITCH){//审核状态走web 页
@@ -118,7 +122,7 @@
                         // 修改后的弹窗调用逻辑
                         NSString *ukey = [NSString stringWithFormat:@"%@%d",RQ_USER_MANAGER.currentUser.loginCode,RQ_YDTQuestion_Module.subjectStr.intValue];
                         if (![NYTools hasUserWatchedAdToday:ukey]) {
-                            [RQ_ALERTVIEW_MANAGER showAlertWithAlertType:RQAlertType_AD title:@"" message:@"" confirmTitle:@"充值会员无限使用" cancelTitle:@"看广告解锁使用" confirmAction:^(__kindof QMUIDialogViewController * _Nonnull dialogViewController) {
+                            [RQ_ALERTVIEW_MANAGER showAlertWithAlertType:RQAlertType_AD title:@"" message:@"车管所实题,为防恶意刷屏,每日须观看一次广告,即可正常使用。点击观看无反应。请稍等5到10秒。" confirmTitle:@"充值使用" cancelTitle:@"看广告解锁" confirmAction:^(__kindof QMUIDialogViewController * _Nonnull dialogViewController) {
                                 [RQ_VIP_Module gotoBuyVipWithVipPageType:RQVIPPageType_Full];
                             } cancelAction:^(__kindof QMUIDialogViewController * _Nonnull dialogViewController) {
                                 [RQ_AD_Module loadRewardvodAd];

+ 1 - 0
jiaPei/Modules/OtherModules/ExerciseModule/ViewModel/ExerciseSubPage/考试相关/RQExamProbabilityViewModel.m

@@ -29,6 +29,7 @@
     @weakify(self)
     self.title = @"成绩单";
     self.prefersNavigationBarBottomLineHidden = YES;
+    self.homePageSubjectType = RQ_YDTQuestion_Module.subject;
     ///配置数据
     [self rq_configureData];
     

+ 1 - 1
jiaPei/Modules/OtherModules/ExerciseModule/ViewModel/ExerciseSubPage/考试相关/itemViewModel/RQExamProbabilyItemViewModel.m

@@ -13,7 +13,7 @@
 /// init
 - (instancetype)init {
     if (self = [super init]) {
-        self.rowHeight = RQ_FIT_HORIZONTAL(417.f);
+        self.rowHeight = RQ_FIT_HORIZONTAL(617.f);
         self.operation = ^{
             
         };

+ 29 - 0
jiaPei/Modules/OtherModules/VIPModule/Model/RQHTTPService+PostWxJsjpcode.h

@@ -0,0 +1,29 @@
+//
+//  RQHTTPService+PostWxJsjpcode.h
+//  jiaPei
+//
+//  Created by Ning.ge on 2025/3/31.
+//  Copyright © 2025 JCZ. All rights reserved.
+//
+
+#import "RQHTTPService.h"
+#define RQ_POST_Jsjpcode    @"https://jsjp-admin.zzxcx.net/jsjp-admin/login/jsjpcode"
+#define RQ_POST_BindGzptUser @"https://jsjp-admin.zzxcx.net/jsjp-admin/open-api/gzpt/userInfo/bindGzptUserOpenid"
+#define RQ_POST_UnBindGzptUser @"https://jsjp-admin.zzxcx.net/jsjp-admin/open-api/gzpt/userInfo/unBindGzptUserOpenid"
+#define RQ_POST_CalculatePassRate @"https://jsjp-admin.zzxcx.net/jsjp-admin/open-api/gzpt/examinfo/calculatePassRate"
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface RQHTTPService (PostWxJsjpcode)
+
+/**
+ 获取openid 判断是否绑定
+ 
+ @param code
+ @return Returns a signal which will send complete, or error.
+ */
+- (RACSignal *)postWxWithjsjpcode:(NSString *)code;
+
+@end
+
+NS_ASSUME_NONNULL_END

+ 32 - 0
jiaPei/Modules/OtherModules/VIPModule/Model/RQHTTPService+PostWxJsjpcode.m

@@ -0,0 +1,32 @@
+//
+//  RQHTTPService+PostWxJsjpcode.m
+//  jiaPei
+//
+//  Created by Ning.ge on 2025/3/31.
+//  Copyright © 2025 JCZ. All rights reserved.
+//
+
+#import "RQHTTPService+PostWxJsjpcode.h"
+
+@implementation RQHTTPService (PostWxJsjpcode)
+
+/**
+ 获取openid 判断是否绑定
+ 
+ @param code
+ @return Returns a signal which will send complete, or error.
+ */
+- (RACSignal *)postWxWithjsjpcode:(NSString *)code {
+    /// 1. 配置参数
+    RQKeyedSubscript *subscript = [RQKeyedSubscript subscript];
+    subscript[@"authorizationCode"] = code;
+    
+    /// 2. 配置参数模型
+    RQURLParameters *paramters = [RQURLParameters urlParametersWithMethod:RQ_HTTTP_METHOD_POST path:RQ_POST_Jsjpcode parameters:subscript.dictionary];
+    
+    /// 3.发起请求
+    return [[[RQHTTPRequest requestWithParameters:paramters]
+             enqueueResultClass:[NYJsCodeModel class]]
+            rq_parsedResults];
+}
+@end

+ 4 - 0
jiaPei/Modules/OtherModules/VIPModule/RQVIPModule.h

@@ -34,6 +34,7 @@ typedef NS_ENUM(NSUInteger, RQVIPPageType) {
 #import "RQHTTPService+RQGetVideoVip.h"
 #import "RQHTTPService+RQApplePay.h"
 #import "RQHTTPService+RQGetActivation.h"
+#import "RQHTTPService+PostWxJsjpcode.h"
 
 #pragma mark - ViewModel
 #import "RQPayViewModel.h"
@@ -104,6 +105,9 @@ NS_ASSUME_NONNULL_BEGIN
 @property (nonatomic, readwrite, strong, nullable) RQVideoVipModel * videoVipModel;
 @property (nonatomic, readwrite, strong) RQTypeModel * _Nullable chooseTypeModel;
 
+//0普通。1VIP免费领
+@property (nonatomic, readwrite, assign) NSUInteger type;
+
 /// 单例
 + (instancetype) sharedInstance;
 - (void)gotoBuyVipWithVipPageType:(RQVIPPageType)vipPageType;

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

@@ -145,6 +145,10 @@
     }];
     
     [self.zhenshimoniView setTapActionWithBlock:^(UITapGestureRecognizer *tap) {
+        if(myDelegate.isTrain&&RQ_USER_MANAGER.currentUser.isNotGcbd){//在计时-同时需要过程照片-提示
+            ShowMsg(@"请先结束理论计时在进行真实考场!");
+            return;
+        }
         [RQ_VIP_Module isVipWithSubject:RQ_YDTQuestion_Module.subject + 1 complete:^(BOOL isVip) {
             if (isVip) {
                 if(RQ_COMMON_MANAGER.APP_SWITCH){//审核状态走web 页
@@ -180,7 +184,7 @@
                         // 修改后的弹窗调用逻辑
                         NSString *ukey = [NSString stringWithFormat:@"%@%d",RQ_USER_MANAGER.currentUser.loginCode,RQ_YDTQuestion_Module.subjectStr.intValue];
                         if (![NYTools hasUserWatchedAdToday:ukey]) {
-                            [RQ_ALERTVIEW_MANAGER showAlertWithAlertType:RQAlertType_AD title:@"" message:@"" confirmTitle:@"充值会员无限使用" cancelTitle:@"看广告解锁使用" confirmAction:^(__kindof QMUIDialogViewController * _Nonnull dialogViewController) {
+                            [RQ_ALERTVIEW_MANAGER showAlertWithAlertType:RQAlertType_AD title:@"" message:@"车管所实题,为防恶意刷屏,每日须观看一次广告,即可正常使用。点击观看无反应。请稍等5到10秒。" confirmTitle:@"充值使用" cancelTitle:@"看广告解锁" confirmAction:^(__kindof QMUIDialogViewController * _Nonnull dialogViewController) {
                                 [RQ_VIP_Module gotoBuyVipWithVipPageType:RQVIPPageType_Full];
                             } cancelAction:^(__kindof QMUIDialogViewController * _Nonnull dialogViewController) {
                                 [RQ_AD_Module loadRewardvodAd];

+ 1 - 1
jiaPei/Modules/OtherModules/VideoModule/RQVideoModule.m

@@ -402,7 +402,7 @@ static id rq_VideoModule = nil;
 //        @weakify(self)
         WeakSelf(weakSelf)
         [_controlView.portraitControlView.backBtn setTapActionWithBlock:^(UITapGestureRecognizer *tap) {
-            if(weakSelf.livideoDetailViewController.tagTyp>0){//tbar 中的视频不用关闭
+            if(weakSelf.livideoDetailViewController.tagTyp>0&&weakSelf.failSpecialDetailViewController==NULL&&weakSelf.videoDetailViewController==NULL){//tbar 中的视频不用关闭
                 return;
             }
             [RQNotificationCenter removeObserver:weakSelf.videoDetailViewController name:RQPlayVideoUrlNotification object:nil];

+ 2 - 1
jiaPei/Modules/OtherModules/XLIModule/Controller/NYLIVideoDetailViewController.m

@@ -56,6 +56,7 @@
 
 - (void)viewWillAppear:(BOOL)animated {
     [super viewWillAppear:animated];
+    RQ_Video_Module.livideoDetailViewController = self;
     RQ_YDTQuestion_Module.subject = self.viewModel.homePageSubjectType;
     RQ_Video_Module.playerController.viewControllerDisappear = NO;
 }
@@ -124,7 +125,7 @@
     [RQNotificationCenter removeObserver:self name:RQPlayVideoUrlNotification object:nil];
 
     [RQ_Video_Module.playerController stop];
-    RQ_Video_Module.livideoDetailViewController = self;
+    
 
     [[[[RQNotificationCenter rac_addObserverForName:RQPlayVideoUrlNotification object:nil] takeUntil:self.rac_willDeallocSignal] deliverOnMainThread] subscribeNext:^(NSNotification * note) {
         [weakSelf myVideoUrlNotification:note];

+ 5 - 1
jiaPei/Modules/OtherModules/XLIModule/ViewModel/NYLIHomePageSimulationExamItemViewModel.m

@@ -51,6 +51,10 @@
             }];
         };
         self.operation = ^{
+            if(myDelegate.isTrain&&RQ_USER_MANAGER.currentUser.isNotGcbd){//在计时-同时需要过程照片-提示
+                ShowMsg(@"请先结束理论计时在进行真实考场!");
+                return;
+            }
             [RQ_VIP_Module isVipWithSubject:RQ_YDTQuestion_Module.subject + 1 complete:^(BOOL isVip) {
                 if (isVip) {
                     if(RQ_COMMON_MANAGER.APP_SWITCH){//审核状态走web 页
@@ -86,7 +90,7 @@
                             // 修改后的弹窗调用逻辑
                             NSString *ukey = [NSString stringWithFormat:@"%@%d",RQ_USER_MANAGER.currentUser.loginCode,RQ_YDTQuestion_Module.subjectStr.intValue];
                             if (![NYTools hasUserWatchedAdToday:ukey]) {
-                                [RQ_ALERTVIEW_MANAGER showAlertWithAlertType:RQAlertType_AD title:@"" message:@"" confirmTitle:@"充值会员无限使用" cancelTitle:@"看广告解锁使用" confirmAction:^(__kindof QMUIDialogViewController * _Nonnull dialogViewController) {
+                                [RQ_ALERTVIEW_MANAGER showAlertWithAlertType:RQAlertType_AD title:@"" message:@"车管所实题,为防恶意刷屏,每日须观看一次广告,即可正常使用。点击观看无反应。请稍等5到10秒。" confirmTitle:@"充值使用" cancelTitle:@"看广告解锁" confirmAction:^(__kindof QMUIDialogViewController * _Nonnull dialogViewController) {
                                     [RQ_VIP_Module gotoBuyVipWithVipPageType:RQVIPPageType_Full];
                                 } cancelAction:^(__kindof QMUIDialogViewController * _Nonnull dialogViewController) {
                                     [RQ_AD_Module loadRewardvodAd];

+ 5 - 0
jiaPei/Modules/OtherModules/YDTQuestionModule/Modules/RQYDTXCQuestionModule.m

@@ -504,6 +504,7 @@ static id rq_ydtXcQuestionModule = nil;
     }
     
     NSString *categoryQueryStr = RQStringIsNotEmpty(categoryStr)? [NSString stringWithFormat:@"INNER JOIN ( SELECT MIN(question_id) AS question_id FROM t_app_question_category WHERE %@ AND %@ GROUP BY question_id ) AS t1 ON web_note.ID = t1.question_id ", categoryWhereQueryStr, categoryStr] : @"";
+
     
     NSString *exerciseTypeQueryStr = [NSString stringWithFormat:@"%@%@%@",collectStr,doStr,removeStr];
     
@@ -512,6 +513,10 @@ static id rq_ydtXcQuestionModule = nil;
 
     
     NSString *queryStr = [NSString stringWithFormat:@"SELECT %@ FROM web_note %@ %@ %@ WHERE %@ %@ ORDER BY %@", selectQueryStr, categoryQueryStr, exerciseTypeQueryStr, needMediaDataStr, whereQueryStr, conditionStr, orderSqlStr];
+    if(exerciseType==RQExerciseType_HandPick){
+        categoryQueryStr = RQStringIsNotEmpty(categoryStr)? [NSString stringWithFormat:@"INNER JOIN ( SELECT question_id, sort_order FROM t_app_question_category WHERE %@ AND %@ ) AS t1 ON web_note.ID = t1.question_id ", categoryWhereQueryStr, categoryStr] : @"";
+        queryStr = [NSString stringWithFormat:@"SELECT %@ FROM web_note %@ %@ %@ WHERE %@ %@ ORDER BY t1.sort_order asc ", selectQueryStr, categoryQueryStr, exerciseTypeQueryStr, needMediaDataStr, whereQueryStr, conditionStr];
+    }
     
     return queryStr;
 }

+ 5 - 5
jiaPei/Modules/ProfileModule/View/ChooseCarType/RQChooseCarTypeHeaderView.xib

@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="20037" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="23727" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
     <device id="retina6_1" orientation="portrait" appearance="light"/>
     <dependencies>
         <deployment identifier="iOS"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="20020"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="23721"/>
         <capability name="System colors in document resources" minToolsVersion="11.0"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
     </dependencies>
@@ -29,13 +29,13 @@
                     </connections>
                 </button>
                 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="请选择你要考试的题库类型" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="a9g-k8-H2n">
-                    <rect key="frame" x="71.5" y="44" width="232.5" height="23"/>
+                    <rect key="frame" x="74.5" y="44" width="226.5" height="23"/>
                     <fontDescription key="fontDescription" type="system" weight="medium" pointSize="19"/>
                     <color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                     <nil key="highlightedColor"/>
                 </label>
-                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="已更新2022年新题库" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="ZjO-w7-f9K">
-                    <rect key="frame" x="107" y="75" width="161.5" height="20.5"/>
+                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="已更新2024年新题库" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="ZjO-w7-f9K">
+                    <rect key="frame" x="106.5" y="75" width="162" height="20.5"/>
                     <fontDescription key="fontDescription" type="system" pointSize="17"/>
                     <color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                     <nil key="highlightedColor"/>

Niektoré súbory nie sú zobrazené, pretože je v týchto rozdielových dátach zmenené mnoho súborov