Browse Source

老师认证后现在icon,个人主页优化

Steven 3 năm trước cách đây
mục cha
commit
42c2c407fb
43 tập tin đã thay đổi với 939 bổ sung462 xóa
  1. 30 0
      KulexiuForTeacher/KulexiuForTeacher.xcodeproj/project.pbxproj
  2. BIN
      KulexiuForTeacher/KulexiuForTeacher.xcworkspace/xcuserdata/wangzhi.xcuserdatad/UserInterfaceState.xcuserstate
  3. 0 64
      KulexiuForTeacher/KulexiuForTeacher.xcworkspace/xcuserdata/wangzhi.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist
  4. 6 0
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Auth_logo/Contents.json
  5. 22 0
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Auth_logo/musicianAuth_logo.imageset/Contents.json
  6. BIN
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Auth_logo/musicianAuth_logo.imageset/musicianAuth_logo@2x.png
  7. BIN
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Auth_logo/musicianAuth_logo.imageset/musicianAuth_logo@3x.png
  8. 22 0
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Auth_logo/teacherAuth_logo.imageset/Contents.json
  9. BIN
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Auth_logo/teacherAuth_logo.imageset/teacherAuth_logo@2x.png
  10. BIN
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Auth_logo/teacherAuth_logo.imageset/teacherAuth_logo@3x.png
  11. 6 1
      KulexiuForTeacher/KulexiuForTeacher/Module/Course/AccompanyCourse/View/AccompanyCourseInfoCell.m
  12. 5 3
      KulexiuForTeacher/KulexiuForTeacher/Module/Course/Controller/CourseViewController.m
  13. 2 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Course/Model/TableCourseModel.h
  14. 8 4
      KulexiuForTeacher/KulexiuForTeacher/Module/Course/Model/TableCourseModel.m
  15. 8 1
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/EvaluateCourse/View/EvaluateCouseCell.m
  16. 6 1
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/Homework/View/HomeworkListCell.m
  17. 1 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/MyCourse/Model/LiveLessonModel.h
  18. 7 4
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/MyCourse/Model/LiveLessonModel.m
  19. 3 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/MyCourse/View/MyLessonBodyView.m
  20. 1 1
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/MyCourse/View/MyLiveCourseCell.m
  21. 16 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/View/ClassNoticeView.h
  22. 20 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/View/ClassNoticeView.m
  23. 18 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/View/ClassNoticeView.xib
  24. 41 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/View/HomeHeadView.m
  25. 28 2
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/View/HomeHeadView.xib
  26. 16 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/View/PublicNoticeView.h
  27. 20 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/View/PublicNoticeView.m
  28. 18 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/View/PublicNoticeView.xib
  29. 3 1
      KulexiuForTeacher/KulexiuForTeacher/Module/Mine/BankCard/Controller/BandCardViewController.m
  30. 18 6
      KulexiuForTeacher/KulexiuForTeacher/Module/Mine/MinePage/Controller/MinePageViewController.m
  31. 7 1
      KulexiuForTeacher/KulexiuForTeacher/Module/Mine/MinePage/View/AccompanyCourseCell.m
  32. 6 1
      KulexiuForTeacher/KulexiuForTeacher/Module/Mine/MinePage/View/LiveCourseCell.m
  33. 1 1
      KulexiuForTeacher/KulexiuForTeacher/Module/Mine/MinePage/View/MinePageCourseView.m
  34. 0 2
      KulexiuForTeacher/KulexiuForTeacher/Module/Mine/MinePage/View/MinePageHeadView.h
  35. 3 97
      KulexiuForTeacher/KulexiuForTeacher/Module/Mine/MinePage/View/MinePageHeadView.m
  36. 27 140
      KulexiuForTeacher/KulexiuForTeacher/Module/Mine/MinePage/View/MinePageHeadView.xib
  37. 7 1
      KulexiuForTeacher/KulexiuForTeacher/Module/Mine/MinePage/View/MinePageMusicCell.m
  38. 22 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Mine/MinePage/View/MinePageTopView.h
  39. 155 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Mine/MinePage/View/MinePageTopView.m
  40. 183 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Mine/MinePage/View/MinePageTopView.xib
  41. 7 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Mine/VideoCourse/View/VideoCourseCell.m
  42. 56 7
      KulexiuForTeacher/KulexiuForTeacher/Module/Mine/View/MineBodyView.m
  43. 140 124
      KulexiuForTeacher/KulexiuForTeacher/Module/Mine/View/MineBodyView.xib

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

@@ -462,6 +462,12 @@
 		BC41104A2806706800800BD9 /* HomeworkListCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = BC4110482806706800800BD9 /* HomeworkListCell.xib */; };
 		BC41104D280678E600800BD9 /* HomeworkSortView.m in Sources */ = {isa = PBXBuildFile; fileRef = BC41104C280678E600800BD9 /* HomeworkSortView.m */; };
 		BC41104F280678ED00800BD9 /* HomeworkSortView.xib in Resources */ = {isa = PBXBuildFile; fileRef = BC41104E280678ED00800BD9 /* HomeworkSortView.xib */; };
+		BC58E7D3281B9630004B0893 /* PublicNoticeView.m in Sources */ = {isa = PBXBuildFile; fileRef = BC58E7D2281B9630004B0893 /* PublicNoticeView.m */; };
+		BC58E7D5281B9637004B0893 /* PublicNoticeView.xib in Resources */ = {isa = PBXBuildFile; fileRef = BC58E7D4281B9637004B0893 /* PublicNoticeView.xib */; };
+		BC58E7D8281B964A004B0893 /* ClassNoticeView.m in Sources */ = {isa = PBXBuildFile; fileRef = BC58E7D7281B964A004B0893 /* ClassNoticeView.m */; };
+		BC58E7DA281B9650004B0893 /* ClassNoticeView.xib in Resources */ = {isa = PBXBuildFile; fileRef = BC58E7D9281B9650004B0893 /* ClassNoticeView.xib */; };
+		BC58E7DD281B969B004B0893 /* MinePageTopView.m in Sources */ = {isa = PBXBuildFile; fileRef = BC58E7DC281B969B004B0893 /* MinePageTopView.m */; };
+		BC58E7DF281B96A4004B0893 /* MinePageTopView.xib in Resources */ = {isa = PBXBuildFile; fileRef = BC58E7DE281B96A4004B0893 /* MinePageTopView.xib */; };
 		BC5EB5A92803D85300B4A3B0 /* AccompanyAlertView.m in Sources */ = {isa = PBXBuildFile; fileRef = BC5EB5A82803D85300B4A3B0 /* AccompanyAlertView.m */; };
 		BC5EB5AB2803D86500B4A3B0 /* AccompanyAlertView.xib in Resources */ = {isa = PBXBuildFile; fileRef = BC5EB5AA2803D86500B4A3B0 /* AccompanyAlertView.xib */; };
 		BC5EB5B22804027500B4A3B0 /* MyStyleViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = BC5EB5B12804027500B4A3B0 /* MyStyleViewController.m */; };
@@ -1540,6 +1546,15 @@
 		BC41104B280678E600800BD9 /* HomeworkSortView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HomeworkSortView.h; sourceTree = "<group>"; };
 		BC41104C280678E600800BD9 /* HomeworkSortView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = HomeworkSortView.m; sourceTree = "<group>"; };
 		BC41104E280678ED00800BD9 /* HomeworkSortView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = HomeworkSortView.xib; sourceTree = "<group>"; };
+		BC58E7D1281B9630004B0893 /* PublicNoticeView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PublicNoticeView.h; sourceTree = "<group>"; };
+		BC58E7D2281B9630004B0893 /* PublicNoticeView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PublicNoticeView.m; sourceTree = "<group>"; };
+		BC58E7D4281B9637004B0893 /* PublicNoticeView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = PublicNoticeView.xib; sourceTree = "<group>"; };
+		BC58E7D6281B964A004B0893 /* ClassNoticeView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ClassNoticeView.h; sourceTree = "<group>"; };
+		BC58E7D7281B964A004B0893 /* ClassNoticeView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ClassNoticeView.m; sourceTree = "<group>"; };
+		BC58E7D9281B9650004B0893 /* ClassNoticeView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ClassNoticeView.xib; sourceTree = "<group>"; };
+		BC58E7DB281B969B004B0893 /* MinePageTopView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MinePageTopView.h; sourceTree = "<group>"; };
+		BC58E7DC281B969B004B0893 /* MinePageTopView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MinePageTopView.m; sourceTree = "<group>"; };
+		BC58E7DE281B96A4004B0893 /* MinePageTopView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = MinePageTopView.xib; sourceTree = "<group>"; };
 		BC5EB5A72803D85300B4A3B0 /* AccompanyAlertView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AccompanyAlertView.h; sourceTree = "<group>"; };
 		BC5EB5A82803D85300B4A3B0 /* AccompanyAlertView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AccompanyAlertView.m; sourceTree = "<group>"; };
 		BC5EB5AA2803D86500B4A3B0 /* AccompanyAlertView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = AccompanyAlertView.xib; sourceTree = "<group>"; };
@@ -2217,6 +2232,9 @@
 				275FA56027F31AE100EB6240 /* MinePageHeadView.h */,
 				275FA56127F31AE100EB6240 /* MinePageHeadView.m */,
 				275FA56327F31AEE00EB6240 /* MinePageHeadView.xib */,
+				BC58E7DB281B969B004B0893 /* MinePageTopView.h */,
+				BC58E7DC281B969B004B0893 /* MinePageTopView.m */,
+				BC58E7DE281B96A4004B0893 /* MinePageTopView.xib */,
 				27D83F3A27F3EA5700062476 /* MinePageMienBodyView.h */,
 				27D83F3B27F3EA5700062476 /* MinePageMienBodyView.m */,
 				27D83F3D27F3EA8A00062476 /* MinePageCourseView.h */,
@@ -3146,6 +3164,12 @@
 				2723B68F27F1803F00E0B90B /* HomeHeadView.h */,
 				2723B69027F1803F00E0B90B /* HomeHeadView.m */,
 				2723B69227F1806500E0B90B /* HomeHeadView.xib */,
+				BC58E7D1281B9630004B0893 /* PublicNoticeView.h */,
+				BC58E7D2281B9630004B0893 /* PublicNoticeView.m */,
+				BC58E7D4281B9637004B0893 /* PublicNoticeView.xib */,
+				BC58E7D6281B964A004B0893 /* ClassNoticeView.h */,
+				BC58E7D7281B964A004B0893 /* ClassNoticeView.m */,
+				BC58E7D9281B9650004B0893 /* ClassNoticeView.xib */,
 			);
 			path = View;
 			sourceTree = "<group>";
@@ -4856,6 +4880,7 @@
 				2779335627E316DD0010E277 /* WMPlayer.bundle in Resources */,
 				275E8A7427E18F2800DD3F6E /* Assets.xcassets in Resources */,
 				2755C06927EC71C8007D9070 /* GroupSettingBodyView.xib in Resources */,
+				BC58E7D5281B9637004B0893 /* PublicNoticeView.xib in Resources */,
 				BCEA752D2819134400886A86 /* CardBindResultBodyView.xib in Resources */,
 				BC1365BD280D163200EB03E2 /* MyVideoSearchView.xib in Resources */,
 				2780A06B27E823D300447CFD /* MineBodyView.xib in Resources */,
@@ -4877,6 +4902,7 @@
 				27BC3B2B27F2DB9600D81E30 /* MusicUploadView.xib in Resources */,
 				BCE6A09B27F83E8E00C97704 /* MinePageVideoCell.xib in Resources */,
 				BCE06F2D2818147000234817 /* KSConfirmAlertView.xib in Resources */,
+				BC58E7DF281B96A4004B0893 /* MinePageTopView.xib in Resources */,
 				BCEA75322819336A00886A86 /* WithdrawBodyView.xib in Resources */,
 				2723B68E27F1686100E0B90B /* HomeNavView.xib in Resources */,
 				BC5EB5C62804087700B4A3B0 /* MyStyleBottomView.xib in Resources */,
@@ -4929,6 +4955,7 @@
 				BC7CFFAA2817E3BD00CAEB21 /* IncomeCountTopView.xib in Resources */,
 				BCA9CE3A27FD93EB00D558C6 /* AccompanyStudentEvaCell.xib in Resources */,
 				BCE6A09627F823DC00C97704 /* MinePageMusicCell.xib in Resources */,
+				BC58E7DA281B9650004B0893 /* ClassNoticeView.xib in Resources */,
 				277D431F27E999A000107DB7 /* ModifyBodyView.xib in Resources */,
 				BC7CFFBB2817E9FC00CAEB21 /* stacked_line_chart.html in Resources */,
 				27A54CFE27E9BDC5007309A3 /* AboutUsBodyView.xib in Resources */,
@@ -5212,6 +5239,7 @@
 				2728086A27E6C12000DB71EA /* FirstSettingBodyView.m in Sources */,
 				275FA1A827E7327500CFEA2E /* KSWebSocketManager.m in Sources */,
 				2779362627E339D20010E277 /* KSTouchCapturingWindow.m in Sources */,
+				BC58E7D3281B9630004B0893 /* PublicNoticeView.m in Sources */,
 				277931F727E30FC20010E277 /* UIScreen+Extend.m in Sources */,
 				2779322627E30FC30010E277 /* KSMessageInputView.m in Sources */,
 				BCDB09402805C0EF00D0BDAD /* NewClassPopView.m in Sources */,
@@ -5240,6 +5268,7 @@
 				27F9CB0B27EC5C06003E0FE4 /* KSSelectConversationViewController.m in Sources */,
 				2755C08D27ED5DB2007D9070 /* GroupApplyChooseCell.m in Sources */,
 				2779321A27E30FC30010E277 /* SkipTextView.m in Sources */,
+				BC58E7D8281B964A004B0893 /* ClassNoticeView.m in Sources */,
 				277931C927E30FC20010E277 /* DiskFreeSpaceManager.m in Sources */,
 				2779321627E30FC30010E277 /* StoreShopCaterview.m in Sources */,
 				277931D127E30FC20010E277 /* UrlDecode.m in Sources */,
@@ -5423,6 +5452,7 @@
 				BCC9F41627F69BD200647449 /* TimeStampMessage.m in Sources */,
 				2779326C27E30FD80010E277 /* FSCalendarExtensions.m in Sources */,
 				BCF61BEC28042D1A0000ACFE /* InstrumentMessageModel.m in Sources */,
+				BC58E7DD281B969B004B0893 /* MinePageTopView.m in Sources */,
 				27D5D5D127EDBA9400B4720C /* NoticeEditBodyView.m in Sources */,
 				BCC9F42D27F69BD200647449 /* UIView+MBProgressHUD.m in Sources */,
 				2779322927E30FC30010E277 /* sortButton.m in Sources */,

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


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

@@ -83,38 +83,6 @@
       <BreakpointProxy
          BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
          <BreakpointContent
-            uuid = "C29CA973-9C0E-43CF-8C97-72452E222E9C"
-            shouldBeEnabled = "Yes"
-            ignoreCount = "0"
-            continueAfterRunningActions = "No"
-            filePath = "KulexiuForTeacher/Module/Home/MyCourse/View/MyLessonBodyView.m"
-            startingColumnNumber = "9223372036854775807"
-            endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "454"
-            endingLineNumber = "454"
-            landmarkName = "-tableView:didSelectRowAtIndexPath:"
-            landmarkType = "7">
-         </BreakpointContent>
-      </BreakpointProxy>
-      <BreakpointProxy
-         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
-         <BreakpointContent
-            uuid = "171D4790-A23B-400B-989E-D34F5ACA1295"
-            shouldBeEnabled = "Yes"
-            ignoreCount = "0"
-            continueAfterRunningActions = "No"
-            filePath = "KulexiuForTeacher/Module/Course/Controller/CourseViewController.m"
-            startingColumnNumber = "9223372036854775807"
-            endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "448"
-            endingLineNumber = "448"
-            landmarkName = "-adjustCourseWithSource:time:"
-            landmarkType = "7">
-         </BreakpointContent>
-      </BreakpointProxy>
-      <BreakpointProxy
-         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
-         <BreakpointContent
             uuid = "FD38EDFC-31E9-4CA2-9E97-5C867C7DC46D"
             shouldBeEnabled = "Yes"
             ignoreCount = "0"
@@ -163,22 +131,6 @@
       <BreakpointProxy
          BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
          <BreakpointContent
-            uuid = "8B7D2558-0C18-469C-B50F-B0DEDF3788AE"
-            shouldBeEnabled = "Yes"
-            ignoreCount = "0"
-            continueAfterRunningActions = "No"
-            filePath = "KulexiuForTeacher/Module/Mine/CreateStyle/Controller/MyStyleViewController.m"
-            startingColumnNumber = "9223372036854775807"
-            endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "76"
-            endingLineNumber = "76"
-            landmarkName = "-requestMyStyle"
-            landmarkType = "7">
-         </BreakpointContent>
-      </BreakpointProxy>
-      <BreakpointProxy
-         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
-         <BreakpointContent
             uuid = "F4C2A4F4-F75C-4E8E-A876-92C59B8B9ADE"
             shouldBeEnabled = "Yes"
             ignoreCount = "0"
@@ -240,21 +192,5 @@
             landmarkType = "7">
          </BreakpointContent>
       </BreakpointProxy>
-      <BreakpointProxy
-         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
-         <BreakpointContent
-            uuid = "87FDC9D5-6128-40ED-8BC6-060B4EAEF26C"
-            shouldBeEnabled = "Yes"
-            ignoreCount = "0"
-            continueAfterRunningActions = "No"
-            filePath = "KulexiuForTeacher/Module/Home/Income/Controller/MyIncomeViewController.m"
-            startingColumnNumber = "9223372036854775807"
-            endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "146"
-            endingLineNumber = "146"
-            landmarkName = "-requestData"
-            landmarkType = "7">
-         </BreakpointContent>
-      </BreakpointProxy>
    </Breakpoints>
 </Bucket>

+ 6 - 0
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Auth_logo/Contents.json

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

+ 22 - 0
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Auth_logo/musicianAuth_logo.imageset/Contents.json

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

BIN
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Auth_logo/musicianAuth_logo.imageset/musicianAuth_logo@2x.png


BIN
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Auth_logo/musicianAuth_logo.imageset/musicianAuth_logo@3x.png


+ 22 - 0
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Auth_logo/teacherAuth_logo.imageset/Contents.json

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

BIN
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Auth_logo/teacherAuth_logo.imageset/teacherAuth_logo@2x.png


BIN
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Auth_logo/teacherAuth_logo.imageset/teacherAuth_logo@3x.png


+ 6 - 1
KulexiuForTeacher/KulexiuForTeacher/Module/Course/AccompanyCourse/View/AccompanyCourseInfoCell.m

@@ -43,7 +43,12 @@
     [formatter setDateFormat:@"HH:mm"];
     NSString *lessonEnd = [formatter stringFromDate:endDate];
     self.courseTime.text = [NSString stringWithFormat:@"%@~%@",[NSString returnNoNullStringWithString:lessonBegin],[NSString returnNoNullStringWithString:lessonEnd]];
-    
+    if ([NSString isEmptyString:studentName]) {
+        self.studentName.text = [NSString stringWithFormat:@"游客%@",studentId];
+    }
+    else {
+        self.studentName.text = studentName;
+    }
     self.studentName.text = [NSString returnNoNullStringWithString:studentName];
     [self.studentAvatar sd_setImageWithURL:[NSURL URLWithString:studentAvatar] placeholderImage:[UIImage imageNamed:USERDEFAULT_LOGO]];
     self.studentSubject.text = [NSString returnNoNullStringWithString:studentSubject];

+ 5 - 3
KulexiuForTeacher/KulexiuForTeacher/Module/Course/Controller/CourseViewController.m

@@ -475,7 +475,10 @@
     switch (action) {
         case LIVECOURSEACTION_CHAT:  // 聊天
         {
-            [self chatAction:source.courseGoupId groupName:source.name isGroup:YES];
+            if ([NSString isEmptyString:source.imGroupId]) {
+                return;
+            }
+            [self chatAction:source.imGroupId groupName:source.name isGroup:YES];
         }
             break;
         case LIVECOURSEACTION_LIVEROOM: // 直播课上课
@@ -577,8 +580,7 @@
         _tableView.backgroundColor = [UIColor clearColor];
         _tableView.showsVerticalScrollIndicator = NO;
         _tableView.showsHorizontalScrollIndicator = NO;
-//        _tableView.rowHeight = UITableViewAutomaticDimension;
-        _tableView.rowHeight = 127.0f;
+        _tableView.rowHeight = 147.0f;
         [_tableView registerNib:[UINib nibWithNibName:@"AccompanyCourseCell" bundle:[NSBundle mainBundle]] forCellReuseIdentifier:@"AccompanyCourseCell"];
         [_tableView registerNib:[UINib nibWithNibName:@"CourseForLiveCell" bundle:[NSBundle mainBundle]] forCellReuseIdentifier:@"CourseForLiveCell"];
         UIView *bottomView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, 15)];

+ 2 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Course/Model/TableCourseModel.h

@@ -24,6 +24,8 @@
 @property (nonatomic, strong) NSString *courseType;
 @property (nonatomic, strong) NSString *name;
 @property (nonatomic, strong) NSString *startTime;
+@property (nonatomic, strong) NSString *imGroupId;
+
 
 + (instancetype)modelObjectWithDictionary:(NSDictionary *)dict;
 - (instancetype)initWithDictionary:(NSDictionary *)dict;

+ 8 - 4
KulexiuForTeacher/KulexiuForTeacher/Module/Course/Model/TableCourseModel.m

@@ -21,7 +21,7 @@ NSString *const kTableCourseModelPayCount = @"payCount";
 NSString *const kTableCourseModelCourseType = @"courseType";
 NSString *const kTableCourseModelName = @"name";
 NSString *const kTableCourseModelStartTime = @"startTime";
-
+NSString *const kTableCourseModelImGroupId = @"imGroupId";
 
 @interface TableCourseModel ()
 
@@ -44,7 +44,7 @@ NSString *const kTableCourseModelStartTime = @"startTime";
 @synthesize courseType = _courseType;
 @synthesize name = _name;
 @synthesize startTime = _startTime;
-
+@synthesize imGroupId = _imGroupId;
 
 + (instancetype)modelObjectWithDictionary:(NSDictionary *)dict
 {
@@ -71,7 +71,7 @@ NSString *const kTableCourseModelStartTime = @"startTime";
             self.courseType = [self objectOrNilForKey:kTableCourseModelCourseType fromDictionary:dict];
             self.name = [self objectOrNilForKey:kTableCourseModelName fromDictionary:dict];
             self.startTime = [self objectOrNilForKey:kTableCourseModelStartTime fromDictionary:dict];
-
+        self.imGroupId = [self objectOrNilForKey:kTableCourseModelImGroupId fromDictionary:dict];
     }
     
     return self;
@@ -94,7 +94,7 @@ NSString *const kTableCourseModelStartTime = @"startTime";
     [mutableDict setValue:self.courseType forKey:kTableCourseModelCourseType];
     [mutableDict setValue:self.name forKey:kTableCourseModelName];
     [mutableDict setValue:self.startTime forKey:kTableCourseModelStartTime];
-
+    [mutableDict setValue:self.imGroupId forKey:kTableCourseModelImGroupId];
     return [NSDictionary dictionaryWithDictionary:mutableDict];
 }
 
@@ -134,6 +134,7 @@ NSString *const kTableCourseModelStartTime = @"startTime";
     self.courseType = [aDecoder decodeObjectForKey:kTableCourseModelCourseType];
     self.name = [aDecoder decodeObjectForKey:kTableCourseModelName];
     self.startTime = [aDecoder decodeObjectForKey:kTableCourseModelStartTime];
+    self.imGroupId = [aDecoder decodeObjectForKey:kTableCourseModelImGroupId];
     return self;
 }
 
@@ -153,6 +154,8 @@ NSString *const kTableCourseModelStartTime = @"startTime";
     [aCoder encodeObject:_courseType forKey:kTableCourseModelCourseType];
     [aCoder encodeObject:_name forKey:kTableCourseModelName];
     [aCoder encodeObject:_startTime forKey:kTableCourseModelStartTime];
+    [aCoder encodeObject:_imGroupId forKey:kTableCourseModelImGroupId];
+    
 }
 
 - (id)copyWithZone:(NSZone *)zone
@@ -174,6 +177,7 @@ NSString *const kTableCourseModelStartTime = @"startTime";
         copy.courseType = [self.courseType copyWithZone:zone];
         copy.name = [self.name copyWithZone:zone];
         copy.startTime = [self.startTime copyWithZone:zone];
+        copy.imGroupId = [self.imGroupId copyWithZone:zone];
     }
     
     return copy;

+ 8 - 1
KulexiuForTeacher/KulexiuForTeacher/Module/Home/EvaluateCourse/View/EvaluateCouseCell.m

@@ -23,6 +23,7 @@
     self.selectionStyle = UITableViewCellSelectionStyleNone;
 }
 
+
 - (void)configCellWithModel:(EvaluateListModel *)model {
     // time
     NSDateFormatter *formatter = [NSObject getDateformatter];
@@ -35,7 +36,13 @@
     NSString *lessonEnd = [formatter stringFromDate:endDate];
     self.courseTime.text = [NSString stringWithFormat:@"%@~%@",[NSString returnNoNullStringWithString:lessonBegin],[NSString returnNoNullStringWithString:lessonEnd]];
     [self.studentAvatar sd_setImageWithURL:[NSURL URLWithString:model.avatar] placeholderImage:[UIImage imageNamed:USERDEFAULT_LOGO]];
-    self.studentName.text = [NSString returnNoNullStringWithString:model.userName];
+    if ([NSString isEmptyString:model.userName]) {
+        self.studentName.text = [NSString stringWithFormat:@"游客%@",model.userId];
+    }
+    else {
+        self.studentName.text = model.userName;
+    }
+    
     self.subjectName.text = [NSString returnNoNullStringWithString:model.subjectName];
 }
 

+ 6 - 1
KulexiuForTeacher/KulexiuForTeacher/Module/Home/Homework/View/HomeworkListCell.m

@@ -46,8 +46,13 @@
     [formatter setDateFormat:@"HH:mm"];
     NSString *lessonEnd = [formatter stringFromDate:endDate];
     self.courseTime.text = [NSString stringWithFormat:@"%@~%@",[NSString returnNoNullStringWithString:lessonBegin],[NSString returnNoNullStringWithString:lessonEnd]];
+    if ([NSString isEmptyString:sourceModel.studentName]) {
+        self.studentNameLabel.text = [NSString stringWithFormat:@"游客%@",sourceModel.studentId];
+    }
+    else {
+        self.studentNameLabel.text = sourceModel.studentName;
+    }
     
-    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];
 

+ 1 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Home/MyCourse/Model/LiveLessonModel.h

@@ -19,6 +19,7 @@
 @property (nonatomic, strong) NSString *subjectName;
 @property (nonatomic, strong) NSString *startTime;
 @property (nonatomic, strong) NSString *courseGroupName;
+@property (nonatomic, strong) NSString *imGroupId;
 
 + (instancetype)modelObjectWithDictionary:(NSDictionary *)dict;
 - (instancetype)initWithDictionary:(NSDictionary *)dict;

+ 7 - 4
KulexiuForTeacher/KulexiuForTeacher/Module/Home/MyCourse/Model/LiveLessonModel.m

@@ -16,7 +16,7 @@ NSString *const kLiveLessonModelBackgroundPic = @"backgroundPic";
 NSString *const kLiveLessonModelSubjectName = @"subjectName";
 NSString *const kLiveLessonModelStartTime = @"startTime";
 NSString *const kLiveLessonModelCourseGroupName = @"courseGroupName";
-
+NSString *const kLiveLessonModelImGroupId = @"imGroupId";
 
 @interface LiveLessonModel ()
 
@@ -34,7 +34,7 @@ NSString *const kLiveLessonModelCourseGroupName = @"courseGroupName";
 @synthesize subjectName = _subjectName;
 @synthesize startTime = _startTime;
 @synthesize courseGroupName = _courseGroupName;
-
+@synthesize imGroupId = _imGroupId;
 
 + (instancetype)modelObjectWithDictionary:(NSDictionary *)dict
 {
@@ -56,7 +56,7 @@ NSString *const kLiveLessonModelCourseGroupName = @"courseGroupName";
             self.subjectName = [self objectOrNilForKey:kLiveLessonModelSubjectName fromDictionary:dict];
             self.startTime = [self objectOrNilForKey:kLiveLessonModelStartTime fromDictionary:dict];
             self.courseGroupName = [self objectOrNilForKey:kLiveLessonModelCourseGroupName fromDictionary:dict];
-
+            self.imGroupId = [self objectOrNilForKey:kLiveLessonModelImGroupId fromDictionary:dict];
     }
     
     return self;
@@ -74,7 +74,7 @@ NSString *const kLiveLessonModelCourseGroupName = @"courseGroupName";
     [mutableDict setValue:self.subjectName forKey:kLiveLessonModelSubjectName];
     [mutableDict setValue:self.startTime forKey:kLiveLessonModelStartTime];
     [mutableDict setValue:self.courseGroupName forKey:kLiveLessonModelCourseGroupName];
-
+    [mutableDict setValue:self.imGroupId forKey:kLiveLessonModelImGroupId];
     return [NSDictionary dictionaryWithDictionary:mutableDict];
 }
 
@@ -109,6 +109,7 @@ NSString *const kLiveLessonModelCourseGroupName = @"courseGroupName";
     self.subjectName = [aDecoder decodeObjectForKey:kLiveLessonModelSubjectName];
     self.startTime = [aDecoder decodeObjectForKey:kLiveLessonModelStartTime];
     self.courseGroupName = [aDecoder decodeObjectForKey:kLiveLessonModelCourseGroupName];
+    self.imGroupId = [aDecoder decodeObjectForKey:kLiveLessonModelImGroupId];
     return self;
 }
 
@@ -123,6 +124,7 @@ NSString *const kLiveLessonModelCourseGroupName = @"courseGroupName";
     [aCoder encodeObject:_subjectName forKey:kLiveLessonModelSubjectName];
     [aCoder encodeObject:_startTime forKey:kLiveLessonModelStartTime];
     [aCoder encodeObject:_courseGroupName forKey:kLiveLessonModelCourseGroupName];
+    [aCoder encodeObject:_imGroupId forKey:kLiveLessonModelImGroupId];
 }
 
 - (id)copyWithZone:(NSZone *)zone
@@ -139,6 +141,7 @@ NSString *const kLiveLessonModelCourseGroupName = @"courseGroupName";
         copy.subjectName = [self.subjectName copyWithZone:zone];
         copy.startTime = [self.startTime copyWithZone:zone];
         copy.courseGroupName = [self.courseGroupName copyWithZone:zone];
+        copy.imGroupId = [self.imGroupId copyWithZone:zone];
     }
     
     return copy;

+ 3 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Home/MyCourse/View/MyLessonBodyView.m

@@ -435,6 +435,9 @@
 }
 
 - (void)chatAction:(NSString *)targetId {
+    if ([NSString isEmptyString:targetId]) {
+        return;
+    }
     KSChatConversationViewController *conversationVC = [[KSChatConversationViewController alloc] init];
     conversationVC.targetId = targetId;
     conversationVC.conversationType = ConversationType_GROUP;

+ 1 - 1
KulexiuForTeacher/KulexiuForTeacher/Module/Home/MyCourse/View/MyLiveCourseCell.m

@@ -42,7 +42,7 @@
     self.courseNameLabel.text = [NSString returnNoNullStringWithString:model.courseGroupName];
     self.subjectName.text = [NSString returnNoNullStringWithString:model.subjectName];
     self.descLabel.text = [NSString stringWithFormat:@"%.0f人已购买",model.studentCount];
-    self.targetId = model.courseGroupId;
+    self.targetId = model.imGroupId;
     // time
     NSDateFormatter *formatter = [NSObject getDateformatter];
     [formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];

+ 16 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Home/View/ClassNoticeView.h

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

+ 20 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Home/View/ClassNoticeView.m

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

+ 18 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Home/View/ClassNoticeView.xib

@@ -0,0 +1,18 @@
+<?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"/>
+        <view contentMode="scaleToFill" id="iN0-l3-epB">
+            <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
+            <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+            <color key="backgroundColor" systemColor="systemBackgroundColor" cocoaTouchSystemColor="whiteColor"/>
+            <viewLayoutGuide key="safeArea" id="vUN-kp-3ea"/>
+        </view>
+    </objects>
+</document>

+ 41 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Home/View/HomeHeadView.m

@@ -26,8 +26,19 @@
 @property (weak, nonatomic) IBOutlet UIImageView *userAvatal;
 @property (weak, nonatomic) IBOutlet UILabel *userName;
 
+@property (weak, nonatomic) IBOutlet UIImageView *firstLogo;
+@property (weak, nonatomic) IBOutlet NSLayoutConstraint *firstLogoWidth;
+
+@property (weak, nonatomic) IBOutlet UIImageView *secondLogo;
+@property (weak, nonatomic) IBOutlet NSLayoutConstraint *secondLogoWidth;
+@property (weak, nonatomic) IBOutlet NSLayoutConstraint *logoSpace;
+
 @property (nonatomic, copy) HomeHeadCallback callback;
 
+@property (nonatomic, assign) BOOL hasAuthTeacher;
+
+@property (nonatomic, assign) BOOL hasAuthMusic;
+
 @end
 
 @implementation HomeHeadView
@@ -39,6 +50,7 @@
 
 - (void)configMessage:(TeacherInfo *)infoMessage {
     if ([infoMessage.entryStatus isEqualToString:@"PASS"]) { // 审核通过
+        self.hasAuthTeacher = YES;
         self.authView.hidden = YES;
         self.descView.hidden = NO;
         [self displayCount:infoMessage.fansNum inView:self.fansCount];
@@ -49,6 +61,7 @@
         self.tipsButton.hidden = YES;
     }
     else {
+        self.hasAuthTeacher = NO;
         self.authView.hidden = NO;
         self.descView.hidden = YES;
         self.tipsButton.hidden = NO;
@@ -65,6 +78,13 @@
             self.authLabel.text = @"认证老师";
         }
     }
+    
+    if ([infoMessage.musicianAuthStatus isEqualToString:@"PASS"]) {
+        self.hasAuthMusic = YES;
+    }else {
+        self.hasAuthMusic = NO;
+    }
+    
     self.starView.rate = infoMessage.starGrade / 5.0f;
     
     if (![NSString isEmptyString:infoMessage.heardUrl]) {
@@ -79,7 +99,28 @@
     else {
         self.userName.text = [NSString returnNoNullStringWithString:infoMessage.username];
     }
+    [self evaluateAuthLogo];
+}
+
+- (void)evaluateAuthLogo {
+    if (self.hasAuthTeacher) {
+        self.firstLogo.hidden = NO;
+        self.firstLogoWidth.constant = 53.0f;
+    }
+    else {
+        self.firstLogo.hidden = YES;
+        self.firstLogoWidth.constant = 0.0f;
+        self.logoSpace.constant = 0.0f;
+    }
     
+    if (self.hasAuthMusic) {
+        self.secondLogo.hidden = NO;
+        self.secondLogoWidth.constant = 61.0f;
+    }
+    else {
+        self.secondLogo.hidden = YES ;
+        self.secondLogoWidth.constant = 0.0f;
+    }
 }
 
 - (void)displayCount:(NSInteger)count inView:(UILabel *)descLabel {

+ 28 - 2
KulexiuForTeacher/KulexiuForTeacher/Module/Home/View/HomeHeadView.xib

@@ -50,8 +50,8 @@
                         <constraint firstItem="lpX-9C-A9n" firstAttribute="leading" secondItem="Bxq-wl-TlW" secondAttribute="leading" id="jyz-0E-ZrB"/>
                     </constraints>
                 </view>
-                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="游客12e32td" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="xs8-aA-tdP">
-                    <rect key="frame" x="76" y="40" width="105" height="22"/>
+                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="游客" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="xs8-aA-tdP">
+                    <rect key="frame" x="76" y="40" width="37" height="22"/>
                     <fontDescription key="fontDescription" type="system" weight="medium" pointSize="18"/>
                     <color key="textColor" red="0.1019607843" green="0.1019607843" blue="0.1019607843" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                     <nil key="highlightedColor"/>
@@ -255,15 +255,34 @@
                         <constraint firstItem="cWQ-Xi-HcJ" firstAttribute="leading" secondItem="ixV-E1-X1x" secondAttribute="leading" constant="6" id="qYM-39-uFA"/>
                     </constraints>
                 </view>
+                <imageView hidden="YES" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="teacherAuth_logo" translatesAutoresizingMaskIntoConstraints="NO" id="BgO-43-Wsb">
+                    <rect key="frame" x="123" y="40" width="53" height="22"/>
+                    <constraints>
+                        <constraint firstAttribute="width" constant="53" id="9GO-UE-0ar"/>
+                        <constraint firstAttribute="height" constant="22" id="Yi8-08-7BF"/>
+                    </constraints>
+                </imageView>
+                <imageView hidden="YES" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="musicianAuth_logo" translatesAutoresizingMaskIntoConstraints="NO" id="3fi-Mc-0oP">
+                    <rect key="frame" x="180" y="40" width="61" height="22"/>
+                    <constraints>
+                        <constraint firstAttribute="width" constant="61" id="3Nz-yk-dD3"/>
+                        <constraint firstAttribute="height" constant="22" id="84M-Rs-Qki"/>
+                    </constraints>
+                </imageView>
             </subviews>
             <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
             <constraints>
                 <constraint firstItem="Bxq-wl-TlW" firstAttribute="leading" secondItem="xs8-aA-tdP" secondAttribute="leading" id="7RR-w2-2XX"/>
                 <constraint firstItem="QKO-WL-PjF" firstAttribute="top" secondItem="ixV-E1-X1x" secondAttribute="top" id="9ca-DC-xzk"/>
+                <constraint firstItem="BgO-43-Wsb" firstAttribute="leading" secondItem="xs8-aA-tdP" secondAttribute="trailing" constant="10" id="9d8-9B-eG1"/>
                 <constraint firstAttribute="bottom" secondItem="QKO-WL-PjF" secondAttribute="bottom" id="BP0-cm-2XI"/>
                 <constraint firstItem="Bxq-wl-TlW" firstAttribute="top" secondItem="xs8-aA-tdP" secondAttribute="bottom" constant="5" id="DCH-Eo-fVc"/>
+                <constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="3fi-Mc-0oP" secondAttribute="trailing" constant="10" id="DeN-Bs-2kD"/>
+                <constraint firstItem="3fi-Mc-0oP" firstAttribute="leading" secondItem="BgO-43-Wsb" secondAttribute="trailing" constant="4" id="EfU-XF-s6S"/>
                 <constraint firstItem="xs8-aA-tdP" firstAttribute="leading" secondItem="Vp5-5Y-h2u" secondAttribute="trailing" constant="10" id="Hb2-ur-ijs"/>
+                <constraint firstItem="3fi-Mc-0oP" firstAttribute="centerY" secondItem="xs8-aA-tdP" secondAttribute="centerY" id="J3j-Ua-dvb"/>
                 <constraint firstAttribute="bottom" secondItem="Keh-u1-LE5" secondAttribute="bottom" id="Lww-yr-BS1"/>
+                <constraint firstItem="BgO-43-Wsb" firstAttribute="centerY" secondItem="xs8-aA-tdP" secondAttribute="centerY" id="OpO-ZU-93H"/>
                 <constraint firstItem="xs8-aA-tdP" firstAttribute="top" secondItem="Vp5-5Y-h2u" secondAttribute="top" constant="6" id="fYJ-um-Z1x"/>
                 <constraint firstItem="QKO-WL-PjF" firstAttribute="leading" secondItem="ixV-E1-X1x" secondAttribute="leading" id="fga-xU-rvq"/>
                 <constraint firstItem="Vp5-5Y-h2u" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" constant="14" id="gsT-nC-Tat"/>
@@ -283,6 +302,11 @@
                 <outlet property="descView" destination="QKO-WL-PjF" id="Rty-dp-jnV"/>
                 <outlet property="fansCount" destination="Xs4-YK-GXn" id="fzy-e9-IbW"/>
                 <outlet property="finishCourse" destination="1Vc-45-NJH" id="u9R-oV-Vev"/>
+                <outlet property="firstLogo" destination="BgO-43-Wsb" id="xzt-hN-NXr"/>
+                <outlet property="firstLogoWidth" destination="9GO-UE-0ar" id="ie4-lR-H1S"/>
+                <outlet property="logoSpace" destination="EfU-XF-s6S" id="Adp-jg-MYi"/>
+                <outlet property="secondLogo" destination="3fi-Mc-0oP" id="HC0-cA-u3g"/>
+                <outlet property="secondLogoWidth" destination="3Nz-yk-dD3" id="q4V-JN-uJO"/>
                 <outlet property="starView" destination="lpX-9C-A9n" id="s6I-b7-5ZA"/>
                 <outlet property="starbgView" destination="Bxq-wl-TlW" id="Asa-p4-aUD"/>
                 <outlet property="tipsButton" destination="cWQ-Xi-HcJ" id="A0B-Xc-aya"/>
@@ -303,6 +327,8 @@
         <image name="auth_tips" width="185" height="26"/>
         <image name="home_ikon" width="228" height="162"/>
         <image name="mine_next" width="6" height="11"/>
+        <image name="musicianAuth_logo" width="61" height="22"/>
+        <image name="teacherAuth_logo" width="53" height="22"/>
         <image name="user_default_avatal" width="52" height="52"/>
     </resources>
 </document>

+ 16 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Home/View/PublicNoticeView.h

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

+ 20 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Home/View/PublicNoticeView.m

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

+ 18 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Home/View/PublicNoticeView.xib

@@ -0,0 +1,18 @@
+<?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"/>
+        <view contentMode="scaleToFill" id="iN0-l3-epB">
+            <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
+            <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+            <color key="backgroundColor" systemColor="systemBackgroundColor" cocoaTouchSystemColor="whiteColor"/>
+            <viewLayoutGuide key="safeArea" id="vUN-kp-3ea"/>
+        </view>
+    </objects>
+</document>

+ 3 - 1
KulexiuForTeacher/KulexiuForTeacher/Module/Mine/BankCard/Controller/BandCardViewController.m

@@ -133,7 +133,9 @@
         }
         else {
             [self MBPShow:MESSAGEKEY];
-            [self showResultViewSuccess:NO];
+            dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1.5f * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
+                [self showResultViewSuccess:NO];
+            });            
         }
     } faliure:^(NSError * _Nonnull error) {
         [self removehub];

+ 18 - 6
KulexiuForTeacher/KulexiuForTeacher/Module/Mine/MinePage/Controller/MinePageViewController.m

@@ -14,6 +14,7 @@
 #import "MinePageVideoView.h"
 #import "TeacherInfo.h"
 #import "UserInfoManager.h"
+#import "MinePageTopView.h"
 
 #define HEADER_HEIGHT (64)
 
@@ -27,6 +28,8 @@
 
 @property (nonatomic, strong) TeacherInfo *teacherInfo;
 
+@property (nonatomic, strong) MinePageTopView *topView;
+
 @end
 
 @implementation MinePageViewController
@@ -46,8 +49,10 @@
     CGFloat headHeight = [self.headView getViewHeight];
     self.headView.frame = CGRectMake(0, 0, kScreenWidth, headHeight);
     
-    _categoryView = [[JXCategoryTitleView alloc] initWithFrame:CGRectMake(0, headHeight, kScreenWidth, HEADER_HEIGHT)];
-    _categoryView.backgroundColor = HexRGB(0xf6f8f9);
+    CGFloat topHeight = kNaviBarHeight + 30;
+    
+    _categoryView = [[JXCategoryTitleView alloc] initWithFrame:CGRectMake(0, topHeight, kScreenWidth, HEADER_HEIGHT)];
+    _categoryView.backgroundColor = [UIColor clearColor];
     self.categoryView.titles = self.titles;
     self.categoryView.delegate = self;
     self.categoryView.titleFont = [UIFont systemFontOfSize:16.0f];
@@ -62,7 +67,7 @@
     self.categoryView.indicators = @[lineView];
     
     _pagerView = [self preferredPagingView];
-    self.pagerView.frame = CGRectMake(0, headHeight, kScreenWidth, kScreenHeight - iPhoneXSafeBottomMargin - headHeight);
+    self.pagerView.frame = CGRectMake(0, topHeight, kScreenWidth, kScreenHeight - iPhoneXSafeBottomMargin - topHeight);
     self.pagerView.mainTableView.gestureDelegate = self;
     self.pagerView.backgroundColor = [UIColor clearColor];
     self.pagerView.mainTableView.backgroundColor = [UIColor clearColor];
@@ -91,7 +96,7 @@
 }
 
 - (void)refreshHeadView {
-    [self.headView configSource:self.teacherInfo];
+    [self.topView configSource:self.teacherInfo];
     // 刷新老师认证和音乐人认证状态
     [self refreshAuthStatus];
 }
@@ -141,11 +146,11 @@
 #pragma mark - JXPagerViewDelegate
 
 - (UIView *)tableHeaderViewInPagerView:(JXPagerView *)pagerView {
-    return [UIView new];
+    return self.topView;
 }
 
 - (NSUInteger)tableHeaderViewHeightInPagerView:(JXPagerView *)pagerView {
-    return CGFLOAT_MIN;
+    return [self.topView getViewHeight];
 }
 
 - (NSUInteger)heightForPinSectionHeaderInPagerView:(JXPagerView *)pagerView {
@@ -281,6 +286,13 @@
 }
 
 
+- (MinePageTopView *)topView {
+    if (!_topView) {
+        _topView = [MinePageTopView shareInstance];
+    }
+    return _topView;
+}
+
 /*
 #pragma mark - Navigation
 

+ 7 - 1
KulexiuForTeacher/KulexiuForTeacher/Module/Mine/MinePage/View/AccompanyCourseCell.m

@@ -110,7 +110,13 @@
     self.lessonModel = model;
     
     [self.studentAvatar sd_setImageWithURL:[NSURL URLWithString:model.cover] placeholderImage:[UIImage imageNamed:USERDEFAULT_LOGO]];
-    self.studentName.text = [NSString returnNoNullStringWithString:model.name];
+    if ([NSString isEmptyString:model.name]) {
+        self.studentName.text = [NSString stringWithFormat:@"游客%@",model.userId];
+    }
+    else {
+        self.studentName.text = model.name;
+    }
+    
     self.studentSubject.text = [NSString returnNoNullStringWithString:model.subjectName];
     
     // time

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

@@ -32,7 +32,12 @@
 - (void)configCellWithSource:(LiveCourseModel *)model hideStudentInfo:(BOOL)hiddenInfo {
     [self.coverImage sd_setImageWithURL:[NSURL URLWithString:model.backgroundPic] placeholderImage:[UIImage imageNamed:@"video_placeholder"]];
     self.courseName.text = [NSString returnNoNullStringWithString:model.courseGroupName];
-    self.teacherName.text = [NSString returnNoNullStringWithString:model.teacherName];
+    if ([NSString isEmptyString:model.teacherName]) {
+        self.teacherName.text = [NSString stringWithFormat:@"游客%@",model.teacherId];
+    }
+    else {
+        self.teacherName.text = model.teacherName;
+    }
     [self.teacherAvatar sd_setImageWithURL:[NSURL URLWithString:model.avatar] placeholderImage:[UIImage imageNamed:USERDEFAULT_LOGO]];
     
     if (hiddenInfo) {

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

@@ -256,7 +256,7 @@
         return 100;
     }
     else if (self.selectIndex == 2) {
-        return 100;
+        return 150.0f;
     }
     else {
         return 110.0f;;

+ 0 - 2
KulexiuForTeacher/KulexiuForTeacher/Module/Mine/MinePage/View/MinePageHeadView.h

@@ -15,8 +15,6 @@ NS_ASSUME_NONNULL_BEGIN
 
 + (instancetype)shareInstance;
 
-- (void)configSource:(id)source;
-
 - (void)backAction:(MinePageBack)callback;
 
 - (CGFloat)getViewHeight;

+ 3 - 97
KulexiuForTeacher/KulexiuForTeacher/Module/Mine/MinePage/View/MinePageHeadView.m

@@ -6,26 +6,11 @@
 //
 
 #import "MinePageHeadView.h"
-#import "TeacherInfo.h"
-#import "KSStarView.h"
 
-@interface MinePageHeadView ()
-
-@property (weak, nonatomic) IBOutlet NSLayoutConstraint *topHeight;
-
-@property (weak, nonatomic) IBOutlet UIImageView *userAvatar;
-
-@property (weak, nonatomic) IBOutlet UILabel *teacherName;
-
-@property (weak, nonatomic) IBOutlet UIView *subjectView;
 
-@property (weak, nonatomic) IBOutlet UIView *starBgView;
-
-@property (weak, nonatomic) IBOutlet UILabel *fansCount;
-
-@property (weak, nonatomic) IBOutlet UILabel *courseCount;
+@interface MinePageHeadView ()
 
-@property (weak, nonatomic) IBOutlet KSStarView *starView;
+@property (weak, nonatomic) IBOutlet NSLayoutConstraint *viewHeight;
 
 @property (nonatomic, copy) MinePageBack callback;
 
@@ -35,8 +20,6 @@
 
 - (void)awakeFromNib {
     [super awakeFromNib];
-    self.starView.allowMark = NO;
-    self.topHeight.constant = iPhoneXSafeTopMargin + 55;
 }
 
 + (instancetype)shareInstance {
@@ -44,45 +27,7 @@
     return view;
 }
 
-- (void)configSource:(id)source {
-    if ([source isKindOfClass:[TeacherInfo class]]) {
-        TeacherInfo *infoMessage = source;
-        [self displayCount:infoMessage.fansNum inView:self.fansCount];
-        [self displayCount:infoMessage.expTime inView:self.courseCount];
-        self.starView.rate = infoMessage.starGrade / 5.0f;
-        if (![NSString isEmptyString:infoMessage.heardUrl]) {
-            [self.userAvatar sd_setImageWithURL:[NSURL URLWithString:infoMessage.heardUrl] placeholderImage:[UIImage imageNamed:USERDEFAULT_LOGO]];
-        }
-        else {
-            [self.userAvatar setImage:[UIImage imageNamed:USERDEFAULT_LOGO]];
-        }
-        if ([NSString isEmptyString:infoMessage.username]) {
-            self.teacherName.text = [NSString stringWithFormat:@"游客%@",infoMessage.userId];
-        }
-        else {
-            self.teacherName.text = infoMessage.username;
-        }
-        if ([NSString isEmptyString:infoMessage.subjectName]) {
-            [self.subjectView removeAllSubViews];
-        }
-        else {
-            NSArray *tagArray = [infoMessage.subjectName componentsSeparatedByString:@","];
-            CGFloat maxWidth = kScreenWidth - 28 - 10 - 80;
-            [self configTagViewWithTagArray:tagArray maxWidth:maxWidth];
-        }
-        
-    }
-}
 
-- (void)displayCount:(NSInteger)count inView:(UILabel *)descLabel {
-    if (count > 10000) {
-        double descNum = count / 10000.0;
-        descLabel.text = [NSString stringWithFormat:@"%.2f万",descNum];
-    }
-    else {
-        descLabel.text = [NSString stringWithFormat:@"%ld",count];
-    }
-}
 
 - (void)backAction:(MinePageBack)callback {
     if (callback) {
@@ -97,49 +42,10 @@
 }
 
 - (CGFloat)getViewHeight {
-    return self.topHeight.constant + 10 +22 + 30 + 128;
+    return (376 / 228) * kScreenWidth;
 }
 
-- (void)configTagViewWithTagArray:(NSArray *)tagArray maxWidth:(CGFloat)maxWidth {
-    [self.subjectView removeAllSubViews];
-    CGFloat width = maxWidth;
-    CGFloat xSpace = 0.0f;
-    for (NSInteger i = 0; i < tagArray.count; i++) {
-        NSString *tagString = tagArray[i];
-        CGFloat labelWidth = [self getStringWidthInLabel:tagString font:[UIFont systemFontOfSize:11.0f]];
-        CGFloat viewWidth = labelWidth + 8;
-        if (xSpace + viewWidth > width) {
-            return;
-        }
-        CGRect frame = CGRectMake(xSpace, 0, viewWidth, 16.0f);
-        [self createTagLabelViewWithName:tagString frame:frame];
-        xSpace += (viewWidth + 6);
-    }
-}
-
-- (CGFloat)getStringWidthInLabel:(NSString *)tagString font:(UIFont *)font {
-    CGFloat width = [tagString boundingRectWithSize:CGSizeMake(CGFLOAT_MAX, 16.0f) options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading attributes:@{NSFontAttributeName:font} context:nil].size.width+1;
-    return width;
-}
 
-- (void)createTagLabelViewWithName:(NSString *)name frame:(CGRect)frame {
-    UIView *bgView = [[UIView alloc] initWithFrame:frame];
-    bgView.backgroundColor = HexRGB(0xfff1de);
-    bgView.layer.cornerRadius = 4.0f;
-    [self.subjectView addSubview:bgView];
-    
-    UILabel *tagLabel = [[UILabel alloc] init];
-    tagLabel.text = name;
-    tagLabel.textColor = HexRGB(0xff8c00);
-    tagLabel.font = [UIFont systemFontOfSize:11.0f];
-    tagLabel.textAlignment = NSTextAlignmentCenter;
-    [bgView addSubview:tagLabel];
-    [tagLabel mas_makeConstraints:^(MASConstraintMaker *make) {
-        make.left.mas_equalTo(bgView.mas_left).offset(4);
-        make.right.mas_equalTo(bgView.mas_right).offset(-4);
-        make.top.bottom.mas_equalTo(bgView);
-    }];
-}
 /*
 // Only override drawRect: if you perform custom drawing.
 // An empty implementation adversely affects performance during animation.

+ 27 - 140
KulexiuForTeacher/KulexiuForTeacher/Module/Mine/MinePage/View/MinePageHeadView.xib

@@ -10,7 +10,7 @@
         <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
         <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
         <view contentMode="scaleToFill" id="iN0-l3-epB" customClass="MinePageHeadView">
-            <rect key="frame" x="0.0" y="0.0" width="414" height="304"/>
+            <rect key="frame" x="0.0" y="0.0" width="414" height="251"/>
             <autoresizingMask key="autoresizingMask"/>
             <subviews>
                 <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="minepage_bg" translatesAutoresizingMaskIntoConstraints="NO" id="thf-Z9-Jzc">
@@ -19,171 +19,58 @@
                         <constraint firstAttribute="width" secondItem="thf-Z9-Jzc" secondAttribute="height" multiplier="376:228" id="wkT-6A-fyt"/>
                     </constraints>
                 </imageView>
-                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="back_white" translatesAutoresizingMaskIntoConstraints="NO" id="7zL-CV-PVX">
-                    <rect key="frame" x="22" y="55" width="12" height="20"/>
-                    <constraints>
-                        <constraint firstAttribute="height" constant="20" id="13W-Bp-Pfy"/>
-                        <constraint firstAttribute="width" constant="12" id="eg7-BZ-ne8"/>
-                    </constraints>
-                </imageView>
-                <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="LL3-u6-PTR">
-                    <rect key="frame" x="0.0" y="43" width="44" height="44"/>
-                    <constraints>
-                        <constraint firstAttribute="width" constant="44" id="JLp-Nt-x42"/>
-                        <constraint firstAttribute="height" constant="44" id="g3o-q6-EIp"/>
-                    </constraints>
-                    <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
-                    <connections>
-                        <action selector="back:" destination="iN0-l3-epB" eventType="touchUpInside" id="4lb-dc-K1q"/>
-                    </connections>
-                </button>
-                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Gu1-Kt-jR8">
-                    <rect key="frame" x="14" y="117" width="386" height="128"/>
+                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="emY-nQ-Sbn">
+                    <rect key="frame" x="0.0" y="0.0" width="414" height="88"/>
                     <subviews>
-                        <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="user_default_avatal" translatesAutoresizingMaskIntoConstraints="NO" id="PIB-VW-gBp">
-                            <rect key="frame" x="11" y="14" width="58" height="58"/>
+                        <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="back_white" translatesAutoresizingMaskIntoConstraints="NO" id="7zL-CV-PVX">
+                            <rect key="frame" x="22" y="56" width="12" height="20"/>
                             <constraints>
-                                <constraint firstAttribute="height" constant="58" id="0x9-cJ-w6W"/>
-                                <constraint firstAttribute="width" constant="58" id="kzd-JP-RZS"/>
+                                <constraint firstAttribute="height" constant="20" id="13W-Bp-Pfy"/>
+                                <constraint firstAttribute="width" constant="12" id="eg7-BZ-ne8"/>
                             </constraints>
-                            <userDefinedRuntimeAttributes>
-                                <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
-                                    <real key="value" value="28"/>
-                                </userDefinedRuntimeAttribute>
-                            </userDefinedRuntimeAttributes>
                         </imageView>
-                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="WL1-jV-cKh">
-                            <rect key="frame" x="79" y="18" width="0.0" height="25"/>
-                            <constraints>
-                                <constraint firstAttribute="height" constant="25" id="KZP-Tk-E2j"/>
-                            </constraints>
-                            <fontDescription key="fontDescription" type="system" weight="medium" pointSize="18"/>
-                            <color key="textColor" red="0.10196078431372549" green="0.10196078431372549" blue="0.10196078431372549" alpha="1" colorSpace="calibratedRGB"/>
-                            <nil key="highlightedColor"/>
-                        </label>
-                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="gbV-Fp-BJg">
-                            <rect key="frame" x="79" y="49" width="297" height="16"/>
-                            <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
-                            <constraints>
-                                <constraint firstAttribute="height" constant="16" id="eok-4K-pdP"/>
-                            </constraints>
-                        </view>
-                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="KYq-hR-Q3h">
-                            <rect key="frame" x="11" y="92" width="90" height="19"/>
-                            <subviews>
-                                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="4dv-gx-6oZ" customClass="KSStarView">
-                                    <rect key="frame" x="0.0" y="0.0" width="90" height="19"/>
-                                    <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
-                                </view>
-                            </subviews>
-                            <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
-                            <constraints>
-                                <constraint firstAttribute="height" constant="19" id="0ET-tK-gCQ"/>
-                                <constraint firstItem="4dv-gx-6oZ" firstAttribute="top" secondItem="KYq-hR-Q3h" secondAttribute="top" id="byV-9r-66S"/>
-                                <constraint firstAttribute="bottom" secondItem="4dv-gx-6oZ" secondAttribute="bottom" id="pSu-Vy-qRs"/>
-                                <constraint firstAttribute="trailing" secondItem="4dv-gx-6oZ" secondAttribute="trailing" id="phh-yj-v1X"/>
-                                <constraint firstItem="4dv-gx-6oZ" firstAttribute="leading" secondItem="KYq-hR-Q3h" secondAttribute="leading" id="rQi-Wo-gPc"/>
-                                <constraint firstAttribute="width" constant="90" id="rRK-cY-k53"/>
-                            </constraints>
-                        </view>
-                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="粉丝" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="RN4-9b-uoK">
-                            <rect key="frame" x="252" y="93" width="29" height="17"/>
-                            <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>
-                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Plf-H0-xrF">
-                            <rect key="frame" x="286" y="101.5" width="0.0" height="0.0"/>
-                            <fontDescription key="fontDescription" type="system" weight="medium" pointSize="17"/>
-                            <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
-                            <nil key="highlightedColor"/>
-                        </label>
-                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="已上课时" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="KOU-oC-lEb">
-                            <rect key="frame" x="313" y="93" width="58" height="17"/>
-                            <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>
-                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="2OS-eZ-zCG">
-                            <rect key="frame" x="376" y="89.5" width="0.0" height="24"/>
-                            <constraints>
-                                <constraint firstAttribute="height" constant="24" id="b2b-gv-7z2"/>
-                            </constraints>
-                            <fontDescription key="fontDescription" type="system" weight="medium" pointSize="17"/>
-                            <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
-                            <nil key="highlightedColor"/>
-                        </label>
-                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Vga-wo-2yB">
-                            <rect key="frame" x="299" y="95.5" width="1" height="12"/>
-                            <color key="backgroundColor" red="0.82745098039215681" green="0.82745098039215681" blue="0.82745098039215681" alpha="1" colorSpace="calibratedRGB"/>
+                        <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="LL3-u6-PTR">
+                            <rect key="frame" x="0.0" y="44" width="44" height="44"/>
                             <constraints>
-                                <constraint firstAttribute="height" constant="12" id="4b5-Nb-Iph"/>
-                                <constraint firstAttribute="width" constant="1" id="r8q-Q4-Xf0"/>
+                                <constraint firstAttribute="width" constant="44" id="JLp-Nt-x42"/>
+                                <constraint firstAttribute="height" constant="44" id="g3o-q6-EIp"/>
                             </constraints>
-                        </view>
+                            <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
+                            <connections>
+                                <action selector="back:" destination="iN0-l3-epB" eventType="touchUpInside" id="4lb-dc-K1q"/>
+                            </connections>
+                        </button>
                     </subviews>
-                    <color key="backgroundColor" red="1" green="1" blue="1" alpha="0.65000000000000002" colorSpace="custom" customColorSpace="calibratedRGB"/>
+                    <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                     <constraints>
-                        <constraint firstItem="2OS-eZ-zCG" firstAttribute="centerY" secondItem="KOU-oC-lEb" secondAttribute="centerY" id="3X7-NS-Efq"/>
-                        <constraint firstItem="KYq-hR-Q3h" firstAttribute="leading" secondItem="PIB-VW-gBp" secondAttribute="leading" id="Dh6-Ym-WaL"/>
-                        <constraint firstItem="PIB-VW-gBp" firstAttribute="leading" secondItem="Gu1-Kt-jR8" secondAttribute="leading" constant="11" id="H4R-Lj-c7F"/>
-                        <constraint firstAttribute="trailing" secondItem="2OS-eZ-zCG" secondAttribute="trailing" constant="10" id="Hep-su-pqU"/>
-                        <constraint firstItem="gbV-Fp-BJg" firstAttribute="bottom" secondItem="PIB-VW-gBp" secondAttribute="bottom" constant="-7" id="Pwq-64-9yH"/>
-                        <constraint firstItem="WL1-jV-cKh" firstAttribute="leading" secondItem="PIB-VW-gBp" secondAttribute="trailing" constant="10" id="RpY-zv-wSP"/>
-                        <constraint firstItem="PIB-VW-gBp" firstAttribute="top" secondItem="Gu1-Kt-jR8" secondAttribute="top" constant="14" id="SeY-Hp-EOu"/>
-                        <constraint firstAttribute="height" constant="128" id="WpW-X6-iX0"/>
-                        <constraint firstAttribute="trailing" secondItem="gbV-Fp-BJg" secondAttribute="trailing" constant="10" id="XJb-Fu-lmP"/>
-                        <constraint firstItem="KOU-oC-lEb" firstAttribute="centerY" secondItem="Vga-wo-2yB" secondAttribute="centerY" id="ZYp-22-W1j"/>
-                        <constraint firstItem="WL1-jV-cKh" firstAttribute="top" secondItem="PIB-VW-gBp" secondAttribute="top" constant="4" id="bc3-2N-TFG"/>
-                        <constraint firstItem="KOU-oC-lEb" firstAttribute="centerY" secondItem="Plf-H0-xrF" secondAttribute="centerY" id="dft-ul-av6"/>
-                        <constraint firstItem="gbV-Fp-BJg" firstAttribute="leading" secondItem="WL1-jV-cKh" secondAttribute="leading" id="hBz-AO-iT8"/>
-                        <constraint firstItem="KYq-hR-Q3h" firstAttribute="top" secondItem="PIB-VW-gBp" secondAttribute="bottom" constant="20" id="ozV-zC-Sbr"/>
-                        <constraint firstItem="RN4-9b-uoK" firstAttribute="centerY" secondItem="KYq-hR-Q3h" secondAttribute="centerY" id="u8x-ro-Vyy"/>
-                        <constraint firstItem="2OS-eZ-zCG" firstAttribute="leading" secondItem="KOU-oC-lEb" secondAttribute="trailing" constant="5" id="v3U-hO-eZ6"/>
-                        <constraint firstItem="Plf-H0-xrF" firstAttribute="centerY" secondItem="RN4-9b-uoK" secondAttribute="centerY" id="wNh-Rm-N5f"/>
-                        <constraint firstItem="KOU-oC-lEb" firstAttribute="leading" secondItem="Vga-wo-2yB" secondAttribute="trailing" constant="13" id="yyS-mj-Kp3"/>
-                        <constraint firstItem="Vga-wo-2yB" firstAttribute="leading" secondItem="Plf-H0-xrF" secondAttribute="trailing" constant="13" id="zQk-YM-XIs"/>
-                        <constraint firstItem="Plf-H0-xrF" firstAttribute="leading" secondItem="RN4-9b-uoK" secondAttribute="trailing" constant="5" id="zi8-mh-iqf"/>
+                        <constraint firstAttribute="height" constant="88" id="1wg-e6-kqA"/>
+                        <constraint firstAttribute="bottom" secondItem="LL3-u6-PTR" secondAttribute="bottom" id="6KH-1M-vAP"/>
+                        <constraint firstItem="LL3-u6-PTR" firstAttribute="leading" secondItem="emY-nQ-Sbn" secondAttribute="leading" id="AmB-tA-N1v"/>
+                        <constraint firstItem="7zL-CV-PVX" firstAttribute="leading" secondItem="emY-nQ-Sbn" secondAttribute="leading" constant="22" id="JXX-id-lc3"/>
+                        <constraint firstItem="LL3-u6-PTR" firstAttribute="centerY" secondItem="7zL-CV-PVX" secondAttribute="centerY" id="Umc-bJ-zgR"/>
                     </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="trailing" secondItem="thf-Z9-Jzc" secondAttribute="trailing" id="10A-zz-Sjc"/>
-                <constraint firstItem="7zL-CV-PVX" firstAttribute="top" secondItem="iN0-l3-epB" secondAttribute="top" constant="55" id="2wx-ru-blr"/>
-                <constraint firstItem="7zL-CV-PVX" firstAttribute="centerY" secondItem="LL3-u6-PTR" secondAttribute="centerY" id="4Gt-Uo-ifz"/>
-                <constraint firstItem="Gu1-Kt-jR8" firstAttribute="top" secondItem="LL3-u6-PTR" secondAttribute="bottom" constant="30" id="66h-qO-Rfa"/>
-                <constraint firstAttribute="trailing" secondItem="Gu1-Kt-jR8" secondAttribute="trailing" constant="14" id="7bq-Iz-u49"/>
+                <constraint firstAttribute="trailing" secondItem="emY-nQ-Sbn" secondAttribute="trailing" id="6nX-C1-kua"/>
                 <constraint firstItem="thf-Z9-Jzc" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" id="GZK-Nn-oSU"/>
                 <constraint firstItem="thf-Z9-Jzc" firstAttribute="top" secondItem="iN0-l3-epB" secondAttribute="top" id="L9Y-JA-QTd"/>
-                <constraint firstItem="LL3-u6-PTR" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" id="VZK-Wf-mMp"/>
-                <constraint firstItem="Gu1-Kt-jR8" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" constant="14" id="kOh-lg-m3i"/>
-                <constraint firstItem="7zL-CV-PVX" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" constant="22" id="uIv-MG-tjM"/>
+                <constraint firstItem="emY-nQ-Sbn" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" id="LwY-BP-gc7"/>
+                <constraint firstItem="emY-nQ-Sbn" firstAttribute="top" secondItem="iN0-l3-epB" secondAttribute="top" id="y56-3o-ZPL"/>
             </constraints>
             <nil key="simulatedTopBarMetrics"/>
             <nil key="simulatedBottomBarMetrics"/>
             <freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
             <connections>
-                <outlet property="courseCount" destination="2OS-eZ-zCG" id="KpR-y1-5fZ"/>
-                <outlet property="fansCount" destination="Plf-H0-xrF" id="c79-za-jEs"/>
-                <outlet property="starBgView" destination="KYq-hR-Q3h" id="Awq-J5-ExS"/>
-                <outlet property="starView" destination="4dv-gx-6oZ" id="Gwi-kj-aNw"/>
-                <outlet property="subjectView" destination="gbV-Fp-BJg" id="B1u-Ok-Efj"/>
-                <outlet property="teacherName" destination="WL1-jV-cKh" id="ay9-eh-BiN"/>
-                <outlet property="topHeight" destination="2wx-ru-blr" id="gLE-Zt-0Fi"/>
-                <outlet property="userAvatar" destination="PIB-VW-gBp" id="f28-Hu-dFc"/>
+                <outlet property="viewHeight" destination="1wg-e6-kqA" id="79o-QW-2Js"/>
             </connections>
-            <point key="canvasLocation" x="314.49275362318843" y="-85.714285714285708"/>
+            <point key="canvasLocation" x="314.49275362318843" y="-103.45982142857143"/>
         </view>
     </objects>
     <resources>
         <image name="back_white" width="12" height="20"/>
         <image name="minepage_bg" width="376" height="228"/>
-        <image name="user_default_avatal" width="52" height="52"/>
     </resources>
 </document>

+ 7 - 1
KulexiuForTeacher/KulexiuForTeacher/Module/Mine/MinePage/View/MinePageMusicCell.m

@@ -44,7 +44,13 @@
     }
     [self.typeImage setImage:[UIImage imageNamed:typeImgName]];
     
-    self.uploaderName.text = [NSString returnNoNullStringWithString:songMessage.username];
+    
+    if ([NSString isEmptyString:songMessage.username]) {
+        self.uploaderName.text = [NSString stringWithFormat:@"游客%.0f",songMessage.userId];
+    }
+    else {
+        self.uploaderName.text = songMessage.username;
+    }
     [self.uploaderLogo sd_setImageWithURL:[NSURL URLWithString:songMessage.avatar] placeholderImage:[UIImage imageNamed:USERDEFAULT_LOGO]];
 }
 

+ 22 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Mine/MinePage/View/MinePageTopView.h

@@ -0,0 +1,22 @@
+//
+//  MinePageTopView.h
+//  KulexiuForTeacher
+//
+//  Created by 王智 on 2022/4/29.
+//
+
+#import <UIKit/UIKit.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface MinePageTopView : UIView
+
++ (instancetype)shareInstance;
+
+- (void)configSource:(id)source;
+
+- (CGFloat)getViewHeight;
+
+@end
+
+NS_ASSUME_NONNULL_END

+ 155 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Mine/MinePage/View/MinePageTopView.m

@@ -0,0 +1,155 @@
+//
+//  MinePageTopView.m
+//  KulexiuForTeacher
+//
+//  Created by 王智 on 2022/4/29.
+//
+
+#import "MinePageTopView.h"
+#import "TeacherInfo.h"
+#import "KSStarView.h"
+
+@interface MinePageTopView ()
+
+@property (weak, nonatomic) IBOutlet UIImageView *userAvatar;
+
+@property (weak, nonatomic) IBOutlet UILabel *teacherName;
+
+@property (weak, nonatomic) IBOutlet UIView *subjectView;
+
+@property (weak, nonatomic) IBOutlet UIView *starBgView;
+
+@property (weak, nonatomic) IBOutlet UILabel *fansCount;
+
+@property (weak, nonatomic) IBOutlet UILabel *courseCount;
+
+@property (weak, nonatomic) IBOutlet KSStarView *starView;
+
+@property (weak, nonatomic) IBOutlet UIImageView *firstLogo;
+@property (weak, nonatomic) IBOutlet NSLayoutConstraint *firstLogoWidth;
+
+@property (weak, nonatomic) IBOutlet UIImageView *secondLogo;
+@property (weak, nonatomic) IBOutlet NSLayoutConstraint *secondLogoWidth;
+@property (weak, nonatomic) IBOutlet NSLayoutConstraint *logoSpace;
+
+
+@end
+
+@implementation MinePageTopView
+
++ (instancetype)shareInstance {
+    MinePageTopView *view = [[[NSBundle mainBundle] loadNibNamed:@"MinePageTopView" owner:nil options:nil] firstObject];
+    return view;
+}
+
+- (void)configSource:(id)source {
+    if ([source isKindOfClass:[TeacherInfo class]]) {
+        TeacherInfo *infoMessage = source;
+        [self displayCount:infoMessage.fansNum inView:self.fansCount];
+        [self displayCount:infoMessage.expTime inView:self.courseCount];
+        self.starView.rate = infoMessage.starGrade / 5.0f;
+        if (![NSString isEmptyString:infoMessage.heardUrl]) {
+            [self.userAvatar sd_setImageWithURL:[NSURL URLWithString:infoMessage.heardUrl] placeholderImage:[UIImage imageNamed:USERDEFAULT_LOGO]];
+        }
+        else {
+            [self.userAvatar setImage:[UIImage imageNamed:USERDEFAULT_LOGO]];
+        }
+        if ([NSString isEmptyString:infoMessage.username]) {
+            self.teacherName.text = [NSString stringWithFormat:@"游客%@",infoMessage.userId];
+        }
+        else {
+            self.teacherName.text = infoMessage.username;
+        }
+        if ([NSString isEmptyString:infoMessage.subjectName]) {
+            [self.subjectView removeAllSubViews];
+        }
+        else {
+            NSArray *tagArray = [infoMessage.subjectName componentsSeparatedByString:@","];
+            CGFloat maxWidth = kScreenWidth - 28 - 10 - 80;
+            [self configTagViewWithTagArray:tagArray maxWidth:maxWidth];
+        }
+        
+        if ([infoMessage.entryStatus isEqualToString:@"PASS"]) {
+            self.firstLogo.hidden = NO;
+            self.firstLogoWidth.constant = 53.0f;
+        }
+        else {
+            self.firstLogo.hidden = YES;
+            self.firstLogoWidth.constant = 0.0f;
+            self.logoSpace.constant = 0.0f;
+        }
+        
+        if ([infoMessage.musicianAuthStatus isEqualToString:@"PASS"]) {
+            self.secondLogo.hidden = NO;
+            self.secondLogoWidth.constant = 61.0f;
+        }
+        else {
+            self.secondLogo.hidden = YES ;
+            self.secondLogoWidth.constant = 0.0f;
+        }
+    }
+}
+
+- (void)displayCount:(NSInteger)count inView:(UILabel *)descLabel {
+    if (count > 10000) {
+        double descNum = count / 10000.0;
+        descLabel.text = [NSString stringWithFormat:@"%.2f万",descNum];
+    }
+    else {
+        descLabel.text = [NSString stringWithFormat:@"%ld",count];
+    }
+}
+
+- (CGFloat)getViewHeight {
+    return 140.0f;
+}
+
+- (void)configTagViewWithTagArray:(NSArray *)tagArray maxWidth:(CGFloat)maxWidth {
+    [self.subjectView removeAllSubViews];
+    CGFloat width = maxWidth;
+    CGFloat xSpace = 0.0f;
+    for (NSInteger i = 0; i < tagArray.count; i++) {
+        NSString *tagString = tagArray[i];
+        CGFloat labelWidth = [self getStringWidthInLabel:tagString font:[UIFont systemFontOfSize:11.0f]];
+        CGFloat viewWidth = labelWidth + 8;
+        if (xSpace + viewWidth > width) {
+            return;
+        }
+        CGRect frame = CGRectMake(xSpace, 0, viewWidth, 16.0f);
+        [self createTagLabelViewWithName:tagString frame:frame];
+        xSpace += (viewWidth + 6);
+    }
+}
+
+- (CGFloat)getStringWidthInLabel:(NSString *)tagString font:(UIFont *)font {
+    CGFloat width = [tagString boundingRectWithSize:CGSizeMake(CGFLOAT_MAX, 16.0f) options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading attributes:@{NSFontAttributeName:font} context:nil].size.width+1;
+    return width;
+}
+
+- (void)createTagLabelViewWithName:(NSString *)name frame:(CGRect)frame {
+    UIView *bgView = [[UIView alloc] initWithFrame:frame];
+    bgView.backgroundColor = HexRGB(0xfff1de);
+    bgView.layer.cornerRadius = 4.0f;
+    [self.subjectView addSubview:bgView];
+    
+    UILabel *tagLabel = [[UILabel alloc] init];
+    tagLabel.text = name;
+    tagLabel.textColor = HexRGB(0xff8c00);
+    tagLabel.font = [UIFont systemFontOfSize:11.0f];
+    tagLabel.textAlignment = NSTextAlignmentCenter;
+    [bgView addSubview:tagLabel];
+    [tagLabel mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.left.mas_equalTo(bgView.mas_left).offset(4);
+        make.right.mas_equalTo(bgView.mas_right).offset(-4);
+        make.top.bottom.mas_equalTo(bgView);
+    }];
+}
+/*
+// Only override drawRect: if you perform custom drawing.
+// An empty implementation adversely affects performance during animation.
+- (void)drawRect:(CGRect)rect {
+    // Drawing code
+}
+*/
+
+@end

+ 183 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Mine/MinePage/View/MinePageTopView.xib

@@ -0,0 +1,183 @@
+<?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" useSafeAreas="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="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"/>
+        <view contentMode="scaleToFill" id="iN0-l3-epB" customClass="MinePageTopView">
+            <rect key="frame" x="0.0" y="0.0" width="414" height="141"/>
+            <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+            <subviews>
+                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="w1f-9h-A4M">
+                    <rect key="frame" x="14" y="0.0" width="386" height="128"/>
+                    <subviews>
+                        <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="user_default_avatal" translatesAutoresizingMaskIntoConstraints="NO" id="3JZ-4N-xLY">
+                            <rect key="frame" x="11" y="14" width="58" height="58"/>
+                            <constraints>
+                                <constraint firstAttribute="width" constant="58" id="BQF-U0-Q5F"/>
+                                <constraint firstAttribute="height" constant="58" id="YUb-bw-MgE"/>
+                            </constraints>
+                            <userDefinedRuntimeAttributes>
+                                <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
+                                    <real key="value" value="28"/>
+                                </userDefinedRuntimeAttribute>
+                            </userDefinedRuntimeAttributes>
+                        </imageView>
+                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="游客" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="LhQ-B1-N8g">
+                            <rect key="frame" x="79" y="18" width="37" height="25"/>
+                            <constraints>
+                                <constraint firstAttribute="height" constant="25" id="ttJ-dx-kxO"/>
+                            </constraints>
+                            <fontDescription key="fontDescription" type="system" weight="medium" pointSize="18"/>
+                            <color key="textColor" red="0.1019607843" green="0.1019607843" blue="0.1019607843" alpha="1" colorSpace="calibratedRGB"/>
+                            <nil key="highlightedColor"/>
+                        </label>
+                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="fZT-24-HFt">
+                            <rect key="frame" x="79" y="49" width="297" height="16"/>
+                            <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                            <constraints>
+                                <constraint firstAttribute="height" constant="16" id="vKC-05-GFT"/>
+                            </constraints>
+                        </view>
+                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="j04-k1-RIV">
+                            <rect key="frame" x="11" y="92" width="90" height="19"/>
+                            <subviews>
+                                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="7YI-eG-JcD" customClass="KSStarView">
+                                    <rect key="frame" x="0.0" y="0.0" width="90" height="19"/>
+                                    <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                </view>
+                            </subviews>
+                            <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                            <constraints>
+                                <constraint firstAttribute="bottom" secondItem="7YI-eG-JcD" secondAttribute="bottom" id="57s-AN-Qaz"/>
+                                <constraint firstAttribute="trailing" secondItem="7YI-eG-JcD" secondAttribute="trailing" id="8TP-04-Dde"/>
+                                <constraint firstItem="7YI-eG-JcD" firstAttribute="leading" secondItem="j04-k1-RIV" secondAttribute="leading" id="PlL-tY-0m9"/>
+                                <constraint firstItem="7YI-eG-JcD" firstAttribute="top" secondItem="j04-k1-RIV" secondAttribute="top" id="QmV-UV-5Bi"/>
+                                <constraint firstAttribute="height" constant="19" id="a36-Jp-VIX"/>
+                                <constraint firstAttribute="width" constant="90" id="y0S-Fk-5a6"/>
+                            </constraints>
+                        </view>
+                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="粉丝" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Auh-B5-0cI">
+                            <rect key="frame" x="252" y="93" width="29" height="17"/>
+                            <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>
+                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="DMU-LC-BHE">
+                            <rect key="frame" x="286" y="101.5" width="0.0" height="0.0"/>
+                            <fontDescription key="fontDescription" type="system" weight="medium" pointSize="17"/>
+                            <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
+                            <nil key="highlightedColor"/>
+                        </label>
+                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="已上课时" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="xuu-dd-NkY">
+                            <rect key="frame" x="313" y="93" width="58" height="17"/>
+                            <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>
+                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="mKL-9h-RCS">
+                            <rect key="frame" x="376" y="89.5" width="0.0" height="24"/>
+                            <constraints>
+                                <constraint firstAttribute="height" constant="24" id="6cQ-De-Nmw"/>
+                            </constraints>
+                            <fontDescription key="fontDescription" type="system" weight="medium" pointSize="17"/>
+                            <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
+                            <nil key="highlightedColor"/>
+                        </label>
+                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="b32-Xt-2YL">
+                            <rect key="frame" x="299" y="95.5" width="1" height="12"/>
+                            <color key="backgroundColor" red="0.82745098039999998" green="0.82745098039999998" blue="0.82745098039999998" alpha="1" colorSpace="calibratedRGB"/>
+                            <constraints>
+                                <constraint firstAttribute="width" constant="1" id="0Kr-BR-e7W"/>
+                                <constraint firstAttribute="height" constant="12" id="rTl-Sw-e2q"/>
+                            </constraints>
+                        </view>
+                        <imageView hidden="YES" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="teacherAuth_logo" translatesAutoresizingMaskIntoConstraints="NO" id="R6X-jl-Wqq">
+                            <rect key="frame" x="126" y="19.5" width="53" height="22"/>
+                            <constraints>
+                                <constraint firstAttribute="height" constant="22" id="9pH-Cq-y6T"/>
+                                <constraint firstAttribute="width" constant="53" id="lpC-if-dFq"/>
+                            </constraints>
+                        </imageView>
+                        <imageView hidden="YES" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="musicianAuth_logo" translatesAutoresizingMaskIntoConstraints="NO" id="old-jW-aZO">
+                            <rect key="frame" x="183" y="19.5" width="61" height="22"/>
+                            <constraints>
+                                <constraint firstAttribute="height" constant="22" id="EbL-lM-icp"/>
+                                <constraint firstAttribute="width" constant="61" id="ftt-uX-w2Y"/>
+                            </constraints>
+                        </imageView>
+                    </subviews>
+                    <color key="backgroundColor" red="1" green="1" blue="1" alpha="0.65000000000000002" colorSpace="custom" customColorSpace="calibratedRGB"/>
+                    <constraints>
+                        <constraint firstItem="mKL-9h-RCS" firstAttribute="leading" secondItem="xuu-dd-NkY" secondAttribute="trailing" constant="5" id="1bU-Ht-WAl"/>
+                        <constraint firstItem="old-jW-aZO" firstAttribute="leading" secondItem="R6X-jl-Wqq" secondAttribute="trailing" constant="4" id="7M4-v9-hwC"/>
+                        <constraint firstItem="j04-k1-RIV" firstAttribute="top" secondItem="3JZ-4N-xLY" secondAttribute="bottom" constant="20" id="FBg-HM-nKD"/>
+                        <constraint firstAttribute="height" constant="128" id="L0D-6Q-Mdc"/>
+                        <constraint firstAttribute="trailing" secondItem="fZT-24-HFt" secondAttribute="trailing" constant="10" id="Mst-ZO-Dz7"/>
+                        <constraint firstItem="xuu-dd-NkY" firstAttribute="leading" secondItem="b32-Xt-2YL" secondAttribute="trailing" constant="13" id="Pxy-By-B95"/>
+                        <constraint firstItem="LhQ-B1-N8g" firstAttribute="leading" secondItem="3JZ-4N-xLY" secondAttribute="trailing" constant="10" id="Qw8-hk-iQ3"/>
+                        <constraint firstItem="mKL-9h-RCS" firstAttribute="centerY" secondItem="xuu-dd-NkY" secondAttribute="centerY" id="Tvf-OC-Knb"/>
+                        <constraint firstItem="LhQ-B1-N8g" firstAttribute="top" secondItem="3JZ-4N-xLY" secondAttribute="top" constant="4" id="Z1a-7m-gyf"/>
+                        <constraint firstItem="xuu-dd-NkY" firstAttribute="centerY" secondItem="b32-Xt-2YL" secondAttribute="centerY" id="bI5-g5-q9p"/>
+                        <constraint firstItem="DMU-LC-BHE" firstAttribute="leading" secondItem="Auh-B5-0cI" secondAttribute="trailing" constant="5" id="bbF-74-Gf6"/>
+                        <constraint firstItem="R6X-jl-Wqq" firstAttribute="centerY" secondItem="LhQ-B1-N8g" secondAttribute="centerY" id="cYO-il-zya"/>
+                        <constraint firstItem="xuu-dd-NkY" firstAttribute="centerY" secondItem="DMU-LC-BHE" secondAttribute="centerY" id="dcG-yC-cf1"/>
+                        <constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="old-jW-aZO" secondAttribute="trailing" constant="10" id="edd-VB-vba"/>
+                        <constraint firstItem="Auh-B5-0cI" firstAttribute="centerY" secondItem="j04-k1-RIV" secondAttribute="centerY" id="ifO-ER-t0H"/>
+                        <constraint firstItem="fZT-24-HFt" firstAttribute="bottom" secondItem="3JZ-4N-xLY" secondAttribute="bottom" constant="-7" id="jgc-yF-EpV"/>
+                        <constraint firstItem="b32-Xt-2YL" firstAttribute="leading" secondItem="DMU-LC-BHE" secondAttribute="trailing" constant="13" id="km6-VD-mfD"/>
+                        <constraint firstItem="3JZ-4N-xLY" firstAttribute="top" secondItem="w1f-9h-A4M" secondAttribute="top" constant="14" id="nIW-a1-Il7"/>
+                        <constraint firstItem="old-jW-aZO" firstAttribute="centerY" secondItem="LhQ-B1-N8g" secondAttribute="centerY" id="ow8-vG-9CA"/>
+                        <constraint firstItem="fZT-24-HFt" firstAttribute="leading" secondItem="LhQ-B1-N8g" secondAttribute="leading" id="q1q-gH-lt3"/>
+                        <constraint firstItem="DMU-LC-BHE" firstAttribute="centerY" secondItem="Auh-B5-0cI" secondAttribute="centerY" id="r4d-as-K5n"/>
+                        <constraint firstItem="3JZ-4N-xLY" firstAttribute="leading" secondItem="w1f-9h-A4M" secondAttribute="leading" constant="11" id="s2m-2p-ugN"/>
+                        <constraint firstItem="R6X-jl-Wqq" firstAttribute="leading" secondItem="LhQ-B1-N8g" secondAttribute="trailing" constant="10" id="tKS-o6-rpV"/>
+                        <constraint firstItem="j04-k1-RIV" firstAttribute="leading" secondItem="3JZ-4N-xLY" secondAttribute="leading" id="uim-5e-JaP"/>
+                        <constraint firstAttribute="trailing" secondItem="mKL-9h-RCS" secondAttribute="trailing" constant="10" id="wzU-5f-k1b"/>
+                    </constraints>
+                    <userDefinedRuntimeAttributes>
+                        <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
+                            <real key="value" value="10"/>
+                        </userDefinedRuntimeAttribute>
+                    </userDefinedRuntimeAttributes>
+                </view>
+            </subviews>
+            <viewLayoutGuide key="safeArea" id="vUN-kp-3ea"/>
+            <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+            <constraints>
+                <constraint firstItem="vUN-kp-3ea" firstAttribute="trailing" secondItem="w1f-9h-A4M" secondAttribute="trailing" constant="14" id="GcZ-L0-XWV"/>
+                <constraint firstItem="w1f-9h-A4M" firstAttribute="top" secondItem="iN0-l3-epB" secondAttribute="top" id="GhG-TW-FQh"/>
+                <constraint firstItem="w1f-9h-A4M" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" constant="14" id="Opi-Lb-fng"/>
+            </constraints>
+            <nil key="simulatedTopBarMetrics"/>
+            <nil key="simulatedBottomBarMetrics"/>
+            <freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
+            <connections>
+                <outlet property="courseCount" destination="mKL-9h-RCS" id="geb-Y7-zeu"/>
+                <outlet property="fansCount" destination="DMU-LC-BHE" id="KTr-PK-SlC"/>
+                <outlet property="firstLogo" destination="R6X-jl-Wqq" id="KiM-gO-Od1"/>
+                <outlet property="firstLogoWidth" destination="lpC-if-dFq" id="V2l-Yk-w35"/>
+                <outlet property="logoSpace" destination="7M4-v9-hwC" id="r8z-Fe-WJK"/>
+                <outlet property="secondLogo" destination="old-jW-aZO" id="DGa-wL-L1W"/>
+                <outlet property="secondLogoWidth" destination="ftt-uX-w2Y" id="tJG-Gy-qbC"/>
+                <outlet property="starBgView" destination="j04-k1-RIV" id="76r-zk-VWm"/>
+                <outlet property="starView" destination="7YI-eG-JcD" id="P33-L0-TAr"/>
+                <outlet property="subjectView" destination="fZT-24-HFt" id="A3q-LS-oWX"/>
+                <outlet property="teacherName" destination="LhQ-B1-N8g" id="2lX-lZ-dbL"/>
+                <outlet property="userAvatar" destination="3JZ-4N-xLY" id="bQ4-YD-XNr"/>
+            </connections>
+            <point key="canvasLocation" x="131.8840579710145" y="2.34375"/>
+        </view>
+    </objects>
+    <resources>
+        <image name="musicianAuth_logo" width="61" height="22"/>
+        <image name="teacherAuth_logo" width="53" height="22"/>
+        <image name="user_default_avatal" width="52" height="52"/>
+    </resources>
+</document>

+ 7 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Mine/VideoCourse/View/VideoCourseCell.m

@@ -36,6 +36,13 @@
     self.courseTitle.text = [NSString returnNoNullStringWithString:model.lessonName];
     [self.teacherAvatar sd_setImageWithURL:[NSURL URLWithString:model.avatar] placeholderImage:[UIImage imageNamed:USERDEFAULT_LOGO]];
     self.teacherName.text = [NSString returnNoNullStringWithString:model.username];
+    if ([NSString isEmptyString:model.username]) {
+        self.teacherName.text = [NSString stringWithFormat:@"游客%.0f",model.teacherId];
+    }
+    else {
+        self.teacherName.text = model.username;
+    }
+    
     self.courseMessage.text = [NSString  stringWithFormat:@"¥%.0f/%.0f课时",model.lessonPrice,model.lessonCount];
     if (isCheck) {
         self.descView.hidden = YES;

+ 56 - 7
KulexiuForTeacher/KulexiuForTeacher/Module/Mine/View/MineBodyView.m

@@ -14,6 +14,7 @@
 @property (weak, nonatomic) IBOutlet UILabel *userName;
 
 @property (weak, nonatomic) IBOutlet UIView *descView;
+@property (weak, nonatomic) IBOutlet NSLayoutConstraint *descViewHeight;
 
 @property (weak, nonatomic) IBOutlet UIView *authView;
 @property (weak, nonatomic) IBOutlet UILabel *musicianStatusLabel;
@@ -30,6 +31,17 @@
 
 @property (nonatomic, copy) MineViewCallback callback;
 
+@property (weak, nonatomic) IBOutlet UIImageView *firstLogo;
+@property (weak, nonatomic) IBOutlet NSLayoutConstraint *firstLogoWidth;
+
+@property (weak, nonatomic) IBOutlet UIImageView *secondLogo;
+@property (weak, nonatomic) IBOutlet NSLayoutConstraint *secondLogoWidth;
+@property (weak, nonatomic) IBOutlet NSLayoutConstraint *logoSpace;
+
+@property (nonatomic, assign) BOOL hasAuthTeacher;
+
+@property (nonatomic, assign) BOOL hasAuthMusic;
+
 @end
 
 
@@ -53,17 +65,21 @@
 
 - (void)configMessage:(TeacherInfo *)infoMessage {
     if ([infoMessage.entryStatus isEqualToString:@"PASS"]) {
+        self.hasAuthTeacher = YES;
         self.authView.hidden = YES;
         self.descView.hidden = NO;
-        [self displayCount:infoMessage.fansNum inView:self.fansCount];
-        [self displayCount:infoMessage.expTime inView:self.finishCourse];
-        [self displayCount:infoMessage.unExpTime inView:self.unfinishCourse];
+        self.descViewHeight.constant = 40.0f;
+        [self displayCount:infoMessage.fansNum inView:self.fansCount descTitle:@"粉丝  "];
+        [self displayCount:infoMessage.expTime inView:self.finishCourse descTitle:@"已上课时  "];
+        [self displayCount:infoMessage.unExpTime inView:self.unfinishCourse descTitle:@"未上课时  "];
         self.starView.rate = infoMessage.starGrade / 5.0f;
         self.tipsButton.hidden = YES;
     }
     else {
+        self.hasAuthTeacher = NO;
         self.authView.hidden = NO;
         self.descView.hidden = YES;
+        self.descViewHeight.constant = 0.0f;
         if (USER_MANAGER.hiddenTipsButton) {
             self.tipsButton.hidden = YES;
         }
@@ -111,16 +127,49 @@
     else {
         self.cardStatusLabel.text = @"未绑定";
     }
+    
+    if ([infoMessage.musicianAuthStatus isEqualToString:@"PASS"]) {
+        self.hasAuthMusic = YES;
+    }else {
+        self.hasAuthMusic = NO;
+    }
+    [self evaluateAuthLogo];
+}
+
+- (void)evaluateAuthLogo {
+    if (self.hasAuthTeacher) {
+        self.firstLogo.hidden = NO;
+        self.firstLogoWidth.constant = 53.0f;
+    }
+    else {
+        self.firstLogo.hidden = YES;
+        self.firstLogoWidth.constant = 0.0f;
+        self.logoSpace.constant = 0.0f;
+    }
+    
+    if (self.hasAuthMusic) {
+        self.secondLogo.hidden = NO;
+        self.secondLogoWidth.constant = 61.0f;
+    }
+    else {
+        self.secondLogo.hidden = YES ;
+        self.secondLogoWidth.constant = 0.0f;
+    }
 }
 
-- (void)displayCount:(NSInteger)count inView:(UILabel *)descLabel {
+- (void)displayCount:(NSInteger)count inView:(UILabel *)descLabel descTitle:(NSString *)descTitle {
+    NSString *numString = @"";
     if (count > 10000) {
         double descNum = count / 10000.0;
-        descLabel.text = [NSString stringWithFormat:@"%.2f万",descNum];
+        numString = [NSString stringWithFormat:@"%.2f万",descNum];
     }
     else {
-        descLabel.text = [NSString stringWithFormat:@"%ld",count];
+        numString = [NSString stringWithFormat:@"%ld",count];
     }
+    NSString *descString = [NSString stringWithFormat:@"%@%@", descTitle, numString];
+    NSMutableAttributedString *attr = [[NSMutableAttributedString alloc] initWithString:descString attributes:@{NSForegroundColorAttributeName:HexRGB(0x000000),NSFontAttributeName:[UIFont systemFontOfSize:17.0f weight:UIFontWeightMedium]}];
+    [attr addAttributes:@{NSForegroundColorAttributeName:HexRGB(0x333333),NSFontAttributeName:[UIFont systemFontOfSize:14.0f]} range:NSMakeRange(0, descTitle.length)];
+    descLabel.attributedText = attr;
 }
 
 - (IBAction)clickAction:(UITapGestureRecognizer *)sender {
@@ -132,7 +181,7 @@
 }
 
 - (CGFloat)getViewHeight {
-    return 90 + 15 + 190 + 15 + 250;
+    return 90 + 15 + 190 + 15 + 250 + self.descViewHeight.constant+10;
 }
 
 - (IBAction)hideTipsButton:(id)sender {

+ 140 - 124
KulexiuForTeacher/KulexiuForTeacher/Module/Mine/View/MineBodyView.xib

@@ -12,7 +12,7 @@
         <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
         <view contentMode="scaleToFill" id="iN0-l3-epB" customClass="MineBodyView">
             <rect key="frame" x="0.0" y="0.0" width="414" height="795"/>
-            <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+            <autoresizingMask key="autoresizingMask"/>
             <subviews>
                 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="K43-Hf-e2b">
                     <rect key="frame" x="0.0" y="0.0" width="414" height="90"/>
@@ -29,14 +29,17 @@
                                 </userDefinedRuntimeAttribute>
                             </userDefinedRuntimeAttributes>
                         </imageView>
-                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="游客12e32td" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="dbv-tC-djl">
-                            <rect key="frame" x="77" y="25" width="105" height="22"/>
+                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="游客" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="dbv-tC-djl">
+                            <rect key="frame" x="77" y="25" width="37" height="25"/>
+                            <constraints>
+                                <constraint firstAttribute="height" constant="25" id="CVg-fp-xdB"/>
+                            </constraints>
                             <fontDescription key="fontDescription" type="system" weight="medium" pointSize="18"/>
                             <color key="textColor" red="0.10196078431372549" green="0.10196078431372549" blue="0.10196078431372549" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                             <nil key="highlightedColor"/>
                         </label>
                         <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="kb3-97-shC">
-                            <rect key="frame" x="77" y="52" width="95" height="19"/>
+                            <rect key="frame" x="77" y="55" width="95" height="19"/>
                             <subviews>
                                 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="U6R-K3-xDh" customClass="KSStarView">
                                     <rect key="frame" x="0.0" y="0.0" width="95" height="19"/>
@@ -53,114 +56,6 @@
                                 <constraint firstItem="U6R-K3-xDh" firstAttribute="leading" secondItem="kb3-97-shC" secondAttribute="leading" id="voB-d5-sXy"/>
                             </constraints>
                         </view>
-                        <view hidden="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="gCP-gg-9Jo">
-                            <rect key="frame" x="207" y="0.0" width="207" height="90"/>
-                            <subviews>
-                                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="0pQ-gg-IHk">
-                                    <rect key="frame" x="0.0" y="0.0" width="69" height="90"/>
-                                    <subviews>
-                                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="粉丝" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Zq5-Xr-ax9">
-                                            <rect key="frame" x="0.0" y="17" width="69" height="28"/>
-                                            <constraints>
-                                                <constraint firstAttribute="height" constant="28" id="XHL-kh-SOJ"/>
-                                            </constraints>
-                                            <fontDescription key="fontDescription" type="system" pointSize="12"/>
-                                            <color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
-                                            <nil key="highlightedColor"/>
-                                        </label>
-                                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="123" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Txs-cy-0uI">
-                                            <rect key="frame" x="0.0" y="45" width="69" height="22"/>
-                                            <fontDescription key="fontDescription" type="system" pointSize="18"/>
-                                            <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
-                                            <nil key="highlightedColor"/>
-                                        </label>
-                                    </subviews>
-                                    <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
-                                    <constraints>
-                                        <constraint firstAttribute="trailing" secondItem="Txs-cy-0uI" secondAttribute="trailing" id="3Kq-eC-jDu"/>
-                                        <constraint firstAttribute="trailing" secondItem="Zq5-Xr-ax9" secondAttribute="trailing" id="Bmb-6V-T42"/>
-                                        <constraint firstItem="Zq5-Xr-ax9" firstAttribute="centerX" secondItem="0pQ-gg-IHk" secondAttribute="centerX" id="LlX-zw-tbt"/>
-                                        <constraint firstItem="Zq5-Xr-ax9" firstAttribute="leading" secondItem="0pQ-gg-IHk" secondAttribute="leading" id="aJy-sd-QG7"/>
-                                        <constraint firstItem="Txs-cy-0uI" firstAttribute="leading" secondItem="0pQ-gg-IHk" secondAttribute="leading" id="anW-3V-Osc"/>
-                                        <constraint firstItem="Zq5-Xr-ax9" firstAttribute="bottom" secondItem="0pQ-gg-IHk" secondAttribute="centerY" id="nFT-Vy-3Va"/>
-                                        <constraint firstItem="Txs-cy-0uI" firstAttribute="top" secondItem="Zq5-Xr-ax9" secondAttribute="bottom" id="orT-nC-zVL"/>
-                                    </constraints>
-                                </view>
-                                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="wTh-ri-wZF">
-                                    <rect key="frame" x="69" y="0.0" width="69" height="90"/>
-                                    <subviews>
-                                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="已上课时" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="C0v-ZC-JyK">
-                                            <rect key="frame" x="0.0" y="17" width="69" height="28"/>
-                                            <constraints>
-                                                <constraint firstAttribute="height" constant="28" id="iJK-u4-TmZ"/>
-                                            </constraints>
-                                            <fontDescription key="fontDescription" type="system" pointSize="12"/>
-                                            <color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
-                                            <nil key="highlightedColor"/>
-                                        </label>
-                                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="12" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="43g-pi-zyr">
-                                            <rect key="frame" x="0.0" y="45" width="69" height="22"/>
-                                            <fontDescription key="fontDescription" type="system" pointSize="18"/>
-                                            <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
-                                            <nil key="highlightedColor"/>
-                                        </label>
-                                    </subviews>
-                                    <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
-                                    <constraints>
-                                        <constraint firstItem="C0v-ZC-JyK" firstAttribute="bottom" secondItem="wTh-ri-wZF" secondAttribute="centerY" id="dOF-dY-fEC"/>
-                                        <constraint firstItem="43g-pi-zyr" firstAttribute="top" secondItem="C0v-ZC-JyK" secondAttribute="bottom" id="g3d-R1-OeM"/>
-                                        <constraint firstItem="43g-pi-zyr" firstAttribute="leading" secondItem="wTh-ri-wZF" secondAttribute="leading" id="rrL-yN-jfF"/>
-                                        <constraint firstItem="C0v-ZC-JyK" firstAttribute="leading" secondItem="wTh-ri-wZF" secondAttribute="leading" id="wPE-7t-AJ2"/>
-                                        <constraint firstAttribute="trailing" secondItem="C0v-ZC-JyK" secondAttribute="trailing" id="z4P-Wg-ED1"/>
-                                        <constraint firstAttribute="trailing" secondItem="43g-pi-zyr" secondAttribute="trailing" id="zhn-MN-XLc"/>
-                                    </constraints>
-                                </view>
-                                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="ymd-7c-rk8">
-                                    <rect key="frame" x="138" y="0.0" width="69" height="90"/>
-                                    <subviews>
-                                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="未上课时" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="tZs-On-Gl8">
-                                            <rect key="frame" x="0.0" y="17" width="69" height="28"/>
-                                            <constraints>
-                                                <constraint firstAttribute="height" constant="28" id="f9K-H5-lWv"/>
-                                            </constraints>
-                                            <fontDescription key="fontDescription" type="system" pointSize="12"/>
-                                            <color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
-                                            <nil key="highlightedColor"/>
-                                        </label>
-                                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="34" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="1mV-1f-bkA">
-                                            <rect key="frame" x="0.0" y="45" width="69" height="22"/>
-                                            <fontDescription key="fontDescription" type="system" pointSize="18"/>
-                                            <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
-                                            <nil key="highlightedColor"/>
-                                        </label>
-                                    </subviews>
-                                    <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
-                                    <constraints>
-                                        <constraint firstAttribute="trailing" secondItem="tZs-On-Gl8" secondAttribute="trailing" id="60r-jI-F5D"/>
-                                        <constraint firstItem="1mV-1f-bkA" firstAttribute="leading" secondItem="ymd-7c-rk8" secondAttribute="leading" id="GnL-uZ-Z2b"/>
-                                        <constraint firstItem="1mV-1f-bkA" firstAttribute="top" secondItem="tZs-On-Gl8" secondAttribute="bottom" id="J5y-oC-DGB"/>
-                                        <constraint firstItem="tZs-On-Gl8" firstAttribute="bottom" secondItem="ymd-7c-rk8" secondAttribute="centerY" id="Npq-KN-jy8"/>
-                                        <constraint firstAttribute="trailing" secondItem="1mV-1f-bkA" secondAttribute="trailing" id="R01-Iv-CVc"/>
-                                        <constraint firstItem="tZs-On-Gl8" firstAttribute="leading" secondItem="ymd-7c-rk8" secondAttribute="leading" id="gUE-Dn-4wl"/>
-                                    </constraints>
-                                </view>
-                            </subviews>
-                            <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
-                            <constraints>
-                                <constraint firstAttribute="bottom" secondItem="ymd-7c-rk8" secondAttribute="bottom" id="GMa-A6-ifq"/>
-                                <constraint firstItem="ymd-7c-rk8" firstAttribute="leading" secondItem="wTh-ri-wZF" secondAttribute="trailing" id="JkN-0t-Tp7"/>
-                                <constraint firstAttribute="trailing" secondItem="ymd-7c-rk8" secondAttribute="trailing" id="U26-t3-dJV"/>
-                                <constraint firstItem="0pQ-gg-IHk" firstAttribute="top" secondItem="gCP-gg-9Jo" secondAttribute="top" id="V9g-2l-Puc"/>
-                                <constraint firstItem="wTh-ri-wZF" firstAttribute="leading" secondItem="0pQ-gg-IHk" secondAttribute="trailing" id="WSj-NL-WCS"/>
-                                <constraint firstAttribute="bottom" secondItem="0pQ-gg-IHk" secondAttribute="bottom" id="Y65-Ih-a27"/>
-                                <constraint firstAttribute="bottom" secondItem="wTh-ri-wZF" secondAttribute="bottom" id="YoR-vf-c0A"/>
-                                <constraint firstItem="wTh-ri-wZF" firstAttribute="top" secondItem="gCP-gg-9Jo" secondAttribute="top" id="hFr-pD-bzO"/>
-                                <constraint firstItem="ymd-7c-rk8" firstAttribute="width" secondItem="0pQ-gg-IHk" secondAttribute="width" id="jqb-bE-XK3"/>
-                                <constraint firstItem="0pQ-gg-IHk" firstAttribute="leading" secondItem="gCP-gg-9Jo" secondAttribute="leading" id="p8q-P8-hdf"/>
-                                <constraint firstItem="ymd-7c-rk8" firstAttribute="top" secondItem="gCP-gg-9Jo" secondAttribute="top" id="wmG-79-ubn"/>
-                                <constraint firstItem="wTh-ri-wZF" firstAttribute="width" secondItem="0pQ-gg-IHk" secondAttribute="width" id="yZb-DB-Hxl"/>
-                            </constraints>
-                        </view>
                         <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="eq0-JE-kle">
                             <rect key="frame" x="207" y="0.0" width="207" height="90"/>
                             <subviews>
@@ -251,29 +146,44 @@
                                 <constraint firstItem="H79-R9-H51" firstAttribute="top" secondItem="Xz8-DZ-zs6" secondAttribute="bottom" constant="3" id="XKl-T7-7EU"/>
                             </constraints>
                         </view>
+                        <imageView hidden="YES" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="teacherAuth_logo" translatesAutoresizingMaskIntoConstraints="NO" id="czV-qC-BkA">
+                            <rect key="frame" x="124" y="26.5" width="53" height="22"/>
+                            <constraints>
+                                <constraint firstAttribute="width" constant="53" id="A6d-Lt-C2H"/>
+                                <constraint firstAttribute="height" constant="22" id="PdK-uJ-mwv"/>
+                            </constraints>
+                        </imageView>
+                        <imageView hidden="YES" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="musicianAuth_logo" translatesAutoresizingMaskIntoConstraints="NO" id="Fd1-bQ-7Kj">
+                            <rect key="frame" x="181" y="26.5" width="61" height="22"/>
+                            <constraints>
+                                <constraint firstAttribute="height" constant="22" id="60m-qy-UPf"/>
+                                <constraint firstAttribute="width" constant="61" id="d4G-4K-nul"/>
+                            </constraints>
+                        </imageView>
                     </subviews>
                     <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                     <gestureRecognizers/>
                     <constraints>
+                        <constraint firstItem="czV-qC-BkA" firstAttribute="leading" secondItem="dbv-tC-djl" secondAttribute="trailing" constant="10" id="068-WI-xB5"/>
                         <constraint firstItem="kb3-97-shC" firstAttribute="top" secondItem="dbv-tC-djl" secondAttribute="bottom" constant="5" id="0YH-xY-vAV"/>
-                        <constraint firstItem="eq0-JE-kle" firstAttribute="bottom" secondItem="gCP-gg-9Jo" secondAttribute="bottom" id="AZp-OS-dBN"/>
                         <constraint firstAttribute="height" constant="90" id="Cmo-h9-fJh"/>
                         <constraint firstItem="dbv-tC-djl" firstAttribute="top" secondItem="L8h-ZO-2iV" secondAttribute="top" constant="6" id="GFk-U2-Fr8"/>
                         <constraint firstItem="L8h-ZO-2iV" firstAttribute="centerY" secondItem="K43-Hf-e2b" secondAttribute="centerY" id="Gma-Ix-zQk"/>
-                        <constraint firstItem="eq0-JE-kle" firstAttribute="leading" secondItem="gCP-gg-9Jo" secondAttribute="leading" id="PwB-ET-0b2"/>
-                        <constraint firstAttribute="bottom" secondItem="gCP-gg-9Jo" secondAttribute="bottom" id="T8j-M1-eyt"/>
-                        <constraint firstItem="eq0-JE-kle" firstAttribute="top" secondItem="gCP-gg-9Jo" secondAttribute="top" id="cI8-VF-UfS"/>
+                        <constraint firstItem="eq0-JE-kle" firstAttribute="top" secondItem="K43-Hf-e2b" secondAttribute="top" id="J4p-MN-ugC"/>
                         <constraint firstItem="kb3-97-shC" firstAttribute="leading" secondItem="dbv-tC-djl" secondAttribute="leading" id="dLD-MG-DWU"/>
-                        <constraint firstAttribute="trailing" secondItem="gCP-gg-9Jo" secondAttribute="trailing" id="dqN-mZ-rwp"/>
-                        <constraint firstItem="eq0-JE-kle" firstAttribute="trailing" secondItem="gCP-gg-9Jo" secondAttribute="trailing" id="jvK-Ls-wu7"/>
+                        <constraint firstItem="czV-qC-BkA" firstAttribute="centerY" secondItem="dbv-tC-djl" secondAttribute="centerY" id="kPV-uh-Llt"/>
+                        <constraint firstItem="Fd1-bQ-7Kj" firstAttribute="centerY" secondItem="dbv-tC-djl" secondAttribute="centerY" id="myY-J0-sYF"/>
+                        <constraint firstItem="eq0-JE-kle" firstAttribute="leading" secondItem="K43-Hf-e2b" secondAttribute="centerX" id="oqT-7s-EtP"/>
                         <constraint firstItem="L8h-ZO-2iV" firstAttribute="leading" secondItem="K43-Hf-e2b" secondAttribute="leading" constant="15" id="pVF-2j-tMt"/>
-                        <constraint firstItem="gCP-gg-9Jo" firstAttribute="leading" secondItem="K43-Hf-e2b" secondAttribute="centerX" id="rPf-tv-QM7"/>
-                        <constraint firstItem="gCP-gg-9Jo" firstAttribute="top" secondItem="K43-Hf-e2b" secondAttribute="top" id="uhx-vd-HUx"/>
+                        <constraint firstAttribute="bottom" secondItem="eq0-JE-kle" secondAttribute="bottom" id="t5p-ck-fjP"/>
+                        <constraint firstItem="Fd1-bQ-7Kj" firstAttribute="leading" secondItem="czV-qC-BkA" secondAttribute="trailing" constant="4" id="tA4-Qr-peq"/>
+                        <constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="Fd1-bQ-7Kj" secondAttribute="trailing" constant="10" id="tiz-fb-Aub"/>
                         <constraint firstItem="dbv-tC-djl" firstAttribute="leading" secondItem="L8h-ZO-2iV" secondAttribute="trailing" constant="10" id="yjc-rf-wXx"/>
+                        <constraint firstAttribute="trailing" secondItem="eq0-JE-kle" secondAttribute="trailing" id="zau-Dg-rpn"/>
                     </constraints>
                 </view>
                 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="mlC-jr-q9m">
-                    <rect key="frame" x="14" y="100" width="386" height="190"/>
+                    <rect key="frame" x="14" y="160" width="386" height="190"/>
                     <subviews>
                         <view tag="1002" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="y4k-33-a3V">
                             <rect key="frame" x="0.0" y="0.0" width="96.5" height="95"/>
@@ -572,7 +482,7 @@
                     </userDefinedRuntimeAttributes>
                 </view>
                 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="f2F-rL-Oml">
-                    <rect key="frame" x="14" y="305" width="386" height="250"/>
+                    <rect key="frame" x="14" y="365" width="386" height="250"/>
                     <subviews>
                         <view tag="1009" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="587-LV-G4K">
                             <rect key="frame" x="0.0" y="0.0" width="386" height="50"/>
@@ -835,6 +745,101 @@
                         </userDefinedRuntimeAttribute>
                     </userDefinedRuntimeAttributes>
                 </view>
+                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="ezF-W3-9Gd">
+                    <rect key="frame" x="14" y="110" width="386" height="40"/>
+                    <subviews>
+                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="0pQ-gg-IHk">
+                            <rect key="frame" x="0.0" y="0.0" width="128.5" height="40"/>
+                            <subviews>
+                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Txs-cy-0uI">
+                                    <rect key="frame" x="0.0" y="0.0" width="128.5" height="40"/>
+                                    <fontDescription key="fontDescription" type="system" pointSize="18"/>
+                                    <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                    <nil key="highlightedColor"/>
+                                </label>
+                                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="c4k-Cl-FTh">
+                                    <rect key="frame" x="127.5" y="14" width="1" height="12"/>
+                                    <color key="backgroundColor" red="0.82745098039215681" green="0.82745098039215681" blue="0.82745098039215681" alpha="1" colorSpace="calibratedRGB"/>
+                                    <constraints>
+                                        <constraint firstAttribute="width" constant="1" id="D9k-Ob-eMh"/>
+                                        <constraint firstAttribute="height" constant="12" id="TRJ-v8-Sq7"/>
+                                    </constraints>
+                                </view>
+                            </subviews>
+                            <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                            <constraints>
+                                <constraint firstItem="Txs-cy-0uI" firstAttribute="leading" secondItem="0pQ-gg-IHk" secondAttribute="leading" id="6oa-wu-6X5"/>
+                                <constraint firstAttribute="trailing" secondItem="Txs-cy-0uI" secondAttribute="trailing" id="99c-R9-Vnd"/>
+                                <constraint firstAttribute="trailing" secondItem="c4k-Cl-FTh" secondAttribute="trailing" id="P77-1V-F43"/>
+                                <constraint firstItem="c4k-Cl-FTh" firstAttribute="centerY" secondItem="0pQ-gg-IHk" secondAttribute="centerY" id="bTc-21-sXh"/>
+                                <constraint firstAttribute="bottom" secondItem="Txs-cy-0uI" secondAttribute="bottom" id="i2X-FZ-5xa"/>
+                                <constraint firstItem="Txs-cy-0uI" firstAttribute="top" secondItem="0pQ-gg-IHk" secondAttribute="top" id="rFW-n4-sGd"/>
+                            </constraints>
+                        </view>
+                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="wTh-ri-wZF">
+                            <rect key="frame" x="128.5" y="0.0" width="129" height="40"/>
+                            <subviews>
+                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="43g-pi-zyr">
+                                    <rect key="frame" x="0.0" y="0.0" width="129" height="40"/>
+                                    <fontDescription key="fontDescription" type="system" pointSize="18"/>
+                                    <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                    <nil key="highlightedColor"/>
+                                </label>
+                                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="dWw-r3-USK">
+                                    <rect key="frame" x="128" y="14" width="1" height="12"/>
+                                    <color key="backgroundColor" red="0.82745098039999998" green="0.82745098039999998" blue="0.82745098039999998" alpha="1" colorSpace="calibratedRGB"/>
+                                    <constraints>
+                                        <constraint firstAttribute="height" constant="12" id="8ad-Sr-9kh"/>
+                                        <constraint firstAttribute="width" constant="1" id="W7x-Qp-qy4"/>
+                                    </constraints>
+                                </view>
+                            </subviews>
+                            <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                            <constraints>
+                                <constraint firstAttribute="trailing" secondItem="43g-pi-zyr" secondAttribute="trailing" id="EyW-OW-zzN"/>
+                                <constraint firstAttribute="trailing" secondItem="dWw-r3-USK" secondAttribute="trailing" id="SeS-zT-rOC"/>
+                                <constraint firstItem="43g-pi-zyr" firstAttribute="top" secondItem="wTh-ri-wZF" secondAttribute="top" id="g4t-A4-RJK"/>
+                                <constraint firstAttribute="bottom" secondItem="43g-pi-zyr" secondAttribute="bottom" id="jgf-gg-9Ga"/>
+                                <constraint firstItem="dWw-r3-USK" firstAttribute="centerY" secondItem="wTh-ri-wZF" secondAttribute="centerY" id="mRC-KW-U6b"/>
+                                <constraint firstItem="43g-pi-zyr" firstAttribute="leading" secondItem="wTh-ri-wZF" secondAttribute="leading" id="pp7-gB-CD1"/>
+                            </constraints>
+                        </view>
+                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="ymd-7c-rk8">
+                            <rect key="frame" x="257.5" y="0.0" width="128.5" height="40"/>
+                            <subviews>
+                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="1mV-1f-bkA">
+                                    <rect key="frame" x="0.0" y="0.0" width="128.5" height="40"/>
+                                    <fontDescription key="fontDescription" type="system" pointSize="18"/>
+                                    <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                    <nil key="highlightedColor"/>
+                                </label>
+                            </subviews>
+                            <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                            <constraints>
+                                <constraint firstAttribute="bottom" secondItem="1mV-1f-bkA" secondAttribute="bottom" id="Aqr-uR-557"/>
+                                <constraint firstItem="1mV-1f-bkA" firstAttribute="top" secondItem="ymd-7c-rk8" secondAttribute="top" id="BwX-3U-4xq"/>
+                                <constraint firstAttribute="trailing" secondItem="1mV-1f-bkA" secondAttribute="trailing" id="Ist-pA-SqF"/>
+                                <constraint firstItem="1mV-1f-bkA" firstAttribute="leading" secondItem="ymd-7c-rk8" secondAttribute="leading" id="o13-mT-zpf"/>
+                            </constraints>
+                        </view>
+                    </subviews>
+                    <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                    <constraints>
+                        <constraint firstItem="wTh-ri-wZF" firstAttribute="width" secondItem="0pQ-gg-IHk" secondAttribute="width" id="7WU-bp-b5i"/>
+                        <constraint firstItem="wTh-ri-wZF" firstAttribute="leading" secondItem="0pQ-gg-IHk" secondAttribute="trailing" id="7ih-2M-TWY"/>
+                        <constraint firstAttribute="bottom" secondItem="ymd-7c-rk8" secondAttribute="bottom" id="EeZ-ON-yU7"/>
+                        <constraint firstAttribute="bottom" secondItem="0pQ-gg-IHk" secondAttribute="bottom" id="XPN-xD-aR6"/>
+                        <constraint firstItem="0pQ-gg-IHk" firstAttribute="leading" secondItem="ezF-W3-9Gd" secondAttribute="leading" id="YdZ-45-zf6"/>
+                        <constraint firstItem="0pQ-gg-IHk" firstAttribute="top" secondItem="ezF-W3-9Gd" secondAttribute="top" id="Yv1-hU-Lh3"/>
+                        <constraint firstAttribute="trailing" secondItem="ymd-7c-rk8" secondAttribute="trailing" id="b6V-4D-Nxx"/>
+                        <constraint firstItem="ymd-7c-rk8" firstAttribute="leading" secondItem="wTh-ri-wZF" secondAttribute="trailing" id="dB3-rL-RiT"/>
+                        <constraint firstAttribute="bottom" secondItem="wTh-ri-wZF" secondAttribute="bottom" id="eWS-yp-Wax"/>
+                        <constraint firstItem="ymd-7c-rk8" firstAttribute="top" secondItem="ezF-W3-9Gd" secondAttribute="top" id="fBW-W5-jpE"/>
+                        <constraint firstAttribute="height" constant="40" id="gd0-0b-qD2"/>
+                        <constraint firstItem="ymd-7c-rk8" firstAttribute="width" secondItem="0pQ-gg-IHk" secondAttribute="width" id="poE-JP-i5E"/>
+                        <constraint firstItem="wTh-ri-wZF" firstAttribute="top" secondItem="ezF-W3-9Gd" secondAttribute="top" id="v3K-My-keB"/>
+                    </constraints>
+                </view>
             </subviews>
             <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
             <constraints>
@@ -842,10 +847,13 @@
                 <constraint firstItem="f2F-rL-Oml" firstAttribute="top" secondItem="mlC-jr-q9m" secondAttribute="bottom" constant="15" id="44W-sL-f6T"/>
                 <constraint firstItem="mlC-jr-q9m" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" constant="14" id="9OM-CN-svp"/>
                 <constraint firstItem="K43-Hf-e2b" firstAttribute="top" secondItem="iN0-l3-epB" secondAttribute="top" id="An0-CB-Qab"/>
+                <constraint firstItem="ezF-W3-9Gd" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" constant="14" id="FTt-ZI-kd1"/>
                 <constraint firstAttribute="trailing" secondItem="K43-Hf-e2b" secondAttribute="trailing" id="FcU-9r-jur"/>
+                <constraint firstItem="ezF-W3-9Gd" firstAttribute="top" secondItem="K43-Hf-e2b" secondAttribute="bottom" constant="20" id="OKH-oO-DB5"/>
                 <constraint firstItem="K43-Hf-e2b" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" id="Zmj-R8-Ze8"/>
+                <constraint firstAttribute="trailing" secondItem="ezF-W3-9Gd" secondAttribute="trailing" constant="14" id="Zo2-Z4-BDx"/>
                 <constraint firstAttribute="trailing" secondItem="mlC-jr-q9m" secondAttribute="trailing" constant="14" id="fka-0h-PbA"/>
-                <constraint firstItem="mlC-jr-q9m" firstAttribute="top" secondItem="K43-Hf-e2b" secondAttribute="bottom" constant="10" id="fud-vs-pgO"/>
+                <constraint firstItem="mlC-jr-q9m" firstAttribute="top" secondItem="ezF-W3-9Gd" secondAttribute="bottom" constant="10" id="vWR-kv-TzJ"/>
                 <constraint firstItem="f2F-rL-Oml" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" constant="14" id="zmX-Ha-rHm"/>
             </constraints>
             <nil key="simulatedTopBarMetrics"/>
@@ -855,10 +863,16 @@
                 <outlet property="authLabel" destination="xuX-rV-262" id="NwI-7k-6MF"/>
                 <outlet property="authView" destination="eq0-JE-kle" id="A2F-j8-Me1"/>
                 <outlet property="cardStatusLabel" destination="EQt-Ei-IA1" id="HBE-Oz-GFC"/>
-                <outlet property="descView" destination="gCP-gg-9Jo" id="BNg-nM-ypu"/>
+                <outlet property="descView" destination="ezF-W3-9Gd" id="3gr-2t-1j7"/>
+                <outlet property="descViewHeight" destination="gd0-0b-qD2" id="uHU-uQ-RQv"/>
                 <outlet property="fansCount" destination="Txs-cy-0uI" id="lrg-ZG-wRk"/>
                 <outlet property="finishCourse" destination="43g-pi-zyr" id="iqW-8i-NP1"/>
+                <outlet property="firstLogo" destination="czV-qC-BkA" id="T3v-9a-PTZ"/>
+                <outlet property="firstLogoWidth" destination="A6d-Lt-C2H" id="v2h-Hs-mh6"/>
+                <outlet property="logoSpace" destination="tA4-Qr-peq" id="wus-4k-9Hh"/>
                 <outlet property="musicianStatusLabel" destination="2lR-LA-fG9" id="wrq-5A-Auq"/>
+                <outlet property="secondLogo" destination="Fd1-bQ-7Kj" id="pvT-mX-8zQ"/>
+                <outlet property="secondLogoWidth" destination="d4G-4K-nul" id="SKl-SB-fuu"/>
                 <outlet property="starBgView" destination="kb3-97-shC" id="PuF-MY-igO"/>
                 <outlet property="starView" destination="U6R-K3-xDh" id="9Sg-aI-0Vf"/>
                 <outlet property="tipsButton" destination="H79-R9-H51" id="gwJ-hU-eCe"/>
@@ -949,7 +963,9 @@
         <image name="mine_order" width="34" height="34"/>
         <image name="mine_startBoardcast" width="34" height="34"/>
         <image name="mine_videoCourse" width="34" height="34"/>
+        <image name="musicianAuth_logo" width="61" height="22"/>
         <image name="musician_auth" width="28" height="28"/>
+        <image name="teacherAuth_logo" width="53" height="22"/>
         <image name="user_default_avatal" width="52" height="52"/>
         <systemColor name="systemBackgroundColor">
             <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>