public static boolean checkConsumerOffsetSetInfo(ConsumeType csmType, Set<String> reqTopicSet,
            String requiredParts, StringBuilder strBuff, ProcessResult result) {
        Map<String, Long> requiredPartMap = new HashMap<>();
        if (csmType != ConsumeType.CONSUME_BAND) {
            result.setSuccResult(requiredPartMap);
            return result.isSuccess();
        }
        if (TStringUtils.isBlank(requiredParts)) {
            result.setSuccResult(requiredPartMap);
            return result.isSuccess();
        }
        String[] partOffsetItems = requiredParts.trim().split(TokenConstants.ARRAY_SEP);
        for (String partOffset : partOffsetItems) {
            String[] partKeyVal = partOffset.split(TokenConstants.EQ);
            if (partKeyVal.length == 1) {
                result.setFailResult(TErrCodeConstants.BAD_REQUEST,
                        strBuff.append("[Parameter error] unformatted Partition-Offset value : ")
                                .append(partOffset).append(" must be aa:bbb:ccc=val1,ddd:eee:ff=val2").toString());
                return result.isSuccess();
            }
            String[] partKeyItems = partKeyVal[0].trim().split(TokenConstants.ATTR_SEP);
            if (partKeyItems.length != 3) {
                result.setFailResult(TErrCodeConstants.BAD_REQUEST,
                        strBuff.append("[Parameter error] unformatted Partition-Offset value : ")
                                .append(partOffset).append(" must be aa:bbb:ccc=val1,ddd:eee:ff=val2").toString());
                return result.isSuccess();
            }
            if (!reqTopicSet.contains(partKeyItems[1].trim())) {
                result.setFailResult(TErrCodeConstants.BAD_REQUEST,
                        strBuff.append("[Parameter error] wrong offset reset for unsubscribed topic: reset item is ")
                                .append(partOffset).append(", request topicList are ")
                                .append(reqTopicSet).toString());
                return result.isSuccess();
            }
            try {
                requiredPartMap.put(partKeyVal[0].trim(), Long.parseLong(partKeyVal[1].trim()));
            } catch (Throwable ex) {
                result.setFailResult(TErrCodeConstants.BAD_REQUEST,
                        strBuff.append("[Parameter error] required long type value of ")
                                .append(partOffset).append("' Offset!").toString());
                return result.isSuccess();
            }
        }
        result.setSuccResult(requiredPartMap);
        return result.isSuccess();
    }
Check the validity of the bootstrap Offset information specified by the consumer.

@param csmType        the topic list to be checked.
@param reqTopicSet    the subscribed topic set
@param requiredParts  the specified partitionKey-bootstrap offset map
@param strBuff      the string buffer used to construct the result
@return the check result
inlong-tubemq/tubemq-server/src/main/java/org/apache/inlong/tubemq/server/common/paramcheck/PBParameterUtils.java