REQ-3540: 添加entity

This commit is contained in:
yanglin 2025-03-10 11:42:11 +08:00
parent d7c1850f9f
commit 2191b85404
24 changed files with 556 additions and 0 deletions

View File

@ -0,0 +1,14 @@
package cn.axzo.nanopart.doc.api.enums;
/**
* @author yanglin
*/
public enum FileDatabaseState {
// 开通中
ACTIVATING,
// 已开通
ACTIVATED,
// 已到期
EXPIRED
}

View File

@ -0,0 +1,15 @@
package cn.axzo.nanopart.doc.api.enums;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
/**
* @author yanglin
*/
public enum FileFeeType {
// 用户买断
ONE_TIME_FEE_PER_PERSON,
// 按项目买断
ONE_TIME_FEE_PER_PROJECT
}

View File

@ -0,0 +1,18 @@
package cn.axzo.nanopart.doc.api.enums;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
/**
* @author yanglin
*/
public enum FileScope {
//
NONE,
// 企业数据库
ENT_DATABASE,
// 项目数据库
PROJECT_DATABASE,
// 个人数据库
PERSONAL_DATABASE
}

View File

@ -0,0 +1,16 @@
package cn.axzo.nanopart.doc.api.enums;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
/**
* @author yanglin
*/
public enum FileTemplateState {
// DRAFT
DRAFT,
// PUBLISHED
PUBLISHED
}

View File

@ -0,0 +1,11 @@
package cn.axzo.nanopart.doc.api.enums;
/**
* @author yanglin
*/
public enum FileVipFeeType {
// 会员免费
VIP_FREE,
// 会员折扣
VIP_DISCOUNT
}

View File

@ -0,0 +1,18 @@
package cn.axzo.nanopart.doc.api.enums;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
/**
* @author yanglin
*/
public enum IndexNodeContext {
// 系统内置
SYSTEM,
// 文件模版
FILE_TEMPLATE,
// 模版数据库
TEMPLATE_DATABASE,
// 数据库
FILE_DATABASE
}

View File

@ -0,0 +1,15 @@
package cn.axzo.nanopart.doc.api.enums;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
/**
* @author yanglin
*/
public enum IndexNodeState {
// 有效的
VALID,
// 已删除
DELETED
}

View File

@ -0,0 +1,18 @@
package cn.axzo.nanopart.doc.api.enums;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
/**
* @author yanglin
*/
public enum IndexNodeType {
// 空间(数据库)
DATABASE,
// 目录
DIRECTORY,
// 文件
FILE
}

View File

@ -0,0 +1,13 @@
package cn.axzo.nanopart.doc.dao;
import cn.axzo.nanopart.doc.entity.FileDatabase;
import cn.axzo.nanopart.doc.mapper.FileDatabaseMapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Repository;
/**
* @author yanglin
*/
@Repository
public class FileDatabaseDao extends ServiceImpl<FileDatabaseMapper, FileDatabase> {
}

View File

@ -0,0 +1,13 @@
package cn.axzo.nanopart.doc.dao;
import cn.axzo.nanopart.doc.entity.FileTemplate;
import cn.axzo.nanopart.doc.mapper.FileTemplateMapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Repository;
/**
* @author yanglin
*/
@Repository
public class FileTemplateDao extends ServiceImpl<FileTemplateMapper, FileTemplate> {
}

View File

@ -0,0 +1,15 @@
package cn.axzo.nanopart.doc.dao;
import org.springframework.stereotype.Repository;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import cn.axzo.nanopart.doc.entity.IndexNode;
import cn.axzo.nanopart.doc.mapper.IndexNodeMapper;
/**
* @author yanglin
*/
@Repository
public class IndexNodeDao extends ServiceImpl<IndexNodeMapper, IndexNode> {
}

View File

@ -0,0 +1,13 @@
package cn.axzo.nanopart.doc.dao;
import cn.axzo.nanopart.doc.entity.TemplateDatabase;
import cn.axzo.nanopart.doc.mapper.TemplateDatabaseMapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Repository;
/**
* @author yanglin
*/
@Repository
public class TemplateDatabaseDao extends ServiceImpl<TemplateDatabaseMapper, TemplateDatabase> {
}

View File

@ -0,0 +1,72 @@
package cn.axzo.nanopart.doc.entity;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.TableName;
import cn.axzo.nanopart.doc.api.enums.FileDatabaseState;
import cn.axzo.nanopart.doc.api.enums.FileScope;
import cn.axzo.nanopart.doc.utils.YesOrNo;
import cn.axzo.pokonyan.config.mybatisplus.BaseEntity;
import lombok.Getter;
import lombok.Setter;
/**
* @author yanglin
*/
@Setter
@Getter
@TableName(value = "doc_file_database", autoResultMap = true)
public class FileDatabase extends BaseEntity<FileDatabase> {
/**
* 编码, 和index_node中对应的节点一致
*/
private String code;
/**
* 业务编码
*/
private String bizCode;
/**
* 对应的模版数据的编码
*/
private String templateDatabaseCode;
/**
* 作用范围. NONE: , ENT_DATABASE: 企业数据库, PROJECT_DATABASE: 项目数据库, PERSONAL_DATABASE: 个人数据库
*/
private FileScope scope;
/**
* 作用范围id. 单位数据库存ouId, 项目数据库存workspaceId, 个人数据库存personId
*/
private Long scopeId;
/**
* 状态. ACTIVATING: 开通中, ACTIVATED: 已开通, EXPIRED: 已到期
*/
private FileDatabaseState state;
/**
* 是否需要付费. YES: 需要, NO: 不需要
*/
private YesOrNo needPay;
/**
* 到期时间
*/
private Date expireDate;
/**
* 购买容量, 单位GB
*/
private Integer allowedCapacity;
/**
* 已使用的容量, 单位GB
*/
private Integer usedCapacity;
}

View File

@ -0,0 +1,56 @@
package cn.axzo.nanopart.doc.entity;
import cn.axzo.nanopart.doc.api.enums.FileFeeType;
import cn.axzo.nanopart.doc.api.enums.FileTemplateState;
import cn.axzo.nanopart.doc.api.enums.FileVipFeeType;
import cn.axzo.nanopart.doc.utils.YesOrNo;
import cn.axzo.pokonyan.config.mybatisplus.BaseEntity;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Getter;
import lombok.Setter;
import java.math.BigDecimal;
/**
* @author yanglin
*/
@Setter
@Getter
@TableName(value = "doc_file_template", autoResultMap = true)
public class FileTemplate extends BaseEntity<FileTemplate> {
/**
* 文件编码, 和index_node对应的节点code保持一致
*/
private String code;
/**
* 状态. DRAFT: 草稿, PUBLISHED: 已发布
*/
private FileTemplateState state;
/**
* 是否需要付费. YES: , NO:
*/
private YesOrNo needPay;
/**
* 收费模版, ONE_TIME_FEE_PER_PERSON: 用户买断, ONE_TIME_FEE_PER_PROJECT: 按项目买断
*/
private FileFeeType feeType;
/**
* 金额
*/
private BigDecimal fee;
/**
* 会员收费方式. VIP_FREE: 会员免费, VIP_DISCOUNT: 会员折扣
*/
private FileVipFeeType vipFeeType;
/**
* 会员费用
*/
private BigDecimal vipFee;
}

View File

@ -0,0 +1,94 @@
package cn.axzo.nanopart.doc.entity;
import cn.axzo.nanopart.doc.api.enums.FileScope;
import cn.axzo.nanopart.doc.api.enums.IndexNodeContext;
import cn.axzo.nanopart.doc.api.enums.IndexNodeState;
import cn.axzo.nanopart.doc.api.enums.IndexNodeType;
import cn.axzo.nanopart.doc.entity.domain.IndexNodeAttributes;
import cn.axzo.pokonyan.config.mybatisplus.BaseEntity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler;
import lombok.Getter;
import lombok.Setter;
/**
* @author yanglin
*/
@Setter
@Getter
@TableName(value = "doc_index_node", autoResultMap = true)
public class IndexNode extends BaseEntity<IndexNode> {
/**
* 父节点id
*/
private Long parentId;
/**
* 系统编码
*/
private String code;
/**
* 节点名称
*/
private String name;
/**
* 业务编码
*/
private String bizCode;
/**
* 节点类型. DATABASE: 空间(数据库), DIRECTORY: 目录, FILE: 文件
*/
private IndexNodeType nodeType;
/**
* 上下文. NONE: 无上下文, SYSTEM: 系统内置, FILE_TEMPLATE: 文件模版, TEMPLATE_DATABASE: 模版数据库, FILE_DATABASE: 数据库
*/
private IndexNodeContext context;
/**
* 作用范围. NONE: , ENT_DATABASE: 企业数据库, PROJECT_DATABASE: 项目数据库, PERSONAL_DATABASE: 个人数据库
*/
private FileScope scope;
/**
* 作用范围id. 单位数据库存ouId, 项目数据库存workspaceId, 个人数据库存personId
*/
private Long scopeId;
/**
* 路径, id拼起来, 以斜杠开头和结束. /1/2/3/
*/
private String path;
/**
* 描述信息
*/
private String description;
/**
* 图标
*/
private String icon;
/**
* 文件的大小(bytes), 只有文件才存这个字段
*/
private Integer size;
/**
* 状态. VALID: 有效的, DELETED: 已删除
*/
private IndexNodeState state;
/**
* 属性. 不同node_type的属性可能不一样
*/
@TableField(typeHandler = FastjsonTypeHandler.class)
private IndexNodeAttributes attributes;
}

View File

@ -0,0 +1,44 @@
package cn.axzo.nanopart.doc.entity;
import cn.axzo.nanopart.doc.api.enums.FileScope;
import cn.axzo.nanopart.doc.entity.domain.TemplateDatabaseAccessConfig;
import cn.axzo.nanopart.doc.entity.domain.TemplateDatabasePayConfig;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import cn.axzo.pudge.core.persistence.BaseEntity;
import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler;
import lombok.Getter;
import lombok.Setter;
/**
* @author yanglin
*/
@Setter
@Getter
@TableName(value = "doc_template_database", autoResultMap = true)
public class TemplateDatabase extends BaseEntity<TemplateDatabase> {
/**
* 编码, 和index_node中对应节点的编码保持一致
*/
private String code;
/**
* 作用范围. NONE: , ENT_DATABASE: 企业数据库, PROJECT_DATABASE: 项目数据库, PERSONAL_DATABASE: 个人数据库
*/
private FileScope scope;
/**
* 支付配置
*/
@TableField(typeHandler = FastjsonTypeHandler.class)
private TemplateDatabasePayConfig payConfig;
/**
* 安全配置
*/
@TableField(typeHandler = FastjsonTypeHandler.class)
private TemplateDatabaseAccessConfig accessConfig;
}

View File

@ -0,0 +1,7 @@
package cn.axzo.nanopart.doc.entity.domain;
/**
* @author yanglin
*/
public class IndexNodeAttributes {
}

View File

@ -0,0 +1,7 @@
package cn.axzo.nanopart.doc.entity.domain;
/**
* @author yanglin
*/
public class TemplateDatabaseAccessConfig {
}

View File

@ -0,0 +1,7 @@
package cn.axzo.nanopart.doc.entity.domain;
/**
* @author yanglin
*/
public class TemplateDatabasePayConfig {
}

View File

@ -0,0 +1,12 @@
package cn.axzo.nanopart.doc.mapper;
import cn.axzo.nanopart.doc.entity.FileDatabase;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
/**
* @author yanglin
*/
@Mapper
public interface FileDatabaseMapper extends BaseMapper<FileDatabase> {
}

View File

@ -0,0 +1,12 @@
package cn.axzo.nanopart.doc.mapper;
import cn.axzo.nanopart.doc.entity.FileTemplate;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
/**
* @author yanglin
*/
@Mapper
public interface FileTemplateMapper extends BaseMapper<FileTemplate> {
}

View File

@ -0,0 +1,14 @@
package cn.axzo.nanopart.doc.mapper;
import org.apache.ibatis.annotations.Mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import cn.axzo.nanopart.doc.entity.IndexNode;
/**
* @author yanglin
*/
@Mapper
public interface IndexNodeMapper extends BaseMapper<IndexNode> {
}

View File

@ -0,0 +1,12 @@
package cn.axzo.nanopart.doc.mapper;
import cn.axzo.nanopart.doc.entity.TemplateDatabase;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
/**
* @author yanglin
*/
@Mapper
public interface TemplateDatabaseMapper extends BaseMapper<TemplateDatabase> {
}

View File

@ -0,0 +1,40 @@
package cn.axzo.nanopart.doc.utils;
import com.baomidou.mybatisplus.annotation.EnumValue;
import cn.axzo.basics.common.constant.enums.CodeDefinition;
import lombok.AccessLevel;
import lombok.AllArgsConstructor;
import lombok.Getter;
/**
* @author yanglin
*/
@Getter
@AllArgsConstructor(access = AccessLevel.PRIVATE)
public enum YesOrNo implements CodeDefinition<String> {
YES("YES", ""),
NO("NO", "")
;
@EnumValue
private final String code;
private final String desc;
public static YesOrNo valueOf(boolean value) {
return value ? YES : NO;
}
public boolean booleanValue() {
return this == YES;
}
public boolean isYes() {
return this == YES;
}
public boolean isNo() {
return this == NO;
}
}