Forráskód Böngészése

Merge branch 'master' of http://git.dayaedu.com/yonge/mec

yonge 5 éve
szülő
commit
5b7bf5e45b

+ 9 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ExtracurricularExercisesReplyDao.java

@@ -31,6 +31,15 @@ public interface ExtracurricularExercisesReplyDao extends BaseDAO<Long, Extracur
                                                              @Param("studentName") String studentName);
 
     /**
+     * @describe 根据课外作业获取对应的学生列表
+     * @author Joburgess
+     * @date 2020/3/26
+     * @param extraExerciseIds:
+     * @return java.util.List<com.ym.mec.biz.dal.entity.ExtracurricularExercisesReply>
+     */
+    List<ExtracurricularExercisesReply> findExtraExerciseStudentsByExtraExercises(@Param("extraExerciseIds") List<Long> extraExerciseIds);
+
+    /**
      * @describe 获取学生课外训练详情
      * @author Joburgess
      * @date 2020/3/26

+ 21 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/ExtracurricularExercises.java

@@ -42,7 +42,27 @@ public class ExtracurricularExercises {
 	
 	/**  */
 	private java.util.Date updateTime;
-	
+
+	private int isReplied;
+
+	private int isSubmit;
+
+	public int getIsReplied() {
+		return isReplied;
+	}
+
+	public void setIsReplied(int isReplied) {
+		this.isReplied = isReplied;
+	}
+
+	public int getIsSubmit() {
+		return isSubmit;
+	}
+
+	public void setIsSubmit(int isSubmit) {
+		this.isSubmit = isSubmit;
+	}
+
 	public void setId(Long id){
 		this.id = id;
 	}

+ 33 - 15
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ExtracurricularExercisesServiceImpl.java

@@ -11,7 +11,6 @@ import com.ym.mec.biz.service.ExtracurricularExercisesService;
 import com.ym.mec.biz.service.SysMessageService;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.exception.BizException;
-import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
 import com.ym.mec.util.collection.MapUtil;
 import com.ym.mec.util.date.DateUtil;
@@ -20,6 +19,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Isolation;
 import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.CollectionUtils;
 
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
@@ -86,25 +86,43 @@ public class ExtracurricularExercisesServiceImpl extends BaseServiceImpl<Long, E
 
 	@Override
 	public List<Map<String, Object>> findExtraExercilses(ExtraExercilseQueryInfo queryInfo) {
-		PageInfo<ExtracurricularExercises> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
 		Map<String, Object> params = new HashMap<>();
 		MapUtil.populateMap(params, queryInfo);
+		List<Map<String, Object>> result = new ArrayList<>();
 
 		List<ExtracurricularExercises> dataList = extracurricularExercisesDao.findExtraExercises(params);
-		Map<String, List<ExtracurricularExercises>> collect = dataList.stream().collect(Collectors.groupingBy(e -> DateUtil.dateToString(e.getCreateTime(), "yyyy-MM-dd")));
+		if(!CollectionUtils.isEmpty(dataList)){
+			List<Long> extraExerciseIds = dataList.stream().map(ExtracurricularExercises::getId).collect(Collectors.toList());
+			List<ExtracurricularExercisesReply> extraExerciseStudentsByExtraExercises = extracurricularExercisesReplyDao.findExtraExerciseStudentsByExtraExercises(extraExerciseIds);
+			Map<Long, List<ExtracurricularExercisesReply>> idStudentsMap = extraExerciseStudentsByExtraExercises.stream().collect(Collectors.groupingBy(ExtracurricularExercisesReply::getExtracurricularExercisesId));
+			for (ExtracurricularExercises extracurricularExercises : dataList) {
+				List<ExtracurricularExercisesReply> extracurricularExercisesReplies = idStudentsMap.get(extracurricularExercises.getId());
+				if(CollectionUtils.isEmpty(extracurricularExercisesReplies)){
+					continue;
+				}
+				long repliedNum = extracurricularExercisesReplies.stream().filter(e -> e.getIsReplied() == 0).count();
+				if(repliedNum<=0){
+					extracurricularExercises.setIsReplied(1);
+				}
+				long submitNum = extracurricularExercisesReplies.stream().filter(e -> e.getIsView() == 1).count();
+				if(submitNum>0){
+					extracurricularExercises.setIsSubmit(1);
+				}
+			}
 
-		List<Map<String, Object>> result = new ArrayList<>();
-		List<Date> dates=new ArrayList<>();
-		collect.keySet().forEach(ds-> dates.add(DateUtil.stringToDate(ds,"yyyy-MM-dd")));
-		dates.sort(Comparator.comparing(Date::getTime));
-		dates.sort(Comparator.reverseOrder());
-		for (Date date : dates) {
-			String key=DateUtil.dateToString(date, "yyyy-MM-dd");
-			Map<String, Object> r = new HashMap<>();
-			r.put("day", key);
-			collect.get(key).sort(Comparator.comparing(ExtracurricularExercises::getCreateTime).reversed());
-			r.put("list", collect.get(key));
-			result.add(r);
+			Map<String, List<ExtracurricularExercises>> collect = dataList.stream().collect(Collectors.groupingBy(e -> DateUtil.dateToString(e.getCreateTime(), "yyyy-MM-dd")));
+			List<Date> dates=new ArrayList<>();
+			collect.keySet().forEach(ds-> dates.add(DateUtil.stringToDate(ds,"yyyy-MM-dd")));
+			dates.sort(Comparator.comparing(Date::getTime));
+			dates.sort(Comparator.reverseOrder());
+			for (Date date : dates) {
+				String key=DateUtil.dateToString(date, "yyyy-MM-dd");
+				Map<String, Object> r = new HashMap<>();
+				r.put("day", key);
+				collect.get(key).sort(Comparator.comparing(ExtracurricularExercises::getCreateTime).reversed());
+				r.put("list", collect.get(key));
+				result.add(r);
+			}
 		}
 		return result;
 	}

+ 1 - 1
mec-biz/src/main/resources/config/mybatis/ExtracurricularExercisesMapper.xml

@@ -101,7 +101,7 @@
 				teacher_id_=#{teacherId}
 			</if>
 			<if test="createTime!=null">
-				AND DATE_FORMAT(create_time_, '%Y-%m-%d') = DATE_FORMAT(#{createTime}, '%Y-%m-%d')
+				AND DATE_FORMAT(create_time_, '%Y-%m') = DATE_FORMAT(#{createTime}, '%Y-%m')
 			</if>
 		</where>
 	</sql>

+ 9 - 1
mec-biz/src/main/resources/config/mybatis/ExtracurricularExercisesReplyMapper.xml

@@ -116,6 +116,14 @@
 			AND su.username_ LIKE CONCAT('%',#{studentName},'%')
 		</if>
 	</select>
+
+	<select id="findExtraExerciseStudentsByExtraExercises" resultMap="ExtracurricularExercisesReply">
+		SELECT * FROM extracurricular_exercises_reply WHERE extracurricular_exercises_id_ IN
+		<foreach collection="extraExerciseIds" item="extraExerciseId" open="(" close=")" separator=",">
+			#{extraExerciseId}
+		</foreach>
+	</select>
+
 	<select id="findExtraExerciseReply" resultMap="ExtraExerciseStudentsDto">
 		SELECT
 			eer.*,
@@ -138,7 +146,7 @@
 				AND eer.user_id_=#{studentId}
 			</if>
 			<if test="createTime!=null">
-				AND DATE_FORMAT(eer.create_time_, '%Y-%m-%d') = DATE_FORMAT(#{createTime}, '%Y-%m-%d')
+				AND DATE_FORMAT(eer.create_time_, '%Y-%m') = DATE_FORMAT(#{createTime}, '%Y-%m')
 			</if>
 		</where>
 	</sql>