Steven 3 years ago
parent
commit
e6603f5b6c

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


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

@@ -96,5 +96,21 @@
             landmarkType = "7">
          </BreakpointContent>
       </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            uuid = "397E29CA-AC60-489C-95F7-43A59279D769"
+            shouldBeEnabled = "Yes"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "KulexiuForTeacher/Module/Home/MyCourse/View/MyLessonBodyView.m"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "133"
+            endingLineNumber = "133"
+            landmarkName = "-requestData"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
    </Breakpoints>
 </Bucket>

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

@@ -575,7 +575,7 @@ NS_ASSUME_NONNULL_BEGIN
 /// @param success 成功
 /// @param faliure 失败
 + (void)homeworkDecorateRequest:(NSString *)post content:(NSString *)content courseScheduleId:(NSString *)courseScheduleId success:(void(^)(NSDictionary *dic))success faliure:(void(^)(NSError *error))faliure;
-// /teacher-server/homework/review
+// /api-teacher/homework/review
 
 /// 作业点评
 /// @param post post
@@ -587,7 +587,7 @@ NS_ASSUME_NONNULL_BEGIN
 
 
 #pragma mark ----- 课表相关
-// /teacher-server/courseSchedule/queryCourseSchedule
+// /api-teacher/courseSchedule/queryCourseSchedule
 
 /// 课表日历
 /// @param post post
@@ -596,7 +596,7 @@ NS_ASSUME_NONNULL_BEGIN
 /// @param faliure 失败
 + (void)queryCourseSchedule:(NSString *)post classMonth:(NSString *)classMonth success:(void(^)(NSDictionary *dic))success faliure:(void(^)(NSError *error))faliure;
 
-// /teacher-server/courseSchedule/queryCourseUser
+// /api-teacher/courseSchedule/queryCourseUser
 /// 查询日期课程
 /// @param post post
 /// @param classDate 日期

+ 1 - 1
KulexiuForTeacher/KulexiuForTeacher/Common/Base/KSNetworkingManager.m

@@ -1124,7 +1124,7 @@
     [self request:post andWithUrl:url and:parm success:success faliure:faliure];
 }
 
-// /teacher-server/courseReplied/replied
+// /api-teacher/courseReplied/replied
 
 /// 评价陪练课
 /// @param post post

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

@@ -111,8 +111,8 @@ shouldPrevent = NO; \
 
 #define hostURL (@"http://dev.colexiu.com")
 #define SEALCLASSHOST (@"http://dev.colexiu.com/api-im")
-#define WEBHOST (@"http://dev.colexiu.com/teacher")
-//#define WEBHOST (@"http://192.168.3.63:5000/teacher")
+//#define WEBHOST (@"http://dev.colexiu.com/teacher")
+#define WEBHOST (@"http://192.168.3.63:5000/teacher")
 #define SOCKET_URL (@"ws://mteadev.colexiu.com/audioAnalysis")
 #define JSPUSH_ENVIRONMENT (NO)
 #define RCIM_KEY (@"0vnjpoad0jbdz")

+ 1 - 1
KulexiuForTeacher/KulexiuForTeacher/Module/Course/Controller/CourseViewController.m

@@ -468,7 +468,7 @@
 
 - (void)liveCourseDetail:(NSString *)courseId courseGroupId:(NSString *)courseGroupId {
     KSBaseWKWebViewController *ctrl = [[KSBaseWKWebViewController alloc] init];
-    ctrl.url = [NSString stringWithFormat:@"%@%@",WEBHOST,@"/#/openLive"];
+    ctrl.url = [NSString stringWithFormat:@"%@/#/liveDetail?groupId=%@&classId=%@", WEBHOST, courseGroupId,courseId];
     [self.navigationController pushViewController:ctrl animated:YES];
 }
 

+ 10 - 7
KulexiuForTeacher/KulexiuForTeacher/Module/Home/MyCourse/Model/AccompanyLessonModel.h

@@ -1,7 +1,7 @@
 //
 //  AccompanyLessonModel.h
 //
-//  Created by Steven  on 2022/4/12
+//  Created by Steven  on 2022/4/20
 //  Copyright (c) 2022 __MyCompanyName__. All rights reserved.
 //
 
@@ -11,16 +11,19 @@
 
 @interface AccompanyLessonModel : NSObject <NSCoding, NSCopying>
 
-@property (nonatomic, strong) NSString *status;
-@property (nonatomic, assign) double userId;
 @property (nonatomic, strong) NSString *classDate;
-@property (nonatomic, strong) NSString *endTime;
-@property (nonatomic, assign) double internalBaseClassIdentifier;
-@property (nonatomic, strong) NSString *userName;
+@property (nonatomic, strong) NSString *internalBaseClassIdentifier;
+@property (nonatomic, strong) NSString *subjectId;
+@property (nonatomic, strong) NSString *courseId;
 @property (nonatomic, strong) NSString *avatar;
-@property (nonatomic, assign) double subjectId;
+@property (nonatomic, strong) NSString *userId;
+@property (nonatomic, strong) NSString *endTime;
+@property (nonatomic, strong) NSString *signInTime;
+@property (nonatomic, strong) NSString *courseGoupId;
 @property (nonatomic, strong) NSString *subjectName;
+@property (nonatomic, strong) NSString *userName;
 @property (nonatomic, strong) NSString *startTime;
+@property (nonatomic, strong) NSString *status;
 
 + (instancetype)modelObjectWithDictionary:(NSDictionary *)dict;
 - (instancetype)initWithDictionary:(NSDictionary *)dict;

+ 62 - 41
KulexiuForTeacher/KulexiuForTeacher/Module/Home/MyCourse/Model/AccompanyLessonModel.m

@@ -1,23 +1,26 @@
 //
 //  AccompanyLessonModel.m
 //
-//  Created by Steven  on 2022/4/12
+//  Created by Steven  on 2022/4/20
 //  Copyright (c) 2022 __MyCompanyName__. All rights reserved.
 //
 
 #import "AccompanyLessonModel.h"
 
 
-NSString *const kAccompanyLessonModelStatus = @"status";
-NSString *const kAccompanyLessonModelUserId = @"userId";
 NSString *const kAccompanyLessonModelClassDate = @"classDate";
-NSString *const kAccompanyLessonModelEndTime = @"endTime";
 NSString *const kAccompanyLessonModelId = @"id";
-NSString *const kAccompanyLessonModelUserName = @"userName";
-NSString *const kAccompanyLessonModelAvatar = @"avatar";
 NSString *const kAccompanyLessonModelSubjectId = @"subjectId";
+NSString *const kAccompanyLessonModelCourseId = @"courseId";
+NSString *const kAccompanyLessonModelAvatar = @"avatar";
+NSString *const kAccompanyLessonModelUserId = @"userId";
+NSString *const kAccompanyLessonModelEndTime = @"endTime";
+NSString *const kAccompanyLessonModelSignInTime = @"signInTime";
+NSString *const kAccompanyLessonModelCourseGoupId = @"courseGoupId";
 NSString *const kAccompanyLessonModelSubjectName = @"subjectName";
+NSString *const kAccompanyLessonModelUserName = @"userName";
 NSString *const kAccompanyLessonModelStartTime = @"startTime";
+NSString *const kAccompanyLessonModelStatus = @"status";
 
 
 @interface AccompanyLessonModel ()
@@ -28,16 +31,19 @@ NSString *const kAccompanyLessonModelStartTime = @"startTime";
 
 @implementation AccompanyLessonModel
 
-@synthesize status = _status;
-@synthesize userId = _userId;
 @synthesize classDate = _classDate;
-@synthesize endTime = _endTime;
 @synthesize internalBaseClassIdentifier = _internalBaseClassIdentifier;
-@synthesize userName = _userName;
-@synthesize avatar = _avatar;
 @synthesize subjectId = _subjectId;
+@synthesize courseId = _courseId;
+@synthesize avatar = _avatar;
+@synthesize userId = _userId;
+@synthesize endTime = _endTime;
+@synthesize signInTime = _signInTime;
+@synthesize courseGoupId = _courseGoupId;
 @synthesize subjectName = _subjectName;
+@synthesize userName = _userName;
 @synthesize startTime = _startTime;
+@synthesize status = _status;
 
 
 + (instancetype)modelObjectWithDictionary:(NSDictionary *)dict
@@ -52,16 +58,19 @@ NSString *const kAccompanyLessonModelStartTime = @"startTime";
     // This check serves to make sure that a non-NSDictionary object
     // passed into the model class doesn't break the parsing.
     if(self && [dict isKindOfClass:[NSDictionary class]]) {
-            self.status = [self objectOrNilForKey:kAccompanyLessonModelStatus fromDictionary:dict];
-            self.userId = [[self objectOrNilForKey:kAccompanyLessonModelUserId fromDictionary:dict] doubleValue];
             self.classDate = [self objectOrNilForKey:kAccompanyLessonModelClassDate fromDictionary:dict];
-            self.endTime = [self objectOrNilForKey:kAccompanyLessonModelEndTime fromDictionary:dict];
-            self.internalBaseClassIdentifier = [[self objectOrNilForKey:kAccompanyLessonModelId fromDictionary:dict] doubleValue];
-            self.userName = [self objectOrNilForKey:kAccompanyLessonModelUserName fromDictionary:dict];
+            self.internalBaseClassIdentifier = [self objectOrNilForKey:kAccompanyLessonModelId fromDictionary:dict];
+            self.subjectId = [self objectOrNilForKey:kAccompanyLessonModelSubjectId fromDictionary:dict];
+            self.courseId = [self objectOrNilForKey:kAccompanyLessonModelCourseId fromDictionary:dict];
             self.avatar = [self objectOrNilForKey:kAccompanyLessonModelAvatar fromDictionary:dict];
-            self.subjectId = [[self objectOrNilForKey:kAccompanyLessonModelSubjectId fromDictionary:dict] doubleValue];
+            self.userId = [self objectOrNilForKey:kAccompanyLessonModelUserId fromDictionary:dict];
+            self.endTime = [self objectOrNilForKey:kAccompanyLessonModelEndTime fromDictionary:dict];
+            self.signInTime = [self objectOrNilForKey:kAccompanyLessonModelSignInTime fromDictionary:dict];
+            self.courseGoupId = [self objectOrNilForKey:kAccompanyLessonModelCourseGoupId fromDictionary:dict];
             self.subjectName = [self objectOrNilForKey:kAccompanyLessonModelSubjectName fromDictionary:dict];
+            self.userName = [self objectOrNilForKey:kAccompanyLessonModelUserName fromDictionary:dict];
             self.startTime = [self objectOrNilForKey:kAccompanyLessonModelStartTime fromDictionary:dict];
+            self.status = [self objectOrNilForKey:kAccompanyLessonModelStatus fromDictionary:dict];
 
     }
     
@@ -72,16 +81,19 @@ NSString *const kAccompanyLessonModelStartTime = @"startTime";
 - (NSDictionary *)dictionaryRepresentation
 {
     NSMutableDictionary *mutableDict = [NSMutableDictionary dictionary];
-    [mutableDict setValue:self.status forKey:kAccompanyLessonModelStatus];
-    [mutableDict setValue:[NSNumber numberWithDouble:self.userId] forKey:kAccompanyLessonModelUserId];
     [mutableDict setValue:self.classDate forKey:kAccompanyLessonModelClassDate];
-    [mutableDict setValue:self.endTime forKey:kAccompanyLessonModelEndTime];
-    [mutableDict setValue:[NSNumber numberWithDouble:self.internalBaseClassIdentifier] forKey:kAccompanyLessonModelId];
-    [mutableDict setValue:self.userName forKey:kAccompanyLessonModelUserName];
+    [mutableDict setValue:self.internalBaseClassIdentifier forKey:kAccompanyLessonModelId];
+    [mutableDict setValue:self.subjectId forKey:kAccompanyLessonModelSubjectId];
+    [mutableDict setValue:self.courseId forKey:kAccompanyLessonModelCourseId];
     [mutableDict setValue:self.avatar forKey:kAccompanyLessonModelAvatar];
-    [mutableDict setValue:[NSNumber numberWithDouble:self.subjectId] forKey:kAccompanyLessonModelSubjectId];
+    [mutableDict setValue:self.userId forKey:kAccompanyLessonModelUserId];
+    [mutableDict setValue:self.endTime forKey:kAccompanyLessonModelEndTime];
+    [mutableDict setValue:self.signInTime forKey:kAccompanyLessonModelSignInTime];
+    [mutableDict setValue:self.courseGoupId forKey:kAccompanyLessonModelCourseGoupId];
     [mutableDict setValue:self.subjectName forKey:kAccompanyLessonModelSubjectName];
+    [mutableDict setValue:self.userName forKey:kAccompanyLessonModelUserName];
     [mutableDict setValue:self.startTime forKey:kAccompanyLessonModelStartTime];
+    [mutableDict setValue:self.status forKey:kAccompanyLessonModelStatus];
 
     return [NSDictionary dictionaryWithDictionary:mutableDict];
 }
@@ -109,32 +121,38 @@ NSString *const kAccompanyLessonModelStartTime = @"startTime";
 {
     self = [super init];
 
-    self.status = [aDecoder decodeObjectForKey:kAccompanyLessonModelStatus];
-    self.userId = [aDecoder decodeDoubleForKey:kAccompanyLessonModelUserId];
     self.classDate = [aDecoder decodeObjectForKey:kAccompanyLessonModelClassDate];
-    self.endTime = [aDecoder decodeObjectForKey:kAccompanyLessonModelEndTime];
-    self.internalBaseClassIdentifier = [aDecoder decodeDoubleForKey:kAccompanyLessonModelId];
-    self.userName = [aDecoder decodeObjectForKey:kAccompanyLessonModelUserName];
+    self.internalBaseClassIdentifier = [aDecoder decodeObjectForKey:kAccompanyLessonModelId];
+    self.subjectId = [aDecoder decodeObjectForKey:kAccompanyLessonModelSubjectId];
+    self.courseId = [aDecoder decodeObjectForKey:kAccompanyLessonModelCourseId];
     self.avatar = [aDecoder decodeObjectForKey:kAccompanyLessonModelAvatar];
-    self.subjectId = [aDecoder decodeDoubleForKey:kAccompanyLessonModelSubjectId];
+    self.userId = [aDecoder decodeObjectForKey:kAccompanyLessonModelUserId];
+    self.endTime = [aDecoder decodeObjectForKey:kAccompanyLessonModelEndTime];
+    self.signInTime = [aDecoder decodeObjectForKey:kAccompanyLessonModelSignInTime];
+    self.courseGoupId = [aDecoder decodeObjectForKey:kAccompanyLessonModelCourseGoupId];
     self.subjectName = [aDecoder decodeObjectForKey:kAccompanyLessonModelSubjectName];
+    self.userName = [aDecoder decodeObjectForKey:kAccompanyLessonModelUserName];
     self.startTime = [aDecoder decodeObjectForKey:kAccompanyLessonModelStartTime];
+    self.status = [aDecoder decodeObjectForKey:kAccompanyLessonModelStatus];
     return self;
 }
 
 - (void)encodeWithCoder:(NSCoder *)aCoder
 {
 
-    [aCoder encodeObject:_status forKey:kAccompanyLessonModelStatus];
-    [aCoder encodeDouble:_userId forKey:kAccompanyLessonModelUserId];
     [aCoder encodeObject:_classDate forKey:kAccompanyLessonModelClassDate];
-    [aCoder encodeObject:_endTime forKey:kAccompanyLessonModelEndTime];
-    [aCoder encodeDouble:_internalBaseClassIdentifier forKey:kAccompanyLessonModelId];
-    [aCoder encodeObject:_userName forKey:kAccompanyLessonModelUserName];
+    [aCoder encodeObject:_internalBaseClassIdentifier forKey:kAccompanyLessonModelId];
+    [aCoder encodeObject:_subjectId forKey:kAccompanyLessonModelSubjectId];
+    [aCoder encodeObject:_courseId forKey:kAccompanyLessonModelCourseId];
     [aCoder encodeObject:_avatar forKey:kAccompanyLessonModelAvatar];
-    [aCoder encodeDouble:_subjectId forKey:kAccompanyLessonModelSubjectId];
+    [aCoder encodeObject:_userId forKey:kAccompanyLessonModelUserId];
+    [aCoder encodeObject:_endTime forKey:kAccompanyLessonModelEndTime];
+    [aCoder encodeObject:_signInTime forKey:kAccompanyLessonModelSignInTime];
+    [aCoder encodeObject:_courseGoupId forKey:kAccompanyLessonModelCourseGoupId];
     [aCoder encodeObject:_subjectName forKey:kAccompanyLessonModelSubjectName];
+    [aCoder encodeObject:_userName forKey:kAccompanyLessonModelUserName];
     [aCoder encodeObject:_startTime forKey:kAccompanyLessonModelStartTime];
+    [aCoder encodeObject:_status forKey:kAccompanyLessonModelStatus];
 }
 
 - (id)copyWithZone:(NSZone *)zone
@@ -143,16 +161,19 @@ NSString *const kAccompanyLessonModelStartTime = @"startTime";
     
     if (copy) {
 
-        copy.status = [self.status copyWithZone:zone];
-        copy.userId = self.userId;
         copy.classDate = [self.classDate copyWithZone:zone];
-        copy.endTime = [self.endTime copyWithZone:zone];
-        copy.internalBaseClassIdentifier = self.internalBaseClassIdentifier;
-        copy.userName = [self.userName copyWithZone:zone];
+        copy.internalBaseClassIdentifier = [self.internalBaseClassIdentifier copyWithZone:zone];
+        copy.subjectId = [self.subjectId copyWithZone:zone];
+        copy.courseId = [self.courseId copyWithZone:zone];
         copy.avatar = [self.avatar copyWithZone:zone];
-        copy.subjectId = self.subjectId;
+        copy.userId = [self.userId copyWithZone:zone];
+        copy.endTime = [self.endTime copyWithZone:zone];
+        copy.signInTime = [self.signInTime copyWithZone:zone];
+        copy.courseGoupId = [self.courseGoupId copyWithZone:zone];
         copy.subjectName = [self.subjectName copyWithZone:zone];
+        copy.userName = [self.userName copyWithZone:zone];
         copy.startTime = [self.startTime copyWithZone:zone];
+        copy.status = [self.status copyWithZone:zone];
     }
     
     return copy;

+ 14 - 4
KulexiuForTeacher/KulexiuForTeacher/Module/Home/MyCourse/View/MyLessonBodyView.m

@@ -16,7 +16,7 @@
 #import "MyLessonSearchView.h"
 #import "NewClassPopView.h"
 #import "KSFullDatePicker.h"
-
+#import "AccompanyDetailViewController.h"
 
 @interface MyLessonBodyView ()<UITableViewDelegate,UITableViewDataSource>
 
@@ -389,7 +389,7 @@
         case ACCOMPANY_TYPE_CHAT: // 聊天
         {
             KSChatConversationViewController *conversationVC = [[KSChatConversationViewController alloc] init];
-            conversationVC.targetId = [NSString stringWithFormat:@"%.0f",model.userId];
+            conversationVC.targetId = model.userId;
             conversationVC.conversationType = ConversationType_PRIVATE;
             [self.naviController pushViewController:conversationVC animated:YES];
         }
@@ -411,7 +411,11 @@
 }
 
 - (void)showAccompanyDetail:(AccompanyLessonModel *)model {
-    
+    AccompanyDetailViewController *detailVC = [[AccompanyDetailViewController alloc] init];
+    detailVC.courseId = model.courseId;
+    detailVC.courseGroupId = model.courseGoupId;
+    detailVC.studentId = model.userId;
+    [self.naviController pushViewController:detailVC animated:YES];
 }
 
 - (void)showAdjustPicker:(AccompanyLessonModel *)model {
@@ -437,9 +441,15 @@
 
 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
     if (indexPath.row == 0) { // 进入陪练课详情
-        
+        AccompanyLessonModel *model = self.dataArray[indexPath.row];
+        [self showAccompanyDetail:model];
     }
     else { // 直播课程组详情
+        LiveLessonModel *model = self.dataArray[indexPath.row];
+        KSBaseWKWebViewController *ctrl = [[KSBaseWKWebViewController alloc] init];
+        NSString *url = [NSString stringWithFormat:@"%@%@%@", WEBHOST, @"/#/liveDetail?groupId=",model.courseGroupId];
+        ctrl.url = url;
+        [self.naviController pushViewController:ctrl animated:YES];
         
     }
 }

+ 10 - 1
KulexiuForTeacher/KulexiuForTeacher/Module/Mine/LiveCourse/View/MyLiveCourseBodyView.m

@@ -191,7 +191,16 @@
 
 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
     // 直播课程组详情
-    
+    LiveCourseModel *model = self.dataArray[indexPath.row];
+    [self displayLiveCourseDetailWithGroupId:[NSString stringWithFormat:@"%.0f",model.courseGroupId]];
+}
+
+
+- (void)displayLiveCourseDetailWithGroupId:(NSString *)groupId {
+    KSBaseWKWebViewController *ctrl = [[KSBaseWKWebViewController alloc] init];
+    NSString *url = [NSString stringWithFormat:@"%@%@%@", WEBHOST, @"/#/liveDetail?groupId=",groupId];
+    ctrl.url = url;
+    [self.naviController pushViewController:ctrl animated:YES];
 }
 
 /**

+ 85 - 4
KulexiuForTeacher/KulexiuForTeacher/Module/Mine/MinePage/View/MinePageCourseView.m

@@ -14,6 +14,9 @@
 #import "MinePageMusicCell.h"
 #import "AuthDisplayView.h"
 #import "AccompanyLessonModel.h"
+#import "KSChatConversationViewController.h"
+#import "AccompanyDetailViewController.h"
+#import "KSFullDatePicker.h"
 
 @interface MinePageCourseView ()<UITableViewDelegate,UITableViewDataSource>
 
@@ -105,9 +108,31 @@
 - (void)requestData {
     if (self.selectIndex == 1) { // 陪练课
         [KSNetworkingManager accompanyCourseRequest:KS_POST classMonth:nil status:nil subjectId:nil page:self.pages rows:self.rows success:^(NSDictionary * _Nonnull dic) {
-            
+            [self endRefresh];
+            if ([dic integerValueForKey:@"code"] == 200 && [dic boolValueForKey:@"status"]) {
+                NSArray *sourceArray = [[dic dictionaryValueForKey:@"data"] arrayValueForKey:@"rows"];
+                for (NSDictionary *parm in sourceArray) {
+                    AccompanyLessonModel *model = [[AccompanyLessonModel alloc] initWithDictionary:parm];
+                    [self.dataArray addObject:model];
+                }
+                
+                if (sourceArray.count < self.rows) {
+                    self.isLoadMore = NO;
+                }
+            }
+            else {
+                [self MBPShow:MESSAGEKEY];
+            }
+            [self.tableView reloadData];
+            [self changePromptLabelStateWithArray:self.dataArray];
         } faliure:^(NSError * _Nonnull error) {
-            
+            [self endRefresh];
+            if (self.networkAvaiable == NO) {
+                [self setPromptString:@"暂无网络" imageName:@"no_networking" inView:self.tableView];
+            }
+            [self.dataArray removeAllObjects];
+            [self.tableView reloadData];
+            [self changePromptLabelStateWithArray:self.dataArray];
         }];
     }
     else if (self.selectIndex == 2) { // 直播课
@@ -226,8 +251,12 @@
 
 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
     if (self.selectIndex == 1) {
-        
+        AccompanyLessonModel *model = self.dataArray[indexPath.row];
         AccompanyCourseCell *cell = [tableView dequeueReusableCellWithIdentifier:@"AccompanyCourseCell"];
+        MJWeakSelf;
+        [cell configWithSource:model actionCallback:^(ACCOMPANY_TYPE type, AccompanyLessonModel * _Nonnull source) {
+            [weakSelf courseOperation:type sourceModel:source];
+        }];
         return cell;
     }
     else if (self.selectIndex == 2) {
@@ -245,9 +274,61 @@
     }
 }
 
+- (void)courseOperation:(ACCOMPANY_TYPE)type sourceModel:(AccompanyLessonModel *)model {
+    switch (type) {
+        case ACCOMPANY_TYPE_CHAT: // 聊天
+        {
+            KSChatConversationViewController *conversationVC = [[KSChatConversationViewController alloc] init];
+            conversationVC.targetId = model.userId;
+            conversationVC.conversationType = ConversationType_PRIVATE;
+            [self.naviController pushViewController:conversationVC animated:YES];
+        }
+            break;
+        case ACCOMPANY_TYPE_ADJUST: // 调整
+        {
+            [self showAdjustPicker:model];
+        }
+            break;
+        case ACCOMPANY_DETAIL:  // 陪练课详情
+        {
+            [self showAccompanyDetail:model];
+        }
+            break;
+
+        default:
+            break;
+    }
+}
+
+- (void)showAccompanyDetail:(AccompanyLessonModel *)model {
+    AccompanyDetailViewController *detailVC = [[AccompanyDetailViewController alloc] init];
+    detailVC.courseId = model.courseId;
+    detailVC.courseGroupId = model.courseGoupId;
+    detailVC.studentId = model.userId;
+    [self.naviController pushViewController:detailVC animated:YES];
+}
+
+- (void)showAdjustPicker:(AccompanyLessonModel *)model {
+    
+    KSFullDatePicker *picker = [[KSFullDatePicker alloc] initWithTitle:@"课时调整" date:[NSDate date] pickMode:KSDATEPICKER_MODE_DAY_TIME selectDateBlock:^(NSString *date) {
+        [self courseAdjustAction:model];
+    } cancleBlock:^{
+        
+    }];
+    [picker show];
+}
+
+- (void)courseAdjustAction:(AccompanyLessonModel *)model {
+    
+}
+
 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
     if (self.selectIndex == 2) { // 直播课详情
-        
+        LiveCourseModel *model = self.dataArray[indexPath.row];
+        KSBaseWKWebViewController *ctrl = [[KSBaseWKWebViewController alloc] init];
+        NSString *url = [NSString stringWithFormat:@"%@%@%.0f", WEBHOST, @"/#/liveDetail?groupId=",model.courseGroupId];
+        ctrl.url = url;
+        [self.naviController pushViewController:ctrl animated:YES];
     }
     else if (self.selectIndex == 4) { // 曲谱详情