@Override
    @Transactional(rollbackFor = Throwable.class, isolation = Isolation.REPEATABLE_READ, propagation = Propagation.REQUIRES_NEW)
    public String update(InlongGroupRequest request, String operator) {
        LOGGER.debug("begin to update inlong group={} by user={}", request, operator);

        String groupId = request.getInlongGroupId();
        InlongGroupEntity entity = groupMapper.selectByGroupId(groupId);
        if (entity == null) {
            LOGGER.error("inlong group not found by groupId={}", groupId);
            throw new BusinessException(ErrorCodeEnum.GROUP_NOT_FOUND);
        }
        userService.checkUser(entity.getInCharges(), operator,
                "Current user does not have permission to update group info");
        chkUnmodifiableParams(entity, request);
        // check whether the current status can be modified
        doUpdateCheck(entity, request, operator);

        if (request.getEnableZookeeper() == null) {
            request.setEnableZookeeper(enableZookeeper ? InlongConstants.ENABLE_ZK : InlongConstants.DISABLE_ZK);
        }

        InlongGroupOperator instance = groupOperatorFactory.getInstance(request.getMqType());
        instance.updateOpt(request, operator);

        // save ext info
        this.saveOrUpdateExt(groupId, request.getExtList());

        // save schedule info for offline group
        if (DATASYNC_OFFLINE_MODE.equals(request.getInlongGroupMode())) {
            constrainStartAndEndTime(request);
            ScheduleInfoRequest scheduleRequest = CommonBeanUtils.copyProperties(request, ScheduleInfoRequest::new);
            if (scheduleOperator.scheduleInfoExist(groupId)) {
                scheduleRequest.setVersion(scheduleOperator.getScheduleInfo(groupId).getVersion());
            }
            scheduleOperator.updateAndRegister(scheduleRequest, operator);
        }

        LOGGER.info("success to update inlong group for groupId={} by user={}", groupId, operator);
        return groupId;
    }
Add constraints to the start and end time of the offline synchronization group.
1. startTime must >= current time
2. endTime must >= startTime
inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/group/InlongGroupServiceImpl.java