| 
					
				 | 
			
			
				@@ -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; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 |