Sfoglia il codice sorgente

修改琴房课个陪练课进入教室按钮逻辑

Pq 1 anno fa
parent
commit
fa3f028a1e
16 ha cambiato i file con 243 aggiunte e 18 eliminazioni
  1. 71 0
      BaseLibrary/src/main/java/com/cooleshow/base/bean/CommonCourseConfigBean.java
  2. 16 1
      BaseLibrary/src/main/java/com/cooleshow/base/utils/TimeUtils.java
  3. 4 0
      student/src/main/java/com/cooleshow/student/api/APIService.java
  4. 3 0
      student/src/main/java/com/cooleshow/student/contract/PianoRoomCourseDetailContract.java
  5. 4 0
      student/src/main/java/com/cooleshow/student/contract/SparringCourseDetailContract.java
  6. 12 0
      student/src/main/java/com/cooleshow/student/presenter/course/PianoRoomCourseDetailPresenter.java
  7. 12 0
      student/src/main/java/com/cooleshow/student/presenter/course/SparringCourseDetailPresenter.java
  8. 21 3
      student/src/main/java/com/cooleshow/student/ui/course/PianoRoomCourseDetailActivity.java
  9. 19 3
      student/src/main/java/com/cooleshow/student/ui/course/SparringCourseDetailActivity.java
  10. 7 2
      teacher/src/main/java/com/cooleshow/teacher/api/APIService.java
  11. 4 0
      teacher/src/main/java/com/cooleshow/teacher/contract/PianoRoomCourseDetailContract.java
  12. 4 0
      teacher/src/main/java/com/cooleshow/teacher/contract/SparringCourseDetailContract.java
  13. 12 0
      teacher/src/main/java/com/cooleshow/teacher/presenter/course/PianoRoomDetailPresenter.java
  14. 15 3
      teacher/src/main/java/com/cooleshow/teacher/presenter/course/SparringCourseDetailPresenter.java
  15. 20 3
      teacher/src/main/java/com/cooleshow/teacher/ui/course/PianoRoomCourseDetailActivity.java
  16. 19 3
      teacher/src/main/java/com/cooleshow/teacher/ui/course/SparringCourseDetailActivity.java

+ 71 - 0
BaseLibrary/src/main/java/com/cooleshow/base/bean/CommonCourseConfigBean.java

@@ -0,0 +1,71 @@
+package com.cooleshow.base.bean;
+
+/**
+ * Author by pq, Date on 2023/9/25.
+ */
+public class CommonCourseConfigBean {
+
+    /**
+     * pianoEndTime : 5
+     * liveEndTime : 5
+     * practiceStartTime : 5
+     * practiceEndTime : 5
+     * liveStartTime : 5
+     * pianoStartTime : 5
+     */
+
+    private String pianoEndTime;
+    private String liveEndTime;
+    private String practiceStartTime;
+    private String practiceEndTime;
+    private String liveStartTime;
+    private String pianoStartTime;
+
+    public String getPianoEndTime() {
+        return pianoEndTime;
+    }
+
+    public void setPianoEndTime(String pianoEndTime) {
+        this.pianoEndTime = pianoEndTime;
+    }
+
+    public String getLiveEndTime() {
+        return liveEndTime;
+    }
+
+    public void setLiveEndTime(String liveEndTime) {
+        this.liveEndTime = liveEndTime;
+    }
+
+    public String getPracticeStartTime() {
+        return practiceStartTime;
+    }
+
+    public void setPracticeStartTime(String practiceStartTime) {
+        this.practiceStartTime = practiceStartTime;
+    }
+
+    public String getPracticeEndTime() {
+        return practiceEndTime;
+    }
+
+    public void setPracticeEndTime(String practiceEndTime) {
+        this.practiceEndTime = practiceEndTime;
+    }
+
+    public String getLiveStartTime() {
+        return liveStartTime;
+    }
+
+    public void setLiveStartTime(String liveStartTime) {
+        this.liveStartTime = liveStartTime;
+    }
+
+    public String getPianoStartTime() {
+        return pianoStartTime;
+    }
+
+    public void setPianoStartTime(String pianoStartTime) {
+        this.pianoStartTime = pianoStartTime;
+    }
+}

+ 16 - 1
BaseLibrary/src/main/java/com/cooleshow/base/utils/TimeUtils.java

@@ -1663,6 +1663,21 @@ public final class TimeUtils {
     }
 
     public static String msToTime(int ms) {
-        return secondToTime(ms/1000);
+        return secondToTime(ms / 1000);
+    }
+
+
+    public static boolean isLessThanTargetTime(String targetMinutes, String startTime) {
+        try {
+            long time = TimeUtils.string2Date(startTime).getTime();
+            long cTime = System.currentTimeMillis();
+            long limitMinutes = Long.parseLong(targetMinutes);
+            if (Math.abs(time - cTime) < limitMinutes * 60 * 1000) {
+                return true;
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return false;
     }
 }

+ 4 - 0
student/src/main/java/com/cooleshow/student/api/APIService.java

@@ -6,6 +6,7 @@ import static com.cooleshow.base.common.BaseConstant.MALL_PORTAL_SERVER;
 import static com.cooleshow.base.common.BaseConstant.STUDENT_GROUP;
 import static com.cooleshow.base.common.BaseConstant.TEACHER_GROUP;
 
+import com.cooleshow.base.bean.CommonCourseConfigBean;
 import com.cooleshow.base.bean.QueryParamsConfigBean;
 import com.cooleshow.base.bean.TeachableInstrumentBean;
 import com.cooleshow.base.data.net.BaseResponse;
@@ -525,4 +526,7 @@ public interface APIService {
      */
     @GET(STUDENT_GROUP + "activity/checkReceiveReward")
     Observable<BaseResponse<AwardStatusBean>> getAwardStatus();
+
+    @GET(TEACHER_GROUP+"courseSchedule/selectRoomConfig")
+    Observable<BaseResponse<CommonCourseConfigBean>> getCourseConfig();
 }

+ 3 - 0
student/src/main/java/com/cooleshow/student/contract/PianoRoomCourseDetailContract.java

@@ -1,5 +1,6 @@
 package com.cooleshow.student.contract;
 
+import com.cooleshow.base.bean.CommonCourseConfigBean;
 import com.cooleshow.base.presenter.view.BaseView;
 import com.cooleshow.student.bean.PianoRoomCourseHomeworkBean;
 import com.cooleshow.student.bean.SparringCourseCommentBean;
@@ -16,6 +17,8 @@ public interface PianoRoomCourseDetailContract {
         void getPianoRoomCourseHomeworkError();
 
 
+        void getCourseConfigSuccess(CommonCourseConfigBean data);
+
     }
 
     interface Presenter {

+ 4 - 0
student/src/main/java/com/cooleshow/student/contract/SparringCourseDetailContract.java

@@ -1,5 +1,6 @@
 package com.cooleshow.student.contract;
 
+import com.cooleshow.base.bean.CommonCourseConfigBean;
 import com.cooleshow.base.presenter.view.BaseView;
 import com.cooleshow.student.bean.SparringCourseCommentBean;
 import com.cooleshow.student.bean.SparringCourseHomeworkBean;
@@ -23,6 +24,9 @@ public interface SparringCourseDetailContract {
         void submitSparringCourseHomeworkSuccess();
 
         void submitSparringCourseHomeworkCommentSuccess();
+
+        void getCourseConfigSuccess(CommonCourseConfigBean data);
+
     }
 
     interface Presenter {

+ 12 - 0
student/src/main/java/com/cooleshow/student/presenter/course/PianoRoomCourseDetailPresenter.java

@@ -1,5 +1,6 @@
 package com.cooleshow.student.presenter.course;
 
+import com.cooleshow.base.bean.CommonCourseConfigBean;
 import com.cooleshow.base.presenter.BasePresenter;
 import com.cooleshow.base.rx.BaseObserver;
 import com.cooleshow.base.utils.RequestBodyUtil;
@@ -40,4 +41,15 @@ public class PianoRoomCourseDetailPresenter extends BasePresenter<PianoRoomCours
             }
         });
     }
+
+    public void getCourseConfig() {
+        addSubscribe(create(APIService.class).getCourseConfig(), new BaseObserver<CommonCourseConfigBean>(getView()) {
+            @Override
+            protected void onSuccess(CommonCourseConfigBean data) {
+                if (getView() != null) {
+                    getView().getCourseConfigSuccess(data);
+                }
+            }
+        });
+    }
 }

+ 12 - 0
student/src/main/java/com/cooleshow/student/presenter/course/SparringCourseDetailPresenter.java

@@ -1,5 +1,6 @@
 package com.cooleshow.student.presenter.course;
 
+import com.cooleshow.base.bean.CommonCourseConfigBean;
 import com.cooleshow.base.presenter.BasePresenter;
 import com.cooleshow.base.rx.BaseObserver;
 import com.cooleshow.base.utils.RequestBodyUtil;
@@ -163,4 +164,15 @@ public class SparringCourseDetailPresenter extends BasePresenter<SparringCourseD
             }
         });
     }
+
+    public void getCourseConfig() {
+        addSubscribe(create(APIService.class).getCourseConfig(), new BaseObserver<CommonCourseConfigBean>(getView()) {
+            @Override
+            protected void onSuccess(CommonCourseConfigBean data) {
+                if (getView() != null) {
+                    getView().getCourseConfigSuccess(data);
+                }
+            }
+        });
+    }
 }

+ 21 - 3
student/src/main/java/com/cooleshow/student/ui/course/PianoRoomCourseDetailActivity.java

@@ -7,10 +7,13 @@ import android.widget.LinearLayout;
 
 import com.alibaba.android.arouter.facade.annotation.Route;
 import com.alibaba.android.arouter.launcher.ARouter;
+import com.cooleshow.base.bean.CommonCourseConfigBean;
 import com.cooleshow.base.router.RouterPath;
 import com.cooleshow.base.ui.activity.BaseMVPActivity;
 import com.cooleshow.base.utils.GlideUtils;
 import com.cooleshow.base.utils.SizeUtils;
+import com.cooleshow.base.utils.TimeUtils;
+import com.cooleshow.base.utils.ToastUtil;
 import com.cooleshow.base.utils.UiUtils;
 import com.cooleshow.base.utils.helper.QMUIStatusBarHelper;
 import com.cooleshow.chatmodule.utils.helper.ChatHelper;
@@ -40,6 +43,8 @@ public class PianoRoomCourseDetailActivity extends BaseMVPActivity<ActivityPiano
     private PianoRoomCourseHomeworkBean mInfoBean;
     private boolean teacherIsReply = false;//老师是否已点评作业
 
+    private CommonCourseConfigBean mConfigBean;
+
 
     @Override
     protected void onCreate(@Nullable Bundle savedInstanceState) {
@@ -80,6 +85,7 @@ public class PianoRoomCourseDetailActivity extends BaseMVPActivity<ActivityPiano
 
     private void refresh() {
         if (presenter != null) {
+            presenter.getCourseConfig();
             presenter.getPianoRoomCourseInfo(mCourseId);
         }
     }
@@ -115,8 +121,8 @@ public class PianoRoomCourseDetailActivity extends BaseMVPActivity<ActivityPiano
             //课程未开始
             viewBinding.tvCourseStatus.setText(getString(R.string.course_not_start_str));
             viewBinding.tvCourseStatus.setTextColor(getResources().getColor(com.cooleshow.base.R.color.color_ff802c));
-            viewBinding.tvEnterRoom.setVisibility(View.GONE);
-            viewBinding.bottomView.setVisibility(View.GONE);
+            viewBinding.tvEnterRoom.setVisibility(View.VISIBLE);
+            viewBinding.bottomView.setVisibility(View.VISIBLE);
         }
         if (TextUtils.equals(CourseConstants.COURSE_STATUS_ING, status)) {
             //课程进行中
@@ -145,6 +151,11 @@ public class PianoRoomCourseDetailActivity extends BaseMVPActivity<ActivityPiano
 
     }
 
+    @Override
+    public void getCourseConfigSuccess(CommonCourseConfigBean data) {
+        this.mConfigBean = data;
+    }
+
     /**
      * 作业点评
      */
@@ -271,7 +282,14 @@ public class PianoRoomCourseDetailActivity extends BaseMVPActivity<ActivityPiano
         if (v.getId() == R.id.tv_enter_room) {
             //进入教室
             if (mInfoBean != null) {
-                OpenClassRoomHelper.start(this, mCourseId, mInfoBean.subjectName);
+                if (mConfigBean != null) {
+                    boolean lessThanTargetTime = TimeUtils.isLessThanTargetTime(mConfigBean.getPianoStartTime(), mInfoBean.startTime);
+                    if (!lessThanTargetTime) {
+                        ToastUtil.getInstance().showShort("课程还未开始,请在上课前" + mConfigBean.getPianoStartTime() + "分钟进入");
+                        return;
+                    }
+                    OpenClassRoomHelper.start(this, mCourseId, mInfoBean.subjectName);
+                }
             }
             return;
         }

+ 19 - 3
student/src/main/java/com/cooleshow/student/ui/course/SparringCourseDetailActivity.java

@@ -11,11 +11,13 @@ import io.rong.imkit.utils.helper.OpenChatHelper;
 
 import com.alibaba.android.arouter.facade.annotation.Route;
 import com.alibaba.android.arouter.launcher.ARouter;
+import com.cooleshow.base.bean.CommonCourseConfigBean;
 import com.cooleshow.base.router.RouterPath;
 import com.cooleshow.base.ui.activity.BaseMVPActivity;
 import com.cooleshow.base.utils.GlideUtils;
 import com.cooleshow.base.utils.SizeUtils;
 
+import com.cooleshow.base.utils.TimeUtils;
 import com.cooleshow.base.utils.ToastUtil;
 import com.cooleshow.base.utils.UiUtils;
 import com.cooleshow.base.utils.helper.QMUIStatusBarHelper;
@@ -44,6 +46,7 @@ public class SparringCourseDetailActivity extends BaseMVPActivity<ActivitySparri
     private CourseSetCommentDialog mSetCommentDialog;
     private SparringCourseHomeworkBean mInfoBean;
     private boolean teacherIsReply = false;//老师是否点评
+    private CommonCourseConfigBean mConfigBean;
 
     @Override
     protected void onCreate(@Nullable Bundle savedInstanceState) {
@@ -83,6 +86,7 @@ public class SparringCourseDetailActivity extends BaseMVPActivity<ActivitySparri
 
     private void refresh() {
         if (presenter != null) {
+            presenter.getCourseConfig();
             presenter.getSparringCourseHomework(mCourseId);
             presenter.getSparringCourseComment(mCourseId, mCourseGroupId);
         }
@@ -128,8 +132,8 @@ public class SparringCourseDetailActivity extends BaseMVPActivity<ActivitySparri
             //课程未开始
             viewBinding.tvCourseStatus.setText(getString(R.string.course_not_start_str));
             viewBinding.tvCourseStatus.setTextColor(getResources().getColor(com.cooleshow.base.R.color.color_ff802c));
-            viewBinding.tvEnterRoom.setVisibility(View.GONE);
-            viewBinding.bottomView.setVisibility(View.GONE);
+            viewBinding.tvEnterRoom.setVisibility(View.VISIBLE);
+            viewBinding.bottomView.setVisibility(View.VISIBLE);
         }
         if (TextUtils.equals(CourseConstants.COURSE_STATUS_ING, status)) {
             //课程进行中
@@ -323,7 +327,14 @@ public class SparringCourseDetailActivity extends BaseMVPActivity<ActivitySparri
         if (v.getId() == R.id.tv_enter_room) {
             //进入教室
             if (mInfoBean != null) {
-                OpenClassRoomHelper.start(this, mInfoBean.courseScheduleId, mInfoBean.subjectName);
+                if (mConfigBean != null) {
+                    boolean lessThanTargetTime = TimeUtils.isLessThanTargetTime(mConfigBean.getPracticeStartTime(), mInfoBean.startTime);
+                    if (!lessThanTargetTime) {
+                        ToastUtil.getInstance().showShort("课程还未开始,请在上课前" + mConfigBean.getPracticeStartTime() + "分钟进入");
+                        return;
+                    }
+                    OpenClassRoomHelper.start(this, mInfoBean.courseScheduleId, mInfoBean.subjectName);
+                }
             }
             return;
         }
@@ -422,6 +433,11 @@ public class SparringCourseDetailActivity extends BaseMVPActivity<ActivitySparri
         refresh();
     }
 
+    @Override
+    public void getCourseConfigSuccess(CommonCourseConfigBean data) {
+        this.mConfigBean = data;
+    }
+
 
     @Override
     public void getSparringCourseHomeworkError() {

+ 7 - 2
teacher/src/main/java/com/cooleshow/teacher/api/APIService.java

@@ -1,6 +1,7 @@
 package com.cooleshow.teacher.api;
 
 import com.common.im.bean.ContactRoomListBean;
+import com.cooleshow.base.bean.CommonCourseConfigBean;
 import com.cooleshow.base.bean.QueryParamsConfigBean;
 import com.cooleshow.base.data.net.BaseResponse;
 import com.cooleshow.teacher.bean.AwardStatusBean;
@@ -400,8 +401,8 @@ public interface APIService {
     /**
      * 发送登录短信验证码
      *
-     * @param mobile 手机号
-     *               type:类型(PASSWD:修改密码,LOGIN:登录或注册,BANK:绑定银行卡,PHONE:修改手机号)
+     * @param
+     * :类型(PASSWD:修改密码,LOGIN:登录或注册,BANK:绑定银行卡,PHONE:修改手机号)
      * @return
      */
     @FormUrlEncoded
@@ -830,4 +831,8 @@ public interface APIService {
 
     @POST(TEACHER_GROUP+"student/page")
     Observable<BaseResponse<StudentPageListBean>> getStudentPage(@Body RequestBody requestBody);
+
+
+    @GET(TEACHER_GROUP+"courseSchedule/selectRoomConfig")
+    Observable<BaseResponse<CommonCourseConfigBean>> getCourseConfig();
 }

+ 4 - 0
teacher/src/main/java/com/cooleshow/teacher/contract/PianoRoomCourseDetailContract.java

@@ -1,5 +1,6 @@
 package com.cooleshow.teacher.contract;
 
+import com.cooleshow.base.bean.CommonCourseConfigBean;
 import com.cooleshow.base.presenter.view.BaseView;
 import com.cooleshow.teacher.bean.PianoRoomCourseInfoBean;
 
@@ -12,6 +13,9 @@ public interface PianoRoomCourseDetailContract {
         void getCourseInfoSuccess(PianoRoomCourseInfoBean bean);
 
         void submitSparringCourseHomeworkSuccess();
+
+        void getCourseConfigSuccess(CommonCourseConfigBean data);
+
     }
 
     interface Presenter {

+ 4 - 0
teacher/src/main/java/com/cooleshow/teacher/contract/SparringCourseDetailContract.java

@@ -1,5 +1,6 @@
 package com.cooleshow.teacher.contract;
 
+import com.cooleshow.base.bean.CommonCourseConfigBean;
 import com.cooleshow.base.presenter.view.BaseView;
 import com.cooleshow.teacher.bean.SparringCourseCommentBean;
 import com.cooleshow.teacher.bean.SparringCourseHomeworkBean;
@@ -22,6 +23,9 @@ public interface SparringCourseDetailContract {
         void submitSparringCourseTeacherCommentSuccess();
         void submitSparringCourseHomeworkSuccess();
         void submitSparringCourseHomeworkCommentSuccess();
+
+        void getCourseConfigSuccess(CommonCourseConfigBean data);
+
     }
 
     interface Presenter {

+ 12 - 0
teacher/src/main/java/com/cooleshow/teacher/presenter/course/PianoRoomDetailPresenter.java

@@ -1,5 +1,6 @@
 package com.cooleshow.teacher.presenter.course;
 
+import com.cooleshow.base.bean.CommonCourseConfigBean;
 import com.cooleshow.base.presenter.BasePresenter;
 import com.cooleshow.base.rx.BaseObserver;
 import com.cooleshow.base.utils.RequestBodyUtil;
@@ -70,4 +71,15 @@ public class PianoRoomDetailPresenter extends BasePresenter<PianoRoomCourseDetai
             }
         });
     }
+
+    public void getCourseConfig() {
+        addSubscribe(create(APIService.class).getCourseConfig(), new BaseObserver<CommonCourseConfigBean>(getView()) {
+            @Override
+            protected void onSuccess(CommonCourseConfigBean data) {
+                if (getView() != null) {
+                    getView().getCourseConfigSuccess(data);
+                }
+            }
+        });
+    }
 }

+ 15 - 3
teacher/src/main/java/com/cooleshow/teacher/presenter/course/SparringCourseDetailPresenter.java

@@ -1,5 +1,6 @@
 package com.cooleshow.teacher.presenter.course;
 
+import com.cooleshow.base.bean.CommonCourseConfigBean;
 import com.cooleshow.base.presenter.BasePresenter;
 import com.cooleshow.base.rx.BaseObserver;
 import com.cooleshow.base.utils.RequestBodyUtil;
@@ -20,11 +21,11 @@ import org.json.JSONObject;
 public class SparringCourseDetailPresenter extends BasePresenter<SparringCourseDetailContract.SparringCourseDetailView> implements SparringCourseDetailContract.Presenter {
 
     @Override
-    public void getSparringCourseHomework(String courseId,String studentId) {
+    public void getSparringCourseHomework(String courseId, String studentId) {
         if (getView() != null) {
             getView().showLoading();
         }
-        addSubscribe(create(APIService.class).getSparringCourseHomework(courseId,studentId), new BaseObserver<SparringCourseHomeworkBean>(getView()) {
+        addSubscribe(create(APIService.class).getSparringCourseHomework(courseId, studentId), new BaseObserver<SparringCourseHomeworkBean>(getView()) {
             @Override
             protected void onSuccess(SparringCourseHomeworkBean data) {
                 if (getView() != null) {
@@ -42,6 +43,17 @@ public class SparringCourseDetailPresenter extends BasePresenter<SparringCourseD
         });
     }
 
+    public void getCourseConfig() {
+        addSubscribe(create(APIService.class).getCourseConfig(), new BaseObserver<CommonCourseConfigBean>(getView()) {
+            @Override
+            protected void onSuccess(CommonCourseConfigBean data) {
+                if (getView() != null) {
+                    getView().getCourseConfigSuccess(data);
+                }
+            }
+        });
+    }
+
     @Override
     public void getSparringCourseComment(String courseScheduleId, String courseGroupId, String studentId) {
         if (getView() != null) {
@@ -137,7 +149,7 @@ public class SparringCourseDetailPresenter extends BasePresenter<SparringCourseD
     }
 
     @Override
-    public void submitSparringCourseHomeworkComment(String commentContent, String courseScheduleId,String studentId ) {
+    public void submitSparringCourseHomeworkComment(String commentContent, String courseScheduleId, String studentId) {
         if (getView() != null) {
             getView().showLoading();
         }

+ 20 - 3
teacher/src/main/java/com/cooleshow/teacher/ui/course/PianoRoomCourseDetailActivity.java

@@ -9,8 +9,10 @@ import com.alibaba.android.arouter.facade.annotation.Route;
 import com.alibaba.android.arouter.launcher.ARouter;
 import com.chad.library.adapter.base.BaseQuickAdapter;
 import com.chad.library.adapter.base.listener.OnItemClickListener;
+import com.cooleshow.base.bean.CommonCourseConfigBean;
 import com.cooleshow.base.router.RouterPath;
 import com.cooleshow.base.ui.activity.BaseMVPActivity;
+import com.cooleshow.base.utils.TimeUtils;
 import com.cooleshow.base.utils.ToastUtil;
 import com.cooleshow.base.utils.UiUtils;
 import com.cooleshow.base.utils.helper.QMUIStatusBarHelper;
@@ -49,6 +51,8 @@ public class PianoRoomCourseDetailActivity extends BaseMVPActivity<ActivityPiano
     private CourseSetCommentDialog mSetCommentDialog;
     private PianoRoomCourseInfoBean mInfoBean;
 
+    private CommonCourseConfigBean mConfigBean;
+
     @Override
     protected void onCreate(@Nullable Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
@@ -110,6 +114,7 @@ public class PianoRoomCourseDetailActivity extends BaseMVPActivity<ActivityPiano
 
     private void refresh() {
         if (presenter != null) {
+            presenter.getCourseConfig();
             presenter.getCourseInfo(mCourseId);
         }
     }
@@ -146,8 +151,8 @@ public class PianoRoomCourseDetailActivity extends BaseMVPActivity<ActivityPiano
             //课程未开始
             viewBinding.tvCourseStatus.setText(getString(R.string.course_not_start_str));
             viewBinding.tvCourseStatus.setTextColor(getResources().getColor(com.cooleshow.base.R.color.color_ff802c));
-            viewBinding.tvEnterRoom.setVisibility(View.GONE);
-            viewBinding.bottomView.setVisibility(View.GONE);
+            viewBinding.tvEnterRoom.setVisibility(View.VISIBLE);
+            viewBinding.bottomView.setVisibility(View.VISIBLE);
         }
         if (TextUtils.equals(CourseConstants.COURSE_STATUS_ING, status)) {
             //课程进行中
@@ -180,6 +185,11 @@ public class PianoRoomCourseDetailActivity extends BaseMVPActivity<ActivityPiano
         refresh();
     }
 
+    @Override
+    public void getCourseConfigSuccess(CommonCourseConfigBean data) {
+        this.mConfigBean = data;
+    }
+
     /**
      * 绑定学生列表数据
      *
@@ -236,7 +246,14 @@ public class PianoRoomCourseDetailActivity extends BaseMVPActivity<ActivityPiano
         if (v.getId() == R.id.tv_enter_room) {
             //进入教室
             if (mInfoBean != null) {
-                OpenClassRoomHelper.start(this, mCourseId, mInfoBean.subjectName);
+                if (mConfigBean != null) {
+                    boolean lessThanTargetTime = TimeUtils.isLessThanTargetTime(mConfigBean.getPianoStartTime(), mInfoBean.startTime);
+                    if (!lessThanTargetTime) {
+                        ToastUtil.getInstance().showShort("课程还未开始,请在上课前" + mConfigBean.getPianoStartTime() + "分钟进入");
+                        return;
+                    }
+                    OpenClassRoomHelper.start(this, mCourseId, mInfoBean.subjectName);
+                }
             }
             return;
         }

+ 19 - 3
teacher/src/main/java/com/cooleshow/teacher/ui/course/SparringCourseDetailActivity.java

@@ -5,6 +5,7 @@ import android.view.View;
 import android.widget.LinearLayout;
 
 import com.alibaba.android.arouter.facade.annotation.Route;
+import com.cooleshow.base.bean.CommonCourseConfigBean;
 import com.cooleshow.base.router.RouterPath;
 import com.cooleshow.base.ui.activity.BaseMVPActivity;
 import com.cooleshow.base.utils.GlideUtils;
@@ -42,6 +43,8 @@ public class SparringCourseDetailActivity extends BaseMVPActivity<ActivitySparri
     private CourseSetCommentDialog mSetCommentDialog;
     private SparringCourseHomeworkBean mInfoBean;
 
+    private CommonCourseConfigBean mConfigBean;
+
     @NonNull
     @Override
     protected ActivitySparringCourseDetailLayoutBinding getLayoutView() {
@@ -80,6 +83,7 @@ public class SparringCourseDetailActivity extends BaseMVPActivity<ActivitySparri
 
     private void refresh() {
         if (presenter != null) {
+            presenter.getCourseConfig();
             presenter.getSparringCourseHomework(mCourseId, studentId);
             presenter.getSparringCourseComment(mCourseId, mCourseGroupId, studentId);
         }
@@ -117,8 +121,8 @@ public class SparringCourseDetailActivity extends BaseMVPActivity<ActivitySparri
             //课程未开始
             viewBinding.tvCourseStatus.setText(getString(R.string.course_not_start_str));
             viewBinding.tvCourseStatus.setTextColor(getResources().getColor(com.cooleshow.base.R.color.color_ff802c));
-            viewBinding.tvEnterRoom.setVisibility(View.GONE);
-            viewBinding.bottomView.setVisibility(View.GONE);
+            viewBinding.tvEnterRoom.setVisibility(View.VISIBLE);
+            viewBinding.bottomView.setVisibility(View.VISIBLE);
         }
         if (TextUtils.equals(CourseConstants.COURSE_STATUS_ING, status)) {
             //课程进行中
@@ -315,7 +319,14 @@ public class SparringCourseDetailActivity extends BaseMVPActivity<ActivitySparri
         if (v.getId() == R.id.tv_enter_room) {
             //进入教室
             if (mInfoBean != null) {
-                OpenClassRoomHelper.start(this, mInfoBean.courseScheduleId, mInfoBean.subjectName);
+                if (mConfigBean != null) {
+                    boolean lessThanTargetTime = TimeUtils.isLessThanTargetTime(mConfigBean.getPracticeStartTime(), mInfoBean.startTime);
+                    if (!lessThanTargetTime) {
+                        ToastUtil.getInstance().showShort("课程还未开始,请在上课前" + mConfigBean.getPracticeStartTime() + "分钟进入");
+                        return;
+                    }
+                    OpenClassRoomHelper.start(this, mInfoBean.courseScheduleId, mInfoBean.subjectName);
+                }
             }
             return;
         }
@@ -393,6 +404,11 @@ public class SparringCourseDetailActivity extends BaseMVPActivity<ActivitySparri
         refresh();
     }
 
+    @Override
+    public void getCourseConfigSuccess(CommonCourseConfigBean data) {
+        this.mConfigBean = data;
+    }
+
 
     @Override
     public void getSparringCourseHomeworkError() {