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

io.gallery.db.service.IDataBaseGenericService Maven / Gradle / Ivy

package io.gallery.db.service;

import io.gallery.db.bean.DataBasePermission;
import io.gallery.db.bean.ExportType;
import io.gallery.db.util.DBT;
import io.gallery.db.util.DataBaseAjaxResultContext;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;
import java.util.Map;

/**
 * 公共服务接口
 *
 * @param  实体类
 * @param   检索条件入参
 */
public interface IDataBaseGenericService {

    /**
     * 新增记录
     *
     * @param record Entity
     * @return int
     */
    int insert(Entity record);

    /**
     * 根据主键删除记录
     *
     * @param id Object
     * @return int
     */
    int delete(Object id);

    /**
     * 根据主键删除记录
     *
     * @param id Object
     * @return DataBaseAjaxResultContext
     */
    DataBaseAjaxResultContext deleteWithBusiness(Object id);

    /**
     * 导入数据默认方法
     *
     * @param path       String
     * @param permission DataBasePermission
     * @return DataBaseAjaxResultContext
     */
    default DataBaseAjaxResultContext importFromFile(String path, DataBasePermission permission) {
        return new DataBaseAjaxResultContext(0);
    }

    /**
     * 导入数据默认方法
     *
     * @param file       MultipartFile
     * @param permission DataBasePermission
     * @param body       Map
     * @return DataBaseAjaxResultContext
     */
    default DataBaseAjaxResultContext importFromFile(MultipartFile file, DataBasePermission permission, Map body) {
        return new DataBaseAjaxResultContext(0);
    }

    /**
     * 导出数据默认方法
     *
     * @param exportTitle   标题
     * @param exportHeaders 表头
     * @param list          数据
     * @param exportType    ExportType
     * @param needTitle     是否需要标题
     */
    default void exportFile(String exportTitle, String[] exportHeaders, List list, ExportType exportType, boolean needTitle) {
        DBT.exportFile(exportTitle, exportHeaders, list, needTitle, exportType);
    }

    /**
     * 导出数据详情默认方法
     *
     * @param params Map
     */
    default void exportDetail(Map params) {

    }

    /**
     * 根据主键删除记录
     *
     * @param ids(逗号隔开) String
     * @return int
     */
    int deleteByIds(String ids);

    /**
     * 根据主键删除记录
     *
     * @param query Query
     * @return int
     */
    int deleteByParams(Query query);

    /**
     * 根据主键更新记录
     *
     * @param record Entity
     * @return int
     */
    int update(Entity record);

    /**
     * 根据主键获取记录
     *
     * @param id Object
     * @return Entity
     */
    Entity get(Object id);

    /**
     * 根据主键获取记录
     *
     * @param id Object
     * @return DataBaseAjaxResultContext
     */
    DataBaseAjaxResultContext getWithBusiness(Object id);

    /**
     * 根据主键获取记录
     *
     * @param id    Object
     * @param clazz Class
     * @param    T
     * @return T实体类
     */
     T get(Object id, Class clazz);

    /**
     * 根据条件获取列表
     *
     * @param query Query
     * @return List实体类列表
     */
    List select(Query query);

    /**
     * 根据条件获取列表
     *
     * @param query Query
     * @param clazz Class
     * @param    T
     * @return List实体类列表
     */
     List select(Query query, Class clazz);

    /**
     * 根据条件获取第一条记录
     *
     * @param query Query
     * @return Entity实体类
     */
    Entity selectOne(Query query);

    /**
     * 根据条件获取第一条记录
     *
     * @param query Query
     * @param clazz Class
     * @param  T
     * @return T实体类
     */
     T selectOne(Query query, Class clazz);

    /**
     * 根据条件获取数量
     *
     * @param query Query
     * @return long
     */
    long count(Query query);

    /**
     * 是否存在指定条件记录
     *
     * @param query Query
     * @return boolean
     */
    boolean exist(Query query);

    /**
     * 获取主键名
     *
     * @return String
     */
    String getKeyName();

    /**
     * 获取表字段名列表(columnname::columntype)
     *
     * @param needView boolean
     * @return List
     */
    List getColumnList(boolean needView);

    /**
     * Map转实体
     *
     * @param map Map
     * @return Entity
     */
    Entity getEntity(Map map);

    /**
     * 获取表名
     *
     * @param needView boolean
     * @return String
     */
    String getTableName(boolean needView);


    /*
    设置表名
     */
    void setTableName(String tableName);

    void setKeyName(String keyName);

    String[] getForginKeyName();

    void setForginKeyName(String[] forginKeyName);

    String[] getForginTableName();

    void setForginTableName(String[] forginTableName);

    String[] getForginTableKeyName();

    void setForginTableKeyName(String[] forginTableKeyName);
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy