public void adminSetGroupOffSet(HttpServletRequest req,
            StringBuilder sBuffer) {
        ProcessResult result = new ProcessResult();
        // get group list
        if (!WebParameterUtils.getStringParamValue(req,
                WebFieldDef.COMPSGROUPNAME, true, null, sBuffer, result)) {
            WebParameterUtils.buildFailResult(sBuffer, result.getErrMsg());
            return;
        }
        final Set<String> groupNameSet = (Set<String>) result.getRetData();
        // get set mode
        if (!WebParameterUtils.getBooleanParamValue(req,
                WebFieldDef.MANUALSET, true, false, sBuffer, result)) {
            WebParameterUtils.buildFailResult(sBuffer, result.getErrMsg());
            return;
        }
        boolean manualSet = (Boolean) result.getRetData();
        // get modify user
        if (!WebParameterUtils.getStringParamValue(req,
                WebFieldDef.MODIFYUSER, true, null, sBuffer, result)) {
            WebParameterUtils.buildFailResult(sBuffer, result.getErrMsg());
            return;
        }
        List<Tuple3<String, Integer, Long>> resetOffsets;
        final String modifier = (String) result.getRetData();
        if (manualSet) {
            // get offset json info
            if (!WebParameterUtils.getJsonDictParamValue(req,
                    WebFieldDef.OFFSETJSON, true, null, result)) {
                WebParameterUtils.buildFailResult(sBuffer, result.getErrMsg());
                return;
            }
            Map<String, Long> manOffsets =
                    (Map<String, Long>) result.getRetData();
            // valid and transfer offset format
            if (!validManOffsetResetInfo(WebFieldDef.OFFSETJSON, manOffsets, result)) {
                WebParameterUtils.buildFailResult(sBuffer, result.getErrMsg());
                return;
            }
            resetOffsets =
                    (List<Tuple3<String, Integer, Long>>) result.getRetData();
        } else {
            // get the topic set to be set
            if (!WebParameterUtils.getStringParamValue(req,
                    WebFieldDef.COMPSTOPICNAME, true, null, sBuffer, result)) {
                WebParameterUtils.buildFailResult(sBuffer, result.getErrMsg());
                return;
            }
            Set<String> topicSet = (Set<String>) result.getRetData();
            // transfer offset format
            resetOffsets = buildOffsetResetInfo(topicSet);
        }
        broker.getOffsetManager().modifyGroupOffset(groupNameSet, resetOffsets, modifier);
        sBuffer.append("{\"result\":true,\"errCode\":0,\"errMsg\":\"OK\"}");
    }
Add or Modify consumer group offset.

@param req      request
@param sBuffer  process result
inlong-tubemq/tubemq-server/src/main/java/org/apache/inlong/tubemq/server/broker/web/BrokerAdminServlet.java