Browse Source

修改学生端课表显示,增加小组课显示

Pq 8 months ago
parent
commit
0ae2f41845

+ 29 - 11
student/src/main/java/com/cooleshow/student/adapter/CourseTableListAdapter.kt

@@ -9,6 +9,7 @@ import android.widget.TextView
 import androidx.recyclerview.widget.RecyclerView
 import com.chad.library.adapter.base.BaseQuickAdapter
 import com.chad.library.adapter.base.viewholder.BaseViewHolder
+import com.cooleshow.base.constanst.CourseType
 import com.cooleshow.base.ext.setVisible
 import com.cooleshow.base.utils.GlideUtils
 import com.cooleshow.base.utils.SizeUtils
@@ -24,10 +25,10 @@ import kotlin.math.abs
 class CourseTableListAdapter(layoutResId: Int) :
     BaseQuickAdapter<CourseTableDataBean.StudentListBean?, BaseViewHolder>(layoutResId) {
     companion object {
-        const val LIVE_COURSE = "LIVE"//直播课
-        const val OTHER_COURSE = "PRACTICE"//陪练课
-        const val PIANO_ROOM_COURSE = "PIANO_ROOM_CLASS"//琴房课
-        const val VIP_COURSE = "VIP"//VIP课
+//        const val LIVE_COURSE = "LIVE"//直播课
+//        const val OTHER_COURSE = "PRACTICE"//陪练课
+//        const val PIANO_ROOM_COURSE = "PIANO_ROOM_CLASS"//琴房课
+//        const val VIP_COURSE = "VIP"//VIP课
         const val NOT_START = "NOT_START"
         const val ING = "ING"
         const val COMPLETE = "COMPLETE"
@@ -57,7 +58,7 @@ class CourseTableListAdapter(layoutResId: Int) :
         baseViewHolder.setText(R.id.tv_title, data?.courseName);
         //subjectName
         baseViewHolder.setText(R.id.tv_course_name, data?.subjectName);
-        if (TextUtils.equals(OTHER_COURSE, data?.courseType)) {
+        if (TextUtils.equals(CourseType.PRACTICE.id, data?.courseType)) {
             //陪练课
             GlideUtils.loadImage(
                 context,
@@ -70,7 +71,7 @@ class CourseTableListAdapter(layoutResId: Int) :
             tvBuyNum.setVisible(false)
             tv_vip_course_tag.setVisible(true)
             baseViewHolder.setText(R.id.tv_title, data?.name);
-        } else if (TextUtils.equals(PIANO_ROOM_COURSE, data?.courseType)) {
+        } else if (TextUtils.equals(CourseType.PIANO_ROOM_CLASS.id, data?.courseType)) {
             //琴房课
             ivAvatar.setImageResource(R.drawable.icon_piano_room_course)
             val count: String = if (!TextUtils.isEmpty(data?.payCount)) data!!.payCount else "0"
@@ -78,7 +79,16 @@ class CourseTableListAdapter(layoutResId: Int) :
             viewLine2.setVisible(false)
             tvBuyNum.setVisible(false)
             tv_vip_course_tag.setVisible(false)
-        }  else if (TextUtils.equals(VIP_COURSE, data?.courseType)) {
+        }
+        else if (TextUtils.equals(CourseType.GROUP.id, data?.courseType)) {
+            //小组课
+            ivAvatar.setImageResource(R.drawable.icon_group_course_avatar_112_112)
+            val count: String = if (!TextUtils.isEmpty(data?.payCount)) data!!.payCount else "0"
+            tvBuyNum.text = count + "人"
+            viewLine2.setVisible(false)
+            tvBuyNum.setVisible(false)
+            tv_vip_course_tag.setVisible(false)
+        }  else if (TextUtils.equals(CourseType.VIP.id, data?.courseType)) {
             //VIP课
             GlideUtils.loadImage(
                 context,
@@ -134,7 +144,7 @@ class CourseTableListAdapter(layoutResId: Int) :
             }
             COMPLETE -> {
                 //已完成
-                if (TextUtils.equals(VIP_COURSE, data?.courseType) || TextUtils.equals(OTHER_COURSE, data?.courseType)) {
+                if (TextUtils.equals(CourseType.VIP.id, data?.courseType) || TextUtils.equals(CourseType.PRACTICE.id, data?.courseType)) {
                     tvCourseStatusBt.setVisible(true)
                 } else {
                     //直播课隐藏
@@ -181,17 +191,25 @@ class CourseTableListAdapter(layoutResId: Int) :
             return false;
         }
         when (data.courseType) {
-            OTHER_COURSE -> {
+            CourseType.VIP.id -> {
+                return isLessThanTargetTime(configBean!!.vipStartTime, data.startTime);
+            }
+
+            CourseType.PRACTICE.id -> {
                 return isLessThanTargetTime(configBean!!.practiceStartTime, data.startTime);
             }
 
-            LIVE_COURSE -> {
+            CourseType.LIVE.id -> {
                 return isLessThanTargetTime(configBean!!.liveStartTime, data.startTime);
             }
 
-            PIANO_ROOM_COURSE -> {
+            CourseType.PIANO_ROOM_CLASS.id -> {
                 return isLessThanTargetTime(configBean!!.pianoStartTime, data.startTime);
             }
+
+            CourseType.GROUP.id -> {
+                return isLessThanTargetTime(configBean!!.groupStartTime, data.startTime);
+            }
         }
         return false;
     }

+ 36 - 0
student/src/main/java/com/cooleshow/student/bean/CourseTableDataBean.java

@@ -31,6 +31,42 @@ public class CourseTableDataBean {
         private String practiceEndTime;
         private String liveStartTime;
         private String pianoStartTime;
+        private String groupStartTime;
+        private String groupEndTime;
+        private String vipStartTime;
+        private String vipEndTime;
+
+        public String getVipStartTime() {
+            return vipStartTime;
+        }
+
+        public void setVipStartTime(String vipStartTime) {
+            this.vipStartTime = vipStartTime;
+        }
+
+        public String getVipEndTime() {
+            return vipEndTime;
+        }
+
+        public void setVipEndTime(String vipEndTime) {
+            this.vipEndTime = vipEndTime;
+        }
+
+        public String getGroupStartTime() {
+            return groupStartTime;
+        }
+
+        public void setGroupStartTime(String groupStartTime) {
+            this.groupStartTime = groupStartTime;
+        }
+
+        public String getGroupEndTime() {
+            return groupEndTime;
+        }
+
+        public void setGroupEndTime(String groupEndTime) {
+            this.groupEndTime = groupEndTime;
+        }
 
         public String getPianoEndTime() {
             return pianoEndTime;

+ 1 - 1
student/src/main/java/com/cooleshow/student/ui/course/GroupCourseDetailActivity.java

@@ -45,7 +45,7 @@ import androidx.recyclerview.widget.GridLayoutManager;
  * Author by pq, Date on 2022/4/27.
  */
 
-@Route(path = RouterPath.CourseCenter.PIANO_ROOM_COURSE_DETAIL)
+@Route(path = RouterPath.CourseCenter.GROUP_COURSE_DETAIL)
 public class GroupCourseDetailActivity extends BaseMVPActivity<ActivityGroupCourseDetailLayoutBinding, PianoRoomCourseDetailPresenter> implements PianoRoomCourseDetailContract.PianoRoomCourseDetailView, View.OnClickListener {
     public static final String COURSE_ID = "course_id";
     private static final int CHOOSE_VIDEO = 1002;

+ 1 - 1
student/src/main/java/com/cooleshow/student/ui/course/GroupCourseGroupDetailActivity.java

@@ -150,7 +150,7 @@ public class GroupCourseGroupDetailActivity extends BaseMVPActivity<AcGroupCours
             public void onItemClick(@NonNull BaseQuickAdapter<?, ?> adapter, @NonNull View view, int position) {
                 if (position < mAdapter.getData().size()) {
                     VIPCourseGroupDetailListBean bean = mAdapter.getData().get(position);
-                    ARouter.getInstance().build(RouterPath.CourseCenter.PIANO_ROOM_COURSE_DETAIL)
+                    ARouter.getInstance().build(RouterPath.CourseCenter.GROUP_COURSE_DETAIL)
                             .withString(CourseConstants.COURSE_ID, bean.getCourseId())
                             .navigation();
                 }

+ 13 - 5
student/src/main/java/com/cooleshow/student/ui/main/CourseTableFragment.kt

@@ -18,6 +18,7 @@ import com.bigkoo.pickerview.view.TimePickerView
 import com.chad.library.adapter.base.listener.OnItemChildClickListener
 import com.chad.library.adapter.base.listener.OnItemClickListener
 import com.cooleshow.base.common.WebConstants
+import com.cooleshow.base.constanst.CourseType
 import com.cooleshow.base.router.RouterPath
 import com.cooleshow.base.ui.fragment.BaseMVPFragment
 import com.cooleshow.base.utils.SizeUtils
@@ -27,6 +28,7 @@ import com.cooleshow.chatmodule.utils.helper.ChatHelper
 import com.cooleshow.student.R
 import com.cooleshow.student.adapter.CourseTableListAdapter
 import com.cooleshow.student.bean.CourseTableDataBean
+import com.cooleshow.student.constants.CourseConstants
 import com.cooleshow.student.constants.CourseTableContract
 import com.cooleshow.student.databinding.FragmentCourseTableLayoutBinding
 import com.cooleshow.student.presenter.main.CourseTablePresenter
@@ -116,7 +118,7 @@ class CourseTableFragment :
         adapter.setOnItemClickListener(OnItemClickListener() { adapter, view, position ->
             var data: CourseTableDataBean.StudentListBean =
                 adapter.data[position] as CourseTableDataBean.StudentListBean;
-            if (TextUtils.equals(CourseTableListAdapter.OTHER_COURSE, data?.courseType)) {
+            if (TextUtils.equals(CourseType.PRACTICE.id, data?.courseType)) {
                 //陪练课
                 ARouter.getInstance()
                     .build(RouterPath.CourseCenter.SPARRING_COURSE_DETAIL)
@@ -127,7 +129,7 @@ class CourseTableFragment :
                     )
                     .navigation()
             } else if (TextUtils.equals(
-                    CourseTableListAdapter.PIANO_ROOM_COURSE,
+                    CourseType.PIANO_ROOM_CLASS.id,
                     data?.courseType
                 )
             ) {
@@ -135,7 +137,7 @@ class CourseTableFragment :
                 ARouter.getInstance().build(RouterPath.CourseCenter.PIANO_ROOM_COURSE_DETAIL)
                     .withString("course_id", data.courseId)
                     .navigation()
-            } else  if (TextUtils.equals(CourseTableListAdapter.VIP_COURSE, data?.courseType)) {
+            } else  if (TextUtils.equals(CourseType.VIP.id, data?.courseType)) {
                 //VIP课
                 ARouter.getInstance()
                     .build(RouterPath.CourseCenter.SPARRING_COURSE_DETAIL)
@@ -145,6 +147,12 @@ class CourseTableFragment :
                         data.courseGoupId
                     )
                     .navigation()
+            }  else  if (TextUtils.equals(CourseType.GROUP.id, data?.courseType)) {
+                //小组课
+                ARouter.getInstance()
+                    .build(RouterPath.CourseCenter.GROUP_COURSE_DETAIL)
+                    .withString(CourseConstants.COURSE_ID, data.courseId)
+                    .navigation()
             } else {
                 //直播课
                 ARouter.getInstance()
@@ -166,8 +174,8 @@ class CourseTableFragment :
                 adapter.data[position] as CourseTableDataBean.StudentListBean;
             if (view.id == R.id.iv_go_chat) {
                 //目前项目很多这样可成类型的判断,扩展性比较差,增加课程类型的话,判断就不对了,后续想想办法吧
-                if (TextUtils.equals(data.courseType, CourseTableListAdapter.OTHER_COURSE) ||
-                    TextUtils.equals(data.courseType, CourseTableListAdapter.VIP_COURSE)){
+                if (TextUtils.equals(data.courseType, CourseType.PRACTICE.id) ||
+                    TextUtils.equals(data.courseType, CourseType.VIP.id)){
                     //VIP课或者趣纠课
                     ChatHelper.getInstance().goChat(data.imUserId, "")
                 } else {

BIN
student/src/main/res/drawable-xhdpi/icon_group_course_avatar_112_112.png


BIN
student/src/main/res/drawable-xhdpi/icon_live_bg.png


BIN
student/src/main/res/drawable-xhdpi/icon_piano_room_course.png


BIN
student/src/main/res/drawable-xxhdpi/icon_group_course_avatar_112_112.png


BIN
student/src/main/res/drawable-xxhdpi/icon_live_bg.png


BIN
student/src/main/res/drawable-xxhdpi/icon_piano_room_course.png


+ 18 - 0
teacher/src/main/java/com/cooleshow/teacher/bean/CourseTableDataBean.java

@@ -34,6 +34,24 @@ public class CourseTableDataBean {
         private String pianoStartTime;
         private String vipStartTime;
         private String vipEndTime;
+        private String groupStartTime;
+        private String groupEndTime;
+
+        public String getGroupStartTime() {
+            return groupStartTime;
+        }
+
+        public void setGroupStartTime(String groupStartTime) {
+            this.groupStartTime = groupStartTime;
+        }
+
+        public String getGroupEndTime() {
+            return groupEndTime;
+        }
+
+        public void setGroupEndTime(String groupEndTime) {
+            this.groupEndTime = groupEndTime;
+        }
 
         public String getVipStartTime() {
             return vipStartTime;

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

@@ -27,6 +27,9 @@ public class CourseHelper {
         if (TextUtils.equals(courseType, CourseConstants.PIANO_ROOM_COURSE)) {
             return isLessThanTargetTime(configBean.getPianoStartTime(), startTime);
         }
+        if (TextUtils.equals(courseType, CourseConstants.COURSE_GROUP_ID)) {
+            return isLessThanTargetTime(configBean.getGroupStartTime(), startTime);
+        }
         return false;
     }
 

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

@@ -173,7 +173,7 @@ class CourseTableFragment :
         ) {
             //琴房课 跳转详情页
             ARouter.getInstance().build(RouterPath.CourseCenter.PIANO_ROOM_COURSE_DETAIL)
-                .withString("course_id", data.courseId)
+                .withString(CourseConstants.COURSE_ID, data.courseId)
                 .navigation()
         } else if (TextUtils.equals(
                 CourseType.GROUP.id,
@@ -182,7 +182,7 @@ class CourseTableFragment :
         ) {
             //小组课 跳转详情页
             ARouter.getInstance().build(RouterPath.CourseCenter.GROUP_COURSE_DETAIL)
-                .withString("course_id", data.courseId)
+                .withString(CourseConstants.COURSE_ID, data.courseId)
                 .navigation()
         } else if (TextUtils.equals(
                 CourseType.VIP.id,