|
@@ -20,6 +20,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;
|
|
@@ -89,22 +90,41 @@ public class ExtracurricularExercisesServiceImpl extends BaseServiceImpl<Long, E
|
|
|
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;
|
|
|
}
|