Browse Source

课后作业逻辑补充

邓琴文 3 years ago
parent
commit
476064b6a2
26 changed files with 598 additions and 128 deletions
  1. 11 0
      BaseLibrary/src/main/java/com/cooleshow/base/utils/ToastUtil.java
  2. 17 2
      student/src/main/java/com/cooleshow/student/adapter/LiveCourseListAdapter.java
  3. 1 1
      student/src/main/res/layout/item_live_course_list_layout.xml
  4. 34 6
      teacher/src/main/java/com/cooleshow/teacher/adapter/HomeworkAdapter.java
  5. 13 5
      teacher/src/main/java/com/cooleshow/teacher/adapter/MineStyleFansGroupListAdapter.java
  6. 14 2
      teacher/src/main/java/com/cooleshow/teacher/api/APIService.java
  7. 46 29
      teacher/src/main/java/com/cooleshow/teacher/bean/HomeworkListBean.java
  8. 12 0
      teacher/src/main/java/com/cooleshow/teacher/bean/request/AssignHomeWorkEntry.java
  9. 12 0
      teacher/src/main/java/com/cooleshow/teacher/bean/request/CommentHomeWorkEntry.java
  10. 13 0
      teacher/src/main/java/com/cooleshow/teacher/bean/request/QueryGroupListEntry.java
  11. 6 0
      teacher/src/main/java/com/cooleshow/teacher/constants/AssignHomeworkContract.java
  12. 2 0
      teacher/src/main/java/com/cooleshow/teacher/constants/TeacherConfig.java
  13. 5 0
      teacher/src/main/java/com/cooleshow/teacher/contract/MineStyleContract.java
  14. 6 10
      teacher/src/main/java/com/cooleshow/teacher/presenter/course/PianoRoomDetailPresenter.java
  15. 12 19
      teacher/src/main/java/com/cooleshow/teacher/presenter/course/SparringCourseDetailPresenter.java
  16. 17 0
      teacher/src/main/java/com/cooleshow/teacher/presenter/homePage/MineStylePresenter.java
  17. 81 1
      teacher/src/main/java/com/cooleshow/teacher/presenter/homework/AssignHomeworkPresenter.java
  18. 28 1
      teacher/src/main/java/com/cooleshow/teacher/ui/homepage/MineStyleFragment.java
  19. 175 5
      teacher/src/main/java/com/cooleshow/teacher/ui/work/AssignHomeworkActivity.java
  20. 21 21
      teacher/src/main/java/com/cooleshow/teacher/ui/work/HomeWorkFragment.java
  21. BIN
      teacher/src/main/res/drawable-xhdpi/icon_group_fans.png
  22. BIN
      teacher/src/main/res/drawable-xxhdpi/icon_group_fans.png
  23. 38 24
      teacher/src/main/res/layout/activity_assign_homework.xml
  24. 1 0
      teacher/src/main/res/layout/fragment_mine_style_layout.xml
  25. 32 1
      teacher/src/main/res/layout/item_mine_style_fans_group_layout.xml
  26. 1 1
      teacher/src/main/res/layout/layout_item_homework.xml

+ 11 - 0
BaseLibrary/src/main/java/com/cooleshow/base/utils/ToastUtil.java

@@ -38,6 +38,17 @@ public class ToastUtil {
         }
     }
 
+    /**
+     * 创建自定义Toasts :
+     */
+    public void showShort(String toastStr) {
+        if (init(toastStr, Toast.LENGTH_SHORT) == null) {
+            toast = new Toast(Utils.getApp());
+            toast.setText(toastStr);
+            toast.setDuration(Toast.LENGTH_SHORT);
+            toast.show();
+        }
+    }
     private Toast init(String message, int duration) {
         try {
             if (toast != null) {

+ 17 - 2
student/src/main/java/com/cooleshow/student/adapter/LiveCourseListAdapter.java

@@ -11,10 +11,13 @@ 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.base.utils.GlideUtils;
+import com.cooleshow.base.utils.TimeUtils;
 import com.cooleshow.student.R;
 import com.cooleshow.student.bean.LiveCourseListBean;
 import com.cooleshow.student.constants.CourseConstants;
 
+import java.util.Date;
+
 /**
  * Author by pq, Date on 2022/4/25.
  */
@@ -26,8 +29,20 @@ public class LiveCourseListAdapter extends BaseQuickAdapter<LiveCourseListBean.R
 
     @Override
     protected void convert(@NonNull BaseViewHolder holder, LiveCourseListBean.RowsBean data) {
+        if (data == null) {
+            return;
+        }
         //时间
-        holder.setText(R.id.tv_time, data.startTime);
+        String endTime = TimeUtils.date2String(TimeUtils.getDate(data.endTime), "yyyy-MM-dd");
+        String startTime = TimeUtils.date2String(TimeUtils.getDate(data.startTime), "yyyy-MM-dd");
+        String startTimeText = TimeUtils.date2String(TimeUtils.getDate(data.startTime), "HH:mm");
+        String endTimeText = TimeUtils.date2String(TimeUtils.getDate(data.endTime), "HH:mm");
+        if (TextUtils.equals(endTime, startTime)) {
+            holder.setText(R.id.tv_time, startTime + " " + startTimeText + "-" + endTimeText);
+        } else {
+            holder.setText(R.id.tv_time, startTime + " " + startTimeText + "-" + endTime + " " + endTimeText);
+        }
+
         //title
         holder.setText(R.id.tv_title, data.name);
         //subjectName
@@ -36,7 +51,7 @@ public class LiveCourseListAdapter extends BaseQuickAdapter<LiveCourseListBean.R
         holder.setText(R.id.tv_buy_num, getContext().getString(R.string.pay_count_str, data.payCount));
         //头像
         ImageView iv_avatar = holder.getView(R.id.iv_bg);
-        GlideUtils.INSTANCE.loadImage(getContext(), data.avatar, iv_avatar, R.drawable.icon_teacher_default_head);
+        GlideUtils.INSTANCE.loadImage(getContext(), data.cover, iv_avatar, R.drawable.icon_teacher_default_head);
 
         TextView tvCourseStatusBt = holder.getView(R.id.tv_course_status);
 

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

@@ -82,7 +82,7 @@
         android:layout_marginStart="8dp"
         android:textColor="@color/color_ff802c"
         android:textSize="@dimen/sp_11"
-        android:visibility="visible"
+        android:visibility="gone"
         app:layout_constraintBottom_toBottomOf="@+id/view_line2"
         app:layout_constraintLeft_toRightOf="@+id/view_line2"
         app:layout_constraintTop_toTopOf="@+id/view_line2"

+ 34 - 6
teacher/src/main/java/com/cooleshow/teacher/adapter/HomeworkAdapter.java

@@ -14,6 +14,7 @@ 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.base.utils.GlideUtils;
+import com.cooleshow.base.utils.TimeUtils;
 import com.cooleshow.teacher.R;
 import com.cooleshow.teacher.bean.HomeworkListBean;
 import com.cooleshow.teacher.bean.MusicSheetListBean;
@@ -29,6 +30,8 @@ import java.util.List;
  */
 public class HomeworkAdapter extends BaseQuickAdapter<HomeworkListBean.RowsBean, BaseViewHolder> implements LoadMoreModule {
 
+    private String mDecorate;
+
     public HomeworkAdapter(List<HomeworkListBean.RowsBean> data) {
         super(R.layout.layout_item_homework, data);
     }
@@ -36,13 +39,27 @@ public class HomeworkAdapter extends BaseQuickAdapter<HomeworkListBean.RowsBean,
 
     @Override
     protected void convert(BaseViewHolder helper, HomeworkListBean.RowsBean item) {
-        TextView tv_date=helper.getView(R.id.tv_date);
-        TextView tv_state=helper.getView(R.id.tv_state);
-        ImageView im_header=helper.getView(R.id.im_header);
-        TextView tv_name=helper.getView(R.id.tv_name);
-        RecyclerView rv_mark=helper.getView(R.id.rv_mark);
+        TextView tv_state = helper.getView(R.id.tv_state);
+        ImageView im_header = helper.getView(R.id.im_header);
+        TextView tv_name = helper.getView(R.id.tv_name);
+        RecyclerView rv_mark = helper.getView(R.id.rv_mark);
         GlideUtils.INSTANCE.loadImage(getContext(), item.teacherAvatar, im_header, R.drawable.icon_teacher_default_head);
         tv_name.setText(item.teacherName);
+        if (TextUtils.equals(mDecorate, "YES")) {
+            tv_state.setVisibility(View.VISIBLE);
+            if (TextUtils.equals(item.homeworkStatus, "NOTCOMMIT")) {
+                tv_state.setText("未提交");
+                tv_state.setTextColor(getContext().getResources().getColor(com.cooleshow.base.R.color.color_ff802c));
+            } else if (TextUtils.equals(item.homeworkStatus, "NOTREVIEW")) {
+                tv_state.setText("未评价");
+                tv_state.setTextColor(getContext().getResources().getColor(com.cooleshow.base.R.color.color_2dc7aa));
+            } else if (TextUtils.equals(item.homeworkStatus, "REVIEWED")) {
+                tv_state.setText("已点评");
+                tv_state.setTextColor(getContext().getResources().getColor(com.cooleshow.base.R.color.color_999999));
+            }
+        } else {
+            tv_state.setVisibility(View.GONE);
+        }
         if (!TextUtils.isEmpty(item.subjectName)) {
             rv_mark.setVisibility(View.VISIBLE);
             List<String> markList = new ArrayList<>();
@@ -62,8 +79,16 @@ public class HomeworkAdapter extends BaseQuickAdapter<HomeworkListBean.RowsBean,
         } else {
             rv_mark.setVisibility(View.GONE);
         }
-        tv_date.setText(item.classDate);
 
+        String endTime = TimeUtils.date2String(TimeUtils.getDate(item.endTime), "yyyy-MM-dd");
+        String startTime = TimeUtils.date2String(TimeUtils.getDate(item.startTime), "yyyy-MM-dd");
+        String startTimeText = TimeUtils.date2String(TimeUtils.getDate(item.startTime), "HH:mm");
+        String endTimeText = TimeUtils.date2String(TimeUtils.getDate(item.endTime), "HH:mm");
+        if (TextUtils.equals(endTime, startTime)) {
+            helper.setText(R.id.tv_date, startTime + " " + startTimeText + "-" + endTimeText);
+        } else {
+            helper.setText(R.id.tv_date, startTime + " " + startTimeText + "-" + endTime + " " + endTimeText);
+        }
     }
 
     @NonNull
@@ -72,4 +97,7 @@ public class HomeworkAdapter extends BaseQuickAdapter<HomeworkListBean.RowsBean,
         return new BaseLoadMoreModule(baseQuickAdapter);
     }
 
+    public void setDecorate(String decorate) {
+        mDecorate = decorate;
+    }
 }

+ 13 - 5
teacher/src/main/java/com/cooleshow/teacher/adapter/MineStyleFansGroupListAdapter.java

@@ -2,6 +2,9 @@ package com.cooleshow.teacher.adapter;
 
 import com.chad.library.adapter.base.BaseQuickAdapter;
 import com.chad.library.adapter.base.viewholder.BaseViewHolder;
+import com.common.im.bean.ContactRoomListBean;
+import com.cooleshow.base.utils.GlideUtils;
+import com.cooleshow.teacher.R;
 import com.cooleshow.teacher.bean.TeacherSelfStyleInfoBean;
 
 import androidx.annotation.NonNull;
@@ -9,13 +12,18 @@ import androidx.annotation.NonNull;
 /**
  * Author by pq, Date on 2022/5/10.
  */
-public class MineStyleFansGroupListAdapter extends BaseQuickAdapter<TeacherSelfStyleInfoBean.StyleVideoBean, BaseViewHolder> {
-    public MineStyleFansGroupListAdapter(int layoutResId) {
-        super(layoutResId);
+public class MineStyleFansGroupListAdapter extends BaseQuickAdapter<ContactRoomListBean, BaseViewHolder> {
+    public MineStyleFansGroupListAdapter() {
+        super(R.layout.item_mine_style_fans_group_layout);
     }
 
     @Override
-    protected void convert(@NonNull BaseViewHolder holder, TeacherSelfStyleInfoBean.StyleVideoBean styleVideoBean) {
-
+    protected void convert(@NonNull BaseViewHolder holder, ContactRoomListBean bean) {
+        if (bean == null) {
+            return;
+        }
+        holder.setText(R.id.group_name, bean.getName());
+        holder.setText(R.id.group_desc, bean.getIntroduce());
+        GlideUtils.INSTANCE.loadImage(getContext(), bean.getImg(), holder.getView(R.id.group_aver), R.drawable.icon_group_fans);
     }
 }

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

@@ -1,7 +1,10 @@
 package com.cooleshow.teacher.api;
 
+import com.common.im.bean.ContactRoomListBean;
 import com.cooleshow.base.data.net.BaseResponse;
 import com.cooleshow.teacher.bean.HomeLiveAndVideoBean;
+import com.cooleshow.teacher.bean.request.AssignHomeWorkEntry;
+import com.cooleshow.teacher.bean.request.CommentHomeWorkEntry;
 import com.cooleshow.teacher.bean.request.LiveCourseEntry;
 import com.cooleshow.teacher.bean.AccountDetailBean;
 import com.cooleshow.teacher.bean.AccountTotalBean;
@@ -40,6 +43,7 @@ import com.cooleshow.teacher.bean.UserAccountBean;
 import com.cooleshow.teacher.bean.VideoCourseListBean;
 import com.cooleshow.teacher.bean.WithdrawalInfoBean;
 import com.cooleshow.teacher.bean.WithdrawalRecordBean;
+import com.cooleshow.teacher.bean.request.QueryGroupListEntry;
 import com.cooleshow.teacher.bean.request.SheetMusicEntry;
 import com.cooleshow.teacher.bean.request.UnBindCardEntry;
 import com.cooleshow.usercenter.bean.SetDetailBean;
@@ -214,7 +218,7 @@ public interface APIService {
      * @return
      */
     @POST(TEACHER_GROUP + "homework/decorate")
-    Observable<BaseResponse<Object>> submitSparringCourseHomework(@Body RequestBody body);
+    Observable<BaseResponse<Object>> submitSparringCourseHomework(@Body AssignHomeWorkEntry body);
 
     /**
      * 提交陪练课老师作业点评
@@ -223,7 +227,7 @@ public interface APIService {
      * @return
      */
     @POST(TEACHER_GROUP + "homework/review")
-    Observable<BaseResponse<Object>> submitSparringCourseHomeworkComment(@Body RequestBody body);
+    Observable<BaseResponse<Object>> submitSparringCourseHomeworkComment(@Body CommentHomeWorkEntry body);
 
     /**
      * 查询直播课
@@ -272,6 +276,14 @@ public interface APIService {
     Observable<BaseResponse<TeacherSelfStyleInfoBean>> getTeacherSelfStyle();
 
     /**
+     * 群列表-老师
+     *
+     * @return
+     */
+    @POST(TEACHER_GROUP + "imGroup/queryAll")
+    Observable<BaseResponse<List<ContactRoomListBean>>> queryTeaGroupList(@Body QueryGroupListEntry requestBody);
+
+    /**
      * 查询我收到的评价
      *
      * @param

+ 46 - 29
teacher/src/main/java/com/cooleshow/teacher/bean/HomeworkListBean.java

@@ -1,5 +1,10 @@
 package com.cooleshow.teacher.bean;
 
+import com.google.gson.Gson;
+import com.google.gson.reflect.TypeToken;
+
+import java.lang.reflect.Type;
+import java.util.ArrayList;
 import java.util.List;
 
 /**
@@ -19,39 +24,51 @@ public class HomeworkListBean {
     public List<RowsBean> rows;
 
     public static class RowsBean {
-        /*
-
-
-        	"absenteeism": "",
-                    "classDate": "",
-                    "courseGroupId": 0,
-                    "courseId": 0,
-                    "decorateTime": "",
-                    "endTime": "",
-                    "startTime": "",
-                    "studentAvatar": "",
-                    "studentId": 0,
-                    "studentName": "",
-                    "subjectName": "",
-                    "submitTime": "",
-                    "teacherAvatar": "",
-                    "teacherId": 0,
-                    "teacherName": ""
-         */
-        public String absenteeism;
-        public String classDate;
-        public int courseGroupId;
-        public int courseId;
-        public String decorateTime;
+        public String startTime;
         public String endTime;
-        public String studentAvatar;
-        public int studentId;
-        public String studentName;
+        public String studentId;
+        public String courseId;
+        public String backgroundPic;
         public String subjectName;
-        public String submitTime;
-        public String teacherAvatar;
+        public int courseGroupId;
         public int teacherId;
+        public int classNum;
+        public String studentAvatar;
+        public String studentName;
         public String teacherName;
+        public String teacherAvatar;
+        public int absenteeism;
+        public String courseGroupName;
+        public String classDate;
+        public String homeworkStatus;
+        public Object submitTime;
+        public Object decorateTime;
+        public int homeworkId;
+        public String type;
+        /*
+            "startTime": "2022-06-30 13:00:00",
+			"endTime": "2022-06-30 13:45:00",
+			"studentId": 581,
+			"courseId": 1429,
+			"backgroundPic": "",
+			"subjectName": "架子鼓",
+			"courseGroupId": 482,
+			"teacherId": 579,
+			"classNum": 1,
+			"studentAvatar": "https://ks3-cn-beijing.ksyuncs.com/daya/android/2022-06/1656470726398_1656470726398.jpg",
+			"studentName": "13310629003",
+			"teacherName": "3at",
+			"teacherAvatar": "https://ks3-cn-beijing.ksyuncs.com/daya/android/2022-06/1656469925640_1656469925640.jpg",
+			"absenteeism": 0,
+			"courseGroupName": "架子鼓陪练课",
+			"classDate": "2022-06-30 00:00:00",
+			"homeworkStatus": "NOTCOMMIT",
+			"submitTime": null,
+			"decorateTime": null,
+			"homeworkId": 0,
+			"type": "PRACTICE"
+         */
+        
 
     }
 }

+ 12 - 0
teacher/src/main/java/com/cooleshow/teacher/bean/request/AssignHomeWorkEntry.java

@@ -0,0 +1,12 @@
+package com.cooleshow.teacher.bean.request;
+
+/**
+ * @author dengqw
+ * @time 2022/7/1 00:12
+ * @describe:
+ **/
+public class AssignHomeWorkEntry {
+    public String courseScheduleId;
+    public String content;
+    public String attachments;
+}

+ 12 - 0
teacher/src/main/java/com/cooleshow/teacher/bean/request/CommentHomeWorkEntry.java

@@ -0,0 +1,12 @@
+package com.cooleshow.teacher.bean.request;
+
+/**
+ * @author dengqw
+ * @time 2022/7/1 00:15
+ * @describe:
+ **/
+public class CommentHomeWorkEntry {
+    public String courseScheduleId;
+    public String review;
+    public String studentId;
+}

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

@@ -0,0 +1,13 @@
+package com.cooleshow.teacher.bean.request;
+
+/**
+ * @author dengqw
+ * @time 2022/6/30 22:36
+ * @describe:
+ **/
+public class QueryGroupListEntry {
+    public String search;
+    public String createUserId;
+    public String userId;
+    public String type;
+}

+ 6 - 0
teacher/src/main/java/com/cooleshow/teacher/constants/AssignHomeworkContract.java

@@ -1,6 +1,7 @@
 package com.cooleshow.teacher.constants;
 
 import com.cooleshow.base.presenter.view.BaseView;
+import com.cooleshow.teacher.bean.SparringCourseHomeworkBean;
 
 /**
  * 创建日期:2022/5/31 15:48
@@ -10,8 +11,13 @@ import com.cooleshow.base.presenter.view.BaseView;
  */
 public interface AssignHomeworkContract {
     interface AssignHomeworkView extends BaseView {
+        void getSparringCourseHomework(SparringCourseHomeworkBean bean);
 
+        void submitSparringCourseHomeworkSuccess();
+
+        void submitSparringCourseHomeworkCommentSuccess();
     }
+
     interface Presenter {
     }
 }

+ 2 - 0
teacher/src/main/java/com/cooleshow/teacher/constants/TeacherConfig.java

@@ -9,4 +9,6 @@ public class TeacherConfig {
     public static final String BANK_CARD_ID="bank_card_id";
     public static final String BANK_NAME="bank_name";
     public static final String BANK_CARD="bank_card";
+    public static final String COURSE_ID="course_id";
+    public static final String STUDENT_ID="student_id";
 }

+ 5 - 0
teacher/src/main/java/com/cooleshow/teacher/contract/MineStyleContract.java

@@ -1,8 +1,11 @@
 package com.cooleshow.teacher.contract;
 
+import com.common.im.bean.ContactRoomListBean;
 import com.cooleshow.base.presenter.view.BaseView;
 import com.cooleshow.teacher.bean.TeacherSelfStyleInfoBean;
 
+import java.util.List;
+
 /**
  * Author by pq, Date on 2022/4/20.
  */
@@ -10,6 +13,8 @@ public interface MineStyleContract {
 
     interface MineStylePageView extends BaseView {
         void getSelfStyleSuccess(TeacherSelfStyleInfoBean styleInfoBean);
+
+        void getFunGroupList(List<ContactRoomListBean> list);
     }
 
     interface Presenter {

+ 6 - 10
teacher/src/main/java/com/cooleshow/teacher/presenter/course/PianoRoomDetailPresenter.java

@@ -5,6 +5,7 @@ import com.cooleshow.base.rx.BaseObserver;
 import com.cooleshow.base.utils.RequestBodyUtil;
 import com.cooleshow.teacher.api.APIService;
 import com.cooleshow.teacher.bean.PianoRoomCourseInfoBean;
+import com.cooleshow.teacher.bean.request.AssignHomeWorkEntry;
 import com.cooleshow.teacher.contract.PianoRoomCourseDetailContract;
 
 import org.json.JSONException;
@@ -51,16 +52,11 @@ public class PianoRoomDetailPresenter extends BasePresenter<PianoRoomCourseDetai
         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).submitSparringCourseHomework(RequestBodyUtil.convertToRequestBodyJson(jsonObject.toString())), new BaseObserver<Object>(getView()) {
+        AssignHomeWorkEntry entry = new AssignHomeWorkEntry();
+        entry.courseScheduleId = courseScheduleId;
+        entry.content = commentContent;
+        entry.attachments = commentContent;
+        addSubscribe(create(APIService.class).submitSparringCourseHomework(entry), new BaseObserver<Object>(getView()) {
             @Override
             protected void onSuccess(Object o) {
                 if (getView() != null) {

+ 12 - 19
teacher/src/main/java/com/cooleshow/teacher/presenter/course/SparringCourseDetailPresenter.java

@@ -7,6 +7,8 @@ import com.cooleshow.teacher.api.APIService;
 import com.cooleshow.teacher.bean.SparringCourseCommentBean;
 import com.cooleshow.teacher.bean.SparringCourseHomeworkBean;
 import com.cooleshow.teacher.bean.SparringCourseListBean;
+import com.cooleshow.teacher.bean.request.AssignHomeWorkEntry;
+import com.cooleshow.teacher.bean.request.CommentHomeWorkEntry;
 import com.cooleshow.teacher.contract.SparringCourseDetailContract;
 
 import org.json.JSONException;
@@ -115,16 +117,11 @@ public class SparringCourseDetailPresenter extends BasePresenter<SparringCourseD
         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).submitSparringCourseHomework(RequestBodyUtil.convertToRequestBodyJson(jsonObject.toString())), new BaseObserver<Object>(getView()) {
+        AssignHomeWorkEntry entry = new AssignHomeWorkEntry();
+        entry.courseScheduleId = courseScheduleId;
+        entry.content = commentContent;
+        entry.attachments = commentContent;
+        addSubscribe(create(APIService.class).submitSparringCourseHomework(entry), new BaseObserver<Object>(getView()) {
             @Override
             protected void onSuccess(Object o) {
                 if (getView() != null) {
@@ -144,16 +141,12 @@ public class SparringCourseDetailPresenter extends BasePresenter<SparringCourseD
         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();
-        }
+        CommentHomeWorkEntry entry = new CommentHomeWorkEntry();
+        entry.courseScheduleId = courseScheduleId;
+        entry.review = commentContent;
+        entry.studentId = studentId;
 
-        addSubscribe(create(APIService.class).submitSparringCourseHomeworkComment(RequestBodyUtil.convertToRequestBodyJson(jsonObject.toString())), new BaseObserver<Object>(getView()) {
+        addSubscribe(create(APIService.class).submitSparringCourseHomeworkComment(entry), new BaseObserver<Object>(getView()) {
             @Override
             protected void onSuccess(Object o) {
                 if (getView() != null) {

+ 17 - 0
teacher/src/main/java/com/cooleshow/teacher/presenter/homePage/MineStylePresenter.java

@@ -1,14 +1,18 @@
 package com.cooleshow.teacher.presenter.homePage;
 
+import com.common.im.bean.ContactRoomListBean;
 import com.cooleshow.base.presenter.BasePresenter;
 import com.cooleshow.base.rx.BaseObserver;
 import com.cooleshow.teacher.api.APIService;
 import com.cooleshow.teacher.bean.TeacherSelfStyleInfoBean;
 import com.cooleshow.teacher.bean.TeacherUserInfo;
+import com.cooleshow.teacher.bean.request.QueryGroupListEntry;
 import com.cooleshow.teacher.contract.HomePageContract;
 import com.cooleshow.teacher.contract.MineStyleContract;
 import com.cooleshow.usercenter.bean.UserInfo;
 
+import java.util.List;
+
 /**
  * Author by pq, Date on 2022/4/20.
  */
@@ -41,4 +45,17 @@ public class MineStylePresenter extends BasePresenter<MineStyleContract.MineStyl
             }
         });
     }
+
+    public void getTeaGroupList() {
+        QueryGroupListEntry entry = new QueryGroupListEntry();
+        entry.type = "FAN";
+        addSubscribe(create(APIService.class).queryTeaGroupList(entry), new BaseObserver<List<ContactRoomListBean>>(getView()) {
+            @Override
+            protected void onSuccess(List<ContactRoomListBean> list) {
+                if (getView() != null) {
+                    getView().getFunGroupList(list);
+                }
+            }
+        });
+    }
 }

+ 81 - 1
teacher/src/main/java/com/cooleshow/teacher/presenter/homework/AssignHomeworkPresenter.java

@@ -1,8 +1,18 @@
 package com.cooleshow.teacher.presenter.homework;
 
 import com.cooleshow.base.presenter.BasePresenter;
+import com.cooleshow.base.rx.BaseObserver;
+import com.cooleshow.base.utils.RequestBodyUtil;
+import com.cooleshow.base.utils.ToastUtil;
+import com.cooleshow.teacher.api.APIService;
+import com.cooleshow.teacher.bean.HomeworkListBean;
+import com.cooleshow.teacher.bean.SparringCourseHomeworkBean;
+import com.cooleshow.teacher.bean.request.AssignHomeWorkEntry;
+import com.cooleshow.teacher.bean.request.CommentHomeWorkEntry;
 import com.cooleshow.teacher.constants.AssignHomeworkContract;
-import com.cooleshow.teacher.contract.AboutContract;
+
+import org.json.JSONException;
+import org.json.JSONObject;
 
 /**
  * 创建日期:2022/5/31 15:48
@@ -12,4 +22,74 @@ import com.cooleshow.teacher.contract.AboutContract;
  */
 public class AssignHomeworkPresenter extends BasePresenter<AssignHomeworkContract.AssignHomeworkView> implements AssignHomeworkContract.Presenter {
 
+    public void getCourseDetail(String courseId, String studentId) {
+        if (getView() != null) {
+            getView().showLoading();
+        }
+        addSubscribe(create(APIService.class).getSparringCourseHomework(courseId, studentId), new BaseObserver<SparringCourseHomeworkBean>(getView()) {
+            @Override
+            protected void onSuccess(SparringCourseHomeworkBean data) {
+                if (getView() != null) {
+                    getView().getSparringCourseHomework(data);
+                }
+            }
+
+            @Override
+            public void onComplete() {
+                super.onComplete();
+                getView().hideLoading();
+            }
+
+            @Override
+            public void onError(Throwable e) {
+                super.onError(e);
+            }
+        });
+    }
+
+    public void submitSparringCourseHomework(String content, String courseId) {
+        if (getView() != null) {
+            getView().showLoading();
+        }
+        AssignHomeWorkEntry entry = new AssignHomeWorkEntry();
+        entry.courseScheduleId = courseId;
+        entry.content = content;
+        entry.attachments = content;
+
+        addSubscribe(create(APIService.class).submitSparringCourseHomework(entry), new BaseObserver<Object>(getView()) {
+            @Override
+            protected void onSuccess(Object o) {
+                if (getView() != null) {
+                    getView().submitSparringCourseHomeworkSuccess();
+                }
+            }
+
+            @Override
+            public void onError(Throwable e) {
+                super.onError(e);
+            }
+        });
+    }
+    public void submitSparringCourseHomeworkComment(String commentContent, String courseScheduleId,String studentId ) {
+        if (getView() != null) {
+            getView().showLoading();
+        }
+        CommentHomeWorkEntry entry = new CommentHomeWorkEntry();
+        entry.courseScheduleId = courseScheduleId;
+        entry.review = commentContent;
+        entry.studentId = studentId;
+        addSubscribe(create(APIService.class).submitSparringCourseHomeworkComment(entry), new BaseObserver<Object>(getView()) {
+            @Override
+            protected void onSuccess(Object o) {
+                if (getView() != null) {
+                    getView().submitSparringCourseHomeworkCommentSuccess();
+                }
+            }
+
+            @Override
+            public void onError(Throwable e) {
+                super.onError(e);
+            }
+        });
+    }
 }

+ 28 - 1
teacher/src/main/java/com/cooleshow/teacher/ui/homepage/MineStyleFragment.java

@@ -4,6 +4,9 @@ import android.text.TextUtils;
 import android.view.View;
 
 import com.alibaba.android.arouter.launcher.ARouter;
+import com.chad.library.adapter.base.BaseQuickAdapter;
+import com.chad.library.adapter.base.listener.OnItemClickListener;
+import com.common.im.bean.ContactRoomListBean;
 import com.cooleshow.base.router.RouterPath;
 import com.cooleshow.base.ui.fragment.BaseMVPFragment;
 import com.cooleshow.base.utils.SizeUtils;
@@ -17,9 +20,14 @@ import com.cooleshow.teacher.presenter.homePage.MineStylePresenter;
 import com.cooleshow.teacher.widgets.MineStyleVideoListItemDecoration;
 import com.cooleshow.teacher.widgets.StyleEmptyView;
 
+import androidx.annotation.NonNull;
 import androidx.recyclerview.widget.GridLayoutManager;
 import androidx.recyclerview.widget.LinearLayoutManager;
 
+import java.util.List;
+
+import io.rong.imkit.RongIM;
+
 /**
  * Author by pq, Date on 2022/5/9.
  */
@@ -46,7 +54,7 @@ public class MineStyleFragment extends BaseMVPFragment<FragmentMineStyleLayoutBi
                 });
         mStyleVideoListAdapter.setEmptyView(styleEmptyView);
 
-        mFansGroupListAdapter = new MineStyleFansGroupListAdapter(R.layout.item_mine_style_fans_group_layout);
+        mFansGroupListAdapter = new MineStyleFansGroupListAdapter();
         mViewBinding.recyclerViewFans.setLayoutManager(new LinearLayoutManager(getContext()));
         mViewBinding.recyclerViewFans.setAdapter(mFansGroupListAdapter);
         mViewBinding.recyclerView.setNestedScrollingEnabled(false);
@@ -60,6 +68,10 @@ public class MineStyleFragment extends BaseMVPFragment<FragmentMineStyleLayoutBi
                             .navigation();
                 });
         mFansGroupListAdapter.setEmptyView(fansEmptyView);
+        mFansGroupListAdapter.setOnItemClickListener((adapter, view, position) -> {
+            ContactRoomListBean item = (ContactRoomListBean) adapter.getItem(position);
+            goChat(item.getId() + "", item.getName());
+        });
     }
 
     @Override
@@ -70,6 +82,7 @@ public class MineStyleFragment extends BaseMVPFragment<FragmentMineStyleLayoutBi
     public void onResume() {
         super.onResume();
         presenter.getTeacherSelfStyle();
+        presenter.getTeaGroupList();
     }
 
     @Override
@@ -109,4 +122,18 @@ public class MineStyleFragment extends BaseMVPFragment<FragmentMineStyleLayoutBi
         }
 
     }
+
+    /**
+     * 获取粉丝群
+     *
+     * @param list
+     */
+    @Override
+    public void getFunGroupList(List<ContactRoomListBean> list) {
+        mFansGroupListAdapter.setNewInstance(list);
+    }
+
+    private void goChat(String groupId, String groupName) {
+        RongIM.getInstance().startGroupChat(getContext(), groupId, groupName);
+    }
 }

+ 175 - 5
teacher/src/main/java/com/cooleshow/teacher/ui/work/AssignHomeworkActivity.java

@@ -1,30 +1,85 @@
 package com.cooleshow.teacher.ui.work;
 
+import android.text.TextUtils;
 import android.view.View;
+import android.widget.LinearLayout;
 
 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.GlideUtils;
+import com.cooleshow.base.utils.SizeUtils;
+import com.cooleshow.base.utils.TimeUtils;
+import com.cooleshow.base.utils.VibrateUtils;
+import com.cooleshow.base.utils.helper.QMUIStatusBarHelper;
+import com.cooleshow.base.widgets.VideoThumbnailView;
+import com.cooleshow.teacher.R;
+import com.cooleshow.teacher.bean.SparringCourseHomeworkBean;
 import com.cooleshow.teacher.constants.AssignHomeworkContract;
+import com.cooleshow.teacher.constants.CourseConstants;
+import com.cooleshow.teacher.constants.TeacherConfig;
 import com.cooleshow.teacher.databinding.ActivityAssignHomeworkBinding;
 import com.cooleshow.teacher.presenter.homework.AssignHomeworkPresenter;
+import com.cooleshow.teacher.ui.course.SparringCourseDetailActivity;
+import com.cooleshow.teacher.widgets.CourseSetCommentDialog;
+import com.cooleshow.usercenter.helper.UserHelper;
 
 /**
  * 创建日期:2022/5/31 15:26
  *
  * @author Ryan
- * 类说明:
+ * 类说明:布置作业
  */
 @Route(path = RouterPath.WorkCenter.TEACHER_WORK_ASSIGN_HOMEWORK)
-public class AssignHomeworkActivity extends BaseMVPActivity<ActivityAssignHomeworkBinding, AssignHomeworkPresenter> implements AssignHomeworkContract.AssignHomeworkView, View.OnClickListener {
+public class AssignHomeworkActivity extends BaseMVPActivity<ActivityAssignHomeworkBinding, AssignHomeworkPresenter> implements AssignHomeworkContract.AssignHomeworkView {
+    private String mCourseId;
+    private String studentId;
+    private CourseSetCommentDialog mSetCommentDialog;
+
     @Override
-    public void onClick(View view) {
+    protected void initView() {
+        QMUIStatusBarHelper.setStatusBarLightMode(this);
+        viewBinding.titleView.setLeftClickListener(v -> {
+            finish();
+        });
+        mCourseId = getIntent().getStringExtra(TeacherConfig.COURSE_ID);
+        studentId = getIntent().getStringExtra(TeacherConfig.STUDENT_ID);
 
+        viewBinding.tvSetHomework.setOnClickListener(v -> {
+            //布置作业
+            showSetCommentDialog(CourseSetCommentDialog.TYPE_SET_HOMEWORK);
+        });
+        viewBinding.tvHomeworkSetComment.setOnClickListener(v -> {
+            //布置作业
+            showSetCommentDialog(CourseSetCommentDialog.TYPE_SET_HOMEWORK);
+        });
     }
 
-    @Override
-    protected void initView() {
+    private void showSetCommentDialog(int typeSetHomework) {
+        if (mSetCommentDialog == null) {
+            mSetCommentDialog = new CourseSetCommentDialog(this);
+            mSetCommentDialog.setOnSubmitClickListener((content, type) -> {
+                //提交
+                if (type == CourseSetCommentDialog.TYPE_SET_HOMEWORK) {
+                    //提交布置作业
+                    presenter.submitSparringCourseHomework(content, mCourseId);
+                }
+                if (type == CourseSetCommentDialog.TYPE_SET_HOMEWORK_COMMENT) {
+                    //提交作业点评
+                    presenter.submitSparringCourseHomeworkComment(content, mCourseId, studentId);
+                }
+            });
+        }
+        if (!mSetCommentDialog.isShowing()) {
+            mSetCommentDialog.show();
+        }
+        mSetCommentDialog.showMethod(typeSetHomework);
+    }
 
+    @Override
+    public void initData() {
+        super.initData();
+        presenter.getCourseDetail(mCourseId, studentId);
     }
 
     @Override
@@ -36,4 +91,119 @@ public class AssignHomeworkActivity extends BaseMVPActivity<ActivityAssignHomewo
     protected AssignHomeworkPresenter createPresenter() {
         return new AssignHomeworkPresenter();
     }
+
+    @Override
+    public void getSparringCourseHomework(SparringCourseHomeworkBean bean) {
+        if (bean == null) {
+            return;
+        }
+        //学生头像
+        GlideUtils.INSTANCE.loadImage(this, bean.studentAvatar, viewBinding.imHeader, R.drawable.icon_teacher_default_head);
+        //subjectName
+        viewBinding.tvCourseName.setText(bean.subjectName);
+        viewBinding.tvName.setText(bean.studentName);
+
+        String startTime = TimeUtils.date2String(TimeUtils.getDate(bean.startTime), "yyyy-MM-dd");
+        String endTime = TimeUtils.date2String(TimeUtils.getDate(bean.endTime), "yyyy-MM-dd");
+        if (TextUtils.equals(startTime, endTime)) {
+            String startTimeText = TimeUtils.date2String(TimeUtils.getDate(bean.startTime), "HH:mm");
+            String endTimeText = TimeUtils.date2String(TimeUtils.getDate(bean.endTime), "HH:mm");
+            viewBinding.tvDate.setText(startTime + " " + startTimeText + "-" + endTimeText);
+        } else {
+            viewBinding.tvDate.setText(bean.startTime + "-" + bean.endTime);
+        }
+
+        String status = bean.courseStatus;
+        if (TextUtils.equals(CourseConstants.COURSE_STATUS_NOT_START, status)) {
+            //课程未开始
+            viewBinding.tvState.setText(getString(R.string.course_not_start_str));
+            viewBinding.tvState.setTextColor(getResources().getColor(com.cooleshow.base.R.color.color_ff802c));
+        }
+        if (TextUtils.equals(CourseConstants.COURSE_STATUS_ING, status)) {
+            //课程进行中
+            viewBinding.tvState.setText(R.string.course_ing_str);
+            viewBinding.tvState.setTextColor(getResources().getColor(com.cooleshow.base.R.color.color_2dc7aa));
+        }
+        if (TextUtils.equals(CourseConstants.COURSE_STATUS_COMPLETE, status)) {
+            //课程已结束
+            viewBinding.tvState.setText(R.string.course_is_completed);
+            viewBinding.tvState.setTextColor(getResources().getColor(com.cooleshow.base.R.color.color_999999));
+        }
+
+        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);
+        }
+        //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 {
+            //学员未提交课后作业
+            if (bean.decorateHomework == CourseConstants.COURSE_HOMEWORK_SET) {
+                viewBinding.homeWordVideoView.setVisibility(View.VISIBLE);
+            } else {
+                viewBinding.homeWordVideoView.setVisibility(View.GONE);
+            }
+            viewBinding.tvHomeworkVideoEmptyText.setVisibility(View.VISIBLE);
+        }
+        //作业点评
+        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 {
+            if (bean.submitHomework == CourseConstants.COURSE_HOMEWORK_STU_SUBMIT) {
+                viewBinding.commentView.setVisibility(View.VISIBLE);
+            } else {
+                viewBinding.commentView.setVisibility(View.GONE);
+            }
+            viewBinding.tvHomeworkCommentEmptyText.setVisibility(View.VISIBLE);
+            viewBinding.tvHomeworkSetComment.setVisibility(View.VISIBLE);
+            viewBinding.tvHomeworkCommentContent.setVisibility(View.GONE);
+        }
+    }
+
+
+    private void addVideoThumbnailView(String videoUrls) {
+        try {
+            if (!TextUtils.isEmpty(videoUrls)) {
+                String[] results = TextUtils.split(videoUrls, ",");
+                for (int i = 0; i < results.length; i++) {
+                    VideoThumbnailView videoThumbnailView = new VideoThumbnailView(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();
+        }
+    }
+
+    @Override
+    public void submitSparringCourseHomeworkSuccess() {
+        presenter.getCourseDetail(mCourseId, studentId);
+    }
+
+    @Override
+    public void submitSparringCourseHomeworkCommentSuccess() {
+        presenter.getCourseDetail(mCourseId, studentId);
+    }
 }

+ 21 - 21
teacher/src/main/java/com/cooleshow/teacher/ui/work/HomeWorkFragment.java

@@ -10,6 +10,7 @@ import androidx.annotation.NonNull;
 import androidx.recyclerview.widget.LinearLayoutManager;
 import androidx.recyclerview.widget.RecyclerView;
 
+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;
@@ -17,11 +18,13 @@ import com.chad.library.adapter.base.BaseQuickAdapter;
 import com.chad.library.adapter.base.listener.OnItemClickListener;
 import com.chad.library.adapter.base.listener.OnLoadMoreListener;
 import com.cooleshow.base.constanst.Constants;
+import com.cooleshow.base.router.RouterPath;
 import com.cooleshow.base.ui.fragment.BaseMVPFragment;
 import com.cooleshow.base.utils.TimeUtils;
 import com.cooleshow.teacher.R;
 import com.cooleshow.teacher.adapter.HomeworkAdapter;
 import com.cooleshow.teacher.bean.HomeworkListBean;
+import com.cooleshow.teacher.constants.TeacherConfig;
 import com.cooleshow.teacher.contract.HomeWorkContract;
 import com.cooleshow.teacher.databinding.FragmentHomeworkBinding;
 import com.cooleshow.teacher.presenter.homework.HomeWorkPresenter;
@@ -80,15 +83,18 @@ public class HomeWorkFragment extends BaseMVPFragment<FragmentHomeworkBinding, H
         LinearLayoutManager manager = new LinearLayoutManager(getContext());
         rvAddress.setLayoutManager(manager);
         homeworkAdapter = new HomeworkAdapter(dataList);
+        homeworkAdapter.setDecorate(decorate);
         LayoutInflater inflater = LayoutInflater.from(getContext());
         View emptyLayout = inflater.inflate(R.layout.layout_empty_conent, null);
         homeworkAdapter.setEmptyView(emptyLayout);
         rvAddress.setAdapter(homeworkAdapter);
-        homeworkAdapter.setOnItemClickListener(new OnItemClickListener() {
-            @Override
-            public void onItemClick(@NonNull BaseQuickAdapter<?, ?> adapter, @NonNull View view, int position) {
-
-            }
+        homeworkAdapter.setOnItemClickListener((adapter, view, position) -> {
+            List<HomeworkListBean.RowsBean> data = (List<HomeworkListBean.RowsBean>) adapter.getData();
+            HomeworkListBean.RowsBean rowsBean = data.get(position);
+            ARouter.getInstance().build(RouterPath.WorkCenter.TEACHER_WORK_ASSIGN_HOMEWORK)
+                    .withString(TeacherConfig.COURSE_ID,rowsBean.courseId)
+                    .withString(TeacherConfig.STUDENT_ID,rowsBean.studentId)
+                    .navigation();
         });
     }
 
@@ -96,23 +102,17 @@ public class HomeWorkFragment extends BaseMVPFragment<FragmentHomeworkBinding, H
 
     @Override
     protected void initData() {
-        mViewBinding.refreshLayout.setOnRefreshListener(new OnRefreshListener() {
-            @Override
-            public void onRefresh(@NonNull RefreshLayout refreshLayout) {
-                currentPage = 1;
-                queryCourse(true);
-            }
+        mViewBinding.refreshLayout.setOnRefreshListener(refreshLayout -> {
+            currentPage = 1;
+            queryCourse(true);
         });
-        homeworkAdapter.getLoadMoreModule().setOnLoadMoreListener(new OnLoadMoreListener() {
-            @Override
-            public void onLoadMore() {
-                //上拉加载
-                if (hasNext) {
-                    currentPage++;
-                    queryCourse(false);
-                } else {
-                    homeworkAdapter.getLoadMoreModule().loadMoreEnd();
-                }
+        homeworkAdapter.getLoadMoreModule().setOnLoadMoreListener(() -> {
+            //上拉加载
+            if (hasNext) {
+                currentPage++;
+                queryCourse(false);
+            } else {
+                homeworkAdapter.getLoadMoreModule().loadMoreEnd();
             }
         });
         currentPage = 1;

BIN
teacher/src/main/res/drawable-xhdpi/icon_group_fans.png


BIN
teacher/src/main/res/drawable-xxhdpi/icon_group_fans.png


+ 38 - 24
teacher/src/main/res/layout/activity_assign_homework.xml

@@ -8,9 +8,11 @@
     android:orientation="vertical"
     tools:ignore="MissingDefaultResource">
 
-    <include
-        android:id="@+id/toolbar_include"
-        layout="@layout/common_toolbar_layout" />
+    <com.cooleshow.base.widgets.ComTitleBar
+        android:id="@+id/title_view"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        app:title_text="布置作业" />
 
     <androidx.constraintlayout.widget.ConstraintLayout
         android:layout_width="match_parent"
@@ -25,6 +27,7 @@
             android:layout_width="@dimen/dp_16"
             android:layout_height="@dimen/dp_16"
             android:layout_marginLeft="11dp"
+            android:layout_marginTop="@dimen/dp_12"
             android:background="@drawable/icon_clock"
             app:layout_constraintLeft_toLeftOf="parent"
             app:layout_constraintTop_toTopOf="parent" />
@@ -86,14 +89,23 @@
             app:layout_constraintLeft_toRightOf="@+id/im_header"
             app:layout_constraintTop_toTopOf="@+id/im_header" />
 
-        <androidx.recyclerview.widget.RecyclerView
-            android:id="@+id/rv_mark"
+        <TextView
+            android:id="@+id/tv_course_name"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
-            android:layout_marginLeft="10dp"
-            android:visibility="gone"
-            app:layout_constraintBottom_toBottomOf="@+id/im_header"
-            app:layout_constraintLeft_toRightOf="@+id/im_header" />
+            android:layout_marginTop="@dimen/dp_11"
+            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_constraintLeft_toLeftOf="@+id/tv_name"
+            app:layout_constraintTop_toBottomOf="@+id/tv_name"
+            tools:text="单簧管" />
     </androidx.constraintlayout.widget.ConstraintLayout>
 
     <androidx.constraintlayout.widget.ConstraintLayout
@@ -181,13 +193,15 @@
     </androidx.constraintlayout.widget.ConstraintLayout>
 
     <androidx.constraintlayout.widget.ConstraintLayout
+        android:id="@+id/home_word_video_view"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:layout_marginLeft="14dp"
         android:layout_marginTop="12dp"
         android:layout_marginRight="14dp"
         android:background="@drawable/bg_white_10dp"
-        android:paddingBottom="10dp">
+        android:paddingBottom="10dp"
+        android:visibility="gone">
 
         <View
             android:id="@+id/view_video_work_line"
@@ -236,29 +250,29 @@
                 android:text="学员尚未上传作业视频"
                 android:textColor="@color/color_999999"
                 android:textSize="@dimen/sp_13" />
-        </FrameLayout>
-
-        <androidx.recyclerview.widget.RecyclerView
-            android:id="@+id/rv_video"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:layout_marginLeft="@dimen/dp_5"
-            android:layout_marginTop="@dimen/dp_38"
-            android:layout_marginRight="@dimen/dp_5"
-            android:layout_marginBottom="@dimen/dp_8"
-            android:visibility="visible"
-            app:layout_constraintBottom_toBottomOf="parent"
-            app:layout_constraintTop_toTopOf="parent" />
 
+            <LinearLayout
+                android:id="@+id/ll_homework_video_content"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_gravity="center_vertical"
+                android:orientation="horizontal"
+                android:weightSum="3"
+                tools:text="每个音的指法比较熟练,但是遇到指法变换比较频繁的小节熟练度不足,建议平时可以选择指法变换较大的曲目多加练习!" />
+        </FrameLayout>
 
     </androidx.constraintlayout.widget.ConstraintLayout>
 
     <androidx.constraintlayout.widget.ConstraintLayout
+        android:id="@+id/comment_view"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
+        android:layout_marginStart="@dimen/dp_14"
         android:layout_marginTop="12dp"
+        android:layout_marginEnd="@dimen/dp_14"
         android:background="@drawable/bg_white_10dp"
-        android:paddingBottom="10dp">
+        android:paddingBottom="10dp"
+        android:visibility="gone">
 
         <View
             android:id="@+id/view_title_line_homework_comment"

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

@@ -179,6 +179,7 @@
             android:layout_height="wrap_content"
             android:overScrollMode="never"
             android:scrollbars="none"
+            android:layout_marginTop="@dimen/dp_8"
             app:layout_constraintLeft_toLeftOf="@+id/view_fans_group_bg"
             app:layout_constraintRight_toRightOf="@+id/view_fans_group_bg"
             app:layout_constraintTop_toBottomOf="@+id/iv_fans_group" />

+ 32 - 1
teacher/src/main/res/layout/item_mine_style_fans_group_layout.xml

@@ -1,6 +1,37 @@
 <?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_height="wrap_content"
+    android:padding="@dimen/dp_12">
 
+    <de.hdodenhof.circleimageview.CircleImageView
+        android:id="@+id/group_aver"
+        android:layout_width="@dimen/dp_42"
+        android:layout_height="@dimen/dp_42"
+        app:layout_constraintLeft_toLeftOf="parent"
+        app:layout_constraintTop_toTopOf="parent" />
+
+    <TextView
+        android:id="@+id/group_name"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:paddingLeft="@dimen/dp_15"
+        android:textColor="@color/color_1a1a1a"
+        android:textSize="@dimen/sp_16"
+        app:layout_constraintLeft_toRightOf="@+id/group_aver"
+        app:layout_constraintTop_toTopOf="parent"
+        tools:text="竖笛学习" />
+
+    <TextView
+        android:id="@+id/group_desc"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:paddingLeft="@dimen/dp_14"
+        android:textColor="@color/color_999999"
+        android:textSize="@dimen/sp_16"
+        app:layout_constraintLeft_toRightOf="@+id/group_aver"
+        app:layout_constraintTop_toBottomOf="@+id/group_name"
+        tools:text="竖笛学习" />
 </androidx.constraintlayout.widget.ConstraintLayout>

+ 1 - 1
teacher/src/main/res/layout/layout_item_homework.xml

@@ -17,6 +17,7 @@
             android:layout_width="@dimen/dp_16"
             android:layout_height="@dimen/dp_16"
             android:layout_marginLeft="11dp"
+            android:layout_marginTop="@dimen/dp_12"
             android:background="@drawable/icon_clock"
             app:layout_constraintLeft_toLeftOf="parent"
             app:layout_constraintTop_toTopOf="parent" />
@@ -38,7 +39,6 @@
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:layout_marginRight="11dp"
-            android:text="已结束"
             android:textColor="@color/color_999999"
             android:textSize="@dimen/sp_14"
             app:layout_constraintBottom_toBottomOf="@+id/im_clock"