Browse Source

作业接口已完成

Steven 3 years ago
parent
commit
de38d27b25
91 changed files with 1863 additions and 69 deletions
  1. 76 0
      KulexiuForTeacher/KulexiuForTeacher.xcodeproj/project.pbxproj
  2. BIN
      KulexiuForTeacher/KulexiuForTeacher.xcworkspace/xcuserdata/wangzhi.xcuserdatad/UserInterfaceState.xcuserstate
  3. 4 4
      KulexiuForTeacher/KulexiuForTeacher.xcworkspace/xcuserdata/wangzhi.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist
  4. 1 0
      KulexiuForTeacher/KulexiuForTeacher/AppDelegate.m
  5. 43 1
      KulexiuForTeacher/KulexiuForTeacher/Common/Base/KSNetworkingManager.h
  6. 70 0
      KulexiuForTeacher/KulexiuForTeacher/Common/Base/KSNetworkingManager.m
  7. 4 8
      KulexiuForTeacher/KulexiuForTeacher/Common/ThirdPart/ALCalendarPicker/ALCalendarHelper.m
  8. 1 2
      KulexiuForTeacher/KulexiuForTeacher/Module/Chat/Group/View/GroupApplyChooseCell.m
  9. 1 2
      KulexiuForTeacher/KulexiuForTeacher/Module/Chat/Group/View/GroupApplyMemberCell.m
  10. 1 2
      KulexiuForTeacher/KulexiuForTeacher/Module/Classroom/Controller/NewClassRoomViewController.m
  11. 3 1
      KulexiuForTeacher/KulexiuForTeacher/Module/Course/AccompanyCourse/View/AccompanyArrangeCell.h
  12. 43 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Course/AccompanyCourse/View/AccompanyArrangeCell.m
  13. 18 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Course/AccompanyCourse/View/AccompanyArrangeCell.xib
  14. 2 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Course/AccompanyCourse/View/AccompanyCourseInfoCell.h
  15. 44 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Course/AccompanyCourse/View/AccompanyCourseInfoCell.m
  16. 12 4
      KulexiuForTeacher/KulexiuForTeacher/Module/Course/AccompanyCourse/View/AccompanyCourseInfoCell.xib
  17. 4 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Course/AccompanyCourse/View/AccompanyEvaluateCell.h
  18. 32 2
      KulexiuForTeacher/KulexiuForTeacher/Module/Course/AccompanyCourse/View/AccompanyEvaluateCell.m
  19. 12 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Course/AccompanyCourse/View/AccompanyEvaluateCell.xib
  20. 4 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Course/AccompanyCourse/View/AccompanyHomeworkCell.h
  21. 52 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Course/AccompanyCourse/View/AccompanyHomeworkCell.m
  22. 12 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Course/AccompanyCourse/View/AccompanyHomeworkCell.xib
  23. 4 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Course/AccompanyCourse/View/AccompanyRemarkCell.h
  24. 41 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Course/AccompanyCourse/View/AccompanyRemarkCell.m
  25. 19 1
      KulexiuForTeacher/KulexiuForTeacher/Module/Course/AccompanyCourse/View/AccompanyRemarkCell.xib
  26. 2 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Course/AccompanyCourse/View/AccompanyStudentEvaCell.h
  27. 4 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Course/AccompanyCourse/View/AccompanyStudentEvaCell.m
  28. 4 8
      KulexiuForTeacher/KulexiuForTeacher/Module/Course/Controller/CourseViewController.m
  29. 8 2
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/Controller/HomeViewController.m
  30. 2 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/Homework/Controller/HomeworkDetailViewController.h
  31. 186 6
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/Homework/Controller/HomeworkDetailViewController.m
  32. 44 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/Homework/Model/HomeworkDetailModel.h
  33. 263 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/Homework/Model/HomeworkDetailModel.m
  34. 33 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/Homework/Model/HomeworkListModel.h
  35. 186 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/Homework/Model/HomeworkListModel.m
  36. 35 3
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/Homework/View/HomeworkBodyView.m
  37. 3 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/Homework/View/HomeworkListCell.h
  38. 20 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/Homework/View/HomeworkListCell.m
  39. 23 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/Homework/View/HomeworkVideoView.h
  40. 48 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/Homework/View/HomeworkVideoView.m
  41. 72 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/Homework/View/HomeworkVideoView.xib
  42. 1 1
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/MyCourse/Controller/MyCourseViewController.m
  43. 16 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/NotiferMessage/Controller/NotiferMessageViewController.h
  44. 34 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/NotiferMessage/Controller/NotiferMessageViewController.m
  45. 16 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/NotiferMessage/Model/NotiferMessageModel.h
  46. 12 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/NotiferMessage/Model/NotiferMessageModel.m
  47. 16 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/NotiferMessage/View/NotiferMessageCell.h
  48. 26 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/NotiferMessage/View/NotiferMessageCell.m
  49. 21 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/NotiferMessage/View/NotiferMessageCell.xib
  50. 1 2
      KulexiuForTeacher/KulexiuForTeacher/Module/Live/Controller/LiveVideoRoomViewController.m
  51. 41 1
      KulexiuForTeacher/KulexiuForTeacher/Module/Mine/LiveCourse/Controller/MyLiveCourseViewController.m
  52. 2 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Mine/LiveCourse/View/MyLiveCourseBodyView.h
  53. 73 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Mine/LiveCourse/View/MyLiveCourseBodyView.m
  54. 1 2
      KulexiuForTeacher/KulexiuForTeacher/Module/Mine/MinePage/View/LiveCourseCell.m
  55. 3 1
      KulexiuForTeacher/KulexiuForTeacher/Module/Mine/MinePage/View/MinePageCourseView.m
  56. 39 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Mine/VideoCourse/Controller/VideoCourseViewController.m
  57. 2 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Mine/VideoCourse/View/VideoListBodyView.h
  58. 65 1
      KulexiuForTeacher/KulexiuForTeacher/Module/Mine/VideoCourse/View/VideoListBodyView.m
  59. BIN
      KulexiuForTeacher/build/Debug-iphonesimulator/KulexiuForTeacher.app/KulexiuForTeacher
  60. 32 10
      KulexiuForTeacher/build/Debug-iphonesimulator/KulexiuForTeacher.app/_CodeSignature/CodeResources
  61. BIN
      KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/KulexiuForTeacher-project-headers.hmap
  62. BIN
      KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/ALCalendarHelper.o
  63. BIN
      KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/AppDelegate.dia
  64. BIN
      KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/AppDelegate.o
  65. BIN
      KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/CourseViewController.dia
  66. BIN
      KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/CourseViewController.o
  67. BIN
      KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/GroupApplyChooseCell.o
  68. BIN
      KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/GroupApplyMemberCell.o
  69. 2 1
      KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/HomeViewController.d
  70. BIN
      KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/HomeViewController.dia
  71. BIN
      KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/HomeViewController.o
  72. BIN
      KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/KSNetworkingManager.o
  73. 6 0
      KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/KulexiuForTeacher.LinkFileList
  74. BIN
      KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/KulexiuForTeacher_dependency_info.dat
  75. BIN
      KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/LiveCourseCell.o
  76. BIN
      KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/LiveVideoRoomViewController.dia
  77. BIN
      KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/LiveVideoRoomViewController.o
  78. BIN
      KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/MinePageCourseView.o
  79. BIN
      KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/MyCourseViewController.o
  80. 8 1
      KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/MyLiveCourseBodyView.d
  81. BIN
      KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/MyLiveCourseBodyView.o
  82. 4 1
      KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/MyLiveCourseViewController.d
  83. BIN
      KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/MyLiveCourseViewController.o
  84. BIN
      KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/NewClassRoomViewController.o
  85. BIN
      KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/UIView+XIBView.dia
  86. 4 1
      KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/VideoCourseViewController.d
  87. BIN
      KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/VideoCourseViewController.o
  88. 2 1
      KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/VideoListBodyView.d
  89. BIN
      KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/VideoListBodyView.o
  90. BIN
      KulexiuForTeacher/build/XCBuildData/BuildDescriptionCacheIndex-2297acb106a30e2935a01f5221f6a714
  91. BIN
      KulexiuForTeacher/build/XCBuildData/build.db

+ 76 - 0
KulexiuForTeacher/KulexiuForTeacher.xcodeproj/project.pbxproj

@@ -439,6 +439,11 @@
 		BC1365B8280D130C00EB03E2 /* MyVideoCourseBodyView.m in Sources */ = {isa = PBXBuildFile; fileRef = BC1365B7280D130C00EB03E2 /* MyVideoCourseBodyView.m */; };
 		BC1365BB280D162400EB03E2 /* MyVideoSearchView.m in Sources */ = {isa = PBXBuildFile; fileRef = BC1365BA280D162400EB03E2 /* MyVideoSearchView.m */; };
 		BC1365BD280D163200EB03E2 /* MyVideoSearchView.xib in Resources */ = {isa = PBXBuildFile; fileRef = BC1365BC280D163200EB03E2 /* MyVideoSearchView.xib */; };
+		BC1365C4280D44EB00EB03E2 /* NotiferMessageViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = BC1365C3280D44EB00EB03E2 /* NotiferMessageViewController.m */; };
+		BC1365C8280D476500EB03E2 /* NotiferMessageCell.m in Sources */ = {isa = PBXBuildFile; fileRef = BC1365C6280D476500EB03E2 /* NotiferMessageCell.m */; };
+		BC1365C9280D476500EB03E2 /* NotiferMessageCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = BC1365C7280D476500EB03E2 /* NotiferMessageCell.xib */; };
+		BC1365CC280D478F00EB03E2 /* NotiferMessageModel.m in Sources */ = {isa = PBXBuildFile; fileRef = BC1365CB280D478F00EB03E2 /* NotiferMessageModel.m */; };
+		BC1365CF280D48B800EB03E2 /* HomeworkListModel.m in Sources */ = {isa = PBXBuildFile; fileRef = BC1365CE280D48B800EB03E2 /* HomeworkListModel.m */; };
 		BC28582F2809451B0024697C /* EvaluateCouseCell.m in Sources */ = {isa = PBXBuildFile; fileRef = BC28582D2809451B0024697C /* EvaluateCouseCell.m */; };
 		BC2858302809451B0024697C /* EvaluateCouseCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = BC28582E2809451B0024697C /* EvaluateCouseCell.xib */; };
 		BC285833280947BA0024697C /* EvaluateSortView.m in Sources */ = {isa = PBXBuildFile; fileRef = BC285832280947BA0024697C /* EvaluateSortView.m */; };
@@ -463,6 +468,9 @@
 		BC5EB5C62804087700B4A3B0 /* MyStyleBottomView.xib in Resources */ = {isa = PBXBuildFile; fileRef = BC5EB5C52804087700B4A3B0 /* MyStyleBottomView.xib */; };
 		BC6C303A27F586A60044BC0F /* KSRCMessageModel.m in Sources */ = {isa = PBXBuildFile; fileRef = BC6C303927F586A60044BC0F /* KSRCMessageModel.m */; };
 		BC73A1F42809693F00FA8F6F /* EvaluateSortView.xib in Resources */ = {isa = PBXBuildFile; fileRef = BC73A1F32809693F00FA8F6F /* EvaluateSortView.xib */; };
+		BC76146A280D4F670080FD1F /* HomeworkDetailModel.m in Sources */ = {isa = PBXBuildFile; fileRef = BC761468280D4F660080FD1F /* HomeworkDetailModel.m */; };
+		BC76146D280D571B0080FD1F /* HomeworkVideoView.m in Sources */ = {isa = PBXBuildFile; fileRef = BC76146C280D571B0080FD1F /* HomeworkVideoView.m */; };
+		BC76146F280D57220080FD1F /* HomeworkVideoView.xib in Resources */ = {isa = PBXBuildFile; fileRef = BC76146E280D57220080FD1F /* HomeworkVideoView.xib */; };
 		BCA723FB2806A96000DA0D0D /* HomeworkDetailViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = BCA723FA2806A96000DA0D0D /* HomeworkDetailViewController.m */; };
 		BCA723FF2806AEA000DA0D0D /* AccompanyHomeworkCell.m in Sources */ = {isa = PBXBuildFile; fileRef = BCA723FD2806AEA000DA0D0D /* AccompanyHomeworkCell.m */; };
 		BCA724002806AEA000DA0D0D /* AccompanyHomeworkCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = BCA723FE2806AEA000DA0D0D /* AccompanyHomeworkCell.xib */; };
@@ -1438,6 +1446,15 @@
 		BC1365B9280D162400EB03E2 /* MyVideoSearchView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MyVideoSearchView.h; sourceTree = "<group>"; };
 		BC1365BA280D162400EB03E2 /* MyVideoSearchView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MyVideoSearchView.m; sourceTree = "<group>"; };
 		BC1365BC280D163200EB03E2 /* MyVideoSearchView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = MyVideoSearchView.xib; sourceTree = "<group>"; };
+		BC1365C2280D44EB00EB03E2 /* NotiferMessageViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NotiferMessageViewController.h; sourceTree = "<group>"; };
+		BC1365C3280D44EB00EB03E2 /* NotiferMessageViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NotiferMessageViewController.m; sourceTree = "<group>"; };
+		BC1365C5280D476500EB03E2 /* NotiferMessageCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NotiferMessageCell.h; sourceTree = "<group>"; };
+		BC1365C6280D476500EB03E2 /* NotiferMessageCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NotiferMessageCell.m; sourceTree = "<group>"; };
+		BC1365C7280D476500EB03E2 /* NotiferMessageCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = NotiferMessageCell.xib; sourceTree = "<group>"; };
+		BC1365CA280D478F00EB03E2 /* NotiferMessageModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NotiferMessageModel.h; sourceTree = "<group>"; };
+		BC1365CB280D478F00EB03E2 /* NotiferMessageModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NotiferMessageModel.m; sourceTree = "<group>"; };
+		BC1365CD280D48B700EB03E2 /* HomeworkListModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HomeworkListModel.h; sourceTree = "<group>"; };
+		BC1365CE280D48B800EB03E2 /* HomeworkListModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HomeworkListModel.m; sourceTree = "<group>"; };
 		BC28582C2809451B0024697C /* EvaluateCouseCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = EvaluateCouseCell.h; sourceTree = "<group>"; };
 		BC28582D2809451B0024697C /* EvaluateCouseCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = EvaluateCouseCell.m; sourceTree = "<group>"; };
 		BC28582E2809451B0024697C /* EvaluateCouseCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = EvaluateCouseCell.xib; sourceTree = "<group>"; };
@@ -1477,6 +1494,11 @@
 		BC6C303827F586A60044BC0F /* KSRCMessageModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KSRCMessageModel.h; sourceTree = "<group>"; };
 		BC6C303927F586A60044BC0F /* KSRCMessageModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KSRCMessageModel.m; sourceTree = "<group>"; };
 		BC73A1F32809693F00FA8F6F /* EvaluateSortView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = EvaluateSortView.xib; sourceTree = "<group>"; };
+		BC761468280D4F660080FD1F /* HomeworkDetailModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HomeworkDetailModel.m; sourceTree = "<group>"; };
+		BC761469280D4F660080FD1F /* HomeworkDetailModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HomeworkDetailModel.h; sourceTree = "<group>"; };
+		BC76146B280D571B0080FD1F /* HomeworkVideoView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HomeworkVideoView.h; sourceTree = "<group>"; };
+		BC76146C280D571B0080FD1F /* HomeworkVideoView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = HomeworkVideoView.m; sourceTree = "<group>"; };
+		BC76146E280D57220080FD1F /* HomeworkVideoView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = HomeworkVideoView.xib; sourceTree = "<group>"; };
 		BCA723F92806A96000DA0D0D /* HomeworkDetailViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HomeworkDetailViewController.h; sourceTree = "<group>"; };
 		BCA723FA2806A96000DA0D0D /* HomeworkDetailViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = HomeworkDetailViewController.m; sourceTree = "<group>"; };
 		BCA723FC2806AEA000DA0D0D /* AccompanyHomeworkCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AccompanyHomeworkCell.h; sourceTree = "<group>"; };
@@ -2939,6 +2961,7 @@
 		277935FA27E32BBF0010E277 /* Home */ = {
 			isa = PBXGroup;
 			children = (
+				BC1365BE280D44D500EB03E2 /* NotiferMessage */,
 				BC41103C28066E4100800BD9 /* EvaluateCourse */,
 				BC41103228066C0D00800BD9 /* Homework */,
 				BC0167A027FC06C300AE66A1 /* MyCourse */,
@@ -3593,6 +3616,44 @@
 			path = View;
 			sourceTree = "<group>";
 		};
+		BC1365BE280D44D500EB03E2 /* NotiferMessage */ = {
+			isa = PBXGroup;
+			children = (
+				BC1365BF280D44D500EB03E2 /* Controller */,
+				BC1365C0280D44D500EB03E2 /* Model */,
+				BC1365C1280D44D500EB03E2 /* View */,
+			);
+			path = NotiferMessage;
+			sourceTree = "<group>";
+		};
+		BC1365BF280D44D500EB03E2 /* Controller */ = {
+			isa = PBXGroup;
+			children = (
+				BC1365C2280D44EB00EB03E2 /* NotiferMessageViewController.h */,
+				BC1365C3280D44EB00EB03E2 /* NotiferMessageViewController.m */,
+			);
+			path = Controller;
+			sourceTree = "<group>";
+		};
+		BC1365C0280D44D500EB03E2 /* Model */ = {
+			isa = PBXGroup;
+			children = (
+				BC1365CA280D478F00EB03E2 /* NotiferMessageModel.h */,
+				BC1365CB280D478F00EB03E2 /* NotiferMessageModel.m */,
+			);
+			path = Model;
+			sourceTree = "<group>";
+		};
+		BC1365C1280D44D500EB03E2 /* View */ = {
+			isa = PBXGroup;
+			children = (
+				BC1365C5280D476500EB03E2 /* NotiferMessageCell.h */,
+				BC1365C6280D476500EB03E2 /* NotiferMessageCell.m */,
+				BC1365C7280D476500EB03E2 /* NotiferMessageCell.xib */,
+			);
+			path = View;
+			sourceTree = "<group>";
+		};
 		BC41103228066C0D00800BD9 /* Homework */ = {
 			isa = PBXGroup;
 			children = (
@@ -3617,6 +3678,10 @@
 		BC41103428066C0D00800BD9 /* Model */ = {
 			isa = PBXGroup;
 			children = (
+				BC1365CD280D48B700EB03E2 /* HomeworkListModel.h */,
+				BC1365CE280D48B800EB03E2 /* HomeworkListModel.m */,
+				BC761469280D4F660080FD1F /* HomeworkDetailModel.h */,
+				BC761468280D4F660080FD1F /* HomeworkDetailModel.m */,
 			);
 			path = Model;
 			sourceTree = "<group>";
@@ -3632,6 +3697,9 @@
 				BC41104B280678E600800BD9 /* HomeworkSortView.h */,
 				BC41104C280678E600800BD9 /* HomeworkSortView.m */,
 				BC41104E280678ED00800BD9 /* HomeworkSortView.xib */,
+				BC76146B280D571B0080FD1F /* HomeworkVideoView.h */,
+				BC76146C280D571B0080FD1F /* HomeworkVideoView.m */,
+				BC76146E280D57220080FD1F /* HomeworkVideoView.xib */,
 			);
 			path = View;
 			sourceTree = "<group>";
@@ -4455,6 +4523,7 @@
 				BCC9F43227F69BD200647449 /* class_stop.mp3 in Resources */,
 				2755C08E27ED5DB2007D9070 /* GroupApplyChooseCell.xib in Resources */,
 				BCF61BE9280425DA0000ACFE /* InstrumentChooseCell.xib in Resources */,
+				BC76146F280D57220080FD1F /* HomeworkVideoView.xib in Resources */,
 				277931CE27E30FC20010E277 /* KSPremissionAlert.xib in Resources */,
 				275E3DFC27F46B440010EC30 /* KSBeautySettingView.xib in Resources */,
 				2779335627E316DD0010E277 /* WMPlayer.bundle in Resources */,
@@ -4513,6 +4582,7 @@
 				BCC03F9F280579A500461B7C /* MyLiveCourseCell.xib in Resources */,
 				BCB6340627F6A2F000ACFDCF /* tick.wav in Resources */,
 				2755C07127EC7F21007D9070 /* ChatComplainBodyView.xib in Resources */,
+				BC1365C9280D476500EB03E2 /* NotiferMessageCell.xib in Resources */,
 				BC5EB5B7280402CB00B4A3B0 /* MyStyleInstrumentCell.xib in Resources */,
 				BCA9CE1727FD339D00D558C6 /* AuthDisplayView.xib in Resources */,
 				BCF1BA5B27F5CF3C00FA36C4 /* LiveSeatApplyCell.xib in Resources */,
@@ -4666,6 +4736,7 @@
 				27FC2F6627F1BBFE00FCC239 /* MyMusicViewController.m in Sources */,
 				277D432827E9A48000107DB7 /* ModifyPhoneChangeController.m in Sources */,
 				275FA56227F31AE100EB6240 /* MinePageHeadView.m in Sources */,
+				BC76146D280D571B0080FD1F /* HomeworkVideoView.m in Sources */,
 				2755C07427EC905E007D9070 /* GroupMemberModel.m in Sources */,
 				2779321D27E30FC30010E277 /* StoreButton.m in Sources */,
 				277931F527E30FC20010E277 /* NSString+Extension.m in Sources */,
@@ -4678,6 +4749,7 @@
 				277932B827E30FFE0010E277 /* SDCollectionViewCell.m in Sources */,
 				2779326527E30FD80010E277 /* FSCalendarDelegationFactory.m in Sources */,
 				277931E127E30FC20010E277 /* NSString+zh_SafeAccess.m in Sources */,
+				BC76146A280D4F670080FD1F /* HomeworkDetailModel.m in Sources */,
 				BCC9F40A27F69BD200647449 /* InputView.m in Sources */,
 				BC5EB5B22804027500B4A3B0 /* MyStyleViewController.m in Sources */,
 				277932F227E310070010E277 /* TZGifPhotoPreviewController.m in Sources */,
@@ -4761,6 +4833,7 @@
 				275B171727EB1B930081FDEF /* KSSearchHistoryMessageController.m in Sources */,
 				275E3DE227F467410010EC30 /* KSChatEmojiCollectionCell.m in Sources */,
 				275E3DC227F45F3F0010EC30 /* KSLiveChatroomWelcome.m in Sources */,
+				BC1365C8280D476500EB03E2 /* NotiferMessageCell.m in Sources */,
 				27F9030E27E875DD00C08A19 /* AudioPlayManager.m in Sources */,
 				BCC9F41127F69BD200647449 /* MessageCell.m in Sources */,
 				277935E227E327F00010E277 /* KSTabBarViewController.m in Sources */,
@@ -4911,6 +4984,7 @@
 				2755C07E27EC95CC007D9070 /* GroupNoticeViewController.m in Sources */,
 				275E3DA627F442B70010EC30 /* LiveVideoRoomViewController.m in Sources */,
 				2779328F27E30FEB0010E277 /* MSSBrowseLocalViewController.m in Sources */,
+				BC1365C4280D44EB00EB03E2 /* NotiferMessageViewController.m in Sources */,
 				27A54CF127E9BD3B007309A3 /* FeedbackViewController.m in Sources */,
 				277932E527E310070010E277 /* TZVideoCropController.m in Sources */,
 				275E3DE127F467410010EC30 /* KSChatInputView.m in Sources */,
@@ -4920,6 +4994,7 @@
 				BCC9F42B27F69BD200647449 /* SelectionButton.m in Sources */,
 				2779322A27E30FC30010E277 /* ALCalendarCell.m in Sources */,
 				275FA1A027E7250700CFEA2E /* KSAccompanyWebViewController.m in Sources */,
+				BC1365CC280D478F00EB03E2 /* NotiferMessageModel.m in Sources */,
 				2755C07727EC945D007D9070 /* GroupMemberViewController.m in Sources */,
 				2773205227EDB75B008FAECA /* GroupNoticeCell.m in Sources */,
 				BC5EB5B6280402CB00B4A3B0 /* MyStyleInstrumentCell.m in Sources */,
@@ -5038,6 +5113,7 @@
 				277932B527E30FFE0010E277 /* SDCycleScrollView.m in Sources */,
 				2779323627E30FC30010E277 /* LLImageCache.m in Sources */,
 				277931D527E30FC20010E277 /* UIView+KSLayer.m in Sources */,
+				BC1365CF280D48B800EB03E2 /* HomeworkListModel.m in Sources */,
 				2779326427E30FD80010E277 /* FSCalendarDelegationProxy.m in Sources */,
 				277935DF27E326DA0010E277 /* KSNetTypeManager.m in Sources */,
 				2755C08527ED5770007D9070 /* GroupApplyMemberCell.m in Sources */,

BIN
KulexiuForTeacher/KulexiuForTeacher.xcworkspace/xcuserdata/wangzhi.xcuserdatad/UserInterfaceState.xcuserstate


+ 4 - 4
KulexiuForTeacher/KulexiuForTeacher.xcworkspace/xcuserdata/wangzhi.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist

@@ -14,8 +14,8 @@
             filePath = "KulexiuForTeacher/Module/Mine/VideoCourse/Controller/VideoCourseViewController.m"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "49"
-            endingLineNumber = "49"
+            startingLineNumber = "53"
+            endingLineNumber = "53"
             landmarkName = "-configUI"
             landmarkType = "7">
          </BreakpointContent>
@@ -46,8 +46,8 @@
             filePath = "KulexiuForTeacher/Module/Mine/LiveCourse/View/MyLiveCourseBodyView.m"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "114"
-            endingLineNumber = "114"
+            startingLineNumber = "118"
+            endingLineNumber = "118"
             landmarkName = "-requestData"
             landmarkType = "7">
          </BreakpointContent>

+ 1 - 0
KulexiuForTeacher/KulexiuForTeacher/AppDelegate.m

@@ -101,6 +101,7 @@
     [self configIM];
     
     NSString *token = UserDefault(TokenKey);
+    NSLog(@"------token  %@",token);
     if ([NSString isEmptyString:token]) { // 未登录
         LoginViewController *logonVC = [[LoginViewController alloc] init];
         CustomNavViewController *navCtrl = [[CustomNavViewController alloc] initWithRootViewController:logonVC];

+ 43 - 1
KulexiuForTeacher/KulexiuForTeacher/Common/Base/KSNetworkingManager.h

@@ -230,7 +230,7 @@ NS_ASSUME_NONNULL_BEGIN
 /// @param faliure 失败
 + (void)queryTeacherInfoRequest:(NSString *)get success:(void(^)(NSDictionary *dic))success faliure:(void(^)(NSError *error))faliure;
 
-// /teacher-server/teacher/querySubject
+// /api-auth/user/submitSetDetail
 
 /// 修改用户信息
 /// @param post post
@@ -509,5 +509,47 @@ NS_ASSUME_NONNULL_BEGIN
 // 我的评价
 // /teacher-server/courseReplied/myReplied
 //+ (void)
+
+#pragma mark ----- 课后作业
+// /api-teacher/homework/list
+
+/// 课后作业列表
+/// @param post post
+/// @param date 年月 格式:yyyy-MM
+/// @param decorate 布置作业状态 0:否,1:是
+/// @param page 页数
+/// @param rows 条数
+/// @param success 成功
+/// @param faliure 失败
++ (void)homeworkListRequest:(NSString *)post date:(NSString *)date decorate:(NSInteger)decorate page:(NSInteger)page rows:(NSInteger)rows success:(void(^)(NSDictionary *dic))success faliure:(void(^)(NSError *error))faliure;
+
+// /teacher-server/homework/detail/{courseId}
+
+/// 陪练课课后作业信息详情
+/// @param get get
+/// @param courseId 课程信息
+/// @param success 成功
+/// @param faliure 失败
++ (void)homeworkDetailRequest:(NSString *)get courseId:(NSString *)courseId success:(void(^)(NSDictionary *dic))success faliure:(void(^)(NSError *error))faliure;
+
+// /api-teacher/homework/decorate
+
+/// 布置作业
+/// @param post post
+/// @param content 作业内容
+/// @param courseScheduleId 课程编号
+/// @param success 成功
+/// @param faliure 失败
++ (void)homeworkDecorateRequest:(NSString *)post content:(NSString *)content courseScheduleId:(NSString *)courseScheduleId success:(void(^)(NSDictionary *dic))success faliure:(void(^)(NSError *error))faliure;
+// /teacher-server/homework/review
+
+/// 作业点评
+/// @param post post
+/// @param courseScheduleId 课程编号
+/// @param review 点评内容
+/// @param success 成功
+/// @param faliure 失败
++ (void)homeworkReviewRequest:(NSString *)post courseScheduleId:(NSString *)courseScheduleId review:(NSString *)review success:(void(^)(NSDictionary *dic))success faliure:(void(^)(NSError *error))faliure;
+
 @end
 NS_ASSUME_NONNULL_END

+ 70 - 0
KulexiuForTeacher/KulexiuForTeacher/Common/Base/KSNetworkingManager.m

@@ -1078,4 +1078,74 @@
     [parm setValue:UserDefault(UIDKey) forKey:@"teacherId"];
     [self request:post andWithUrl:url and:parm success:success faliure:faliure];
 }
+
+
+#pragma mark ----- 课后作业
+// /api-teacher/homework/list
+
+/// 课后作业列表
+/// @param post post
+/// @param date 年月 格式:yyyy-MM
+/// @param decorate 布置作业状态 0:否,1:是
+/// @param page 页数
+/// @param rows 条数
+/// @param success 成功
+/// @param faliure 失败
++ (void)homeworkListRequest:(NSString *)post date:(NSString *)date decorate:(NSInteger)decorate page:(NSInteger)page rows:(NSInteger)rows success:(void(^)(NSDictionary *dic))success faliure:(void(^)(NSError *error))faliure {
+    [self configRequestMethodJSON];
+    NSString *url = [NSString stringWithFormat:@"%@%@", hostURL, @"/api-teacher/homework/list"];
+    NSMutableDictionary *parm = [NSMutableDictionary dictionary];
+    [parm setValue:date forKey:@"date"];
+    [parm setValue:@(decorate) forKey:@"decorate"];
+    [parm setValue:@(page) forKey:@"page"];
+    [parm setValue:@(rows) forKey:@"rows"];
+    [self request:post andWithUrl:url and:parm success:success faliure:faliure];
+}
+
+// /api-teacher/homework/detail/{courseId}
+
+/// 陪练课课后作业信息详情
+/// @param get get
+/// @param courseId 课程信息
+/// @param success 成功
+/// @param faliure 失败
++ (void)homeworkDetailRequest:(NSString *)get courseId:(NSString *)courseId success:(void(^)(NSDictionary *dic))success faliure:(void(^)(NSError *error))faliure {
+    
+    NSString *url = [NSString stringWithFormat:@"%@%@/%@",hostURL, @"/api-teacher/homework/detail",courseId];
+    [self request:get andWithUrl:url and:nil success:success faliure:faliure];
+}
+
+// /api-teacher/homework/decorate
+
+/// 布置作业
+/// @param post post
+/// @param content 作业内容
+/// @param courseScheduleId 课程编号
+/// @param success 成功
+/// @param faliure 失败
++ (void)homeworkDecorateRequest:(NSString *)post content:(NSString *)content courseScheduleId:(NSString *)courseScheduleId success:(void(^)(NSDictionary *dic))success faliure:(void(^)(NSError *error))faliure {
+    [self configRequestMethodJSON];
+    NSString *url = [NSString stringWithFormat:@"%@%@", hostURL, @"/api-teacher/homework/decorate"];
+    NSMutableDictionary *parm = [NSMutableDictionary dictionary];
+    [parm setValue:content forKey:@"content"];
+    [parm setValue:courseScheduleId forKey:@"courseScheduleId"];
+    [self request:post andWithUrl:url and:parm success:success faliure:faliure];
+}
+// /api-teacher/homework/review
+
+/// 作业点评
+/// @param post post
+/// @param courseScheduleId 课程编号
+/// @param review 点评内容
+/// @param success 成功
+/// @param faliure 失败
++ (void)homeworkReviewRequest:(NSString *)post courseScheduleId:(NSString *)courseScheduleId review:(NSString *)review success:(void(^)(NSDictionary *dic))success faliure:(void(^)(NSError *error))faliure {
+    [self configRequestMethodJSON];
+    NSString *url = [NSString stringWithFormat:@"%@%@", hostURL, @"/api-teacher/homework/review"];
+    NSMutableDictionary *parm = [NSMutableDictionary dictionary];
+    [parm setValue:review forKey:@"review"];
+    [parm setValue:courseScheduleId forKey:@"courseScheduleId"];
+    [self request:post andWithUrl:url and:parm success:success faliure:faliure];
+}
+
 @end

+ 4 - 8
KulexiuForTeacher/KulexiuForTeacher/Common/ThirdPart/ALCalendarPicker/ALCalendarHelper.m

@@ -21,8 +21,7 @@
     NSString *dateStr = [ym stringByAppendingString:@"-01"];
     
     // 转成NSDate
-    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
-    formatter.timeZone = [NSTimeZone systemTimeZone];
+    NSDateFormatter *formatter = [NSObject getDateformatter];
     formatter.dateFormat = @"yyyy-MM-dd";
     
     NSDate *date = [self dateStringToDate:dateStr format:@"yyyy-MM-dd"];
@@ -123,8 +122,7 @@
     NSString *dateStr = [ym stringByAppendingString:@"-01"];
     
     // 转成NSDate
-    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
-    formatter.timeZone = [NSTimeZone systemTimeZone];
+    NSDateFormatter *formatter = [NSObject getDateformatter];
     formatter.dateFormat = @"yyyy-MM-dd";
     
     NSDate *date = [self dateStringToDate:dateStr format:@"yyyy-MM-dd"];
@@ -265,8 +263,7 @@
 + (NSString *)dateToDateString:(NSDate *)date format:(NSString *)format
 {
     // 转成NSDate
-    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
-    formatter.timeZone = [NSTimeZone systemTimeZone];
+    NSDateFormatter *formatter = [NSObject getDateformatter];
     formatter.dateFormat = format;
     NSString *dateStr = [formatter stringFromDate:date];
     return dateStr;
@@ -275,8 +272,7 @@
 + (NSDate *)dateStringToDate:(NSString *)dateString format:(NSString *)format
 {
     // 转成NSDate
-    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
-    formatter.timeZone = [NSTimeZone systemTimeZone];
+    NSDateFormatter *formatter = [NSObject getDateformatter];
     formatter.dateFormat = format;
     NSDate *date = [formatter dateFromString:dateString];
     return date;

+ 1 - 2
KulexiuForTeacher/KulexiuForTeacher/Module/Chat/Group/View/GroupApplyChooseCell.m

@@ -47,8 +47,7 @@
         self.timeLabel.text = @"";
     }
     else {
-        NSDateFormatter *dateFormatter=[[NSDateFormatter alloc] init];
-        dateFormatter.timeZone = [NSTimeZone systemTimeZone];
+        NSDateFormatter *dateFormatter = [NSObject getDateformatter];
         [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
         NSDate *messageDate = [dateFormatter dateFromString:source.updateTime];
         [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm"];

+ 1 - 2
KulexiuForTeacher/KulexiuForTeacher/Module/Chat/Group/View/GroupApplyMemberCell.m

@@ -44,8 +44,7 @@
         self.timeLabel.text = @"";
     }
     else {
-        NSDateFormatter *dateFormatter=[[NSDateFormatter alloc] init];
-        dateFormatter.timeZone = [NSTimeZone systemTimeZone];
+        NSDateFormatter *dateFormatter=[NSObject getDateformatter];
         [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
         NSDate *messageDate = [dateFormatter dateFromString:source.updateTime];
         [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm"];

+ 1 - 2
KulexiuForTeacher/KulexiuForTeacher/Module/Classroom/Controller/NewClassRoomViewController.m

@@ -141,8 +141,7 @@ typedef NS_ENUM(NSInteger, ACCOMPANYACTION) {
         return;
     }
     if (![NSString isEmptyString:self.classEndTime]) {
-        NSDateFormatter *dateFormatter=[[NSDateFormatter alloc] init];
-        dateFormatter.timeZone = [NSTimeZone systemTimeZone];
+        NSDateFormatter *dateFormatter= [NSObject getDateformatter];
         [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
         NSDate *endDate = [dateFormatter dateFromString:self.classEndTime];
         NSDate *currentDate = [NSDate date];

+ 3 - 1
KulexiuForTeacher/KulexiuForTeacher/Module/Course/AccompanyCourse/View/AccompanyArrangeCell.h

@@ -7,11 +7,13 @@
 
 #import <UIKit/UIKit.h>
 
+typedef void(^ArrangeHomeworkCallback)(void);
+
 NS_ASSUME_NONNULL_BEGIN
 
 @interface AccompanyArrangeCell : UITableViewCell
 
-
+- (void)configWithHomeworkContent:(NSString *)content hasArrangeHomework:(BOOL)hasArrange callback:(ArrangeHomeworkCallback)callback;
 
 @end
 

+ 43 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Course/AccompanyCourse/View/AccompanyArrangeCell.m

@@ -7,6 +7,17 @@
 
 #import "AccompanyArrangeCell.h"
 
+@interface AccompanyArrangeCell ()
+
+@property (nonatomic, copy) ArrangeHomeworkCallback callback;
+@property (weak, nonatomic) IBOutlet UILabel *contentLabel;
+
+@property (weak, nonatomic) IBOutlet UIView *emptyView;
+
+@property (weak, nonatomic) IBOutlet UIView *arrangeActionView;
+
+@end
+
 @implementation AccompanyArrangeCell
 
 - (void)awakeFromNib {
@@ -15,6 +26,38 @@
     self.selectionStyle = UITableViewCellSelectionStyleNone;
 }
 
+- (void)configWithHomeworkContent:(NSString *)content hasArrangeHomework:(BOOL)hasArrange callback:(ArrangeHomeworkCallback)callback {
+    if (callback) {
+        self.callback = callback;
+    }
+    if (hasArrange) {
+        self.emptyView.hidden = YES;
+        self.arrangeActionView.hidden = YES;
+        if (![NSString isEmptyString:content]) {
+            NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];
+            [paragraphStyle setLineSpacing:4];//调整行间距
+            NSMutableAttributedString *attr = [[NSMutableAttributedString alloc] initWithString:content attributes:@{NSParagraphStyleAttributeName:paragraphStyle,NSFontAttributeName:[UIFont systemFontOfSize:13.0f],NSForegroundColorAttributeName:HexRGB(0x333333)}];
+            self.contentLabel.attributedText = attr;
+        }
+        else {
+            self.contentLabel.text = @"";
+        }
+    }
+    else {
+        self.emptyView.hidden = NO;
+        self.arrangeActionView.hidden = NO;
+        self.contentLabel.text = @"";
+    }
+}
+
+
+- (IBAction)arrangeHomeworkAction:(id)sender {
+    if (self.callback) {
+        self.callback();
+    }
+}
+
+
 - (void)setSelected:(BOOL)selected animated:(BOOL)animated {
     [super setSelected:selected animated:animated];
 

+ 18 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Course/AccompanyCourse/View/AccompanyArrangeCell.xib

@@ -36,6 +36,12 @@
                             <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="vf1-Yo-J7O">
                                 <rect key="frame" x="11" y="38" width="327" height="155"/>
                                 <subviews>
+                                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="H1L-ao-uRw">
+                                        <rect key="frame" x="9" y="11" width="312" height="0.0"/>
+                                        <fontDescription key="fontDescription" type="system" pointSize="13"/>
+                                        <color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="calibratedRGB"/>
+                                        <nil key="highlightedColor"/>
+                                    </label>
                                     <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="dU1-HN-KyM">
                                         <rect key="frame" x="0.0" y="0.0" width="327" height="155"/>
                                         <subviews>
@@ -72,11 +78,15 @@
                                 </subviews>
                                 <color key="backgroundColor" red="0.96862745100000003" green="0.97254901959999995" blue="0.97647058819999999" alpha="1" colorSpace="calibratedRGB"/>
                                 <constraints>
+                                    <constraint firstAttribute="trailing" secondItem="H1L-ao-uRw" secondAttribute="trailing" constant="6" id="0fj-KP-pN1"/>
                                     <constraint firstItem="dU1-HN-KyM" firstAttribute="leading" secondItem="vf1-Yo-J7O" secondAttribute="leading" id="2gz-6H-k3O"/>
                                     <constraint firstAttribute="bottom" secondItem="dU1-HN-KyM" secondAttribute="bottom" id="AiG-7u-Z5R"/>
                                     <constraint firstAttribute="trailing" secondItem="dU1-HN-KyM" secondAttribute="trailing" id="CT7-rV-eTH"/>
+                                    <constraint firstItem="H1L-ao-uRw" firstAttribute="leading" secondItem="vf1-Yo-J7O" secondAttribute="leading" constant="9" id="Gn2-jW-Sqe"/>
+                                    <constraint firstAttribute="bottom" relation="greaterThanOrEqual" secondItem="H1L-ao-uRw" secondAttribute="bottom" constant="5" id="MId-4v-mP6"/>
                                     <constraint firstAttribute="height" relation="greaterThanOrEqual" constant="88" id="Ohc-jd-ZIz"/>
                                     <constraint firstItem="dU1-HN-KyM" firstAttribute="top" secondItem="vf1-Yo-J7O" secondAttribute="top" id="ReN-18-uf8"/>
+                                    <constraint firstItem="H1L-ao-uRw" firstAttribute="top" secondItem="vf1-Yo-J7O" secondAttribute="top" constant="11" id="ung-Zh-kpd"/>
                                 </constraints>
                                 <userDefinedRuntimeAttributes>
                                     <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
@@ -103,6 +113,9 @@
                                     <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="IGB-Qf-0rk">
                                         <rect key="frame" x="0.0" y="0.0" width="78.5" height="36"/>
                                         <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
+                                        <connections>
+                                            <action selector="arrangeHomeworkAction:" destination="KGk-i7-Jjw" eventType="touchUpInside" id="aKH-7f-7uF"/>
+                                        </connections>
                                     </button>
                                 </subviews>
                                 <color key="backgroundColor" systemColor="systemBackgroundColor"/>
@@ -149,6 +162,11 @@
             </tableViewCellContentView>
             <viewLayoutGuide key="safeArea" id="aW0-zy-SZf"/>
             <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+            <connections>
+                <outlet property="arrangeActionView" destination="6qK-hE-EmI" id="U8X-Vw-8So"/>
+                <outlet property="contentLabel" destination="H1L-ao-uRw" id="YPY-n4-spk"/>
+                <outlet property="emptyView" destination="dU1-HN-KyM" id="Lep-x2-mcW"/>
+            </connections>
             <point key="canvasLocation" x="207.97101449275365" y="134.93303571428569"/>
         </tableViewCell>
     </objects>

+ 2 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Course/AccompanyCourse/View/AccompanyCourseInfoCell.h

@@ -13,6 +13,8 @@ NS_ASSUME_NONNULL_BEGIN
 
 @property (nonatomic, assign) BOOL hideChatButton;
 
+- (void)configWithStartTime:(NSString *)beginTime endTime:(NSString *)endTime studentAvatar:(NSString *)studentAvatar studentName:(NSString *)studentName studentId:(NSString *)studentId studentSubject:(NSString *)studentSubject;
+
 @end
 
 NS_ASSUME_NONNULL_END

+ 44 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Course/AccompanyCourse/View/AccompanyCourseInfoCell.m

@@ -9,7 +9,17 @@
 
 @interface AccompanyCourseInfoCell ()
 
+@property (weak, nonatomic) IBOutlet UILabel *courseTime;
+@property (weak, nonatomic) IBOutlet UIImageView *studentAvatar;
+@property (weak, nonatomic) IBOutlet UILabel *studentName;
+@property (weak, nonatomic) IBOutlet UILabel *studentSubject;
+@property (weak, nonatomic) IBOutlet UILabel *statusLabel;
 
+@property (weak, nonatomic) IBOutlet UIButton *chatButton;
+
+@property (nonatomic, strong) NSString *userId;
+
+@property (nonatomic, strong) NSString *userName;
 
 @end
 
@@ -18,8 +28,42 @@
 - (void)awakeFromNib {
     [super awakeFromNib];
     // Initialization code
+    self.selectionStyle = UITableViewCellSelectionStyleNone;
+}
+
+- (void)configWithStartTime:(NSString *)beginTime endTime:(NSString *)endTime studentAvatar:(NSString *)studentAvatar studentName:(NSString *)studentName studentId:(NSString *)studentId studentSubject:(NSString *)studentSubject {
+    // time
+    NSDateFormatter *formatter = [NSObject getDateformatter];
+    [formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
+    NSDate *startDate = [formatter dateFromString:beginTime];
+    NSDate *endDate = [formatter dateFromString:endTime];
+    [formatter setDateFormat:@"yyyy/MM/dd HH:mm"];
+    NSString *lessonBegin = [formatter stringFromDate:startDate];
+    [formatter setDateFormat:@"HH:mm"];
+    NSString *lessonEnd = [formatter stringFromDate:endDate];
+    self.courseTime.text = [NSString stringWithFormat:@"%@~%@",[NSString returnNoNullStringWithString:lessonBegin],[NSString returnNoNullStringWithString:lessonEnd]];
+    
+    self.studentName.text = [NSString returnNoNullStringWithString:studentName];
+    [self.studentAvatar sd_setImageWithURL:[NSURL URLWithString:studentAvatar] placeholderImage:[UIImage imageNamed:USERDEFAULT_LOGO]];
+    self.studentSubject.text = [NSString returnNoNullStringWithString:studentSubject];
+
+    self.userId = studentId;
+    self.userName = studentName;
+}
+
+- (void)setHideChatButton:(BOOL)hideChatButton {
+    _hideChatButton = hideChatButton;
+    if (hideChatButton) {
+        self.chatButton.hidden = YES;
+        self.chatButton.userInteractionEnabled = NO;
+    }
+    else {
+        self.chatButton.hidden = NO;
+        self.chatButton.userInteractionEnabled = YES;
+    }
 }
 
+
 - (void)setSelected:(BOOL)selected animated:(BOOL)animated {
     [super setSelected:selected animated:animated];
 

+ 12 - 4
KulexiuForTeacher/KulexiuForTeacher/Module/Course/AccompanyCourse/View/AccompanyCourseInfoCell.xib

@@ -12,14 +12,14 @@
         <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="AccompanyCourseInfoCell">
-            <rect key="frame" x="0.0" y="0.0" width="367" height="135"/>
+            <rect key="frame" x="0.0" y="0.0" width="367" height="145"/>
             <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="367" height="135"/>
+                <rect key="frame" x="0.0" y="0.0" width="367" height="145"/>
                 <autoresizingMask key="autoresizingMask"/>
                 <subviews>
                     <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Me9-vj-Fhq">
-                        <rect key="frame" x="14" y="0.0" width="339" height="123"/>
+                        <rect key="frame" x="14" y="10" width="339" height="123"/>
                         <subviews>
                             <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="09K-c6-xYX">
                                 <rect key="frame" x="10" y="38" width="319" height="1"/>
@@ -139,13 +139,21 @@
                 </subviews>
                 <constraints>
                     <constraint firstAttribute="bottom" secondItem="Me9-vj-Fhq" secondAttribute="bottom" constant="12" id="Xsc-EO-bGL"/>
-                    <constraint firstItem="Me9-vj-Fhq" firstAttribute="top" secondItem="H2p-sc-9uM" secondAttribute="top" id="YXp-RV-zfk"/>
+                    <constraint firstItem="Me9-vj-Fhq" firstAttribute="top" secondItem="H2p-sc-9uM" secondAttribute="top" constant="10" id="YXp-RV-zfk"/>
                     <constraint firstAttribute="trailing" secondItem="Me9-vj-Fhq" secondAttribute="trailing" constant="14" id="atd-gk-0m1"/>
                     <constraint firstItem="Me9-vj-Fhq" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" constant="14" id="g3f-25-gGV"/>
                 </constraints>
             </tableViewCellContentView>
             <viewLayoutGuide key="safeArea" id="aW0-zy-SZf"/>
             <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+            <connections>
+                <outlet property="chatButton" destination="dZv-fL-5CE" id="AJN-Du-3LN"/>
+                <outlet property="courseTime" destination="dYZ-ZA-mKb" id="JjR-Me-4kj"/>
+                <outlet property="statusLabel" destination="sy0-Ds-ef0" id="0IK-l7-I3g"/>
+                <outlet property="studentAvatar" destination="s7E-Da-TcK" id="Hat-QP-4o3"/>
+                <outlet property="studentName" destination="mNS-6d-8wr" id="DZl-me-T26"/>
+                <outlet property="studentSubject" destination="g0Z-7O-ahT" id="SsG-hN-q6S"/>
+            </connections>
             <point key="canvasLocation" x="165.94202898550725" y="108.48214285714285"/>
         </tableViewCell>
     </objects>

+ 4 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Course/AccompanyCourse/View/AccompanyEvaluateCell.h

@@ -7,10 +7,14 @@
 
 #import <UIKit/UIKit.h>
 
+typedef void(^HomeworkEvaluateCallback)(void);
+
 NS_ASSUME_NONNULL_BEGIN
 
 @interface AccompanyEvaluateCell : UITableViewCell
 
+- (void)configWithEvaluateMessage:(NSString *)evaluateMessage hasEvaluate:(BOOL)hasEvaluate callback:(HomeworkEvaluateCallback)callback;
+
 @end
 
 NS_ASSUME_NONNULL_END

+ 32 - 2
KulexiuForTeacher/KulexiuForTeacher/Module/Course/AccompanyCourse/View/AccompanyEvaluateCell.m

@@ -9,9 +9,13 @@
 
 @interface AccompanyEvaluateCell ()
 
-@property (weak, nonatomic) IBOutlet UIView *evaluateView;
+@property (weak, nonatomic) IBOutlet UIView *emptyView;
+
+@property (weak, nonatomic) IBOutlet UILabel *contentLabel;
 
+@property (weak, nonatomic) IBOutlet UIView *evaluateView;
 
+@property (nonatomic, copy) HomeworkEvaluateCallback callback;
 @end
 
 @implementation AccompanyEvaluateCell
@@ -22,6 +26,30 @@
     self.selectionStyle = UITableViewCellSelectionStyleNone;
 }
 
+- (void)configWithEvaluateMessage:(NSString *)evaluateMessage hasEvaluate:(BOOL)hasEvaluate callback:(HomeworkEvaluateCallback)callback {
+    if (callback) {
+        self.callback = callback;
+    }
+    if (hasEvaluate) {
+        self.emptyView.hidden = YES;
+        self.evaluateView.hidden = YES;
+        if (![NSString isEmptyString:evaluateMessage]) {
+            NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];
+            [paragraphStyle setLineSpacing:4];//调整行间距
+            NSMutableAttributedString *attr = [[NSMutableAttributedString alloc] initWithString:evaluateMessage attributes:@{NSParagraphStyleAttributeName:paragraphStyle,NSFontAttributeName:[UIFont systemFontOfSize:13.0f],NSForegroundColorAttributeName:HexRGB(0x333333)}];
+            self.contentLabel.attributedText = attr;
+        }
+        else {
+            self.contentLabel.text = @"";
+        }
+    }
+    else {
+        self.emptyView.hidden = NO;
+        self.evaluateView.hidden = NO;
+        self.contentLabel.text = @"";
+    }
+}
+
 - (void)setSelected:(BOOL)selected animated:(BOOL)animated {
     [super setSelected:selected animated:animated];
 
@@ -29,7 +57,9 @@
 }
 
 - (IBAction)clickAction:(id)sender {
-    
+    if (self.callback) {
+        self.callback();
+    }
 }
 
 

+ 12 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Course/AccompanyCourse/View/AccompanyEvaluateCell.xib

@@ -36,6 +36,12 @@
                             <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="UuA-Bs-h8B">
                                 <rect key="frame" x="11" y="38" width="306" height="136"/>
                                 <subviews>
+                                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="U8w-lC-fk1">
+                                        <rect key="frame" x="9" y="11" width="291" height="0.0"/>
+                                        <fontDescription key="fontDescription" type="system" pointSize="13"/>
+                                        <color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="calibratedRGB"/>
+                                        <nil key="highlightedColor"/>
+                                    </label>
                                     <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="S3K-5J-eeD">
                                         <rect key="frame" x="0.0" y="0.0" width="306" height="136"/>
                                         <subviews>
@@ -72,10 +78,14 @@
                                 </subviews>
                                 <color key="backgroundColor" red="0.96862745098039216" green="0.97254901960784312" blue="0.97647058823529409" alpha="1" colorSpace="calibratedRGB"/>
                                 <constraints>
+                                    <constraint firstItem="U8w-lC-fk1" firstAttribute="top" secondItem="UuA-Bs-h8B" secondAttribute="top" constant="11" id="2jE-g6-KEd"/>
                                     <constraint firstAttribute="bottom" secondItem="S3K-5J-eeD" secondAttribute="bottom" id="5p5-El-879"/>
                                     <constraint firstItem="S3K-5J-eeD" firstAttribute="top" secondItem="UuA-Bs-h8B" secondAttribute="top" id="7cu-oT-x1T"/>
+                                    <constraint firstAttribute="bottom" relation="greaterThanOrEqual" secondItem="U8w-lC-fk1" secondAttribute="bottom" constant="5" id="J8r-c3-V56"/>
                                     <constraint firstItem="S3K-5J-eeD" firstAttribute="leading" secondItem="UuA-Bs-h8B" secondAttribute="leading" id="JeK-99-vdm"/>
+                                    <constraint firstAttribute="trailing" secondItem="U8w-lC-fk1" secondAttribute="trailing" constant="6" id="KT9-sZ-c8d"/>
                                     <constraint firstAttribute="trailing" secondItem="S3K-5J-eeD" secondAttribute="trailing" id="TMQ-F6-3FF"/>
+                                    <constraint firstItem="U8w-lC-fk1" firstAttribute="leading" secondItem="UuA-Bs-h8B" secondAttribute="leading" constant="9" id="d1N-ST-HRP"/>
                                     <constraint firstAttribute="height" relation="greaterThanOrEqual" constant="88" id="tLV-Ud-O1J"/>
                                 </constraints>
                                 <userDefinedRuntimeAttributes>
@@ -153,6 +163,8 @@
             <viewLayoutGuide key="safeArea" id="aW0-zy-SZf"/>
             <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
             <connections>
+                <outlet property="contentLabel" destination="U8w-lC-fk1" id="u3c-7s-8cR"/>
+                <outlet property="emptyView" destination="S3K-5J-eeD" id="oee-sK-UVk"/>
                 <outlet property="evaluateView" destination="UJk-HT-rTs" id="rFL-6c-wZ1"/>
             </connections>
             <point key="canvasLocation" x="155.07246376811597" y="127.90178571428571"/>

+ 4 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Course/AccompanyCourse/View/AccompanyHomeworkCell.h

@@ -6,11 +6,15 @@
 //
 
 #import <UIKit/UIKit.h>
+#import "HomeworkVideoView.h"
 
+typedef void(^HomeworkPlayAction)(NSInteger viewIndex);
 NS_ASSUME_NONNULL_BEGIN
 
 @interface AccompanyHomeworkCell : UITableViewCell
 
+- (void)configWithAttachmentArray:(NSMutableArray *)fileArray hasSubmit:(BOOL)hasSubmit callback:(HomeworkPlayAction)callback;
+
 @end
 
 NS_ASSUME_NONNULL_END

+ 52 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Course/AccompanyCourse/View/AccompanyHomeworkCell.m

@@ -7,6 +7,16 @@
 
 #import "AccompanyHomeworkCell.h"
 
+@interface AccompanyHomeworkCell ()
+
+@property (weak, nonatomic) IBOutlet UIView *emptyView;
+
+@property (weak, nonatomic) IBOutlet UIView *videoContainer;
+
+@property (nonatomic, copy) HomeworkPlayAction callback;
+
+@end
+
 @implementation AccompanyHomeworkCell
 
 - (void)awakeFromNib {
@@ -15,6 +25,48 @@
     self.selectionStyle = UITableViewCellSelectionStyleNone;
 }
 
+- (void)configWithAttachmentArray:(NSMutableArray *)fileArray hasSubmit:(BOOL)hasSubmit callback:(HomeworkPlayAction)callback {
+    if (callback) {
+        self.callback = callback;
+    }
+    [self.videoContainer removeAllSubViews];
+    if (hasSubmit) {
+        self.emptyView.hidden = YES;
+        [self configVideoViewWithSource:fileArray];
+    }
+    else {
+        self.emptyView.hidden = NO;
+    }
+}
+
+- (void)configVideoViewWithSource:(NSMutableArray *)fileArray {
+    CGFloat maxWidth = kScreenWidth - 24 - 20;
+    CGFloat space = 6;
+    CGFloat width = (maxWidth - space * 2) / 3.0f;
+    CGFloat height = 70.0f;
+    for (NSInteger i = 0; i < fileArray.count; i++) {
+        if (i > 2) {
+            return;
+        }
+        CGFloat positionX = i * (width + space);
+        NSString *videoUrl = fileArray[i];
+        HomeworkVideoView *videoView = [HomeworkVideoView shareInstance];
+        videoView.frame = CGRectMake(positionX, 0, width, height);
+        videoView.tag = i+1000;
+        MJWeakSelf
+        [videoView displayVideoUrl:videoUrl callback:^(NSInteger viewIndex) {
+            [weakSelf playVideoIndex:viewIndex];
+        }];
+        [self.videoContainer addSubview:videoView];
+    }
+}
+
+- (void)playVideoIndex:(NSInteger)index {
+    if (self.callback) {
+        self.callback(index);
+    }
+}
+
 - (void)setSelected:(BOOL)selected animated:(BOOL)animated {
     [super setSelected:selected animated:animated];
 

+ 12 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Course/AccompanyCourse/View/AccompanyHomeworkCell.xib

@@ -33,6 +33,10 @@
                                 <color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="calibratedRGB"/>
                                 <nil key="highlightedColor"/>
                             </label>
+                            <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="EwC-zg-aiZ">
+                                <rect key="frame" x="11" y="38" width="316" height="144"/>
+                                <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                            </view>
                             <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="0zy-PX-mCI">
                                 <rect key="frame" x="11" y="38" width="316" height="144"/>
                                 <subviews>
@@ -87,13 +91,17 @@
                         </subviews>
                         <color key="backgroundColor" systemColor="systemBackgroundColor"/>
                         <constraints>
+                            <constraint firstItem="0zy-PX-mCI" firstAttribute="leading" secondItem="EwC-zg-aiZ" secondAttribute="leading" id="6qS-1K-oIf"/>
                             <constraint firstAttribute="bottom" secondItem="0zy-PX-mCI" secondAttribute="bottom" constant="10" id="F6N-7x-aaL"/>
                             <constraint firstItem="sJu-iK-25U" firstAttribute="leading" secondItem="1fO-1K-g2U" secondAttribute="trailing" constant="5" id="eUo-qr-eCq"/>
                             <constraint firstItem="0zy-PX-mCI" firstAttribute="leading" secondItem="dtq-Yd-b5t" secondAttribute="leading" constant="11" id="hOV-oC-FPR"/>
                             <constraint firstItem="1fO-1K-g2U" firstAttribute="leading" secondItem="dtq-Yd-b5t" secondAttribute="leading" constant="11" id="hrI-hU-381"/>
+                            <constraint firstItem="0zy-PX-mCI" firstAttribute="bottom" secondItem="EwC-zg-aiZ" secondAttribute="bottom" id="jr8-M4-buE"/>
                             <constraint firstItem="1fO-1K-g2U" firstAttribute="top" secondItem="dtq-Yd-b5t" secondAttribute="top" constant="13" id="oA4-Nz-L8o"/>
                             <constraint firstItem="sJu-iK-25U" firstAttribute="centerY" secondItem="1fO-1K-g2U" secondAttribute="centerY" id="pIn-T0-aBu"/>
+                            <constraint firstItem="0zy-PX-mCI" firstAttribute="trailing" secondItem="EwC-zg-aiZ" secondAttribute="trailing" id="pQ1-gj-1pJ"/>
                             <constraint firstItem="0zy-PX-mCI" firstAttribute="top" secondItem="sJu-iK-25U" secondAttribute="bottom" constant="8" id="rcZ-bR-wHe"/>
+                            <constraint firstItem="0zy-PX-mCI" firstAttribute="top" secondItem="EwC-zg-aiZ" secondAttribute="top" id="w8p-y6-gXb"/>
                             <constraint firstAttribute="trailing" secondItem="0zy-PX-mCI" secondAttribute="trailing" constant="9" id="wuB-Na-rgf"/>
                         </constraints>
                         <userDefinedRuntimeAttributes>
@@ -112,6 +120,10 @@
             </tableViewCellContentView>
             <viewLayoutGuide key="safeArea" id="aW0-zy-SZf"/>
             <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+            <connections>
+                <outlet property="emptyView" destination="0zy-PX-mCI" id="3KA-n7-M42"/>
+                <outlet property="videoContainer" destination="EwC-zg-aiZ" id="5RL-eg-4SG"/>
+            </connections>
             <point key="canvasLocation" x="163.768115942029" y="128.57142857142856"/>
         </tableViewCell>
     </objects>

+ 4 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Course/AccompanyCourse/View/AccompanyRemarkCell.h

@@ -7,10 +7,14 @@
 
 #import <UIKit/UIKit.h>
 
+typedef void(^HomeworkRemarkCallback)(void);
+
 NS_ASSUME_NONNULL_BEGIN
 
 @interface AccompanyRemarkCell : UITableViewCell
 
+- (void)configWithRemarkMessage:(NSString *)remarkMessage hasEvaluate:(BOOL)hasEvaluate callback:(HomeworkRemarkCallback)callback;
+
 @end
 
 NS_ASSUME_NONNULL_END

+ 41 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Course/AccompanyCourse/View/AccompanyRemarkCell.m

@@ -7,6 +7,18 @@
 
 #import "AccompanyRemarkCell.h"
 
+@interface AccompanyRemarkCell ()
+
+@property (weak, nonatomic) IBOutlet UIView *emptyView;
+
+@property (weak, nonatomic) IBOutlet UILabel *contentLabel;
+
+@property (weak, nonatomic) IBOutlet UIView *remarkView;
+
+@property (nonatomic, copy) HomeworkRemarkCallback callback;
+
+@end
+
 @implementation AccompanyRemarkCell
 
 - (void)awakeFromNib {
@@ -15,6 +27,35 @@
     self.selectionStyle = UITableViewCellSelectionStyleNone;
 }
 
+- (void)configWithRemarkMessage:(NSString *)evaluateMessage hasEvaluate:(BOOL)hasEvaluate callback:(HomeworkRemarkCallback)callback {
+    if (callback) {
+        self.callback = callback;
+    }
+    if (hasEvaluate) {
+        self.emptyView.hidden = YES;
+        self.remarkView.hidden = YES;
+        if (![NSString isEmptyString:evaluateMessage]) {
+            NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];
+            [paragraphStyle setLineSpacing:4];//调整行间距
+            NSMutableAttributedString *attr = [[NSMutableAttributedString alloc] initWithString:evaluateMessage attributes:@{NSParagraphStyleAttributeName:paragraphStyle,NSFontAttributeName:[UIFont systemFontOfSize:13.0f],NSForegroundColorAttributeName:HexRGB(0x333333)}];
+            self.contentLabel.attributedText = attr;
+        }
+        else {
+            self.contentLabel.text = @"";
+        }
+    }
+    else {
+        self.emptyView.hidden = NO;
+        self.remarkView.hidden = NO;
+        self.contentLabel.text = @"";
+    }
+}
+- (IBAction)remarkAction:(id)sender {
+    if (self.callback) {
+        self.callback();
+    }
+}
+
 - (void)setSelected:(BOOL)selected animated:(BOOL)animated {
     [super setSelected:selected animated:animated];
 

+ 19 - 1
KulexiuForTeacher/KulexiuForTeacher/Module/Course/AccompanyCourse/View/AccompanyRemarkCell.xib

@@ -36,6 +36,12 @@
                             <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="ehC-4r-0Vt">
                                 <rect key="frame" x="11" y="38" width="327" height="161"/>
                                 <subviews>
+                                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="fGD-VY-opX">
+                                        <rect key="frame" x="9" y="11" width="312" height="0.0"/>
+                                        <fontDescription key="fontDescription" type="system" pointSize="13"/>
+                                        <color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="calibratedRGB"/>
+                                        <nil key="highlightedColor"/>
+                                    </label>
                                     <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="W9z-ye-Ww2">
                                         <rect key="frame" x="0.0" y="0.0" width="327" height="161"/>
                                         <subviews>
@@ -63,10 +69,14 @@
                                         </constraints>
                                     </view>
                                 </subviews>
-                                <color key="backgroundColor" red="0.96862745100000003" green="0.97254901959999995" blue="0.97647058819999999" alpha="1" colorSpace="calibratedRGB"/>
+                                <color key="backgroundColor" red="0.96862745098039216" green="0.97254901960784312" blue="0.97647058823529409" alpha="1" colorSpace="custom" customColorSpace="calibratedRGB"/>
                                 <constraints>
+                                    <constraint firstItem="fGD-VY-opX" firstAttribute="top" secondItem="ehC-4r-0Vt" secondAttribute="top" constant="11" id="5qP-C3-ls4"/>
+                                    <constraint firstAttribute="bottom" relation="greaterThanOrEqual" secondItem="fGD-VY-opX" secondAttribute="bottom" constant="5" id="97b-0p-hN7"/>
+                                    <constraint firstItem="fGD-VY-opX" firstAttribute="leading" secondItem="ehC-4r-0Vt" secondAttribute="leading" constant="9" id="HQP-RH-aK1"/>
                                     <constraint firstAttribute="height" relation="greaterThanOrEqual" constant="88" id="L9X-hq-5Cj"/>
                                     <constraint firstItem="W9z-ye-Ww2" firstAttribute="top" secondItem="ehC-4r-0Vt" secondAttribute="top" id="LmU-3Z-TK6"/>
+                                    <constraint firstAttribute="trailing" secondItem="fGD-VY-opX" secondAttribute="trailing" constant="6" id="NvZ-6s-hae"/>
                                     <constraint firstItem="W9z-ye-Ww2" firstAttribute="leading" secondItem="ehC-4r-0Vt" secondAttribute="leading" id="TG2-AT-S1D"/>
                                     <constraint firstAttribute="trailing" secondItem="W9z-ye-Ww2" secondAttribute="trailing" id="b8y-80-QsT"/>
                                     <constraint firstAttribute="bottom" secondItem="W9z-ye-Ww2" secondAttribute="bottom" id="eNf-PG-4d5"/>
@@ -96,6 +106,9 @@
                                     <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="WT0-J3-ujJ">
                                         <rect key="frame" x="0.0" y="0.0" width="51" height="36"/>
                                         <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
+                                        <connections>
+                                            <action selector="remarkAction:" destination="KGk-i7-Jjw" eventType="touchUpInside" id="IRJ-8e-3i2"/>
+                                        </connections>
                                     </button>
                                 </subviews>
                                 <color key="backgroundColor" systemColor="systemBackgroundColor"/>
@@ -142,6 +155,11 @@
             </tableViewCellContentView>
             <viewLayoutGuide key="safeArea" id="aW0-zy-SZf"/>
             <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+            <connections>
+                <outlet property="contentLabel" destination="fGD-VY-opX" id="2nt-wP-TPs"/>
+                <outlet property="emptyView" destination="W9z-ye-Ww2" id="RYX-4Q-Ecb"/>
+                <outlet property="remarkView" destination="ZfR-Jo-QQv" id="QpK-Xw-7zk"/>
+            </connections>
             <point key="canvasLocation" x="131.15942028985509" y="101.45089285714285"/>
         </tableViewCell>
     </objects>

+ 2 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Course/AccompanyCourse/View/AccompanyStudentEvaCell.h

@@ -11,6 +11,8 @@ NS_ASSUME_NONNULL_BEGIN
 
 @interface AccompanyStudentEvaCell : UITableViewCell
 
+- (void)configWithEvaluateMessage:(NSString *)evaluateMessage starNum:(NSInteger)starNum hasEvaluate:(BOOL)hasEvaluate;
+
 @end
 
 NS_ASSUME_NONNULL_END

+ 4 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Course/AccompanyCourse/View/AccompanyStudentEvaCell.m

@@ -15,6 +15,10 @@
     self.selectionStyle = UITableViewCellSelectionStyleNone;
 }
 
+- (void)configWithEvaluateMessage:(NSString *)evaluateMessage starNum:(NSInteger)starNum hasEvaluate:(BOOL)hasEvaluate {
+    
+}
+
 - (void)setSelected:(BOOL)selected animated:(BOOL)animated {
     [super setSelected:selected animated:animated];
 

+ 4 - 8
KulexiuForTeacher/KulexiuForTeacher/Module/Course/Controller/CourseViewController.m

@@ -50,8 +50,7 @@
 }
 
 - (void)loadCalendarInfo {
-    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
-    formatter.timeZone = [NSTimeZone systemTimeZone];
+    NSDateFormatter *formatter = [NSObject getDateformatter];
     [formatter setDateFormat:@"yyyy-MM"];
     NSDate *date = [NSDate date];
     self.chooseMonth = [formatter stringFromDate:date];
@@ -229,8 +228,7 @@
     if (monthPosition == FSCalendarMonthPositionNext || monthPosition == FSCalendarMonthPositionPrevious) {
         [calendar setCurrentPage:date animated:YES];
     }
-    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
-    formatter.timeZone = [NSTimeZone systemTimeZone];
+    NSDateFormatter *formatter = [NSObject getDateformatter];
     [formatter setDateFormat:@"yyyy-MM-dd"];
     NSString *dateStr = [formatter stringFromDate:date];
     dateStr = [NSString stringWithFormat:@"%@ 00:00:00", dateStr];
@@ -245,8 +243,7 @@
     self.navHeadView.navTitle.text = [self.dateFormatter stringFromDate:calendar.currentPage];
     NSLog(@"%s %@", __FUNCTION__, [self.dateFormatter stringFromDate:calendar.currentPage]);
     // 获取当前月份信息
-    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
-    formatter.timeZone = [NSTimeZone systemTimeZone];
+    NSDateFormatter *formatter = [NSObject getDateformatter];
     [formatter setDateFormat:@"yyyy-MM"];
     NSString *month = [formatter stringFromDate:calendar.currentPage];
     if (![_chooseMonth isEqualToString:month]) {
@@ -335,8 +332,7 @@
 }
 - (NSDateFormatter *)dateFormatter {
     if (!_dateFormatter) {
-       _dateFormatter = [[NSDateFormatter alloc] init];
-        _dateFormatter.timeZone = [NSTimeZone systemTimeZone];
+       _dateFormatter = [NSObject getDateformatter];
         _dateFormatter.dateFormat = @"yyyy年MM月";
     }
     return _dateFormatter;

+ 8 - 2
KulexiuForTeacher/KulexiuForTeacher/Module/Home/Controller/HomeViewController.m

@@ -14,6 +14,7 @@
 #import "MyCourseViewController.h"
 #import "HomeworkListViewController.h"
 #import "EvaluateCourseListViewController.h"
+#import "NotiferMessageViewController.h"
 
 @interface HomeViewController ()
 
@@ -34,6 +35,8 @@
     [self configUI];
 }
 
+//- ()
+
 - (void)configUI {
     UIImage *bgImage = [UIImage imageNamed:@"home_bg"];
     CGFloat height = bgImage.size.height / bgImage.size.width * kScreenWidth;
@@ -89,8 +92,11 @@
 }
 
 - (void)toMessageCenter {
-    NSString *url = @"alipays://platformapi/startapp?saId=10000007&qrcode=https://qr.alipay.com/bax08845x232iacmrtdc251b";
-    [[UIApplication sharedApplication] openURL:[NSURL URLWithString: url]];
+    NotiferMessageViewController *messageCenter = [[NotiferMessageViewController alloc] init];
+    [self.navigationController pushViewController:messageCenter animated:YES];
+    
+//    NSString *url = @"alipays://platformapi/startapp?saId=10000007&qrcode=https://qr.alipay.com/bax08845x232iacmrtdc251b";
+//    [[UIApplication sharedApplication] openURL:[NSURL URLWithString: url]];
 }
 
 - (HomeHeadView *)headView {

+ 2 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Home/Homework/Controller/HomeworkDetailViewController.h

@@ -11,6 +11,8 @@ NS_ASSUME_NONNULL_BEGIN
 
 @interface HomeworkDetailViewController : KSBaseViewController
 
+@property (nonatomic, strong) NSString *courseId;
+
 @end
 
 NS_ASSUME_NONNULL_END

+ 186 - 6
KulexiuForTeacher/KulexiuForTeacher/Module/Home/Homework/Controller/HomeworkDetailViewController.m

@@ -9,14 +9,30 @@
 #import "AccompanyCourseInfoCell.h"
 #import "AccompanyArrangeCell.h"
 #import "AccompanyHomeworkCell.h"
-#import "AccompanyEvaluateCell.h"
+#import "AccompanyRemarkCell.h"
+#import "AccompanyAlertView.h"
+#import "HomeworkDetailModel.h"
+#import "WMPlayer.h"
 
-@interface HomeworkDetailViewController ()<UITableViewDelegate, UITableViewDataSource>
+@interface HomeworkDetailViewController ()<UITableViewDelegate, UITableViewDataSource,WMPlayerDelegate>
+{
+    WMPlayer *_wmPlayer;
+    CGRect _playerFrame;
+}
+@property (nonatomic, strong) UIView *bgView;
+
+@property (nonatomic, assign) BOOL isRatation;
 
 @property (nonatomic, strong) UITableView *tableView;
 
 @property (nonatomic, assign) NSInteger cellCount;
 
+@property (nonatomic, strong) AccompanyAlertView *alertView;
+
+@property (nonatomic, strong) HomeworkDetailModel *detailModel;
+
+@property (nonatomic, strong) NSMutableArray *fileArray;
+
 @end
 
 @implementation HomeworkDetailViewController
@@ -31,7 +47,6 @@
 
 - (void)setupUI {
     [self.scrollView removeFromSuperview];
-    self.cellCount = 4;
     self.view.backgroundColor = HexRGB(0xf6f8f9);
     [self.view addSubview:self.tableView];
     [self.tableView mas_makeConstraints:^(MASConstraintMaker *make) {
@@ -41,9 +56,39 @@
 }
 
 - (void)requestCourseMessage {
-    [self.tableView reloadData];
+    [self showhud];
+    [KSNetworkingManager homeworkDetailRequest:KS_GET courseId:self.courseId success:^(NSDictionary * _Nonnull dic) {
+        [self removehub];
+        if ([dic integerValueForKey:@"code"] == 200 && [dic boolValueForKey:@"status"]) {
+            self.detailModel = [[HomeworkDetailModel alloc] initWithDictionary:[dic dictionaryValueForKey:@"data"]];
+            [self evaluateViewDisplay];
+        }
+        else {
+            [self MBPShow:MESSAGEKEY];
+        }
+    } faliure:^(NSError * _Nonnull error) {
+        [self removehub];
+    }];
 }
 
+- (void)evaluateViewDisplay {
+    // 判断显示
+    if (self.detailModel.decorateHomework == 0) { // 未布置
+        self.cellCount = 2;
+    }
+    else { // 已布置
+        if (self.detailModel.submitHomework == 0) { // 未提交
+            self.cellCount = 3;
+        }
+        else { // 已提交
+            self.cellCount = 4;
+            if (![NSString isEmptyString:self.detailModel.studentAttachments]) {
+                self.fileArray = [NSMutableArray arrayWithArray:[self.detailModel.studentAttachments componentsSeparatedByString:@","]];
+            }
+        }
+    }
+    [self.tableView reloadData];
+}
 
 #pragma mark ----- table data source
 - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
@@ -53,23 +98,105 @@
 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
     if (indexPath.row == 0) { // 课程信息
         AccompanyCourseInfoCell *cell = [tableView dequeueReusableCellWithIdentifier:@"AccompanyCourseInfoCell"];
+        [cell configWithStartTime:self.detailModel.startTime endTime:self.detailModel.endTime studentAvatar:self.detailModel.studentAvatar studentName:self.detailModel.studentName studentId:self.detailModel.studentId studentSubject:self.detailModel.subjectName];
+        cell.hideChatButton = YES;
         return cell;
     }
     else if (indexPath.row == 1) { // 布置作业
         AccompanyArrangeCell *cell  = [tableView dequeueReusableCellWithIdentifier:@"AccompanyArrangeCell"];
+        BOOL hasArrange = self.detailModel.decorateHomework == 1 ? YES : NO;
+        MJWeakSelf;
+        [cell configWithHomeworkContent:self.detailModel.content hasArrangeHomework:hasArrange callback:^{
+            [weakSelf arrangeHomework];
+        }];
         return cell;
     }
     else if (indexPath.row == 2) { // 作业视频
+        // studentAttachments
+        BOOL hasSubmitHomework = self.detailModel.submitHomework == 1 ? YES : NO;
         AccompanyHomeworkCell *cell = [tableView dequeueReusableCellWithIdentifier:@"AccompanyHomeworkCell"];
+        MJWeakSelf;
+        [cell configWithAttachmentArray:self.fileArray hasSubmit:hasSubmitHomework callback:^(NSInteger viewIndex) {
+            [weakSelf playVideoIndex:viewIndex];
+        }];
         return cell;
     }
     else { // 老师点评
-        AccompanyEvaluateCell *cell = [tableView dequeueReusableCellWithIdentifier:@"AccompanyEvaluateCell"];
+        AccompanyRemarkCell *cell = [tableView dequeueReusableCellWithIdentifier:@"AccompanyRemarkCell"];
+        BOOL hasEvaluate = self.detailModel.reviewHomework == 1? YES : NO;
+//        hasEvaluate = NO;
+        MJWeakSelf;
+        [cell configWithRemarkMessage:self.detailModel.teacherReplied hasEvaluate:hasEvaluate callback:^{
+            [weakSelf evaluateHomework];
+        }];
         return cell;
     }
 }
 
+- (void)playVideoIndex:(NSInteger)index {
+    if (self.fileArray.count > index) {
+        NSString *fileUrl = self.fileArray[index];
+        [self playVideoWithUrl:fileUrl];
+    }
+}
+
 
+- (void)arrangeHomework {
+    self.alertView = [AccompanyAlertView shareInstance];
+    self.alertView.alertTitle.text = @"布置作业";
+    self.alertView.tipsLabel.text = @"请输入本次课程作业内容";
+    self.alertView.frame = CGRectMake(0, 0, kScreenWidth, kScreenHeight);
+    [self.alertView showInView:[UIApplication sharedApplication].keyWindow showStarView:NO];
+    MJWeakSelf;
+    [self.alertView sureCallback:^(NSString * _Nonnull content, NSInteger starNum) {
+        [weakSelf arrangeAction:content];
+    }];
+}
+
+// 评价作业
+- (void)evaluateHomework {
+    self.alertView = [AccompanyAlertView shareInstance];
+    self.alertView.alertTitle.text = @"作业点评";
+    self.alertView.tipsLabel.text = @"请输入您对本次作业的点评";
+    self.alertView.frame = CGRectMake(0, 0, kScreenWidth, kScreenHeight);
+    [self.alertView showInView:[UIApplication sharedApplication].keyWindow showStarView:NO];
+    MJWeakSelf;
+    [self.alertView sureCallback:^(NSString * _Nonnull content, NSInteger starNum) {
+        [weakSelf evaluateAction:content];
+    }];
+}
+
+- (void)evaluateAction:(NSString *)evaluateContent {
+    [self showhud];
+    [KSNetworkingManager homeworkReviewRequest:KS_POST courseScheduleId:self.courseId review:evaluateContent success:^(NSDictionary * _Nonnull dic) {
+        [self removehub];
+        if ([dic integerValueForKey:@"code"] == 200 && [dic boolValueForKey:@"status"]) {
+            [self MBPShow:@"点评成功"];
+            [self requestCourseMessage];
+        }
+        else {
+            [self MBPShow:MESSAGEKEY];
+        }
+    } faliure:^(NSError * _Nonnull error) {
+        [self removehub];
+    }];
+}
+
+- (void)arrangeAction:(NSString *)homeworkContent {
+    [self showhud];
+    [KSNetworkingManager homeworkDecorateRequest:KS_POST content:homeworkContent courseScheduleId:self.courseId success:^(NSDictionary * _Nonnull dic) {
+        [self removehub];
+        if ([dic integerValueForKey:@"code"] == 200 && [dic boolValueForKey:@"status"]) {
+            [self MBPShow:@"布置成功"];
+            [self requestCourseMessage];
+        }
+        else {
+            [self MBPShow:MESSAGEKEY];
+        }
+    } faliure:^(NSError * _Nonnull error) {
+        [self removehub];
+    }];
+}
 
 #pragma mark --- lazying
 - (UITableView *)tableView {
@@ -86,11 +213,64 @@
         [_tableView registerNib:[UINib nibWithNibName:@"AccompanyCourseInfoCell" bundle:[NSBundle mainBundle]] forCellReuseIdentifier:@"AccompanyCourseInfoCell"];
         [_tableView registerNib:[UINib nibWithNibName:@"AccompanyArrangeCell" bundle:[NSBundle mainBundle]] forCellReuseIdentifier:@"AccompanyArrangeCell"];
         [_tableView registerNib:[UINib nibWithNibName:@"AccompanyHomeworkCell" bundle:[NSBundle mainBundle]] forCellReuseIdentifier:@"AccompanyHomeworkCell"];
-        [_tableView registerNib:[UINib nibWithNibName:@"AccompanyEvaluateCell" bundle:[NSBundle mainBundle]] forCellReuseIdentifier:@"AccompanyEvaluateCell"];
+        [_tableView registerNib:[UINib nibWithNibName:@"AccompanyRemarkCell" bundle:[NSBundle mainBundle]] forCellReuseIdentifier:@"AccompanyRemarkCell"];
     }
     return _tableView;
 }
 
+#pragma mark ------ WMPlayer
+- (void)playVideoWithUrl:(NSString *)fileUrl {
+    fileUrl = [fileUrl stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
+    _playerFrame = CGRectMake(0, iPhoneXSafeTopMargin, kScreenWidth, kScreenHeight - iPhoneXSafeTopMargin - iPhoneXSafeBottomMargin);
+    _wmPlayer = [[WMPlayer alloc] initWithFrame:_playerFrame];
+    WMPlayerModel *playModel = [[WMPlayerModel alloc] init];
+    playModel.videoURL = [NSURL URLWithString:fileUrl];
+    _wmPlayer.playerModel = playModel;
+    _wmPlayer.delegate = self;
+    _bgView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, kScreenHeight)];
+    _bgView.backgroundColor = [UIColor blackColor];
+    [[UIApplication sharedApplication].keyWindow addSubview:_bgView];
+    [[UIApplication sharedApplication].keyWindow addSubview:_wmPlayer];
+    [[UIApplication sharedApplication].keyWindow bringSubviewToFront:_wmPlayer];
+    
+    [_wmPlayer play];
+}
+
+- (void)wmplayer:(WMPlayer *)wmplayer clickedCloseButton:(UIButton *)backBtn {
+    [wmplayer removePlayer];
+    [_bgView removeFromSuperview];
+    [self setNeedsStatusBarAppearanceUpdate];
+}
+
+- (void)wmplayer:(WMPlayer *)wmplayer clickedFullScreenButton:(UIButton *)fullScreenBtn {
+    self.isRatation = !self.isRatation;
+    
+    if (self.isRatation) {
+        [wmplayer removeFromSuperview];
+        [UIView animateWithDuration:1.0f animations:^{
+            wmplayer.transform = CGAffineTransformMakeRotation(M_PI_2);
+            
+        } completion:^(BOOL finished) {
+            wmplayer.frame = CGRectMake(0, iPhoneXSafeTopMargin, kScreenWidth, kScreenHeight - iPhoneXSafeTopMargin - iPhoneXSafeBottomMargin);
+            [[UIApplication sharedApplication].keyWindow addSubview:wmplayer];
+            [[UIApplication sharedApplication].keyWindow bringSubviewToFront:wmplayer];
+        }];
+    }
+    else {
+        [wmplayer removeFromSuperview];
+        
+        [UIView animateWithDuration:1.0f animations:^{
+            //        复原
+            wmplayer.transform = CGAffineTransformIdentity;
+            
+        } completion:^(BOOL finished) {
+            wmplayer.frame = CGRectMake(0, iPhoneXSafeTopMargin, kScreenWidth, kScreenHeight - iPhoneXSafeTopMargin - iPhoneXSafeBottomMargin);
+            [[UIApplication sharedApplication].keyWindow addSubview:wmplayer];
+            [[UIApplication sharedApplication].keyWindow bringSubviewToFront:wmplayer];
+        }];
+    }
+}
+
 /*
 #pragma mark - Navigation
 

+ 44 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Home/Homework/Model/HomeworkDetailModel.h

@@ -0,0 +1,44 @@
+//
+//  HomeworkDetailModel.h
+//
+//  Created by Steven  on 2022/4/18
+//  Copyright (c) 2022 __MyCompanyName__. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+
+
+@interface HomeworkDetailModel : NSObject <NSCoding, NSCopying>
+
+@property (nonatomic, strong) NSString *courseStatus;
+@property (nonatomic, strong) NSString *content;
+@property (nonatomic, strong) NSString *studentName;
+@property (nonatomic, strong) NSString *courseScheduleId;
+@property (nonatomic, strong) NSString *title;
+@property (nonatomic, assign) double submitHomework;
+@property (nonatomic, assign) double studentHomeworkId;
+@property (nonatomic, strong) NSString *teacherName;
+@property (nonatomic, strong) NSString *decorateTime;
+@property (nonatomic, strong) NSString *endTime;
+@property (nonatomic, strong) NSString *teacherReplied;
+@property (nonatomic, strong) NSString *subjectName;
+@property (nonatomic, strong) NSString *internalBaseClassIdentifier;
+@property (nonatomic, strong) NSString *submitTime;
+@property (nonatomic, strong) NSString *studentAttachments;
+@property (nonatomic, strong) NSString *courseType;
+@property (nonatomic, assign) double decorateHomework;
+@property (nonatomic, strong) NSString *attachments;
+@property (nonatomic, strong) NSString *courseGroupId;
+@property (nonatomic, strong) NSString *studentAvatar;
+@property (nonatomic, strong) NSString *startTime;
+@property (nonatomic, strong) NSString *classDate;
+@property (nonatomic, strong) NSString *teacherAvatar;
+@property (nonatomic, assign) double reviewHomework;
+@property (nonatomic, strong) NSString *studentId;
+
++ (instancetype)modelObjectWithDictionary:(NSDictionary *)dict;
+- (instancetype)initWithDictionary:(NSDictionary *)dict;
+- (NSDictionary *)dictionaryRepresentation;
+
+@end

+ 263 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Home/Homework/Model/HomeworkDetailModel.m

@@ -0,0 +1,263 @@
+//
+//  HomeworkDetailModel.m
+//
+//  Created by Steven  on 2022/4/18
+//  Copyright (c) 2022 __MyCompanyName__. All rights reserved.
+//
+
+#import "HomeworkDetailModel.h"
+
+
+NSString *const kHomeworkDetailModelCourseStatus = @"courseStatus";
+NSString *const kHomeworkDetailModelContent = @"content";
+NSString *const kHomeworkDetailModelStudentName = @"studentName";
+NSString *const kHomeworkDetailModelCourseScheduleId = @"courseScheduleId";
+NSString *const kHomeworkDetailModelTitle = @"title";
+NSString *const kHomeworkDetailModelSubmitHomework = @"submitHomework";
+NSString *const kHomeworkDetailModelStudentHomeworkId = @"studentHomeworkId";
+NSString *const kHomeworkDetailModelTeacherName = @"teacherName";
+NSString *const kHomeworkDetailModelDecorateTime = @"decorateTime";
+NSString *const kHomeworkDetailModelEndTime = @"endTime";
+NSString *const kHomeworkDetailModelTeacherReplied = @"teacherReplied";
+NSString *const kHomeworkDetailModelSubjectName = @"subjectName";
+NSString *const kHomeworkDetailModelId = @"id";
+NSString *const kHomeworkDetailModelSubmitTime = @"submitTime";
+NSString *const kHomeworkDetailModelStudentAttachments = @"studentAttachments";
+NSString *const kHomeworkDetailModelCourseType = @"courseType";
+NSString *const kHomeworkDetailModelDecorateHomework = @"decorateHomework";
+NSString *const kHomeworkDetailModelAttachments = @"attachments";
+NSString *const kHomeworkDetailModelCourseGroupId = @"courseGroupId";
+NSString *const kHomeworkDetailModelStudentAvatar = @"studentAvatar";
+NSString *const kHomeworkDetailModelStartTime = @"startTime";
+NSString *const kHomeworkDetailModelClassDate = @"classDate";
+NSString *const kHomeworkDetailModelTeacherAvatar = @"teacherAvatar";
+NSString *const kHomeworkDetailModelReviewHomework = @"reviewHomework";
+NSString *const kHomeworkDetailModelStudentId = @"studentId";
+
+@interface HomeworkDetailModel ()
+
+- (id)objectOrNilForKey:(id)aKey fromDictionary:(NSDictionary *)dict;
+
+@end
+
+@implementation HomeworkDetailModel
+
+@synthesize courseStatus = _courseStatus;
+@synthesize content = _content;
+@synthesize studentName = _studentName;
+@synthesize courseScheduleId = _courseScheduleId;
+@synthesize title = _title;
+@synthesize submitHomework = _submitHomework;
+@synthesize studentHomeworkId = _studentHomeworkId;
+@synthesize teacherName = _teacherName;
+@synthesize decorateTime = _decorateTime;
+@synthesize endTime = _endTime;
+@synthesize teacherReplied = _teacherReplied;
+@synthesize subjectName = _subjectName;
+@synthesize internalBaseClassIdentifier = _internalBaseClassIdentifier;
+@synthesize submitTime = _submitTime;
+@synthesize studentAttachments = _studentAttachments;
+@synthesize courseType = _courseType;
+@synthesize decorateHomework = _decorateHomework;
+@synthesize attachments = _attachments;
+@synthesize courseGroupId = _courseGroupId;
+@synthesize studentAvatar = _studentAvatar;
+@synthesize startTime = _startTime;
+@synthesize classDate = _classDate;
+@synthesize teacherAvatar = _teacherAvatar;
+@synthesize reviewHomework = _reviewHomework;
+@synthesize studentId = _studentId;
+
++ (instancetype)modelObjectWithDictionary:(NSDictionary *)dict
+{
+    return [[self alloc] initWithDictionary:dict];
+}
+
+- (instancetype)initWithDictionary:(NSDictionary *)dict
+{
+    self = [super init];
+    
+    // This check serves to make sure that a non-NSDictionary object
+    // passed into the model class doesn't break the parsing.
+    if(self && [dict isKindOfClass:[NSDictionary class]]) {
+            self.courseStatus = [self objectOrNilForKey:kHomeworkDetailModelCourseStatus fromDictionary:dict];
+            self.content = [self objectOrNilForKey:kHomeworkDetailModelContent fromDictionary:dict];
+            self.studentName = [self objectOrNilForKey:kHomeworkDetailModelStudentName fromDictionary:dict];
+            self.courseScheduleId = [self objectOrNilForKey:kHomeworkDetailModelCourseScheduleId fromDictionary:dict];
+            self.title = [self objectOrNilForKey:kHomeworkDetailModelTitle fromDictionary:dict];
+            self.submitHomework = [[self objectOrNilForKey:kHomeworkDetailModelSubmitHomework fromDictionary:dict] doubleValue];
+            self.studentHomeworkId = [[self objectOrNilForKey:kHomeworkDetailModelStudentHomeworkId fromDictionary:dict] doubleValue];
+            self.teacherName = [self objectOrNilForKey:kHomeworkDetailModelTeacherName fromDictionary:dict];
+            self.decorateTime = [self objectOrNilForKey:kHomeworkDetailModelDecorateTime fromDictionary:dict];
+            self.endTime = [self objectOrNilForKey:kHomeworkDetailModelEndTime fromDictionary:dict];
+            self.teacherReplied = [self objectOrNilForKey:kHomeworkDetailModelTeacherReplied fromDictionary:dict];
+            self.subjectName = [self objectOrNilForKey:kHomeworkDetailModelSubjectName fromDictionary:dict];
+            self.internalBaseClassIdentifier = [self objectOrNilForKey:kHomeworkDetailModelId fromDictionary:dict];
+            self.submitTime = [self objectOrNilForKey:kHomeworkDetailModelSubmitTime fromDictionary:dict];
+            self.studentAttachments = [self objectOrNilForKey:kHomeworkDetailModelStudentAttachments fromDictionary:dict];
+            self.courseType = [self objectOrNilForKey:kHomeworkDetailModelCourseType fromDictionary:dict];
+            self.decorateHomework = [[self objectOrNilForKey:kHomeworkDetailModelDecorateHomework fromDictionary:dict] doubleValue];
+            self.attachments = [self objectOrNilForKey:kHomeworkDetailModelAttachments fromDictionary:dict];
+            self.courseGroupId = [self objectOrNilForKey:kHomeworkDetailModelCourseGroupId fromDictionary:dict];
+            self.studentAvatar = [self objectOrNilForKey:kHomeworkDetailModelStudentAvatar fromDictionary:dict];
+            self.startTime = [self objectOrNilForKey:kHomeworkDetailModelStartTime fromDictionary:dict];
+            self.classDate = [self objectOrNilForKey:kHomeworkDetailModelClassDate fromDictionary:dict];
+            self.teacherAvatar = [self objectOrNilForKey:kHomeworkDetailModelTeacherAvatar fromDictionary:dict];
+            self.reviewHomework = [[self objectOrNilForKey:kHomeworkDetailModelReviewHomework fromDictionary:dict] doubleValue];
+        self.studentId = [self objectOrNilForKey:kHomeworkDetailModelStudentId fromDictionary:dict];
+    }
+    
+    return self;
+    
+}
+
+- (NSDictionary *)dictionaryRepresentation
+{
+    NSMutableDictionary *mutableDict = [NSMutableDictionary dictionary];
+    [mutableDict setValue:self.courseStatus forKey:kHomeworkDetailModelCourseStatus];
+    [mutableDict setValue:self.content forKey:kHomeworkDetailModelContent];
+    [mutableDict setValue:self.studentName forKey:kHomeworkDetailModelStudentName];
+    [mutableDict setValue:self.courseScheduleId forKey:kHomeworkDetailModelCourseScheduleId];
+    [mutableDict setValue:self.title forKey:kHomeworkDetailModelTitle];
+    [mutableDict setValue:[NSNumber numberWithDouble:self.submitHomework] forKey:kHomeworkDetailModelSubmitHomework];
+    [mutableDict setValue:[NSNumber numberWithDouble:self.studentHomeworkId] forKey:kHomeworkDetailModelStudentHomeworkId];
+    [mutableDict setValue:self.teacherName forKey:kHomeworkDetailModelTeacherName];
+    [mutableDict setValue:self.decorateTime forKey:kHomeworkDetailModelDecorateTime];
+    [mutableDict setValue:self.endTime forKey:kHomeworkDetailModelEndTime];
+    [mutableDict setValue:self.teacherReplied forKey:kHomeworkDetailModelTeacherReplied];
+    [mutableDict setValue:self.subjectName forKey:kHomeworkDetailModelSubjectName];
+    [mutableDict setValue:self.internalBaseClassIdentifier forKey:kHomeworkDetailModelId];
+    [mutableDict setValue:self.submitTime forKey:kHomeworkDetailModelSubmitTime];
+    [mutableDict setValue:self.studentAttachments forKey:kHomeworkDetailModelStudentAttachments];
+    [mutableDict setValue:self.courseType forKey:kHomeworkDetailModelCourseType];
+    [mutableDict setValue:[NSNumber numberWithDouble:self.decorateHomework] forKey:kHomeworkDetailModelDecorateHomework];
+    [mutableDict setValue:self.attachments forKey:kHomeworkDetailModelAttachments];
+    [mutableDict setValue:self.courseGroupId forKey:kHomeworkDetailModelCourseGroupId];
+    [mutableDict setValue:self.studentAvatar forKey:kHomeworkDetailModelStudentAvatar];
+    [mutableDict setValue:self.startTime forKey:kHomeworkDetailModelStartTime];
+    [mutableDict setValue:self.classDate forKey:kHomeworkDetailModelClassDate];
+    [mutableDict setValue:self.teacherAvatar forKey:kHomeworkDetailModelTeacherAvatar];
+    [mutableDict setValue:[NSNumber numberWithDouble:self.reviewHomework] forKey:kHomeworkDetailModelReviewHomework];
+    [mutableDict setValue:self.studentId forKey:kHomeworkDetailModelStudentId];
+    return [NSDictionary dictionaryWithDictionary:mutableDict];
+}
+
+- (NSString *)description 
+{
+    return [NSString stringWithFormat:@"%@", [self dictionaryRepresentation]];
+}
+
+#pragma mark - Helper Method
+- (id)objectOrNilForKey:(id)aKey fromDictionary:(NSDictionary *)dict
+{
+    id object = [dict objectForKey:aKey];
+    if ([object isKindOfClass:[NSNumber class]]) {
+        NSNumber *number = object;
+        object = [number stringValue];
+    }
+    return [object isEqual:[NSNull null]] ? nil : object;
+}
+
+
+#pragma mark - NSCoding Methods
+
+- (id)initWithCoder:(NSCoder *)aDecoder
+{
+    self = [super init];
+
+    self.courseStatus = [aDecoder decodeObjectForKey:kHomeworkDetailModelCourseStatus];
+    self.content = [aDecoder decodeObjectForKey:kHomeworkDetailModelContent];
+    self.studentName = [aDecoder decodeObjectForKey:kHomeworkDetailModelStudentName];
+    self.courseScheduleId = [aDecoder decodeObjectForKey:kHomeworkDetailModelCourseScheduleId];
+    self.title = [aDecoder decodeObjectForKey:kHomeworkDetailModelTitle];
+    self.submitHomework = [aDecoder decodeDoubleForKey:kHomeworkDetailModelSubmitHomework];
+    self.studentHomeworkId = [aDecoder decodeDoubleForKey:kHomeworkDetailModelStudentHomeworkId];
+    self.teacherName = [aDecoder decodeObjectForKey:kHomeworkDetailModelTeacherName];
+    self.decorateTime = [aDecoder decodeObjectForKey:kHomeworkDetailModelDecorateTime];
+    self.endTime = [aDecoder decodeObjectForKey:kHomeworkDetailModelEndTime];
+    self.teacherReplied = [aDecoder decodeObjectForKey:kHomeworkDetailModelTeacherReplied];
+    self.subjectName = [aDecoder decodeObjectForKey:kHomeworkDetailModelSubjectName];
+    self.internalBaseClassIdentifier = [aDecoder decodeObjectForKey:kHomeworkDetailModelId];
+    self.submitTime = [aDecoder decodeObjectForKey:kHomeworkDetailModelSubmitTime];
+    self.studentAttachments = [aDecoder decodeObjectForKey:kHomeworkDetailModelStudentAttachments];
+    self.courseType = [aDecoder decodeObjectForKey:kHomeworkDetailModelCourseType];
+    self.decorateHomework = [aDecoder decodeDoubleForKey:kHomeworkDetailModelDecorateHomework];
+    self.attachments = [aDecoder decodeObjectForKey:kHomeworkDetailModelAttachments];
+    self.courseGroupId = [aDecoder decodeObjectForKey:kHomeworkDetailModelCourseGroupId];
+    self.studentAvatar = [aDecoder decodeObjectForKey:kHomeworkDetailModelStudentAvatar];
+    self.startTime = [aDecoder decodeObjectForKey:kHomeworkDetailModelStartTime];
+    self.classDate = [aDecoder decodeObjectForKey:kHomeworkDetailModelClassDate];
+    self.teacherAvatar = [aDecoder decodeObjectForKey:kHomeworkDetailModelTeacherAvatar];
+    self.reviewHomework = [aDecoder decodeDoubleForKey:kHomeworkDetailModelReviewHomework];
+    self.studentId = [aDecoder decodeObjectForKey:kHomeworkDetailModelStudentId];
+    return self;
+}
+
+- (void)encodeWithCoder:(NSCoder *)aCoder
+{
+
+    [aCoder encodeObject:_courseStatus forKey:kHomeworkDetailModelCourseStatus];
+    [aCoder encodeObject:_content forKey:kHomeworkDetailModelContent];
+    [aCoder encodeObject:_studentName forKey:kHomeworkDetailModelStudentName];
+    [aCoder encodeObject:_courseScheduleId forKey:kHomeworkDetailModelCourseScheduleId];
+    [aCoder encodeObject:_title forKey:kHomeworkDetailModelTitle];
+    [aCoder encodeDouble:_submitHomework forKey:kHomeworkDetailModelSubmitHomework];
+    [aCoder encodeDouble:_studentHomeworkId forKey:kHomeworkDetailModelStudentHomeworkId];
+    [aCoder encodeObject:_teacherName forKey:kHomeworkDetailModelTeacherName];
+    [aCoder encodeObject:_decorateTime forKey:kHomeworkDetailModelDecorateTime];
+    [aCoder encodeObject:_endTime forKey:kHomeworkDetailModelEndTime];
+    [aCoder encodeObject:_teacherReplied forKey:kHomeworkDetailModelTeacherReplied];
+    [aCoder encodeObject:_subjectName forKey:kHomeworkDetailModelSubjectName];
+    [aCoder encodeObject:_internalBaseClassIdentifier forKey:kHomeworkDetailModelId];
+    [aCoder encodeObject:_submitTime forKey:kHomeworkDetailModelSubmitTime];
+    [aCoder encodeObject:_studentAttachments forKey:kHomeworkDetailModelStudentAttachments];
+    [aCoder encodeObject:_courseType forKey:kHomeworkDetailModelCourseType];
+    [aCoder encodeDouble:_decorateHomework forKey:kHomeworkDetailModelDecorateHomework];
+    [aCoder encodeObject:_attachments forKey:kHomeworkDetailModelAttachments];
+    [aCoder encodeObject:_courseGroupId forKey:kHomeworkDetailModelCourseGroupId];
+    [aCoder encodeObject:_studentAvatar forKey:kHomeworkDetailModelStudentAvatar];
+    [aCoder encodeObject:_startTime forKey:kHomeworkDetailModelStartTime];
+    [aCoder encodeObject:_classDate forKey:kHomeworkDetailModelClassDate];
+    [aCoder encodeObject:_teacherAvatar forKey:kHomeworkDetailModelTeacherAvatar];
+    [aCoder encodeDouble:_reviewHomework forKey:kHomeworkDetailModelReviewHomework];
+    [aCoder encodeObject:_studentId forKey:kHomeworkDetailModelStudentId];
+}
+
+- (id)copyWithZone:(NSZone *)zone
+{
+    HomeworkDetailModel *copy = [[HomeworkDetailModel alloc] init];
+    
+    if (copy) {
+
+        copy.courseStatus = [self.courseStatus copyWithZone:zone];
+        copy.content = [self.content copyWithZone:zone];
+        copy.studentName = [self.studentName copyWithZone:zone];
+        copy.courseScheduleId = [self.courseScheduleId copyWithZone:zone];
+        copy.title = [self.title copyWithZone:zone];
+        copy.submitHomework = self.submitHomework;
+        copy.studentHomeworkId = self.studentHomeworkId;
+        copy.teacherName = [self.teacherName copyWithZone:zone];
+        copy.decorateTime = [self.decorateTime copyWithZone:zone];
+        copy.endTime = [self.endTime copyWithZone:zone];
+        copy.teacherReplied = [self.teacherReplied copyWithZone:zone];
+        copy.subjectName = [self.subjectName copyWithZone:zone];
+        copy.internalBaseClassIdentifier = [self.internalBaseClassIdentifier copyWithZone:zone];
+        copy.submitTime = [self.submitTime copyWithZone:zone];
+        copy.studentAttachments = [self.studentAttachments copyWithZone:zone];
+        copy.courseType = [self.courseType copyWithZone:zone];
+        copy.decorateHomework = self.decorateHomework;
+        copy.attachments = [self.attachments copyWithZone:zone];
+        copy.courseGroupId = [self.courseGroupId copyWithZone:zone];
+        copy.studentAvatar = [self.studentAvatar copyWithZone:zone];
+        copy.startTime = [self.startTime copyWithZone:zone];
+        copy.classDate = [self.classDate copyWithZone:zone];
+        copy.teacherAvatar = [self.teacherAvatar copyWithZone:zone];
+        copy.reviewHomework = self.reviewHomework;
+        copy.studentId = [self.studentId copyWithZone:zone];
+    }
+    
+    return copy;
+}
+
+
+@end

+ 33 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Home/Homework/Model/HomeworkListModel.h

@@ -0,0 +1,33 @@
+//
+//  HomeworkListModel.h
+//
+//  Created by Steven  on 2022/4/18
+//  Copyright (c) 2022 __MyCompanyName__. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+
+
+@interface HomeworkListModel : NSObject <NSCoding, NSCopying>
+
+@property (nonatomic, strong) NSString *courseGroupId;
+@property (nonatomic, strong) NSString *classDate;
+@property (nonatomic, strong) NSString *teacherAvatar;
+@property (nonatomic, strong) NSString *decorateTime;
+@property (nonatomic, assign) double absenteeism;
+@property (nonatomic, strong) NSString *courseId;
+@property (nonatomic, strong) NSString *teacherName;
+@property (nonatomic, strong) NSString *studentId;
+@property (nonatomic, strong) NSString *studentName;
+@property (nonatomic, strong) NSString *subjectName;
+@property (nonatomic, strong) NSString *endTime;
+@property (nonatomic, strong) NSString *studentAvatar;
+@property (nonatomic, strong) NSString *submitTime;
+@property (nonatomic, strong) NSString *startTime;
+
++ (instancetype)modelObjectWithDictionary:(NSDictionary *)dict;
+- (instancetype)initWithDictionary:(NSDictionary *)dict;
+- (NSDictionary *)dictionaryRepresentation;
+
+@end

+ 186 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Home/Homework/Model/HomeworkListModel.m

@@ -0,0 +1,186 @@
+//
+//  HomeworkListModel.m
+//
+//  Created by Steven  on 2022/4/18
+//  Copyright (c) 2022 __MyCompanyName__. All rights reserved.
+//
+
+#import "HomeworkListModel.h"
+
+
+NSString *const kHomeworkListModelCourseGroupId = @"courseGroupId";
+NSString *const kHomeworkListModelClassDate = @"classDate";
+NSString *const kHomeworkListModelTeacherAvatar = @"teacherAvatar";
+NSString *const kHomeworkListModelDecorateTime = @"decorateTime";
+NSString *const kHomeworkListModelAbsenteeism = @"absenteeism";
+NSString *const kHomeworkListModelCourseId = @"courseId";
+NSString *const kHomeworkListModelTeacherName = @"teacherName";
+NSString *const kHomeworkListModelStudentName = @"studentName";
+NSString *const kHomeworkListModelSubjectName = @"subjectName";
+NSString *const kHomeworkListModelEndTime = @"endTime";
+NSString *const kHomeworkListModelStudentAvatar = @"studentAvatar";
+NSString *const kHomeworkListModelSubmitTime = @"submitTime";
+NSString *const kHomeworkListModelStartTime = @"startTime";
+NSString *const kHomeworkListModelStudentId = @"studentId";
+
+@interface HomeworkListModel ()
+
+- (id)objectOrNilForKey:(id)aKey fromDictionary:(NSDictionary *)dict;
+
+@end
+
+@implementation HomeworkListModel
+
+@synthesize courseGroupId = _courseGroupId;
+@synthesize classDate = _classDate;
+@synthesize teacherAvatar = _teacherAvatar;
+@synthesize decorateTime = _decorateTime;
+@synthesize absenteeism = _absenteeism;
+@synthesize courseId = _courseId;
+@synthesize teacherName = _teacherName;
+@synthesize studentName = _studentName;
+@synthesize subjectName = _subjectName;
+@synthesize endTime = _endTime;
+@synthesize studentAvatar = _studentAvatar;
+@synthesize submitTime = _submitTime;
+@synthesize startTime = _startTime;
+@synthesize studentId = _studentId;
+
++ (instancetype)modelObjectWithDictionary:(NSDictionary *)dict
+{
+    return [[self alloc] initWithDictionary:dict];
+}
+
+- (instancetype)initWithDictionary:(NSDictionary *)dict
+{
+    self = [super init];
+    
+    // This check serves to make sure that a non-NSDictionary object
+    // passed into the model class doesn't break the parsing.
+    if(self && [dict isKindOfClass:[NSDictionary class]]) {
+            self.courseGroupId = [self objectOrNilForKey:kHomeworkListModelCourseGroupId fromDictionary:dict];
+            self.classDate = [self objectOrNilForKey:kHomeworkListModelClassDate fromDictionary:dict];
+            self.teacherAvatar = [self objectOrNilForKey:kHomeworkListModelTeacherAvatar fromDictionary:dict];
+            self.decorateTime = [self objectOrNilForKey:kHomeworkListModelDecorateTime fromDictionary:dict];
+            self.absenteeism = [[self objectOrNilForKey:kHomeworkListModelAbsenteeism fromDictionary:dict] doubleValue];
+            self.courseId = [self objectOrNilForKey:kHomeworkListModelCourseId fromDictionary:dict];
+            self.teacherName = [self objectOrNilForKey:kHomeworkListModelTeacherName fromDictionary:dict];
+            self.studentName = [self objectOrNilForKey:kHomeworkListModelStudentName fromDictionary:dict];
+            self.subjectName = [self objectOrNilForKey:kHomeworkListModelSubjectName fromDictionary:dict];
+            self.endTime = [self objectOrNilForKey:kHomeworkListModelEndTime fromDictionary:dict];
+            self.studentAvatar = [self objectOrNilForKey:kHomeworkListModelStudentAvatar fromDictionary:dict];
+            self.submitTime = [self objectOrNilForKey:kHomeworkListModelSubmitTime fromDictionary:dict];
+            self.startTime = [self objectOrNilForKey:kHomeworkListModelStartTime fromDictionary:dict];
+            self.studentId = [self objectOrNilForKey:kHomeworkListModelStudentId fromDictionary:dict];
+    }
+    
+    return self;
+    
+}
+
+- (NSDictionary *)dictionaryRepresentation
+{
+    NSMutableDictionary *mutableDict = [NSMutableDictionary dictionary];
+    [mutableDict setValue:self.courseGroupId forKey:kHomeworkListModelCourseGroupId];
+    [mutableDict setValue:self.classDate forKey:kHomeworkListModelClassDate];
+    [mutableDict setValue:self.teacherAvatar forKey:kHomeworkListModelTeacherAvatar];
+    [mutableDict setValue:self.decorateTime forKey:kHomeworkListModelDecorateTime];
+    [mutableDict setValue:[NSNumber numberWithDouble:self.absenteeism] forKey:kHomeworkListModelAbsenteeism];
+    [mutableDict setValue:self.courseId forKey:kHomeworkListModelCourseId];
+    [mutableDict setValue:self.teacherName forKey:kHomeworkListModelTeacherName];
+    [mutableDict setValue:self.studentName forKey:kHomeworkListModelStudentName];
+    [mutableDict setValue:self.subjectName forKey:kHomeworkListModelSubjectName];
+    [mutableDict setValue:self.endTime forKey:kHomeworkListModelEndTime];
+    [mutableDict setValue:self.studentAvatar forKey:kHomeworkListModelStudentAvatar];
+    [mutableDict setValue:self.submitTime forKey:kHomeworkListModelSubmitTime];
+    [mutableDict setValue:self.startTime forKey:kHomeworkListModelStartTime];
+    [mutableDict setValue:self.studentId forKey:kHomeworkListModelStudentId];
+    return [NSDictionary dictionaryWithDictionary:mutableDict];
+}
+
+- (NSString *)description 
+{
+    return [NSString stringWithFormat:@"%@", [self dictionaryRepresentation]];
+}
+
+#pragma mark - Helper Method
+- (id)objectOrNilForKey:(id)aKey fromDictionary:(NSDictionary *)dict
+{
+    id object = [dict objectForKey:aKey];
+    if ([object isKindOfClass:[NSNumber class]]) {
+        NSNumber *number = object;
+        object = [number stringValue];
+    }
+    return [object isEqual:[NSNull null]] ? nil : object;
+}
+
+
+#pragma mark - NSCoding Methods
+
+- (id)initWithCoder:(NSCoder *)aDecoder
+{
+    self = [super init];
+
+    self.courseGroupId = [aDecoder decodeObjectForKey:kHomeworkListModelCourseGroupId];
+    self.classDate = [aDecoder decodeObjectForKey:kHomeworkListModelClassDate];
+    self.teacherAvatar = [aDecoder decodeObjectForKey:kHomeworkListModelTeacherAvatar];
+    self.decorateTime = [aDecoder decodeObjectForKey:kHomeworkListModelDecorateTime];
+    self.absenteeism = [aDecoder decodeDoubleForKey:kHomeworkListModelAbsenteeism];
+    self.courseId = [aDecoder decodeObjectForKey:kHomeworkListModelCourseId];
+    self.teacherName = [aDecoder decodeObjectForKey:kHomeworkListModelTeacherName];
+    self.studentName = [aDecoder decodeObjectForKey:kHomeworkListModelStudentName];
+    self.subjectName = [aDecoder decodeObjectForKey:kHomeworkListModelSubjectName];
+    self.endTime = [aDecoder decodeObjectForKey:kHomeworkListModelEndTime];
+    self.studentAvatar = [aDecoder decodeObjectForKey:kHomeworkListModelStudentAvatar];
+    self.submitTime = [aDecoder decodeObjectForKey:kHomeworkListModelSubmitTime];
+    self.startTime = [aDecoder decodeObjectForKey:kHomeworkListModelStartTime];
+    self.studentId = [aDecoder decodeObjectForKey:kHomeworkListModelStudentId];
+    return self;
+}
+
+- (void)encodeWithCoder:(NSCoder *)aCoder
+{
+
+    [aCoder encodeObject:_courseGroupId forKey:kHomeworkListModelCourseGroupId];
+    [aCoder encodeObject:_classDate forKey:kHomeworkListModelClassDate];
+    [aCoder encodeObject:_teacherAvatar forKey:kHomeworkListModelTeacherAvatar];
+    [aCoder encodeObject:_decorateTime forKey:kHomeworkListModelDecorateTime];
+    [aCoder encodeDouble:_absenteeism forKey:kHomeworkListModelAbsenteeism];
+    [aCoder encodeObject:_courseId forKey:kHomeworkListModelCourseId];
+    [aCoder encodeObject:_teacherName forKey:kHomeworkListModelTeacherName];
+    [aCoder encodeObject:_studentName forKey:kHomeworkListModelStudentName];
+    [aCoder encodeObject:_subjectName forKey:kHomeworkListModelSubjectName];
+    [aCoder encodeObject:_endTime forKey:kHomeworkListModelEndTime];
+    [aCoder encodeObject:_studentAvatar forKey:kHomeworkListModelStudentAvatar];
+    [aCoder encodeObject:_submitTime forKey:kHomeworkListModelSubmitTime];
+    [aCoder encodeObject:_startTime forKey:kHomeworkListModelStartTime];
+    [aCoder encodeObject:_studentId forKey:kHomeworkListModelStudentId];
+}
+
+- (id)copyWithZone:(NSZone *)zone
+{
+    HomeworkListModel *copy = [[HomeworkListModel alloc] init];
+    
+    if (copy) {
+
+        copy.courseGroupId = [self.courseGroupId copyWithZone:zone];
+        copy.classDate = [self.classDate copyWithZone:zone];
+        copy.teacherAvatar = [self.teacherAvatar copyWithZone:zone];
+        copy.decorateTime = [self.decorateTime copyWithZone:zone];
+        copy.absenteeism = self.absenteeism;
+        copy.courseId = [self.courseId copyWithZone:zone];
+        copy.teacherName = [self.teacherName copyWithZone:zone];
+        copy.studentName = [self.studentName copyWithZone:zone];
+        copy.subjectName = [self.subjectName copyWithZone:zone];
+        copy.endTime = [self.endTime copyWithZone:zone];
+        copy.studentAvatar = [self.studentAvatar copyWithZone:zone];
+        copy.submitTime = [self.submitTime copyWithZone:zone];
+        copy.startTime = [self.startTime copyWithZone:zone];
+        copy.studentId = [self.studentId copyWithZone:zone];
+    }
+    
+    return copy;
+}
+
+
+@end

+ 35 - 3
KulexiuForTeacher/KulexiuForTeacher/Module/Home/Homework/View/HomeworkBodyView.m

@@ -11,6 +11,7 @@
 #import "HomeworkSortView.h"
 #import "KSFullDatePicker.h"
 #import "HomeworkDetailViewController.h"
+#import "HomeworkListModel.h"
 
 @interface HomeworkBodyView ()<UITableViewDelegate,UITableViewDataSource>
 
@@ -105,7 +106,35 @@
     [self.tableView reloadData];
 }
 - (void)requestData {
-    [self endRefresh];
+    NSInteger decorate = self.selectIndex == 0 ? 0 : 1;
+    [KSNetworkingManager homeworkListRequest:KS_POST date:self.chooseDate decorate:decorate page:self.pages rows:self.rows success:^(NSDictionary * _Nonnull dic) {
+        [self endRefresh];
+        if ([dic integerValueForKey:@"code"] == 200 && [dic boolValueForKey:@"status"]) {
+            NSArray *sourceArray = [[dic dictionaryValueForKey:@"data"] arrayValueForKey:@"rows"];
+            for (NSDictionary *parm in sourceArray) {
+                HomeworkListModel *model = [[HomeworkListModel alloc] initWithDictionary:parm];
+                [self.dataArray addObject:model];
+            }
+            
+            if (sourceArray.count < self.rows) {
+                self.isLoadMore = NO;
+            }
+        }
+        else {
+            [self MBPShow:MESSAGEKEY];
+        }
+        [self.tableView reloadData];
+        [self changePromptLabelStateWithArray:self.dataArray];
+    } faliure:^(NSError * _Nonnull error) {
+        [self endRefresh];
+        if (self.networkAvaiable == NO) {
+            [self setPromptString:@"暂无网络" imageName:@"no_networking" inView:self.tableView];
+        }
+        [self.dataArray removeAllObjects];
+        [self.tableView reloadData];
+        [self changePromptLabelStateWithArray:self.dataArray];
+    }];
+    
 }
 
 - (void)beginRefreshImmediately {
@@ -147,12 +176,13 @@
 
 #pragma mark - UITableViewDataSource
 - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
-//    return self.dataArray.count;
-    return 10;
+    return self.dataArray.count;
 }
 
 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
+    HomeworkListModel *model = self.dataArray[indexPath.row];
     HomeworkListCell *cell = [tableView dequeueReusableCellWithIdentifier:@"HomeworkListCell"];
+    [cell configWithSource:model];
     MJWeakSelf;
     [cell chatWithStudent:^(NSString * _Nonnull userId, NSString * _Nonnull userName) {
         [weakSelf chatStudent:userId name:userName];
@@ -170,7 +200,9 @@
 
 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
     // 进入作业详情
+    HomeworkListModel *model = self.dataArray[indexPath.row];
     HomeworkDetailViewController *detailVC = [[HomeworkDetailViewController alloc] init];
+    detailVC.courseId = model.courseId;
     [self.naviController pushViewController:detailVC animated:YES];
 }
 

+ 3 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Home/Homework/View/HomeworkListCell.h

@@ -6,6 +6,7 @@
 //
 
 #import <UIKit/UIKit.h>
+#import "HomeworkListModel.h"
 
 typedef void(^HomeworkChatCallback)(NSString * _Nonnull userId, NSString * _Nonnull userName);
 
@@ -13,6 +14,8 @@ NS_ASSUME_NONNULL_BEGIN
 
 @interface HomeworkListCell : UITableViewCell
 
+- (void)configWithSource:(HomeworkListModel *)sourceModel;
+
 - (void)chatWithStudent:(HomeworkChatCallback)callback;
 
 @end

+ 20 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Home/Homework/View/HomeworkListCell.m

@@ -35,6 +35,26 @@
     self.selectionStyle = UITableViewCellSelectionStyleNone;
 }
 
+- (void)configWithSource:(HomeworkListModel *)sourceModel {
+    // time
+    NSDateFormatter *formatter = [NSObject getDateformatter];
+    [formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
+    NSDate *startDate = [formatter dateFromString:sourceModel.startTime];
+    NSDate *endDate = [formatter dateFromString:sourceModel.endTime];
+    [formatter setDateFormat:@"yyyy/MM/dd HH:mm"];
+    NSString *lessonBegin = [formatter stringFromDate:startDate];
+    [formatter setDateFormat:@"HH:mm"];
+    NSString *lessonEnd = [formatter stringFromDate:endDate];
+    self.courseTime.text = [NSString stringWithFormat:@"%@~%@",[NSString returnNoNullStringWithString:lessonBegin],[NSString returnNoNullStringWithString:lessonEnd]];
+    
+    self.studentNameLabel.text = [NSString returnNoNullStringWithString:sourceModel.studentName];
+    [self.studentAvatal sd_setImageWithURL:[NSURL URLWithString:sourceModel.studentAvatar] placeholderImage:[UIImage imageNamed:USERDEFAULT_LOGO]];
+    self.subjectLabel.text = [NSString returnNoNullStringWithString:sourceModel.subjectName];
+
+    self.userId = sourceModel.studentId;
+    self.userName = sourceModel.studentName;
+}
+
 - (void)chatWithStudent:(HomeworkChatCallback)callback {
     if (callback) {
         self.callback = callback;

+ 23 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Home/Homework/View/HomeworkVideoView.h

@@ -0,0 +1,23 @@
+//
+//  HomeworkVideoView.h
+//  KulexiuForTeacher
+//
+//  Created by 王智 on 2022/4/18.
+//
+
+#import <UIKit/UIKit.h>
+@class HomeworkVideoView;
+
+NS_ASSUME_NONNULL_BEGIN
+
+typedef void(^VideoViewCallback)(NSInteger viewIndex);
+
+@interface HomeworkVideoView : UIView
+
++ (instancetype)shareInstance;
+
+- (void)displayVideoUrl:(NSString *)videoUrl callback:(VideoViewCallback)callback;
+
+@end
+
+NS_ASSUME_NONNULL_END

+ 48 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Home/Homework/View/HomeworkVideoView.m

@@ -0,0 +1,48 @@
+//
+//  HomeworkVideoView.m
+//  KulexiuForTeacher
+//
+//  Created by 王智 on 2022/4/18.
+//
+
+#import "HomeworkVideoView.h"
+#import "KSVideoHelper.h"
+
+@interface HomeworkVideoView ()
+
+@property (weak, nonatomic) IBOutlet UIImageView *videoImage;
+
+@property (nonatomic, copy) VideoViewCallback callback;
+
+@end
+
+@implementation HomeworkVideoView
+
++ (instancetype)shareInstance {
+    HomeworkVideoView *view = [[[NSBundle mainBundle] loadNibNamed:@"HomeworkVideoView" owner:nil options:nil] firstObject];
+    return view;
+}
+
+- (void)displayVideoUrl:(NSString *)videoUrl callback:(VideoViewCallback)callback {
+    if (callback) {
+        self.callback = callback;
+    }
+    [KSVideoHelper getVideoPreviewImageUrl:videoUrl forImageView:self.videoImage placeholder:[UIImage imageNamed:@"video_placeholder"]];
+}
+
+
+- (IBAction)playButtonAction:(id)sender {
+    if (self.callback) {
+        self.callback(self.tag-1000);
+    }
+}
+
+/*
+// Only override drawRect: if you perform custom drawing.
+// An empty implementation adversely affects performance during animation.
+- (void)drawRect:(CGRect)rect {
+    // Drawing code
+}
+*/
+
+@end

+ 72 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Home/Homework/View/HomeworkVideoView.xib

@@ -0,0 +1,72 @@
+<?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">
+    <device id="retina6_1" orientation="portrait" appearance="light"/>
+    <dependencies>
+        <deployment identifier="iOS"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="20020"/>
+        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
+    </dependencies>
+    <objects>
+        <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
+        <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
+        <view contentMode="scaleToFill" id="iN0-l3-epB" customClass="HomeworkVideoView">
+            <rect key="frame" x="0.0" y="0.0" width="269" height="144"/>
+            <autoresizingMask key="autoresizingMask"/>
+            <subviews>
+                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="rO5-WR-JIz">
+                    <rect key="frame" x="0.0" y="0.0" width="269" height="144"/>
+                    <subviews>
+                        <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="video_placeholder" translatesAutoresizingMaskIntoConstraints="NO" id="gHr-CE-99d">
+                            <rect key="frame" x="0.0" y="0.0" width="269" height="144"/>
+                            <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                        </imageView>
+                        <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="PPM-pp-KPh">
+                            <rect key="frame" x="112.5" y="50" width="44" height="44"/>
+                            <constraints>
+                                <constraint firstAttribute="width" constant="44" id="34f-sk-BQa"/>
+                                <constraint firstAttribute="height" constant="44" id="Yfs-VJ-ptv"/>
+                            </constraints>
+                            <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
+                            <state key="normal" image="playVideo_image"/>
+                            <connections>
+                                <action selector="playButtonAction:" destination="iN0-l3-epB" eventType="touchUpInside" id="AB0-aS-CaM"/>
+                            </connections>
+                        </button>
+                    </subviews>
+                    <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                    <constraints>
+                        <constraint firstItem="PPM-pp-KPh" firstAttribute="centerX" secondItem="rO5-WR-JIz" secondAttribute="centerX" id="JHL-B3-1f2"/>
+                        <constraint firstAttribute="trailing" secondItem="gHr-CE-99d" secondAttribute="trailing" id="JWt-TI-hBz"/>
+                        <constraint firstItem="gHr-CE-99d" firstAttribute="top" secondItem="rO5-WR-JIz" secondAttribute="top" id="KnA-ig-rMW"/>
+                        <constraint firstAttribute="bottom" secondItem="gHr-CE-99d" secondAttribute="bottom" id="MSH-Fc-g7W"/>
+                        <constraint firstItem="PPM-pp-KPh" firstAttribute="centerY" secondItem="rO5-WR-JIz" secondAttribute="centerY" id="rV7-EE-BTr"/>
+                        <constraint firstItem="gHr-CE-99d" firstAttribute="leading" secondItem="rO5-WR-JIz" secondAttribute="leading" id="xN9-EC-NeB"/>
+                    </constraints>
+                    <userDefinedRuntimeAttributes>
+                        <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
+                            <real key="value" value="10"/>
+                        </userDefinedRuntimeAttribute>
+                    </userDefinedRuntimeAttributes>
+                </view>
+            </subviews>
+            <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+            <constraints>
+                <constraint firstAttribute="bottom" secondItem="rO5-WR-JIz" secondAttribute="bottom" id="e4v-r6-cOI"/>
+                <constraint firstItem="rO5-WR-JIz" firstAttribute="top" secondItem="iN0-l3-epB" secondAttribute="top" id="iHL-C1-ymd"/>
+                <constraint firstAttribute="trailing" secondItem="rO5-WR-JIz" secondAttribute="trailing" id="pPg-Wq-ZA1"/>
+                <constraint firstItem="rO5-WR-JIz" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" id="xK9-L4-zph"/>
+            </constraints>
+            <nil key="simulatedTopBarMetrics"/>
+            <nil key="simulatedBottomBarMetrics"/>
+            <freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
+            <connections>
+                <outlet property="videoImage" destination="gHr-CE-99d" id="RPL-3x-Poj"/>
+            </connections>
+            <point key="canvasLocation" x="236.95652173913047" y="-174.10714285714286"/>
+        </view>
+    </objects>
+    <resources>
+        <image name="playVideo_image" width="26" height="26"/>
+        <image name="video_placeholder" width="103" height="72"/>
+    </resources>
+</document>

+ 1 - 1
KulexiuForTeacher/KulexiuForTeacher/Module/Home/MyCourse/Controller/MyCourseViewController.m

@@ -153,13 +153,13 @@
         [self.listViewArray replaceObjectAtIndex:index withObject:listView];
         self.listViewArray[index] = listView;
         listView.selectIndex = index;
-        [listView beginFirstRefresh];
         if (self.teacherInfo) {
             listView.teaherAuth = [self.teacherInfo.entryStatus isEqualToString:@"PASS"] ? YES : NO;
         }
         else {
             listView.teaherAuth = YES;
         }
+        [listView beginFirstRefresh];
         return listView;
     }
     else {

+ 16 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Home/NotiferMessage/Controller/NotiferMessageViewController.h

@@ -0,0 +1,16 @@
+//
+//  NotiferMessageViewController.h
+//  KulexiuForTeacher
+//
+//  Created by 王智 on 2022/4/18.
+//
+
+#import "KSBaseViewController.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface NotiferMessageViewController : KSBaseViewController
+
+@end
+
+NS_ASSUME_NONNULL_END

+ 34 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Home/NotiferMessage/Controller/NotiferMessageViewController.m

@@ -0,0 +1,34 @@
+//
+//  NotiferMessageViewController.m
+//  KulexiuForTeacher
+//
+//  Created by 王智 on 2022/4/18.
+//
+
+#import "NotiferMessageViewController.h"
+
+@interface NotiferMessageViewController ()
+
+@end
+
+@implementation NotiferMessageViewController
+
+- (void)viewDidLoad {
+    [super viewDidLoad];
+    // Do any additional setup after loading the view.
+    [self allocTitle:@"消息盒子"];
+}
+
+
+
+/*
+#pragma mark - Navigation
+
+// In a storyboard-based application, you will often want to do a little preparation before navigation
+- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
+    // Get the new view controller using [segue destinationViewController].
+    // Pass the selected object to the new view controller.
+}
+*/
+
+@end

+ 16 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Home/NotiferMessage/Model/NotiferMessageModel.h

@@ -0,0 +1,16 @@
+//
+//  NotiferMessageModel.h
+//  KulexiuForTeacher
+//
+//  Created by 王智 on 2022/4/18.
+//
+
+#import <Foundation/Foundation.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface NotiferMessageModel : NSObject
+
+@end
+
+NS_ASSUME_NONNULL_END

+ 12 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Home/NotiferMessage/Model/NotiferMessageModel.m

@@ -0,0 +1,12 @@
+//
+//  NotiferMessageModel.m
+//  KulexiuForTeacher
+//
+//  Created by 王智 on 2022/4/18.
+//
+
+#import "NotiferMessageModel.h"
+
+@implementation NotiferMessageModel
+
+@end

+ 16 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Home/NotiferMessage/View/NotiferMessageCell.h

@@ -0,0 +1,16 @@
+//
+//  NotiferMessageCell.h
+//  KulexiuForTeacher
+//
+//  Created by 王智 on 2022/4/18.
+//
+
+#import <UIKit/UIKit.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface NotiferMessageCell : UITableViewCell
+
+@end
+
+NS_ASSUME_NONNULL_END

+ 26 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Home/NotiferMessage/View/NotiferMessageCell.m

@@ -0,0 +1,26 @@
+//
+//  NotiferMessageCell.m
+//  KulexiuForTeacher
+//
+//  Created by 王智 on 2022/4/18.
+//
+
+#import "NotiferMessageCell.h"
+
+@implementation NotiferMessageCell
+
+- (void)awakeFromNib {
+    [super awakeFromNib];
+    // Initialization code
+    self.selectionStyle = UITableViewCellSelectionStyleNone;
+}
+
+
+
+- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
+    [super setSelected:selected animated:animated];
+
+    // Configure the view for the selected state
+}
+
+@end

+ 21 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Home/NotiferMessage/View/NotiferMessageCell.xib

@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="13142" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
+    <dependencies>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="12042"/>
+        <capability name="Safe area layout guides" minToolsVersion="9.0"/>
+        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
+    </dependencies>
+    <objects>
+        <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="NotiferMessageCell">
+            <rect key="frame" x="0.0" y="0.0" width="320" height="44"/>
+            <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="320" height="43"/>
+                <autoresizingMask key="autoresizingMask"/>
+            </tableViewCellContentView>
+            <viewLayoutGuide key="safeArea" id="aW0-zy-SZf"/>
+        </tableViewCell>
+    </objects>
+</document>

+ 1 - 2
KulexiuForTeacher/KulexiuForTeacher/Module/Live/Controller/LiveVideoRoomViewController.m

@@ -1110,9 +1110,8 @@
 }
 
 - (NSInteger)getCloseTime {
-    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
+    NSDateFormatter *formatter = [NSObject getDateformatter];
     [formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
-    formatter.timeZone = [NSTimeZone systemTimeZone];
     NSDate *currentDate = [NSDate date];
     NSDate *expireDate = [formatter dateFromString:self.liveEndTime];
     NSTimeInterval timeInterval = [expireDate timeIntervalSinceDate:currentDate];

+ 41 - 1
KulexiuForTeacher/KulexiuForTeacher/Module/Mine/LiveCourse/Controller/MyLiveCourseViewController.m

@@ -10,6 +10,8 @@
 #import "JXCategoryView.h"
 #import "JXPagerListRefreshView.h"
 #import "MyLiveCourseBodyView.h"
+#import "TeacherInfo.h"
+#import "UserInfoManager.h"
 
 #define HEADER_HEIGHT (64)
 
@@ -19,6 +21,8 @@
 
 @property (nonatomic, strong) NSMutableArray *listViewArray;
 
+@property (nonatomic, strong) TeacherInfo *teacherInfo;
+
 @end
 
 @implementation MyLiveCourseViewController
@@ -31,6 +35,7 @@
     [self configUI];
 }
 
+
 - (void)configUI {
     [self rightButtonTitle:@"创建课程" color:HexRGB(0x000000)];
     [self.scrollView removeFromSuperview];
@@ -61,15 +66,44 @@
     [self.view addSubview:self.pagerView];
 }
 
+- (void)requestTeachMessage {
+    [KSNetworkingManager queryTeacherInfoRequest:KS_GET success:^(NSDictionary * _Nonnull dic) {
+        if ([dic integerValueForKey:@"code"] == 200 && [dic boolValueForKey:@"status"]) {
+            self.teacherInfo = [[TeacherInfo alloc] initWithDictionary:[dic dictionaryValueForKey:@"data"]];
+            NSString *rongToken = UserDefault(RongTokenKey);
+            if ([NSString isEmptyString:rongToken]) {
+                [USER_MANAGER queryUserInfoConnectRongCloud:YES];
+            }
+            [self refreshAuthStatus];
+        }
+        else {
+            [self MBPShow:MESSAGEKEY];
+        }
+    } faliure:^(NSError * _Nonnull error) {
+        
+    }];
+}
+
+- (void)refreshAuthStatus {
+    for (NSInteger index = 0; index < self.listViewArray.count; index++) {
+        id view = self.listViewArray[index];
+        if ([view isKindOfClass:[MyLiveCourseBodyView class]]) {
+            MyLiveCourseBodyView *listView = (MyLiveCourseBodyView *)view;
+            listView.teaherAuth = [self.teacherInfo.entryStatus isEqualToString:@"PASS"] ? YES : NO;
+        }
+    }
+}
+
 - (void)rightBtnClick {
     KSBaseWKWebViewController *webCtrl = [[KSBaseWKWebViewController alloc] init];
-    webCtrl.url = [NSString stringWithFormat:@"%@%@", WEBHOST, @"/#/videoCreate"];
+    webCtrl.url = [NSString stringWithFormat:@"%@%@", WEBHOST, @"/#/liveCreate"];
     [self.navigationController pushViewController:webCtrl animated:YES];
 }
 
 - (void)viewWillAppear:(BOOL)animated {
     [super viewWillAppear:animated];
     self.navigationController.interactivePopGestureRecognizer.enabled = YES;
+    [self requestTeachMessage];
     if (self.listViewArray.count > self.categoryView.selectedIndex) {
          id value = self.listViewArray[self.categoryView.selectedIndex];
         if ([value isKindOfClass:[MyLiveCourseBodyView class]]) {
@@ -117,6 +151,12 @@
     [self.listViewArray replaceObjectAtIndex:index withObject:listView];
     self.listViewArray[index] = listView;
     listView.selectIndex = index;
+    if (self.teacherInfo) {
+        listView.teaherAuth = [self.teacherInfo.entryStatus isEqualToString:@"PASS"] ? YES : NO;
+    }
+    else {
+        listView.teaherAuth = YES;
+    }
     [listView beginFirstRefresh];
     return listView;
 }

+ 2 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Mine/LiveCourse/View/MyLiveCourseBodyView.h

@@ -13,6 +13,8 @@ NS_ASSUME_NONNULL_BEGIN
 
 @interface MyLiveCourseBodyView : KSJXBodyView
 
+@property (nonatomic, assign) BOOL teaherAuth;
+
 @end
 
 NS_ASSUME_NONNULL_END

+ 73 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Mine/LiveCourse/View/MyLiveCourseBodyView.m

@@ -8,6 +8,8 @@
 #import "MyLiveCourseBodyView.h"
 #import "LiveCourseCell.h"
 #import "LiveCourseModel.h"
+#import "KSBaseWKWebViewController.h"
+#import "AuthDisplayView.h"
 
 @interface MyLiveCourseBodyView ()<UITableViewDelegate,UITableViewDataSource>
 
@@ -24,6 +26,8 @@
 
 @property (nonatomic, strong) NSString *groupStatus;
 
+@property (nonatomic, strong) AuthDisplayView *authView;
+
 @end
 
 @implementation MyLiveCourseBodyView
@@ -164,6 +168,12 @@
 - (void)layoutSubviews {
     [super layoutSubviews];
     self.tableView.frame = self.bounds;
+    if (self.teaherAuth == NO) {
+        [self showAuthView];
+    }
+    else {
+        [self hideAuthView];
+    }
 }
 
 #pragma mark - UITableViewDataSource
@@ -246,6 +256,69 @@
     return isExistenceNetwork;
 }
 
+#pragma mark ---- lazying
+- (NSMutableArray *)dataArray {
+    if (!_dataArray) {
+        _dataArray = [NSMutableArray array];
+    }
+    return _dataArray;
+}
+
+- (void)setTeaherAuth:(BOOL)teaherAuth {
+    _teaherAuth = teaherAuth;
+    if (teaherAuth == NO) {
+        [self showAuthView];
+    }
+    else {
+        [self hideAuthView];
+    }
+}
+
+- (void)showAuthView {
+    if ([self.subviews containsObject:self.authView]) {
+        [self bringSubviewToFront:self.authView];
+    }
+    else {
+        [self addSubview:self.authView];
+        [self.authView mas_makeConstraints:^(MASConstraintMaker *make) {
+            make.left.top.bottom.right.mas_equalTo(self);
+        }];
+    }
+}
+
+- (void)hideAuthView {
+    if ([self.subviews containsObject:self.authView]) {
+        [self.authView removeFromSuperview];
+        self.authView = nil;
+    }
+}
+
+- (AuthDisplayView *)authView {
+    if (!_authView) {
+        _authView = [AuthDisplayView shareInstance];
+        [_authView.imageView setImage:[UIImage imageNamed:[self getAuthDisplayImage]]];
+        [_authView configDisplayMessage:[self getAuthDisplayMessage]];
+        MJWeakSelf;
+        [_authView sureCallback:^{
+            [weakSelf authAction];
+        }];
+    }
+    return _authView;
+}
+
+- (NSString *)getAuthDisplayImage {
+    return @"authTeacher_accompany";
+}
+
+- (NSString *)getAuthDisplayMessage {
+    return @"您还没有完成老师认证,认证后才可创建视频课哦~";
+}
+
+- (void)authAction {
+    KSBaseWKWebViewController *webCtrl = [[KSBaseWKWebViewController alloc] init];
+    webCtrl.url = [NSString stringWithFormat:@"%@%@", WEBHOST, @"/#/teacherCert"];
+    [self.naviController pushViewController:webCtrl animated:YES];
+}
 /*
 // Only override drawRect: if you perform custom drawing.
 // An empty implementation adversely affects performance during animation.

+ 1 - 2
KulexiuForTeacher/KulexiuForTeacher/Module/Mine/MinePage/View/LiveCourseCell.m

@@ -46,8 +46,7 @@
     
     self.priceLabel.text = [NSString  stringWithFormat:@"¥%.0f/%.0f课时",model.coursePrice,model.courseNum];
     // time
-    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
-    formatter.timeZone = [NSTimeZone systemTimeZone];
+    NSDateFormatter *formatter = [NSObject getDateformatter];
     [formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
     NSDate *startDate = [formatter dateFromString:model.courseStartTime];
     [formatter setDateFormat:@"yyyy/MM/dd HH:mm"];

+ 3 - 1
KulexiuForTeacher/KulexiuForTeacher/Module/Mine/MinePage/View/MinePageCourseView.m

@@ -380,7 +380,9 @@
             break;
         case MINEPAGETYPE_LIVE:  // 直播课设置
         {
-            
+            KSBaseWKWebViewController *webCtrl = [[KSBaseWKWebViewController alloc] init];
+            webCtrl.url = [NSString stringWithFormat:@"%@%@", WEBHOST, @"/#/liveCreate"];
+            [self.naviController pushViewController:webCtrl animated:YES];
         }
             break;
         case MINEPAGETYPE_MUSIC:  // 上传曲谱

+ 39 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Mine/VideoCourse/Controller/VideoCourseViewController.m

@@ -10,6 +10,8 @@
 #import "JXCategoryView.h"
 #import "JXPagerListRefreshView.h"
 #import "VideoListBodyView.h"
+#import "TeacherInfo.h"
+#import "UserInfoManager.h"
 
 
 #define HEADER_HEIGHT (64)
@@ -20,6 +22,8 @@
 
 @property (nonatomic, strong) NSMutableArray *listViewArray;
 
+@property (nonatomic, strong) TeacherInfo *teacherInfo;
+
 @end
 
 @implementation VideoCourseViewController
@@ -60,9 +64,37 @@
     self.categoryView.listContainer = (id<JXCategoryViewListContainer>)self.pagerView.listContainerView;
     self.pagerView.listContainerView.listCellBackgroundColor = [UIColor clearColor];
     [self.view addSubview:self.pagerView];
+}
 
+- (void)requestTeachMessage {
+    [KSNetworkingManager queryTeacherInfoRequest:KS_GET success:^(NSDictionary * _Nonnull dic) {
+        if ([dic integerValueForKey:@"code"] == 200 && [dic boolValueForKey:@"status"]) {
+            self.teacherInfo = [[TeacherInfo alloc] initWithDictionary:[dic dictionaryValueForKey:@"data"]];
+            NSString *rongToken = UserDefault(RongTokenKey);
+            if ([NSString isEmptyString:rongToken]) {
+                [USER_MANAGER queryUserInfoConnectRongCloud:YES];
+            }
+            [self refreshAuthStatus];
+        }
+        else {
+            [self MBPShow:MESSAGEKEY];
+        }
+    } faliure:^(NSError * _Nonnull error) {
+        
+    }];
 }
 
+- (void)refreshAuthStatus {
+    for (NSInteger index = 0; index < self.listViewArray.count; index++) {
+        id view = self.listViewArray[index];
+        if ([view isKindOfClass:[VideoListBodyView class]]) {
+            VideoListBodyView *listView = (VideoListBodyView *)view;
+            listView.teaherAuth = [self.teacherInfo.entryStatus isEqualToString:@"PASS"] ? YES : NO;
+        }
+    }
+}
+
+
 - (void)rightBtnClick { // 创建视频课
     KSBaseWKWebViewController *webCtrl = [[KSBaseWKWebViewController alloc] init];
     webCtrl.url = [NSString stringWithFormat:@"%@%@", WEBHOST, @"/#/videoCreate"];
@@ -72,6 +104,7 @@
 - (void)viewWillAppear:(BOOL)animated {
     [super viewWillAppear:animated];
     self.navigationController.interactivePopGestureRecognizer.enabled = YES;
+    [self requestTeachMessage];
     if (self.listViewArray.count > self.categoryView.selectedIndex) {
          id value = self.listViewArray[self.categoryView.selectedIndex];
         if ([value isKindOfClass:[VideoListBodyView class]]) {
@@ -119,6 +152,12 @@
     [self.listViewArray replaceObjectAtIndex:index withObject:listView];
     self.listViewArray[index] = listView;
     listView.selectIndex = index;
+    if (self.teacherInfo) {
+        listView.teaherAuth = [self.teacherInfo.entryStatus isEqualToString:@"PASS"] ? YES : NO;
+    }
+    else {
+        listView.teaherAuth = YES;
+    }
     [listView beginFirstRefresh];
     return listView;
 }

+ 2 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Mine/VideoCourse/View/VideoListBodyView.h

@@ -14,6 +14,8 @@ NS_ASSUME_NONNULL_BEGIN
 
 @interface VideoListBodyView : kSJXCollectionView
 
+@property (nonatomic, assign) BOOL teaherAuth;
+
 @end
 
 NS_ASSUME_NONNULL_END

+ 65 - 1
KulexiuForTeacher/KulexiuForTeacher/Module/Mine/VideoCourse/View/VideoListBodyView.m

@@ -9,6 +9,7 @@
 #import "VideoCourseCell.h"
 #import "VideoCourseModel.h"
 #import "KSBaseWKWebViewController.h"
+#import "AuthDisplayView.h"
 
 @interface VideoListBodyView ()<UICollectionViewDelegate,UICollectionViewDataSource,UICollectionViewDelegateFlowLayout>
 
@@ -25,6 +26,7 @@
 
 @property (nonatomic, strong) NSString *audioStatus; // 审核状态(0:待审核;1:通过;2:未通过)
 
+@property (nonatomic, strong) AuthDisplayView *authView;
 @end
 
 @implementation VideoListBodyView
@@ -152,6 +154,12 @@
 - (void)layoutSubviews {
     [super layoutSubviews];
     self.collectionView.frame = self.bounds;
+    if (self.teaherAuth == NO) {
+        [self showAuthView];
+    }
+    else {
+        [self hideAuthView];
+    }
 }
 
 - (void)beginFirstRefresh {
@@ -257,13 +265,69 @@
 }
 
 
-
+#pragma mark ---- lazying
 - (NSMutableArray *)dataArray {
     if (!_dataArray) {
         _dataArray = [NSMutableArray array];
     }
     return _dataArray;
 }
+
+- (void)setTeaherAuth:(BOOL)teaherAuth {
+    _teaherAuth = teaherAuth;
+    if (teaherAuth == NO) {
+        [self showAuthView];
+    }
+    else {
+        [self hideAuthView];
+    }
+}
+
+- (void)showAuthView {
+    if ([self.subviews containsObject:self.authView]) {
+        [self bringSubviewToFront:self.authView];
+    }
+    else {
+        [self addSubview:self.authView];
+        [self.authView mas_makeConstraints:^(MASConstraintMaker *make) {
+            make.left.top.bottom.right.mas_equalTo(self);
+        }];
+    }
+}
+
+- (void)hideAuthView {
+    if ([self.subviews containsObject:self.authView]) {
+        [self.authView removeFromSuperview];
+        self.authView = nil;
+    }
+}
+
+- (AuthDisplayView *)authView {
+    if (!_authView) {
+        _authView = [AuthDisplayView shareInstance];
+        [_authView.imageView setImage:[UIImage imageNamed:[self getAuthDisplayImage]]];
+        [_authView configDisplayMessage:[self getAuthDisplayMessage]];
+        MJWeakSelf;
+        [_authView sureCallback:^{
+            [weakSelf authAction];
+        }];
+    }
+    return _authView;
+}
+
+- (NSString *)getAuthDisplayImage {
+    return @"authTeacher_Live";
+}
+
+- (NSString *)getAuthDisplayMessage {
+    return @"您还没有完成老师认证,认证后才可创建直播课哦~";
+}
+
+- (void)authAction {
+    KSBaseWKWebViewController *webCtrl = [[KSBaseWKWebViewController alloc] init];
+    webCtrl.url = [NSString stringWithFormat:@"%@%@", WEBHOST, @"/#/teacherCert"];
+    [self.naviController pushViewController:webCtrl animated:YES];
+}
 /*
 // Only override drawRect: if you perform custom drawing.
 // An empty implementation adversely affects performance during animation.

BIN
KulexiuForTeacher/build/Debug-iphonesimulator/KulexiuForTeacher.app/KulexiuForTeacher


+ 32 - 10
KulexiuForTeacher/build/Debug-iphonesimulator/KulexiuForTeacher.app/_CodeSignature/CodeResources

@@ -14,7 +14,7 @@
 		</data>
 		<key>AccompanyArrangeCell.nib</key>
 		<data>
-		lK/Cz52FgKvOiRkweHjfmmHBsJo=
+		6DD8qFPVD9AubuFr8J+SDeBA9bo=
 		</data>
 		<key>AccompanyCourseCell.nib</key>
 		<data>
@@ -22,15 +22,15 @@
 		</data>
 		<key>AccompanyCourseInfoCell.nib</key>
 		<data>
-		UMPEIqCQ9pdmBkyzRpC24P1ja/E=
+		NNcULYz93A79AOl6m9RzCnRelhY=
 		</data>
 		<key>AccompanyEvaluateCell.nib</key>
 		<data>
-		zg1oFrNs0rtCzV57XW2EDVa5FIM=
+		oSsv8LMrXnDk1okJo9HGfgPINVA=
 		</data>
 		<key>AccompanyHomeworkCell.nib</key>
 		<data>
-		nqW58ZlVqketChgPd5C3KKR77hg=
+		dMD3CUyFja2XcAxAh+i6+8afWmM=
 		</data>
 		<key>AccompanyNavView.nib</key>
 		<data>
@@ -38,7 +38,7 @@
 		</data>
 		<key>AccompanyRemarkCell.nib</key>
 		<data>
-		ytpGRya/yvChNu1zwtxbN1GpJeA=
+		KrRBRsIpiYJAwDcnhQNL7JY21DI=
 		</data>
 		<key>AccompanyStudentEvaCell.nib</key>
 		<data>
@@ -328,6 +328,10 @@
 		<data>
 		rDkO9MRVO1rwLQ5M3HoQXoEfaQ4=
 		</data>
+		<key>HomeworkVideoView.nib</key>
+		<data>
+		1dIbTgLv8QgSf4hfFfADbAgKeFQ=
+		</data>
 		<key>Info.plist</key>
 		<data>
 		puVneBR6xx9F96uTXqQ43ptOx1c=
@@ -644,6 +648,10 @@
 		<data>
 		5452Fcd+pxHBaePYyw5m7d1FWb8=
 		</data>
+		<key>NotiferMessageCell.nib</key>
+		<data>
+		RPAUeebzUSS5jwEiOtChl9uKpr4=
+		</data>
 		<key>PasswordBodyView.nib</key>
 		<data>
 		/mVTnW3khVQBUk8PKUtApp2tVf8=
@@ -3652,7 +3660,7 @@
 		<dict>
 			<key>hash2</key>
 			<data>
-			bwPcvGt7gj5YbaX97wmNEwuKvHa2Ss5ZJvMqllRCdQo=
+			PP6XehkHNG3dxXIFztzFmL7afuUHxlHv9rIxlG0qPZ0=
 			</data>
 		</dict>
 		<key>AccompanyCourseCell.nib</key>
@@ -3666,21 +3674,21 @@
 		<dict>
 			<key>hash2</key>
 			<data>
-			9BJi5tzoZNcyROVraLpIIVHiZco/zKRbpdaxysCDEy8=
+			mF2y4ahZsNMpkzxh5E7U05vIr+uIUyQBFc0jZSLkPZY=
 			</data>
 		</dict>
 		<key>AccompanyEvaluateCell.nib</key>
 		<dict>
 			<key>hash2</key>
 			<data>
-			GsS8FyF3wfDov8Je4nB9uY52u4GFsN79rc5nKRBAVJ0=
+			Cojyb1xNaEOtZdHa3NNMTeGo9i9wOymuHVo81AuE3xM=
 			</data>
 		</dict>
 		<key>AccompanyHomeworkCell.nib</key>
 		<dict>
 			<key>hash2</key>
 			<data>
-			7jxDCaEDU/PbVQta6eMgmERaodaQ5J2+TdrB+bgTQuQ=
+			vSSb6uN7N8YwTgquK8cAm8+xTd2CuZM+e78GR3Y8LZk=
 			</data>
 		</dict>
 		<key>AccompanyNavView.nib</key>
@@ -3694,7 +3702,7 @@
 		<dict>
 			<key>hash2</key>
 			<data>
-			hPSjXNNa88aC1bg7c2EzhDj7gOguYsdXKMSJoY12vlA=
+			/JP1rjxexprRDYENXWdHX2W5evl2yZQvcom5sKPxXXI=
 			</data>
 		</dict>
 		<key>AccompanyStudentEvaCell.nib</key>
@@ -4201,6 +4209,13 @@
 			p0WlDwsSoDmf1A0Tfe5Q3Gijsexk7abTYCrI6P6ytDA=
 			</data>
 		</dict>
+		<key>HomeworkVideoView.nib</key>
+		<dict>
+			<key>hash2</key>
+			<data>
+			W3Zf1nv8djVklOEubctGxd7iiaQVY5N7UHWhP3z8tpQ=
+			</data>
+		</dict>
 		<key>InstrumentChooseBottonView.nib</key>
 		<dict>
 			<key>hash2</key>
@@ -4720,6 +4735,13 @@
 			Gu2KZBBRUi2gh7umzczsF2RfI2jA13gW4cix7Yiv9xI=
 			</data>
 		</dict>
+		<key>NotiferMessageCell.nib</key>
+		<dict>
+			<key>hash2</key>
+			<data>
+			gH62Ooxt24rrdumD49YR1MJ28TSF+seY17By/VOYB0s=
+			</data>
+		</dict>
 		<key>PasswordBodyView.nib</key>
 		<dict>
 			<key>hash2</key>

BIN
KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/KulexiuForTeacher-project-headers.hmap


BIN
KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/ALCalendarHelper.o


BIN
KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/AppDelegate.dia


BIN
KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/AppDelegate.o


BIN
KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/CourseViewController.dia


BIN
KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/CourseViewController.o


BIN
KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/GroupApplyChooseCell.o


BIN
KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/GroupApplyMemberCell.o


+ 2 - 1
KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/HomeViewController.d

@@ -56,4 +56,5 @@ dependencies: \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Module/Home/Music/Controller/MyMusicViewController.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Module/Home/MyCourse/Controller/MyCourseViewController.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Module/Home/Homework/Controller/HomeworkListViewController.h \
-  /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Module/Home/EvaluateCourse/Controller/EvaluateCourseListViewController.h
+  /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Module/Home/EvaluateCourse/Controller/EvaluateCourseListViewController.h \
+  /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Module/Home/NotiferMessage/Controller/NotiferMessageViewController.h

BIN
KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/HomeViewController.dia


BIN
KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/HomeViewController.o


BIN
KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/KSNetworkingManager.o


+ 6 - 0
KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/KulexiuForTeacher.LinkFileList

@@ -42,6 +42,7 @@
 /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/MyMusicViewController.o
 /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/ModifyPhoneChangeController.o
 /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/MinePageHeadView.o
+/Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/HomeworkVideoView.o
 /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/GroupMemberModel.o
 /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/StoreButton.o
 /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/NSString+Extension.o
@@ -54,6 +55,7 @@
 /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/SDCollectionViewCell.o
 /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/FSCalendarDelegationFactory.o
 /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/NSString+zh_SafeAccess.o
+/Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/HomeworkDetailModel.o
 /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/InputView.o
 /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/MyStyleViewController.o
 /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/TZGifPhotoPreviewController.o
@@ -137,6 +139,7 @@
 /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/KSSearchHistoryMessageController.o
 /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/KSChatEmojiCollectionCell.o
 /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/KSLiveChatroomWelcome.o
+/Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/NotiferMessageCell.o
 /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/AudioPlayManager.o
 /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/MessageCell.o
 /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/KSTabBarViewController.o
@@ -287,6 +290,7 @@
 /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/GroupNoticeViewController.o
 /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/LiveVideoRoomViewController.o
 /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/MSSBrowseLocalViewController.o
+/Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/NotiferMessageViewController.o
 /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/FeedbackViewController.o
 /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/TZVideoCropController.o
 /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/KSChatInputView.o
@@ -296,6 +300,7 @@
 /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/SelectionButton.o
 /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/ALCalendarCell.o
 /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/KSAccompanyWebViewController.o
+/Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/NotiferMessageModel.o
 /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/GroupMemberViewController.o
 /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/GroupNoticeCell.o
 /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/MyStyleInstrumentCell.o
@@ -414,6 +419,7 @@
 /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/SDCycleScrollView.o
 /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/LLImageCache.o
 /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/UIView+KSLayer.o
+/Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/HomeworkListModel.o
 /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/FSCalendarDelegationProxy.o
 /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/KSNetTypeManager.o
 /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/GroupApplyMemberCell.o

BIN
KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/KulexiuForTeacher_dependency_info.dat


BIN
KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/LiveCourseCell.o


BIN
KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/LiveVideoRoomViewController.dia


BIN
KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/LiveVideoRoomViewController.o


BIN
KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/MinePageCourseView.o


BIN
KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/MyCourseViewController.o


+ 8 - 1
KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/MyLiveCourseBodyView.d

@@ -45,4 +45,11 @@ dependencies: \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Base/KSJXBodyView.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Tools/Custom/StateView.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Module/Mine/MinePage/View/LiveCourseCell.h \
-  /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Module/Mine/LiveCourse/Model/LiveCourseModel.h
+  /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Module/Mine/LiveCourse/Model/LiveCourseModel.h \
+  /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Base/KSBaseWKWebViewController.h \
+  /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Base/KSBaseViewController.h \
+  /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Base/UINavigationController+KSNavigationBar.h \
+  /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Base/WeakWebViewScriptMessageDelegate.h \
+  /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Base/KSWebNavView.h \
+  /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Base/KSWebBackButton.h \
+  /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Base/AuthDisplayView.h

BIN
KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/MyLiveCourseBodyView.o


+ 4 - 1
KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/MyLiveCourseViewController.d

@@ -50,4 +50,7 @@ dependencies: \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Base/KSWebNavView.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Base/KSWebBackButton.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Module/Mine/LiveCourse/View/MyLiveCourseBodyView.h \
-  /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Base/KSJXBodyView.h
+  /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Base/KSJXBodyView.h \
+  /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Module/Mine/Model/TeacherInfo.h \
+  /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Module/Login/Model/UserInfoManager.h \
+  /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Module/Login/Model/UserInfo.h

BIN
KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/MyLiveCourseViewController.o


BIN
KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/NewClassRoomViewController.o


BIN
KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/UIView+XIBView.dia


+ 4 - 1
KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/VideoCourseViewController.d

@@ -50,4 +50,7 @@ dependencies: \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Base/KSWebNavView.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Base/KSWebBackButton.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Module/Mine/VideoCourse/View/VideoListBodyView.h \
-  /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Base/kSJXCollectionView.h
+  /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Base/kSJXCollectionView.h \
+  /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Module/Mine/Model/TeacherInfo.h \
+  /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Module/Login/Model/UserInfoManager.h \
+  /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Module/Login/Model/UserInfo.h

BIN
KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/VideoCourseViewController.o


+ 2 - 1
KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/VideoListBodyView.d

@@ -51,4 +51,5 @@ dependencies: \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Base/UINavigationController+KSNavigationBar.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Base/WeakWebViewScriptMessageDelegate.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Base/KSWebNavView.h \
-  /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Base/KSWebBackButton.h
+  /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Base/KSWebBackButton.h \
+  /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Base/AuthDisplayView.h

BIN
KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/VideoListBodyView.o


BIN
KulexiuForTeacher/build/XCBuildData/BuildDescriptionCacheIndex-2297acb106a30e2935a01f5221f6a714


BIN
KulexiuForTeacher/build/XCBuildData/build.db