临时数据
This commit is contained in:
270
QYZH.InteractiveMagazine.Models/Dto/Admin/AdminPermissionDto.cs
Normal file
270
QYZH.InteractiveMagazine.Models/Dto/Admin/AdminPermissionDto.cs
Normal file
@ -0,0 +1,270 @@
|
||||
namespace QYZH.InteractiveMagazine.Models.Dto;
|
||||
|
||||
/// <summary>
|
||||
/// 后台菜单输入
|
||||
/// </summary>
|
||||
public class AdminMenuInput
|
||||
{
|
||||
/// <summary>
|
||||
/// 父级菜单ID,根节点为0
|
||||
/// </summary>
|
||||
public long ParentId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 菜单名称
|
||||
/// </summary>
|
||||
public string Name { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 权限编码
|
||||
/// </summary>
|
||||
public string Code { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 前端路由路径
|
||||
/// </summary>
|
||||
public string? Path { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 前端组件路径
|
||||
/// </summary>
|
||||
public string? Component { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 菜单图标
|
||||
/// </summary>
|
||||
public string? Icon { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 排序值
|
||||
/// </summary>
|
||||
public int Sort { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 是否显示在菜单
|
||||
/// </summary>
|
||||
public bool IsVisible { get; set; } = true;
|
||||
|
||||
/// <summary>
|
||||
/// 状态
|
||||
/// </summary>
|
||||
public int Status { get; set; } = 1;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 后台菜单输出
|
||||
/// </summary>
|
||||
public class AdminMenuOutput
|
||||
{
|
||||
/// <summary>
|
||||
/// 菜单ID
|
||||
/// </summary>
|
||||
public long Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 父级菜单ID
|
||||
/// </summary>
|
||||
public long ParentId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 菜单名称
|
||||
/// </summary>
|
||||
public string Name { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 权限编码
|
||||
/// </summary>
|
||||
public string Code { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 前端路由路径
|
||||
/// </summary>
|
||||
public string? Path { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 前端组件路径
|
||||
/// </summary>
|
||||
public string? Component { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 菜单图标
|
||||
/// </summary>
|
||||
public string? Icon { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 排序值
|
||||
/// </summary>
|
||||
public int Sort { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 是否显示在菜单
|
||||
/// </summary>
|
||||
public bool IsVisible { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 状态
|
||||
/// </summary>
|
||||
public int Status { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 子菜单
|
||||
/// </summary>
|
||||
public List<AdminMenuOutput> Children { get; set; } = [];
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 后台菜单查询输入
|
||||
/// </summary>
|
||||
public class AdminMenuQueryInput
|
||||
{
|
||||
/// <summary>
|
||||
/// 菜单名称
|
||||
/// </summary>
|
||||
public string? Name { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 权限编码
|
||||
/// </summary>
|
||||
public string? Code { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 状态
|
||||
/// </summary>
|
||||
public int? Status { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 后台角色输入
|
||||
/// </summary>
|
||||
public class AdminRoleInput
|
||||
{
|
||||
/// <summary>
|
||||
/// 角色名称
|
||||
/// </summary>
|
||||
public string Name { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 角色编码
|
||||
/// </summary>
|
||||
public string Code { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 备注
|
||||
/// </summary>
|
||||
public string? Remark { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 状态
|
||||
/// </summary>
|
||||
public int Status { get; set; } = 1;
|
||||
|
||||
/// <summary>
|
||||
/// 菜单ID集合
|
||||
/// </summary>
|
||||
public List<long> MenuIds { get; set; } = [];
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 后台角色输出
|
||||
/// </summary>
|
||||
public class AdminRoleOutput
|
||||
{
|
||||
/// <summary>
|
||||
/// 角色ID
|
||||
/// </summary>
|
||||
public long Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 角色名称
|
||||
/// </summary>
|
||||
public string Name { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 角色编码
|
||||
/// </summary>
|
||||
public string Code { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 备注
|
||||
/// </summary>
|
||||
public string? Remark { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 状态
|
||||
/// </summary>
|
||||
public int Status { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 菜单ID集合
|
||||
/// </summary>
|
||||
public List<long> MenuIds { get; set; } = [];
|
||||
|
||||
/// <summary>
|
||||
/// 创建时间
|
||||
/// </summary>
|
||||
public DateTime CreatedAt { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 后台角色简要输出
|
||||
/// </summary>
|
||||
public class AdminRoleSimpleOutput
|
||||
{
|
||||
/// <summary>
|
||||
/// 角色ID
|
||||
/// </summary>
|
||||
public long Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 角色名称
|
||||
/// </summary>
|
||||
public string Name { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 角色编码
|
||||
/// </summary>
|
||||
public string Code { get; set; } = string.Empty;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 后台角色查询输入
|
||||
/// </summary>
|
||||
public class AdminRoleQueryInput : PageQueryModel
|
||||
{
|
||||
/// <summary>
|
||||
/// 角色名称
|
||||
/// </summary>
|
||||
public string? Name { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 角色编码
|
||||
/// </summary>
|
||||
public string? Code { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 状态
|
||||
/// </summary>
|
||||
public int? Status { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 分配角色菜单输入
|
||||
/// </summary>
|
||||
public class AssignRoleMenusInput
|
||||
{
|
||||
/// <summary>
|
||||
/// 菜单ID集合
|
||||
/// </summary>
|
||||
public List<long> MenuIds { get; set; } = [];
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 分配用户角色输入
|
||||
/// </summary>
|
||||
public class AssignAdminUserRolesInput
|
||||
{
|
||||
/// <summary>
|
||||
/// 角色ID集合
|
||||
/// </summary>
|
||||
public List<long> RoleIds { get; set; } = [];
|
||||
}
|
||||
@ -27,6 +27,11 @@ public class AdminUserInput
|
||||
/// 状态: Active, Inactive
|
||||
/// </summary>
|
||||
public int Status { get; set; } = 1;
|
||||
|
||||
/// <summary>
|
||||
/// 角色ID集合,更新时为null表示不调整角色
|
||||
/// </summary>
|
||||
public List<long>? RoleIds { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@ -73,6 +78,16 @@ public class AdminUserOutput
|
||||
/// 更新时间
|
||||
/// </summary>
|
||||
public DateTime? UpdatedAt { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 角色ID集合
|
||||
/// </summary>
|
||||
public List<long> RoleIds { get; set; } = [];
|
||||
|
||||
/// <summary>
|
||||
/// 角色集合
|
||||
/// </summary>
|
||||
public List<AdminRoleSimpleOutput> Roles { get; set; } = [];
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
@ -26,6 +26,26 @@ public class AdminLoginOutput
|
||||
public string UserName { get; set; } = string.Empty;
|
||||
|
||||
public string Type { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 角色ID集合
|
||||
/// </summary>
|
||||
public List<long> RoleIds { get; set; } = [];
|
||||
|
||||
/// <summary>
|
||||
/// 角色集合
|
||||
/// </summary>
|
||||
public List<AdminRoleSimpleOutput> Roles { get; set; } = [];
|
||||
|
||||
/// <summary>
|
||||
/// 菜单树
|
||||
/// </summary>
|
||||
public List<AdminMenuOutput> Menus { get; set; } = [];
|
||||
|
||||
/// <summary>
|
||||
/// 权限编码集合
|
||||
/// </summary>
|
||||
public List<string> PermissionCodes { get; set; } = [];
|
||||
}
|
||||
|
||||
public class AdminUserInfoOutput
|
||||
@ -37,4 +57,24 @@ public class AdminUserInfoOutput
|
||||
public string Type { get; set; } = string.Empty;
|
||||
|
||||
public int Status { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 角色ID集合
|
||||
/// </summary>
|
||||
public List<long> RoleIds { get; set; } = [];
|
||||
|
||||
/// <summary>
|
||||
/// 角色集合
|
||||
/// </summary>
|
||||
public List<AdminRoleSimpleOutput> Roles { get; set; } = [];
|
||||
|
||||
/// <summary>
|
||||
/// 菜单树
|
||||
/// </summary>
|
||||
public List<AdminMenuOutput> Menus { get; set; } = [];
|
||||
|
||||
/// <summary>
|
||||
/// 权限编码集合
|
||||
/// </summary>
|
||||
public List<string> PermissionCodes { get; set; } = [];
|
||||
}
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
using QYZH.InteractiveMagazine.Models.Enum;
|
||||
using System.Text.Json.Serialization;
|
||||
|
||||
namespace QYZH.InteractiveMagazine.Models.Dto;
|
||||
|
||||
@ -10,17 +11,15 @@ public class BindJournalInput
|
||||
/// <summary>
|
||||
/// 期刊模板Id(扫码解析的期刊定义Id)
|
||||
/// </summary>
|
||||
[JsonNumberHandling(JsonNumberHandling.AllowReadingFromString)]
|
||||
public long JournalId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 实例化期刊Id(扫码解析的具体期刊实例Id,可选)
|
||||
/// </summary>
|
||||
[JsonNumberHandling(JsonNumberHandling.AllowReadingFromString)]
|
||||
public long Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 关联类型: Read(已读), Favorite(收藏), Subscribe(订阅),默认 Subscribe
|
||||
/// </summary>
|
||||
public string Type { get; set; } = UserJournalTypeEnum.Subscribe.ToString();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@ -122,14 +121,67 @@ public class CreateUserJournalQrCodeInput
|
||||
public long JournalId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 关联类型: Read, Favorite, Subscribe,默认 Subscribe
|
||||
/// 生成数量
|
||||
/// </summary>
|
||||
public string Type { get; set; } = UserJournalTypeEnum.Subscribe.ToString();
|
||||
public int Count { get; set; } = 1;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 生成期刊二维码提交结果
|
||||
/// </summary>
|
||||
public class CreateUserJournalQrCodeOutput
|
||||
{
|
||||
/// <summary>
|
||||
/// 期刊Id
|
||||
/// </summary>
|
||||
public long JournalId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 请求生成数量
|
||||
/// </summary>
|
||||
public int RequestedCount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 已提交生成数量
|
||||
/// </summary>
|
||||
public int AcceptedCount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 二维码记录Id列表
|
||||
/// </summary>
|
||||
[JsonNumberHandling(JsonNumberHandling.WriteAsString)]
|
||||
public List<long> RecordIds { get; set; } = [];
|
||||
|
||||
/// <summary>
|
||||
/// 是否后台生成
|
||||
/// </summary>
|
||||
public bool IsAsync { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 提示信息
|
||||
/// </summary>
|
||||
public string Message { get; set; } = string.Empty;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 期刊二维码查询输入DTO
|
||||
/// </summary>
|
||||
public class GenerateUserJournalQrCodeMessage
|
||||
{
|
||||
/// <summary>
|
||||
/// 二维码记录Id列表
|
||||
/// </summary>
|
||||
public List<long> RecordIds { get; set; } = [];
|
||||
|
||||
/// <summary>
|
||||
/// 操作人名称
|
||||
/// </summary>
|
||||
public string OperatorName { get; set; } = string.Empty;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 鏈熷垔浜岀淮鐮佹煡璇㈣緭鍏TO
|
||||
/// </summary>
|
||||
public class UserJournalQrCodeQueryInput : PageQueryModel
|
||||
{
|
||||
/// <summary>
|
||||
@ -161,6 +213,7 @@ public class UserJournalQrCodeOutput
|
||||
/// <summary>
|
||||
/// 二维码记录Id
|
||||
/// </summary>
|
||||
[JsonNumberHandling(JsonNumberHandling.WriteAsString)]
|
||||
public long Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
@ -201,7 +254,7 @@ public class UserJournalQrCodeOutput
|
||||
/// <summary>
|
||||
/// 二维码内容
|
||||
/// </summary>
|
||||
public string QrCodeContent { get; set; } = string.Empty;
|
||||
public string QrCodeUrl { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 创建时间
|
||||
@ -222,5 +275,6 @@ public class DeleteUserJournalQrCodeInput
|
||||
/// <summary>
|
||||
/// 二维码记录Id列表
|
||||
/// </summary>
|
||||
[JsonNumberHandling(JsonNumberHandling.AllowReadingFromString)]
|
||||
public List<long> Ids { get; set; } = [];
|
||||
}
|
||||
|
||||
@ -26,6 +26,11 @@ public class UsersOutput
|
||||
/// </summary>
|
||||
public string WxUserId { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 微信用户名
|
||||
/// </summary>
|
||||
public string? WxUserName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 昵称
|
||||
/// </summary>
|
||||
|
||||
66
QYZH.InteractiveMagazine.Models/Entity/AdminMenu.cs
Normal file
66
QYZH.InteractiveMagazine.Models/Entity/AdminMenu.cs
Normal file
@ -0,0 +1,66 @@
|
||||
using SqlSugar;
|
||||
|
||||
namespace QYZH.InteractiveMagazine.Models.Entity;
|
||||
|
||||
/// <summary>
|
||||
/// 后台菜单表
|
||||
/// </summary>
|
||||
[SugarTable("AdminMenu")]
|
||||
public partial class AdminMenu : SqlSugarBaseEntity
|
||||
{
|
||||
/// <summary>
|
||||
/// Desc:父级菜单ID,根节点为0
|
||||
/// Default:0
|
||||
/// Nullable:False
|
||||
/// </summary>
|
||||
public long ParentId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Desc:菜单名称
|
||||
/// Default:
|
||||
/// Nullable:False
|
||||
/// </summary>
|
||||
public string Name { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// Desc:权限编码
|
||||
/// Default:
|
||||
/// Nullable:False
|
||||
/// </summary>
|
||||
public string Code { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// Desc:前端路由路径
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public string? Path { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Desc:前端组件路径
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public string? Component { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Desc:菜单图标
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public string? Icon { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Desc:排序值
|
||||
/// Default:0
|
||||
/// Nullable:False
|
||||
/// </summary>
|
||||
public int Sort { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Desc:是否显示在菜单
|
||||
/// Default:b'1'
|
||||
/// Nullable:False
|
||||
/// </summary>
|
||||
public bool IsVisible { get; set; } = true;
|
||||
}
|
||||
31
QYZH.InteractiveMagazine.Models/Entity/AdminRole.cs
Normal file
31
QYZH.InteractiveMagazine.Models/Entity/AdminRole.cs
Normal file
@ -0,0 +1,31 @@
|
||||
using SqlSugar;
|
||||
|
||||
namespace QYZH.InteractiveMagazine.Models.Entity;
|
||||
|
||||
/// <summary>
|
||||
/// 后台角色表
|
||||
/// </summary>
|
||||
[SugarTable("AdminRole")]
|
||||
public partial class AdminRole : SqlSugarBaseEntity
|
||||
{
|
||||
/// <summary>
|
||||
/// Desc:角色名称
|
||||
/// Default:
|
||||
/// Nullable:False
|
||||
/// </summary>
|
||||
public string Name { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// Desc:角色编码
|
||||
/// Default:
|
||||
/// Nullable:False
|
||||
/// </summary>
|
||||
public string Code { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// Desc:备注
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public string? Remark { get; set; }
|
||||
}
|
||||
24
QYZH.InteractiveMagazine.Models/Entity/AdminRoleMenu.cs
Normal file
24
QYZH.InteractiveMagazine.Models/Entity/AdminRoleMenu.cs
Normal file
@ -0,0 +1,24 @@
|
||||
using SqlSugar;
|
||||
|
||||
namespace QYZH.InteractiveMagazine.Models.Entity;
|
||||
|
||||
/// <summary>
|
||||
/// 后台角色菜单关系表
|
||||
/// </summary>
|
||||
[SugarTable("AdminRoleMenu")]
|
||||
public partial class AdminRoleMenu : SqlSugarBaseEntity
|
||||
{
|
||||
/// <summary>
|
||||
/// Desc:角色ID
|
||||
/// Default:
|
||||
/// Nullable:False
|
||||
/// </summary>
|
||||
public long RoleId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Desc:菜单ID
|
||||
/// Default:
|
||||
/// Nullable:False
|
||||
/// </summary>
|
||||
public long MenuId { get; set; }
|
||||
}
|
||||
24
QYZH.InteractiveMagazine.Models/Entity/AdminUserRole.cs
Normal file
24
QYZH.InteractiveMagazine.Models/Entity/AdminUserRole.cs
Normal file
@ -0,0 +1,24 @@
|
||||
using SqlSugar;
|
||||
|
||||
namespace QYZH.InteractiveMagazine.Models.Entity;
|
||||
|
||||
/// <summary>
|
||||
/// 后台管理员角色关系表
|
||||
/// </summary>
|
||||
[SugarTable("AdminUserRole")]
|
||||
public partial class AdminUserRole : SqlSugarBaseEntity
|
||||
{
|
||||
/// <summary>
|
||||
/// Desc:管理员ID
|
||||
/// Default:
|
||||
/// Nullable:False
|
||||
/// </summary>
|
||||
public long AdminUserId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Desc:角色ID
|
||||
/// Default:
|
||||
/// Nullable:False
|
||||
/// </summary>
|
||||
public long RoleId { get; set; }
|
||||
}
|
||||
@ -31,12 +31,18 @@ namespace QYZH.InteractiveMagazine.Models.Entity
|
||||
public long JournalId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Desc:关联类型: Read(已读), Favorite(收藏), Subscribe(订阅)
|
||||
/// Default:Read
|
||||
/// Desc:关联类型: 默认0
|
||||
/// Nullable:False
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "Type")]
|
||||
public UserJournalTypeEnum Type { get; set; }
|
||||
public int Type { get; set; } = 0;
|
||||
|
||||
/// <summary>
|
||||
/// Desc:二维码地址
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "QrCodeUrl")]
|
||||
public string? QrCodeUrl { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
@ -17,5 +17,17 @@ public enum UserJournalStatusEnum
|
||||
/// 正常
|
||||
/// </summary>
|
||||
[Description("正常")]
|
||||
Active = 1
|
||||
Active = 1,
|
||||
|
||||
/// <summary>
|
||||
/// 生成中
|
||||
/// </summary>
|
||||
[Description("生成中")]
|
||||
Generating = 2,
|
||||
|
||||
/// <summary>
|
||||
/// 生成失败
|
||||
/// </summary>
|
||||
[Description("生成失败")]
|
||||
Failed = 3
|
||||
}
|
||||
|
||||
@ -1,25 +0,0 @@
|
||||
using System.ComponentModel;
|
||||
|
||||
namespace QYZH.InteractiveMagazine.Models.Enum;
|
||||
|
||||
/// <summary>
|
||||
/// 用户期刊关联类型枚举
|
||||
/// </summary>
|
||||
public enum UserJournalTypeEnum
|
||||
{
|
||||
/// <summary>
|
||||
/// 已读
|
||||
/// </summary>
|
||||
[Description("已读")]
|
||||
Read = 1,
|
||||
/// <summary>
|
||||
/// 收藏
|
||||
/// </summary>
|
||||
[Description("收藏")]
|
||||
Favorite = 2,
|
||||
/// <summary>
|
||||
/// 订阅
|
||||
/// </summary>
|
||||
[Description("订阅")]
|
||||
Subscribe = 3
|
||||
}
|
||||
Reference in New Issue
Block a user