|
|
@@ -127,26 +127,6 @@ public class TFareFreeRuleServiceImpl extends ServiceImpl<TFareFreeRuleMapper, T
|
|
|
FareFreeRuleVo vo = new FareFreeRuleVo();
|
|
|
BeanUtils.copyProperties(rule, vo);
|
|
|
|
|
|
- // 转换时间段
|
|
|
- if (CollectionUtil.isNotEmpty(rule.getTimeRanges())) {
|
|
|
- List<TimeRangeVo> timeRangeVos = new java.util.ArrayList<>();
|
|
|
- for (Object item : rule.getTimeRanges()) {
|
|
|
- try {
|
|
|
- // 处理 JSONObject 类型(Fastjson 反序列化后的类型)
|
|
|
- if (item instanceof com.alibaba.fastjson.JSONObject) {
|
|
|
- com.alibaba.fastjson.JSONObject json = (com.alibaba.fastjson.JSONObject) item;
|
|
|
- TimeRangeVo timeRangeVo = TimeRangeVo.builder()
|
|
|
- .startTime(json.getString("startTime"))
|
|
|
- .endTime(json.getString("endTime"))
|
|
|
- .build();
|
|
|
- timeRangeVos.add(timeRangeVo);
|
|
|
- }
|
|
|
- } catch (Exception e) {
|
|
|
- log.error("转换时间段失败,item类型:{},内容:{}", item.getClass().getName(), item, e);
|
|
|
- }
|
|
|
- }
|
|
|
- vo.setTimeRanges(timeRangeVos);
|
|
|
- }
|
|
|
|
|
|
// 查询项目名称
|
|
|
if (StringUtils.isNotBlank(rule.getProjectId())) {
|
|
|
@@ -220,26 +200,22 @@ public class TFareFreeRuleServiceImpl extends ServiceImpl<TFareFreeRuleMapper, T
|
|
|
}
|
|
|
|
|
|
// 2. 校验时间段
|
|
|
- if (CollectionUtil.isEmpty(fareFreeRule.getTimeRanges())) {
|
|
|
- throw new ServiceException("请至少添加一个服务时间段");
|
|
|
+ if (StringUtils.isBlank(fareFreeRule.getTimeRange1())) {
|
|
|
+ throw new ServiceException("服务时间段1不能为空");
|
|
|
}
|
|
|
|
|
|
- // 3. 校验时间段格式
|
|
|
- for (TFareFreeRule.TimeRange timeRange : fareFreeRule.getTimeRanges()) {
|
|
|
- if (StringUtils.isBlank(timeRange.getStartTime()) || StringUtils.isBlank(timeRange.getEndTime())) {
|
|
|
- throw new ServiceException("时间段开始时间和结束时间不能为空");
|
|
|
- }
|
|
|
-
|
|
|
- // 校验时间格式
|
|
|
- if (!timeRange.getStartTime().matches("^([0-1]?[0-9]|2[0-3]):[0-5][0-9]$") ||
|
|
|
- !timeRange.getEndTime().matches("^([0-1]?[0-9]|2[0-3]):[0-5][0-9]$")) {
|
|
|
- throw new ServiceException("时间格式错误,请使用 HH:mm 格式(如:08:00)");
|
|
|
- }
|
|
|
+ if (StringUtils.isBlank(fareFreeRule.getTimeRange2())) {
|
|
|
+ throw new ServiceException("服务时间段2不能为空");
|
|
|
+ }
|
|
|
|
|
|
- // 校验时间范围
|
|
|
- if (timeRange.getStartTime().compareTo(timeRange.getEndTime()) >= 0) {
|
|
|
- throw new ServiceException("开始时间必须小于结束时间");
|
|
|
- }
|
|
|
+ // 3. 校验时间段格式
|
|
|
+ // 校验时间格式
|
|
|
+ if (!fareFreeRule.getTimeRange1().matches("^([0-1]?[0-9]|2[0-3]):[0-5][0-9]-([0-1]?[0-9]|2[0-3]):[0-5][0-9]$")) {
|
|
|
+ throw new ServiceException("时间格式错误,请使用 HH:mm 格式(如:08:00)");
|
|
|
+ }
|
|
|
+ // 校验时间格式
|
|
|
+ if (!fareFreeRule.getTimeRange2().matches("^([0-1]?[0-9]|2[0-3]):[0-5][0-9]-([0-1]?[0-9]|2[0-3]):[0-5][0-9]$")) {
|
|
|
+ throw new ServiceException("时间格式错误,请使用 HH:mm 格式(如:08:00)");
|
|
|
}
|
|
|
|
|
|
// 4. 校验距离
|