|  | @@ -13,6 +13,7 @@ import com.aidex.system.domain.SysConfig;
 | 
												
													
														
															|  |  import com.aidex.system.domain.SysWharf;
 |  |  import com.aidex.system.domain.SysWharf;
 | 
												
													
														
															|  |  import com.aidex.system.mapper.SysReservationDataMapper;
 |  |  import com.aidex.system.mapper.SysReservationDataMapper;
 | 
												
													
														
															|  |  import com.aidex.system.req.SysReservationConfigReq;
 |  |  import com.aidex.system.req.SysReservationConfigReq;
 | 
												
													
														
															|  | 
 |  | +import com.aidex.system.req.SysReservationConfigTimeDurationReq;
 | 
												
													
														
															|  |  import com.aidex.system.service.SysWharfService;
 |  |  import com.aidex.system.service.SysWharfService;
 | 
												
													
														
															|  |  import com.alibaba.fastjson2.JSON;
 |  |  import com.alibaba.fastjson2.JSON;
 | 
												
													
														
															|  |  import com.alibaba.fastjson2.JSONArray;
 |  |  import com.alibaba.fastjson2.JSONArray;
 | 
												
											
												
													
														
															|  | @@ -127,7 +128,7 @@ public class SysReservationConfigServiceImpl extends BaseServiceImpl<SysReservat
 | 
												
													
														
															|  |      public int batchInsert(List<SysReservationConfig> list) {
 |  |      public int batchInsert(List<SysReservationConfig> list) {
 | 
												
													
														
															|  |          return mapper.batchInsert(list);
 |  |          return mapper.batchInsert(list);
 | 
												
													
														
															|  |      }
 |  |      }
 | 
												
													
														
															|  | -    @Transactional(readOnly = false)
 |  | 
 | 
												
													
														
															|  | 
 |  | +    /*@Transactional(readOnly = false)
 | 
												
													
														
															|  |      @Override
 |  |      @Override
 | 
												
													
														
															|  |      public int addBySysReservationConfigReq(SysReservationConfigReq sysReservationConfigReq) {
 |  |      public int addBySysReservationConfigReq(SysReservationConfigReq sysReservationConfigReq) {
 | 
												
													
														
															|  |          SysConfig routeStartConfig =  ConfigUtils.getConfigByKey("sys.route.start");
 |  |          SysConfig routeStartConfig =  ConfigUtils.getConfigByKey("sys.route.start");
 | 
												
											
												
													
														
															|  | @@ -224,6 +225,57 @@ public class SysReservationConfigServiceImpl extends BaseServiceImpl<SysReservat
 | 
												
													
														
															|  |              }
 |  |              }
 | 
												
													
														
															|  |          }
 |  |          }
 | 
												
													
														
															|  |          return 0;
 |  |          return 0;
 | 
												
													
														
															|  | 
 |  | +    }*/
 | 
												
													
														
															|  | 
 |  | +
 | 
												
													
														
															|  | 
 |  | +    @Transactional(readOnly = false)
 | 
												
													
														
															|  | 
 |  | +    @Override
 | 
												
													
														
															|  | 
 |  | +    public int addBySysReservationConfigReq(SysReservationConfigReq sysReservationConfigReq) {
 | 
												
													
														
															|  | 
 |  | +        List<SysReservationConfig> list = new ArrayList<>();
 | 
												
													
														
															|  | 
 |  | +        if(sysReservationConfigReq.getSysReservationConfigTimeDurationReqList() != null){
 | 
												
													
														
															|  | 
 |  | +            Date startDate = sysReservationConfigReq.getStartDate();
 | 
												
													
														
															|  | 
 |  | +            Date endDate = sysReservationConfigReq.getEndDate();
 | 
												
													
														
															|  | 
 |  | +            long days = DateUtil.between(startDate,endDate, DateUnit.DAY);
 | 
												
													
														
															|  | 
 |  | +            if(days > 0){
 | 
												
													
														
															|  | 
 |  | +                for(int i = 0; i <= days; i++){
 | 
												
													
														
															|  | 
 |  | +                    DateTime date = DateUtil.offsetDay(startDate, i);
 | 
												
													
														
															|  | 
 |  | +                    for (SysReservationConfigTimeDurationReq item : sysReservationConfigReq.getSysReservationConfigTimeDurationReqList()){
 | 
												
													
														
															|  | 
 |  | +                        SysReservationConfig sysReservationConfig = new SysReservationConfig();
 | 
												
													
														
															|  | 
 |  | +                        sysReservationConfig.setReservationDate(date);
 | 
												
													
														
															|  | 
 |  | +                        // 开始时间
 | 
												
													
														
															|  | 
 |  | +                        String startTime = DateUtil.formatDate(date) + " " + item.getStartTime();
 | 
												
													
														
															|  | 
 |  | +                        sysReservationConfig.setReservationStartTime(DateUtil.parseDateTime(startTime));
 | 
												
													
														
															|  | 
 |  | +                        // 结束时间
 | 
												
													
														
															|  | 
 |  | +                        String endTime = DateUtil.formatDate(date) + " " + item.getEndTime();
 | 
												
													
														
															|  | 
 |  | +                        sysReservationConfig.setReservationEndTime(DateUtil.parseDateTime(endTime));
 | 
												
													
														
															|  | 
 |  | +                        sysReservationConfig.setEnableNum((long) item.getEnableNum());
 | 
												
													
														
															|  | 
 |  | +                        sysReservationConfig.setStatus(sysReservationConfigReq.getStatus());
 | 
												
													
														
															|  | 
 |  | +                        sysReservationConfig.setEnableWharf(sysReservationConfigReq.getEnableWharf());
 | 
												
													
														
															|  | 
 |  | +                        sysReservationConfig.setId(IdUtil.simpleUUID());
 | 
												
													
														
															|  | 
 |  | +                        list.add(sysReservationConfig);
 | 
												
													
														
															|  | 
 |  | +                    }
 | 
												
													
														
															|  | 
 |  | +                }
 | 
												
													
														
															|  | 
 |  | +                return mapper.batchInsert(list);
 | 
												
													
														
															|  | 
 |  | +            } else {
 | 
												
													
														
															|  | 
 |  | +                DateTime date = DateUtil.offsetDay(startDate, 0);
 | 
												
													
														
															|  | 
 |  | +                for (SysReservationConfigTimeDurationReq item : sysReservationConfigReq.getSysReservationConfigTimeDurationReqList()){
 | 
												
													
														
															|  | 
 |  | +                    SysReservationConfig sysReservationConfig = new SysReservationConfig();
 | 
												
													
														
															|  | 
 |  | +                    sysReservationConfig.setReservationDate(date);
 | 
												
													
														
															|  | 
 |  | +                    // 开始时间
 | 
												
													
														
															|  | 
 |  | +                    String startTime = DateUtil.formatDate(date) + " " + item.getStartTime();
 | 
												
													
														
															|  | 
 |  | +                    sysReservationConfig.setReservationStartTime(DateUtil.parseDateTime(startTime));
 | 
												
													
														
															|  | 
 |  | +                    // 结束时间
 | 
												
													
														
															|  | 
 |  | +                    String endTime = DateUtil.formatDate(date) + " " + item.getEndTime();
 | 
												
													
														
															|  | 
 |  | +                    sysReservationConfig.setReservationEndTime(DateUtil.parseDateTime(endTime));
 | 
												
													
														
															|  | 
 |  | +                    sysReservationConfig.setEnableNum((long) item.getEnableNum());
 | 
												
													
														
															|  | 
 |  | +                    sysReservationConfig.setStatus(sysReservationConfigReq.getStatus());
 | 
												
													
														
															|  | 
 |  | +                    sysReservationConfig.setEnableWharf(sysReservationConfigReq.getEnableWharf());
 | 
												
													
														
															|  | 
 |  | +                    sysReservationConfig.setId(IdUtil.simpleUUID());
 | 
												
													
														
															|  | 
 |  | +                    list.add(sysReservationConfig);
 | 
												
													
														
															|  | 
 |  | +                }
 | 
												
													
														
															|  | 
 |  | +                return mapper.batchInsert(list);
 | 
												
													
														
															|  | 
 |  | +            }
 | 
												
													
														
															|  | 
 |  | +        }
 | 
												
													
														
															|  | 
 |  | +        return 0;
 | 
												
													
														
															|  |      }
 |  |      }
 | 
												
													
														
															|  |  
 |  |  
 | 
												
													
														
															|  |      @Override
 |  |      @Override
 | 
												
											
												
													
														
															|  | @@ -242,7 +294,8 @@ public class SysReservationConfigServiceImpl extends BaseServiceImpl<SysReservat
 | 
												
													
														
															|  |                  String wharfName = item.getWharfNanme();
 |  |                  String wharfName = item.getWharfNanme();
 | 
												
													
														
															|  |                  for (int i = 0; i < durationByDate.size(); i++) {
 |  |                  for (int i = 0; i < durationByDate.size(); i++) {
 | 
												
													
														
															|  |                      String duration = durationByDate.get(i);
 |  |                      String duration = durationByDate.get(i);
 | 
												
													
														
															|  | -                    long count = reservationDataByDate.stream().filter(reservationData -> reservationData.get("startWharfName").equals(wharfName) && reservationData.get("duration").equals(duration)).count();
 |  | 
 | 
												
													
														
															|  | 
 |  | +                    long count = reservationDataByDate.stream().filter(reservationData -> reservationData.get("startWharfName").equals(wharfName) && reservationData.get("duration").equals(duration))
 | 
												
													
														
															|  | 
 |  | +                                    .mapToInt(reservationData -> Integer.parseInt(reservationData.get("numberTicket"))).sum();
 | 
												
													
														
															|  |                      map.put(duration, String.valueOf(count));
 |  |                      map.put(duration, String.valueOf(count));
 | 
												
													
														
															|  |                  }
 |  |                  }
 | 
												
													
														
															|  |                  data.add(map);
 |  |                  data.add(map);
 | 
												
											
												
													
														
															|  | @@ -293,4 +346,32 @@ public class SysReservationConfigServiceImpl extends BaseServiceImpl<SysReservat
 | 
												
													
														
															|  |          }
 |  |          }
 | 
												
													
														
															|  |      }
 |  |      }
 | 
												
													
														
															|  |  
 |  |  
 | 
												
													
														
															|  | 
 |  | +    @Override
 | 
												
													
														
															|  | 
 |  | +    public List<SysReservationConfigTimeDurationReq> createSysReservationConfigTimeDuration(SysReservationConfigTimeDurationReq sysReservationConfigTimeDurationReq) {
 | 
												
													
														
															|  | 
 |  | +        String[] split = sysReservationConfigTimeDurationReq.getStartTime().split(":");
 | 
												
													
														
															|  | 
 |  | +        String[] endSplit = sysReservationConfigTimeDurationReq.getEndTime().split(":");
 | 
												
													
														
															|  | 
 |  | +        DateTime startDateTime = new DateTime(TimeZone.getTimeZone("GMT+8"));
 | 
												
													
														
															|  | 
 |  | +        startDateTime.setField(DateField.HOUR_OF_DAY, Integer.valueOf(split[0]));
 | 
												
													
														
															|  | 
 |  | +        startDateTime.setField(DateField.MINUTE, Integer.valueOf(split[1]));
 | 
												
													
														
															|  | 
 |  | +        startDateTime.setField(DateField.SECOND, 0);
 | 
												
													
														
															|  | 
 |  | +        DateTime endDateTime = new DateTime(TimeZone.getTimeZone("GMT+8"));
 | 
												
													
														
															|  | 
 |  | +        endDateTime.setField(DateField.HOUR_OF_DAY, Integer.valueOf(endSplit[0]));
 | 
												
													
														
															|  | 
 |  | +        endDateTime.setField(DateField.MINUTE, Integer.valueOf(endSplit[1]));
 | 
												
													
														
															|  | 
 |  | +        endDateTime.setField(DateField.SECOND, 0);
 | 
												
													
														
															|  | 
 |  | +        long between = DateUtil.between(startDateTime, endDateTime, DateUnit.MINUTE);
 | 
												
													
														
															|  | 
 |  | +        List<SysReservationConfigTimeDurationReq> list = new ArrayList<>();
 | 
												
													
														
															|  | 
 |  | +        int num = (int) (between / sysReservationConfigTimeDurationReq.getDuration() + (between % sysReservationConfigTimeDurationReq.getDuration() != 0 ? 1 : 0));
 | 
												
													
														
															|  | 
 |  | +        for (int i = 0; i < num; i++) {
 | 
												
													
														
															|  | 
 |  | +            SysReservationConfigTimeDurationReq item = new SysReservationConfigTimeDurationReq();
 | 
												
													
														
															|  | 
 |  | +            item.setStartTime(DateUtil.formatTime(DateUtil.offset(startDateTime, DateField.MINUTE, sysReservationConfigTimeDurationReq.getDuration() * i)));
 | 
												
													
														
															|  | 
 |  | +            item.setEndTime(DateUtil.formatTime(DateUtil.offset(startDateTime, DateField.MINUTE, sysReservationConfigTimeDurationReq.getDuration() * (i+1))));
 | 
												
													
														
															|  | 
 |  | +            DateTime offset = DateUtil.offset(startDateTime, DateField.MINUTE, sysReservationConfigTimeDurationReq.getDuration() * (i + 1));
 | 
												
													
														
															|  | 
 |  | +            if (offset.getTime() > endDateTime.getTime()){
 | 
												
													
														
															|  | 
 |  | +                item.setEndTime(DateUtil.formatTime(endDateTime));
 | 
												
													
														
															|  | 
 |  | +            }
 | 
												
													
														
															|  | 
 |  | +            list.add(item);
 | 
												
													
														
															|  | 
 |  | +        }
 | 
												
													
														
															|  | 
 |  | +        return list;
 | 
												
													
														
															|  | 
 |  | +    }
 | 
												
													
														
															|  | 
 |  | +
 | 
												
													
														
															|  |  }
 |  |  }
 |