Steven 3 年之前
父節點
當前提交
b54f117f8a
共有 36 個文件被更改,包括 734 次插入57 次删除
  1. 16 6
      KulexiuForTeacher/KulexiuForTeacher.xcodeproj/project.pbxproj
  2. 二進制
      KulexiuForTeacher/KulexiuForTeacher.xcworkspace/xcuserdata/wangzhi.xcuserdatad/UserInterfaceState.xcuserstate
  3. 64 0
      KulexiuForTeacher/KulexiuForTeacher.xcworkspace/xcuserdata/wangzhi.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist
  4. 6 0
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/AuthImage/Contents.json
  5. 2 2
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/AuthImage/authMuscian.imageset/Contents.json
  6. 二進制
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/AuthImage/authMuscian.imageset/authMuscian@2x.png
  7. 二進制
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/AuthImage/authMuscian.imageset/authMuscian@3x.png
  8. 22 0
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/AuthImage/authTeacher_Live.imageset/Contents.json
  9. 二進制
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/AuthImage/authTeacher_Live.imageset/authTeacher_Live@2x.png
  10. 二進制
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/AuthImage/authTeacher_Live.imageset/authTeacher_Live@3x.png
  11. 22 0
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/AuthImage/authTeacher_accompany.imageset/Contents.json
  12. 二進制
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/AuthImage/authTeacher_accompany.imageset/authTeacher_accompany@2x.png
  13. 二進制
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/AuthImage/authTeacher_accompany.imageset/authTeacher_accompany@3x.png
  14. 二進制
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/auth_bg.imageset/auth_bg@2x.png
  15. 二進制
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/auth_bg.imageset/auth_bg@3x.png
  16. 53 5
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/MyCourse/Controller/MyCourseViewController.m
  17. 18 2
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/MyCourse/View/MyLessonBodyView.m
  18. 0 16
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/MyCourse/View/MyLiveLessionBodyView.h
  19. 0 20
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/MyCourse/View/MyLiveLessionBodyView.m
  20. 20 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/MyCourse/View/MyVideoCourseBodyView.h
  21. 342 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/MyCourse/View/MyVideoCourseBodyView.m
  22. 26 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/MyCourse/View/MyVideoSearchView.h
  23. 56 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/MyCourse/View/MyVideoSearchView.m
  24. 59 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/MyCourse/View/MyVideoSearchView.xib
  25. 8 1
      KulexiuForTeacher/KulexiuForTeacher/Module/Mine/View/MineBodyView.m
  26. 二進制
      KulexiuForTeacher/build/Debug-iphonesimulator/KulexiuForTeacher.app/Assets.car
  27. 二進制
      KulexiuForTeacher/build/Debug-iphonesimulator/KulexiuForTeacher.app/KulexiuForTeacher
  28. 13 2
      KulexiuForTeacher/build/Debug-iphonesimulator/KulexiuForTeacher.app/_CodeSignature/CodeResources
  29. 二進制
      KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/KulexiuForTeacher-project-headers.hmap
  30. 2 1
      KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/KulexiuForTeacher.LinkFileList
  31. 二進制
      KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/KulexiuForTeacher_dependency_info.dat
  32. 二進制
      KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/MineBodyView.o
  33. 5 2
      KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/MyCourseViewController.d
  34. 二進制
      KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/MyCourseViewController.o
  35. 二進制
      KulexiuForTeacher/build/XCBuildData/BuildDescriptionCacheIndex-2297acb106a30e2935a01f5221f6a714
  36. 二進制
      KulexiuForTeacher/build/XCBuildData/build.db

+ 16 - 6
KulexiuForTeacher/KulexiuForTeacher.xcodeproj/project.pbxproj

@@ -436,6 +436,9 @@
 		27FC2F6627F1BBFE00FCC239 /* MyMusicViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 27FC2F6527F1BBFE00FCC239 /* MyMusicViewController.m */; };
 		27FC2F6D27F1BE4800FCC239 /* VideoCourseViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 27FC2F6C27F1BE4800FCC239 /* VideoCourseViewController.m */; };
 		BC0167A627FC06D600AE66A1 /* MyCourseViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = BC0167A527FC06D600AE66A1 /* MyCourseViewController.m */; };
+		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 */; };
 		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 */; };
@@ -515,7 +518,6 @@
 		BCC03F9A2805681100461B7C /* MyLessonSearchView.xib in Resources */ = {isa = PBXBuildFile; fileRef = BCC03F992805681100461B7C /* MyLessonSearchView.xib */; };
 		BCC03F9E280579A500461B7C /* MyLiveCourseCell.m in Sources */ = {isa = PBXBuildFile; fileRef = BCC03F9C280579A500461B7C /* MyLiveCourseCell.m */; };
 		BCC03F9F280579A500461B7C /* MyLiveCourseCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = BCC03F9D280579A500461B7C /* MyLiveCourseCell.xib */; };
-		BCC03FA228057D6700461B7C /* MyLiveLessionBodyView.m in Sources */ = {isa = PBXBuildFile; fileRef = BCC03FA128057D6700461B7C /* MyLiveLessionBodyView.m */; };
 		BCC9F35527F5F4FD00647449 /* LiveSeatMember.m in Sources */ = {isa = PBXBuildFile; fileRef = BCC9F35427F5F4FD00647449 /* LiveSeatMember.m */; };
 		BCC9F40727F69BD200647449 /* SealClass.strings in Resources */ = {isa = PBXBuildFile; fileRef = BCC9F35C27F69BD100647449 /* SealClass.strings */; };
 		BCC9F40927F69BD200647449 /* ZoomControl.m in Sources */ = {isa = PBXBuildFile; fileRef = BCC9F36427F69BD100647449 /* ZoomControl.m */; };
@@ -1431,6 +1433,11 @@
 		AC7237F12804B8A0533DF9FE /* Pods-KulexiuForTeacher.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-KulexiuForTeacher.debug.xcconfig"; path = "Target Support Files/Pods-KulexiuForTeacher/Pods-KulexiuForTeacher.debug.xcconfig"; sourceTree = "<group>"; };
 		BC0167A427FC06D600AE66A1 /* MyCourseViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MyCourseViewController.h; sourceTree = "<group>"; };
 		BC0167A527FC06D600AE66A1 /* MyCourseViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MyCourseViewController.m; sourceTree = "<group>"; };
+		BC1365B6280D130C00EB03E2 /* MyVideoCourseBodyView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MyVideoCourseBodyView.h; sourceTree = "<group>"; };
+		BC1365B7280D130C00EB03E2 /* MyVideoCourseBodyView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MyVideoCourseBodyView.m; sourceTree = "<group>"; };
+		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>"; };
 		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>"; };
@@ -1564,8 +1571,6 @@
 		BCC03F9B280579A500461B7C /* MyLiveCourseCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MyLiveCourseCell.h; sourceTree = "<group>"; };
 		BCC03F9C280579A500461B7C /* MyLiveCourseCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MyLiveCourseCell.m; sourceTree = "<group>"; };
 		BCC03F9D280579A500461B7C /* MyLiveCourseCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = MyLiveCourseCell.xib; sourceTree = "<group>"; };
-		BCC03FA028057D6700461B7C /* MyLiveLessionBodyView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MyLiveLessionBodyView.h; sourceTree = "<group>"; };
-		BCC03FA128057D6700461B7C /* MyLiveLessionBodyView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MyLiveLessionBodyView.m; sourceTree = "<group>"; };
 		BCC9F35327F5F4FD00647449 /* LiveSeatMember.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LiveSeatMember.h; sourceTree = "<group>"; };
 		BCC9F35427F5F4FD00647449 /* LiveSeatMember.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = LiveSeatMember.m; sourceTree = "<group>"; };
 		BCC9F35B27F69BD100647449 /* KSRemoteUserManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KSRemoteUserManager.h; sourceTree = "<group>"; };
@@ -3579,8 +3584,11 @@
 				BCC03F9B280579A500461B7C /* MyLiveCourseCell.h */,
 				BCC03F9C280579A500461B7C /* MyLiveCourseCell.m */,
 				BCC03F9D280579A500461B7C /* MyLiveCourseCell.xib */,
-				BCC03FA028057D6700461B7C /* MyLiveLessionBodyView.h */,
-				BCC03FA128057D6700461B7C /* MyLiveLessionBodyView.m */,
+				BC1365B6280D130C00EB03E2 /* MyVideoCourseBodyView.h */,
+				BC1365B7280D130C00EB03E2 /* MyVideoCourseBodyView.m */,
+				BC1365B9280D162400EB03E2 /* MyVideoSearchView.h */,
+				BC1365BA280D162400EB03E2 /* MyVideoSearchView.m */,
+				BC1365BC280D163200EB03E2 /* MyVideoSearchView.xib */,
 			);
 			path = View;
 			sourceTree = "<group>";
@@ -4452,6 +4460,7 @@
 				2779335627E316DD0010E277 /* WMPlayer.bundle in Resources */,
 				275E8A7427E18F2800DD3F6E /* Assets.xcassets in Resources */,
 				2755C06927EC71C8007D9070 /* GroupSettingBodyView.xib in Resources */,
+				BC1365BD280D163200EB03E2 /* MyVideoSearchView.xib in Resources */,
 				2780A06B27E823D300447CFD /* MineBodyView.xib in Resources */,
 				27F9030127E864AE00C08A19 /* NetworkBodyView.xib in Resources */,
 				275E8A7227E18F2300DD3F6E /* Main.storyboard in Resources */,
@@ -4788,6 +4797,7 @@
 				277931FC27E30FC30010E277 /* KLTNavigationController.m in Sources */,
 				275E3DBC27F45E750010EC30 /* KSLiveChatroomLeave.m in Sources */,
 				27D83F5127F4036E00062476 /* KSNormalAlertView.m in Sources */,
+				BC1365B8280D130C00EB03E2 /* MyVideoCourseBodyView.m in Sources */,
 				2779323F27E30FC30010E277 /* VoMemoryCache.m in Sources */,
 				BCC9F44B27F69BD200647449 /* KSIMService.m in Sources */,
 				277931C027E30FC20010E277 /* ArchiveTools.m in Sources */,
@@ -4948,11 +4958,11 @@
 				BCB635B927F722E800ACFDCF /* KSDocumentViewController.m in Sources */,
 				275E3DE727F4677F0010EC30 /* LiveRoomHeadView.m in Sources */,
 				2779320427E30FC30010E277 /* KSHoldButton.m in Sources */,
-				BCC03FA228057D6700461B7C /* MyLiveLessionBodyView.m in Sources */,
 				2779320627E30FC30010E277 /* UIView+ValueAdd.m in Sources */,
 				BCA9CE1527FD339400D558C6 /* AuthDisplayView.m in Sources */,
 				2779329B27E30FEB0010E277 /* UIView+MSSLayout.m in Sources */,
 				2779322B27E30FC30010E277 /* ALCalendarConfig.m in Sources */,
+				BC1365BB280D162400EB03E2 /* MyVideoSearchView.m in Sources */,
 				2779323527E30FC30010E277 /* LLPhotoBrowser.m in Sources */,
 				27A54CF427E9BD53007309A3 /* AboutUsViewController.m in Sources */,
 				277931D827E30FC20010E277 /* UIButton+HasChooseImage.m in Sources */,

二進制
KulexiuForTeacher/KulexiuForTeacher.xcworkspace/xcuserdata/wangzhi.xcuserdatad/UserInterfaceState.xcuserstate


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

@@ -80,5 +80,69 @@
             landmarkType = "7">
          </BreakpointContent>
       </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            uuid = "BF647C4D-2B77-4675-9102-F850D4E03608"
+            shouldBeEnabled = "Yes"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "KulexiuForTeacher/Module/Home/MyCourse/Controller/MyCourseViewController.m"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "47"
+            endingLineNumber = "47"
+            landmarkName = "-requestTeachMessage"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            uuid = "53925822-D39B-439E-9F12-F073FD55D8A8"
+            shouldBeEnabled = "Yes"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "KulexiuForTeacher/Module/Home/MyCourse/Controller/MyCourseViewController.m"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "58"
+            endingLineNumber = "58"
+            landmarkName = "-refreshAuthStatus"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            uuid = "8B45AA36-7C5E-453E-8489-FFAAEC046ECA"
+            shouldBeEnabled = "Yes"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "KulexiuForTeacher/Module/Home/MyCourse/Controller/MyCourseViewController.m"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "65"
+            endingLineNumber = "65"
+            landmarkName = "-refreshAuthStatus"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            uuid = "C8408E14-F8A4-4A24-9C5D-0FA2D3819F62"
+            shouldBeEnabled = "Yes"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "KulexiuForTeacher/Module/Home/MyCourse/Controller/MyCourseViewController.m"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "151"
+            endingLineNumber = "151"
+            landmarkName = "-pagerView:initListAtIndex:"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
    </Breakpoints>
 </Bucket>

+ 6 - 0
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/AuthImage/Contents.json

@@ -0,0 +1,6 @@
+{
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

+ 2 - 2
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/auth_bg.imageset/Contents.json → KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/AuthImage/authMuscian.imageset/Contents.json

@@ -5,12 +5,12 @@
       "scale" : "1x"
     },
     {
-      "filename" : "auth_bg@2x.png",
+      "filename" : "authMuscian@2x.png",
       "idiom" : "universal",
       "scale" : "2x"
     },
     {
-      "filename" : "auth_bg@3x.png",
+      "filename" : "authMuscian@3x.png",
       "idiom" : "universal",
       "scale" : "3x"
     }

二進制
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/AuthImage/authMuscian.imageset/authMuscian@2x.png


二進制
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/AuthImage/authMuscian.imageset/authMuscian@3x.png


+ 22 - 0
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/AuthImage/authTeacher_Live.imageset/Contents.json

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

二進制
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/AuthImage/authTeacher_Live.imageset/authTeacher_Live@2x.png


二進制
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/AuthImage/authTeacher_Live.imageset/authTeacher_Live@3x.png


+ 22 - 0
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/AuthImage/authTeacher_accompany.imageset/Contents.json

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

二進制
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/AuthImage/authTeacher_accompany.imageset/authTeacher_accompany@2x.png


二進制
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/AuthImage/authTeacher_accompany.imageset/authTeacher_accompany@3x.png


二進制
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/auth_bg.imageset/auth_bg@2x.png


二進制
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/auth_bg.imageset/auth_bg@3x.png


+ 53 - 5
KulexiuForTeacher/KulexiuForTeacher/Module/Home/MyCourse/Controller/MyCourseViewController.m

@@ -9,8 +9,10 @@
 #import "KSBaseWKWebViewController.h"
 #import "JXCategoryView.h"
 #import "JXPagerListRefreshView.h"
-#import "MyLiveLessionBodyView.h"
+#import "MyVideoCourseBodyView.h"
 #import "MyLessonBodyView.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 MyCourseViewController
@@ -32,6 +36,38 @@
     [self configUI];
 }
 
+- (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:[MyLessonBodyView class]]) {
+            MyLessonBodyView *courseView = (MyLessonBodyView *)view;
+            courseView.teaherAuth = [self.teacherInfo.entryStatus isEqualToString:@"PASS"] ? YES : NO;
+        }
+        else if ([view isKindOfClass:[MyVideoCourseBodyView class]]) {
+            MyVideoCourseBodyView *videoCourseView = (MyVideoCourseBodyView *)view;
+            videoCourseView.teaherAuth = [self.teacherInfo.entryStatus isEqualToString:@"PASS"] ? YES : NO;
+        }
+    }
+}
+
 - (void)configUI {
     [self.scrollView removeFromSuperview];
     self.view.backgroundColor = HexRGB(0xf6f8f9);
@@ -64,10 +100,11 @@
 - (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:[MyLiveLessionBodyView class]]) {
-            MyLiveLessionBodyView *listView = (MyLiveLessionBodyView *)value;
+        if ([value isKindOfClass:[MyVideoCourseBodyView class]]) {
+            MyVideoCourseBodyView *listView = (MyVideoCourseBodyView *)value;
             [listView beginFirstRefresh];
         }
         else if ([value isKindOfClass:[MyLessonBodyView class]]) {
@@ -111,12 +148,18 @@
 
 - (id<JXPagerViewListViewDelegate>)pagerView:(JXPagerView *)pagerView initListAtIndex:(NSInteger)index {
     if (index == 2) {
-        MyLiveLessionBodyView *listView = [[MyLiveLessionBodyView alloc] init];
+        MyVideoCourseBodyView *listView = [[MyVideoCourseBodyView alloc] init];
         listView.naviController = self.navigationController;
         [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;
+        }
         return listView;
     }
     else {
@@ -125,7 +168,12 @@
         [self.listViewArray replaceObjectAtIndex:index withObject:listView];
         self.listViewArray[index] = listView;
         listView.selectIndex = index;
-        listView.teaherAuth = YES;
+        if (self.teacherInfo) {
+            listView.teaherAuth = [self.teacherInfo.entryStatus isEqualToString:@"PASS"] ? YES : NO;
+        }
+        else {
+            listView.teaherAuth = YES;
+        }
         [listView beginFirstRefresh];
         return listView;
     }

+ 18 - 2
KulexiuForTeacher/KulexiuForTeacher/Module/Home/MyCourse/View/MyLessonBodyView.m

@@ -17,6 +17,7 @@
 #import "NewClassPopView.h"
 #import "KSFullDatePicker.h"
 
+
 @interface MyLessonBodyView ()<UITableViewDelegate,UITableViewDataSource>
 
 @property (nonatomic, strong) NSDateFormatter *dateFormatter;
@@ -38,7 +39,6 @@
 
 @property (nonatomic, strong) AuthDisplayView *authView;
 
-
 @property (nonatomic, assign) NSInteger secondChooseIndex;
 
 @property (nonatomic, assign) NSInteger thirdChooseIndex;
@@ -544,6 +544,7 @@
 - (AuthDisplayView *)authView {
     if (!_authView) {
         _authView = [AuthDisplayView shareInstance];
+        [_authView.imageView setImage:[UIImage imageNamed:[self getAuthDisplayImage]]];
         [_authView configDisplayMessage:[self getAuthDisplayMessage]];
         MJWeakSelf;
         [_authView sureCallback:^{
@@ -553,8 +554,23 @@
     return _authView;
 }
 
+- (NSString *)getAuthDisplayImage {
+    if (self.selectIndex == 0) {
+        return @"authTeacher_accompany";
+    }
+    else {
+        return @"authTeacher_Live";
+    }
+}
+
 - (NSString *)getAuthDisplayMessage {
-    return @"您还没有完成老师认证,认证后才可设置陪练课哦~";
+    if (self.selectIndex == 0) {
+        return @"您还没有完成老师认证,认证后才可设置陪练课哦~";
+    }
+    else {
+        return @"您还没有完成老师认证,认证后才可创建直播课哦~";
+    }
+    
 }
 
 - (void)authAction {

+ 0 - 16
KulexiuForTeacher/KulexiuForTeacher/Module/Home/MyCourse/View/MyLiveLessionBodyView.h

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

+ 0 - 20
KulexiuForTeacher/KulexiuForTeacher/Module/Home/MyCourse/View/MyLiveLessionBodyView.m

@@ -1,20 +0,0 @@
-//
-//  MyLiveLessionBodyView.m
-//  KulexiuForTeacher
-//
-//  Created by 王智 on 2022/4/12.
-//
-
-#import "MyLiveLessionBodyView.h"
-
-@implementation MyLiveLessionBodyView
-
-/*
-// Only override drawRect: if you perform custom drawing.
-// An empty implementation adversely affects performance during animation.
-- (void)drawRect:(CGRect)rect {
-    // Drawing code
-}
-*/
-
-@end

+ 20 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Home/MyCourse/View/MyVideoCourseBodyView.h

@@ -0,0 +1,20 @@
+//
+//  MyVideoCourseBodyView.h
+//  KulexiuForTeacher
+//
+//  Created by 王智 on 2022/4/18.
+//
+
+#import "kSJXCollectionView.h"
+#import "StateView.h"
+#import "Reachability.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface MyVideoCourseBodyView : kSJXCollectionView
+
+@property (nonatomic, assign) BOOL teaherAuth;
+
+@end
+
+NS_ASSUME_NONNULL_END

+ 342 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Home/MyCourse/View/MyVideoCourseBodyView.m

@@ -0,0 +1,342 @@
+//
+//  MyVideoCourseBodyView.m
+//  KulexiuForTeacher
+//
+//  Created by 王智 on 2022/4/18.
+//
+
+#import "MyVideoCourseBodyView.h"
+#import "VideoCourseCell.h"
+#import "VideoCourseModel.h"
+#import "KSBaseWKWebViewController.h"
+#import "AuthDisplayView.h"
+#import "MyVideoSearchView.h"
+#import "NewClassPopView.h"
+
+
+@interface MyVideoCourseBodyView ()<UICollectionViewDelegate,UICollectionViewDataSource,UICollectionViewDelegateFlowLayout>
+
+@property (nonatomic, strong) NSMutableArray *dataArray;
+
+@property (nonatomic, strong) StateView *promptView;
+@property (nonatomic, strong) UIView *promptPlaceView;
+
+@property (nonatomic, assign) BOOL networkAvaiable; // 网络是否可用
+
+@property (nonatomic, assign) BOOL isLoadMore;
+@property (nonatomic, assign) NSInteger rows;
+@property (nonatomic, assign) NSInteger pages;
+
+@property (nonatomic, strong) NSString *audioStatus;
+
+@property (nonatomic, strong) NSString *searchKey;
+
+@property (nonatomic, strong) AuthDisplayView *authView;
+
+
+@property (nonatomic, copy) MyVideoSearchView *sortView;
+
+@property (nonatomic, strong) NewClassPopView *popView;
+
+@end
+
+@implementation MyVideoCourseBodyView
+
+- (instancetype)initWithFrame:(CGRect)frame {
+    self = [super initWithFrame:frame];
+    if (self) {
+        self.backgroundColor = HexRGB(0xf6f8f9);
+        UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init];
+        layout.sectionInset = UIEdgeInsetsMake(12, 14, 12, 14);
+        
+        self.collectionView = [[UICollectionView alloc] initWithFrame:CGRectMake(0, 0, frame.size.width, frame.size.height) collectionViewLayout:layout];
+        self.collectionView.backgroundColor = HexRGB(0xf6f8f9);
+        self.collectionView.delegate = self;
+        self.collectionView.dataSource = self;
+        self.collectionView.showsVerticalScrollIndicator = NO;
+        self.collectionView.showsHorizontalScrollIndicator = NO;
+        [self.collectionView registerNib:[UINib nibWithNibName:@"VideoCourseCell" bundle:[NSBundle mainBundle]] forCellWithReuseIdentifier:@"VideoCourseCell"];
+        [self addSubview:self.collectionView];
+        MJWeakSelf;
+        self.collectionView.mj_header = [KSGifRefreshHeader headerWithRefreshingBlock:^{
+            [weakSelf resetParamenter];
+            [weakSelf requestData];
+        }];
+        self.collectionView.mj_footer = [KSGifRefreshFooter footerWithRefreshingBlock:^{
+            if (weakSelf.isLoadMore) {
+                weakSelf.pages += 1;
+                [weakSelf requestData];
+            }
+            else {
+                [weakSelf.collectionView.mj_footer endRefreshingWithNoMoreData];
+            }
+        }];
+    }
+    return self;
+}
+
+- (void)endRefresh {
+    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
+        [self.collectionView.mj_header endRefreshing];
+        [self.collectionView.mj_footer endRefreshing];
+    });
+}
+
+- (void)refreshAndRequestData {
+    [self resetParamenter];
+    [self requestData];
+}
+
+- (void)resetParamenter {
+    self.isLoadMore = YES;
+    self.pages = 1;
+    self.rows = 10;
+    self.audioStatus = @"PASS";
+    self.dataArray = [NSMutableArray array];
+    [self.collectionView.mj_footer resetNoMoreData];
+    [self setPromptString:@"暂无内容" imageName:@"wd_img_zwsj" inView:self.collectionView];
+    [self.collectionView reloadData];
+}
+
+- (void)requestData {
+    [KSNetworkingManager videoLessonListRequest:KS_POST lessonSubject:self.searchKey auditStatus:self.audioStatus pageNo:self.pages pageSize: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) {
+                VideoCourseModel *model = [[VideoCourseModel alloc] initWithDictionary:parm];
+                [self.dataArray addObject:model];
+            }
+//                        for (int i = 0 ; i < 10; i++) {
+//                            VideoCourseModel *model = [[VideoCourseModel alloc] init];
+//                            model.username = @"hahahha";
+//                            model.lessonName = @"小夜曲";
+//                            model.lessonPrice = 5.0;
+//                            model.purchaseCount = 88;
+//                            [self.dataArray addObject:model];
+//                        }
+            
+            if (sourceArray.count < self.rows) {
+                self.isLoadMore = NO;
+            }
+        }
+        else {
+            [self MBPShow:MESSAGEKEY];
+        }
+        [self.collectionView reloadData];
+        [self changePromptLabelStateWithArray:self.dataArray];
+    } faliure:^(NSError * _Nonnull error) {
+        [self endRefresh];
+        if (self.networkAvaiable == NO) {
+            [self setPromptString:@"暂无网络" imageName:@"no_networking" inView:self.collectionView];
+        }
+        [self.dataArray removeAllObjects];
+        [self.collectionView reloadData];
+        [self changePromptLabelStateWithArray:self.dataArray];
+    }];
+}
+
+- (void)beginRefreshImmediately {
+    [self.collectionView.mj_header beginRefreshing];
+}
+
+- (void)selectCellAtIndexPath:(NSIndexPath *)indexPath {
+    
+    if (self.lastSelectedIndexPath == indexPath) {
+        return;
+    }
+    if (self.lastSelectedIndexPath != nil) {
+        UICollectionViewCell *cell = [self.collectionView cellForItemAtIndexPath:self.lastSelectedIndexPath];
+        [cell setSelected:NO];
+    }
+    UICollectionViewCell *cell = [self.collectionView cellForItemAtIndexPath:indexPath];
+    [cell setSelected:YES];
+    self.lastSelectedIndexPath = indexPath;
+}
+
+- (void)layoutSubviews {
+    [super layoutSubviews];
+    CGFloat topHeight = 55.0f;
+    self.collectionView.frame = CGRectMake(0, topHeight, self.bounds.size.width, self.bounds.size.height - topHeight);
+    if (!_sortView) {
+        _sortView = [MyVideoSearchView shareInstance];
+        _sortView.frame = CGRectMake(0, 0, kScreenWidth, 55);
+        MJWeakSelf;
+        [_sortView sortAction:^{
+            [weakSelf sortView];
+        }];
+
+        [self addSubview:self.sortView];
+    }
+    if (self.teaherAuth == NO) {
+        [self showAuthView];
+    }
+    else {
+        [self hideAuthView];
+    }
+}
+
+- (void)sortAction {
+    
+}
+
+- (void)beginFirstRefresh {
+    if (!self.isHeaderRefreshed) {
+        [self beginRefreshImmediately];
+    }
+}
+#pragma mark ----- collection view
+- (NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView {
+    return 1;
+}
+- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section {
+    return self.dataArray.count;
+}
+
+- (__kindof UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {
+    VideoCourseCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"VideoCourseCell" forIndexPath:indexPath];
+    
+    VideoCourseModel *model = [self.dataArray objectAtIndex:indexPath.row];
+    BOOL isCheck = self.selectIndex != 0;
+    [cell configSourceModel:model isInCheck:isCheck];
+    return cell;
+}
+
+- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath {
+    VideoCourseModel *model = [self.dataArray objectAtIndex:indexPath.row];
+    NSString *url = [NSString stringWithFormat:@"%@%@%.0f", WEBHOST, @"/#/videoDetail?groupId=",model.internalBaseClassIdentifier];
+    KSBaseWKWebViewController *ctrl = [[KSBaseWKWebViewController alloc] init];
+    ctrl.url = url;
+    [self.naviController pushViewController:ctrl animated:YES];
+}
+
+- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath {
+    return CGSizeMake((kScreenWidth - 28 - 11) / 2.0f, 200);
+}
+/**
+ 设置没有数据时的显示
+ 
+ @param promptString 提示语
+ @param imgName 图片名称
+ @param view 显示在什么地方
+ */
+- (void)setPromptString:(NSString *)promptString imageName:(NSString *)imgName inView:(UIView *)view {
+    if (self.promptView != nil) {
+        [self.promptView removeFromSuperview];
+    }
+    else {
+        self.promptView = [[StateView alloc]init];
+        self.promptView.frame = CGRectMake(0, 0, kScreenWidth, kScreenHeight - 300);
+    }
+    _promptPlaceView = view;
+    //当请求不到数据时 ,自定义提示view 将会出现;
+    self.promptView.imageName = imgName;
+    self.promptView.alpha = 0.0f;
+    [self.promptView setText:promptString];
+    [view addSubview:self.promptView];
+}
+
+// 结束刷新后调用方法
+- (void)changePromptLabelStateWithArray:(NSMutableArray *)array {
+    NSInteger count;
+    if (array.count) {
+        count = array.count;
+    } else {
+        count = 0;
+    }
+    
+    [UIView animateWithDuration:0.1 animations:^{
+        [[self promptView] setAlpha:count ? 0.0f :1.0f ] ;
+        
+    }] ;
+    
+}
+
+- (BOOL)networkAvaiable {
+    return [self checkNetworkAvaiable];
+}
+
+- (BOOL)checkNetworkAvaiable {
+    BOOL isExistenceNetwork = YES;
+    Reachability *reach = [Reachability reachabilityWithHostName:@"www.apple.com"];
+    switch ([reach currentReachabilityStatus]) {
+        case NotReachable:
+            isExistenceNetwork = NO;
+            //NSLog(@"notReachable");
+            break;
+        case ReachableViaWiFi:
+            isExistenceNetwork = YES;
+            //NSLog(@"WIFI");
+            break;
+        case ReachableViaWWAN:
+            isExistenceNetwork = YES;
+            //NSLog(@"3G");
+            break;
+    }
+    return isExistenceNetwork;
+}
+
+
+
+- (NSMutableArray *)dataArray {
+    if (!_dataArray) {
+        _dataArray = [NSMutableArray array];
+    }
+    return _dataArray;
+}
+
+
+- (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.
+- (void)drawRect:(CGRect)rect {
+    // Drawing code
+}
+*/
+
+@end

+ 26 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Home/MyCourse/View/MyVideoSearchView.h

@@ -0,0 +1,26 @@
+//
+//  MyVideoSearchView.h
+//  KulexiuForTeacher
+//
+//  Created by 王智 on 2022/4/18.
+//
+
+#import <UIKit/UIKit.h>
+
+typedef void(^VideoSearchCallback)(void);
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface MyVideoSearchView : UIView
+
+@property (weak, nonatomic) IBOutlet UILabel *sortTitleLabel;
+
+@property (nonatomic, assign) BOOL arrowUp;
+
++ (instancetype)shareInstance;
+
+- (void)sortAction:(VideoSearchCallback)callback;
+
+@end
+
+NS_ASSUME_NONNULL_END

+ 56 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Home/MyCourse/View/MyVideoSearchView.m

@@ -0,0 +1,56 @@
+//
+//  MyVideoSearchView.m
+//  KulexiuForTeacher
+//
+//  Created by 王智 on 2022/4/18.
+//
+
+#import "MyVideoSearchView.h"
+
+@interface MyVideoSearchView ()
+
+@property (weak, nonatomic) IBOutlet UIImageView *arrowImage;
+
+@property (nonatomic, copy) VideoSearchCallback callback;
+
+@end
+
+@implementation MyVideoSearchView
+
+- (void)awakeFromNib {
+    [super awakeFromNib];
+    self.arrowUp = NO;
+}
+
++ (instancetype)shareInstance {
+    MyVideoSearchView *view = [[[NSBundle mainBundle] loadNibNamed:@"MyVideoSearchView" owner:nil options:nil] firstObject];
+    return view;
+}
+
+- (void)sortAction:(VideoSearchCallback)callback {
+    if (callback) {
+        self.callback = callback;
+    }
+}
+
+- (void)setArrowUp:(BOOL)arrowUp {
+    _arrowUp = arrowUp;
+    NSString *imageName = arrowUp ? @"sort_up" : @"sort_down";
+    [_arrowImage setImage:[UIImage imageNamed:imageName]];
+}
+
+- (IBAction)buttonClickAction:(id)sender {
+    if (self.callback) {
+        self.callback();
+    }
+}
+
+/*
+// Only override drawRect: if you perform custom drawing.
+// An empty implementation adversely affects performance during animation.
+- (void)drawRect:(CGRect)rect {
+    // Drawing code
+}
+*/
+
+@end

+ 59 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Home/MyCourse/View/MyVideoSearchView.xib

@@ -0,0 +1,59 @@
+<?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="MyVideoSearchView">
+            <rect key="frame" x="0.0" y="0.0" width="414" height="68"/>
+            <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+            <subviews>
+                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="全部声部" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="83Y-CJ-rl9">
+                    <rect key="frame" x="14" y="24" width="57.5" height="20"/>
+                    <constraints>
+                        <constraint firstAttribute="height" constant="20" id="jz6-Eh-bv8"/>
+                    </constraints>
+                    <fontDescription key="fontDescription" type="system" pointSize="14"/>
+                    <color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="calibratedRGB"/>
+                    <nil key="highlightedColor"/>
+                </label>
+                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="sort_down" translatesAutoresizingMaskIntoConstraints="NO" id="Qnv-gf-35O">
+                    <rect key="frame" x="77.5" y="31" width="8" height="6"/>
+                </imageView>
+                <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="RSG-G5-NY6">
+                    <rect key="frame" x="14" y="17" width="71.5" height="34"/>
+                    <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
+                    <connections>
+                        <action selector="buttonClickAction:" destination="iN0-l3-epB" eventType="touchUpInside" id="UD9-7X-fvK"/>
+                    </connections>
+                </button>
+            </subviews>
+            <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+            <constraints>
+                <constraint firstItem="83Y-CJ-rl9" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" constant="14" id="2Qn-zI-ggO"/>
+                <constraint firstItem="Qnv-gf-35O" firstAttribute="centerY" secondItem="RSG-G5-NY6" secondAttribute="centerY" id="40q-wN-1Mw"/>
+                <constraint firstItem="Qnv-gf-35O" firstAttribute="leading" secondItem="83Y-CJ-rl9" secondAttribute="trailing" constant="6" id="4jV-hI-8XX"/>
+                <constraint firstItem="Qnv-gf-35O" firstAttribute="centerY" secondItem="83Y-CJ-rl9" secondAttribute="centerY" id="6Hz-mC-791"/>
+                <constraint firstItem="83Y-CJ-rl9" firstAttribute="centerY" secondItem="iN0-l3-epB" secondAttribute="centerY" id="DwU-ME-nbE"/>
+                <constraint firstItem="Qnv-gf-35O" firstAttribute="trailing" secondItem="RSG-G5-NY6" secondAttribute="trailing" id="Ssn-xe-f1k"/>
+                <constraint firstItem="83Y-CJ-rl9" firstAttribute="leading" secondItem="RSG-G5-NY6" secondAttribute="leading" id="aAw-eb-8kF"/>
+            </constraints>
+            <nil key="simulatedTopBarMetrics"/>
+            <nil key="simulatedBottomBarMetrics"/>
+            <freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
+            <connections>
+                <outlet property="arrowImage" destination="Qnv-gf-35O" id="daH-V6-SNb"/>
+                <outlet property="sortTitleLabel" destination="83Y-CJ-rl9" id="d1k-0Z-mv0"/>
+            </connections>
+            <point key="canvasLocation" x="131.8840579710145" y="-108.48214285714285"/>
+        </view>
+    </objects>
+    <resources>
+        <image name="sort_down" width="8" height="6"/>
+    </resources>
+</document>

+ 8 - 1
KulexiuForTeacher/KulexiuForTeacher/Module/Mine/View/MineBodyView.m

@@ -72,7 +72,14 @@
     else {
         [self.userAvatal setImage:[UIImage imageNamed:USERDEFAULT_LOGO]];
     }
-    self.userName.text = [NSString returnNoNullStringWithString:infoMessage.username];
+    
+    if ([NSString isEmptyString:infoMessage.username]) {
+        self.userName.text = [NSString stringWithFormat:@"游客%@",infoMessage.userId];
+    }
+    else {
+        self.userName.text = infoMessage.username;
+    }
+    
     if ([infoMessage.musicianAuthStatus isEqualToString:@"DOING"]) {
         self.musicianStatusLabel.text = @"审核中";
     }

二進制
KulexiuForTeacher/build/Debug-iphonesimulator/KulexiuForTeacher.app/Assets.car


二進制
KulexiuForTeacher/build/Debug-iphonesimulator/KulexiuForTeacher.app/KulexiuForTeacher


+ 13 - 2
KulexiuForTeacher/build/Debug-iphonesimulator/KulexiuForTeacher.app/_CodeSignature/CodeResources

@@ -58,7 +58,7 @@
 		</data>
 		<key>Assets.car</key>
 		<data>
-		Co7x6LDHASjSlYjuacIPcR3Rn54=
+		BjSGt42KtmOtDhrowFnTECyGSvY=
 		</data>
 		<key>AuthDisplayView.nib</key>
 		<data>
@@ -628,6 +628,10 @@
 		<data>
 		PFDsdZMhBk3GvzGbtkjR1F7Fc2I=
 		</data>
+		<key>MyVideoSearchView.nib</key>
+		<data>
+		NjLhuSA+ttIfkUwTxCSAIeni7BM=
+		</data>
 		<key>NetworkBodyView.nib</key>
 		<data>
 		xSuhJ2dLBWmrrceKlyOIa0yTOlA=
@@ -3725,7 +3729,7 @@
 		<dict>
 			<key>hash2</key>
 			<data>
-			oJIkckEiIeJbRFwdZBL6S5/FW8YvFj5tNpydF7SfPNw=
+			+LJzMOOmwawEhimY7kIm8JowqRwrqe6atPjfzr5LPeU=
 			</data>
 		</dict>
 		<key>AuthDisplayView.nib</key>
@@ -4688,6 +4692,13 @@
 			rr426amFvIZK15l0pTHJDnxEFt9w91flGnyeQA2bcTE=
 			</data>
 		</dict>
+		<key>MyVideoSearchView.nib</key>
+		<dict>
+			<key>hash2</key>
+			<data>
+			TL5xTK7ZMpv7ofqiWgqa7UfQrhr0yb9Oj/t0cMc4XNI=
+			</data>
+		</dict>
 		<key>NetworkBodyView.nib</key>
 		<dict>
 			<key>hash2</key>

二進制
KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/KulexiuForTeacher-project-headers.hmap


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

@@ -173,6 +173,7 @@
 /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/KLTNavigationController.o
 /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/KSLiveChatroomLeave.o
 /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/KSNormalAlertView.o
+/Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/MyVideoCourseBodyView.o
 /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/VoMemoryCache.o
 /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/KSIMService.o
 /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/ArchiveTools.o
@@ -333,11 +334,11 @@
 /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/KSDocumentViewController.o
 /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/LiveRoomHeadView.o
 /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/KSHoldButton.o
-/Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/MyLiveLessionBodyView.o
 /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/UIView+ValueAdd.o
 /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/AuthDisplayView.o
 /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/UIView+MSSLayout.o
 /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/ALCalendarConfig.o
+/Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/MyVideoSearchView.o
 /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/LLPhotoBrowser.o
 /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/AboutUsViewController.o
 /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/UIButton+HasChooseImage.o

二進制
KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/KulexiuForTeacher_dependency_info.dat


二進制
KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/MineBodyView.o


+ 5 - 2
KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/MyCourseViewController.d

@@ -49,7 +49,10 @@ dependencies: \
   /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/Module/Home/MyCourse/View/MyLiveLessionBodyView.h \
+  /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Module/Home/MyCourse/View/MyVideoCourseBodyView.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Common/Base/kSJXCollectionView.h \
   /Users/wangzhi/DayaWorkspace/klx_teacher/KulexiuForTeacher/KulexiuForTeacher/Module/Home/MyCourse/View/MyLessonBodyView.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

二進制
KulexiuForTeacher/build/KulexiuForTeacher.build/Debug-iphonesimulator/KulexiuForTeacher.build/Objects-normal/x86_64/MyCourseViewController.o


二進制
KulexiuForTeacher/build/XCBuildData/BuildDescriptionCacheIndex-2297acb106a30e2935a01f5221f6a714


二進制
KulexiuForTeacher/build/XCBuildData/build.db