luodangjia
2025-01-14 e9d5d32c7ee67eec2f47ed80fe9aae92a0ce7ec1
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/RedPackegeSetController.java
@@ -66,11 +66,11 @@
    @PostMapping("/addRedPackegeSet")
    @Transactional(rollbackFor = Exception.class)
    public R<Void> addRedPackegeSet(@RequestBody RedPackegeSetDto redPackegeSets){
        redPackegeSetService.remove(null);
        List<RedPackegeSet> redPackegeSetList = redPackegeSets.getRedPackegeSets();
        if (hasOverlap(redPackegeSetList)) {
            R.fail("时间段存在重叠,请重新配置");
            return R.fail("时间段存在重叠,请重新配置");
        }
        redPackegeSetService.remove(null);
        redPackegeSetService.saveBatch(redPackegeSetList);
        return R.ok();
    }
@@ -85,7 +85,7 @@
        return R.ok();
    }
    private boolean hasOverlap(List<RedPackegeSet> redPackegeSetList) {
    public static boolean hasOverlap(List<RedPackegeSet> redPackegeSetList) {
        // 首先根据startTime对列表进行排序
        Collections.sort(redPackegeSetList, Comparator.comparing(RedPackegeSet::getStartTime));
@@ -104,6 +104,22 @@
        return false;
    }
    public static void main(String[] args) {
        // 示例数据
        RedPackegeSet redPackegeSet = new RedPackegeSet();
        redPackegeSet.setStartTime(LocalDateTime.of(2025, 1, 13, 0, 0));
        redPackegeSet.setEndTime(LocalDateTime.of(2025, 1, 14, 0, 0));
        RedPackegeSet redPackegeSet2 = new RedPackegeSet();
        redPackegeSet2.setStartTime(LocalDateTime.of(2025, 1, 13, 0, 0));
        redPackegeSet2.setEndTime(LocalDateTime.of(2025, 1, 14, 0, 0));
        List<RedPackegeSet> redPackegeSetList = Arrays.asList(
                redPackegeSet,redPackegeSet2
        );
        boolean overlapExists = hasOverlap(redPackegeSetList);
        System.out.println("是否存在重叠: " + overlapExists);
    }