Browse Source

PC作业通知增加推送人id

chenw 6 years ago
parent
commit
92813ab8a1

+ 31 - 1
applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/business/service/impl/HomeWorkServiceImpl.java

@@ -11,12 +11,19 @@ import com.usoftchina.smartschool.school.dto.DocBaseDTO;
 import com.usoftchina.smartschool.school.dto.ListReqDTO;
 import com.usoftchina.smartschool.school.exception.BizExceptionCode;
 import com.usoftchina.smartschool.school.mapper.HomeWorkMapper;
+import com.usoftchina.smartschool.school.mapper.SysClazzMapper;
+import com.usoftchina.smartschool.school.mapper.SysGradeMapper;
+import com.usoftchina.smartschool.school.mapper.SysStudentMapper;
 import com.usoftchina.smartschool.school.po.HomeWork;
+import com.usoftchina.smartschool.school.po.SysClazz;
+import com.usoftchina.smartschool.school.po.SysGrade;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.util.ObjectUtils;
 import org.springframework.util.StringUtils;
 
 import java.util.List;
+import java.util.StringJoiner;
 
 /**
  * @author: guq
@@ -27,6 +34,12 @@ public class HomeWorkServiceImpl implements HomeWorkService{
 
     @Autowired
     private HomeWorkMapper homeWorkMapper;
+    @Autowired
+    private SysGradeMapper sysGradeMapper;
+    @Autowired
+    private SysClazzMapper sysClazzMapper;
+    @Autowired
+    private SysStudentMapper sysStudentMapper;
 
     @Override
     public DocBaseDTO save(HomeWork formdata) {
@@ -38,8 +51,10 @@ public class HomeWorkServiceImpl implements HomeWorkService{
         //新增
         if (StringUtils.isEmpty(formdata.getTask_id()) || "0".equals(formdata.getTask_id().toString())) {
             formdata.setTask_status(2);
+            //增加推送人(学生)信息
+            String studentIds = getNotifer(formdata.getGrade_name(), formdata.getClassz_name(), school_id);
+            formdata.setTask_notifier(studentIds);
             homeWorkMapper.insertSelective(formdata);
-
         } else {
             //更新
             homeWorkMapper.updateByPrimaryKeySelective(formdata);
@@ -97,4 +112,19 @@ public class HomeWorkServiceImpl implements HomeWorkService{
         }
         homeWorkMapper.updateByPublish(id);
     }
+
+    /**
+     * 获取推送人Ids
+     * @return
+     */
+    private String getNotifer(String gradeName, String clazzName, Long school_id){
+        //增加推送人(学生)信息
+        SysGrade sysGrade = sysGradeMapper.selectByName(gradeName, school_id);
+        if (!ObjectUtils.isEmpty(sysGrade)) {
+            SysClazz sysClazz = sysClazzMapper.selectByName(clazzName, sysGrade.getGrade_id(), school_id);
+            List<String> studentIdList = sysStudentMapper.selectIdByClazzId(sysClazz.getClazz_id());
+            return  "[" + String.join(",", studentIdList) + "]";
+        }
+        return null;
+    }
 }

+ 7 - 0
applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/mapper/SysStudentMapper.java

@@ -64,4 +64,11 @@ public interface SysStudentMapper {
     int count(@Param("stu_number") String stu_number, @Param("school_id") Long school_id);
 
     SysStudent selectNumberByKey(String stu_number);
+
+    /**
+     * 查找班级下的所有学生ID
+     * @param clazzId
+     * @return
+     */
+    List<String> selectIdByClazzId(Long clazzId);
 }

+ 4 - 0
applications/school/school-server/src/main/resources/mapper/SysStudentMapper.xml

@@ -466,4 +466,8 @@
     from sys_student
     where stu_number = #{stu_number,jdbcType=VARCHAR}
   </select>
+
+  <select id="selectIdByClazzId" resultType="string" parameterType="long">
+    SELECT stu_id FROM student WHERE clazz_id = #{clazzId}
+  </select>
 </mapper>