Browse Source

Merge branch 'dev' of http://git.dayaedu.com/yonge/cooleshow_android into dev

Pq 3 years ago
parent
commit
447c80e079
54 changed files with 1237 additions and 286 deletions
  1. 1 0
      BaseLibrary/src/main/java/com/cooleshow/base/common/BaseConstant.java
  2. 38 114
      BaseLibrary/src/main/java/com/cooleshow/base/utils/ToastUtil.java
  3. 90 0
      BaseLibrary/src/main/java/com/cooleshow/base/widgets/CommonTipDialog.java
  4. 6 0
      BaseLibrary/src/main/res/drawable/cancel_btn_bg.xml
  5. 0 0
      BaseLibrary/src/main/res/drawable/ic_launcher_foreground.xml
  6. 8 0
      BaseLibrary/src/main/res/drawable/shape_course_title_tag_bg.xml
  7. 1 1
      BaseLibrary/src/main/res/drawable/shape_couse_type_text_bg.xml
  8. 6 0
      BaseLibrary/src/main/res/drawable/sure_btn_bg.xml
  9. 100 0
      BaseLibrary/src/main/res/layout/common_dialog_tip_layout.xml
  10. 2 0
      BaseLibrary/src/main/res/values/strings.xml
  11. 59 0
      student/src/main/java/com/cooleshow/student/adapter/PianoRoomCourseListAdapter.java
  12. 10 0
      student/src/main/java/com/cooleshow/student/api/APIService.java
  13. 98 0
      student/src/main/java/com/cooleshow/student/bean/PianoRoomCourseListBean.java
  14. 19 0
      student/src/main/java/com/cooleshow/student/contract/PianoRoomCourseContract.java
  15. 2 0
      student/src/main/java/com/cooleshow/student/presenter/course/LiveCoursePresenter.java
  16. 55 0
      student/src/main/java/com/cooleshow/student/presenter/course/PianoRoomCoursePresenter.java
  17. 7 1
      student/src/main/java/com/cooleshow/student/ui/course/MineCourseActivity.java
  18. 297 0
      student/src/main/java/com/cooleshow/student/ui/course/PianoRoomCourseFragment.java
  19. 26 14
      student/src/main/java/com/cooleshow/student/ui/main/HomeFragment.java
  20. 1 3
      student/src/main/java/com/cooleshow/student/ui/main/MineFragment.java
  21. 1 1
      student/src/main/java/com/cooleshow/student/ui/mine/ModifyPasswordActivity.java
  22. 1 1
      student/src/main/java/com/cooleshow/student/ui/mine/SettingActivity.java
  23. 5 1
      student/src/main/java/com/cooleshow/student/ui/splash/SplashActivity.kt
  24. 1 1
      student/src/main/java/com/cooleshow/student/widgets/helper/JsInterfaceAccomPanyUtils.java
  25. 1 1
      student/src/main/java/com/cooleshow/student/widgets/helper/JsInterfaceUtils.java
  26. 1 0
      student/src/main/res/layout/activity_check_modify_phonenum.xml
  27. 1 1
      student/src/main/res/layout/fragment_home_layout.xml
  28. 4 2
      student/src/main/res/layout/fragment_mine_layout.xml
  29. 86 0
      student/src/main/res/layout/fragment_piano_room_course_layout.xml
  30. 136 0
      student/src/main/res/layout/item_piano_room_course_list_layout.xml
  31. 2 3
      student/src/main/res/layout/layout_mark_item.xml
  32. 2 1
      teacher/src/main/java/com/cooleshow/teacher/api/APIService.java
  33. 13 0
      teacher/src/main/java/com/cooleshow/teacher/bean/request/LiveCourseEntry.java
  34. 7 15
      teacher/src/main/java/com/cooleshow/teacher/presenter/course/MineLiveCoursePresenter.java
  35. 7 17
      teacher/src/main/java/com/cooleshow/teacher/presenter/homePage/LiveCoursePagePresenter.java
  36. 10 17
      teacher/src/main/java/com/cooleshow/teacher/ui/homepage/LiveCoursePageFragment.java
  37. 1 1
      teacher/src/main/java/com/cooleshow/teacher/ui/main/CourseTableFragment.kt
  38. 1 1
      teacher/src/main/java/com/cooleshow/teacher/ui/mine/ModifyPasswordActivity.java
  39. 31 13
      teacher/src/main/java/com/cooleshow/teacher/ui/mine/MyBankCardActivity.java
  40. 1 1
      teacher/src/main/java/com/cooleshow/teacher/ui/mine/SettingActivity.java
  41. 13 7
      teacher/src/main/java/com/cooleshow/teacher/ui/score/MineScoreActivity.java
  42. 31 35
      teacher/src/main/java/com/cooleshow/teacher/ui/score/MineScoreFragment.java
  43. 5 1
      teacher/src/main/java/com/cooleshow/teacher/ui/splash/SplashActivity.kt
  44. 1 1
      teacher/src/main/java/com/cooleshow/teacher/widgets/helper/JsInterfaceAccomPanyUtils.java
  45. 1 1
      teacher/src/main/java/com/cooleshow/teacher/widgets/helper/JsInterfaceHelper.java
  46. 1 1
      teacher/src/main/java/com/cooleshow/teacher/widgets/helper/JsInterfaceUtils.java
  47. 1 0
      teacher/src/main/res/layout/activity_modify_phonenum.xml
  48. 29 12
      teacher/src/main/res/layout/fragment_mine_score.xml
  49. 0 12
      usercenter/src/main/java/com/cooleshow/usercenter/UserConstants.java
  50. 5 1
      usercenter/src/main/java/com/cooleshow/usercenter/constants/UserConstants.java
  51. 1 1
      usercenter/src/main/java/com/cooleshow/usercenter/ui/activity/BindPasswordActivity.java
  52. 1 1
      usercenter/src/main/java/com/cooleshow/usercenter/ui/activity/LoginActivity.kt
  53. 1 1
      usercenter/src/main/java/com/cooleshow/usercenter/ui/activity/VerifyCodeInputActivity.java
  54. 9 2
      usercenter/src/main/java/com/cooleshow/usercenter/ui/activity/VerifyCodeLoginActivity.java

+ 1 - 0
BaseLibrary/src/main/java/com/cooleshow/base/common/BaseConstant.java

@@ -17,4 +17,5 @@ public class BaseConstant {
 
     public final static String TABLE_PREFS = "Kotlin_mall";
     public final static String KEY_SP_TOKEN = "token";
+    public final static String STUDENT_ID = "student_id";
 }

+ 38 - 114
BaseLibrary/src/main/java/com/cooleshow/base/utils/ToastUtil.java

@@ -8,6 +8,7 @@ import android.view.Gravity;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.widget.ImageView;
+import android.widget.TableLayout;
 import android.widget.TextView;
 import android.widget.Toast;
 
@@ -15,132 +16,55 @@ import com.cooleshow.base.R;
 
 public class ToastUtil {
 
-    public static ToastUtil toast;
-    private String toastStr;
-    Toast toast1 = null;
-    private TextView tv;
-    private Handler handler;
+    public static ToastUtil instance;
+    private Toast toast;
 
     public static ToastUtil getInstance() {
-        if (null == toast) {
-            toast = new ToastUtil();
+        if (null == instance) {
+            instance = new ToastUtil();
         }
-        return toast;
+        return instance;
     }
 
-
     /**
      * 创建自定义Toasts :
      */
     public void show(Context context, String toastStr) {
-
-        if (null == context || TextUtils.isEmpty(toastStr)) {
-            return;
+        if (init(toastStr, Toast.LENGTH_SHORT) == null) {
+            toast = new Toast(Utils.getApp());
+            toast.setText(toastStr);
+            toast.setDuration(Toast.LENGTH_SHORT);
+            toast.show();
         }
-        if (!TextUtils.isEmpty(this.toastStr) && toastStr.equals(this.toastStr)) {
-            if (handler == null) {
-                handler = new Handler();
-                handler.postDelayed(() -> {
-                    ToastUtil.this.toastStr = null;
-                    handler = null;
-                }, 2000);
-            }
-            return;
-        }
-        this.toastStr = toastStr;
-        toast1 = null;
-        toast1 = new Toast(context);
-        View toastRoot = LayoutInflater.from(context).inflate(R.layout.my_toast, null);
-        toast1.setView(toastRoot);
-        toast1.setGravity(Gravity.CENTER, 0, 0);
-        tv = toastRoot.findViewById(R.id.TextViewInfo);
-
-        if (toastStr.length() > 15) {
-            toast1.setDuration(Toast.LENGTH_LONG);
-        } else {
-            toast1.setDuration(Toast.LENGTH_SHORT);
-        }
-        if (tv != null) {
-            tv.setText(toastStr);
-        }
-        toast1.show();
     }
 
-    public void cancel(){
-        if(toast1 != null){
-            toast1.cancel();
+    private Toast init(String message, int duration) {
+        try {
+            if (toast != null) {
+                TextView text = (TextView) toast.getView();
+                if (text != null) {
+                    text.setText(message);
+                }
+            } else {
+                int dp26 = SizeUtils.dp2px(26);
+                int dp10 = SizeUtils.dp2px(10);
+                TextView contentView = new TextView(Utils.getApp());
+                contentView.setGravity(Gravity.CENTER);
+                contentView.setBackgroundResource(R.drawable.shape_toast);
+                contentView.setTextSize(15);
+                contentView.setTextColor(Utils.getApp().getResources().getColor(R.color.white));
+                contentView.setPadding(dp26, dp10, dp26, dp10);
+                contentView.setText(message);
+                toast = new Toast(Utils.getApp());
+                toast.setGravity(Gravity.CENTER_VERTICAL, 0, 0);
+                toast.setView(contentView);
+            }
+            toast.setDuration(duration);
+            toast.show();
+        } catch (Exception e) {
+            Toast.makeText(Utils.getApp(), message, duration).show();
+            e.printStackTrace();
         }
-    }
-
-    /**
-     * 创建自定义Toasts :
-     */
-    public void showSpecialScore(Context context, int score) {
-
-//        if(toast1 != null){
-//            toast1.cancel();
-//        }
-//        toast1 = null;
-//        toast1 = new Toast(context);
-//        View toastRoot = LayoutInflater.from(context).inflate(R.layout.layout_toast_score, null);
-//        toast1.setView(toastRoot);
-//        toast1.setGravity(Gravity.CENTER, 0, 0);
-//        TextView tv_layout_toast_score = toastRoot.findViewById(R.id.tv_layout_toast_score);
-//        toast1.setDuration(Toast.LENGTH_SHORT);
-//        ImageView iv_layout_toast_score = toastRoot.findViewById(R.id.iv_layout_toast_score);
-//
-//        if (score >= 80) {
-//            iv_layout_toast_score.setImageResource(R.mipmap.img_score_perfect);
-//            tv_layout_toast_score.setTextColor(Color.parseColor("#516AFF"));
-//        } else if (score >= 60) {
-//            iv_layout_toast_score.setImageResource(R.mipmap.img_score_great);
-//            tv_layout_toast_score.setTextColor(Color.parseColor("#FF8E5A"));
-//        } else if (score >= 40) {
-//            iv_layout_toast_score.setImageResource(R.mipmap.img_score_good);
-//            tv_layout_toast_score.setTextColor(Color.parseColor("#FF958B"));
-//        } else {
-//            iv_layout_toast_score.setImageResource(R.mipmap.img_score_bad);
-//            tv_layout_toast_score.setTextColor(Color.parseColor("#EE4C6A"));
-//        }
-//        if (tv_layout_toast_score != null) {
-//            tv_layout_toast_score.setText(score + "");
-//        }
-//        toast1.show();
-    }
-
-    /**
-     * 创建自定义Toasts :
-     */
-    public void showSpecialScore(Context context, int score, int x, int y) {
-//
-//        if(toast1 != null){
-//            toast1.cancel();
-//        }
-//        toast1 = null;
-//        toast1 = new Toast(context);
-//        View toastRoot = LayoutInflater.from(context).inflate(R.layout.layout_toast_score, null);
-//        toast1.setView(toastRoot);
-//        toast1.setGravity(Gravity.TOP | Gravity.LEFT, x, y);
-//        TextView tv_layout_toast_score = toastRoot.findViewById(R.id.tv_layout_toast_score);
-//        toast1.setDuration(Toast.LENGTH_SHORT);
-//        ImageView iv_layout_toast_score = toastRoot.findViewById(R.id.iv_layout_toast_score);
-//
-//        if (score >= 80) {
-//            iv_layout_toast_score.setImageResource(R.mipmap.img_score_perfect);
-//            tv_layout_toast_score.setTextColor(Color.parseColor("#516AFF"));
-//        } else if (score >= 60) {
-//            iv_layout_toast_score.setImageResource(R.mipmap.img_score_great);
-//            tv_layout_toast_score.setTextColor(Color.parseColor("#FF8E5A"));
-//        } else if (score >= 40) {
-//            iv_layout_toast_score.setImageResource(R.mipmap.img_score_good);
-//            tv_layout_toast_score.setTextColor(Color.parseColor("#FF958B"));
-//        } else {
-//            iv_layout_toast_score.setImageResource(R.mipmap.img_score_bad);
-//            tv_layout_toast_score.setTextColor(Color.parseColor("#EE4C6A"));
-//        }
-//        if (tv_layout_toast_score != null) {
-//            tv_layout_toast_score.setText(score + "");
-//        }
-//        toast1.show();
+        return toast;
     }
 }

+ 90 - 0
BaseLibrary/src/main/java/com/cooleshow/base/widgets/CommonTipDialog.java

@@ -0,0 +1,90 @@
+package com.cooleshow.base.widgets;
+
+import android.app.Dialog;
+import android.content.Context;
+import android.content.DialogInterface;
+import android.os.Bundle;
+import android.text.TextUtils;
+import android.view.View;
+import android.view.WindowManager;
+
+import androidx.annotation.NonNull;
+import androidx.viewbinding.ViewBinding;
+
+import com.cooleshow.base.R;
+import com.cooleshow.base.databinding.CommonDialogTipLayoutBinding;
+import com.cooleshow.base.utils.KeyboardUtils;
+import com.cooleshow.base.utils.ToastUtils;
+
+/**
+ * @author dengqw
+ * @time 2022/6/28 21:11
+ * @describe:
+ **/
+public class CommonTipDialog extends Dialog {
+    public static final int TYPE_SET_TEACHER_COMMENT = 0;//老师评价
+    public static final int TYPE_SET_HOMEWORK = 1;//布置作业
+    public static final int TYPE_SET_HOMEWORK_COMMENT = 2;//作业点评
+
+    private int showType = TYPE_SET_TEACHER_COMMENT;
+
+    private CommonDialogTipLayoutBinding mViewBinding;
+    private static CommonTipDialog dialog;
+
+    public CommonTipDialog(@NonNull Context context) {
+        super(context, R.style.DialogStyle);
+        mViewBinding = CommonDialogTipLayoutBinding.inflate(getLayoutInflater());
+        setContentView(mViewBinding.getRoot());
+        getWindow().setLayout(WindowManager.LayoutParams.MATCH_PARENT, WindowManager.LayoutParams.WRAP_CONTENT);
+        mViewBinding.ivClose.setOnClickListener(v -> {
+            dismiss();
+        });
+        setOnDismissListener(dialog -> unbind());
+
+    }
+
+    public void unbind() {
+        if (mViewBinding != null) {
+            mViewBinding = null;
+        }
+    }
+
+    public static CommonTipDialog getInstance(Context context) {
+        dialog = new CommonTipDialog(context);
+        return dialog;
+    }
+
+    public CommonTipDialog setTitle(String titleText) {
+        mViewBinding.tvTitle.setText(titleText);
+        return this;
+    }
+
+    public CommonTipDialog setContent(String content) {
+        mViewBinding.contentText.setText(content);
+        return this;
+    }
+
+    public CommonTipDialog setCancel(String cancel, View.OnClickListener listener) {
+        if (!TextUtils.isEmpty(cancel)) {
+            mViewBinding.tvCancel.setVisibility(View.VISIBLE);
+        }
+        mViewBinding.tvCancel.setText(cancel);
+        mViewBinding.tvCancel.setOnClickListener(listener);
+        return this;
+    }
+
+    public CommonTipDialog setConfirm(String confirm, View.OnClickListener listener) {
+        if (!TextUtils.isEmpty(confirm)) {
+            mViewBinding.tvSure.setVisibility(View.VISIBLE);
+        }
+        mViewBinding.tvSure.setText(confirm);
+        mViewBinding.tvSure.setOnClickListener(listener);
+        return this;
+    }
+
+    public static void dismissDialog() {
+        if (dialog != null) {
+            dialog.dismiss();
+        }
+    }
+}

+ 6 - 0
BaseLibrary/src/main/res/drawable/cancel_btn_bg.xml

@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <corners android:radius="@dimen/dp_24"/>
+    <stroke android:color="#2DC7AA" android:width="@dimen/dp_1"/>
+</shape>

+ 0 - 0
BaseLibrary/src/main/res/drawable-v24/ic_launcher_foreground.xml → BaseLibrary/src/main/res/drawable/ic_launcher_foreground.xml


+ 8 - 0
BaseLibrary/src/main/res/drawable/shape_course_title_tag_bg.xml

@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+    <gradient android:type="linear" android:useLevel="true"
+        android:startColor="#ff59e5d5"
+        android:endColor="#ff2dc7aa"
+        android:angle="180" />
+    <corners android:radius="3dp" />
+</shape>

+ 1 - 1
BaseLibrary/src/main/res/drawable/shape_couse_type_text_bg.xml

@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
 <shape xmlns:android="http://schemas.android.com/apk/res/android">
     <solid android:color="@color/color_fff1de"/>
-    <corners android:radius="4dp"/>
+    <corners android:radius="2dp"/>
 </shape>

+ 6 - 0
BaseLibrary/src/main/res/drawable/sure_btn_bg.xml

@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <corners android:radius="@dimen/dp_24"/>
+    <solid android:color="#2DC7AA"/>
+</shape>

+ 100 - 0
BaseLibrary/src/main/res/layout/common_dialog_tip_layout.xml

@@ -0,0 +1,100 @@
+<?xml version="1.0" encoding="utf-8"?>
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content">
+
+    <androidx.constraintlayout.widget.ConstraintLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginStart="32dp"
+        android:layout_marginEnd="32dp"
+        android:background="@drawable/bg_white_10dp">
+
+        <ImageView
+            android:id="@+id/iv_close"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:padding="13dp"
+            android:visibility="gone"
+            android:src="@drawable/icon_close_dialog"
+            app:layout_constraintRight_toRightOf="parent"
+            app:layout_constraintTop_toTopOf="parent" />
+
+        <View
+            android:id="@+id/view_title_tag"
+            android:layout_width="4dp"
+            android:layout_height="17dp"
+            android:layout_marginStart="19dp"
+            android:layout_marginTop="27dp"
+            android:background="@drawable/shape_course_title_tag_bg"
+            app:layout_constraintLeft_toLeftOf="parent"
+            app:layout_constraintTop_toTopOf="parent" />
+
+        <TextView
+            android:id="@+id/tv_title"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginStart="4dp"
+            android:includeFontPadding="false"
+            android:textColor="@color/color_333333"
+            android:textSize="@dimen/sp_18"
+            android:textStyle="bold"
+            app:layout_constraintBottom_toBottomOf="@+id/view_title_tag"
+            app:layout_constraintLeft_toRightOf="@+id/view_title_tag"
+            app:layout_constraintTop_toTopOf="@+id/view_title_tag"
+            tools:text="评价学员" />
+
+        <TextView
+            android:id="@+id/content_text"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginStart="18dp"
+            android:layout_marginTop="20dp"
+            android:layout_marginEnd="18dp"
+            android:lineHeight="@dimen/dp_20"
+            android:textColor="@color/color_666666"
+            android:textSize="@dimen/sp_14"
+            app:layout_constraintTop_toBottomOf="@+id/view_title_tag"
+            tools:text="解绑后将无法" />
+
+        <TextView
+            android:id="@+id/tv_sure"
+            android:layout_width="0dp"
+            android:layout_height="44dp"
+            android:layout_marginTop="24dp"
+            android:layout_marginEnd="@dimen/dp_13"
+            android:layout_marginBottom="15dp"
+            android:background="@drawable/sure_btn_bg"
+            android:gravity="center"
+            android:includeFontPadding="false"
+            android:textColor="@color/white"
+            android:textSize="@dimen/sp_16"
+            app:layout_constraintBottom_toBottomOf="parent"
+            app:layout_constraintLeft_toRightOf="@+id/tv_cancel"
+            app:layout_constraintRight_toRightOf="parent"
+            app:layout_constraintTop_toBottomOf="@+id/content_text"
+            tools:text="确认" />
+
+        <TextView
+            android:id="@+id/tv_cancel"
+            android:layout_width="0dp"
+            android:layout_height="44dp"
+            android:layout_marginStart="@dimen/dp_13"
+            android:layout_marginTop="24dp"
+            android:layout_marginEnd="@dimen/dp_5"
+            android:layout_marginBottom="15dp"
+            android:background="@drawable/cancel_btn_bg"
+            android:gravity="center"
+            android:visibility="gone"
+            android:includeFontPadding="false"
+            android:textColor="@color/color_2dc7aa"
+            android:textSize="@dimen/sp_16"
+            app:layout_constraintBottom_toBottomOf="parent"
+            app:layout_constraintLeft_toLeftOf="parent"
+            app:layout_constraintRight_toLeftOf="@+id/tv_sure"
+            app:layout_constraintTop_toBottomOf="@+id/content_text"
+            tools:text="取消" />
+    </androidx.constraintlayout.widget.ConstraintLayout>
+</FrameLayout>

+ 2 - 0
BaseLibrary/src/main/res/values/strings.xml

@@ -16,4 +16,6 @@
     <string name="nav_bar_msg">商城</string>
     <string name="nav_bar_user">我的</string>
     <string name="equipment_testing_hint">设备检测需要麦克风、储存权限,去设置?</string>
+    <string name="cancel">取消</string>
+    <string name="sure">确定</string>
 </resources>

+ 59 - 0
student/src/main/java/com/cooleshow/student/adapter/PianoRoomCourseListAdapter.java

@@ -0,0 +1,59 @@
+package com.cooleshow.student.adapter;
+
+import android.text.TextUtils;
+import android.widget.TextView;
+
+import androidx.annotation.NonNull;
+
+import com.chad.library.adapter.base.BaseQuickAdapter;
+import com.chad.library.adapter.base.module.BaseLoadMoreModule;
+import com.chad.library.adapter.base.module.LoadMoreModule;
+import com.chad.library.adapter.base.viewholder.BaseViewHolder;
+import com.cooleshow.student.R;
+import com.cooleshow.student.bean.PianoRoomCourseListBean;
+import com.cooleshow.student.constants.CourseConstants;
+
+/**
+ * Author by pq, Date on 2022/4/25.
+ */
+public class PianoRoomCourseListAdapter extends BaseQuickAdapter<PianoRoomCourseListBean.RowsBean, BaseViewHolder> implements LoadMoreModule {
+
+    public PianoRoomCourseListAdapter(int layoutResId) {
+        super(layoutResId);
+    }
+
+    @Override
+    protected void convert(@NonNull BaseViewHolder holder, PianoRoomCourseListBean.RowsBean data) {
+        //时间
+        holder.setText(R.id.tv_time, data.startTime);
+        //title
+        holder.setText(R.id.tv_title, data.groupName);
+        //subjectName
+        holder.setText(R.id.tv_course_name, data.subjectName);
+        TextView tv_course_status = holder.getView(R.id.tv_course_status);
+
+        if (TextUtils.equals(CourseConstants.COURSE_STATUS_NOT_START, data.status)) {
+            //未开始
+            tv_course_status.setText("未开始");
+            tv_course_status.setTextColor(getContext().getResources().getColor(com.cooleshow.base.R.color.color_ff802c));
+        }
+
+        if (TextUtils.equals(CourseConstants.COURSE_STATUS_ING, data.status)) {
+            //进行中
+            tv_course_status.setText("进行中");
+            tv_course_status.setTextColor(getContext().getResources().getColor(com.cooleshow.base.R.color.color_2dc7aa));
+        }
+
+        if (TextUtils.equals(CourseConstants.COURSE_STATUS_COMPLETE, data.status)) {
+            //已结束
+            tv_course_status.setText("已结束");
+            tv_course_status.setTextColor(getContext().getResources().getColor(com.cooleshow.base.R.color.color_999999));
+        }
+    }
+
+    @NonNull
+    @Override
+    public BaseLoadMoreModule addLoadMoreModule(@NonNull BaseQuickAdapter<?, ?> baseQuickAdapter) {
+        return new BaseLoadMoreModule(baseQuickAdapter);
+    }
+}

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

@@ -20,6 +20,7 @@ import com.cooleshow.student.bean.LiveCourseListBean;
 import com.cooleshow.student.bean.LiveRoomInfoBean;
 import com.cooleshow.student.bean.PayTestBean;
 import com.cooleshow.student.bean.PianoRoomCourseHomeworkBean;
+import com.cooleshow.student.bean.PianoRoomCourseListBean;
 import com.cooleshow.student.bean.PracticeCourseListBean;
 import com.cooleshow.student.bean.QuerySubjectBean;
 import com.cooleshow.student.bean.SelectMyGroupBean;
@@ -442,4 +443,13 @@ public interface APIService {
     @GET
     @Headers("User-Agent:Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:0.9.4)")
     Observable<ResponseBody> downloadFileWithFixedUrl(@Url String url);
+
+    /**
+     * 查询琴房课列表
+     *
+     * @param
+     * @return
+     */
+    @POST(STUDENT_GROUP + "courseSchedule/selectCourseList")
+    Observable<BaseResponse<PianoRoomCourseListBean>> getPianoRoomCourseList(@Body RequestBody body);
 }

+ 98 - 0
student/src/main/java/com/cooleshow/student/bean/PianoRoomCourseListBean.java

@@ -0,0 +1,98 @@
+package com.cooleshow.student.bean;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Author by pq, Date on 2022/4/25.
+ */
+public class PianoRoomCourseListBean {
+
+    /**
+     * footer : [{"avatar":"","classDate":"","courseGoupId":0,"courseId":0,"endTime":"","id":0,"signInTime":"","startTime":"","status":"","subjectId":0,"subjectName":"","userId":0,"userName":""}]
+     * limit : 0
+     * nextPage : 0
+     * offset : 0
+     * pageNo : 0
+     * prePage : 0
+     * rows : [{"avatar":"","classDate":"","courseGoupId":0,"courseId":0,"endTime":"","id":0,"signInTime":"","startTime":"","status":"","subjectId":0,"subjectName":"","userId":0,"userName":""}]
+     * statInfo : {}
+     * total : 0
+     * totalPage : 0
+     */
+
+    public int limit;
+    public int nextPage;
+    public int offset;
+    public int pageNo;
+    public int prePage;
+    public StatInfoBean statInfo;
+    public int total;
+    public int totalPage;
+    public List<FooterBean> footer;
+    public ArrayList<RowsBean> rows;
+
+    public static class StatInfoBean {
+    }
+
+    public static class FooterBean {
+        /**
+         * avatar :
+         * classDate :
+         * courseGoupId : 0
+         * courseId : 0
+         * endTime :
+         * id : 0
+         * signInTime :
+         * startTime :
+         * status :
+         * subjectId : 0
+         * subjectName :
+         * userId : 0
+         * userName :
+         */
+
+        public String avatar;
+        public String classDate;
+        public int courseGoupId;
+        public int courseId;
+        public String endTime;
+        public int id;
+        public String signInTime;
+        public String startTime;
+        public String status;
+        public int subjectId;
+        public String subjectName;
+        public int userId;
+        public String userName;
+    }
+
+    public static class RowsBean {
+
+        /**
+         * consumTime : 0
+         * courseId : 0
+         * endTime :
+         * groupName :
+         * imGroupId :
+         * singleCourseTime : 0
+         * startTime :
+         * status :
+         * studentCount : 0
+         * subjectId : 0
+         * subjectName :
+         */
+
+        public int consumTime;
+        public String courseId;
+        public String endTime;
+        public String groupName;
+        public String imGroupId;
+        public int singleCourseTime;
+        public String startTime;
+        public String status;
+        public int studentCount;
+        public int subjectId;
+        public String subjectName;
+    }
+}

+ 19 - 0
student/src/main/java/com/cooleshow/student/contract/PianoRoomCourseContract.java

@@ -0,0 +1,19 @@
+package com.cooleshow.student.contract;
+
+import com.cooleshow.base.presenter.view.BaseView;
+import com.cooleshow.student.bean.PianoRoomCourseListBean;
+
+/**
+ * Author by pq, Date on 2022/4/20.
+ */
+public interface PianoRoomCourseContract {
+
+    interface PianoRoomCourseView extends BaseView {
+        void onGetPianoRoomCourseListSuccess(int page, PianoRoomCourseListBean bean);
+        void onGetCourseError(int page);
+    }
+
+    interface Presenter {
+        void queryPianoRoomCourseList(boolean isShowLoading,String month, String status, int subjectId,int page);
+    }
+}

+ 2 - 0
student/src/main/java/com/cooleshow/student/presenter/course/LiveCoursePresenter.java

@@ -8,6 +8,7 @@ import com.cooleshow.student.api.APIService;
 import com.cooleshow.student.bean.LiveCourseListBean;
 import com.cooleshow.student.bean.QuerySubjectBean;
 import com.cooleshow.student.contract.LiveCourseContract;
+import com.cooleshow.usercenter.helper.UserHelper;
 
 
 import org.json.JSONException;
@@ -35,6 +36,7 @@ public class LiveCoursePresenter extends BasePresenter<LiveCourseContract.LiveCo
             }
             jsonObject.putOpt("page", page);
             jsonObject.putOpt("rows", Constants.DEFAULT_DATA_SIZE);
+            jsonObject.putOpt("studentId", UserHelper.getUserId());
         } catch (JSONException e) {
             e.printStackTrace();
         }

+ 55 - 0
student/src/main/java/com/cooleshow/student/presenter/course/PianoRoomCoursePresenter.java

@@ -0,0 +1,55 @@
+package com.cooleshow.student.presenter.course;
+
+import com.cooleshow.base.constanst.Constants;
+import com.cooleshow.base.presenter.BasePresenter;
+import com.cooleshow.base.rx.BaseObserver;
+import com.cooleshow.base.utils.RequestBodyUtil;
+import com.cooleshow.student.api.APIService;
+import com.cooleshow.student.bean.PianoRoomCourseListBean;
+import com.cooleshow.student.contract.PianoRoomCourseContract;
+
+import org.json.JSONException;
+import org.json.JSONObject;
+
+/**
+ * 琴房课presenter
+ *
+ * Author by pq, Date on 2022/4/20.
+ */
+public class PianoRoomCoursePresenter extends BasePresenter<PianoRoomCourseContract.PianoRoomCourseView> implements PianoRoomCourseContract.Presenter {
+
+    @Override
+    public void queryPianoRoomCourseList(boolean isShowLoading, String month, String status, int subjectId, int page) {
+        if (isShowLoading && getView() != null) {
+            getView().showLoading();
+        }
+        JSONObject jsonObject = new JSONObject();
+        try {
+            jsonObject.putOpt("month", month);
+            jsonObject.putOpt("status", status);
+            if (subjectId != 0) {
+                jsonObject.putOpt("subjectId", subjectId);
+            }
+            jsonObject.putOpt("page", page);
+            jsonObject.putOpt("rows", Constants.DEFAULT_DATA_SIZE);
+        } catch (JSONException e) {
+            e.printStackTrace();
+        }
+        addSubscribe(create(APIService.class).getPianoRoomCourseList(RequestBodyUtil.convertToRequestBodyJson(jsonObject.toString())), new BaseObserver<PianoRoomCourseListBean>(getView()) {
+            @Override
+            protected void onSuccess(PianoRoomCourseListBean data) {
+                if (getView() != null) {
+                    getView().onGetPianoRoomCourseListSuccess(page, data);
+                }
+            }
+
+            @Override
+            public void onError(Throwable e) {
+                super.onError(e);
+                if (getView() != null) {
+                    getView().onGetCourseError(page);
+                }
+            }
+        });
+    }
+}

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

@@ -37,11 +37,12 @@ public class MineCourseActivity extends BaseMVPActivity<ActivityMineCourseBindin
 
     private TabLayout tabLayout;
     private ViewPager2 viewPager;
-    private List<String> titles = new ArrayList<String>(Arrays.asList("陪练课", "直播课", "视频课"));
+    private List<String> titles = new ArrayList<String>(Arrays.asList("陪练课", "直播课", "视频课", "琴房课"));
     private List<BaseMVPFragment> fragments = new ArrayList<>();
     private MinePracticeCourseFragment mMinePracticeCourseFragment;
     private LiveCourseFragment mLiveCourseFragment;
     private VideoCourseFragment mVideoCourseFragment;
+    private PianoRoomCourseFragment mPianoRoomCourseFragment;
 
     @Override
     protected void initView() {
@@ -78,9 +79,11 @@ public class MineCourseActivity extends BaseMVPActivity<ActivityMineCourseBindin
         mMinePracticeCourseFragment = MinePracticeCourseFragment.newInstance();
         mLiveCourseFragment = LiveCourseFragment.newInstance();
         mVideoCourseFragment = VideoCourseFragment.newInstance();
+        mPianoRoomCourseFragment = new PianoRoomCourseFragment();
         fragments.add(mMinePracticeCourseFragment);
         fragments.add(mLiveCourseFragment);
         fragments.add(mVideoCourseFragment);
+        fragments.add(mPianoRoomCourseFragment);
         MineCoursePagerAdapter mineCoursePageAdapter = new MineCoursePagerAdapter(this);
         mineCoursePageAdapter.setFragments(fragments);
         viewPager.setAdapter(mineCoursePageAdapter);
@@ -129,5 +132,8 @@ public class MineCourseActivity extends BaseMVPActivity<ActivityMineCourseBindin
         if (mVideoCourseFragment != null) {
             mVideoCourseFragment.querySubjectItemSuccess(data);
         }
+        if (mPianoRoomCourseFragment != null) {
+            mPianoRoomCourseFragment.querySubjectItemSuccess(data);
+        }
     }
 }

+ 297 - 0
student/src/main/java/com/cooleshow/student/ui/course/PianoRoomCourseFragment.java

@@ -0,0 +1,297 @@
+package com.cooleshow.student.ui.course;
+
+import android.text.TextUtils;
+import android.view.View;
+import android.widget.TextView;
+
+import com.alibaba.android.arouter.launcher.ARouter;
+import com.bigkoo.pickerview.builder.TimePickerBuilder;
+import com.bigkoo.pickerview.listener.CustomListener;
+import com.bigkoo.pickerview.view.TimePickerView;
+import com.cooleshow.base.constanst.Constants;
+import com.cooleshow.base.router.RouterPath;
+import com.cooleshow.base.ui.fragment.BaseMVPFragment;
+import com.cooleshow.base.utils.LogUtils;
+import com.cooleshow.base.utils.TimeUtils;
+import com.cooleshow.base.widgets.EmptyViewLayout;
+import com.cooleshow.base.widgets.poplist.PopMenuBean;
+import com.cooleshow.base.widgets.poplist.PopupListWindow;
+import com.cooleshow.student.R;
+import com.cooleshow.student.adapter.PianoRoomCourseListAdapter;
+import com.cooleshow.student.bean.CourseFilterStatusBean;
+import com.cooleshow.student.bean.PianoRoomCourseListBean;
+import com.cooleshow.student.bean.QuerySubjectBean;
+import com.cooleshow.student.constants.CourseConstants;
+import com.cooleshow.student.contract.PianoRoomCourseContract;
+import com.cooleshow.student.databinding.FragmentPianoRoomCourseLayoutBinding;
+import com.cooleshow.student.presenter.course.PianoRoomCoursePresenter;
+
+import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.List;
+
+import androidx.recyclerview.widget.LinearLayoutManager;
+
+/**
+ * Author by pq, Date on 2022/4/25.
+ * 我的课程->琴房课
+ */
+public class PianoRoomCourseFragment extends BaseMVPFragment<FragmentPianoRoomCourseLayoutBinding, PianoRoomCoursePresenter> implements PianoRoomCourseContract.PianoRoomCourseView, View.OnClickListener {
+    private String currentCourseFilterStatus = CourseConstants.COURSE_FILTER_ALL;
+    private String currentFilterDate;
+    private Date currentSelectDate;
+    private int currentSubjectId;
+    private int currentPage;
+    private boolean hasNext = true;
+    private PianoRoomCourseListAdapter mAdapter;
+    private EmptyViewLayout mEmptyView;
+    private TimePickerView pvTime;
+    private ArrayList<CourseFilterStatusBean> mCourseFilterStatusBeans;
+    private List<QuerySubjectBean> subjectBeanList = new ArrayList<>();
+    private boolean isFirstLoad = true;
+
+    @Override
+    protected FragmentPianoRoomCourseLayoutBinding getLayoutView() {
+        return FragmentPianoRoomCourseLayoutBinding.inflate(getLayoutInflater());
+    }
+
+    @Override
+    protected PianoRoomCoursePresenter createPresenter() {
+        return new PianoRoomCoursePresenter();
+    }
+
+    @Override
+    protected void initView(View rootView) {
+        mViewBinding.tvTime.setOnClickListener(this);
+        mViewBinding.tvCourseStatus.setOnClickListener(this);
+        mViewBinding.tvAgency.setOnClickListener(this);
+    }
+
+    @Override
+    public void refreshData() {
+        super.refreshData();
+        reBuildFilter(currentSelectDate, currentCourseFilterStatus);
+        isFirstLoad = false;
+    }
+
+    @Override
+    public void onResume() {
+        super.onResume();
+        if(isFirstLoad){
+            isFirstLoad = false;
+            reBuildFilter(null, CourseConstants.COURSE_FILTER_ALL);
+        }
+    }
+
+    private void buildDefaultCourseStatusFilterList() {
+        mCourseFilterStatusBeans = new ArrayList<>();
+        mCourseFilterStatusBeans.add(new CourseFilterStatusBean(CourseConstants.COURSE_FILTER_ALL, "全部"));
+        mCourseFilterStatusBeans.add(new CourseFilterStatusBean(CourseConstants.COURSE_FILTER_HAS_NOT_STARTED, "未开始"));
+        mCourseFilterStatusBeans.add(new CourseFilterStatusBean(CourseConstants.COURSE_FILTER_IN_PROGRESS, "进行中"));
+        mCourseFilterStatusBeans.add(new CourseFilterStatusBean(CourseConstants.COURSE_FILTER_COMPLETED, "已结束"));
+    }
+
+    private void reBuildFilter(Date date, String status) {
+        currentSelectDate = date != null ? date : TimeUtils.getNowDate();
+        String targetDateTimeStr = TimeUtils.date2String(currentSelectDate, TimeUtils.getSafeDateFormat("yyyy-MM"));
+        if (TextUtils.equals(targetDateTimeStr, currentFilterDate) && TextUtils.equals(currentCourseFilterStatus, status)) {
+            //防止重复条件触发
+            return;
+        }
+        currentFilterDate = targetDateTimeStr;
+        currentCourseFilterStatus = !TextUtils.isEmpty(status) ? status : CourseConstants.COURSE_FILTER_ALL;
+        currentPage = 1;
+        mViewBinding.tvTime.setText(currentFilterDate);
+        queryCourse(true);
+    }
+
+
+    @Override
+    protected void initData() {
+        mViewBinding.refreshLayout.setOnRefreshListener(refreshLayout -> {
+            currentPage = 1;
+            queryCourse(true);
+        });
+
+        mAdapter = new PianoRoomCourseListAdapter(R.layout.item_piano_room_course_list_layout);
+        mAdapter.getLoadMoreModule().setOnLoadMoreListener(() -> {
+            //上拉加载
+            if (hasNext) {
+                currentPage++;
+                queryCourse(false);
+            } else {
+                mAdapter.getLoadMoreModule().loadMoreEnd();
+            }
+        });
+        mAdapter.setOnItemClickListener((adapter, view, position) -> {
+            if (position < mAdapter.getData().size()) {
+                PianoRoomCourseListBean.RowsBean rowsBean = mAdapter.getData().get(position);
+                if (rowsBean != null) {
+                    ARouter.getInstance().build(RouterPath.CourseCenter.PIANO_ROOM_COURSE_DETAIL)
+                            .withString("course_id", rowsBean.courseId)
+                            .navigation();
+                }
+            }
+        });
+        mViewBinding.recyclerView.setLayoutManager(new LinearLayoutManager(requireContext()));
+        mViewBinding.recyclerView.setAdapter(mAdapter);
+        buildDefaultCourseStatusFilterList();
+    }
+
+    private void queryCourse(boolean isShowLoading) {
+        //根据默认筛选条件查询
+        LogUtils.i("pq", "currentFilterDate:" + currentFilterDate);
+        LogUtils.i("pq", "currentCourseFilterStatus:" + currentCourseFilterStatus);
+        LogUtils.i("pq", "currentSubjectId:" + currentSubjectId);
+        LogUtils.i("pq", "currentPage:" + currentPage);
+        presenter.queryPianoRoomCourseList(isShowLoading, currentFilterDate, currentCourseFilterStatus, currentSubjectId, currentPage);
+    }
+
+    @Override
+    public void onGetPianoRoomCourseListSuccess(int page, PianoRoomCourseListBean bean) {
+        if (isDetached()) {
+            return;
+        }
+        if (bean != null) {
+            if (page == 1) {
+                //第一页
+                mViewBinding.refreshLayout.finishRefresh();
+                if (mAdapter != null) {
+                    mAdapter.getData().clear();
+                    mAdapter.notifyDataSetChanged();
+                    if (bean.rows != null && bean.rows.size() > 0) {
+                        checkHasNext(bean.rows.size());
+                        mAdapter.setNewInstance(bean.rows);
+                    } else {
+                        showEmptyView();
+                    }
+                }
+            } else {
+                //加载更多
+                if (mAdapter != null) {
+                    if (bean.rows != null && bean.rows.size() > 0) {
+                        mAdapter.getLoadMoreModule().loadMoreComplete();
+                        checkHasNext(bean.rows.size());
+                        mAdapter.addData(bean.rows);
+                    } else {
+                        mAdapter.getLoadMoreModule().loadMoreEnd();
+                    }
+                }
+            }
+        }
+    }
+
+    private void checkHasNext(int dataSize) {
+        hasNext = dataSize >= Constants.DEFAULT_DATA_SIZE;
+    }
+
+    @Override
+    public void onGetCourseError(int page) {
+        if (isDetached()) {
+            return;
+        }
+        if (page == 1) {
+            mViewBinding.refreshLayout.finishRefresh();
+        } else {
+            if (mAdapter != null) {
+                currentPage--;
+                mAdapter.getLoadMoreModule().loadMoreFail();
+            }
+        }
+    }
+
+
+    private void showEmptyView() {
+        if (mEmptyView == null) {
+            mEmptyView = new EmptyViewLayout(getContext());
+        }
+        mEmptyView.setContent(com.cooleshow.base.R.drawable.icon_empty_course, "暂无课程~");
+        mAdapter.setEmptyView(mEmptyView);
+    }
+
+    private void showTimeSelectPicker() {
+        if (pvTime == null) {
+            pvTime = new TimePickerBuilder(requireContext(), (date, v) -> {//选中事件回调
+                reBuildFilter(date, currentCourseFilterStatus);
+            }).setLayoutRes(com.cooleshow.base.R.layout.pickerview_default_layout, v -> {
+                //自定义布局中的控件初始化及事件处理
+                final TextView tvSubmit = (TextView) v.findViewById(com.cooleshow.base.R.id.tv_finish);
+                TextView ivCancel = (TextView) v.findViewById(com.cooleshow.base.R.id.tv_cancel);
+                tvSubmit.setOnClickListener(v1 -> {
+                    pvTime.returnData();
+                    pvTime.dismiss();
+                });
+                ivCancel.setOnClickListener(v12 -> pvTime.dismiss());
+
+            })
+                    .setLineSpacingMultiplier(2.5f)
+                    .setType(new boolean[]{true, true, false, false, false, false})// 默认全部显示
+                    .setTextColorCenter(getResources().getColor(com.cooleshow.base.R.color.color_1a1a1a))//设置选中项的颜色
+                    .isDialog(false)//是否显示为对话框样式
+                    .setLabel("年", "月", "", "", "", "")
+                    .build();
+        }
+        Calendar calendar = Calendar.getInstance();
+        calendar.setTime(currentSelectDate);
+        pvTime.setDate(calendar);
+        if (!pvTime.isShowing()) {
+            pvTime.show();
+        }
+    }
+
+    @Override
+    public void onClick(View v) {
+        if (v.getId() == R.id.tv_time) {
+            //时间筛选
+            showTimeSelectPicker();
+            return;
+        }
+
+        if (v.getId() == R.id.tv_course_status) {
+            //课程状态筛选
+            List<PopMenuBean> popList = new ArrayList<>();
+            for (CourseFilterStatusBean bean : mCourseFilterStatusBeans) {
+                PopMenuBean popMenuBean = new PopMenuBean();
+                popMenuBean.setActionName(bean.showText);
+                popList.add(popMenuBean);
+            }
+            initCoursePop(mViewBinding.tvCourseStatus, popList, position -> {
+                CourseFilterStatusBean bean = mCourseFilterStatusBeans.get(position);
+                mViewBinding.tvCourseStatus.setText(bean.showText);
+                reBuildFilter(currentSelectDate, bean.value);
+            });
+            return;
+        }
+        if (v.getId() == R.id.tv_agency) {
+            //选择声部
+            if (subjectBeanList.size() == 0) {
+                subjectBeanList.add(new QuerySubjectBean("全部声部", 0));
+            }
+            List<PopMenuBean> popList = new ArrayList<>();
+            for (QuerySubjectBean bean : subjectBeanList) {
+                PopMenuBean popMenuBean = new PopMenuBean();
+                popMenuBean.setActionName(bean.name);
+                popList.add(popMenuBean);
+            }
+            initCoursePop(mViewBinding.tvAgency, popList, position -> {
+                QuerySubjectBean bean = subjectBeanList.get(position);
+                currentSubjectId = bean.id;
+                mViewBinding.tvAgency.setText(bean.name);
+                queryCourse(true);
+            });
+            return;
+        }
+    }
+
+    private void initCoursePop(View targetView, List<PopMenuBean> popList, PopupListWindow.PopupListListener listener) {
+        PopupListWindow popWindow = new PopupListWindow(getContext());
+        popWindow.showListPop(targetView, popList, position -> listener.onPopupListClick(position));
+    }
+
+    public void querySubjectItemSuccess(List<QuerySubjectBean> data) {
+        subjectBeanList.clear();
+        subjectBeanList.add(new QuerySubjectBean("全部声部", 0));
+        subjectBeanList.addAll(data);
+    }
+}

+ 26 - 14
student/src/main/java/com/cooleshow/student/ui/main/HomeFragment.java

@@ -52,6 +52,7 @@ import com.youth.banner.listener.OnBannerListener;
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.TreeMap;
 
 /**
  * 创建日期:2022/5/26 10:03
@@ -60,9 +61,16 @@ import java.util.List;
  * 类说明:
  */
 public class HomeFragment extends BaseMVPFragment<FragmentHomeLayoutBinding, HomePresenter> implements HomeContract.HomeView, View.OnClickListener {
+    private boolean isShowFlashPage;
+
     @Override
     public void onClick(View view) {
         switch (view.getId()) {
+            case R.id.iv_avatar:
+            case R.id.tv_name:
+                ARouter.getInstance().build(RouterPath.MineCenter.MINE_PERSONAL_SETTING)
+                        .navigation();
+                break;
             case R.id.im_message:
                 ARouter.getInstance().build(RouterPath.MessageCenter.TEACHER_MESSAGE_MESSAGEBOX)
                         .navigation();
@@ -151,23 +159,23 @@ public class HomeFragment extends BaseMVPFragment<FragmentHomeLayoutBinding, Hom
         mViewBinding.tvGoLive.setOnClickListener(this);
         mViewBinding.tvTeacherStyleMore.setOnClickListener(this);
         mViewBinding.imTeacherStyleMore.setOnClickListener(this);
-        mViewBinding.scrollLayout.setOnScrollChangeListener(new NestedScrollView.OnScrollChangeListener() {
-            @Override
-            public void onScrollChange(NestedScrollView v, int scrollX, int scrollY, int oldScrollX, int oldScrollY) {
-                boolean localVisibleRect = getLocalVisibleRect(getActivity(), banner, 10);
-                //banner可见的时候就自动循环,否则就停止,解决问题:在scrollview到最底部时候,由于banner自动到第一个时候就往上顶一段距离
-                if (localVisibleRect) {
-                    if (null != banner) {
-                        banner.isAutoLoop(true);
-                    }
-                } else {
-                    if (null != banner) {
-                        banner.isAutoLoop(false);
-                    }
+        mViewBinding.tvName.setOnClickListener(this);
+        mViewBinding.ivAvatar.setOnClickListener(this);
+
+        mViewBinding.scrollLayout.setOnScrollChangeListener((NestedScrollView.OnScrollChangeListener) (v, scrollX, scrollY, oldScrollX, oldScrollY) -> {
+            boolean localVisibleRect = getLocalVisibleRect(getActivity(), banner, 10);
+            //banner可见的时候就自动循环,否则就停止,解决问题:在scrollview到最底部时候,由于banner自动到第一个时候就往上顶一段距离
+            if (localVisibleRect) {
+                if (null != banner) {
+                    banner.isAutoLoop(true);
                 }
+            } else {
+                if (null != banner) {
+                    banner.isAutoLoop(false);
+                }
+            }
 
 
-            }
         });
     }
 
@@ -244,7 +252,11 @@ public class HomeFragment extends BaseMVPFragment<FragmentHomeLayoutBinding, Hom
         if (null == flashPage || flashPage.size() == 0) {
             return;
         }
+        if(isShowFlashPage){
+            return;
+        }
         DialogUtils.showHomeDialog(getContext(), flashPage.get(0));
+        isShowFlashPage = true;
     }
 
     @Override

+ 1 - 3
student/src/main/java/com/cooleshow/student/ui/main/MineFragment.java

@@ -54,6 +54,7 @@ public class MineFragment extends BaseMVPFragment<FragmentMineLayoutBinding, Min
                         .navigation();
                 break;
             case R.id.ll_residue_class:
+            case R.id.ll_finished_class:
             case R.id.ll_mine_course:
                 //我的课程
                 ARouter.getInstance().build(RouterPath.CourseCenter.TEACHER_MINE_COURSE)
@@ -118,9 +119,6 @@ public class MineFragment extends BaseMVPFragment<FragmentMineLayoutBinding, Min
                         .withString(WebConstants.WEB_URL, WebConstants.STUDENT_TEACHER_FOLLOW)
                         .navigation();
                 break;
-            case R.id.ll_finished_class:
-                //已完成课时
-                break;
         }
     }
 

+ 1 - 1
student/src/main/java/com/cooleshow/student/ui/mine/ModifyPasswordActivity.java

@@ -20,7 +20,7 @@ import com.cooleshow.student.R;
 import com.cooleshow.student.contract.ModifyPasswordContract;
 import com.cooleshow.student.databinding.ActivityModifyPasswordBinding;
 import com.cooleshow.student.presenter.mine.ModifyPasswordPresenter;
-import com.cooleshow.usercenter.UserConstants;
+import com.cooleshow.usercenter.constants.UserConstants;
 import com.cooleshow.usercenter.helper.UserHelper;
 
 

+ 1 - 1
student/src/main/java/com/cooleshow/student/ui/mine/SettingActivity.java

@@ -16,7 +16,7 @@ import com.cooleshow.student.R;
 import com.cooleshow.student.contract.SettingContract;
 import com.cooleshow.student.databinding.ActivitySettingBinding;
 import com.cooleshow.student.presenter.mine.SettingPresenter;
-import com.cooleshow.usercenter.UserConstants;
+import com.cooleshow.usercenter.constants.UserConstants;
 import com.cooleshow.usercenter.helper.UserHelper;
 
 import io.rong.imkit.utils.StatusBarUtil;

+ 5 - 1
student/src/main/java/com/cooleshow/student/ui/splash/SplashActivity.kt

@@ -10,7 +10,9 @@ import com.cooleshow.base.router.RouterPath
 import com.cooleshow.base.ui.activity.BaseActivity
 import com.cooleshow.base.utils.SPUtils
 import com.cooleshow.student.databinding.ActivitySplashLayoutBinding
+import com.cooleshow.usercenter.constants.UserConstants
 import com.cooleshow.usercenter.helper.UserHelper
+import com.cooleshow.usercenter.ui.activity.VerifyCodeLoginActivity
 import io.rong.imkit.utils.StatusBarUtil
 
 
@@ -68,7 +70,9 @@ class SplashActivity : BaseActivity<ActivitySplashLayoutBinding>() {
     }
 
     private fun jumpLogin() {
-        ARouter.getInstance().build(RouterPath.UserCenter.PATH_VERIFY_LOGIN).navigation()
+        ARouter.getInstance().build(RouterPath.UserCenter.PATH_VERIFY_LOGIN)
+            .withInt(UserConstants.LOGIN_ITEM, VerifyCodeLoginActivity.STUDENT_ITEM)
+            .navigation()
     }
 
 }

+ 1 - 1
student/src/main/java/com/cooleshow/student/widgets/helper/JsInterfaceAccomPanyUtils.java

@@ -10,7 +10,7 @@ import android.webkit.JavascriptInterface;
 
 import com.alibaba.android.arouter.launcher.ARouter;
 import com.cooleshow.base.router.RouterPath;
-import com.cooleshow.usercenter.UserConstants;
+import com.cooleshow.usercenter.constants.UserConstants;
 import com.cooleshow.usercenter.helper.UserHelper;
 import com.gyf.immersionbar.ImmersionBar;
 

+ 1 - 1
student/src/main/java/com/cooleshow/student/widgets/helper/JsInterfaceUtils.java

@@ -12,7 +12,7 @@ import android.webkit.JavascriptInterface;
 
 import com.alibaba.android.arouter.launcher.ARouter;
 import com.cooleshow.base.router.RouterPath;
-import com.cooleshow.usercenter.UserConstants;
+import com.cooleshow.usercenter.constants.UserConstants;
 import com.cooleshow.usercenter.helper.UserHelper;
 import com.gyf.immersionbar.ImmersionBar;
 

+ 1 - 0
student/src/main/res/layout/activity_check_modify_phonenum.xml

@@ -26,6 +26,7 @@
             android:gravity="center_vertical"
             android:hint="请输当前手机号"
             android:inputType="phone"
+            android:maxLength="11"
             android:paddingLeft="14dp"
             android:paddingRight="14dp"
             android:textColor="@color/color_1a1a1a"

+ 1 - 1
student/src/main/res/layout/fragment_home_layout.xml

@@ -27,8 +27,8 @@
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:layout_marginLeft="@dimen/dp_10"
-            android:layout_marginBottom="@dimen/dp_9"
             android:text="--"
+            tools:text="aaaa"
             android:textColor="@color/color_333333"
             android:textSize="@dimen/sp_18"
             app:layout_constraintBottom_toBottomOf="@+id/iv_avatar"

+ 4 - 2
student/src/main/res/layout/fragment_mine_layout.xml

@@ -55,6 +55,7 @@
             android:layout_marginTop="10dp"
             android:textColor="@color/color_333333"
             android:textSize="@dimen/sp_18"
+            android:textStyle="bold"
             app:layout_constraintLeft_toRightOf="@+id/iv_avatar"
             app:layout_constraintTop_toTopOf="@+id/iv_avatar"
             tools:text="张天乐" />
@@ -62,9 +63,10 @@
         <androidx.recyclerview.widget.RecyclerView
             android:id="@+id/rv_mark"
             android:layout_width="wrap_content"
-            android:layout_height="@dimen/dp_16"
-            android:layout_marginLeft="9dp"
+            android:layout_height="wrap_content"
+            android:layout_marginLeft="@dimen/dp_11"
             app:layout_constraintLeft_toRightOf="@+id/tv_nickname"
+            app:layout_constraintBottom_toBottomOf="@+id/tv_nickname"
             app:layout_constraintTop_toTopOf="@+id/tv_nickname" />
 
 

+ 86 - 0
student/src/main/res/layout/fragment_piano_room_course_layout.xml

@@ -0,0 +1,86 @@
+<?xml version="1.0" encoding="utf-8"?>
+<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent">
+
+    <TextView
+        android:id="@+id/tv_time"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_marginStart="25dp"
+        android:drawableRight="@drawable/icon_arrow_down"
+        android:drawablePadding="6dp"
+        android:gravity="center"
+        android:includeFontPadding="false"
+        android:paddingTop="18dp"
+        android:paddingBottom="12dp"
+        android:textColor="@color/color_666666"
+        android:textSize="@dimen/sp_13"
+        app:layout_constraintHorizontal_chainStyle="spread_inside"
+        app:layout_constraintLeft_toLeftOf="parent"
+        app:layout_constraintRight_toLeftOf="@+id/tv_course_status"
+        app:layout_constraintTop_toTopOf="parent"
+        tools:text="2021年9月" />
+
+    <TextView
+        android:id="@+id/tv_course_status"
+        android:layout_width="wrap_content"
+        android:layout_height="0dp"
+        android:drawableRight="@drawable/icon_arrow_down"
+        android:drawablePadding="6dp"
+        android:paddingTop="18dp"
+        android:paddingBottom="12dp"
+        android:gravity="center"
+        android:includeFontPadding="false"
+        android:textColor="@color/color_666666"
+        android:textSize="@dimen/sp_13"
+        android:text="课程状态"
+        app:layout_constraintBottom_toBottomOf="@+id/tv_time"
+        app:layout_constraintLeft_toRightOf="@+id/tv_time"
+        app:layout_constraintRight_toLeftOf="@+id/tv_agency"
+        app:layout_constraintTop_toTopOf="@+id/tv_time"
+        tools:text="课程状态" />
+
+    <TextView
+        android:id="@+id/tv_agency"
+        android:layout_width="wrap_content"
+        android:layout_height="0dp"
+        android:layout_marginEnd="23dp"
+        android:drawableRight="@drawable/icon_arrow_down"
+        android:drawablePadding="6dp"
+        android:gravity="center"
+        android:paddingTop="18dp"
+        android:paddingBottom="12dp"
+        android:includeFontPadding="false"
+        android:textColor="@color/color_666666"
+        android:textSize="@dimen/sp_13"
+        android:text="全部声部"
+        app:layout_constraintBottom_toBottomOf="@+id/tv_time"
+        app:layout_constraintLeft_toRightOf="@+id/tv_course_status"
+        app:layout_constraintRight_toRightOf="parent"
+        app:layout_constraintTop_toTopOf="@+id/tv_time"
+        tools:text="课程状态" />
+
+    <com.scwang.smart.refresh.layout.SmartRefreshLayout
+        android:id="@+id/refreshLayout"
+        android:layout_width="match_parent"
+        android:layout_height="0dp"
+        app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintLeft_toLeftOf="parent"
+        app:layout_constraintRight_toRightOf="parent"
+        app:layout_constraintTop_toBottomOf="@+id/tv_time">
+
+        <com.scwang.smart.refresh.header.ClassicsHeader
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content" />
+
+        <androidx.recyclerview.widget.RecyclerView
+            android:id="@+id/recyclerView"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:overScrollMode="never"
+            android:scrollbars="none" />
+    </com.scwang.smart.refresh.layout.SmartRefreshLayout>
+</androidx.constraintlayout.widget.ConstraintLayout>

+ 136 - 0
student/src/main/res/layout/item_piano_room_course_list_layout.xml

@@ -0,0 +1,136 @@
+<?xml version="1.0" encoding="utf-8"?>
+<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:layout_marginStart="14dp"
+    android:layout_marginTop="12dp"
+    android:layout_marginEnd="14dp"
+    android:background="@drawable/bg_white_10dp"
+    android:paddingStart="11dp"
+    android:paddingEnd="11dp"
+    android:paddingBottom="20dp">
+
+    <ImageView
+        android:id="@+id/iv_clock_icon"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="11dp"
+        android:src="@drawable/icon_clock"
+        app:layout_constraintLeft_toLeftOf="parent"
+        app:layout_constraintTop_toTopOf="parent" />
+
+    <TextView
+        android:id="@+id/tv_time"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_marginStart="6dp"
+        android:includeFontPadding="false"
+        android:textColor="@color/color_666666"
+        android:textSize="@dimen/sp_13"
+        app:layout_constraintBottom_toBottomOf="@+id/iv_clock_icon"
+        app:layout_constraintLeft_toRightOf="@+id/iv_clock_icon"
+        app:layout_constraintTop_toTopOf="@+id/iv_clock_icon"
+        tools:text="2021/09/17 14:00~14:25" />
+
+    <View
+        android:id="@+id/view_line"
+        android:layout_width="0dp"
+        android:layout_height="1dp"
+        android:layout_marginTop="10dp"
+        android:background="@color/color_f2f2f2"
+        app:layout_constraintLeft_toLeftOf="parent"
+        app:layout_constraintRight_toRightOf="parent"
+        app:layout_constraintTop_toBottomOf="@+id/iv_clock_icon" />
+
+    <ImageView
+        android:src="@drawable/icon_piano_room_course"
+        android:id="@+id/iv_avatar"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="17dp"
+        app:layout_constraintLeft_toLeftOf="parent"
+        app:layout_constraintTop_toBottomOf="@+id/view_line"
+        app:qmui_corner_radius="5dp" />
+
+    <TextView
+        android:id="@+id/tv_title"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_marginStart="10dp"
+        android:includeFontPadding="false"
+        android:textColor="@color/color_1a1a1a"
+        android:textSize="@dimen/sp_16"
+        android:textStyle="bold"
+        app:layout_constraintBottom_toTopOf="@+id/tv_course_name"
+        app:layout_constraintLeft_toRightOf="@+id/iv_avatar"
+        app:layout_constraintTop_toTopOf="@+id/iv_avatar"
+        app:layout_constraintVertical_chainStyle="packed"
+        tools:text="张豆豆" />
+
+    <ImageView
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_marginStart="5dp"
+        android:src="@drawable/icon_chat_small"
+        app:layout_constraintBottom_toBottomOf="@+id/tv_title"
+        app:layout_constraintLeft_toRightOf="@+id/tv_title"
+        app:layout_constraintTop_toTopOf="@+id/tv_title" />
+
+    <TextView
+        android:id="@+id/tv_course_name"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="8dp"
+        android:background="@drawable/shape_couse_type_text_bg"
+        android:gravity="center"
+        android:includeFontPadding="false"
+        android:paddingStart="4dp"
+        android:paddingTop="2dp"
+        android:paddingEnd="4dp"
+        android:paddingBottom="2dp"
+        android:textColor="@color/color_ff8c00"
+        android:textSize="@dimen/sp_11"
+        app:layout_constraintBottom_toBottomOf="@+id/iv_avatar"
+        app:layout_constraintLeft_toLeftOf="@+id/tv_title"
+        app:layout_constraintTop_toBottomOf="@+id/tv_title"
+        tools:text="单簧管" />
+
+    <View
+        android:id="@+id/view_line2"
+        android:layout_width="1dp"
+        android:layout_height="11dp"
+        android:layout_marginStart="8dp"
+        android:background="@color/color_d3d3d3"
+        android:visibility="visible"
+        app:layout_constraintBottom_toBottomOf="@+id/tv_course_name"
+        app:layout_constraintLeft_toRightOf="@+id/tv_course_name"
+        app:layout_constraintTop_toTopOf="@+id/tv_course_name" />
+
+    <TextView
+        android:id="@+id/tv_buy_num"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_marginStart="8dp"
+        android:textColor="@color/color_6a6a6a"
+        android:textSize="@dimen/sp_11"
+        android:visibility="visible"
+        android:text="0人已购买"
+        app:layout_constraintBottom_toBottomOf="@+id/view_line2"
+        app:layout_constraintLeft_toRightOf="@+id/view_line2"
+        app:layout_constraintTop_toTopOf="@+id/view_line2"
+        tools:text="6人已购买" />
+
+    <TextView
+        android:id="@+id/tv_course_status"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:textColor="@color/color_999999"
+        android:textSize="@dimen/sp_14"
+        app:layout_constraintBottom_toTopOf="@+id/view_line"
+        app:layout_constraintRight_toRightOf="parent"
+        app:layout_constraintTop_toTopOf="parent"
+        tools:text="未开始" />
+
+</androidx.constraintlayout.widget.ConstraintLayout>

+ 2 - 3
student/src/main/res/layout/layout_mark_item.xml

@@ -8,12 +8,11 @@
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_marginRight="6dp"
+        android:gravity="center_vertical"
         android:background="@drawable/shape_couse_type_text_bg"
         android:paddingLeft="4dp"
-        android:paddingTop="2dp"
         android:paddingRight="4dp"
-        android:paddingBottom="2dp"
-        android:text="--"
+        android:text="竖笛"
         android:textColor="@color/color_ff8c00"
         android:textSize="@dimen/sp_11"
         />

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

@@ -1,6 +1,7 @@
 package com.cooleshow.teacher.api;
 
 import com.cooleshow.base.data.net.BaseResponse;
+import com.cooleshow.teacher.bean.request.LiveCourseEntry;
 import com.cooleshow.teacher.bean.AccountDetailBean;
 import com.cooleshow.teacher.bean.AccountTotalBean;
 import com.cooleshow.teacher.bean.AddressBean;
@@ -460,7 +461,7 @@ public interface APIService {
      * @return
      */
     @POST(TEACHER_GROUP + "courseGroup/queryPageCourseGroup")
-    Observable<BaseResponse<MineLiveCourseListBean>> queryPageCourseGroup(@Body RequestBody body);
+    Observable<BaseResponse<MineLiveCourseListBean>> queryPageCourseGroup(@Body LiveCourseEntry body);
 
     /**
      * 查询视频课

+ 13 - 0
teacher/src/main/java/com/cooleshow/teacher/bean/request/LiveCourseEntry.java

@@ -0,0 +1,13 @@
+package com.cooleshow.teacher.bean.request;
+
+/**
+ * @author dengqw
+ * @time 2022/6/28 22:44
+ * @describe:
+ **/
+public class LiveCourseEntry {
+    public String classDate;
+    public int page;
+    public int rows;
+    public String groupStatus;
+}

+ 7 - 15
teacher/src/main/java/com/cooleshow/teacher/presenter/course/MineLiveCoursePresenter.java

@@ -3,16 +3,12 @@ package com.cooleshow.teacher.presenter.course;
 import com.cooleshow.base.constanst.Constants;
 import com.cooleshow.base.presenter.BasePresenter;
 import com.cooleshow.base.rx.BaseObserver;
-import com.cooleshow.base.utils.RequestBodyUtil;
 import com.cooleshow.teacher.api.APIService;
-import com.cooleshow.teacher.bean.LiveCourseListBean;
 import com.cooleshow.teacher.bean.MineLiveCourseListBean;
 import com.cooleshow.teacher.bean.TeacherUserInfo;
+import com.cooleshow.teacher.bean.request.LiveCourseEntry;
 import com.cooleshow.teacher.contract.MineLiveCourseContract;
 
-import org.json.JSONException;
-import org.json.JSONObject;
-
 /**
  * 创建日期:2022/5/19 15:15
  *
@@ -20,19 +16,15 @@ import org.json.JSONObject;
  * 类说明:
  */
 public class MineLiveCoursePresenter extends BasePresenter<MineLiveCourseContract.MineLiveCourseView> implements MineLiveCourseContract.Presenter {
-    public void queryPageCourseGroup(boolean isLoading,int page,String groupStatus){
+    public void queryPageCourseGroup(boolean isLoading, int page, String groupStatus) {
         if (isLoading && getView() != null) {
             getView().showLoading();
         }
-        JSONObject jsonObject = new JSONObject();
-        try {
-            jsonObject.put("groupStatus",groupStatus);
-            jsonObject.putOpt("page", page);
-            jsonObject.putOpt("rows", Constants.DEFAULT_DATA_SIZE);
-        } catch (JSONException e) {
-            e.printStackTrace();
-        }
-        addSubscribe(create(APIService.class).queryPageCourseGroup(RequestBodyUtil.convertToRequestBodyJson(jsonObject.toString())), new BaseObserver<MineLiveCourseListBean>(getView()) {
+        LiveCourseEntry entry = new LiveCourseEntry();
+        entry.rows = Constants.DEFAULT_DATA_SIZE;
+        entry.page = page;
+        entry.groupStatus = groupStatus;
+        addSubscribe(create(APIService.class).queryPageCourseGroup(entry), new BaseObserver<MineLiveCourseListBean>(getView()) {
             @Override
             protected void onSuccess(MineLiveCourseListBean data) {
                 if (getView() != null) {

+ 7 - 17
teacher/src/main/java/com/cooleshow/teacher/presenter/homePage/LiveCoursePagePresenter.java

@@ -3,18 +3,11 @@ package com.cooleshow.teacher.presenter.homePage;
 import com.cooleshow.base.constanst.Constants;
 import com.cooleshow.base.presenter.BasePresenter;
 import com.cooleshow.base.rx.BaseObserver;
-import com.cooleshow.base.utils.RequestBodyUtil;
 import com.cooleshow.teacher.api.APIService;
-import com.cooleshow.teacher.bean.LiveCourseListBean;
+import com.cooleshow.teacher.bean.request.LiveCourseEntry;
 import com.cooleshow.teacher.bean.MineLiveCourseListBean;
-import com.cooleshow.teacher.bean.TeacherSelfStyleInfoBean;
 import com.cooleshow.teacher.bean.TeacherUserInfo;
 import com.cooleshow.teacher.contract.LiveCoursePageContract;
-import com.cooleshow.teacher.contract.MineStyleContract;
-import com.cooleshow.usercenter.bean.UserInfo;
-
-import org.json.JSONException;
-import org.json.JSONObject;
 
 /**
  * Author by pq, Date on 2022/4/20.
@@ -25,15 +18,12 @@ public class LiveCoursePagePresenter extends BasePresenter<LiveCoursePageContrac
         if (getView() != null) {
             getView().showLoading();
         }
-        JSONObject jsonObject = new JSONObject();
-        try {
-            jsonObject.putOpt("classDate", month);
-            jsonObject.putOpt("page", page);
-            jsonObject.putOpt("rows", Constants.DEFAULT_DATA_SIZE);
-        } catch (JSONException e) {
-            e.printStackTrace();
-        }
-        addSubscribe(create(APIService.class).queryPageCourseGroup(RequestBodyUtil.convertToRequestBodyJson(jsonObject.toString())), new BaseObserver<MineLiveCourseListBean>(getView()) {
+        LiveCourseEntry entry = new LiveCourseEntry();
+        entry.classDate =month;
+        entry.rows =Constants.DEFAULT_DATA_SIZE;
+        entry.page =page;
+        entry.groupStatus ="apply";
+        addSubscribe(create(APIService.class).queryPageCourseGroup(entry), new BaseObserver<MineLiveCourseListBean>(getView()) {
             @Override
             protected void onSuccess(MineLiveCourseListBean data) {
                 if (getView() != null) {

+ 10 - 17
teacher/src/main/java/com/cooleshow/teacher/ui/homepage/LiveCoursePageFragment.java

@@ -50,26 +50,19 @@ public class LiveCoursePageFragment extends BaseMVPFragment<FragmentLiveCoursePa
         Date currentSelectDate = TimeUtils.getNowDate();
         String targetDateTimeStr = TimeUtils.date2String(currentSelectDate, TimeUtils.getSafeDateFormat("yyyy-MM"));
         currentFilterDate = targetDateTimeStr;
-        mViewBinding.refreshLayout.setOnRefreshListener(new OnRefreshListener() {
-            @Override
-            public void onRefresh(@NonNull RefreshLayout refreshLayout) {
-                currentPage = 1;
-                queryCourse();
-            }
+        mViewBinding.refreshLayout.setOnRefreshListener(refreshLayout -> {
+            currentPage = 1;
+            queryCourse();
         });
 
         mAdapter = new MineLiveCourseListAdapter(R.layout.item_live_course_list_layout);
-//        mAdapter.getLoadMoreModule().setEnableLoadMoreIfNotFullPage(false);
-        mAdapter.getLoadMoreModule().setOnLoadMoreListener(new OnLoadMoreListener() {
-            @Override
-            public void onLoadMore() {
-                //上拉加载
-                if (hasNext) {
-                    currentPage++;
-                    queryCourse();
-                } else {
-                    mAdapter.getLoadMoreModule().loadMoreEnd();
-                }
+        mAdapter.getLoadMoreModule().setOnLoadMoreListener(() -> {
+            //上拉加载
+            if (hasNext) {
+                currentPage++;
+                queryCourse();
+            } else {
+                mAdapter.getLoadMoreModule().loadMoreEnd();
             }
         });
         mViewBinding.recyclerView.setLayoutManager(new LinearLayoutManager(requireContext()));

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

@@ -344,7 +344,7 @@ class CourseTableFragment :
                     ivCancel.setOnClickListener { pvCourseTime.dismiss() }
                 })
                 .setLineSpacingMultiplier(2.5f)
-                .setType(booleanArrayOf(true, true, true, true, true, true)) // 默认全部显示
+                .setType(booleanArrayOf(true, true, true, true, true, false)) // 默认全部显示
                 .isCyclic(true) //是否循环滚动
                 .setOutSideCancelable(true) //点击屏幕,点在控件外部范围时,是否取消显示
                 .setTextColorCenter(resources.getColor(com.cooleshow.base.R.color.color_1a1a1a)) //设置选中项的颜色

+ 1 - 1
teacher/src/main/java/com/cooleshow/teacher/ui/mine/ModifyPasswordActivity.java

@@ -20,7 +20,7 @@ import com.cooleshow.teacher.R;
 import com.cooleshow.teacher.contract.ModifyPasswordContract;
 import com.cooleshow.teacher.databinding.ActivityModifyPasswordBinding;
 import com.cooleshow.teacher.presenter.mine.ModifyPasswordPresenter;
-import com.cooleshow.usercenter.UserConstants;
+import com.cooleshow.usercenter.constants.UserConstants;
 import com.cooleshow.usercenter.helper.UserHelper;
 
 import org.json.JSONException;

+ 31 - 13
teacher/src/main/java/com/cooleshow/teacher/ui/mine/MyBankCardActivity.java

@@ -1,12 +1,17 @@
 package com.cooleshow.teacher.ui.mine;
 
 import android.view.View;
+import android.widget.TextView;
 
 import com.alibaba.android.arouter.facade.annotation.Route;
 import com.alibaba.android.arouter.launcher.ARouter;
 import com.cooleshow.base.router.RouterPath;
 import com.cooleshow.base.ui.activity.BaseMVPActivity;
+import com.cooleshow.base.utils.PermissionUtils;
 import com.cooleshow.base.utils.ToastUtils;
+import com.cooleshow.base.widgets.CommonDialog;
+import com.cooleshow.base.widgets.CommonTipDialog;
+import com.cooleshow.base.widgets.DialogUtil;
 import com.cooleshow.teacher.R;
 import com.cooleshow.teacher.bean.ResponseBankCardBean;
 import com.cooleshow.teacher.bean.ResponseBindCardBean;
@@ -34,19 +39,29 @@ public class MyBankCardActivity extends BaseMVPActivity<ActivityMyBankCardBindin
                         .navigation();
                 break;
             case R.id.tv_unbind:
-                if (null==rowsBean){
+                if (null == rowsBean) {
                     ToastUtils.showShort("还未绑定银行卡");
                     break;
                 }
-                JSONObject jsonObject = new JSONObject();
-                try {
-                    jsonObject.putOpt("id", rowsBean.id);
-                    jsonObject.putOpt("idCardNo", rowsBean.bankCard);
-                    jsonObject.putOpt("name", rowsBean.name);
-                } catch (JSONException e) {
-                    e.printStackTrace();
-                }
-                presenter.unBindBankCard(jsonObject.toString());
+                CommonTipDialog.getInstance(this)
+                        .setTitle("解绑银行卡")
+                        .setContent("解绑后将无法将收入提现,请确认是否继续解绑")
+                        .setCancel(getString(R.string.cancel), v -> {
+                            CommonTipDialog.dismissDialog();
+                        })
+                        .setConfirm(getString(R.string.sure), v -> {
+                            CommonTipDialog.dismissDialog();
+                            JSONObject jsonObject = new JSONObject();
+                            try {
+                                jsonObject.putOpt("id", rowsBean.id);
+                                jsonObject.putOpt("idCardNo", rowsBean.bankCard);
+                                jsonObject.putOpt("name", rowsBean.name);
+                            } catch (JSONException e) {
+                                e.printStackTrace();
+                            }
+                            presenter.unBindBankCard(jsonObject.toString());
+                        })
+                        .show();
                 break;
             case R.id.tv_bind_card:
                 ARouter.getInstance().build(RouterPath.MineCenter.MINE_BIND_BANKCARD)
@@ -83,16 +98,19 @@ public class MyBankCardActivity extends BaseMVPActivity<ActivityMyBankCardBindin
     }
 
     private ResponseBankCardBean.RowsBean rowsBean;
+
     @Override
     public void querySuccess(int page, ResponseBankCardBean data) {
         if (null != data && null != data.rows && data.rows.size() > 0) {
-            rowsBean=data.rows.get(0);
+            rowsBean = data.rows.get(0);
             viewBinding.includeEmpty.getRoot().setVisibility(View.GONE);
             viewBinding.clContent.setVisibility(View.VISIBLE);
             viewBinding.tvBankName.setText(rowsBean.bankName);
-            viewBinding.tvCardNum.setText(rowsBean.bankCard);
+            String bankCard = rowsBean.bankCard;
+            String temCard = bankCard.substring(0, 4) + "**** ****" + bankCard.substring(bankCard.length() - 4);
+            viewBinding.tvCardNum.setText(temCard);
             viewBinding.toolbarInclude.tvRightText.setVisibility(View.VISIBLE);
-        }else{
+        } else {
             viewBinding.includeEmpty.getRoot().setVisibility(View.VISIBLE);
             viewBinding.clContent.setVisibility(View.GONE);
             viewBinding.toolbarInclude.tvRightText.setVisibility(View.GONE);

+ 1 - 1
teacher/src/main/java/com/cooleshow/teacher/ui/mine/SettingActivity.java

@@ -16,7 +16,7 @@ import com.cooleshow.teacher.R;
 import com.cooleshow.teacher.contract.SettingContract;
 import com.cooleshow.teacher.databinding.ActivitySettingBinding;
 import com.cooleshow.teacher.presenter.mine.SettingPresenter;
-import com.cooleshow.usercenter.UserConstants;
+import com.cooleshow.usercenter.constants.UserConstants;
 import com.cooleshow.usercenter.helper.UserHelper;
 
 import io.rong.imkit.utils.StatusBarUtil;

+ 13 - 7
teacher/src/main/java/com/cooleshow/teacher/ui/score/MineScoreActivity.java

@@ -13,10 +13,12 @@ import androidx.viewpager.widget.ViewPager;
 import com.alibaba.android.arouter.facade.annotation.Route;
 import com.cooleshow.base.router.RouterPath;
 import com.cooleshow.base.ui.activity.BaseMVPActivity;
+import com.cooleshow.base.utils.ToastUtil;
 import com.cooleshow.base.utils.ToastUtils;
 import com.cooleshow.teacher.R;
 import com.cooleshow.teacher.adapter.MineLiveCoursePagerAdapter;
 import com.cooleshow.teacher.bean.MusicSheetShareBean;
+import com.cooleshow.teacher.constants.TeacherInfoConstants;
 import com.cooleshow.teacher.contract.MineScoreActContract;
 import com.cooleshow.teacher.databinding.ActivityMineScoreBinding;
 import com.cooleshow.teacher.presenter.score.MineScoreActPresenter;
@@ -49,17 +51,26 @@ import io.rong.imkit.utils.StatusBarUtil;
  */
 @Route(path = RouterPath.ScoreCenter.TEACHER_MINE_SCORE)
 public class MineScoreActivity extends BaseMVPActivity<ActivityMineScoreBinding, MineScoreActPresenter> implements MineScoreActContract.MineScoreActView, View.OnClickListener {
+    private String musicianAuthStatus;
+    private TabLayout tabLayout;
+    private ViewPager viewPager;
+    private List<String> titles = new ArrayList<String>(Arrays.asList("已上架", "审核中", "审核失败"));
+    private List<String> auditStatusList = new ArrayList<String>(Arrays.asList("PASS", "DOING", "UNPASS"));
+    private List<Fragment> fragments = new ArrayList<>();
+
     @Override
     public void onClick(View view) {
         switch (view.getId()) {
             case R.id.tv_right:
+                if(musicianAuthStatus != TeacherInfoConstants.MUSICIAN_STATUS_PASS){
+                    ToastUtil.getInstance().show(this,"您还没有上传曲谱");
+                    return;
+                }
                 presenter.musicSheetShare();
                 break;
         }
 
     }
-    private TabLayout tabLayout;
-    private ViewPager viewPager;
 
     @Override
     protected void initView() {
@@ -78,7 +89,6 @@ public class MineScoreActivity extends BaseMVPActivity<ActivityMineScoreBinding,
         super.onCreate(savedInstanceState);
         StatusBarUtil.setStatusBarDarkTheme(this, true);
     }
-    private String musicianAuthStatus;
     @Override
     public void initData() {
         super.initData();
@@ -96,10 +106,6 @@ public class MineScoreActivity extends BaseMVPActivity<ActivityMineScoreBinding,
         return new MineScoreActPresenter();
     }
 
-    private List<String> titles = new ArrayList<String>(Arrays.asList("已上架", "审核中", "审核失败"));
-    private List<String> auditStatusList = new ArrayList<String>(Arrays.asList("PASS", "DOING", "UNPASS"));
-    private List<Fragment> fragments = new ArrayList<>();
-
     private void initTabLayoutAndViewPager() {
         tabLayout.removeAllTabs();
         fragments.clear();

+ 31 - 35
teacher/src/main/java/com/cooleshow/teacher/ui/score/MineScoreFragment.java

@@ -1,6 +1,7 @@
 package com.cooleshow.teacher.ui.score;
 
 import android.os.Bundle;
+import android.os.StrictMode;
 import android.text.TextUtils;
 import android.view.LayoutInflater;
 import android.view.View;
@@ -37,6 +38,10 @@ import java.util.List;
  * 类说明:
  */
 public class MineScoreFragment extends BaseMVPFragment<FragmentMineScoreBinding, MineScorePresenter> implements MineScoreContract.MineScoreView, View.OnClickListener {
+    private String auditStatus = "";
+    private String musicianAuthStatus = "";
+    private MineScoreAdapter mineScoreAdapter;
+    List<MusicSheetListBean.RowsBean> dataList = new ArrayList<>();
 
     @Override
     public void onClick(View view) {
@@ -47,11 +52,11 @@ public class MineScoreFragment extends BaseMVPFragment<FragmentMineScoreBinding,
         }
     }
 
-    public static MineScoreFragment newInstance(String auditStatus,String musicianAuthStatus) {
+    public static MineScoreFragment newInstance(String auditStatus, String musicianAuthStatus) {
         Bundle args = new Bundle();
         MineScoreFragment fragment = new MineScoreFragment();
         args.putString("auditStatus", auditStatus);
-        args.putString("musicianAuthStatus",musicianAuthStatus);
+        args.putString("musicianAuthStatus", musicianAuthStatus);
         fragment.setArguments(args);
         return fragment;
     }
@@ -66,15 +71,10 @@ public class MineScoreFragment extends BaseMVPFragment<FragmentMineScoreBinding,
         return new MineScorePresenter();
     }
 
-    private String auditStatus = "";
-    private String musicianAuthStatus="";
-    private MineScoreAdapter mineScoreAdapter;
-    List<MusicSheetListBean.RowsBean> dataList = new ArrayList<>();
-
     @Override
     protected void initView(View rootView) {
         auditStatus = getArguments().getString("auditStatus");
-        musicianAuthStatus=getArguments().getString("musicianAuthStatus");
+        musicianAuthStatus = getArguments().getString("musicianAuthStatus");
         RecyclerView rvAddress = mViewBinding.recyclerView;
         mViewBinding.llUploadScore.setOnClickListener(this);
         LinearLayoutManager manager = new LinearLayoutManager(getContext());
@@ -82,13 +82,13 @@ public class MineScoreFragment extends BaseMVPFragment<FragmentMineScoreBinding,
         mineScoreAdapter = new MineScoreAdapter(dataList);
         LayoutInflater inflater = LayoutInflater.from(getContext());
         View emptyLayout = inflater.inflate(R.layout.layout_empty_conent, null);
-        ImageView im_empty_logo=emptyLayout.findViewById(R.id.im_empty_logo);
-        im_empty_logo.setBackgroundResource(R.drawable.icon_empty_score);
-        TextView tv_empty_hint=emptyLayout.findViewById(R.id.tv_empty_hint);
-        tv_empty_hint.setText("暂无收藏~");
+        ImageView im_empty_logo = emptyLayout.findViewById(R.id.im_empty_logo);
+        im_empty_logo.setBackgroundResource(R.drawable.icon_empty_content);
+        TextView tv_empty_hint = emptyLayout.findViewById(R.id.tv_empty_hint);
+        tv_empty_hint.setText("暂无曲谱~");
         mineScoreAdapter.setEmptyView(emptyLayout);
         rvAddress.setAdapter(mineScoreAdapter);
-        switch (musicianAuthStatus){
+        switch (musicianAuthStatus) {
             case TeacherInfoConstants.MUSICIAN_STATUS_PASS:
                 mViewBinding.llContent.setVisibility(View.VISIBLE);
                 mViewBinding.clEmpty.setVisibility(View.GONE);
@@ -97,24 +97,26 @@ public class MineScoreFragment extends BaseMVPFragment<FragmentMineScoreBinding,
                 mViewBinding.llContent.setVisibility(View.GONE);
                 mViewBinding.clEmpty.setVisibility(View.VISIBLE);
                 mViewBinding.tvEmptyHint.setText("您已提交认证申请\n清耐心等待审核结果~");
+                mViewBinding.gotoVerifyBtn.setVisibility(View.GONE);
                 break;
             case TeacherInfoConstants.MUSICIAN_STATUS_UNPAALY:
                 mViewBinding.llContent.setVisibility(View.GONE);
                 mViewBinding.clEmpty.setVisibility(View.VISIBLE);
                 mViewBinding.tvEmptyHint.setText("您还未提交认证申请");
+                mViewBinding.gotoVerifyBtn.setVisibility(View.VISIBLE);
                 break;
             case TeacherInfoConstants.MUSICIAN_STATUS_UNPASS:
                 mViewBinding.llContent.setVisibility(View.GONE);
                 mViewBinding.clEmpty.setVisibility(View.VISIBLE);
-                mViewBinding.tvEmptyHint.setText("您已提交认证申请未通过\n清重新提交~");
+                mViewBinding.tvEmptyHint.setText("您已提交认证申请未通过\n请重新提交~");
+                mViewBinding.gotoVerifyBtn.setVisibility(View.VISIBLE);
                 break;
         }
+        mViewBinding.gotoVerifyBtn.setOnClickListener(v -> {
+            WebStartHelper.startMusicPersonCertPage();
+        });
+        mineScoreAdapter.setOnItemClickListener((adapter, view, position) -> {
 
-        mineScoreAdapter.setOnItemClickListener(new OnItemClickListener() {
-            @Override
-            public void onItemClick(@NonNull BaseQuickAdapter<?, ?> adapter, @NonNull View view, int position) {
-
-            }
         });
 
     }
@@ -123,23 +125,17 @@ public class MineScoreFragment extends BaseMVPFragment<FragmentMineScoreBinding,
 
     @Override
     protected void initData() {
-        mViewBinding.refreshLayout.setOnRefreshListener(new OnRefreshListener() {
-            @Override
-            public void onRefresh(@NonNull RefreshLayout refreshLayout) {
-                currentPage = 1;
-                queryScore(true);
-            }
+        mViewBinding.refreshLayout.setOnRefreshListener(refreshLayout -> {
+            currentPage = 1;
+            queryScore(true);
         });
-        mineScoreAdapter.getLoadMoreModule().setOnLoadMoreListener(new OnLoadMoreListener() {
-            @Override
-            public void onLoadMore() {
-                //上拉加载
-                if (hasNext) {
-                    currentPage++;
-                    queryScore(false);
-                } else {
-                    mineScoreAdapter.getLoadMoreModule().loadMoreEnd();
-                }
+        mineScoreAdapter.getLoadMoreModule().setOnLoadMoreListener(() -> {
+            //上拉加载
+            if (hasNext) {
+                currentPage++;
+                queryScore(false);
+            } else {
+                mineScoreAdapter.getLoadMoreModule().loadMoreEnd();
             }
         });
         currentPage = 1;

+ 5 - 1
teacher/src/main/java/com/cooleshow/teacher/ui/splash/SplashActivity.kt

@@ -8,7 +8,9 @@ import com.cooleshow.base.router.RouterPath
 import com.cooleshow.base.ui.activity.BaseActivity
 import com.cooleshow.base.utils.SPUtils
 import com.cooleshow.teacher.databinding.ActivitySplashLayoutBinding
+import com.cooleshow.usercenter.constants.UserConstants
 import com.cooleshow.usercenter.helper.UserHelper
+import com.cooleshow.usercenter.ui.activity.VerifyCodeLoginActivity
 
 
 /**
@@ -59,7 +61,9 @@ class SplashActivity : BaseActivity<ActivitySplashLayoutBinding>() {
     }
 
     private fun jumpLogin() {
-        ARouter.getInstance().build(RouterPath.UserCenter.PATH_VERIFY_LOGIN).navigation()
+        ARouter.getInstance().build(RouterPath.UserCenter.PATH_VERIFY_LOGIN)
+            .withInt(UserConstants.LOGIN_ITEM,VerifyCodeLoginActivity.TEACHER_ITEM)
+            .navigation()
     }
 
 }

+ 1 - 1
teacher/src/main/java/com/cooleshow/teacher/widgets/helper/JsInterfaceAccomPanyUtils.java

@@ -10,7 +10,7 @@ import android.webkit.JavascriptInterface;
 
 import com.alibaba.android.arouter.launcher.ARouter;
 import com.cooleshow.base.router.RouterPath;
-import com.cooleshow.usercenter.UserConstants;
+import com.cooleshow.usercenter.constants.UserConstants;
 import com.cooleshow.usercenter.helper.UserHelper;
 import com.gyf.immersionbar.ImmersionBar;
 

+ 1 - 1
teacher/src/main/java/com/cooleshow/teacher/widgets/helper/JsInterfaceHelper.java

@@ -8,7 +8,7 @@ import android.webkit.JavascriptInterface;
 import com.alibaba.android.arouter.launcher.ARouter;
 import com.cooleshow.base.router.RouterPath;
 import com.cooleshow.base.utils.LogUtils;
-import com.cooleshow.usercenter.UserConstants;
+import com.cooleshow.usercenter.constants.UserConstants;
 import com.cooleshow.usercenter.helper.UserHelper;
 
 import org.json.JSONException;

+ 1 - 1
teacher/src/main/java/com/cooleshow/teacher/widgets/helper/JsInterfaceUtils.java

@@ -13,7 +13,7 @@ import android.webkit.JavascriptInterface;
 import com.alibaba.android.arouter.launcher.ARouter;
 import com.cooleshow.base.common.WebApi;
 import com.cooleshow.base.router.RouterPath;
-import com.cooleshow.usercenter.UserConstants;
+import com.cooleshow.usercenter.constants.UserConstants;
 import com.cooleshow.usercenter.helper.UserHelper;
 import com.gyf.immersionbar.ImmersionBar;
 

+ 1 - 0
teacher/src/main/res/layout/activity_modify_phonenum.xml

@@ -28,6 +28,7 @@
             android:inputType="phone"
             android:paddingLeft="14dp"
             android:paddingRight="14dp"
+            android:maxLength="11"
             android:textColor="@color/color_1a1a1a"
             android:textColorHint="@color/color_999999"
             android:textSize="@dimen/sp_16"

+ 29 - 12
teacher/src/main/res/layout/fragment_mine_score.xml

@@ -1,8 +1,9 @@
 <?xml version="1.0" encoding="utf-8"?>
 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
     android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    xmlns:app="http://schemas.android.com/apk/res-auto">
+    android:layout_height="match_parent">
 
     <LinearLayout
         android:id="@+id/ll_content"
@@ -62,26 +63,24 @@
 
     <androidx.constraintlayout.widget.ConstraintLayout
         android:id="@+id/cl_empty"
-        android:visibility="gone"
         android:layout_width="match_parent"
-        android:layout_height="wrap_content">
+        android:layout_height="wrap_content"
+        android:visibility="gone"
+        tools:visibility="visible">
 
 
         <ImageView
             android:id="@+id/im_empty_logo"
-            app:layout_constraintLeft_toLeftOf="parent"
-            app:layout_constraintRight_toRightOf="parent"
-            app:layout_constraintTop_toTopOf="parent"
             android:layout_width="@dimen/dp_260"
             android:layout_height="@dimen/dp_230"
             android:layout_marginTop="8dp"
-            android:background="@drawable/icon_empty_content" />
+            android:background="@drawable/icon_empty_content"
+            app:layout_constraintLeft_toLeftOf="parent"
+            app:layout_constraintRight_toRightOf="parent"
+            app:layout_constraintTop_toTopOf="parent" />
 
         <TextView
             android:id="@+id/tv_empty_hint"
-            app:layout_constraintLeft_toLeftOf="parent"
-            app:layout_constraintRight_toRightOf="parent"
-            app:layout_constraintTop_toBottomOf="@+id/im_empty_logo"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:layout_marginTop="14dp"
@@ -89,7 +88,25 @@
             android:lineSpacingExtra="4dp"
             android:text="暂无内容~"
             android:textColor="@color/color_999999"
-            android:textSize="@dimen/sp_16" />
+            android:textSize="@dimen/sp_16"
+            app:layout_constraintLeft_toLeftOf="parent"
+            app:layout_constraintRight_toRightOf="parent"
+            app:layout_constraintTop_toBottomOf="@+id/im_empty_logo" />
 
+
+        <TextView
+            android:id="@+id/goto_verify_btn"
+            android:layout_width="@dimen/dp_130"
+            android:layout_height="@dimen/dp_42"
+            android:layout_marginTop="@dimen/dp_20"
+            android:background="@drawable/sure_btn_bg"
+            android:gravity="center"
+            android:text="去认证"
+            android:textColor="@color/white"
+            android:textSize="@dimen/sp_15"
+            android:visibility="gone"
+            app:layout_constraintLeft_toLeftOf="parent"
+            app:layout_constraintRight_toRightOf="parent"
+            app:layout_constraintTop_toBottomOf="@+id/tv_empty_hint" />
     </androidx.constraintlayout.widget.ConstraintLayout>
 </RelativeLayout>

+ 0 - 12
usercenter/src/main/java/com/cooleshow/usercenter/UserConstants.java

@@ -1,12 +0,0 @@
-package com.cooleshow.usercenter;
-
-/**
- * Author by pq, Date on 2022/4/24.
- */
-public class UserConstants {
-    public static final String PHONE_NUM_KEY="phone_num_key";
-    public static final String TEMP_TOKEN="temp_token";
-    public static final String LOGIN_STATUS="login_status";
-    public static final String LOGIN_STATUS_SUCCESS="login_success";
-
-}

+ 5 - 1
usercenter/src/main/java/com/cooleshow/usercenter/constants/UserConstants.java

@@ -8,5 +8,9 @@ public class UserConstants {
     public static final String SEND_VERIFY_CODE_TYPE_LOGIN ="LOGIN";//发送验证码type-登录
     public static final String SEND_VERIFY_CODE_TYPE_REGISTER ="REGISTER";//发送验证码type-注册
     public static final String SEND_VERIFY_CODE_TYPE_BANK ="BANK";//发送验证码type-绑定银行卡
-
+    public static final String LOGIN_ITEM ="login_item";//发送验证码type-绑定银行卡
+    public static final String PHONE_NUM_KEY="phone_num_key";
+    public static final String TEMP_TOKEN="temp_token";
+    public static final String LOGIN_STATUS="login_status";
+    public static final String LOGIN_STATUS_SUCCESS="login_success";
 }

+ 1 - 1
usercenter/src/main/java/com/cooleshow/usercenter/ui/activity/BindPasswordActivity.java

@@ -10,7 +10,7 @@ import com.cooleshow.base.ui.activity.BaseMVPActivity;
 import com.cooleshow.base.utils.ToastUtils;
 import com.cooleshow.base.utils.helper.QMUIStatusBarHelper;
 import com.cooleshow.usercenter.R;
-import com.cooleshow.usercenter.UserConstants;
+import com.cooleshow.usercenter.constants.UserConstants;
 import com.cooleshow.usercenter.databinding.ActivityBindPwdLayoutBinding;
 import com.cooleshow.usercenter.helper.PhoneCheckHelper;
 import com.cooleshow.usercenter.presenter.BindPasswordPresenter;

+ 1 - 1
usercenter/src/main/java/com/cooleshow/usercenter/ui/activity/LoginActivity.kt

@@ -18,8 +18,8 @@ import com.cooleshow.base.utils.SpannableStringUtils
 import com.cooleshow.base.utils.ToastUtils
 import com.cooleshow.base.utils.helper.QMUIStatusBarHelper
 import com.cooleshow.usercenter.R
-import com.cooleshow.usercenter.UserConstants
 import com.cooleshow.usercenter.bean.UserLoginInfo
+import com.cooleshow.usercenter.constants.UserConstants
 import com.cooleshow.usercenter.databinding.ActivityLoginBinding
 import com.cooleshow.usercenter.helper.UserHelper
 import com.cooleshow.usercenter.presenter.LoginPresenter

+ 1 - 1
usercenter/src/main/java/com/cooleshow/usercenter/ui/activity/VerifyCodeInputActivity.java

@@ -18,8 +18,8 @@ import com.cooleshow.base.utils.Utils;
 import com.cooleshow.base.utils.helper.QMUIStatusBarHelper;
 import com.cooleshow.base.widgets.VerifyEditText;
 import com.cooleshow.usercenter.R;
-import com.cooleshow.usercenter.UserConstants;
 import com.cooleshow.usercenter.bean.UserLoginInfo;
+import com.cooleshow.usercenter.constants.UserConstants;
 import com.cooleshow.usercenter.databinding.ActivityInputCodeLayoutBinding;
 import com.cooleshow.usercenter.helper.UserHelper;
 import com.cooleshow.usercenter.presenter.VerifyLoginPresenter;

+ 9 - 2
usercenter/src/main/java/com/cooleshow/usercenter/ui/activity/VerifyCodeLoginActivity.java

@@ -19,7 +19,7 @@ import com.cooleshow.base.utils.SpannableStringUtils;
 import com.cooleshow.base.utils.ToastUtils;
 import com.cooleshow.base.utils.helper.QMUIStatusBarHelper;
 import com.cooleshow.usercenter.R;
-import com.cooleshow.usercenter.UserConstants;
+import com.cooleshow.usercenter.constants.UserConstants;
 import com.cooleshow.usercenter.databinding.ActivityVerifyCodeLoginBinding;
 import com.cooleshow.usercenter.helper.PhoneCheckHelper;
 import com.cooleshow.usercenter.helper.UserHelper;
@@ -34,7 +34,8 @@ import androidx.annotation.Nullable;
 @Route(path = RouterPath.UserCenter.PATH_VERIFY_LOGIN)
 public class VerifyCodeLoginActivity extends BaseMVPActivity<ActivityVerifyCodeLoginBinding, VerifyLoginPresenter> implements View.OnClickListener {
     public static final int LOGIN_STATUS_REQUEST_CODE = 10000002;
-
+    public static final int TEACHER_ITEM = 1;
+    public static final int STUDENT_ITEM = 2;
     @Override
     protected void onCreate(@Nullable Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
@@ -49,6 +50,12 @@ public class VerifyCodeLoginActivity extends BaseMVPActivity<ActivityVerifyCodeL
 
     @Override
     protected void initView() {
+        int loginFromType = getIntent().getIntExtra(UserConstants.LOGIN_ITEM, 0);
+        if(loginFromType == TEACHER_ITEM){
+            viewBinding.tvHeaderTitle.setText("您好, \n欢迎使用酷乐秀学院");
+        } else if(loginFromType == STUDENT_ITEM){
+            viewBinding.tvHeaderTitle.setText("您好, \n欢迎使用酷乐秀");
+        }
         viewBinding.tvSendVerifyCode.setOnClickListener(this);
         viewBinding.tvLoginByCode.setOnClickListener(this);
         String phoneNum = getIntent().getStringExtra(UserConstants.PHONE_NUM_KEY);