ow
This commit is contained in:
1 parent
9b01c4a57a
commit
6417562c4f
37 files changed
+2767
-202
No files matched your search
@@ -0,0 +1,62 @@
|
||||
using CloudBuilder.Master.Entity;
|
||||
using System;
|
||||
|
||||
namespace CloudBuilder.Master.Data
|
||||
{
|
||||
/// <summary>
|
||||
/// 族谱全系/小系导出的明文数据(按 D1-D8 决策):
|
||||
/// 后端按权限闸裁剪后下发,前端用「用户密码⊕系统因子」派生密钥加密成 .fm 信封,落盘/上传交换目录
|
||||
/// </summary>
|
||||
public class FamilyTreeExchangeData
|
||||
{
|
||||
/// <summary>ALL=全系 / SUB=小系</summary>
|
||||
public string Scope { get; set; } = FamilyTreeExchangeScope.ALL;
|
||||
|
||||
public FamilyTreeEntity FamilyTree { get; set; }
|
||||
|
||||
public FamilyPersonEntity[] Persons { get; set; } = [];
|
||||
|
||||
public FamilyTreeSpouseMapEntity[] SpouseMaps { get; set; } = [];
|
||||
|
||||
public FamilyTreeChildrenMapEntity[] ChildrenMaps { get; set; } = [];
|
||||
|
||||
/// <summary>
|
||||
/// 本谱权限行快照(仅备份 BK 写入,用于还原时权限随谱回滚形成绝对闭环;
|
||||
/// .fm 交换文件恒为空——防成员账号名随导出文件外泄,也防外部文件携权限行劫持本谱)
|
||||
/// </summary>
|
||||
public FamilyTreePermissionEntity[] Permissions { get; set; } = [];
|
||||
|
||||
public int PersonCount => Persons?.Length ?? 0;
|
||||
|
||||
/// <summary>SUB 导出时的锚点人号(二期支系替换导入靠它验明同一人;ALL 为空)</summary>
|
||||
public string AnchorPersonId { get; set; } = "";
|
||||
|
||||
/// <summary>导出发起人(service.UserId)</summary>
|
||||
public string ExportedBy { get; set; } = "";
|
||||
|
||||
public DateTime ExportedAt { get; set; } = DateTime.Now;
|
||||
}
|
||||
|
||||
/// <summary>交换目录下 .fm 密文文件的列表信息(文件名按 D1 规则反解析出 scope/treeId/锚点)</summary>
|
||||
public class FamilyTreeExchangeFileInfo
|
||||
{
|
||||
public string FileName { get; set; } = "";
|
||||
|
||||
public long Size { get; set; }
|
||||
|
||||
public DateTime LastModified { get; set; }
|
||||
|
||||
public string Scope { get; set; } = "";
|
||||
|
||||
public string TreeId { get; set; } = "";
|
||||
|
||||
public string AnchorPersonId { get; set; } = "";
|
||||
}
|
||||
|
||||
/// <summary>导出范围常量(后端无 CloudBuilder.Master.Service 引用,DTO 与 Policy 各留一份避免工程反向依赖)</summary>
|
||||
public static class FamilyTreeExchangeScope
|
||||
{
|
||||
public const string ALL = "ALL";
|
||||
public const string SUB = "SUB";
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
using CloudBuilder.Core.Authorization;
|
||||
using CloudBuilder.Core.Service;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace CloudBuilder.Master.Data
|
||||
{
|
||||
/// <summary>
|
||||
/// dashboard 网盘用量卡片数据:当前登录用户的类型、头像、已用/总额度(KB)、百分比。
|
||||
/// 用量取自 dms_file_usage_view(ower_id=本人 且非目录),额度按 user_type 从 appsettings:NetDiskQuota 解析。
|
||||
/// </summary>
|
||||
[TypeScript]
|
||||
public class StorageUsageData
|
||||
{
|
||||
/// <summary>用户类型码:U=未认证 / N=普通 / V=VIP / S=SVIP(名称由前端 i18n 映射)</summary>
|
||||
public string UserType { get; set; } = "";
|
||||
|
||||
/// <summary>头像地址(security_user.user_icon_img_path,当前无上传链路多为空,前端占位兜底)</summary>
|
||||
public string AvatarUrl { get; set; } = "";
|
||||
|
||||
/// <summary>已用容量(KB)</summary>
|
||||
public long UsedKB { get; set; }
|
||||
|
||||
/// <summary>额度总量(KB),0 表示未配置/不限</summary>
|
||||
public long QuotaKB { get; set; }
|
||||
|
||||
/// <summary>已用百分比(额度为 0 时记 0;可大于 100 表示超额)</summary>
|
||||
public int Percent { get; set; }
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user