public void removeInChargeForGroup(String user, String operator) {
        InlongGroupPageRequest pageRequest = new InlongGroupPageRequest();
        pageRequest.setCurrentUser(user);
        pageRequest.setIsAdminRole(false);
        for (InlongGroupEntity groupEntity : groupMapper.selectByCondition(pageRequest)) {
            if (Objects.equals(groupEntity.getCreator(), user)) {
                groupEntity.setCreator("admin");
            }
            Set<String> inChargeSet = Sets.newHashSet(groupEntity.getInCharges().split(InlongConstants.COMMA));
            inChargeSet.remove(user);
            String updateInCharge = Joiner.on(",").join(inChargeSet);
            groupEntity.setInCharges(updateInCharge);
            groupEntity.setModifier(operator);
            int rowCount = groupMapper.updateByIdentifierSelective(groupEntity);
            if (rowCount != InlongConstants.AFFECTED_ONE_ROW) {
                throw new BusinessException(ErrorCodeEnum.CONFIG_EXPIRED,
                        String.format("record has already updated with group id=%s, curVersion=%d",
                                groupEntity.getInlongGroupId(), groupEntity.getVersion()));
            }
        }
    }
This implementation is just to intercept some error requests and reduce the pressure on the database.
<p/>
This is a memory-based implementation. There is a problem with concurrency security when there are
multiple service nodes because the data in memory cannot be shared.

@param req username login request
inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/user/UserServiceImpl.java