Browse Source

修改老师端课表跳转逻辑

Pq 3 months ago
parent
commit
1f93a05769

+ 2 - 39
teacher/src/main/java/com/cooleshow/teacher/adapter/CourseTableListAdapter.kt

@@ -13,6 +13,7 @@ import com.cooleshow.base.utils.TimeUtils
 import com.cooleshow.base.utils.UiUtils
 import com.cooleshow.teacher.R
 import com.cooleshow.teacher.bean.CourseTableDataBean
+import com.cooleshow.teacher.helper.CourseHelper
 import kotlin.math.abs
 
 /**
@@ -104,7 +105,7 @@ class CourseTableListAdapter(layoutResId: Int) :
                     R.id.tv_course_status,
                     context.resources.getColor(com.cooleshow.base.R.color.color_ff802c)
                 )
-                if (isCanShowEnterBt(data)) {
+                if (CourseHelper.isCanShowEnterBt(configBean,data.courseType,data.startTime)) {
                     tvCourseStatusBt.setVisible(true)
                     tvCourseStatusBt.text = "进入教室"
                     tvCourseStatusBt.setBackgroundResource(R.drawable.shape_course_status_ing);
@@ -164,44 +165,6 @@ class CourseTableListAdapter(layoutResId: Int) :
         }
     }
 
-    private fun isCanShowEnterBt(data: CourseTableDataBean.StudentListBean): Boolean {
-        if (configBean == null) {
-            return false;
-        }
-        when (data.courseType) {
-            VIP_COURSE -> {
-                return isLessThanTargetTime(configBean!!.vipStartTime, data.startTime);
-            }
-
-            OTHER_COURSE -> {
-                return isLessThanTargetTime(configBean!!.practiceStartTime, data.startTime);
-            }
-
-            LIVE_COURSE -> {
-                return isLessThanTargetTime(configBean!!.liveStartTime, data.startTime);
-            }
-
-            PIANO_ROOM_COURSE -> {
-                return isLessThanTargetTime(configBean!!.pianoStartTime, data.startTime);
-            }
-        }
-        return false;
-    }
-
-    private fun isLessThanTargetTime(targetMinutes: String, startTime: String): Boolean {
-        try {
-            var time = TimeUtils.string2Date(startTime).time;
-            var cTime = System.currentTimeMillis();
-            var limitMinutes = targetMinutes.toLong()
-            if (abs(time - cTime) < limitMinutes * 60 * 1000) {
-                return true;
-            }
-        } catch (e: Exception) {
-            e.printStackTrace()
-        }
-        return false;
-    }
-
     fun setConfigData(sysConfig: CourseTableDataBean.SysConfigBean?) {
         this.configBean = sysConfig;
     }

+ 1 - 0
teacher/src/main/java/com/cooleshow/teacher/constants/CourseConstants.java

@@ -29,6 +29,7 @@ public class CourseConstants {
     public static final String LIVE_COURSE = "LIVE";//直播课PRACTICE
     public static final String OTHER_COURSE = "PRACTICE";//陪练课
     public static final String PIANO_ROOM_COURSE = "PIANO_ROOM_CLASS";//琴房课
+    public static final String VIP_COURSE = "VIP";//VIP课
 
     public static final String COURSE_ID = "course_id";
     public static final String COURSE_GROUP_ID = "course_group_id";

+ 46 - 0
teacher/src/main/java/com/cooleshow/teacher/helper/CourseHelper.java

@@ -0,0 +1,46 @@
+package com.cooleshow.teacher.helper;
+
+import android.text.TextUtils;
+
+import com.cooleshow.base.constanst.Constants;
+import com.cooleshow.base.utils.TimeUtils;
+import com.cooleshow.teacher.bean.CourseTableDataBean;
+import com.cooleshow.teacher.constants.CourseConstants;
+
+/**
+ * Author by pq, Date on 2024/11/25.
+ */
+public class CourseHelper {
+    public static boolean isCanShowEnterBt(CourseTableDataBean.SysConfigBean configBean, String courseType, String startTime) {
+        if (configBean == null) {
+            return false;
+        }
+        if (TextUtils.equals(courseType, CourseConstants.VIP_COURSE)) {
+            return isLessThanTargetTime(configBean.getVipStartTime(), startTime);
+        }
+        if (TextUtils.equals(courseType, CourseConstants.OTHER_COURSE)) {
+            return isLessThanTargetTime(configBean.getPracticeStartTime(), startTime);
+        }
+        if (TextUtils.equals(courseType, CourseConstants.LIVE_COURSE)) {
+            return isLessThanTargetTime(configBean.getLiveStartTime(), startTime);
+        }
+        if (TextUtils.equals(courseType, CourseConstants.PIANO_ROOM_COURSE)) {
+            return isLessThanTargetTime(configBean.getPianoStartTime(), startTime);
+        }
+        return false;
+    }
+
+    private 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;
+    }
+}

+ 9 - 2
teacher/src/main/java/com/cooleshow/teacher/ui/main/CourseTableFragment.kt

@@ -55,6 +55,7 @@ class CourseTableFragment :
     private lateinit var emptyIcon: ImageView
     private var day: Int = -1;
     private var targetChangeCourseId: String = ""
+    var configBean: CourseTableDataBean.SysConfigBean? = null;
 
     override fun getLayoutView(): FragmentCourseTableLayoutBinding {
         return FragmentCourseTableLayoutBinding.inflate(layoutInflater)
@@ -110,8 +111,13 @@ class CourseTableFragment :
             if (view.id == R.id.tv_course_status_bt) {
                 //调课(调整时间)
                 if (TextUtils.equals(data.status, CourseTableListAdapter.NOT_START)) {
-                    var targetDate: Date = TimeUtils.getDate(data.startTime)
-                    showCourseTimeSelectView(targetDate, data.courseId);
+                    if(com.cooleshow.teacher.helper.CourseHelper.isCanShowEnterBt(configBean,data.courseType,data.startTime)){
+                        gotoCourseDetail(position);
+                    }else{
+                        //调课
+                        var targetDate: Date = TimeUtils.getDate(data.startTime)
+                        showCourseTimeSelectView(targetDate, data.courseId);
+                    }
                 } else {
                     gotoCourseDetail(position);
                 }
@@ -331,6 +337,7 @@ class CourseTableFragment :
         adapter?.data?.clear()
         if (data?.studentList?.size != 0) {
             //更新日历表,显示有课字样
+            configBean = data.sysConfig;
             adapter.setConfigData(data.sysConfig);
             adapter.data.addAll(data?.studentList!!);
             adapter?.notifyDataSetChanged()