Browse Source

添加琴房课作业详情页面

Pq 3 years ago
parent
commit
39e5e02319

+ 1 - 0
BaseLibrary/src/main/java/com/cooleshow/base/router/RouterPath.kt

@@ -57,6 +57,7 @@ object RouterPath {
             const val TEACHER_MINE_COURSE = "/teacher/ui/course/MineCourseActivity"
             const val TEACHER_MINE_COURSE = "/teacher/ui/course/MineCourseActivity"
             const val SPARRING_COURSE_DETAIL = "/teacher/ui/course/SparringCourseDetailActivity"
             const val SPARRING_COURSE_DETAIL = "/teacher/ui/course/SparringCourseDetailActivity"
             const val PIANO_ROOM_COURSE_DETAIL = "/ui/course/PianoRoomCourseDetailActivity"
             const val PIANO_ROOM_COURSE_DETAIL = "/ui/course/PianoRoomCourseDetailActivity"
+            const val PIANO_ROOM_COURSE_HOMEWORK = "/ui/course/PianoRoomCourseHomeWorkActivity"
             const val TEACHER_MINE_LIVE_COURSE = "/teacher/ui/course/MineLiveCourseActivity"
             const val TEACHER_MINE_LIVE_COURSE = "/teacher/ui/course/MineLiveCourseActivity"
             const val TEACHER_MINE_CREATE_LIVE_COURSE_INFO = "/teacher/ui/course/CreateLiveCourseInfoActivity"
             const val TEACHER_MINE_CREATE_LIVE_COURSE_INFO = "/teacher/ui/course/CreateLiveCourseInfoActivity"
             const val TEACHER_MINE_CREATE_LIVE_COURSE_ARRANGEMENT = "/teacher/ui/course/CreateLiveCourseArrangementActivity"
             const val TEACHER_MINE_CREATE_LIVE_COURSE_ARRANGEMENT = "/teacher/ui/course/CreateLiveCourseArrangementActivity"

+ 18 - 10
teacher/src/main/AndroidManifest.xml

@@ -2,6 +2,7 @@
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:tools="http://schemas.android.com/tools"
     xmlns:tools="http://schemas.android.com/tools"
     package="com.cooleshow.teacher">
     package="com.cooleshow.teacher">
+
     <uses-permission android:name="android.permission.INTERNET" />
     <uses-permission android:name="android.permission.INTERNET" />
     <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
     <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
     <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
     <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
@@ -19,7 +20,6 @@
     </queries>
     </queries>
 
 
 
 
-
     <application
     <application
         android:name=".App"
         android:name=".App"
         android:allowBackup="true"
         android:allowBackup="true"
@@ -32,9 +32,9 @@
 
 
         <activity
         <activity
             android:name="com.cooleshow.teacher.ui.splash.SplashActivity"
             android:name="com.cooleshow.teacher.ui.splash.SplashActivity"
+            android:exported="true"
             android:screenOrientation="portrait"
             android:screenOrientation="portrait"
-            android:theme="@style/SplashTheme"
-            android:exported="true">
+            android:theme="@style/SplashTheme">
             <intent-filter>
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
                 <action android:name="android.intent.action.MAIN" />
 
 
@@ -90,6 +90,11 @@
             android:name=".ui.course.PianoRoomCourseDetailActivity"
             android:name=".ui.course.PianoRoomCourseDetailActivity"
             android:configChanges="orientation|screenSize|keyboardHidden"
             android:configChanges="orientation|screenSize|keyboardHidden"
             android:screenOrientation="portrait" />
             android:screenOrientation="portrait" />
+
+        <activity
+            android:name=".ui.course.PianoRoomCourseHomeWorkActivity"
+            android:configChanges="orientation|screenSize|keyboardHidden"
+            android:screenOrientation="portrait" />
         <activity
         <activity
             android:name=".ui.comment.ReceivedCommentActivity"
             android:name=".ui.comment.ReceivedCommentActivity"
             android:configChanges="orientation|screenSize|keyboardHidden"
             android:configChanges="orientation|screenSize|keyboardHidden"
@@ -159,7 +164,7 @@
             <meta-data
             <meta-data
                 android:name="android.support.FILE_PROVIDER_PATHS"
                 android:name="android.support.FILE_PROVIDER_PATHS"
                 android:resource="@xml/rc_file_path"
                 android:resource="@xml/rc_file_path"
-                tools:replace="android:resource"/>
+                tools:replace="android:resource" />
         </provider>
         </provider>
 
 
         <activity
         <activity
@@ -278,8 +283,8 @@
         <activity
         <activity
             android:name=".ui.live.LiveRoomActivity"
             android:name=".ui.live.LiveRoomActivity"
             android:configChanges="orientation|screenSize|keyboardHidden"
             android:configChanges="orientation|screenSize|keyboardHidden"
-            android:launchMode="singleTask"
             android:exported="false"
             android:exported="false"
+            android:launchMode="singleTask"
             android:screenOrientation="portrait"
             android:screenOrientation="portrait"
             android:windowSoftInputMode="adjustPan">
             android:windowSoftInputMode="adjustPan">
             <intent-filter>
             <intent-filter>
@@ -293,7 +298,7 @@
             android:name=".wxapi.WXEntryActivity"
             android:name=".wxapi.WXEntryActivity"
             android:configChanges="keyboardHidden|orientation|screenSize"
             android:configChanges="keyboardHidden|orientation|screenSize"
             android:exported="true"
             android:exported="true"
-            android:theme="@android:style/Theme.Translucent.NoTitleBar"/>
+            android:theme="@android:style/Theme.Translucent.NoTitleBar" />
 
 
 
 
         <activity
         <activity
@@ -301,10 +306,12 @@
             android:launchMode="singleTask"
             android:launchMode="singleTask"
             android:noHistory="true">
             android:noHistory="true">
             <intent-filter>
             <intent-filter>
-                <action android:name="android.intent.action.VIEW"/>
-                <category android:name="android.intent.category.DEFAULT"/>
-                <category android:name="android.intent.category.BROWSABLE"/>
-                <data android:scheme="tencent100424468"/>
+                <action android:name="android.intent.action.VIEW" />
+
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.BROWSABLE" />
+
+                <data android:scheme="tencent100424468" />
             </intent-filter>
             </intent-filter>
         </activity>
         </activity>
         <activity
         <activity
@@ -312,6 +319,7 @@
             android:configChanges="orientation|keyboardHidden|screenSize"
             android:configChanges="orientation|keyboardHidden|screenSize"
             android:theme="@android:style/Theme.Translucent.NoTitleBar"
             android:theme="@android:style/Theme.Translucent.NoTitleBar"
             tools:replace="android:configChanges" />
             tools:replace="android:configChanges" />
+
         <meta-data
         <meta-data
             android:name="qqappid"
             android:name="qqappid"
             android:value="1110018403" />
             android:value="1110018403" />

+ 2 - 2
teacher/src/main/java/com/cooleshow/teacher/adapter/PianoRoomCourseStudentListAdapter.java

@@ -16,7 +16,7 @@ import androidx.annotation.NonNull;
  * Author by pq, Date on 2022/6/24.
  * Author by pq, Date on 2022/6/24.
  */
  */
 public class PianoRoomCourseStudentListAdapter extends BaseQuickAdapter<PianoRoomCourseInfoBean.StudentHomeworkListBean.RecordsBean, BaseViewHolder> {
 public class PianoRoomCourseStudentListAdapter extends BaseQuickAdapter<PianoRoomCourseInfoBean.StudentHomeworkListBean.RecordsBean, BaseViewHolder> {
-    public static final String HOMEWORK_STATUS_IS_OK = "YES";//已提交作业
+    public static final int HOMEWORK_STATUS_IS_OK = 1;//已提交作业
 
 
     public PianoRoomCourseStudentListAdapter(int layoutResId) {
     public PianoRoomCourseStudentListAdapter(int layoutResId) {
         super(layoutResId);
         super(layoutResId);
@@ -32,7 +32,7 @@ public class PianoRoomCourseStudentListAdapter extends BaseQuickAdapter<PianoRoo
         //subjectName
         //subjectName
         holder.setText(R.id.tv_course_name, data.subjectName);
         holder.setText(R.id.tv_course_name, data.subjectName);
         TextView tv_submit_tip = holder.getView(R.id.tv_submit_tip);
         TextView tv_submit_tip = holder.getView(R.id.tv_submit_tip);
-        if (TextUtils.equals(HOMEWORK_STATUS_IS_OK, data.homeworkStatus)) {
+        if (data.submitHomework == HOMEWORK_STATUS_IS_OK) {
             tv_submit_tip.setText("已提交");
             tv_submit_tip.setText("已提交");
             tv_submit_tip.setTextColor(getContext().getResources().getColor(com.cooleshow.base.R.color.color_666666));
             tv_submit_tip.setTextColor(getContext().getResources().getColor(com.cooleshow.base.R.color.color_666666));
         } else {
         } else {

+ 29 - 0
teacher/src/main/java/com/cooleshow/teacher/api/APIService.java

@@ -19,6 +19,7 @@ import com.cooleshow.teacher.bean.MusicSheetListBean;
 import com.cooleshow.teacher.bean.MusicSheetShareBean;
 import com.cooleshow.teacher.bean.MusicSheetShareBean;
 import com.cooleshow.teacher.bean.PayTestBean;
 import com.cooleshow.teacher.bean.PayTestBean;
 import com.cooleshow.teacher.bean.PianoRoomCourseCommentBean;
 import com.cooleshow.teacher.bean.PianoRoomCourseCommentBean;
+import com.cooleshow.teacher.bean.PianoRoomCourseHomeworkBean;
 import com.cooleshow.teacher.bean.PianoRoomCourseInfoBean;
 import com.cooleshow.teacher.bean.PianoRoomCourseInfoBean;
 import com.cooleshow.teacher.bean.ReceivedCommentListBean;
 import com.cooleshow.teacher.bean.ReceivedCommentListBean;
 import com.cooleshow.teacher.bean.ResponseBankCardBean;
 import com.cooleshow.teacher.bean.ResponseBankCardBean;
@@ -123,6 +124,15 @@ public interface APIService {
 
 
 
 
     /**
     /**
+     * 查询琴房课作业信息
+     *
+     * @param
+     * @return
+     */
+    @GET(TEACHER_GROUP + "homework/detail/{courseId}/{studentId}")
+    Observable<BaseResponse<PianoRoomCourseHomeworkBean>> getPianoRoomCourseHomework(@Path("courseId") String courseId, @Path("studentId") String studentId);
+
+    /**
      * 查询课程评价信息
      * 查询课程评价信息
      *
      *
      * @param
      * @param
@@ -142,6 +152,25 @@ public interface APIService {
     Observable<BaseResponse<PianoRoomCourseCommentBean>> getPianoRoomCourseComment(@Body RequestBody body);
     Observable<BaseResponse<PianoRoomCourseCommentBean>> getPianoRoomCourseComment(@Body RequestBody body);
 
 
     /**
     /**
+     * 提交琴房课老师布置作业
+     *
+     * @param
+     * @return
+     */
+    @POST(TEACHER_GROUP + "homework/decorate")
+    Observable<BaseResponse<Object>> submitPianoRoomCourseHomework(@Body RequestBody body);
+
+
+    /**
+     * 提交琴房课老师作业点评
+     *
+     * @param
+     * @return
+     */
+    @POST(TEACHER_GROUP + "homework/review")
+    Observable<BaseResponse<Object>> submitPianoRoomCourseHomeworkComment(@Body RequestBody body);
+
+    /**
      * 提交陪练课老师评价
      * 提交陪练课老师评价
      *
      *
      * @param
      * @param

+ 64 - 0
teacher/src/main/java/com/cooleshow/teacher/bean/PianoRoomCourseHomeworkBean.java

@@ -0,0 +1,64 @@
+package com.cooleshow.teacher.bean;
+
+/**
+ * Author by pq, Date on 2022/6/24.
+ */
+public class PianoRoomCourseHomeworkBean {
+
+    /**
+     * attachments :
+     * classDate :
+     * content :
+     * courseGroupId : 0
+     * courseScheduleId : 0
+     * courseStatus :
+     * courseType :
+     * decorateHomework :
+     * decorateTime :
+     * endTime :
+     * homeworkExpire : 0
+     * id : 0
+     * reviewHomework :
+     * startTime :
+     * studentAttachments :
+     * studentAvatar :
+     * studentHomeworkId : 0
+     * studentId : 0
+     * studentName :
+     * subjectName :
+     * submitHomework :
+     * submitTime :
+     * teacherAvatar :
+     * teacherId : 0
+     * teacherName :
+     * teacherReplied :
+     * title :
+     */
+    public String attachments;
+    public String classDate;
+    public String content;
+    public int courseGroupId;
+    public int courseScheduleId;
+    public String courseStatus;
+    public String courseType;
+    public int decorateHomework;
+    public String decorateTime;
+    public String endTime;
+    public int homeworkExpire;//作业过期 1:已过期 0:未过期
+    public int id;
+    public String reviewHomework;
+    public String startTime;
+    public String studentAttachments;
+    public String studentAvatar;
+    public int studentHomeworkId;
+    public int studentId;
+    public String studentName;
+    public String subjectName;
+    public int submitHomework;
+    public String submitTime;
+    public String teacherAvatar;
+    public int teacherId;
+    public String teacherName;
+    public String teacherReplied;
+    public String title;
+}

+ 2 - 2
teacher/src/main/java/com/cooleshow/teacher/bean/PianoRoomCourseInfoBean.java

@@ -78,10 +78,10 @@ public class PianoRoomCourseInfoBean {
 
 
             public String homeworkStatus;
             public String homeworkStatus;
             public String studentAvatar;
             public String studentAvatar;
-            public int studentId;
+            public String studentId;
             public String studentName;
             public String studentName;
             public String subjectName;
             public String subjectName;
-            public String submitHomework;
+            public int submitHomework;
         }
         }
     }
     }
 }
 }

+ 9 - 4
teacher/src/main/java/com/cooleshow/teacher/contract/PianoRoomCourseHomeworkContract.java

@@ -1,21 +1,26 @@
 package com.cooleshow.teacher.contract;
 package com.cooleshow.teacher.contract;
 
 
 import com.cooleshow.base.presenter.view.BaseView;
 import com.cooleshow.base.presenter.view.BaseView;
+import com.cooleshow.teacher.bean.PianoRoomCourseHomeworkBean;
 
 
 /**
 /**
  * Author by pq, Date on 2022/4/20.
  * Author by pq, Date on 2022/4/20.
  */
  */
 public interface PianoRoomCourseHomeworkContract {
 public interface PianoRoomCourseHomeworkContract {
 
 
-    interface PianoRoomCourseDetailView extends BaseView {
-        void getCourseHomeworkInfoSuccess();
+    interface PianoRoomCourseHomeworkView extends BaseView {
+        void getCourseHomeworkInfoSuccess(PianoRoomCourseHomeworkBean homeworkBean);
 
 
-        void submitSparringCourseHomeworkSuccess();
+        void submitCourseHomeworkSuccess();
+
+        void submitCourseHomeworkCommentSuccess();
     }
     }
 
 
     interface Presenter {
     interface Presenter {
         void getCourseHomeworkInfo(String courseId,String studentId);
         void getCourseHomeworkInfo(String courseId,String studentId);
 
 
-        void submitSparringCourseHomework(String commentContent, String courseScheduleId);
+        void submitCourseHomework(String homeworkContent, String courseScheduleId);
+
+        void submitCourseHomeworkComment(String commentContent, String courseScheduleId,String studentId);
     }
     }
 }
 }

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

@@ -33,6 +33,6 @@ public interface SparringCourseDetailContract {
 
 
         void submitSparringCourseHomework(String commentContent, String courseScheduleId);
         void submitSparringCourseHomework(String commentContent, String courseScheduleId);
 
 
-        void submitSparringCourseHomeworkComment(String commentContent, String courseScheduleId);
+        void submitSparringCourseHomeworkComment(String commentContent, String courseScheduleId,String studentId);
     }
     }
 }
 }

+ 2 - 1
teacher/src/main/java/com/cooleshow/teacher/presenter/course/SparringCourseDetailPresenter.java

@@ -140,7 +140,7 @@ public class SparringCourseDetailPresenter extends BasePresenter<SparringCourseD
     }
     }
 
 
     @Override
     @Override
-    public void submitSparringCourseHomeworkComment(String commentContent, String courseScheduleId) {
+    public void submitSparringCourseHomeworkComment(String commentContent, String courseScheduleId,String studentId ) {
         if (getView() != null) {
         if (getView() != null) {
             getView().showLoading();
             getView().showLoading();
         }
         }
@@ -148,6 +148,7 @@ public class SparringCourseDetailPresenter extends BasePresenter<SparringCourseD
         try {
         try {
             jsonObject.putOpt("courseScheduleId", courseScheduleId);
             jsonObject.putOpt("courseScheduleId", courseScheduleId);
             jsonObject.putOpt("review", commentContent);
             jsonObject.putOpt("review", commentContent);
+            jsonObject.putOpt("studentId", studentId);
         } catch (JSONException e) {
         } catch (JSONException e) {
             e.printStackTrace();
             e.printStackTrace();
         }
         }

+ 98 - 3
teacher/src/main/java/com/cooleshow/teacher/presenter/homework/PianoRoomCourseHomeWorkPresenter.java

@@ -1,20 +1,115 @@
 package com.cooleshow.teacher.presenter.homework;
 package com.cooleshow.teacher.presenter.homework;
 
 
 import com.cooleshow.base.presenter.BasePresenter;
 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.PianoRoomCourseHomeworkBean;
+import com.cooleshow.teacher.bean.PianoRoomCourseInfoBean;
+import com.cooleshow.teacher.bean.SparringCourseHomeworkBean;
 import com.cooleshow.teacher.contract.PianoRoomCourseHomeworkContract;
 import com.cooleshow.teacher.contract.PianoRoomCourseHomeworkContract;
 
 
+import org.json.JSONException;
+import org.json.JSONObject;
+
 /**
 /**
  * Author by pq, Date on 2022/6/24.
  * Author by pq, Date on 2022/6/24.
  */
  */
-public class PianoRoomCourseHomeWorkPresenter extends BasePresenter<PianoRoomCourseHomeworkContract.PianoRoomCourseDetailView> implements PianoRoomCourseHomeworkContract.Presenter{
+public class PianoRoomCourseHomeWorkPresenter extends BasePresenter<PianoRoomCourseHomeworkContract.PianoRoomCourseHomeworkView> implements PianoRoomCourseHomeworkContract.Presenter {
 
 
+    /**
+     * 获取琴房课作业详情信息
+     *
+     * @param courseId
+     * @param studentId
+     */
     @Override
     @Override
-    public void getCourseHomeworkInfo(String courseId,String studentId) {
+    public void getCourseHomeworkInfo(String courseId, String studentId) {
+        if (getView() != null) {
+            getView().showLoading();
+        }
+        addSubscribe(create(APIService.class).getPianoRoomCourseHomework(courseId, studentId), new BaseObserver<PianoRoomCourseHomeworkBean>(getView()) {
+            @Override
+            protected void onSuccess(PianoRoomCourseHomeworkBean data) {
+                if (getView() != null) {
+                    getView().getCourseHomeworkInfoSuccess(data);
+                }
+            }
 
 
+            @Override
+            public void onError(Throwable e) {
+                super.onError(e);
+            }
+        });
     }
     }
 
 
+    /**
+     * 提交老师布置的作业
+     *
+     * @param commentContent
+     * @param courseScheduleId
+     */
     @Override
     @Override
-    public void submitSparringCourseHomework(String commentContent, String courseScheduleId) {
+    public void submitCourseHomework(String commentContent, String courseScheduleId) {
+        if (getView() != null) {
+            getView().showLoading();
+        }
+        JSONObject jsonObject = new JSONObject();
+        try {
+            jsonObject.putOpt("courseScheduleId", courseScheduleId);
+            jsonObject.putOpt("content", commentContent);
+            jsonObject.putOpt("attachments", commentContent);
+        } catch (JSONException e) {
+            e.printStackTrace();
+        }
+
+        addSubscribe(create(APIService.class).submitPianoRoomCourseHomework(RequestBodyUtil.convertToRequestBodyJson(jsonObject.toString())), new BaseObserver<Object>(getView()) {
+            @Override
+            protected void onSuccess(Object o) {
+                if (getView() != null) {
+                    getView().submitCourseHomeworkSuccess();
+                }
+            }
+
+            @Override
+            public void onError(Throwable e) {
+                super.onError(e);
+            }
+        });
+    }
+
+    /**
+     * 提交作业评价
+     *
+     * @param commentContent
+     * @param courseScheduleId
+     */
+    @Override
+    public void submitCourseHomeworkComment(String commentContent, String courseScheduleId,String studentId) {
+        if (getView() != null) {
+            getView().showLoading();
+        }
+        JSONObject jsonObject = new JSONObject();
+        try {
+            jsonObject.putOpt("courseScheduleId", courseScheduleId);
+            jsonObject.putOpt("review", commentContent);
+            jsonObject.putOpt("studentId", studentId);
+        } catch (JSONException e) {
+            e.printStackTrace();
+        }
+
+        addSubscribe(create(APIService.class).submitPianoRoomCourseHomeworkComment(RequestBodyUtil.convertToRequestBodyJson(jsonObject.toString())), new BaseObserver<Object>(getView()) {
+            @Override
+            protected void onSuccess(Object o) {
+                if (getView() != null) {
+                    getView().submitCourseHomeworkCommentSuccess();
+                }
+            }
 
 
+            @Override
+            public void onError(Throwable e) {
+                super.onError(e);
+            }
+        });
     }
     }
 }
 }

+ 5 - 1
teacher/src/main/java/com/cooleshow/teacher/ui/course/PianoRoomCourseDetailActivity.java

@@ -6,6 +6,7 @@ import android.text.TextUtils;
 import android.view.View;
 import android.view.View;
 
 
 import com.alibaba.android.arouter.facade.annotation.Route;
 import com.alibaba.android.arouter.facade.annotation.Route;
+import com.alibaba.android.arouter.launcher.ARouter;
 import com.chad.library.adapter.base.BaseQuickAdapter;
 import com.chad.library.adapter.base.BaseQuickAdapter;
 import com.chad.library.adapter.base.listener.OnItemClickListener;
 import com.chad.library.adapter.base.listener.OnItemClickListener;
 import com.cooleshow.base.router.RouterPath;
 import com.cooleshow.base.router.RouterPath;
@@ -77,7 +78,10 @@ public class PianoRoomCourseDetailActivity extends BaseMVPActivity<ActivityPiano
             public void onItemClick(@NonNull BaseQuickAdapter<?, ?> adapter, @NonNull View view, int position) {
             public void onItemClick(@NonNull BaseQuickAdapter<?, ?> adapter, @NonNull View view, int position) {
                 if (position < mAdapter.getData().size()) {
                 if (position < mAdapter.getData().size()) {
                     PianoRoomCourseInfoBean.StudentHomeworkListBean.RecordsBean recordsBean = mAdapter.getData().get(position);
                     PianoRoomCourseInfoBean.StudentHomeworkListBean.RecordsBean recordsBean = mAdapter.getData().get(position);
-
+                    ARouter.getInstance().build(RouterPath.CourseCenter.PIANO_ROOM_COURSE_HOMEWORK)
+                            .withString("studentId", recordsBean.studentId)
+                            .withString("course_id", mCourseId)
+                            .navigation();
                 }
                 }
             }
             }
         });
         });

+ 159 - 7
teacher/src/main/java/com/cooleshow/teacher/ui/course/PianoRoomCourseHomeWorkActivity.java

@@ -4,16 +4,26 @@ import android.graphics.Color;
 import android.os.Bundle;
 import android.os.Bundle;
 import android.text.TextUtils;
 import android.text.TextUtils;
 import android.view.View;
 import android.view.View;
+import android.widget.LinearLayout;
 
 
 import com.alibaba.android.arouter.facade.annotation.Route;
 import com.alibaba.android.arouter.facade.annotation.Route;
 import com.cooleshow.base.router.RouterPath;
 import com.cooleshow.base.router.RouterPath;
 import com.cooleshow.base.ui.activity.BaseMVPActivity;
 import com.cooleshow.base.ui.activity.BaseMVPActivity;
+import com.cooleshow.base.utils.GlideUtils;
+import com.cooleshow.base.utils.SizeUtils;
 import com.cooleshow.base.utils.helper.QMUIStatusBarHelper;
 import com.cooleshow.base.utils.helper.QMUIStatusBarHelper;
 import com.cooleshow.teacher.R;
 import com.cooleshow.teacher.R;
+import com.cooleshow.teacher.bean.PianoRoomCourseHomeworkBean;
 import com.cooleshow.teacher.bean.PianoRoomCourseInfoBean;
 import com.cooleshow.teacher.bean.PianoRoomCourseInfoBean;
+import com.cooleshow.teacher.bean.SparringCourseHomeworkBean;
+import com.cooleshow.teacher.constants.CourseConstants;
 import com.cooleshow.teacher.contract.PianoRoomCourseDetailContract;
 import com.cooleshow.teacher.contract.PianoRoomCourseDetailContract;
+import com.cooleshow.teacher.contract.PianoRoomCourseHomeworkContract;
 import com.cooleshow.teacher.databinding.ActivityPianoCourseHomeworkLayoutBinding;
 import com.cooleshow.teacher.databinding.ActivityPianoCourseHomeworkLayoutBinding;
 import com.cooleshow.teacher.presenter.homework.PianoRoomCourseHomeWorkPresenter;
 import com.cooleshow.teacher.presenter.homework.PianoRoomCourseHomeWorkPresenter;
+import com.cooleshow.teacher.widgets.CourseSetCommentDialog;
+import com.cooleshow.teacher.widgets.HomeworkVideoThumbnailView;
+import com.cooleshow.usercenter.helper.UserHelper;
 
 
 import androidx.annotation.Nullable;
 import androidx.annotation.Nullable;
 import androidx.recyclerview.widget.LinearLayoutManager;
 import androidx.recyclerview.widget.LinearLayoutManager;
@@ -22,13 +32,14 @@ import androidx.recyclerview.widget.LinearLayoutManager;
  * Author by pq, Date on 2022/6/24.
  * Author by pq, Date on 2022/6/24.
  * 琴房课作业详情页面
  * 琴房课作业详情页面
  */
  */
-@Route(path = RouterPath.CourseCenter.PIANO_ROOM_COURSE_DETAIL)
-public class PianoRoomCourseHomeWorkActivity extends BaseMVPActivity<ActivityPianoCourseHomeworkLayoutBinding, PianoRoomCourseHomeWorkPresenter> implements PianoRoomCourseDetailContract.PianoRoomCourseDetailView, View.OnClickListener {
+@Route(path = RouterPath.CourseCenter.PIANO_ROOM_COURSE_HOMEWORK)
+public class PianoRoomCourseHomeWorkActivity extends BaseMVPActivity<ActivityPianoCourseHomeworkLayoutBinding, PianoRoomCourseHomeWorkPresenter> implements PianoRoomCourseHomeworkContract.PianoRoomCourseHomeworkView, View.OnClickListener {
     public static final String COURSE_ID = "course_id";
     public static final String COURSE_ID = "course_id";
     public static final String STUDENT_ID = "studentId";
     public static final String STUDENT_ID = "studentId";
 
 
     private String mCourseId;
     private String mCourseId;
     private String studentId;
     private String studentId;
+    private CourseSetCommentDialog mSetCommentDialog;
 
 
     @Override
     @Override
     protected void onCreate(@Nullable Bundle savedInstanceState) {
     protected void onCreate(@Nullable Bundle savedInstanceState) {
@@ -83,15 +94,128 @@ public class PianoRoomCourseHomeWorkActivity extends BaseMVPActivity<ActivityPia
     }
     }
 
 
     @Override
     @Override
-    public void getCourseHomeworkInfoSuccess(PianoRoomCourseInfoBean bean) {
+    public void getCourseHomeworkInfoSuccess(PianoRoomCourseHomeworkBean infoBean) {
+        if (!checkActivityExist()) {
+            return;
+        }
+        if (infoBean == null) {
+            return;
+        }
+        //学生头像
+        GlideUtils.INSTANCE.loadImage(this, infoBean.studentAvatar, viewBinding.ivAvatar, R.drawable.icon_teacher_default_head);
+        //title
+        viewBinding.tvTitle.setText(UserHelper.getStudentName(infoBean.studentName, studentId));
+        //subjectName
+        viewBinding.tvCourseName.setText(infoBean.subjectName);
+        //课后作业
+        handleHomeworkData(infoBean);
+        //作业视频
+        handleHomeworkStudentSubmit(infoBean);
+        //作业点评
+        handleHomeworkComment(infoBean);
+    }
+
+    /**
+     * 课后作业
+     */
+    private void handleHomeworkData(PianoRoomCourseHomeworkBean bean) {
+        if (bean == null) {
+            return;
+        }
+        if (bean.decorateHomework == CourseConstants.COURSE_HOMEWORK_SET) {
+            //已布置课后作业
+            viewBinding.tvHomeworkEmptyText.setVisibility(View.GONE);
+            viewBinding.tvHomeworkContent.setVisibility(View.VISIBLE);
+            viewBinding.tvHomeworkContent.setText(bean.content);
+            viewBinding.tvSetHomework.setVisibility(View.GONE);
+        } else {
+            //未布置课后作业
+            viewBinding.tvHomeworkEmptyText.setVisibility(View.VISIBLE);
+            viewBinding.tvHomeworkContent.setVisibility(View.GONE);
+            viewBinding.tvSetHomework.setVisibility(View.VISIBLE);
+        }
+    }
 
 
+    /**
+     * 学生提交的作业
+     *
+     * @param bean
+     */
+    private void handleHomeworkStudentSubmit(PianoRoomCourseHomeworkBean bean) {
+        if (bean == null) {
+            return;
+        }
+        //tv_homework_video_empty_text
+        if (bean.submitHomework == CourseConstants.COURSE_HOMEWORK_STU_SUBMIT) {
+            //学员已提交课后作业
+            viewBinding.tvHomeworkVideoEmptyText.setVisibility(View.GONE);
+            viewBinding.llHomeworkVideoContent.removeAllViews();
+            addVideoThumbnailView(bean.studentAttachments);
+        } else {
+            //学员未提交课后作业
+            viewBinding.tvHomeworkVideoEmptyText.setVisibility(View.VISIBLE);
+        }
+    }
+
+    /**
+     * 添加视频缩略图
+     *
+     * @param videoUrls
+     */
+    private void addVideoThumbnailView(String videoUrls) {
+        try {
+            if (!TextUtils.isEmpty(videoUrls)) {
+                String[] results = TextUtils.split(videoUrls, ",");
+                for (int i = 0; i < results.length; i++) {
+                    HomeworkVideoThumbnailView videoThumbnailView = new HomeworkVideoThumbnailView(PianoRoomCourseHomeWorkActivity.this);
+                    videoThumbnailView.setData(results[i]);
+                    LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
+                    int left = i == 0 ? 0 : SizeUtils.dp2px(6);
+                    layoutParams.setMargins(left, 0, 0, 0);
+                    layoutParams.weight = 1;
+                    viewBinding.llHomeworkVideoContent.addView(videoThumbnailView, layoutParams);
+                }
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+            viewBinding.llHomeworkVideoContent.removeAllViews();
+        }
+    }
+
+    /**
+     * 作业点评
+     */
+    private void handleHomeworkComment(PianoRoomCourseHomeworkBean bean) {
+        //tv_homework_comment_content
+        if (bean == null) {
+            return;
+        }
+        if (!TextUtils.isEmpty(bean.teacherReplied)) {
+            //老师已点评作业
+            viewBinding.tvHomeworkCommentEmptyText.setVisibility(View.GONE);
+            viewBinding.tvHomeworkSetComment.setVisibility(View.GONE);
+            viewBinding.tvHomeworkCommentContent.setVisibility(View.VISIBLE);
+            viewBinding.tvHomeworkCommentContent.setText(bean.teacherReplied);
+        } else {
+            viewBinding.tvHomeworkCommentEmptyText.setVisibility(View.VISIBLE);
+            viewBinding.tvHomeworkSetComment.setVisibility(View.VISIBLE);
+            viewBinding.tvHomeworkCommentContent.setVisibility(View.GONE);
+        }
     }
     }
 
 
     /**
     /**
      * 提交布置作业成功
      * 提交布置作业成功
      */
      */
     @Override
     @Override
-    public void submitSparringCourseHomeworkSuccess() {
+    public void submitCourseHomeworkSuccess() {
+        if (!checkActivityExist()) {
+            return;
+        }
+        refresh();
+    }
+
+    @Override
+    public void submitCourseHomeworkCommentSuccess() {
         if (!checkActivityExist()) {
         if (!checkActivityExist()) {
             return;
             return;
         }
         }
@@ -101,11 +225,39 @@ public class PianoRoomCourseHomeWorkActivity extends BaseMVPActivity<ActivityPia
 
 
     @Override
     @Override
     public void onClick(View v) {
     public void onClick(View v) {
-        int id = v.getId();
-        if (id == R.id.tv_set_homework) {
+        if (v.getId() == R.id.tv_set_homework) {
             //布置作业
             //布置作业
-//            showSetCommentDialog();
+            showSetCommentDialog(CourseSetCommentDialog.TYPE_SET_HOMEWORK);
+            return;
+        }
+        if (v.getId() == R.id.tv_homework_set_comment) {
+            //点评作业
+            showSetCommentDialog(CourseSetCommentDialog.TYPE_SET_HOMEWORK_COMMENT);
             return;
             return;
         }
         }
     }
     }
+
+    private void showSetCommentDialog(int typeSetTeacherComment) {
+        if (mSetCommentDialog == null) {
+            mSetCommentDialog = new CourseSetCommentDialog(this);
+            mSetCommentDialog.setOnSubmitClickListener(new CourseSetCommentDialog.OnSubmitClickListener() {
+                @Override
+                public void onSubmit(String content, int type) {
+                    //提交
+                    if (type == CourseSetCommentDialog.TYPE_SET_HOMEWORK) {
+                        //提交布置作业
+                        presenter.submitCourseHomework(content, mCourseId);
+                    }
+                    if (type == CourseSetCommentDialog.TYPE_SET_HOMEWORK_COMMENT) {
+                        //提交作业点评
+                        presenter.submitCourseHomeworkComment(content, mCourseId, studentId);
+                    }
+                }
+            });
+        }
+        if (!mSetCommentDialog.isShowing()) {
+            mSetCommentDialog.show();
+        }
+        mSetCommentDialog.showMethod(typeSetTeacherComment);
+    }
 }
 }

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

@@ -288,7 +288,7 @@ public class SparringCourseDetailActivity extends BaseMVPActivity<ActivitySparri
                     }
                     }
                     if (type == CourseSetCommentDialog.TYPE_SET_HOMEWORK_COMMENT) {
                     if (type == CourseSetCommentDialog.TYPE_SET_HOMEWORK_COMMENT) {
                         //提交作业点评
                         //提交作业点评
-                        presenter.submitSparringCourseHomeworkComment(content, mCourseId);
+                        presenter.submitSparringCourseHomeworkComment(content, mCourseId, studentId);
                     }
                     }
                 }
                 }
             });
             });