文件操作相关接口

文件相关的接口由com.basksoft.core.database.manager.file.FileManager接口提供。

获取文件内容

你可以用如下代码获取一个File文件对象XML内容:

FileManager.ins.loadContent(1000);

修改文件名

你可以用如下代码修改文件名称:

FileManager.ins.changeFileName(1000, "新文件名", "andy.jia");

接口说明

FileManager接口针对目录操作的接口和针对文件操作的接口是不一样的,要特别注意。

例如:

修改文件名:

FileManager.ins.changeFileName(1000, "新文件名", "andy.jia");

修改目录名称:

FileManager.ins.changeDirName(1000, "新文件名", "andy.jia");

很多接口需要传递userId参数

userID参数是用来记录当前操作的操作员的,一般都必须传入

tenantId

团队ID在很多接口操作中也是必须的,请注意

事务说明

FileManager中很多接口会对多个表格进行存取,所以在集成模式下涉及到写库操作的方法调用时,最好是确保调用相关接口的时候确保该方法处于事务包裹中。

如果Connection是由BaskServer创建的,就可以这么解决。

  • BaskServer在初始化的时候选择JDBC类型:

选择数据连接类型

  • 利用ApplicationConfigLoader实现机制用的是JDBC类型的数据库连接:

    ApplicationConfigLoader

    config.setConfigType(ConfigType.jdbc);
    

如果是上面两种情况可以用如下代码进行事务包裹:

Connection conn=JdbcUtils.getConnection();
boolean autoCommit = true;
try {        
    autoCommit = conn.getAutoCommit();
    conn.setAutoCommit(false);
    //调用具体的方法
    FileManager.ins.xxx();
    conn.commit();
}catch(Exception ex) {
    conn.rollback();
    throw ex;
}finally {
    conn.setAutoCommit(autoCommit);
    JdbcUtils.closeConnection(conn);
}

JdbcUtils工具类全路径: com.basksoft.core.util.JdbcUtils

更多接口参考

public interface FileManager {
    /**
     * 获取文件的XML内容
     * 
     * @param id 文件ID
     * @return XML内容
     */
    String loadContent(long id);

    /**
     * 更改文件状态
     * 
     * @param id     文件ID
     * @param status 文件状态
     * @param userId 修改人
     */
    void changeStatus(long id, FileStatus status, String userId);

    /**
     * 加载目录的子对象(包含目录和文件)
     * 
     * @param tenantId 团队ID
     * @param packetId 目录ID
     * @return 文件列表
     */
    List<BaskFile> loadChildren(String tenantId, long packetId);

    /**
     * 修改文件名称
     * 
     * @param id      文件ID
     * @param newName 新的名称
     * @param userId  修改人
     */
    void changeFileName(long id, String newName, String userId);

    /**
     * 修改文件备注
     * 
     * @param id     文件ID
     * @param desc   文件备注
     * @param userId 修改人
     */
    void changeFileDesc(long id, String desc, String userId);

    /**
     * 新增文件,参考代码: 
     * BaskFile baskFile = new BaskFile();
     * baskFile.setType(FileType.report); 
     * baskFile.setTenantId("basksoft");
     * baskFile.setName("工作周报"); 
     * baskFile.setDesc("金融事业部工作周报");
     * baskFile.setParentId(1000); 
     * baskFile.setCreateUser("lver.jin");
     * FileManager.ins.addFile(baskFile, content, false);
     * 
     * @param file    BaskFile对象
     * @param content 文件XML内容
     * @param locked  是否直接锁定文件
     */
    void addFile(BaskFile file, String content, boolean locked);

    /**
     * 更新文件
     * 
     * @param id      文件ID
     * @param content 文件XML内容
     * @param userId  更新者
     */
    void updateFile(long id, String content, String userId);

    /**
     * 更新文件预览BASE64数据
     * 
     * @param id            文件ID
     * @param previewBase64 预览BASE64数据
     */
    void updatePreviewBase64(long id, String previewBase64);

    /**
     * 添加目录,参考代码:
     * BaskFile baskFile = new BaskFile(); 
     * baskFile.setDirectory(true);
     * baskFile.setTenantId("basksoft"); 
     * baskFile.setName("工作周报");
     * baskFile.setDesc("金融事业部工作周报"); 
     * baskFile.setParentId(1000);
     * baskFile.setCreateUser("lver.jin"); 
     * FileManager.ins.addDir(baskFile);
     * 
     * @param baskFile 目录对象
     */
    void addDir(BaskFile baskFile);

    /**
     * 加载BaskFile文件,不会加载文件的XML内容
     * 
     * @param id 文件ID
     * @return 返回BaskFile对象
     */
    BaskFile loadFile(long id);

    /**
     * 加载目录对象
     * 
     * @param id 文件ID
     * @return 返回目录对象
     */
    BaskFile loadDir(long id);

    /**
     * 删除文件对象
     * 
     * @param id 文件ID
     */
    void removeFile(long id);

    /**
     * 删除目录对象,删除目录时会自动删除目录下的所有子目录和文件
     * 
     * @param id 目录ID
     */
    void removeDir(long id);

    /**
     * 修改目录名称
     * 
     * @param id         目录ID
     * @param newDirName 新的名称
     * @param userId     修改人
     */
    void changeDirName(long id, String newDirName, String userId);

    /**
     * 修改目录备注
     * 
     * @param id     目录ID
     * @param desc   新的备注
     * @param userId 修改人
     */
    void changeDirDesc(long id, String desc, String userId);

    /**
     * 检查文件是否重名,一般情况下新建文件的时候建议避免重名
     * 
     * @param tenantId 团队ID
     * @param parentId 父目录ID
     * @param name     文件名称
     * @return 是否重名
     */
    boolean checkFileExist(String tenantId, long parentId, String name);

    /**
     * 检查目录是否重名,一般情况下新建文件的时候建议避免重名
     * 
     * @param tenantId 团队ID
     * @param parentId 父目录ID
     * @param name     目录名称
     * @return 是否重名
     */
    boolean checkDirExist(String tenantId, long parentId, String name);

    /**
     * 返回文件目录树(包含文件),rootId为0则为获取所有节点
     * 
     * @param tenantId 团队ID
     * @param rootId   根目录
     * @return 返回包含文件的目录树
     */
    BaskFile tree(String tenantId, long rootId);

    /**
     * 返回文件目录树(不包含文件),rootId为0则为获取所有节点
     * 
     * @param tenantId 团队ID
     * @param rootId   根目录
     * @return 返回目录树
     */
    List<BaskFile> dirTree(String tenantId, long rootId);

    /**
     * 修改文件所属目录
     * 
     * @param id       文件ID
     * @param parentId 父目录ID
     */
    void changeFileParent(long id, long parentId);

    /**
     * 移动目录
     * 
     * @param id       目录ID
     * @param parentId 父目录ID
     */
    void changeDirParent(long id, long parentId);

    /**
     * 锁定文件
     * 
     * @param id     文件ID
     * @param userId 账号
     */
    void lock(long id, String userId);

    /**
     * 解锁文件
     * 
     * @param id     文件ID
     * @param userId 账号
     */
    void unlock(long id, String userId);

    /**
     * 发布文件
     * 
     * @param id      文件ID
     * @param version 文件版本
     * @param note    版本说明
     * @param userId  账号
     */
    void deploy(long id, String version, String note, String userId);

}

results matching ""

    No results matching ""