|
|
@@ -112,8 +112,10 @@ public class ArrangeService {
|
|
|
String[] arr = {"一", "二", "三", "四", "五", "六", "七", "八", "九", "十"};
|
|
|
String format1 = format.format(date);
|
|
|
|
|
|
+ List<Programme> byPerformanceId = programmeRepo.findAllByPerformanceIdAndStatus(dto.getPerformanceId(), 1);
|
|
|
+
|
|
|
if (dto.isMorning() && dto.isAfternoon()) {
|
|
|
- this.saveArrange(dto, group, time, format1, arr);
|
|
|
+ this.saveArrange(byPerformanceId, dto, group, time, format1, arr);
|
|
|
} else {
|
|
|
LocalTime startAt;
|
|
|
LocalTime endAt;
|
|
|
@@ -153,7 +155,7 @@ public class ArrangeService {
|
|
|
.morning(morning)
|
|
|
.build();
|
|
|
|
|
|
- Map<String, String> programmes = programmeService.group(arrange);
|
|
|
+ Map<String, String> programmes = programmeService.group(byPerformanceId, arrange);
|
|
|
List<Programme> programmeList = JSONObject.parseArray(programmes.get("programmes"), Programme.class);
|
|
|
List<Long> ids = programmeList.stream()
|
|
|
.map(Programme::getSpecialtyId)
|
|
|
@@ -184,11 +186,12 @@ public class ArrangeService {
|
|
|
|
|
|
}
|
|
|
|
|
|
- public void saveArrange(ArrangeDTO dto, int group, int time, String format1, String[] arr) {
|
|
|
+ public void saveArrange(List<Programme> byPerformanceId, ArrangeDTO dto, int group, int time, String format1, String[] arr) {
|
|
|
LocalDate date = dto.getStartDate();
|
|
|
LocalTime startTime = dto.getMorningStartTime();
|
|
|
boolean morning = true;
|
|
|
int j = 0;
|
|
|
+
|
|
|
for (int i = 0; i < group; i++) {
|
|
|
LocalTime endTime = startTime.plusMinutes(time);
|
|
|
// if (!endTime.isBefore(dto.getMorningEndTime())) {
|
|
|
@@ -212,7 +215,7 @@ public class ArrangeService {
|
|
|
.morning(morning)
|
|
|
.build();
|
|
|
|
|
|
- Map<String, String> programmes = programmeService.group(arrange);
|
|
|
+ Map<String, String> programmes = programmeService.group(byPerformanceId, arrange);
|
|
|
List<Programme> programmeList = JSONObject.parseArray(programmes.get("programmes"), Programme.class);
|
|
|
List<Long> ids = programmeList.stream()
|
|
|
.map(Programme::getSpecialtyId)
|
|
|
@@ -287,4 +290,41 @@ public class ArrangeService {
|
|
|
}), JpaUtils.toPageRequest(pageQuery));
|
|
|
}
|
|
|
|
|
|
+ public void groupOffline(ArrangeDTO dto) {
|
|
|
+ Arrange first = arrangeRepo.findFirstByPerformanceId(dto.getPerformanceId());
|
|
|
+ if (ObjectUtil.isNotNull(first) && first.isPublish()) {
|
|
|
+ throw new BusinessException("活动分组已发布");
|
|
|
+ }
|
|
|
+ List<Programme> byPerformanceId = programmeRepo.findAllByPerformanceIdAndStatus(dto.getPerformanceId(), 1);
|
|
|
+ int group = (int) Math.ceil((double) byPerformanceId.size() / dto.getQuantity());
|
|
|
+
|
|
|
+ for (int i = 0; i < group; i++) {
|
|
|
+ Arrange arrange = Arrange.builder()
|
|
|
+ .performanceId(dto.getPerformanceId())
|
|
|
+ .quantity(dto.getQuantity())
|
|
|
+ .specialtyId(dto.getSpecialtyId())
|
|
|
+ .name("第" + i + 1 + "场")
|
|
|
+ .build();
|
|
|
+
|
|
|
+ Map<String, String> programmes = programmeService.group(byPerformanceId, arrange);
|
|
|
+ List<Programme> programmeList = JSONObject.parseArray(programmes.get("programmes"), Programme.class);
|
|
|
+ List<Long> ids = programmeList.stream()
|
|
|
+ .map(Programme::getSpecialtyId)
|
|
|
+ .distinct()
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ arrange.setSpecialtyId(ids);
|
|
|
+ arrange.setQuantity(programmeList.size());
|
|
|
+ arrange = arrangeRepo.save(arrange);
|
|
|
+
|
|
|
+ programmeService.saveAll(programmeList, arrange.getId());
|
|
|
+
|
|
|
+ // 插入节目
|
|
|
+ if (!Boolean.parseBoolean(programmes.get("flag"))) {
|
|
|
+ //不需要这么多分组
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
}
|