|
@@ -2,6 +2,8 @@ package com.yonge.cooleshow.biz.dal.service.impl;
|
|
|
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
|
|
|
+import com.yonge.cooleshow.auth.api.entity.SysUser;
|
|
|
import com.yonge.cooleshow.biz.dal.dao.CourseHomeworkDao;
|
|
|
import com.yonge.cooleshow.biz.dal.dto.CourseHomeworkReviewDto;
|
|
|
import com.yonge.cooleshow.biz.dal.dto.CourseHomeworkSaveDto;
|
|
@@ -10,14 +12,16 @@ import com.yonge.cooleshow.biz.dal.dto.search.HomeworkAdminSearch;
|
|
|
import com.yonge.cooleshow.biz.dal.dto.search.HomeworkSearch;
|
|
|
import com.yonge.cooleshow.biz.dal.entity.CourseHomework;
|
|
|
import com.yonge.cooleshow.biz.dal.entity.CourseSchedule;
|
|
|
+import com.yonge.cooleshow.biz.dal.entity.CourseScheduleStudentPayment;
|
|
|
+import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
|
|
|
import com.yonge.cooleshow.biz.dal.enums.CourseScheduleEnum;
|
|
|
+import com.yonge.cooleshow.biz.dal.enums.MessageTypeEnum;
|
|
|
import com.yonge.cooleshow.biz.dal.enums.YesOrNoEnum;
|
|
|
-import com.yonge.cooleshow.biz.dal.service.CourseHomeworkService;
|
|
|
-import com.yonge.cooleshow.biz.dal.service.CourseScheduleService;
|
|
|
-import com.yonge.cooleshow.biz.dal.service.StudentCourseHomeworkService;
|
|
|
+import com.yonge.cooleshow.biz.dal.service.*;
|
|
|
import com.yonge.cooleshow.biz.dal.vo.CourseHomeworkDetailVo;
|
|
|
import com.yonge.cooleshow.biz.dal.vo.CourseHomeworkVo;
|
|
|
import com.yonge.cooleshow.common.exception.BizException;
|
|
|
+import com.yonge.toolset.thirdparty.message.MessageSenderPluginContext;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.context.annotation.Lazy;
|
|
|
import org.springframework.stereotype.Service;
|
|
@@ -25,7 +29,9 @@ import org.springframework.transaction.annotation.Transactional;
|
|
|
import org.springframework.util.CollectionUtils;
|
|
|
|
|
|
import java.util.Date;
|
|
|
+import java.util.HashMap;
|
|
|
import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
@@ -39,6 +45,15 @@ public class CourseHomeworkServiceImpl extends ServiceImpl<CourseHomeworkDao, Co
|
|
|
@Autowired
|
|
|
private StudentCourseHomeworkService studentCourseHomeworkService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private SysMessageService sysMessageService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private SysUserFeignService sysUserFeignService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private CourseScheduleStudentPaymentService courseScheduleStudentPaymentService;
|
|
|
+
|
|
|
@Override
|
|
|
public CourseHomeworkVo detail(Long id) {
|
|
|
CourseHomeworkVo detail = baseMapper.detail(id);
|
|
@@ -114,7 +129,31 @@ public class CourseHomeworkServiceImpl extends ServiceImpl<CourseHomeworkDao, Co
|
|
|
// 创建课后作业
|
|
|
CourseHomework courseHomework = getCourseHomework(saveDto, courseSchedule);
|
|
|
|
|
|
- return this.saveOrUpdate(courseHomework);
|
|
|
+ boolean flag = this.saveOrUpdate(courseHomework);
|
|
|
+
|
|
|
+ if (flag) {
|
|
|
+ // 发送给学生 ->老师布置作业消息
|
|
|
+ sendDecorateHomework(saveDto.getCourseScheduleId(), courseSchedule.getTeacherId());
|
|
|
+ }
|
|
|
+ return flag;
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 发送给学生 ->老师布置作业消息
|
|
|
+ *
|
|
|
+ * @param courseScheduleId 课程id
|
|
|
+ * @param teacherId 老师id
|
|
|
+ */
|
|
|
+ private void sendDecorateHomework(Long courseScheduleId,Long teacherId) {
|
|
|
+ CourseScheduleStudentPayment courseScheduleStudentPayment = courseScheduleStudentPaymentService.getByCourseId(
|
|
|
+ courseScheduleId);
|
|
|
+ SysUser student = sysUserFeignService.queryUserById(courseScheduleStudentPayment.getUserId());
|
|
|
+ SysUser teacher = sysUserFeignService.queryUserById(teacherId);
|
|
|
+ Map<Long,String> studentReceivers = new HashMap<>();
|
|
|
+ studentReceivers.put(student.getId(), student.getPhone());
|
|
|
+ // todo url设置
|
|
|
+ sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.TEACHER_DECORATE_HOMEWORK, studentReceivers, null, 0,null , ClientEnum.STUDENT.getCode(),teacher.getUsername(),"url");
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -153,7 +192,17 @@ public class CourseHomeworkServiceImpl extends ServiceImpl<CourseHomeworkDao, Co
|
|
|
if (!YesOrNoEnum.YES.getCode().equals(courseHomeworkDetailVo.getSubmitHomework().getCode())) {
|
|
|
throw new BizException("学生未提交作业,不能点评");
|
|
|
}
|
|
|
- return studentCourseHomeworkService.reviewCourseHome(courseHomeworkDetailVo.getStudentHomeworkId(),reviewDto.getReview());
|
|
|
+ boolean flag = studentCourseHomeworkService.reviewCourseHome(courseHomeworkDetailVo.getStudentHomeworkId(),reviewDto.getReview());
|
|
|
+ if (flag) {
|
|
|
+ // 发送消息给学生 老师点评作业
|
|
|
+ SysUser student = sysUserFeignService.queryUserById(courseHomeworkDetailVo.getStudentId());
|
|
|
+ SysUser teacher = sysUserFeignService.queryUserById(courseHomeworkDetailVo.getTeacherId());
|
|
|
+ Map<Long,String> studentReceivers = new HashMap<>();
|
|
|
+ studentReceivers.put(student.getId(), student.getPhone());
|
|
|
+ // todo url设置
|
|
|
+ sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.TEACHER_REVIEW_HOMEWORK, studentReceivers, null, 0,null , ClientEnum.STUDENT.getCode(),teacher.getUsername(),"url");
|
|
|
+ }
|
|
|
+ return flag;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -182,7 +231,17 @@ public class CourseHomeworkServiceImpl extends ServiceImpl<CourseHomeworkDao, Co
|
|
|
courseHomework.setCompletedNum(0);
|
|
|
}
|
|
|
courseHomework.setCompletedNum(courseHomework.getCompletedNum() + 1);
|
|
|
- return this.updateById(courseHomework);
|
|
|
+ this.updateById(courseHomework);
|
|
|
+
|
|
|
+ // 发送学生提交作业消息给老师
|
|
|
+ SysUser student = sysUserFeignService.queryUserById(courseHomeworkDetailVo.getStudentId());
|
|
|
+ SysUser teacher = sysUserFeignService.queryUserById(courseHomeworkDetailVo.getTeacherId());
|
|
|
+ Map<Long,String> studentReceivers = new HashMap<>();
|
|
|
+ studentReceivers.put(student.getId(), student.getPhone());
|
|
|
+ // todo url设置
|
|
|
+ sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.TEACHER_REVIEW_HOMEWORK, studentReceivers, null, 0,null , ClientEnum.STUDENT.getCode(),teacher.getUsername(),"url");
|
|
|
+ return true;
|
|
|
+
|
|
|
} else {
|
|
|
return false;
|
|
|
}
|