Browse Source

老师端评价增加VIP课

周箭河 5 years ago
parent
commit
dbf978e53d

+ 12 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/page/CourseReview4EduQueryInfo.java

@@ -1,6 +1,7 @@
 package com.ym.mec.biz.dal.page;
 
 import com.ym.mec.common.page.QueryInfo;
+import com.ym.mec.biz.dal.entity.CourseSchedule.CourseScheduleType;
 import io.swagger.annotations.ApiModelProperty;
 
 /**
@@ -20,6 +21,9 @@ public class CourseReview4EduQueryInfo extends QueryInfo {
     @ApiModelProperty(value = "是否完成双向沟通 1-是 0-否",required = false)
     private Integer hasLiaison;
 
+    @ApiModelProperty(value = "课程类型",required = false)
+    private CourseScheduleType type;
+
     @ApiModelProperty(value = "开始时间",required = false)
     private String startTime;
 
@@ -74,4 +78,12 @@ public class CourseReview4EduQueryInfo extends QueryInfo {
     public void setHasLiaison(Integer hasLiaison) {
         this.hasLiaison = hasLiaison;
     }
+
+    public CourseScheduleType getType() {
+        return type;
+    }
+
+    public void setType(CourseScheduleType type) {
+        this.type = type;
+    }
 }

+ 12 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/CourseReviewService.java

@@ -1,12 +1,14 @@
 package com.ym.mec.biz.service;
 
 import com.ym.mec.biz.dal.dto.*;
+import com.ym.mec.biz.dal.entity.CourseHomework;
 import com.ym.mec.biz.dal.entity.CourseScheduleReview;
 import com.ym.mec.biz.dal.page.CourseReview4EduQueryInfo;
 import com.ym.mec.biz.dal.page.CourseReviewQueryInfo;
 import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.service.BaseService;
 
+import java.util.Date;
 import java.util.List;
 
 
@@ -96,4 +98,14 @@ public interface CourseReviewService extends BaseService<Integer, CourseSchedule
 	 */
 	PageInfo<CourseReviewDto> findOnlineCourseReviews(CourseReviewQueryInfo queryInfo);
 
+	/**
+	 * 布置线上课作业
+	 * @param courseScheduleId
+	 * @param content
+	 * @param expiryDate
+	 * @return
+	 */
+	CourseHomework addHomeWork(Integer courseScheduleId,String content, Date expiryDate);
+
+
 }

+ 88 - 13
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseReviewServiceImpl.java

@@ -173,11 +173,11 @@ public class CourseReviewServiceImpl extends BaseServiceImpl<Integer, CourseSche
         Integer studentId = null;
         Integer educationalTeacherId = null;
 
-        if(courseSchedule.getType().equals(CourseSchedule.CourseScheduleType.PRACTICE)){
+        if (courseSchedule.getType().equals(CourseSchedule.CourseScheduleType.PRACTICE)) {
             PracticeGroup practiceGroup = practiceGroupDao.get(Long.parseLong(courseSchedule.getMusicGroupId()));
             studentId = practiceGroup.getStudentId();
             educationalTeacherId = practiceGroup.getEducationalTeacherId();
-        }else if(courseSchedule.getType().equals(CourseSchedule.CourseScheduleType.VIP)){
+        } else if (courseSchedule.getType().equals(CourseSchedule.CourseScheduleType.VIP)) {
             VipGroup vipGroup = vipGroupDao.get(Long.parseLong(courseSchedule.getMusicGroupId()));
             educationalTeacherId = vipGroup.getEducationalTeacherId();
         }
@@ -202,12 +202,12 @@ public class CourseReviewServiceImpl extends BaseServiceImpl<Integer, CourseSche
             CourseHomework courseHomework = new CourseHomework();
             List<CourseScheduleStudentPayment> courseScheduleStudentPayments = courseScheduleStudentPaymentDao.findByCourseSchedule(courseSchedule.getId());
 
-            if(Objects.nonNull(existHomework)){
+            if (Objects.nonNull(existHomework)) {
                 courseHomework.setId(existHomework.getId());
                 courseHomework.setContent(courseScheduleReview.getHomeWork());
                 courseHomework.setExpiryDate(DateUtil.addDays(date, 7));
                 courseHomeworkService.update(courseHomework);
-            }else{
+            } else {
                 courseHomework.setContent(courseScheduleReview.getHomeWork());
                 courseHomework.setCourseScheduleId(courseSchedule.getId());
                 courseHomework.setMusicGroupId(courseSchedule.getMusicGroupId());
@@ -224,7 +224,7 @@ public class CourseReviewServiceImpl extends BaseServiceImpl<Integer, CourseSche
                 String dateStr = DateUtil.dateToString(DateUtil.addDays(date, 3), "MM月dd日");
                 for (CourseScheduleStudentPayment courseScheduleStudentPayment : courseScheduleStudentPayments) {
                     StudentCourseHomework studentCourseHomework = new StudentCourseHomework();
-                    if(Objects.isNull(existHomework)){
+                    if (Objects.isNull(existHomework)) {
                         studentCourseHomework.setCourseHomeworkId(courseHomework.getId());
                         studentCourseHomework.setUserId(courseScheduleStudentPayment.getUserId());
                         studentCourseHomework.setCourseScheduleId(courseSchedule.getId());
@@ -235,7 +235,7 @@ public class CourseReviewServiceImpl extends BaseServiceImpl<Integer, CourseSche
                         studentCourseHomework.setIsReplied(YesOrNoEnum.NO);
                         studentCourseHomework.setIsRepliedTimely(0);
                         studentCourseHomeworkDao.insert(studentCourseHomework);
-                    }else{
+                    } else {
                         studentCourseHomework = studentCourseHomeworkDao.findByStudentAndCourseHomewok(existHomework.getId(), courseScheduleStudentPayment.getUserId());
                     }
 
@@ -243,17 +243,17 @@ public class CourseReviewServiceImpl extends BaseServiceImpl<Integer, CourseSche
                     userMap.put(courseScheduleStudentPayment.getUserId(), courseScheduleStudentPayment.getUserId().toString());
                     String notifyUrl = "?courseScheduleID=" + courseSchedule.getId() + "&studentCourseHomeworkId=" + studentCourseHomework.getId() + "&extra=0";
                     String extra = "dayaedu" + notifyUrl + "&userId=" + courseScheduleStudentPayment.getUserId();
-                    if (courseScheduleReview.getMsgType() != ImSendTypeEnum.TXT){
-                        sysMessageService.batchSendImMessage(MessageTypeEnum.IM_HOMEWORK_REMIND_DETAIL,courseScheduleReview.getTeacherId().toString(),extra,
+                    if (courseScheduleReview.getMsgType() != ImSendTypeEnum.TXT) {
+                        sysMessageService.batchSendImMessage(MessageTypeEnum.IM_HOMEWORK_REMIND_DETAIL, courseScheduleReview.getTeacherId().toString(), extra,
                                 new String[]{courseScheduleStudentPayment.getUserId().toString()},
-                                null,courseSchedule.getName(), dateStr,courseHomework.getContent());
-                    }else {
-                        sysMessageService.batchSendImMessage(MessageTypeEnum.IM_HOMEWORK_REMIND,courseScheduleReview.getTeacherId().toString(),extra,
+                                null, courseSchedule.getName(), dateStr, courseHomework.getContent());
+                    } else {
+                        sysMessageService.batchSendImMessage(MessageTypeEnum.IM_HOMEWORK_REMIND, courseScheduleReview.getTeacherId().toString(), extra,
                                 new String[]{courseScheduleStudentPayment.getUserId().toString()},
-                                null,courseSchedule.getName(), dateStr,courseHomework.getContent());
+                                null, courseSchedule.getName(), dateStr, courseHomework.getContent());
                     }
                     sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.HOMEWORK_REMIND,
-                            userMap, null, 0, 3+notifyUrl, "STUDENT", teacher.getRealName(), courseSchedule.getName(), dateStr);
+                            userMap, null, 0, 3 + notifyUrl, "STUDENT", teacher.getRealName(), courseSchedule.getName(), dateStr);
                 }
             }
         }
@@ -528,4 +528,79 @@ public class CourseReviewServiceImpl extends BaseServiceImpl<Integer, CourseSche
         pageInfo.setRows(dataList);
         return pageInfo;
     }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class, isolation = Isolation.READ_COMMITTED)
+    public CourseHomework addHomeWork(Integer courseScheduleId, String content, Date expiryDate) {
+        if (StringUtils.isBlank(content)) {
+            throw new BizException("作业内容不能为空");
+        }
+        if (courseScheduleId == null || courseScheduleId <= 0) {
+            throw new BizException("课程id必须大于0");
+        }
+        Date date = new Date();
+        CourseSchedule courseSchedule = courseScheduleDao.get(courseScheduleId.longValue());
+        if (courseSchedule == null) {
+            throw new BizException("课程不存在");
+        }
+        studentDao.lockUser(courseSchedule.getActualTeacherId());
+
+        CourseHomework existHomework = courseHomeworkDao.findByCourseSchedule(courseScheduleId.longValue());
+
+        //新增课堂作业
+        CourseHomework courseHomework = new CourseHomework();
+        List<CourseScheduleStudentPayment> courseScheduleStudentPayments = courseScheduleStudentPaymentDao.findByCourseSchedule(courseSchedule.getId());
+
+        if (Objects.nonNull(existHomework)) {
+            courseHomework.setId(existHomework.getId());
+            courseHomework.setContent(content);
+            courseHomework.setExpiryDate(expiryDate);
+            courseHomeworkService.update(courseHomework);
+        } else {
+            courseHomework.setContent(content);
+            courseHomework.setCourseScheduleId(courseSchedule.getId());
+            courseHomework.setMusicGroupId(courseSchedule.getMusicGroupId());
+            courseHomework.setGroupType(courseSchedule.getGroupType());
+            courseHomework.setClassGroupId(courseSchedule.getClassGroupId());
+            courseHomework.setExpiryDate(expiryDate);
+            courseHomework.setExpectNum(CollectionUtils.isEmpty(courseScheduleStudentPayments) ? 0 : courseScheduleStudentPayments.size());
+            courseHomeworkService.insert(courseHomework);
+        }
+
+        if (!CollectionUtils.isEmpty(courseScheduleStudentPayments)) {
+            Teacher teacher = teacherDao.get(courseSchedule.getActualTeacherId());
+            String dateStr = DateUtil.dateToString(DateUtil.addDays(date, 3), "MM月dd日");
+            for (CourseScheduleStudentPayment courseScheduleStudentPayment : courseScheduleStudentPayments) {
+                StudentCourseHomework studentCourseHomework = new StudentCourseHomework();
+                if (Objects.isNull(existHomework)) {
+                    studentCourseHomework.setCourseHomeworkId(courseHomework.getId());
+                    studentCourseHomework.setUserId(courseScheduleStudentPayment.getUserId());
+                    studentCourseHomework.setCourseScheduleId(courseSchedule.getId());
+                    studentCourseHomework.setCreateTime(date);
+                    studentCourseHomework.setUpdateTime(date);
+                    studentCourseHomework.setStatus(YesOrNoEnum.NO);
+                    studentCourseHomework.setIsView(YesOrNoEnum.NO);
+                    studentCourseHomework.setIsReplied(YesOrNoEnum.NO);
+                    studentCourseHomework.setIsRepliedTimely(0);
+                    studentCourseHomeworkDao.insert(studentCourseHomework);
+                } else {
+                    studentCourseHomework = studentCourseHomeworkDao.findByStudentAndCourseHomewok(existHomework.getId(), courseScheduleStudentPayment.getUserId());
+                }
+
+                Map<Integer, String> userMap = new HashMap<>();
+                userMap.put(courseScheduleStudentPayment.getUserId(), courseScheduleStudentPayment.getUserId().toString());
+                String notifyUrl = "?courseScheduleID=" + courseSchedule.getId() + "&studentCourseHomeworkId=" + studentCourseHomework.getId() + "&extra=0";
+                String extra = "dayaedu" + notifyUrl + "&userId=" + courseScheduleStudentPayment.getUserId();
+
+                sysMessageService.batchSendImMessage(MessageTypeEnum.IM_HOMEWORK_REMIND, courseSchedule.getActualTeacherId().toString(), extra,
+                        new String[]{courseScheduleStudentPayment.getUserId().toString()},
+                        null, courseSchedule.getName(), dateStr, courseHomework.getContent());
+
+                sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.HOMEWORK_REMIND,
+                        userMap, null, 0, 3 + notifyUrl, "STUDENT", teacher.getRealName(), courseSchedule.getName(), dateStr);
+            }
+        }
+
+        return courseHomework;
+    }
 }

+ 6 - 5
mec-biz/src/main/resources/config/mybatis/CourseScheduleReviewMapper.xml

@@ -278,8 +278,11 @@
 
     <sql id="practiceGroupReviews4EduQueryCondition">
         <where>
+            <if test="type != null">
+                AND cs.type_=#{type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
+            </if>
             <if test="eduTeacherId != null">
-                AND pg.educational_teacher_id_=#{eduTeacherId}
+                AND csr.educational_teacher_id_=#{eduTeacherId}
             </if>
             <if test='hasReview !=null and hasReview=="1"'>
                 AND csr.course_review_ IS NOT NULL
@@ -309,10 +312,9 @@
     </sql>
 
     <select id="getPracticeGroupReview4EduList" resultMap="CourseScheduleReview">
-        SELECT csr.id_,cs.class_date_, pg.name_ course_name_,su.real_name_ teacher_name_,csr.hand_homework_
+        SELECT csr.id_,cs.class_date_, cs.name_ course_name_,su.real_name_ teacher_name_,csr.hand_homework_
         FROM course_schedule_review csr
         LEFT JOIN course_schedule cs on cs.id_ = csr.course_schedule_id_
-        LEFT JOIN practice_group pg ON cs.music_group_id_ = pg.id_ AND cs.group_type_='PRACTICE'
         LEFT JOIN sys_user su ON cs.actual_teacher_id_ = su.id_
         <include refid="practiceGroupReviews4EduQueryCondition"/>
         <include refid="global.limit"/>
@@ -322,7 +324,6 @@
     <select id="countPracticeGroupReviews4Edu" resultType="java.lang.Integer">
         SELECT count(*) FROM course_schedule_review csr
         LEFT JOIN course_schedule cs on cs.id_ = csr.course_schedule_id_
-        LEFT JOIN practice_group pg ON cs.music_group_id_ = pg.id_ AND cs.group_type_='PRACTICE'
         <include refid="practiceGroupReviews4EduQueryCondition"/>
     </select>
 
@@ -413,7 +414,7 @@
 
     <sql id="courseReviewsQueryCondition">
         <where>
-            AND cs.type_ IN ('PRACTICE','VIP','HIGH_ONLINE','MUSIC_NETWORK') AND cs.teach_mode_='ONLINE' AND cs.status_='OVER' AND (cs.del_flag_ = 0 OR cs.del_flag_ IS NULL)
+            AND cs.type_ IN ('PRACTICE','VIP') AND cs.teach_mode_='ONLINE' AND cs.status_='OVER' AND (cs.del_flag_ = 0 OR cs.del_flag_ IS NULL)
             <if test="search!=null and search!=''">
                 AND (cs.name_ LIKE CONCAT('%',#{search},'%') OR cs.id_= #{search})
             </if>

+ 16 - 0
mec-teacher/src/main/java/com/ym/mec/teacher/controller/CourseReviewController.java

@@ -8,11 +8,14 @@ import com.ym.mec.biz.service.CourseReviewService;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.entity.HttpResponseResult;
 import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.*;
 
+import java.util.Date;
 import java.util.List;
 import java.util.Objects;
 
@@ -102,4 +105,17 @@ public class CourseReviewController extends BaseController {
         return succeed(courseReviewService.findOnlineCourseReviews(queryInfo));
     }
 
+    @ApiOperation(value = "布置先上课作业")
+    @PostMapping(value = "/addHomeWork")
+    @ApiImplicitParams({ @ApiImplicitParam(name = "courseId", value = "课程编号", required = true, dataType = "Integer"),
+            @ApiImplicitParam(name = "content", value = "作业内容", required = true, dataType = "String"),
+            @ApiImplicitParam(name = "expireDate", value = "作业截止日期", required = true, dataType = "Date")})
+    public HttpResponseResult addHomeWork(Integer courseId, String content, Date expiryDate) {
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if (Objects.isNull(sysUser)) {
+            return failed(HttpStatus.FORBIDDEN, "请登录");
+        }
+        return succeed(courseReviewService.addHomeWork(courseId,content,expiryDate));
+    }
+
 }

+ 5 - 0
mec-web/src/main/java/com/ym/mec/web/controller/education/EduCourseReviewController.java

@@ -54,6 +54,11 @@ public class EduCourseReviewController extends BaseController {
     @ApiOperation(value = "教务评论")
     @GetMapping("updateReviewInfo")
     public HttpResponseResult updateReviewInfo(CourseScheduleReview courseScheduleReview) {
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if (sysUser == null) {
+            return failed("用户信息获取失败");
+        }
+        courseScheduleReview.setEducationalTeacherId(sysUser.getId());
         return succeed(courseReviewService.updateReview(courseScheduleReview));
     }