فهرست منبع

1.修改裁剪不能留空

Steven 2 سال پیش
والد
کامیت
885cb608f5
34فایلهای تغییر یافته به همراه412 افزوده شده و 85 حذف شده
  1. BIN
      KulexiuForTeacher/KulexiuForTeacher.xcworkspace/xcuserdata/wangzhi.xcuserdatad/UserInterfaceState.xcuserstate
  2. 53 21
      KulexiuForTeacher/KulexiuForTeacher.xcworkspace/xcuserdata/wangzhi.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist
  3. 5 0
      KulexiuForTeacher/KulexiuForTeacher/AppDelegate.m
  4. 4 0
      KulexiuForTeacher/KulexiuForTeacher/Common/Base/KSBaseWKWebViewController.m
  5. 3 2
      KulexiuForTeacher/KulexiuForTeacher/Common/Base/KSNetworkingManager.h
  6. 4 2
      KulexiuForTeacher/KulexiuForTeacher/Common/Base/KSNetworkingManager.m
  7. 14 14
      KulexiuForTeacher/KulexiuForTeacher/Common/Define/PrefixHeader.pch
  8. 13 2
      KulexiuForTeacher/KulexiuForTeacher/Module/Chat/Controller/KSChatConversationViewController.m
  9. 6 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/EvaluateCourse/Controller/EvaluateCourseListViewController.m
  10. 6 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/Homework/Controller/HomeworkListViewController.m
  11. 6 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/Income/Controller/MyIncomeViewController.m
  12. 5 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/Music/Controller/MyMusicViewController.m
  13. 5 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/MyCourse/Controller/MyCourseViewController.m
  14. 5 1
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/NotiferMessage/Controller/NotiferMessageViewController.m
  15. 6 1
      KulexiuForTeacher/KulexiuForTeacher/Module/Live/Controller/LiveRoomViewController.m
  16. 11 5
      KulexiuForTeacher/KulexiuForTeacher/Module/Live/View/LiveRoomHeadView.xib
  17. 42 4
      KulexiuForTeacher/KulexiuForTeacher/Module/Login/Controller/FirstSettingViewController.m
  18. 1 1
      KulexiuForTeacher/KulexiuForTeacher/Module/Login/Controller/PasswordLoginController.m
  19. 1 1
      KulexiuForTeacher/KulexiuForTeacher/Module/Login/Controller/VefiCodeLoginController.m
  20. 8 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Login/Model/UserInfoManager.h
  21. 61 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Login/Model/UserInfoManager.m
  22. 6 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Login/View/FirstSettingBodyView.h
  23. 15 1
      KulexiuForTeacher/KulexiuForTeacher/Module/Login/View/FirstSettingBodyView.m
  24. 78 27
      KulexiuForTeacher/KulexiuForTeacher/Module/Login/View/FirstSettingBodyView.xib
  25. 6 1
      KulexiuForTeacher/KulexiuForTeacher/Module/Mine/BankCard/Controller/MyBankCardViewController.m
  26. 7 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Mine/CreateStyle/Controller/MyStyleViewController.m
  27. 4 1
      KulexiuForTeacher/KulexiuForTeacher/Module/Mine/LiveCourse/Controller/MyLiveCourseViewController.m
  28. 5 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Mine/LiveList/Controller/LiveListViewController.m
  29. 6 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Mine/MinePage/Controller/MinePageViewController.m
  30. 6 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Mine/Setting/Controller/FeedbackViewController.m
  31. 7 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Mine/Setting/Controller/SettingViewController.m
  32. 7 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Mine/Setting/Controller/UserSettingViewController.m
  33. 1 1
      KulexiuForTeacher/KulexiuForTeacher/Module/Mine/Setting/View/ModifyNameBodyView.m
  34. 5 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Mine/VideoCourse/Controller/VideoCourseViewController.m

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


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

@@ -62,8 +62,8 @@
             filePath = "KulexiuForTeacher/Module/Live/Controller/LiveRoomViewController.m"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "1706"
-            endingLineNumber = "1706"
+            startingLineNumber = "1711"
+            endingLineNumber = "1711"
             landmarkName = "-pauseLiveActionBack:"
             landmarkType = "7">
          </BreakpointContent>
@@ -94,8 +94,8 @@
             filePath = "KulexiuForTeacher/Module/Live/Controller/LiveRoomViewController.m"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "1416"
-            endingLineNumber = "1416"
+            startingLineNumber = "1421"
+            endingLineNumber = "1421"
             landmarkName = "-sendMessage:displayMessage:callback:"
             landmarkType = "7">
          </BreakpointContent>
@@ -110,8 +110,8 @@
             filePath = "KulexiuForTeacher/Common/Base/KSNetworkingManager.m"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "1361"
-            endingLineNumber = "1361"
+            startingLineNumber = "1363"
+            endingLineNumber = "1363"
             landmarkName = "+liveRoomSetMicApplyEnable:roomUid:whetherMic:success:faliure:"
             landmarkType = "7">
          </BreakpointContent>
@@ -174,8 +174,8 @@
             filePath = "KulexiuForTeacher/Module/Live/Controller/LiveRoomViewController.m"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "886"
-            endingLineNumber = "886"
+            startingLineNumber = "891"
+            endingLineNumber = "891"
             landmarkName = "-subscribeRemoteResource:isTiny:"
             landmarkType = "7">
          </BreakpointContent>
@@ -190,8 +190,8 @@
             filePath = "KulexiuForTeacher/Common/Base/KSBaseWKWebViewController.m"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "1255"
-            endingLineNumber = "1255"
+            startingLineNumber = "1259"
+            endingLineNumber = "1259"
             landmarkName = "-documentPicker:didPickDocumentAtURL:"
             landmarkType = "7">
          </BreakpointContent>
@@ -206,8 +206,8 @@
             filePath = "KulexiuForTeacher/Module/Live/Controller/LiveRoomViewController.m"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "1056"
-            endingLineNumber = "1056"
+            startingLineNumber = "1061"
+            endingLineNumber = "1061"
             landmarkName = "-publishLocalStream"
             landmarkType = "7">
          </BreakpointContent>
@@ -222,8 +222,8 @@
             filePath = "KulexiuForTeacher/Module/Live/Controller/LiveRoomViewController.m"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "243"
-            endingLineNumber = "243"
+            startingLineNumber = "248"
+            endingLineNumber = "248"
             landmarkName = "-configEngine"
             landmarkType = "7">
          </BreakpointContent>
@@ -238,8 +238,8 @@
             filePath = "KulexiuForTeacher/Module/Live/Controller/LiveRoomViewController.m"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "1743"
-            endingLineNumber = "1743"
+            startingLineNumber = "1748"
+            endingLineNumber = "1748"
             landmarkName = "-quitRoomBackPreView:"
             landmarkType = "7">
             <Locations>
@@ -295,16 +295,48 @@
       <BreakpointProxy
          BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
          <BreakpointContent
-            uuid = "95B70B37-01E6-4EE1-ADBA-EA3D4867CFCD"
+            uuid = "AFB48B19-28D6-4289-A164-13C41819888F"
             shouldBeEnabled = "Yes"
             ignoreCount = "0"
             continueAfterRunningActions = "No"
-            filePath = "KulexiuForTeacher/Module/Home/Controller/HomeViewController.m"
+            filePath = "KulexiuForTeacher/Module/Mine/Setting/Controller/UserSettingViewController.m"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "427"
-            endingLineNumber = "427"
-            landmarkName = "-requestHotMusicList"
+            startingLineNumber = "274"
+            endingLineNumber = "274"
+            landmarkName = "-clearUMCount"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            uuid = "577B5D8C-A3F2-4710-B283-ECB1E973F0FB"
+            shouldBeEnabled = "Yes"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "KulexiuForTeacher/Module/Login/Controller/PasswordLoginController.m"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "75"
+            endingLineNumber = "75"
+            landmarkName = "-operationAction:parm:"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            uuid = "64262C61-724F-474B-8437-02AF357C03DD"
+            shouldBeEnabled = "Yes"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "KulexiuForTeacher/AppDelegate.m"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "205"
+            endingLineNumber = "205"
+            landmarkName = "-configUM"
             landmarkType = "7">
          </BreakpointContent>
       </BreakpointProxy>

+ 5 - 0
KulexiuForTeacher/KulexiuForTeacher/AppDelegate.m

@@ -202,6 +202,11 @@
 
 - (void)configUM {
     [UMConfigure initWithAppkey:@"62a2a86de60ab53d9a94611f" channel:@"App Store"];
+    if ([USER_MANAGER startCountUMEvent]) {
+        [USER_MANAGER sendUMEvent:@"klx_login"];
+    }
+    
+    [UMConfigure setLogEnabled:YES];
     // 配置友盟分享
     // 微信、QQ、微博完整版会校验合法的universalLink,不设置会在初始化平台失败
        //配置微信Universal Link需注意 universalLinkDic的key是rawInt类型,不是枚举类型 ,即为 UMSocialPlatformType.wechatSession.rawInt

+ 4 - 0
KulexiuForTeacher/KulexiuForTeacher/Common/Base/KSBaseWKWebViewController.m

@@ -587,6 +587,10 @@ typedef NS_ENUM(NSInteger, CHOOSETYPE) {
             [self postMessage:sendParm];
         }
     }
+    else if ([[parm stringValueForKey:@"api"] isEqualToString:@"setEventTracking"]) {
+        NSString *type = [[parm dictionaryValueForKey:@"content"] stringValueForKey:@"type"];
+        [USER_MANAGER sendUMEvent:type];
+    }
 }
 
 

+ 3 - 2
KulexiuForTeacher/KulexiuForTeacher/Common/Base/KSNetworkingManager.h

@@ -130,11 +130,12 @@ NS_ASSUME_NONNULL_BEGIN
  @param post post
  @param username 用户名
  @param password 密码
+ @param userSex 性别
  @param token token
  @param success 成功
  @param faliure 失败
  */
-+ (void)setPasswordRequest:(NSString *)post username:(NSString * _Nullable)username password:(NSString *)password token:(NSString *)token success:(void(^)(NSDictionary *dic))success faliure:(void(^)(NSError *error))faliure;
++ (void)setPasswordRequest:(NSString *)post username:(NSString * _Nullable)username password:(NSString *)password userSex:(NSString *)userSex token:(NSString *)token success:(void(^)(NSDictionary *dic))success faliure:(void(^)(NSError *error))faliure;
 
 // /api-auth/user/updatePassword
 
@@ -1248,7 +1249,7 @@ NS_ASSUME_NONNULL_BEGIN
 
 // /teacher-server/sysConfig/queryByParamName
 
-/// 查询课程调整时间配置参数
+/// 查询配置参数
 /// @param get get
 /// @param paramName 参数
 /// @param success 成功

+ 4 - 2
KulexiuForTeacher/KulexiuForTeacher/Common/Base/KSNetworkingManager.m

@@ -473,15 +473,17 @@
  @param post post
  @param username 用户名
  @param password 密码
+ @param userSex 性别
  @param token token
  @param success 成功
  @param faliure 失败
  */
-+ (void)setPasswordRequest:(NSString *)post username:(NSString *)username password:(NSString *)password token:(NSString *)token success:(void(^)(NSDictionary *dic))success faliure:(void(^)(NSError *error))faliure {
++ (void)setPasswordRequest:(NSString *)post username:(NSString * _Nullable)username password:(NSString *)password userSex:(NSString *)userSex token:(NSString *)token success:(void(^)(NSDictionary *dic))success faliure:(void(^)(NSError *error))faliure {
     [self configRequestMethodFormWithToken:token];
     NSMutableDictionary *parm = [NSMutableDictionary dictionary];
     [parm setValue:username forKey:@"username"];
     [parm setValue:password forKey:@"password"];
+    [parm setValue:userSex forKey:@"gender"];
     NSString *url = [NSString stringWithFormat:@"%@%@",hostURL, @"/api-auth/user/setUsernameAndPassword"];
     [self request:post andWithUrl:url and:parm success:success faliure:faliure];
 }
@@ -2311,7 +2313,7 @@
 
 // /teacher-server/sysConfig/queryByParamName
 
-/// 查询课程调整时间配置参数
+/// 查询配置参数
 /// @param get get
 /// @param paramName 参数
 /// @param success 成功

+ 14 - 14
KulexiuForTeacher/KulexiuForTeacher/Common/Define/PrefixHeader.pch

@@ -135,23 +135,23 @@ shouldPrevent = NO; \
 
 //#ifdef DEBUG
 
-#define hostURL (@"https://dev.colexiu.com")
-#define SEALCLASSHOST (@"https://dev.colexiu.com/api-classroom")
-#define WEBHOST (@"https://dev.colexiu.com/teacher")
-#define SOCKET_URL (@"wss://dev.colexiu.com/audioAnalysis")
-#define JSPUSH_ENVIRONMENT (NO)
-#define RCIM_KEY (@"0vnjpoad0jbdz")
-#define SUBMIT_UUID (YES)
+//#define hostURL (@"https://dev.colexiu.com")
+//#define SEALCLASSHOST (@"https://dev.colexiu.com/api-classroom")
+//#define WEBHOST (@"https://dev.colexiu.com/teacher")
+//#define SOCKET_URL (@"wss://dev.colexiu.com/audioAnalysis")
+//#define JSPUSH_ENVIRONMENT (NO)
+//#define RCIM_KEY (@"0vnjpoad0jbdz")
+//#define SUBMIT_UUID (YES)
 
 //#else
 
-//#define hostURL (@"https://online.colexiu.com")
-//#define SEALCLASSHOST (@"https://online.colexiu.com/api-classroom")
-//#define WEBHOST (@"https://online.colexiu.com/teacher")
-//#define SOCKET_URL (@"wss://online.colexiu.com/audioAnalysis")
-//#define JSPUSH_ENVIRONMENT (YES)
-//#define RCIM_KEY (@"e5t4ouvpe42pa")
-//#define SUBMIT_UUID (YES)
+#define hostURL (@"https://online.colexiu.com")
+#define SEALCLASSHOST (@"https://online.colexiu.com/api-classroom")
+#define WEBHOST (@"https://online.colexiu.com/teacher")
+#define SOCKET_URL (@"wss://online.colexiu.com/audioAnalysis")
+#define JSPUSH_ENVIRONMENT (YES)
+#define RCIM_KEY (@"e5t4ouvpe42pa")
+#define SUBMIT_UUID (YES)
 
 
 //#endif

+ 13 - 2
KulexiuForTeacher/KulexiuForTeacher/Module/Chat/Controller/KSChatConversationViewController.m

@@ -105,6 +105,14 @@
     [self refreshUserInfoOrGroupInfo];
     self.isFirstLoad = YES;
 }
+- (void)allocTitle:(NSString *)Ntitle withColor:(UIColor *)color {
+    UILabel *natext= [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 80, 40)];
+    natext.textAlignment = NSTextAlignmentCenter;
+    natext.font = [UIFont systemFontOfSize:18.0f weight:UIFontWeightMedium];
+    natext.textColor = color;
+    natext.text = Ntitle;
+    self.navigationItem.titleView  = natext;
+}
 
 - (void)viewWillAppear:(BOOL)animated {
     [super viewWillAppear:animated];
@@ -382,15 +390,18 @@
     if (self.conversationType == ConversationType_GROUP) {
         RCGroup *group = [[RCIM sharedRCIM] getGroupInfoCache:self.targetId];
         if (![NSString isEmptyString:group.groupName]) {
-            self.title = group.groupName;
+//            self.title = group.groupName;
+            [self allocTitle:group.groupName withColor:[UIColor blackColor]];
         }
     }
     else {
         RCUserInfo *userInfo = [[RCIM sharedRCIM] getUserInfoCache:self.targetId];
         if (![NSString isEmptyString:userInfo.name]) {
-            self.title = userInfo.name;
+//            self.title = userInfo.name;
+            [self allocTitle:userInfo.name withColor:[UIColor blackColor]];
         }
     }
+    [self.navigationController.navigationBar setTitleTextAttributes:@{NSForegroundColorAttributeName:[UIColor blackColor]}];
 }
 
 

+ 6 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Home/EvaluateCourse/Controller/EvaluateCourseListViewController.m

@@ -10,6 +10,7 @@
 #import "JXPagerListRefreshView.h"
 #import "EvaluateCourseBodyView.h"
 #import "ReceiveEvaluateListController.h"
+#import "UserInfoManager.h"
 
 @interface EvaluateCourseListViewController ()<JXPagerViewDelegate, JXPagerMainTableViewGestureDelegate,JXCategoryViewDelegate>
 
@@ -30,6 +31,11 @@
     [self rightButtonTitle:@"收到评价"];
     self.titles = @[@"未评价",@"已评价"];
     [self setupUI];
+    [self countUMEvent];
+}
+
+- (void)countUMEvent {
+    [USER_MANAGER sendUMEvent:@"klx_evaluate"];
 }
 
 - (void)rightBtnClick {

+ 6 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Home/Homework/Controller/HomeworkListViewController.m

@@ -9,6 +9,7 @@
 #import "JXCategoryView.h"
 #import "JXPagerListRefreshView.h"
 #import "HomeworkBodyView.h"
+#import "UserInfoManager.h"
 
 
 @interface HomeworkListViewController ()<JXPagerViewDelegate, JXPagerMainTableViewGestureDelegate,JXCategoryViewDelegate>
@@ -29,6 +30,11 @@
     [self allocTitle:@"课后作业"];
     self.titles = @[@"未布置",@"已布置"];
     [self setupUI];
+    [self countUMEvent];
+}
+
+- (void)countUMEvent {
+    [USER_MANAGER sendUMEvent:@"klx_homework"];
 }
 
 - (void)setupUI {

+ 6 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Home/Income/Controller/MyIncomeViewController.m

@@ -16,6 +16,7 @@
 #import "KSChoosePicker.h"
 #import "FreezeListViewController.h"
 #import "NoRecordViewController.h"
+#import "UserInfoManager.h"
 
 @interface MyIncomeViewController ()<UITableViewDelegate,UITableViewDataSource>
 
@@ -45,6 +46,11 @@
     [self allocTitle:@"我的收入"];
     [self configUI];
     [self setDefaultConfig];
+    [self countUMEvent];
+}
+
+- (void)countUMEvent {
+    [USER_MANAGER sendUMEvent:@"klx_income"];
 }
 
 - (void)setDefaultConfig {

+ 5 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Home/Music/Controller/MyMusicViewController.m

@@ -58,6 +58,11 @@
     self.ks_prefersNavigationBarHidden = YES;
     _titles = @[@"已上架",@"审核中",@"审核失败",@"已下架"];
     [self configUI];
+    [self countUMEvent];
+}
+
+- (void)countUMEvent {
+    [USER_MANAGER sendUMEvent:@"klx_uploadMusic"];
 }
 
 - (void)configUI {

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

@@ -39,6 +39,11 @@
     [self allocTitle:@"我的课程"];
     self.titles = @[@"陪练课",@"直播课",@"视频课",@"琴房课"];
     [self configUI];
+    [self countUMEvent];
+}
+
+- (void)countUMEvent {
+    [USER_MANAGER sendUMEvent:@"klx_myCourse"];
 }
 
 - (void)requestTeachMessage {

+ 5 - 1
KulexiuForTeacher/KulexiuForTeacher/Module/Home/NotiferMessage/Controller/NotiferMessageViewController.m

@@ -16,6 +16,7 @@
 #import "UIButton+EnlargeEdge.h"
 #import "NotiferNavView.h"
 #import "MyMusicViewController.h"
+#import "UserInfoManager.h"
 
 @interface NotiferMessageViewController ()<UITableViewDelegate, UITableViewDataSource>
 
@@ -44,11 +45,14 @@
     self.ks_prefersNavigationBarHidden = YES;
     [self configUI];
     self.hasUnreadCount = NO;
+    [self countUMEvent];
 }
 
+- (void)countUMEvent {
+    [USER_MANAGER sendUMEvent:@"klx_notification"];
+}
 - (void)viewWillAppear:(BOOL)animated {
     [super viewWillAppear:animated];
-    [self queryUnReadCount];
     [self resetSourceAndRequest];
 }
 

+ 6 - 1
KulexiuForTeacher/KulexiuForTeacher/Module/Live/Controller/LiveRoomViewController.m

@@ -183,6 +183,11 @@ typedef NS_ENUM(NSInteger, LIVEPAGE) {
     [self configUI];
     [self configEngine];
     self.pageType = LIVEPAGE_PREVIEW;
+    [self countUMEvent];
+}
+
+- (void)countUMEvent {
+    [USER_MANAGER sendUMEvent:@"klx_live"];
 }
 
 - (void)registerOtherLoginNotice {
@@ -591,7 +596,7 @@ typedef NS_ENUM(NSInteger, LIVEPAGE) {
     [self.seatApplyTips mas_makeConstraints:^(MASConstraintMaker *make) {
         make.bottom.mas_equalTo(self.bottomView.mas_top).offset(2);
         make.height.mas_equalTo(20);
-        make.left.mas_equalTo(self.bottomView.mas_right).offset(-72);
+        make.left.mas_equalTo(self.bottomView.mas_right).offset(-116);
     }];
     
     UITapGestureRecognizer *resetBottomTapGesture =[[UITapGestureRecognizer alloc]

+ 11 - 5
KulexiuForTeacher/KulexiuForTeacher/Module/Live/View/LiveRoomHeadView.xib

@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="20037" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="21225" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
     <device id="retina6_1" orientation="portrait" appearance="light"/>
     <dependencies>
         <deployment identifier="iOS"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="20020"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="21207"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
     </dependencies>
     <objects>
@@ -13,7 +13,7 @@
             <rect key="frame" x="0.0" y="0.0" width="414" height="98"/>
             <autoresizingMask key="autoresizingMask"/>
             <subviews>
-                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Bsy-0e-Kd6">
+                <view contentMode="scaleToFill" horizontalCompressionResistancePriority="749" translatesAutoresizingMaskIntoConstraints="NO" id="Bsy-0e-Kd6">
                     <rect key="frame" x="12" y="5" width="100" height="38"/>
                     <subviews>
                         <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="user_default_avatal" translatesAutoresizingMaskIntoConstraints="NO" id="dup-hE-LqC">
@@ -54,7 +54,7 @@
                         </userDefinedRuntimeAttribute>
                     </userDefinedRuntimeAttributes>
                 </view>
-                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="vM0-gj-bnG">
+                <view contentMode="scaleToFill" horizontalHuggingPriority="251" horizontalCompressionResistancePriority="751" translatesAutoresizingMaskIntoConstraints="NO" id="vM0-gj-bnG">
                     <rect key="frame" x="331" y="5" width="71" height="38"/>
                     <subviews>
                         <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="chatroom_member" translatesAutoresizingMaskIntoConstraints="NO" id="64B-QO-YKw">
@@ -64,7 +64,7 @@
                                 <constraint firstAttribute="height" constant="24" id="JKc-lj-Xcy"/>
                             </constraints>
                         </imageView>
-                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="*人" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Ah9-uZ-F6C">
+                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" horizontalCompressionResistancePriority="751" text="*人" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Ah9-uZ-F6C">
                             <rect key="frame" x="38" y="9" width="21" height="20"/>
                             <constraints>
                                 <constraint firstAttribute="height" constant="20" id="77u-lM-Uhz"/>
@@ -78,6 +78,7 @@
                     <constraints>
                         <constraint firstAttribute="trailing" secondItem="Ah9-uZ-F6C" secondAttribute="trailing" constant="12" id="4ep-Tl-S4O"/>
                         <constraint firstItem="64B-QO-YKw" firstAttribute="centerY" secondItem="vM0-gj-bnG" secondAttribute="centerY" id="97w-PM-W4n"/>
+                        <constraint firstAttribute="width" relation="greaterThanOrEqual" constant="71" id="RrR-1E-4vC"/>
                         <constraint firstItem="Ah9-uZ-F6C" firstAttribute="centerY" secondItem="vM0-gj-bnG" secondAttribute="centerY" id="m3G-x4-6o6"/>
                         <constraint firstItem="64B-QO-YKw" firstAttribute="leading" secondItem="vM0-gj-bnG" secondAttribute="leading" constant="9" id="tV5-Dh-Pr5"/>
                         <constraint firstItem="Ah9-uZ-F6C" firstAttribute="leading" secondItem="64B-QO-YKw" secondAttribute="trailing" constant="5" id="zZ8-3a-kGP"/>
@@ -178,6 +179,10 @@
                 </view>
                 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="vRv-kX-ZaV">
                     <rect key="frame" x="281" y="5" width="38" height="38"/>
+                    <constraints>
+                        <constraint firstAttribute="height" constant="38" id="HTd-MO-yHP"/>
+                        <constraint firstAttribute="width" constant="38" id="p5w-rY-iDt"/>
+                    </constraints>
                     <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
                     <state key="normal" image="liveRoom_switch"/>
                     <connections>
@@ -193,6 +198,7 @@
                 <constraint firstItem="2Q6-aH-Lkg" firstAttribute="leading" secondItem="Bsy-0e-Kd6" secondAttribute="leading" id="Qdk-xr-AJa"/>
                 <constraint firstAttribute="trailing" secondItem="vM0-gj-bnG" secondAttribute="trailing" constant="12" id="Sda-ur-z0i"/>
                 <constraint firstItem="RAe-xG-ljz" firstAttribute="top" secondItem="2Q6-aH-Lkg" secondAttribute="bottom" constant="5" id="T9h-lt-Lep"/>
+                <constraint firstItem="vRv-kX-ZaV" firstAttribute="leading" relation="greaterThanOrEqual" secondItem="Bsy-0e-Kd6" secondAttribute="trailing" constant="12" id="WaW-oX-GuJ"/>
                 <constraint firstItem="Bsy-0e-Kd6" firstAttribute="top" secondItem="iN0-l3-epB" secondAttribute="top" constant="5" id="ZLT-LB-QEi"/>
                 <constraint firstItem="Bsy-0e-Kd6" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" constant="12" id="fTh-kx-C67"/>
                 <constraint firstItem="vM0-gj-bnG" firstAttribute="trailing" secondItem="SDz-hP-Rz5" secondAttribute="trailing" id="gA7-8Z-XjX"/>

+ 42 - 4
KulexiuForTeacher/KulexiuForTeacher/Module/Login/Controller/FirstSettingViewController.m

@@ -13,6 +13,8 @@
 
 @property (nonatomic, strong) FirstSettingBodyView *bodyView;
 
+@property (nonatomic, strong) NSString *userSex;
+
 @end
 
 @implementation FirstSettingViewController
@@ -43,9 +45,7 @@
 - (void)configUI {
     
     CGFloat height = KPortraitHeight;
-//    if (height < KPortraitHeight) {
-//        height = KPortraitHeight;
-//    }
+
     _bodyView = [FirstSettingBodyView shareInstance];
     [self.scrollView addSubview:_bodyView];
     [_bodyView mas_makeConstraints:^(MASConstraintMaker *make) {
@@ -58,12 +58,50 @@
     [_bodyView sureCallback:^(NSString *myCode, NSString *nickName) {
         [weakSelf settingPassword:myCode nickName:nickName];
     }];
+    
+    [_bodyView chooseSexCallback:^{
+        [weakSelf showModifySexAlert];
+    }];
+}
 
+- (void)showModifySexAlert {
+    NSString *titleString = @"选择性别";
+    UIAlertController *alertVC = [UIAlertController alertControllerWithTitle:@"" message:titleString preferredStyle:IS_IPAD ? UIAlertControllerStyleAlert : UIAlertControllerStyleActionSheet];
+    NSMutableAttributedString *titleAtt = [[NSMutableAttributedString alloc] initWithString:titleString];
+    [titleAtt addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:16.0f] range:NSMakeRange(0, titleString.length)];
+    [titleAtt addAttribute:NSForegroundColorAttributeName value:HexRGB(0x999999) range:NSMakeRange(0, titleString.length)];
+    [alertVC setValue:titleAtt forKey:@"attributedMessage"];
+    UIAlertAction *actionOne = [UIAlertAction actionWithTitle:@"男" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
+        
+        self.bodyView.sexField.text = @"男";
+        self.userSex = @"1";
+    }];
+    [actionOne setValue:THEMECOLOR forKey:@"_titleTextColor"];
+    [alertVC addAction:actionOne];
+    UIAlertAction *actionTwo = [UIAlertAction actionWithTitle:@"女" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
+        
+        self.bodyView.sexField.text = @"女";
+        self.userSex = @"0";
+    }];
+    [actionTwo setValue:THEMECOLOR forKey:@"_titleTextColor"];
+    [alertVC addAction:actionTwo];
+    
+    UIAlertAction *cancleAlert = [UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleCancel handler:^(UIAlertAction * _Nonnull action) {
+        
+    }];
+    [alertVC addAction:cancleAlert];
+    [cancleAlert setValue:HexRGB(0x444444) forKey:@"_titleTextColor"];
+    alertVC.modalPresentationStyle = UIModalPresentationFullScreen;
+    [self presentViewController:alertVC animated:true completion:nil];
 }
 
 - (void)settingPassword:(NSString *)pwdCode nickName:(NSString *)nickName {
+    if ([NSString isEmptyString:self.userSex]) {
+        [self MBPShow:@"请设置性别"];
+        return;
+    }
     [self showhud];
-    [KSNetworkingManager setPasswordRequest:KS_POST username:nickName password:pwdCode token:self.access_token success:^(NSDictionary * _Nonnull dic) {
+    [KSNetworkingManager setPasswordRequest:KS_POST username:nickName password:pwdCode userSex:self.userSex token:self.access_token success:^(NSDictionary * _Nonnull dic) {
         [self removehub];
         if ([dic integerValueForKey:@"code"] == 200 && [dic boolValueForKey:@"status"]) {
             MJWeakSelf;

+ 1 - 1
KulexiuForTeacher/KulexiuForTeacher/Module/Login/Controller/PasswordLoginController.m

@@ -85,7 +85,7 @@
                 [KSNetworkingManager configRequestHeader];
                 
                 // 获取用户信息并登录融云
-                [USER_MANAGER queryUserInfoConnectRongCloud:YES];
+                [USER_MANAGER queryUserInfoSendLoginUMCount];
                 MJWeakSelf;
                 [self KSShowMsg:@"登录成功" promptCompletion:^{
                     [weakSelf toHomeView];

+ 1 - 1
KulexiuForTeacher/KulexiuForTeacher/Module/Login/Controller/VefiCodeLoginController.m

@@ -148,7 +148,7 @@
             [KSNetworkingManager configRequestHeader];
             
             // 获取用户信息并登录融云
-            [USER_MANAGER queryUserInfoConnectRongCloud:YES];
+            [USER_MANAGER queryUserInfoSendLoginUMCount];
             MJWeakSelf;
             [self KSShowMsg:@"登录成功" promptCompletion:^{
                 if ([result boolValueForKey:@"password"] == YES) {

+ 8 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Login/Model/UserInfoManager.h

@@ -36,6 +36,8 @@ NS_ASSUME_NONNULL_BEGIN
 
 - (void)queryUserInfoConnectRongCloud:(BOOL)connectRM;
 
+- (void)queryUserInfoSendLoginUMCount;
+
 - (void)checkTokenEnableConnectRongCloud;
 
 - (BOOL)checkIMConnected;
@@ -44,6 +46,12 @@ NS_ASSUME_NONNULL_BEGIN
 
 - (NSString *)getCurrentVersion;
 
+- (BOOL)startCountUMEvent;
+
+- (void)stopCountUMEvent;
+
+- (void)sendUMEvent:(NSString *)eventId;
+
 @end
 
 NS_ASSUME_NONNULL_END

+ 61 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Login/Model/UserInfoManager.m

@@ -12,6 +12,7 @@
 #import "RCConnectionManager.h"
 #import "AppDelegate.h"
 #import "KSTipsAlert.h"
+#import <UMCommon/MobClick.h>
 
 @interface UserInfoManager ()
 
@@ -180,6 +181,47 @@
     }];
 }
 
+- (void)queryUserInfoSendLoginUMCount {
+    [KSNetworkingManager queryUserInfo:KS_GET success:^(NSDictionary * _Nonnull dic) {
+        if ([dic integerValueForKey:@"code"] == 200 && [dic boolValueForKey:@"status"]) {
+            // 保存用户信息
+            self.userInfo = [[UserInfo alloc] initWithDictionary:[dic dictionaryValueForKey:@"data"]];
+            // 判断是否实名
+            if (![NSString isEmptyString:self.userInfo.realName] && ![NSString isEmptyString:self.userInfo.idCardNo]) {
+                self.hasAuth = YES;
+            }
+            else {
+                self.hasAuth = NO;
+            }
+            
+            NSString *uid = self.userInfo.userId;
+            UserDefaultSet(uid, UIDKey);
+            NSString *rongToken = UserDefault(RongTokenKey);
+            BOOL needConnect = NO;
+            if ([NSString isEmptyString:rongToken]) {
+                needConnect = YES;
+            }
+            UserDefaultSet(self.userInfo.imToken, RongTokenKey);
+            UserDefaultSet(self.userInfo.username, NicknameKey);
+            UserDefaultSet(self.userInfo.avatar, AvatarUrlKey);
+            [[NSUserDefaults standardUserDefaults] synchronize];
+            
+            // 设置推送别名
+            [JPUSHService setAlias:UserDefault(UIDKey) completion:nil seq:0];
+            [Bugly setUserIdentifier:UserDefault(UIDKey)];
+            [self connectRongCloud];
+            
+            [self startCountUMEvent];
+            [self sendUMEvent:@"klx_login"];
+        }
+        else {
+           
+        }
+    } faliure:^(NSError * _Nonnull error) {
+        
+    }];
+}
+
 - (void)checkTokenEnableConnectRongCloud {
     [self checkTokenEnableCallback:^(BOOL enable) {
         if (enable) {
@@ -322,6 +364,25 @@
     }
 }
 
+- (BOOL)startCountUMEvent {
+    NSString *userId = UserDefault(UIDKey);
+    if ([NSString isEmptyString:userId]) {
+        return NO;
+    }
+    else {
+        [MobClick profileSignInWithPUID:userId];
+        return YES;
+    }
+}
+
+- (void)stopCountUMEvent {
+    [MobClick profileSignOff];
+}
+
+- (void)sendUMEvent:(NSString *)eventId {
+    [MobClick event:eventId];
+}
+
 - (void)dealloc {
     [[NSNotificationCenter defaultCenter] removeObserver:self];
 }

+ 6 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Login/View/FirstSettingBodyView.h

@@ -8,16 +8,22 @@
 #import <UIKit/UIKit.h>
 
 typedef void(^SettingEndCallback)(NSString * _Nonnull myCode, NSString * _Nonnull nickName);
+
+typedef void(^SexChooseCallback)(void);
 NS_ASSUME_NONNULL_BEGIN
 
 @interface FirstSettingBodyView : UIView
 
+@property (weak, nonatomic) IBOutlet UITextField *sexField;
+
 @property (weak, nonatomic) IBOutlet UILabel *descLabel;
 
 + (instancetype)shareInstance;
 
 - (void)sureCallback:(SettingEndCallback)callback;
 
+- (void)chooseSexCallback:(SexChooseCallback)callback;
+
 + (CGFloat)getViewHeight;
 
 @end

+ 15 - 1
KulexiuForTeacher/KulexiuForTeacher/Module/Login/View/FirstSettingBodyView.m

@@ -17,6 +17,8 @@
 
 @property (nonatomic, copy) SettingEndCallback callback;
 
+@property (nonatomic, copy) SexChooseCallback chooseSexBlock;
+
 @end
 
 @implementation FirstSettingBodyView
@@ -50,6 +52,18 @@
     }
 }
 
+- (void)chooseSexCallback:(SexChooseCallback)callback {
+    if (callback) {
+        self.chooseSexBlock = callback;
+    }
+}
+
+- (IBAction)chooseSex:(id)sender {
+    if (self.chooseSexBlock) {
+        self.chooseSexBlock();
+    }
+}
+
 - (IBAction)sureAction:(id)sender {
     [self endEditing:YES];
     if ([NSString isEmptyString:self.nameField.text]) {
@@ -85,7 +99,7 @@
 }
 
 - (void)textFieldDidChange:(UITextField *)textField {
-    NSInteger maxLength = 7;
+    NSInteger maxLength = 12;
     NSString *text = textField.text;
     NSString *lang = [[UIApplication sharedApplication]textInputMode].primaryLanguage;
     if ([lang isEqualToString:@"zh-Hans"]) { //中文输入

+ 78 - 27
KulexiuForTeacher/KulexiuForTeacher/Module/Login/View/FirstSettingBodyView.xib

@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="20037" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="21225" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
     <device id="retina6_1" orientation="portrait" appearance="light"/>
     <dependencies>
         <deployment identifier="iOS"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="20020"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="21207"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
     </dependencies>
     <objects>
@@ -17,7 +17,7 @@
                     <rect key="frame" x="0.0" y="0.0" width="414" height="336.5"/>
                 </imageView>
                 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="欢迎使用酷乐秀" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="yaI-R3-Saw">
-                    <rect key="frame" x="25" y="102" width="185" height="37"/>
+                    <rect key="frame" x="25" y="70" width="185" height="37"/>
                     <constraints>
                         <constraint firstAttribute="height" constant="37" id="z0u-qy-b51"/>
                     </constraints>
@@ -26,7 +26,7 @@
                     <nil key="highlightedColor"/>
                 </label>
                 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="gWU-GL-vXF">
-                    <rect key="frame" x="0.0" y="209" width="414" height="70"/>
+                    <rect key="frame" x="0.0" y="137" width="414" height="70"/>
                     <subviews>
                         <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="设置昵称" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="J0c-Eq-3TZ">
                             <rect key="frame" x="35" y="0.0" width="73.5" height="22"/>
@@ -61,44 +61,55 @@
                         <constraint firstAttribute="bottom" secondItem="ufa-r4-N23" secondAttribute="bottom" id="kP6-G5-mLn"/>
                     </constraints>
                 </view>
-                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="aUD-4g-kem">
-                    <rect key="frame" x="0.0" y="401" width="414" height="70"/>
+                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="SoD-WG-ORU">
+                    <rect key="frame" x="0.0" y="247" width="414" height="70"/>
                     <subviews>
-                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="再次输入" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="MCg-5J-Ex6">
+                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="设置性别" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="MVH-fy-Crs">
                             <rect key="frame" x="35" y="0.0" width="73.5" height="22"/>
                             <fontDescription key="fontDescription" type="system" weight="medium" pointSize="18"/>
                             <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
                             <nil key="highlightedColor"/>
                         </label>
-                        <textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="请再次输入您的登录密码" textAlignment="natural" clearsOnBeginEditing="YES" minimumFontSize="17" clearButtonMode="whileEditing" translatesAutoresizingMaskIntoConstraints="NO" id="HbB-aF-yVr">
+                        <textField opaque="NO" userInteractionEnabled="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="请设置您的性别" textAlignment="natural" clearsOnBeginEditing="YES" minimumFontSize="17" clearButtonMode="whileEditing" translatesAutoresizingMaskIntoConstraints="NO" id="WaL-ud-OCr">
                             <rect key="frame" x="35" y="22" width="344" height="48"/>
                             <fontDescription key="fontDescription" type="system" pointSize="16"/>
-                            <textInputTraits key="textInputTraits" keyboardType="alphabet" returnKeyType="done" enablesReturnKeyAutomatically="YES" secureTextEntry="YES"/>
+                            <textInputTraits key="textInputTraits" returnKeyType="done" enablesReturnKeyAutomatically="YES"/>
                         </textField>
-                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="BIj-MZ-kN5">
+                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="2sA-zZ-aIR">
                             <rect key="frame" x="35" y="69" width="344" height="1"/>
                             <color key="backgroundColor" red="0.92156862750000001" green="0.92156862750000001" blue="0.92156862750000001" alpha="1" colorSpace="calibratedRGB"/>
                             <constraints>
-                                <constraint firstAttribute="height" constant="1" id="Cw6-mf-eU1"/>
+                                <constraint firstAttribute="height" constant="1" id="xXz-94-TZK"/>
                             </constraints>
                         </view>
+                        <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="cYh-bF-k7f">
+                            <rect key="frame" x="35" y="22" width="344" height="48"/>
+                            <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
+                            <connections>
+                                <action selector="chooseSex:" destination="iN0-l3-epB" eventType="touchUpInside" id="GjB-JU-ViE"/>
+                            </connections>
+                        </button>
                     </subviews>
                     <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                     <constraints>
-                        <constraint firstItem="HbB-aF-yVr" firstAttribute="top" secondItem="MCg-5J-Ex6" secondAttribute="bottom" id="9h8-tW-nWq"/>
-                        <constraint firstAttribute="trailing" secondItem="BIj-MZ-kN5" secondAttribute="trailing" constant="35" id="DCs-T5-isj"/>
-                        <constraint firstAttribute="height" constant="70" id="Pzf-Bg-ohh"/>
-                        <constraint firstItem="MCg-5J-Ex6" firstAttribute="leading" secondItem="aUD-4g-kem" secondAttribute="leading" constant="35" id="UfV-gw-HNO"/>
-                        <constraint firstItem="BIj-MZ-kN5" firstAttribute="leading" secondItem="aUD-4g-kem" secondAttribute="leading" constant="35" id="XLi-Fl-urs"/>
-                        <constraint firstAttribute="bottom" secondItem="HbB-aF-yVr" secondAttribute="bottom" id="bOM-ye-2Ar"/>
-                        <constraint firstItem="HbB-aF-yVr" firstAttribute="leading" secondItem="aUD-4g-kem" secondAttribute="leading" constant="35" id="fsB-I3-cx6"/>
-                        <constraint firstAttribute="bottom" secondItem="BIj-MZ-kN5" secondAttribute="bottom" id="ibz-IS-4v3"/>
-                        <constraint firstItem="MCg-5J-Ex6" firstAttribute="top" secondItem="aUD-4g-kem" secondAttribute="top" id="j4l-AN-aMS"/>
-                        <constraint firstAttribute="trailing" secondItem="HbB-aF-yVr" secondAttribute="trailing" constant="35" id="riH-Kg-qA1"/>
+                        <constraint firstItem="cYh-bF-k7f" firstAttribute="leading" secondItem="WaL-ud-OCr" secondAttribute="leading" id="0Wd-Jm-ToH"/>
+                        <constraint firstItem="WaL-ud-OCr" firstAttribute="top" secondItem="MVH-fy-Crs" secondAttribute="bottom" id="1kJ-em-dXk"/>
+                        <constraint firstItem="cYh-bF-k7f" firstAttribute="bottom" secondItem="WaL-ud-OCr" secondAttribute="bottom" id="4LO-lr-81Y"/>
+                        <constraint firstItem="MVH-fy-Crs" firstAttribute="top" secondItem="SoD-WG-ORU" secondAttribute="top" id="8Kl-Ca-O7P"/>
+                        <constraint firstItem="2sA-zZ-aIR" firstAttribute="leading" secondItem="SoD-WG-ORU" secondAttribute="leading" constant="35" id="H0Z-Ms-M2k"/>
+                        <constraint firstAttribute="bottom" secondItem="WaL-ud-OCr" secondAttribute="bottom" id="NKX-WH-iPX"/>
+                        <constraint firstAttribute="trailing" secondItem="2sA-zZ-aIR" secondAttribute="trailing" constant="35" id="Qht-SG-Kgs"/>
+                        <constraint firstItem="MVH-fy-Crs" firstAttribute="leading" secondItem="SoD-WG-ORU" secondAttribute="leading" constant="35" id="SvL-N9-wRE"/>
+                        <constraint firstAttribute="bottom" secondItem="2sA-zZ-aIR" secondAttribute="bottom" id="UJm-Me-46q"/>
+                        <constraint firstAttribute="trailing" secondItem="WaL-ud-OCr" secondAttribute="trailing" constant="35" id="cdU-xY-tRt"/>
+                        <constraint firstItem="cYh-bF-k7f" firstAttribute="trailing" secondItem="WaL-ud-OCr" secondAttribute="trailing" id="gSE-cd-2mE"/>
+                        <constraint firstAttribute="height" constant="70" id="mYd-cT-8aP"/>
+                        <constraint firstItem="cYh-bF-k7f" firstAttribute="top" secondItem="WaL-ud-OCr" secondAttribute="top" id="xFB-1t-4Jo"/>
+                        <constraint firstItem="WaL-ud-OCr" firstAttribute="leading" secondItem="SoD-WG-ORU" secondAttribute="leading" constant="35" id="yXU-bx-3eh"/>
                     </constraints>
                 </view>
                 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="R3P-P9-lbP">
-                    <rect key="frame" x="34" y="501" width="346" height="50"/>
+                    <rect key="frame" x="34" y="511" width="346" height="50"/>
                     <color key="backgroundColor" red="0.1764705882" green="0.78039215689999997" blue="0.66666666669999997" alpha="1" colorSpace="calibratedRGB"/>
                     <constraints>
                         <constraint firstAttribute="height" constant="50" id="Nbg-dg-f8D"/>
@@ -116,7 +127,7 @@
                     </connections>
                 </button>
                 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="x8q-mK-b9v">
-                    <rect key="frame" x="0.0" y="319" width="414" height="70"/>
+                    <rect key="frame" x="0.0" y="329" width="414" height="70"/>
                     <subviews>
                         <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="输入密码" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="5Np-sz-GPL">
                             <rect key="frame" x="35" y="0.0" width="73.5" height="22"/>
@@ -151,6 +162,42 @@
                         <constraint firstAttribute="trailing" secondItem="6u4-r6-o76" secondAttribute="trailing" constant="35" id="zCt-z0-wbp"/>
                     </constraints>
                 </view>
+                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="aUD-4g-kem">
+                    <rect key="frame" x="0.0" y="411" width="414" height="70"/>
+                    <subviews>
+                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="再次输入" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="MCg-5J-Ex6">
+                            <rect key="frame" x="35" y="0.0" width="73.5" height="22"/>
+                            <fontDescription key="fontDescription" type="system" weight="medium" pointSize="18"/>
+                            <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
+                            <nil key="highlightedColor"/>
+                        </label>
+                        <textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="请再次输入您的登录密码" textAlignment="natural" clearsOnBeginEditing="YES" minimumFontSize="17" clearButtonMode="whileEditing" translatesAutoresizingMaskIntoConstraints="NO" id="HbB-aF-yVr">
+                            <rect key="frame" x="35" y="22" width="344" height="48"/>
+                            <fontDescription key="fontDescription" type="system" pointSize="16"/>
+                            <textInputTraits key="textInputTraits" keyboardType="alphabet" returnKeyType="done" enablesReturnKeyAutomatically="YES" secureTextEntry="YES"/>
+                        </textField>
+                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="BIj-MZ-kN5">
+                            <rect key="frame" x="35" y="69" width="344" height="1"/>
+                            <color key="backgroundColor" red="0.92156862750000001" green="0.92156862750000001" blue="0.92156862750000001" alpha="1" colorSpace="calibratedRGB"/>
+                            <constraints>
+                                <constraint firstAttribute="height" constant="1" id="Cw6-mf-eU1"/>
+                            </constraints>
+                        </view>
+                    </subviews>
+                    <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                    <constraints>
+                        <constraint firstItem="HbB-aF-yVr" firstAttribute="top" secondItem="MCg-5J-Ex6" secondAttribute="bottom" id="9h8-tW-nWq"/>
+                        <constraint firstAttribute="trailing" secondItem="BIj-MZ-kN5" secondAttribute="trailing" constant="35" id="DCs-T5-isj"/>
+                        <constraint firstAttribute="height" constant="70" id="Pzf-Bg-ohh"/>
+                        <constraint firstItem="MCg-5J-Ex6" firstAttribute="leading" secondItem="aUD-4g-kem" secondAttribute="leading" constant="35" id="UfV-gw-HNO"/>
+                        <constraint firstItem="BIj-MZ-kN5" firstAttribute="leading" secondItem="aUD-4g-kem" secondAttribute="leading" constant="35" id="XLi-Fl-urs"/>
+                        <constraint firstAttribute="bottom" secondItem="HbB-aF-yVr" secondAttribute="bottom" id="bOM-ye-2Ar"/>
+                        <constraint firstItem="HbB-aF-yVr" firstAttribute="leading" secondItem="aUD-4g-kem" secondAttribute="leading" constant="35" id="fsB-I3-cx6"/>
+                        <constraint firstAttribute="bottom" secondItem="BIj-MZ-kN5" secondAttribute="bottom" id="ibz-IS-4v3"/>
+                        <constraint firstItem="MCg-5J-Ex6" firstAttribute="top" secondItem="aUD-4g-kem" secondAttribute="top" id="j4l-AN-aMS"/>
+                        <constraint firstAttribute="trailing" secondItem="HbB-aF-yVr" secondAttribute="trailing" constant="35" id="riH-Kg-qA1"/>
+                    </constraints>
+                </view>
                 <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="login_bottom" translatesAutoresizingMaskIntoConstraints="NO" id="aqf-f9-ctA">
                     <rect key="frame" x="0.0" y="752.5" width="414" height="143.5"/>
                     <constraints>
@@ -158,7 +205,7 @@
                     </constraints>
                 </imageView>
                 <label hidden="YES" opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="每隔3个月可修改一次" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="dPQ-V3-kIC">
-                    <rect key="frame" x="35" y="289" width="344" height="20"/>
+                    <rect key="frame" x="35" y="217" width="344" height="20"/>
                     <constraints>
                         <constraint firstAttribute="height" constant="20" id="KNJ-kQ-B8r"/>
                     </constraints>
@@ -170,26 +217,29 @@
             <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
             <constraints>
                 <constraint firstAttribute="trailing" secondItem="aqf-f9-ctA" secondAttribute="trailing" id="6xb-VW-O93"/>
+                <constraint firstAttribute="trailing" secondItem="SoD-WG-ORU" secondAttribute="trailing" id="9oc-Eu-WPv"/>
                 <constraint firstItem="R3P-P9-lbP" firstAttribute="top" secondItem="aUD-4g-kem" secondAttribute="bottom" constant="30" id="BU2-mi-kup"/>
                 <constraint firstItem="dPQ-V3-kIC" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" constant="35" id="Bhj-Y8-mnY"/>
                 <constraint firstAttribute="trailing" secondItem="x8q-mK-b9v" secondAttribute="trailing" id="Cbp-vp-q5A"/>
+                <constraint firstItem="x8q-mK-b9v" firstAttribute="top" secondItem="SoD-WG-ORU" secondAttribute="bottom" constant="12" id="Cg4-z1-zi9"/>
                 <constraint firstItem="R3P-P9-lbP" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" constant="34" id="HUl-qG-X8L"/>
                 <constraint firstItem="aUD-4g-kem" firstAttribute="top" secondItem="x8q-mK-b9v" secondAttribute="bottom" constant="12" id="MNq-iM-HSS"/>
                 <constraint firstAttribute="trailing" secondItem="R6w-CQ-8xx" secondAttribute="trailing" id="Mp8-Md-aj4"/>
                 <constraint firstItem="aUD-4g-kem" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" id="NTQ-1I-M9i"/>
                 <constraint firstAttribute="trailing" secondItem="dPQ-V3-kIC" secondAttribute="trailing" constant="35" id="P2j-Rl-sNW"/>
                 <constraint firstItem="x8q-mK-b9v" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" id="T0i-o1-EVa"/>
-                <constraint firstItem="x8q-mK-b9v" firstAttribute="top" secondItem="dPQ-V3-kIC" secondAttribute="bottom" constant="10" id="UKM-aw-E6q"/>
                 <constraint firstAttribute="trailing" secondItem="aUD-4g-kem" secondAttribute="trailing" id="Wfv-mp-fJT"/>
                 <constraint firstAttribute="bottom" secondItem="aqf-f9-ctA" secondAttribute="bottom" id="ZA3-x2-rky"/>
-                <constraint firstItem="gWU-GL-vXF" firstAttribute="top" secondItem="yaI-R3-Saw" secondAttribute="bottom" constant="70" id="Zfb-wp-M22"/>
+                <constraint firstItem="gWU-GL-vXF" firstAttribute="top" secondItem="yaI-R3-Saw" secondAttribute="bottom" constant="30" id="Zfb-wp-M22"/>
                 <constraint firstItem="R6w-CQ-8xx" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" id="ZhZ-Ni-2Bg"/>
                 <constraint firstItem="R6w-CQ-8xx" firstAttribute="top" secondItem="iN0-l3-epB" secondAttribute="top" id="dPf-Uj-MUO"/>
                 <constraint firstItem="gWU-GL-vXF" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" id="eZ0-FS-68K"/>
+                <constraint firstItem="SoD-WG-ORU" firstAttribute="top" secondItem="dPQ-V3-kIC" secondAttribute="bottom" constant="10" id="kLg-cH-8nO"/>
                 <constraint firstItem="yaI-R3-Saw" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" constant="25" id="nGM-O0-PLy"/>
-                <constraint firstItem="yaI-R3-Saw" firstAttribute="top" secondItem="iN0-l3-epB" secondAttribute="top" constant="102" id="old-4C-G5Q"/>
+                <constraint firstItem="yaI-R3-Saw" firstAttribute="top" secondItem="iN0-l3-epB" secondAttribute="top" constant="70" id="old-4C-G5Q"/>
                 <constraint firstItem="aqf-f9-ctA" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" id="tEv-oh-bz5"/>
                 <constraint firstAttribute="trailing" secondItem="R3P-P9-lbP" secondAttribute="trailing" constant="34" id="tSq-l1-2D6"/>
+                <constraint firstItem="SoD-WG-ORU" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" id="wDd-9c-BcV"/>
                 <constraint firstItem="R6w-CQ-8xx" firstAttribute="width" secondItem="R6w-CQ-8xx" secondAttribute="height" multiplier="375:305" id="yib-jb-w5O"/>
                 <constraint firstItem="dPQ-V3-kIC" firstAttribute="top" secondItem="gWU-GL-vXF" secondAttribute="bottom" constant="10" id="zQv-V7-U0H"/>
                 <constraint firstAttribute="trailing" secondItem="gWU-GL-vXF" secondAttribute="trailing" id="zn6-AS-Lbz"/>
@@ -202,6 +252,7 @@
                 <outlet property="firstField" destination="6u4-r6-o76" id="55s-oE-Y7a"/>
                 <outlet property="nameField" destination="ufa-r4-N23" id="HgX-Xh-Mgj"/>
                 <outlet property="secondField" destination="HbB-aF-yVr" id="mBO-5j-kkf"/>
+                <outlet property="sexField" destination="WaL-ud-OCr" id="UWc-Oe-fq9"/>
             </connections>
             <point key="canvasLocation" x="132" y="58"/>
         </view>

+ 6 - 1
KulexiuForTeacher/KulexiuForTeacher/Module/Mine/BankCard/Controller/MyBankCardViewController.m

@@ -12,6 +12,7 @@
 #import "KSConfirmAlertView.h"
 #import "MyCardModel.h"
 #import "UnbindCardViewController.h"
+#import "UserInfoManager.h"
 
 @interface MyBankCardViewController ()
 
@@ -33,7 +34,11 @@
     [super viewDidLoad];
     // Do any additional setup after loading the view.
     [self allocTitle:@"我的银行卡"];
-    
+    [self countUMEvent];
+}
+
+- (void)countUMEvent {
+    [USER_MANAGER sendUMEvent:@"klx_myCard"];
 }
 
 - (void)configUI {

+ 7 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Mine/CreateStyle/Controller/MyStyleViewController.m

@@ -80,6 +80,11 @@
     self.ks_prefersNavigationBarHidden = YES;
     [self configUI];
     [self requestMyStyle];
+    [self countUMEvent];
+}
+
+- (void)countUMEvent {
+    [USER_MANAGER sendUMEvent:@"klx_styleEdit"];
 }
 
 - (void)viewWillAppear:(BOOL)animated {
@@ -359,6 +364,7 @@
     self.chooseFileIndex = index;
     // 跳转到裁剪功能
     RSKImageCropViewController *imageCropVC = [[RSKImageCropViewController alloc] initWithImage:image cropMode:RSKImageCropModeCustom];
+    imageCropVC.avoidEmptySpaceAroundImage = YES;
     imageCropVC.rotationEnabled = YES;
     imageCropVC.delegate = self;
     imageCropVC.dataSource = self;
@@ -671,6 +677,7 @@
                 weakSelf.isModifyAvatal = YES;
                 // 跳转到裁剪功能
                 RSKImageCropViewController *imageCropVC = [[RSKImageCropViewController alloc] initWithImage:sendImg cropMode:RSKImageCropModeSquare];
+                imageCropVC.avoidEmptySpaceAroundImage = YES;
                 imageCropVC.rotationEnabled = YES;
                 imageCropVC.delegate = weakSelf;
                 CustomNavViewController *navCtrl = [[CustomNavViewController alloc] initWithRootViewController:imageCropVC];

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

@@ -33,9 +33,12 @@
     [self allocTitle:@"直播课"];
     _titles = @[@"进行中",@"未上架",@"销售中",@"已完成",@"已取消",@"已下架"];
     [self configUI];
+    [self countUMEvent];
 }
 
-
+- (void)countUMEvent {
+    [USER_MANAGER sendUMEvent:@"klx_liveCourse"];
+}
 - (void)configUI {
     [self rightButtonTitle:@"创建课程" color:HexRGB(0x000000)];
     [self.scrollView removeFromSuperview];

+ 5 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Mine/LiveList/Controller/LiveListViewController.m

@@ -10,6 +10,7 @@
 #import "JXPagerListRefreshView.h"
 #import "LiveListBodyView.h"
 #import "CreateLiveViewController.h"
+#import "UserInfoManager.h"
 
 #define HEADER_HEIGHT (50)
 
@@ -34,8 +35,12 @@
     self.titles = @[@"直播中",@"已结束"];
     [self createRightButton];
     [self configUI];
+    [self countUMEvent];
 }
 
+- (void)countUMEvent {
+    [USER_MANAGER sendUMEvent:@"klx_myLive"];
+}
 
 - (void)createRightButton {
     [self rightButtonTitle:@"创建直播"];

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

@@ -46,8 +46,14 @@
     self.ks_prefersNavigationBarHidden = YES;
     _titles = @[@"个人风采",@"陪练课",@"直播课",@"视频课",@"乐谱"];
     [self configUI];
+    [self countUMEvent];
 }
 
+- (void)countUMEvent {
+    [USER_MANAGER sendUMEvent:@"klx_minePage"];
+}
+
+
 - (void)configUI {
     
     [self.scrollView removeFromSuperview];

+ 6 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Mine/Setting/Controller/FeedbackViewController.m

@@ -7,6 +7,7 @@
 
 #import "FeedbackViewController.h"
 #import "FeedbackBodyView.h"
+#import "UserInfoManager.h"
 
 @interface FeedbackViewController ()
 
@@ -19,6 +20,11 @@
     // Do any additional setup after loading the view.
     [self allocTitle:@"意见反馈"];
     [self configUI];
+    [self countUMEvent];
+}
+
+- (void)countUMEvent {
+    [USER_MANAGER sendUMEvent:@"klx_feedback"];
 }
 
 - (void)configUI {

+ 7 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Mine/Setting/Controller/SettingViewController.m

@@ -146,7 +146,14 @@
     }];
 }
 
+
+- (void)clearUMCount {
+    [USER_MANAGER sendUMEvent:@"klx_logout"];
+    [USER_MANAGER stopCountUMEvent];
+}
+
 - (void)clearSource {
+    [self clearUMCount];
     [RCConnectionManager shareManager].isNeedJoin = NO;
     [RCConnectionManager shareManager].isNeedShowMessage = NO;
     [[RCIM sharedRCIM] logout];

+ 7 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Mine/Setting/Controller/UserSettingViewController.m

@@ -170,6 +170,7 @@
         UIImage *sendImg = [imageArray lastObject];
         // 跳转到裁剪功能
         RSKImageCropViewController *imageCropVC = [[RSKImageCropViewController alloc] initWithImage:sendImg cropMode:RSKImageCropModeSquare];
+        imageCropVC.avoidEmptySpaceAroundImage = YES;
         imageCropVC.rotationEnabled = YES;
         imageCropVC.delegate = weakSelf;
         CustomNavViewController *navCtrl = [[CustomNavViewController alloc] initWithRootViewController:imageCropVC];
@@ -269,7 +270,13 @@
     }];
 }
 
+- (void)clearUMCount {
+    [USER_MANAGER sendUMEvent:@"klx_logout"];
+    [USER_MANAGER stopCountUMEvent];
+}
+
 - (void)clearSource {
+    [self clearUMCount];
     [RCConnectionManager shareManager].isNeedJoin = NO;
     [RCConnectionManager shareManager].isNeedShowMessage = NO;
     [[RCIM sharedRCIM] logout];

+ 1 - 1
KulexiuForTeacher/KulexiuForTeacher/Module/Mine/Setting/View/ModifyNameBodyView.m

@@ -43,7 +43,7 @@
 
 - (void)textFieldDidChange:(UITextField *)textField {
     if (self.isNameModify) {
-        NSInteger maxLength = 7;
+        NSInteger maxLength = 12;
         NSString *text = textField.text;
         NSString *lang = [[UIApplication sharedApplication]textInputMode].primaryLanguage;
         if ([lang isEqualToString:@"zh-Hans"]) { //中文输入

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

@@ -34,6 +34,11 @@
     [self allocTitle:@"视频课"];
     _titles = @[@"已上架",@"审核中",@"审核失败",@"已下架"];
     [self configUI];
+    [self countUMEvent];
+}
+
+- (void)countUMEvent {
+    [USER_MANAGER sendUMEvent:@"klx_videoCourse"];
 }
 
 - (void)configUI {