All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.gallery.db.util.DataBaseApiCtr Maven / Gradle / Ivy

package io.gallery.db.util;

import io.gallery.db.bean.DataBaseGenericPage;
import io.gallery.db.service.IDataBaseGenericService;
import org.springframework.web.context.request.NativeWebRequest;
import org.springframework.web.context.request.RequestAttributes;
import org.springframework.web.context.request.ServletWebRequest;
import org.springframework.web.servlet.HandlerMapping;

import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.stream.Collectors;

public class DataBaseApiCtr extends DataBaseGenericCtr {

    protected String defaultDb;

    @Override
    public void setAttribute(HttpServletRequest request) {
        NativeWebRequest webRequest = new ServletWebRequest(request);
        Map map = (Map) webRequest.getAttribute(HandlerMapping.URI_TEMPLATE_VARIABLES_ATTRIBUTE, RequestAttributes.SCOPE_REQUEST);
        String table = map.get("table");
        String forginKeyName = map.get("forginKeyName");
        String keyName = map.get("keyName");
        String forginTableName = map.get("forginTableName");
        String forginTableKeyName = map.get("forginTableKeyName");
        request.setAttribute("tableName", dealTableName(table));
        request.setAttribute("defaultDb", defaultDb);
        request.setAttribute("keyName", Optional.ofNullable(keyName).orElse("id"));
        request.setAttribute("forginKeyName", Optional.ofNullable(forginKeyName).map(v -> v.split(",")).orElse(null));
        request.setAttribute("forginTableName", Optional.ofNullable(dealTableNames(forginTableName)).map(v -> v.split(",")).orElse(null));
        request.setAttribute("forginTableKeyName", Optional.ofNullable(forginTableKeyName).map(v -> v.split(",")).orElse(null));
    }

    private String dealTableName(String tableName) {
        if (DataBaseTools.isNotNull(tableName) && !tableName.contains(".")) {
            if (DataBaseTools.isNotNull(defaultDb)) {
                tableName = defaultDb + "." + tableName;
            }
        }
        return tableName;
    }

    private String dealTableNames(String tableNames) {
        if (DataBaseTools.isNotNull(tableNames)) {
            List result = new ArrayList<>();
            for (String name : tableNames.split(",")) {
                result.add(dealTableName(name));
            }
            tableNames = result.stream().collect(Collectors.joining(","));
        }
        return tableNames;
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy