签入版本

This commit is contained in:
小蚂蚁云
2026-10-20 19:07:36 +08:00
commit 1b9bdac12f
882 changed files with 106953 additions and 0 deletions
+184
View File
@@ -0,0 +1,184 @@
// +======================================================================
// | EasyGoAdmin 企业数字化开发平台 [ 赋能开发者,助力企业发展 ]
// +----------------------------------------------------------------------
// | Copyright (c) 2019-2026 半城风雨团队 版权所有
// +----------------------------------------------------------------------
// | 开源协议: Apache-2.0
// | 重要声明: 未经书面许可,不得移除或修改本框架相关版权标识。
// +----------------------------------------------------------------------
// | 官方网站: https://www.easygoadmin.vip
// +----------------------------------------------------------------------
// | 研发团队: 小蚂蚁云团队 荣誉出品
// +======================================================================
// | 版权和免责声明:
// | 一、知识产权声明
// | 本团队对该软件框架产品(以下简称“本产品”)拥有完整知识产权,包括但不限于商标权、专利权、
// | 著作权、商业秘密等。前述权利均受中华人民共和国及相关国际法律法规保护。未经本团队书面授权,
// | 任何个人或单位不得基于本产品本身申请任何形式的知识产权。
// | 二、使用限制与禁止条款
// | 您理解并同意,禁止将本产品用于以下任何行为:
// | 1. 任何违反中华人民共和国法律法规的用途;
// | 2. 任何侵害他人合法权益(包括但不限于人身权、财产权、知识产权等)的行为;
// | 3. 任何危害国家安全、公共利益及社会道德风尚的行为。
// | 三、责任豁免
// | 因使用本产品而产生的任何损失或法律纠纷(包括但不限于直接损失、间接损失、附带损失、衍生损失
// | 以及因违约、侵权等引发的责任),本团队均不承担任何法律责任。若因违规使用本产品导致任何第三
// | 方提起索赔或行政机关进行调查,您应独立承担全部责任。
// | 四、违约与法律责任
// | 如发现任何违反本声明的行为,本团队有权:
// | 1. 无条件配合公安机关及其他有权机关的调查取证工作;
// | 2. 依法追究相关方的民事责任,并要求赔偿全部损失;
// | 3. 保留进一步采取刑事控告等法律措施的权利。
// | 五、许可范围说明
// | 1、被授权方应视本产品源代码为核心机密信息,负有最高标准的保密与保管义务。禁止以任何形式(包
// | 括但不限于直接或间接的分享、复制、传播、分发、转售、出租、开源、反向工程、反编译、反汇编或通
// | 过网络服务提供给任何第三方)泄露、披露或处置源代码的全部或部分内容。任何未经授权的复制、使用、
// | 传播行为均构成对本团队知识产权的严重侵权,本团队有权依法追究其全部法律责任,并要求赔偿因此造
// | 成的一切经济损失及商誉损害。
// | 2、本产品仅限于公司或个人在法律允许范围内,用于内部且合规的软件产品研发。具体权利义务以《软件
// | 许可协议》附件为准。
// +======================================================================
package v1
import (
"github.com/gogf/gf/v2/os/gtime"
"github.com/gogf/gf/v2/util/gmeta"
)
// ============================== 文章模块 ==============================
// ArticleItem 文章行
type ArticleItem struct {
Id int64 `json:"id"` // 主键ID
CategoryId int `json:"categoryId"` // 分类ID
CategoryName string `json:"categoryName"` // 分类名称
Title string `json:"title"` // 标题
Cover string `json:"cover"` // 封面图
Intro string `json:"intro"` // 简介
Author string `json:"author"` // 作者
Status int `json:"status"` // 状态:0-草稿 1-发布
StatusText string `json:"statusText"` // 状态文本
Click int `json:"click"` // 点击量
Sort int `json:"sort"` // 排序
CreateUser string `json:"createUser"` // 创建人
CreateTime *gtime.Time `json:"createTime"` // 创建时间
}
// ArticlePageReq 文章分页请求
type ArticlePageReq struct {
gmeta.Meta `method:"get" path:"/api/article/page" summary:"文章分页" permission:"sys:article:page" log:"文章管理-查询分页记录" logType:"query"`
PageReq // 分页基础参数
Keyword string `json:"keyword" dc:"关键词(标题/作者模糊)"` // 关键词
Title string `json:"title" dc:"标题模糊"` // 标题
CategoryId int `json:"categoryId" dc:"分类ID"` // 分类ID
Status int `json:"status" dc:"状态:0-草稿 1-发布"` // 状态
}
// ArticlePageRes 文章分页结果
type ArticlePageRes = PageData[ArticleItem]
// ArticleListReq 文章列表请求(下拉/最新)
type ArticleListReq struct {
gmeta.Meta `method:"get" path:"/api/article/list" summary:"文章列表" permission:"sys:article:list" log:"文章管理-查询列表" logType:"query"`
Keyword string `json:"keyword" dc:"关键词"` // 关键词
CategoryId int `json:"categoryId" dc:"分类ID"` // 分类ID
Status int `json:"status" dc:"状态"` // 状态
Limit int `json:"limit" dc:"条数上限"` // 条数上限
}
// ArticleListItem 文章列表行(精简)
type ArticleListItem struct {
Id int64 `json:"id"` // 主键ID
Title string `json:"title"` // 标题
Status int `json:"status"` // 状态:0-草稿 1-发布
Sort int `json:"sort"` // 排序
}
// ArticleListRes 文章列表结果
type ArticleListRes = []ArticleListItem
// ArticleDetailReq 文章详情请求
type ArticleDetailReq struct {
gmeta.Meta `method:"get" path:"/api/article/detail/:id" summary:"文章详情" permission:"sys:article:detail" log:"文章管理-查询详情" logType:"query"`
Id int64 `json:"id" v:"required#缺少ID" dc:"文章ID"` // 文章ID
}
// ArticleDetailRes 文章详情结果
type ArticleDetailRes struct {
Id int64 `json:"id"` // 主键ID
CategoryId int `json:"categoryId"` // 分类ID
Title string `json:"title"` // 标题
Cover string `json:"cover"` // 封面图
Images string `json:"images"` // 多图(逗号分隔)
ImagesList []string `json:"imagesList"` // 多图列表
Intro string `json:"intro"` // 简介
Content string `json:"content"` // 正文
Author string `json:"author"` // 作者
Status int `json:"status"` // 状态:0-草稿 1-发布
StatusText string `json:"statusText"` // 状态文本
Click int `json:"click"` // 点击量
Sort int `json:"sort"` // 排序
CreateTime *gtime.Time `json:"createTime"` // 创建时间
}
// ArticleAddReq 新增文章请求
type ArticleAddReq struct {
gmeta.Meta `method:"post" path:"/api/article/add" summary:"新增文章" permission:"sys:article:add" log:"文章管理-新增记录" logType:"add"`
CategoryId int `json:"categoryId" dc:"分类ID"` // 分类ID
Title string `json:"title" v:"required#请输入标题" dc:"标题"` // 标题
Cover string `json:"cover" dc:"封面图"` // 封面图
Images string `json:"images" dc:"多图(逗号分隔)"` // 多图
Intro string `json:"intro" dc:"简介"` // 简介
Content string `json:"content" dc:"正文"` // 正文
Author string `json:"author" dc:"作者"` // 作者
Status int `json:"status" dc:"状态:0-草稿 1-发布"` // 状态
Sort int `json:"sort" dc:"排序"` // 排序
}
// ArticleUpdateReq 修改文章请求
type ArticleUpdateReq struct {
gmeta.Meta `method:"put" path:"/api/article/update" summary:"修改文章" permission:"sys:article:update" log:"文章管理-修改记录" logType:"update"`
Id int64 `json:"id" v:"required#缺少ID" dc:"文章ID"` // 文章ID
CategoryId int `json:"categoryId" dc:"分类ID"` // 分类ID
Title string `json:"title" v:"required#请输入标题" dc:"标题"` // 标题
Cover string `json:"cover" dc:"封面图"` // 封面图
Images string `json:"images" dc:"多图"` // 多图
Intro string `json:"intro" dc:"简介"` // 简介
Content string `json:"content" dc:"正文"` // 正文
Author string `json:"author" dc:"作者"` // 作者
Status int `json:"status" dc:"状态"` // 状态
Click int `json:"click" dc:"点击量"` // 点击量
Sort int `json:"sort" dc:"排序"` // 排序
}
// ArticleUpdateRes 修改文章结果
type ArticleUpdateRes struct{}
// ArticleStatusReq 文章状态请求
type ArticleStatusReq struct {
gmeta.Meta `method:"put" path:"/api/article/status" summary:"文章状态" permission:"sys:article:status" log:"文章管理-设置状态" logType:"update"`
Id int64 `json:"id" v:"required#缺少ID" dc:"文章ID"` // 文章ID
Status int `json:"status" v:"required#缺少状态" dc:"状态:0-草稿 1-发布"` // 状态
}
// ArticleStatusRes 文章状态结果
type ArticleStatusRes struct{}
// ArticleDeleteReq 删除文章请求
type ArticleDeleteReq struct {
gmeta.Meta `method:"delete" path:"/api/article/delete/:id" summary:"删除文章" permission:"sys:article:delete" log:"文章管理-删除记录" logType:"delete"`
Id int64 `json:"id" v:"required#缺少ID" dc:"文章ID"` // 文章ID
}
// ArticleDeleteRes 删除文章结果
type ArticleDeleteRes struct{}
// ArticleBatchDeleteReq 批量删除文章请求
type ArticleBatchDeleteReq struct {
gmeta.Meta `method:"delete" path:"/api/article/batchDelete" summary:"批量删除文章" permission:"sys:article:batchDelete" log:"文章管理-批量删除记录" logType:"delete"`
Ids []int64 `json:"ids" v:"required#请选择要删除的记录" dc:"文章ID列表"` // 文章ID列表
}
// ArticleBatchDeleteRes 批量删除结果
type ArticleBatchDeleteRes struct{}
+129
View File
@@ -0,0 +1,129 @@
// +======================================================================
// | EasyGoAdmin 企业数字化开发平台 [ 赋能开发者,助力企业发展 ]
// +----------------------------------------------------------------------
// | Copyright (c) 2019-2026 半城风雨团队 版权所有
// +----------------------------------------------------------------------
// | 开源协议: Apache-2.0
// | 重要声明: 未经书面许可,不得移除或修改本框架相关版权标识。
// +----------------------------------------------------------------------
// | 官方网站: https://www.easygoadmin.vip
// +----------------------------------------------------------------------
// | 研发团队: 小蚂蚁云团队 荣誉出品
// +======================================================================
// | 版权和免责声明:
// | 一、知识产权声明
// | 本团队对该软件框架产品(以下简称“本产品”)拥有完整知识产权,包括但不限于商标权、专利权、
// | 著作权、商业秘密等。前述权利均受中华人民共和国及相关国际法律法规保护。未经本团队书面授权,
// | 任何个人或单位不得基于本产品本身申请任何形式的知识产权。
// | 二、使用限制与禁止条款
// | 您理解并同意,禁止将本产品用于以下任何行为:
// | 1. 任何违反中华人民共和国法律法规的用途;
// | 2. 任何侵害他人合法权益(包括但不限于人身权、财产权、知识产权等)的行为;
// | 3. 任何危害国家安全、公共利益及社会道德风尚的行为。
// | 三、责任豁免
// | 因使用本产品而产生的任何损失或法律纠纷(包括但不限于直接损失、间接损失、附带损失、衍生损失
// | 以及因违约、侵权等引发的责任),本团队均不承担任何法律责任。若因违规使用本产品导致任何第三
// | 方提起索赔或行政机关进行调查,您应独立承担全部责任。
// | 四、违约与法律责任
// | 如发现任何违反本声明的行为,本团队有权:
// | 1. 无条件配合公安机关及其他有权机关的调查取证工作;
// | 2. 依法追究相关方的民事责任,并要求赔偿全部损失;
// | 3. 保留进一步采取刑事控告等法律措施的权利。
// | 五、许可范围说明
// | 1、被授权方应视本产品源代码为核心机密信息,负有最高标准的保密与保管义务。禁止以任何形式(包
// | 括但不限于直接或间接的分享、复制、传播、分发、转售、出租、开源、反向工程、反编译、反汇编或通
// | 过网络服务提供给任何第三方)泄露、披露或处置源代码的全部或部分内容。任何未经授权的复制、使用、
// | 传播行为均构成对本团队知识产权的严重侵权,本团队有权依法追究其全部法律责任,并要求赔偿因此造
// | 成的一切经济损失及商誉损害。
// | 2、本产品仅限于公司或个人在法律允许范围内,用于内部且合规的软件产品研发。具体权利义务以《软件
// | 许可协议》附件为准。
// +======================================================================
package v1
import (
"github.com/gogf/gf/v2/util/gmeta"
)
// ============================== 认证授权模块 ==============================
// LoginReq 登录请求
// 参数支持 query/body 混合提交
type LoginReq struct {
gmeta.Meta `method:"post" path:"/api/login" summary:"登录" public:"true"`
Username string `json:"username" v:"required#请输入用户名" dc:"用户名"` // 用户名
Password string `json:"password" v:"required#请输入密码" dc:"密码"` // 密码
Code string `json:"code" dc:"图形验证码"` // 图形验证码
Key string `json:"key" dc:"验证码标识(captcha 接口返回的 key)"` // 验证码标识
TenantCode string `json:"tenantCode" dc:"租户编码,留空按用户名全局定位"` // 租户编码
}
// LoginRes 登录结果
// 客户端从 data.access_token 中读取并存储令牌
type LoginRes struct {
AccessToken string `json:"access_token"` // 访问令牌
RefreshToken string `json:"refresh_token"` // 刷新令牌
ExpiresIn int64 `json:"expires_in"` // access 有效期(秒)
TokenType string `json:"token_type"` // 令牌类型,固定为 Bearer
}
// LogoutReq 登出请求
// 拉黑当前 access token,需携带 access token 走 JWT 校验
type LogoutReq struct {
gmeta.Meta `method:"get" path:"/api/logout" summary:"登出"`
}
// LogoutRes 登出结果
type LogoutRes struct{}
// CaptchaReq 图形验证码请求
type CaptchaReq struct {
gmeta.Meta `method:"get" path:"/api/captcha" summary:"获取图形验证码" public:"true"`
}
// CaptchaRes 图形验证码结果
type CaptchaRes struct {
Key string `json:"key" dc:"验证码标识"` // 验证码标识
Captcha string `json:"captcha" dc:"SVG data URL 图片"` // SVG data URL 图片
}
// RefreshReq 刷新令牌请求
// 同时兼容 refresh_token 与 password 两种授权模式
type RefreshReq struct {
gmeta.Meta `method:"post" path:"/api/oauth2/token" summary:"刷新令牌/密码模式兑换" public:"true"`
GrantType string `json:"grant_type" dc:"refresh_token | password"` // 授权类型
RefreshToken string `json:"refresh_token" dc:"刷新令牌(grant_type=refresh_token 时必填)"` // 刷新令牌
Username string `json:"username" dc:"用户名(grant_type=password 时必填)"` // 用户名
Password string `json:"password" dc:"密码(grant_type=password 时必填)"` // 密码
Code string `json:"code" dc:"验证码"` // 验证码
Key string `json:"key" dc:"验证码标识"` // 验证码标识
}
// RefreshRes 刷新令牌结果
// 结构与登录结果保持一致
type RefreshRes struct {
AccessToken string `json:"access_token"` // 访问令牌
RefreshToken string `json:"refresh_token"` // 刷新令牌
ExpiresIn int64 `json:"expires_in"` // access 有效期(秒)
TokenType string `json:"token_type"` // 令牌类型
}
// CheckTokenReq 校验令牌请求
type CheckTokenReq struct {
gmeta.Meta `method:"get" path:"/api/oauth2/check/token" summary:"校验令牌"`
}
// CheckTokenRes 校验令牌结果
type CheckTokenRes struct {
Valid bool `json:"valid"` // 是否有效
UserId int64 `json:"userId"` // 用户ID
}
// RemoveTokenReq 指定令牌拉黑请求
type RemoveTokenReq struct {
gmeta.Meta `method:"delete" path:"/api/oauth2/remove/:token" summary:"撤销指定令牌"`
Token string `json:"token" v:"required#缺少token" dc:"待撤销的令牌"` // 待撤销的令牌
}
// RemoveTokenRes 撤销令牌结果
type RemoveTokenRes struct{}
+82
View File
@@ -0,0 +1,82 @@
// +======================================================================
// | EasyGoAdmin 企业数字化开发平台 [ 赋能开发者,助力企业发展 ]
// +----------------------------------------------------------------------
// | Copyright (c) 2019-2026 半城风雨团队 版权所有
// +----------------------------------------------------------------------
// | 开源协议: Apache-2.0
// | 重要声明: 未经书面许可,不得移除或修改本框架相关版权标识。
// +----------------------------------------------------------------------
// | 官方网站: https://www.easygoadmin.vip
// +----------------------------------------------------------------------
// | 研发团队: 小蚂蚁云团队 荣誉出品
// +======================================================================
// | 版权和免责声明:
// | 一、知识产权声明
// | 本团队对该软件框架产品(以下简称“本产品”)拥有完整知识产权,包括但不限于商标权、专利权、
// | 著作权、商业秘密等。前述权利均受中华人民共和国及相关国际法律法规保护。未经本团队书面授权,
// | 任何个人或单位不得基于本产品本身申请任何形式的知识产权。
// | 二、使用限制与禁止条款
// | 您理解并同意,禁止将本产品用于以下任何行为:
// | 1. 任何违反中华人民共和国法律法规的用途;
// | 2. 任何侵害他人合法权益(包括但不限于人身权、财产权、知识产权等)的行为;
// | 3. 任何危害国家安全、公共利益及社会道德风尚的行为。
// | 三、责任豁免
// | 因使用本产品而产生的任何损失或法律纠纷(包括但不限于直接损失、间接损失、附带损失、衍生损失
// | 以及因违约、侵权等引发的责任),本团队均不承担任何法律责任。若因违规使用本产品导致任何第三
// | 方提起索赔或行政机关进行调查,您应独立承担全部责任。
// | 四、违约与法律责任
// | 如发现任何违反本声明的行为,本团队有权:
// | 1. 无条件配合公安机关及其他有权机关的调查取证工作;
// | 2. 依法追究相关方的民事责任,并要求赔偿全部损失;
// | 3. 保留进一步采取刑事控告等法律措施的权利。
// | 五、许可范围说明
// | 1、被授权方应视本产品源代码为核心机密信息,负有最高标准的保密与保管义务。禁止以任何形式(包
// | 括但不限于直接或间接的分享、复制、传播、分发、转售、出租、开源、反向工程、反编译、反汇编或通
// | 过网络服务提供给任何第三方)泄露、披露或处置源代码的全部或部分内容。任何未经授权的复制、使用、
// | 传播行为均构成对本团队知识产权的严重侵权,本团队有权依法追究其全部法律责任,并要求赔偿因此造
// | 成的一切经济损失及商誉损害。
// | 2、本产品仅限于公司或个人在法律允许范围内,用于内部且合规的软件产品研发。具体权利义务以《软件
// | 许可协议》附件为准。
// +======================================================================
package v1
import (
"github.com/gogf/gf/v2/util/gmeta"
)
// ============================== 缓存监控模块 ==============================
// CacheInfoReq 查询缓存信息请求
type CacheInfoReq struct {
gmeta.Meta `method:"get" path:"/api/cache/info" summary:"缓存监控信息" log:"缓存监控-查询信息" logType:"query"`
}
// CacheKeySpaceDb 单个库的键空间统计
type CacheKeySpaceDb struct {
Db string `json:"db"` // 库编号(如 db0)
Keys int64 `json:"keys"` // 键数量
Expires int64 `json:"expires"` // 带过期键数量
}
// CacheInfoRes 缓存监控信息结果
type CacheInfoRes struct {
Mode string `json:"mode"` // redis / memory
Connected bool `json:"connected"` // 是否连通
Version string `json:"version"` // Redis 版本
Uptime string `json:"uptime"` // 运行时长
UsedMemory string `json:"usedMemory"` // 已用内存
UsedMemoryPeak string `json:"usedMemoryPeak"` // 内存峰值
MaxMemory string `json:"maxMemory"` // 内存上限(0 表示无限制)
FragRatio string `json:"fragRatio"` // 内存碎片率
ConnectedClients int64 `json:"connectedClients"` // 客户端连接数
Keys int64 `json:"keys"` // 键总数
Hits int64 `json:"hits"` // 命中次数
Misses int64 `json:"misses"` // 未命中次数
HitRate string `json:"hitRate"` // 命中率(%)
ExpiredKeys int64 `json:"expiredKeys"` // 累计过期键数
EvictedKeys int64 `json:"evictedKeys"` // 累计淘汰键数
TotalCommands int64 `json:"totalCommands"` // 累计执行命令数
TotalConns int64 `json:"totalConns"` // 累计连接数
KeySpace []CacheKeySpaceDb `json:"keySpace"` // 键空间明细
}
+139
View File
@@ -0,0 +1,139 @@
// +======================================================================
// | EasyGoAdmin 企业数字化开发平台 [ 赋能开发者,助力企业发展 ]
// +----------------------------------------------------------------------
// | Copyright (c) 2019-2026 半城风雨团队 版权所有
// +----------------------------------------------------------------------
// | 开源协议: Apache-2.0
// | 重要声明: 未经书面许可,不得移除或修改本框架相关版权标识。
// +----------------------------------------------------------------------
// | 官方网站: https://www.easygoadmin.vip
// +----------------------------------------------------------------------
// | 研发团队: 小蚂蚁云团队 荣誉出品
// +======================================================================
// | 版权和免责声明:
// | 一、知识产权声明
// | 本团队对该软件框架产品(以下简称“本产品”)拥有完整知识产权,包括但不限于商标权、专利权、
// | 著作权、商业秘密等。前述权利均受中华人民共和国及相关国际法律法规保护。未经本团队书面授权,
// | 任何个人或单位不得基于本产品本身申请任何形式的知识产权。
// | 二、使用限制与禁止条款
// | 您理解并同意,禁止将本产品用于以下任何行为:
// | 1. 任何违反中华人民共和国法律法规的用途;
// | 2. 任何侵害他人合法权益(包括但不限于人身权、财产权、知识产权等)的行为;
// | 3. 任何危害国家安全、公共利益及社会道德风尚的行为。
// | 三、责任豁免
// | 因使用本产品而产生的任何损失或法律纠纷(包括但不限于直接损失、间接损失、附带损失、衍生损失
// | 以及因违约、侵权等引发的责任),本团队均不承担任何法律责任。若因违规使用本产品导致任何第三
// | 方提起索赔或行政机关进行调查,您应独立承担全部责任。
// | 四、违约与法律责任
// | 如发现任何违反本声明的行为,本团队有权:
// | 1. 无条件配合公安机关及其他有权机关的调查取证工作;
// | 2. 依法追究相关方的民事责任,并要求赔偿全部损失;
// | 3. 保留进一步采取刑事控告等法律措施的权利。
// | 五、许可范围说明
// | 1、被授权方应视本产品源代码为核心机密信息,负有最高标准的保密与保管义务。禁止以任何形式(包
// | 括但不限于直接或间接的分享、复制、传播、分发、转售、出租、开源、反向工程、反编译、反汇编或通
// | 过网络服务提供给任何第三方)泄露、披露或处置源代码的全部或部分内容。任何未经授权的复制、使用、
// | 传播行为均构成对本团队知识产权的严重侵权,本团队有权依法追究其全部法律责任,并要求赔偿因此造
// | 成的一切经济损失及商誉损害。
// | 2、本产品仅限于公司或个人在法律允许范围内,用于内部且合规的软件产品研发。具体权利义务以《软件
// | 许可协议》附件为准。
// +======================================================================
package v1
import (
"github.com/gogf/gf/v2/util/gmeta"
)
// ============================== 分类模块(树形) ==============================
// CategoryItem 分类行
type CategoryItem struct {
Id int64 `json:"id"` // 主键ID
CategoryName string `json:"categoryName"` // 分类名称
CategoryCode string `json:"categoryCode"` // 分类编码
ParentId int `json:"parentId"` // 上级ID(0=顶级)
Sort int `json:"sort"` // 排序
Note string `json:"note"` // 备注
CreateUser string `json:"createUser"` // 创建人
}
// CategoryPageReq 分类分页请求(平铺)
type CategoryPageReq struct {
gmeta.Meta `method:"get" path:"/api/category/page" summary:"分类分页" permission:"sys:category:page" log:"分类管理-查询分页记录" logType:"query"`
PageReq // 分页基础参数
Keyword string `json:"keyword" dc:"关键词(名称/编码模糊)"` // 关键词
CategoryName string `json:"categoryName" dc:"分类名称模糊"` // 分类名称
CategoryCode string `json:"categoryCode" dc:"分类编码模糊"` // 分类编码
}
// CategoryPageRes 分类分页结果
type CategoryPageRes = PageData[CategoryItem]
// CategoryListReq 分类树形列表请求
type CategoryListReq struct {
gmeta.Meta `method:"get" path:"/api/category/list" summary:"分类树形列表" permission:"sys:category:list" log:"分类管理-查询树形列表" logType:"query"`
Keyword string `json:"keyword" dc:"关键词"` // 关键词
}
// CategoryListRes 分类平铺列表结果
// data 直接为数组,由前端自行构建树形结构
type CategoryListRes = []*CategoryItem
// CategoryDetailReq 分类详情请求
type CategoryDetailReq struct {
gmeta.Meta `method:"get" path:"/api/category/detail/:id" summary:"分类详情" permission:"sys:category:detail" log:"分类管理-查询详情" logType:"query"`
Id int64 `json:"id" v:"required#缺少ID" dc:"分类ID"` // 分类ID
}
// CategoryDetailRes 分类详情结果
type CategoryDetailRes struct {
Id int64 `json:"id"` // 主键ID
CategoryName string `json:"categoryName"` // 分类名称
CategoryCode string `json:"categoryCode"` // 分类编码
ParentId int `json:"parentId"` // 上级ID
Sort int `json:"sort"` // 排序
Note string `json:"note"` // 备注
}
// CategoryAddReq 新增分类请求
type CategoryAddReq struct {
gmeta.Meta `method:"post" path:"/api/category/add" summary:"新增分类" permission:"sys:category:add" log:"分类管理-新增记录" logType:"add"`
CategoryName string `json:"categoryName" v:"required#请输入分类名称" dc:"分类名称"` // 分类名称
CategoryCode string `json:"categoryCode" dc:"分类编码"` // 分类编码
ParentId int `json:"parentId" dc:"上级ID(0=顶级)"` // 上级ID
Sort int `json:"sort" dc:"排序"` // 排序
Note string `json:"note" dc:"备注"` // 备注
}
// CategoryUpdateReq 修改分类请求
type CategoryUpdateReq struct {
gmeta.Meta `method:"put" path:"/api/category/update" summary:"修改分类" permission:"sys:category:update" log:"分类管理-修改记录" logType:"update"`
Id int64 `json:"id" v:"required#缺少ID" dc:"分类ID"` // 分类ID
CategoryName string `json:"categoryName" v:"required#请输入分类名称" dc:"分类名称"` // 分类名称
CategoryCode string `json:"categoryCode" dc:"分类编码"` // 分类编码
ParentId int `json:"parentId" dc:"上级ID"` // 上级ID
Sort int `json:"sort" dc:"排序"` // 排序
Note string `json:"note" dc:"备注"` // 备注
}
// CategoryUpdateRes 修改分类结果
type CategoryUpdateRes struct{}
// CategoryDeleteReq 删除分类请求
type CategoryDeleteReq struct {
gmeta.Meta `method:"delete" path:"/api/category/delete/:id" summary:"删除分类" permission:"sys:category:delete" log:"分类管理-删除记录" logType:"delete"`
Id int64 `json:"id" v:"required#缺少ID" dc:"分类ID"` // 分类ID
}
// CategoryDeleteRes 删除分类结果
type CategoryDeleteRes struct{}
// CategoryBatchDeleteReq 批量删除分类请求
type CategoryBatchDeleteReq struct {
gmeta.Meta `method:"delete" path:"/api/category/batchDelete" summary:"批量删除分类" permission:"sys:category:batchDelete" log:"分类管理-批量删除记录" logType:"delete"`
Ids []int64 `json:"ids" v:"required#请选择要删除的记录" dc:"分类ID列表"` // 分类ID列表
}
// CategoryBatchDeleteRes 批量删除结果
type CategoryBatchDeleteRes struct{}
+196
View File
@@ -0,0 +1,196 @@
// +======================================================================
// | EasyGoAdmin 企业数字化开发平台 [ 赋能开发者,助力企业发展 ]
// +----------------------------------------------------------------------
// | Copyright (c) 2019-2026 半城风雨团队 版权所有
// +----------------------------------------------------------------------
// | 开源协议: Apache-2.0
// | 重要声明: 未经书面许可,不得移除或修改本框架相关版权标识。
// +----------------------------------------------------------------------
// | 官方网站: https://www.easygoadmin.vip
// +----------------------------------------------------------------------
// | 研发团队: 小蚂蚁云团队 荣誉出品
// +======================================================================
// | 版权和免责声明:
// | 一、知识产权声明
// | 本团队对该软件框架产品(以下简称“本产品”)拥有完整知识产权,包括但不限于商标权、专利权、
// | 著作权、商业秘密等。前述权利均受中华人民共和国及相关国际法律法规保护。未经本团队书面授权,
// | 任何个人或单位不得基于本产品本身申请任何形式的知识产权。
// | 二、使用限制与禁止条款
// | 您理解并同意,禁止将本产品用于以下任何行为:
// | 1. 任何违反中华人民共和国法律法规的用途;
// | 2. 任何侵害他人合法权益(包括但不限于人身权、财产权、知识产权等)的行为;
// | 3. 任何危害国家安全、公共利益及社会道德风尚的行为。
// | 三、责任豁免
// | 因使用本产品而产生的任何损失或法律纠纷(包括但不限于直接损失、间接损失、附带损失、衍生损失
// | 以及因违约、侵权等引发的责任),本团队均不承担任何法律责任。若因违规使用本产品导致任何第三
// | 方提起索赔或行政机关进行调查,您应独立承担全部责任。
// | 四、违约与法律责任
// | 如发现任何违反本声明的行为,本团队有权:
// | 1. 无条件配合公安机关及其他有权机关的调查取证工作;
// | 2. 依法追究相关方的民事责任,并要求赔偿全部损失;
// | 3. 保留进一步采取刑事控告等法律措施的权利。
// | 五、许可范围说明
// | 1、被授权方应视本产品源代码为核心机密信息,负有最高标准的保密与保管义务。禁止以任何形式(包
// | 括但不限于直接或间接的分享、复制、传播、分发、转售、出租、开源、反向工程、反编译、反汇编或通
// | 过网络服务提供给任何第三方)泄露、披露或处置源代码的全部或部分内容。任何未经授权的复制、使用、
// | 传播行为均构成对本团队知识产权的严重侵权,本团队有权依法追究其全部法律责任,并要求赔偿因此造
// | 成的一切经济损失及商誉损害。
// | 2、本产品仅限于公司或个人在法律允许范围内,用于内部且合规的软件产品研发。具体权利义务以《软件
// | 许可协议》附件为准。
// +======================================================================
package v1
import (
"github.com/gogf/gf/v2/util/gmeta"
)
// ============================== 城市模块 ==============================
// CityItem 城市行数据
// 用于分页列表、下拉列表等场景的城市基础信息
type CityItem struct {
Id int64 `json:"id"` // 主键ID
CityCode string `json:"cityCode"` // 城市编码
AreaCode string `json:"areaCode"` // 区域编码
ParentCode string `json:"parentCode"` // 父级编码
ZipCode string `json:"zipCode"` // 邮政编码
Level int `json:"level"` // 层级:1-省 2-市 3-区 4-街道
LevelText string `json:"levelText"` // 层级文本
Pid int64 `json:"pid"` // 父级ID
Name string `json:"name"` // 城市名称
ShortName string `json:"shortName"` // 城市简称
FullName string `json:"fullName"` // 城市全称
Pinyin string `json:"pinyin"` // 拼音
Lng string `json:"lng"` // 经度
Lat string `json:"lat"` // 纬度
}
// CityPageReq 城市分页请求
// 支持关键词、名称、拼音及层级等条件组合查询
type CityPageReq struct {
gmeta.Meta `method:"get" path:"/api/city/page" summary:"城市分页" permission:"sys:city:page" log:"城市管理-查询分页记录" logType:"query"`
PageReq // 分页基础参数
Keyword string `json:"keyword" dc:"关键词(名称/拼音模糊)"` // 关键词,名称或拼音模糊匹配
Name string `json:"name" dc:"城市名称模糊"` // 城市名称模糊匹配
Pinyin string `json:"pinyin" dc:"拼音模糊"` // 拼音模糊匹配
Level int `json:"level" dc:"层级:1-省 2-市 3-区 4-街道"` // 层级
}
// CityPageRes 城市分页结果
type CityPageRes = PageData[CityItem]
// CityListReq 城市列表请求
// 按父级编码、层级等条件查询,供级联选择场景使用
type CityListReq struct {
gmeta.Meta `method:"get" path:"/api/city/list" summary:"城市列表" permission:"sys:city:list" log:"城市管理-查询列表" logType:"query"`
Keyword string `json:"keyword" dc:"关键词"` // 关键词
Level int `json:"level" dc:"层级"` // 层级
ParentCode string `json:"parentCode" dc:"父级编码(顶级为空)"` // 父级编码
Limit int `json:"limit" dc:"条数上限"` // 条数上限
}
// CityListRes 城市列表结果
type CityListRes = []CityItem
// CityDetailReq 城市详情请求
type CityDetailReq struct {
gmeta.Meta `method:"get" path:"/api/city/detail/:id" summary:"城市详情" permission:"sys:city:detail" log:"城市管理-查询详情" logType:"query"`
Id int64 `json:"id" v:"required#缺少ID" dc:"城市ID"` // 城市ID
}
// CityDetailRes 城市详情结果
type CityDetailRes struct {
CityItem
ParentName string `json:"parentName" dc:"父级名称"` // 父级名称
}
// CityAddReq 新增城市请求
type CityAddReq struct {
gmeta.Meta `method:"post" path:"/api/city/add" summary:"新增城市" permission:"sys:city:add" log:"城市管理-新增记录" logType:"add"`
CityCode string `json:"cityCode" v:"required#请输入城市编码" dc:"城市编码"` // 城市编码
AreaCode string `json:"areaCode" dc:"区域编码"` // 区域编码
ParentCode string `json:"parentCode" dc:"父级编码"` // 父级编码
ZipCode string `json:"zipCode" dc:"邮编"` // 邮政编码
Level int `json:"level" dc:"层级"` // 层级
Pid int64 `json:"pid" dc:"父级ID"` // 父级ID
Name string `json:"name" v:"required#请输入名称" dc:"名称"` // 城市名称
ShortName string `json:"shortName" dc:"简称"` // 城市简称
FullName string `json:"fullName" dc:"全称"` // 城市全称
Pinyin string `json:"pinyin" dc:"拼音"` // 拼音
Lng string `json:"lng" dc:"经度"` // 经度
Lat string `json:"lat" dc:"纬度"` // 纬度
}
// CityUpdateReq 修改城市请求
type CityUpdateReq struct {
gmeta.Meta `method:"put" path:"/api/city/update" summary:"修改城市" permission:"sys:city:update" log:"城市管理-修改记录" logType:"update"`
Id int64 `json:"id" v:"required#缺少ID" dc:"城市ID"` // 城市ID
CityCode string `json:"cityCode" dc:"城市编码"` // 城市编码
AreaCode string `json:"areaCode" dc:"区域编码"` // 区域编码
ParentCode string `json:"parentCode" dc:"父级编码"` // 父级编码
ZipCode string `json:"zipCode" dc:"邮编"` // 邮政编码
Level int `json:"level" dc:"层级"` // 层级
Pid int64 `json:"pid" dc:"父级ID"` // 父级ID
Name string `json:"name" dc:"名称"` // 城市名称
ShortName string `json:"shortName" dc:"简称"` // 城市简称
FullName string `json:"fullName" dc:"全称"` // 城市全称
Pinyin string `json:"pinyin" dc:"拼音"` // 拼音
Lng string `json:"lng" dc:"经度"` // 经度
Lat string `json:"lat" dc:"纬度"` // 纬度
}
// CityUpdateRes 修改城市结果
type CityUpdateRes struct{}
// CityDeleteReq 删除城市请求
type CityDeleteReq struct {
gmeta.Meta `method:"delete" path:"/api/city/delete/:id" summary:"删除城市" permission:"sys:city:delete" log:"城市管理-删除记录" logType:"delete"`
Id int64 `json:"id" v:"required#缺少ID" dc:"城市ID"` // 城市ID
}
// CityDeleteRes 删除城市结果
type CityDeleteRes struct{}
// CityBatchDeleteReq 批量删除城市请求
type CityBatchDeleteReq struct {
gmeta.Meta `method:"delete" path:"/api/city/batchDelete" summary:"批量删除城市" permission:"sys:city:batchDelete" log:"城市管理-批量删除记录" logType:"delete"`
Ids []int64 `json:"ids" v:"required#请选择要删除的记录" dc:"城市ID列表"` // 城市ID列表
}
// CityBatchDeleteRes 批量删除结果
type CityBatchDeleteRes struct{}
// CityByParentReq 按父编码查询下级城市请求
// 登录用户即可访问,用于查询指定父级下的直属下级城市
type CityByParentReq struct {
gmeta.Meta `method:"get" path:"/api/area/findByParentCode" summary:"按父编码查询城市" log:"城市查询-查询下级城市" logType:"query"`
ParentCode string `json:"parentCode" v:"required#请输入父级编码" dc:"父级编码"` // 父级编码
}
// CityByParentRes 按父编码查询结果
type CityByParentRes struct {
List []CityItem `json:"list"` // 城市列表
}
// AreaParentReq 省份列表请求
// 登录用户即可访问,用于查询顶级省份列表
type AreaParentReq struct {
gmeta.Meta `method:"get" path:"/api/area/getParent" summary:"查询省份列表" log:"城市查询-查询省份列表" logType:"query"`
}
// AreaParentRes 省份列表结果
type AreaParentRes struct {
List []CityItem `json:"list"` // 省份列表
}
// CityGetListReq 按父编码获取下级城市请求
// 登录用户即可访问,用于级联选择器懒加载下级城市
type CityGetListReq struct {
gmeta.Meta `method:"get" path:"/api/city/getCityList/:parentCode" summary:"按父编码获取城市列表" log:"城市查询-查询城市列表" logType:"query"`
ParentCode string `json:"parentCode" v:"required#缺少父级编码" dc:"父级行政编码(顶级为0)"` // 父级行政编码,顶级为0
}
// CityGetListRes 城市列表结果
// data 直接为数组
type CityGetListRes = []CityItem
+113
View File
@@ -0,0 +1,113 @@
// +======================================================================
// | EasyGoAdmin 企业数字化开发平台 [ 赋能开发者,助力企业发展 ]
// +----------------------------------------------------------------------
// | Copyright (c) 2019-2026 半城风雨团队 版权所有
// +----------------------------------------------------------------------
// | 开源协议: Apache-2.0
// | 重要声明: 未经书面许可,不得移除或修改本框架相关版权标识。
// +----------------------------------------------------------------------
// | 官方网站: https://www.easygoadmin.vip
// +----------------------------------------------------------------------
// | 研发团队: 小蚂蚁云团队 荣誉出品
// +======================================================================
// | 版权和免责声明:
// | 一、知识产权声明
// | 本团队对该软件框架产品(以下简称“本产品”)拥有完整知识产权,包括但不限于商标权、专利权、
// | 著作权、商业秘密等。前述权利均受中华人民共和国及相关国际法律法规保护。未经本团队书面授权,
// | 任何个人或单位不得基于本产品本身申请任何形式的知识产权。
// | 二、使用限制与禁止条款
// | 您理解并同意,禁止将本产品用于以下任何行为:
// | 1. 任何违反中华人民共和国法律法规的用途;
// | 2. 任何侵害他人合法权益(包括但不限于人身权、财产权、知识产权等)的行为;
// | 3. 任何危害国家安全、公共利益及社会道德风尚的行为。
// | 三、责任豁免
// | 因使用本产品而产生的任何损失或法律纠纷(包括但不限于直接损失、间接损失、附带损失、衍生损失
// | 以及因违约、侵权等引发的责任),本团队均不承担任何法律责任。若因违规使用本产品导致任何第三
// | 方提起索赔或行政机关进行调查,您应独立承担全部责任。
// | 四、违约与法律责任
// | 如发现任何违反本声明的行为,本团队有权:
// | 1. 无条件配合公安机关及其他有权机关的调查取证工作;
// | 2. 依法追究相关方的民事责任,并要求赔偿全部损失;
// | 3. 保留进一步采取刑事控告等法律措施的权利。
// | 五、许可范围说明
// | 1、被授权方应视本产品源代码为核心机密信息,负有最高标准的保密与保管义务。禁止以任何形式(包
// | 括但不限于直接或间接的分享、复制、传播、分发、转售、出租、开源、反向工程、反编译、反汇编或通
// | 过网络服务提供给任何第三方)泄露、披露或处置源代码的全部或部分内容。任何未经授权的复制、使用、
// | 传播行为均构成对本团队知识产权的严重侵权,本团队有权依法追究其全部法律责任,并要求赔偿因此造
// | 成的一切经济损失及商誉损害。
// | 2、本产品仅限于公司或个人在法律允许范围内,用于内部且合规的软件产品研发。具体权利义务以《软件
// | 许可协议》附件为准。
// +======================================================================
package v1
// ============================== 公共基础模块 ==============================
// PageReq 分页公共参数
// 对应前端分页契约:pageNo/pageSize
type PageReq struct {
PageNo int `json:"pageNo" dc:"页码,从1开始,默认1"` // 页码,从1开始
PageSize int `json:"pageSize" dc:"每页条数,默认10,最大500"` // 每页条数
}
// GetPageNo 获取页码
// 页码小于等于0时返回默认值1
func (p *PageReq) GetPageNo() int {
if p.PageNo <= 0 {
return 1
}
return p.PageNo
}
// GetPageSize 获取每页条数
// 每页条数小于等于0时返回默认值10,超过500时按500截断
func (p *PageReq) GetPageSize() int {
if p.PageSize <= 0 {
return 10
}
if p.PageSize > 500 {
return 500
}
return p.PageSize
}
// Offset 计算SQL LIMIT偏移量
// 偏移量 = (页码 - 1) × 每页条数
func (p *PageReq) Offset() int {
return (p.GetPageNo() - 1) * p.GetPageSize()
}
// IdsReq 批量删除入参
// 通用批量操作请求体,携带待操作的ID列表
type IdsReq struct {
Ids []int64 `json:"ids" v:"required#请选择要操作的记录" dc:"ID列表"` // ID列表
}
// IdRes 通用返回ID结构
// 各模块新增等接口共用的返回结果
type IdRes struct {
Id int64 `json:"id"` // 主键ID
}
// PageData 统一分页壳
// 对应前端分页契约:records/total/size/current/pages
type PageData[T any] struct {
Records []T `json:"records"` // 当前页记录列表
Total int `json:"total"` // 总记录数
Size int `json:"size"` // 请求的每页条数
Current int `json:"current"` // 请求页码
Pages int `json:"pages"` // 总页数
}
// NewPageData 构造分页壳
// records 为空时输出空数组而非 null,pages 按总记录数与每页条数计算得出
func NewPageData[T any](pageNo, pageSize, total int, records []T) *PageData[T] {
if records == nil {
records = []T{}
}
pages := 0
if pageSize > 0 {
pages = (total + pageSize - 1) / pageSize
}
return &PageData[T]{Records: records, Total: total, Size: pageSize, Current: pageNo, Pages: pages}
}
+211
View File
@@ -0,0 +1,211 @@
// +======================================================================
// | EasyGoAdmin 企业数字化开发平台 [ 赋能开发者,助力企业发展 ]
// +----------------------------------------------------------------------
// | Copyright (c) 2019-2026 半城风雨团队 版权所有
// +----------------------------------------------------------------------
// | 开源协议: Apache-2.0
// | 重要声明: 未经书面许可,不得移除或修改本框架相关版权标识。
// +----------------------------------------------------------------------
// | 官方网站: https://www.easygoadmin.vip
// +----------------------------------------------------------------------
// | 研发团队: 小蚂蚁云团队 荣誉出品
// +======================================================================
// | 版权和免责声明:
// | 一、知识产权声明
// | 本团队对该软件框架产品(以下简称“本产品”)拥有完整知识产权,包括但不限于商标权、专利权、
// | 著作权、商业秘密等。前述权利均受中华人民共和国及相关国际法律法规保护。未经本团队书面授权,
// | 任何个人或单位不得基于本产品本身申请任何形式的知识产权。
// | 二、使用限制与禁止条款
// | 您理解并同意,禁止将本产品用于以下任何行为:
// | 1. 任何违反中华人民共和国法律法规的用途;
// | 2. 任何侵害他人合法权益(包括但不限于人身权、财产权、知识产权等)的行为;
// | 3. 任何危害国家安全、公共利益及社会道德风尚的行为。
// | 三、责任豁免
// | 因使用本产品而产生的任何损失或法律纠纷(包括但不限于直接损失、间接损失、附带损失、衍生损失
// | 以及因违约、侵权等引发的责任),本团队均不承担任何法律责任。若因违规使用本产品导致任何第三
// | 方提起索赔或行政机关进行调查,您应独立承担全部责任。
// | 四、违约与法律责任
// | 如发现任何违反本声明的行为,本团队有权:
// | 1. 无条件配合公安机关及其他有权机关的调查取证工作;
// | 2. 依法追究相关方的民事责任,并要求赔偿全部损失;
// | 3. 保留进一步采取刑事控告等法律措施的权利。
// | 五、许可范围说明
// | 1、被授权方应视本产品源代码为核心机密信息,负有最高标准的保密与保管义务。禁止以任何形式(包
// | 括但不限于直接或间接的分享、复制、传播、分发、转售、出租、开源、反向工程、反编译、反汇编或通
// | 过网络服务提供给任何第三方)泄露、披露或处置源代码的全部或部分内容。任何未经授权的复制、使用、
// | 传播行为均构成对本团队知识产权的严重侵权,本团队有权依法追究其全部法律责任,并要求赔偿因此造
// | 成的一切经济损失及商誉损害。
// | 2、本产品仅限于公司或个人在法律允许范围内,用于内部且合规的软件产品研发。具体权利义务以《软件
// | 许可协议》附件为准。
// +======================================================================
package v1
import (
"encoding/json"
"errors"
"github.com/gogf/gf/v2/net/ghttp"
"github.com/gogf/gf/v2/util/gmeta"
)
// ============================== 配置模块 ==============================
// ConfigItemRow 配置项行数据
// 内嵌使用,供配置详情、配置列表展示配置项明细
type ConfigItemRow struct {
Id int64 `json:"id"` // 主键ID
Name string `json:"name"` // 配置项名称
Code string `json:"code"` // 配置项编码
Value string `json:"value"` // 配置项值
Type string `json:"type"` // 控件类型
Status int `json:"status"` // 状态
Sort int `json:"sort"` // 排序
}
// ConfigItem 配置行数据
// 用于分页列表等场景的配置基础信息
type ConfigItem struct {
Id int64 `json:"id"` // 主键ID
Name string `json:"name"` // 配置名称
Code string `json:"code"` // 配置编码
Sort int `json:"sort"` // 排序
Note string `json:"note"` // 备注
CreateUser string `json:"createUser"` // 创建人
}
// ConfigPageReq 配置分页请求
// 支持关键词、配置名称等条件组合查询
type ConfigPageReq struct {
gmeta.Meta `method:"get" path:"/api/config/page" summary:"配置分页" permission:"sys:config:page" log:"配置管理-查询分页记录" logType:"query"`
PageReq // 分页基础参数
Keyword string `json:"keyword" dc:"关键词(名称/编码模糊)"` // 关键词,名称或编码模糊匹配
Name string `json:"name" dc:"配置名称模糊"` // 配置名称模糊匹配
}
// ConfigPageRes 配置分页结果
type ConfigPageRes = PageData[ConfigItem]
// ConfigListReq 配置列表请求
// 返回的每一项均携带其下的配置项集合
type ConfigListReq struct {
gmeta.Meta `method:"get" path:"/api/config/list" summary:"配置列表" permission:"sys:config:list" log:"配置管理-查询列表" logType:"query"`
Keyword string `json:"keyword" dc:"关键词"` // 关键词
}
// ConfigListRes 配置列表结果
// 列表每一项携带其下的配置项集合
type ConfigListRes = []ConfigWithItems
// ConfigWithItems 配置及其配置项集合
// 用于列表、详情等需要同时返回配置与配置项的场景
type ConfigWithItems struct {
ConfigItem
Items []ConfigItemRow `json:"items"` // 配置项集合
}
// ConfigDetailReq 配置详情请求
type ConfigDetailReq struct {
gmeta.Meta `method:"get" path:"/api/config/detail/:id" summary:"配置详情" permission:"sys:config:detail" log:"配置管理-查询详情" logType:"query"`
Id int64 `json:"id" v:"required#缺少ID" dc:"配置ID"` // 配置ID
}
// ConfigDetailRes 配置详情结果
// 包含配置基础信息及其下的配置项集合
type ConfigDetailRes struct {
ConfigItem
Items []ConfigItemRow `json:"items"` // 配置项集合
}
// ConfigAddReq 新增配置请求
type ConfigAddReq struct {
gmeta.Meta `method:"post" path:"/api/config/add" summary:"新增配置" permission:"sys:config:add" log:"配置管理-新增记录" logType:"add"`
Name string `json:"name" v:"required#请输入配置名称" dc:"配置名称"` // 配置名称
Code string `json:"code" v:"required#请输入配置编码" dc:"配置编码"` // 配置编码
Sort int `json:"sort" dc:"排序"` // 排序
Note string `json:"note" dc:"备注"` // 备注
}
// ConfigUpdateReq 修改配置请求
type ConfigUpdateReq struct {
gmeta.Meta `method:"put" path:"/api/config/update" summary:"修改配置" permission:"sys:config:update" log:"配置管理-修改记录" logType:"update"`
Id int64 `json:"id" v:"required#缺少ID" dc:"配置ID"` // 配置ID
Name string `json:"name" v:"required#请输入配置名称" dc:"配置名称"` // 配置名称
Code string `json:"code" v:"required#请输入配置编码" dc:"配置编码"` // 配置编码
Sort int `json:"sort" dc:"排序"` // 排序
Note string `json:"note" dc:"备注"` // 备注
}
// ConfigUpdateRes 修改配置结果
type ConfigUpdateRes struct{}
// ConfigDeleteReq 删除配置请求
type ConfigDeleteReq struct {
gmeta.Meta `method:"delete" path:"/api/config/delete/:id" summary:"删除配置" permission:"sys:config:delete" log:"配置管理-删除记录" logType:"delete"`
Id int64 `json:"id" v:"required#缺少ID" dc:"配置ID"` // 配置ID
}
// ConfigDeleteRes 删除配置结果
type ConfigDeleteRes struct{}
// ConfigBatchDeleteReq 批量删除配置请求
type ConfigBatchDeleteReq struct {
gmeta.Meta `method:"delete" path:"/api/config/batchDelete" summary:"批量删除配置" permission:"sys:config:batchDelete" log:"配置管理-批量删除记录" logType:"delete"`
Ids []int64 `json:"ids" v:"required#请选择要删除的记录" dc:"配置ID列表"` // 配置ID列表
}
// ConfigBatchDeleteRes 批量删除结果
type ConfigBatchDeleteRes struct{}
// ConfigWebIndexReq 获取网站配置请求
// 返回配置分组及其下的配置项,供网站配置页渲染
type ConfigWebIndexReq struct {
gmeta.Meta `method:"get" path:"/api/config/web/index" summary:"获取网站配置" permission:"sys:configWeb:data" log:"网站配置-获取配置" logType:"query"`
}
// ConfigWebItem 网站配置项
// value 按控件类型拼接访问URL;images/files 类型拆分到 valueList;options 解析为 param 映射
type ConfigWebItem struct {
Id int64 `json:"id"` // 主键ID
Name string `json:"name"` // 配置项名称
Code string `json:"code"` // 配置项编码
Value string `json:"value"` // 配置项值
ValueList []string `json:"valueList"` // 值列表,多值类型使用
Type string `json:"type"` // 控件类型
Options string `json:"options"` // 可选项原始串
Param map[string]string `json:"param"` // 可选项解析后的映射
}
// ConfigWebGroup 配置分组
// 表示一个配置标签页下的配置项集合
type ConfigWebGroup struct {
ConfigName string `json:"configName"` // 配置分组名称
DataList []ConfigWebItem `json:"dataList"` // 分组下的配置项集合
}
// ConfigWebIndexRes 网站配置聚合结果
type ConfigWebIndexRes = []ConfigWebGroup
// ConfigWebSaveReq 保存网站配置请求
// body 顶层为配置项编码到值的平铺映射,采用自定义解析
type ConfigWebSaveReq struct {
gmeta.Meta `method:"post" path:"/api/config/web/save" summary:"保存网站配置" permission:"sys:configWeb:save" log:"网站配置-保存配置" logType:"update"`
Data map[string]any `json:"data" dc:"配置项编码 → 值"` // 配置项编码到值的映射
}
// UnmarshalBody 自定义请求体解析
// body 顶层为配置项编码到值的平铺映射,跳过默认的请求参数解析流程
func (r *ConfigWebSaveReq) UnmarshalBody(req *ghttp.Request) error {
var data map[string]any
if err := json.Unmarshal(req.GetBody(), &data); err != nil {
return err
}
if len(data) == 0 {
return errors.New("请提交配置数据")
}
r.Data = data
return nil
}
// ConfigWebSaveRes 保存网站配置结果
type ConfigWebSaveRes struct{}
+166
View File
@@ -0,0 +1,166 @@
// +======================================================================
// | EasyGoAdmin 企业数字化开发平台 [ 赋能开发者,助力企业发展 ]
// +----------------------------------------------------------------------
// | Copyright (c) 2019-2026 半城风雨团队 版权所有
// +----------------------------------------------------------------------
// | 开源协议: Apache-2.0
// | 重要声明: 未经书面许可,不得移除或修改本框架相关版权标识。
// +----------------------------------------------------------------------
// | 官方网站: https://www.easygoadmin.vip
// +----------------------------------------------------------------------
// | 研发团队: 小蚂蚁云团队 荣誉出品
// +======================================================================
// | 版权和免责声明:
// | 一、知识产权声明
// | 本团队对该软件框架产品(以下简称“本产品”)拥有完整知识产权,包括但不限于商标权、专利权、
// | 著作权、商业秘密等。前述权利均受中华人民共和国及相关国际法律法规保护。未经本团队书面授权,
// | 任何个人或单位不得基于本产品本身申请任何形式的知识产权。
// | 二、使用限制与禁止条款
// | 您理解并同意,禁止将本产品用于以下任何行为:
// | 1. 任何违反中华人民共和国法律法规的用途;
// | 2. 任何侵害他人合法权益(包括但不限于人身权、财产权、知识产权等)的行为;
// | 3. 任何危害国家安全、公共利益及社会道德风尚的行为。
// | 三、责任豁免
// | 因使用本产品而产生的任何损失或法律纠纷(包括但不限于直接损失、间接损失、附带损失、衍生损失
// | 以及因违约、侵权等引发的责任),本团队均不承担任何法律责任。若因违规使用本产品导致任何第三
// | 方提起索赔或行政机关进行调查,您应独立承担全部责任。
// | 四、违约与法律责任
// | 如发现任何违反本声明的行为,本团队有权:
// | 1. 无条件配合公安机关及其他有权机关的调查取证工作;
// | 2. 依法追究相关方的民事责任,并要求赔偿全部损失;
// | 3. 保留进一步采取刑事控告等法律措施的权利。
// | 五、许可范围说明
// | 1、被授权方应视本产品源代码为核心机密信息,负有最高标准的保密与保管义务。禁止以任何形式(包
// | 括但不限于直接或间接的分享、复制、传播、分发、转售、出租、开源、反向工程、反编译、反汇编或通
// | 过网络服务提供给任何第三方)泄露、披露或处置源代码的全部或部分内容。任何未经授权的复制、使用、
// | 传播行为均构成对本团队知识产权的严重侵权,本团队有权依法追究其全部法律责任,并要求赔偿因此造
// | 成的一切经济损失及商誉损害。
// | 2、本产品仅限于公司或个人在法律允许范围内,用于内部且合规的软件产品研发。具体权利义务以《软件
// | 许可协议》附件为准。
// +======================================================================
package v1
import (
"github.com/gogf/gf/v2/util/gmeta"
)
// ============================== 配置项模块 ==============================
// ConfigItemItem 配置项行数据
// 用于配置项分页列表、配置项列表等场景的配置项基础信息
type ConfigItemItem struct {
Id int64 `json:"id"` // 主键ID
ConfigId int64 `json:"configId"` // 所属配置ID
ConfigName string `json:"configName"` // 所属配置名称
Name string `json:"name"` // 配置项名称
Code string `json:"code"` // 配置项编码
Value string `json:"value"` // 配置项值
Options string `json:"options"` // 可选项(JSON)
Type string `json:"type"` // 控件类型
Status int `json:"status"` // 状态
StatusText string `json:"statusText"` // 状态文本
Sort int `json:"sort"` // 排序
Note string `json:"note"` // 备注
CreateUser string `json:"createUser"` // 创建人
}
// ConfigItemPageReq 配置项分页请求
// 支持关键词、配置项名称、所属配置及状态等条件组合查询
type ConfigItemPageReq struct {
gmeta.Meta `method:"get" path:"/api/config/item/page" summary:"配置项分页" permission:"sys:configitem:page" log:"配置项管理-查询分页记录" logType:"query"`
PageReq // 分页基础参数
Keyword string `json:"keyword" dc:"关键词(名称/编码模糊)"` // 关键词,名称或编码模糊匹配
Name string `json:"name" dc:"配置项名称模糊"` // 配置项名称模糊匹配
ConfigId int64 `json:"configId" dc:"所属配置ID"` // 所属配置ID
Status int `json:"status" dc:"状态"` // 状态
}
// ConfigItemPageRes 配置项分页结果
type ConfigItemPageRes = PageData[ConfigItemItem]
// ConfigItemListReq 配置项列表请求
// 按所属配置、状态等条件查询配置项集合
type ConfigItemListReq struct {
gmeta.Meta `method:"get" path:"/api/config/item/list" summary:"配置项列表" permission:"sys:configitem:list" log:"配置项管理-查询列表" logType:"query"`
Keyword string `json:"keyword" dc:"关键词"` // 关键词
ConfigId int64 `json:"configId" dc:"所属配置ID"` // 所属配置ID
Status int `json:"status" dc:"状态"` // 状态
}
// ConfigItemListRes 配置项列表结果
type ConfigItemListRes = []ConfigItemItem
// ConfigItemDetailReq 配置项详情请求
type ConfigItemDetailReq struct {
gmeta.Meta `method:"get" path:"/api/config/item/detail/:id" summary:"配置项详情" permission:"sys:configitem:detail" log:"配置项管理-查询详情" logType:"query"`
Id int64 `json:"id" v:"required#缺少ID" dc:"配置项ID"` // 配置项ID
}
// ConfigItemDetailRes 配置项详情结果
// 包含配置项基础信息、所属配置编码及多值类型拆分后的值列表
type ConfigItemDetailRes struct {
Id int64 `json:"id"` // 主键ID
ConfigId int64 `json:"configId"` // 所属配置ID
ConfigCode string `json:"configCode"` // 所属配置编码
Name string `json:"name"` // 配置项名称
Code string `json:"code"` // 配置项编码
Value string `json:"value"` // 配置项值
ValueList []string `json:"valueList"` // 值列表,多值类型使用
Options string `json:"options"` // 可选项(JSON)
Type string `json:"type"` // 控件类型
Status int `json:"status"` // 状态
StatusText string `json:"statusText"` // 状态文本
Sort int `json:"sort"` // 排序
Note string `json:"note"` // 备注
}
// ConfigItemAddReq 新增配置项请求
type ConfigItemAddReq struct {
gmeta.Meta `method:"post" path:"/api/config/item/add" summary:"新增配置项" permission:"sys:configitem:add" log:"配置项管理-新增记录" logType:"add"`
ConfigId int64 `json:"configId" v:"required#请选择所属配置" dc:"所属配置ID"` // 所属配置ID
Name string `json:"name" v:"required#请输入配置项名称" dc:"配置项名称"` // 配置项名称
Code string `json:"code" v:"required#请输入配置项编码" dc:"配置项编码"` // 配置项编码
Value string `json:"value" dc:"配置项值"` // 配置项值
Options string `json:"options" dc:"可选项(JSON)"` // 可选项
Type string `json:"type" dc:"类型:text-单行文本 textarea-多行文本 number-数字 select-下拉 radio-单选 checkbox-复选 image-单图 images-多图 file-单文件 files-多文件(见字典 config_item_type)"` // 控件类型
Status int `json:"status" dc:"状态"` // 状态
Sort int `json:"sort" dc:"排序"` // 排序
Note string `json:"note" dc:"备注"` // 备注
}
// ConfigItemUpdateReq 修改配置项请求
type ConfigItemUpdateReq struct {
gmeta.Meta `method:"put" path:"/api/config/item/update" summary:"修改配置项" permission:"sys:configitem:update" log:"配置项管理-修改记录" logType:"update"`
Id int64 `json:"id" v:"required#缺少ID" dc:"配置项ID"` // 配置项ID
ConfigId int64 `json:"configId" dc:"所属配置ID"` // 所属配置ID
Name string `json:"name" v:"required#请输入配置项名称" dc:"配置项名称"` // 配置项名称
Code string `json:"code" v:"required#请输入配置项编码" dc:"配置项编码"` // 配置项编码
Value string `json:"value" dc:"配置项值"` // 配置项值
Options string `json:"options" dc:"可选项(JSON)"` // 可选项
Type string `json:"type" dc:"类型(见字典 config_item_type)"` // 控件类型
Status int `json:"status" dc:"状态"` // 状态
Sort int `json:"sort" dc:"排序"` // 排序
Note string `json:"note" dc:"备注"` // 备注
}
// ConfigItemUpdateRes 修改配置项结果
type ConfigItemUpdateRes struct{}
// ConfigItemDeleteReq 删除配置项请求
type ConfigItemDeleteReq struct {
gmeta.Meta `method:"delete" path:"/api/config/item/delete/:id" summary:"删除配置项" permission:"sys:configitem:delete" log:"配置项管理-删除记录" logType:"delete"`
Id int64 `json:"id" v:"required#缺少ID" dc:"配置项ID"` // 配置项ID
}
// ConfigItemDeleteRes 删除配置项结果
type ConfigItemDeleteRes struct{}
// ConfigItemBatchDeleteReq 批量删除配置项请求
type ConfigItemBatchDeleteReq struct {
gmeta.Meta `method:"delete" path:"/api/config/item/batchDelete" summary:"批量删除配置项" permission:"sys:configitem:batchDelete" log:"配置项管理-批量删除记录" logType:"delete"`
Ids []int64 `json:"ids" v:"required#请选择要删除的记录" dc:"配置项ID列表"` // 配置项ID列表
}
// ConfigItemBatchDeleteRes 批量删除结果
type ConfigItemBatchDeleteRes struct{}
+148
View File
@@ -0,0 +1,148 @@
// +======================================================================
// | EasyGoAdmin 企业数字化开发平台 [ 赋能开发者,助力企业发展 ]
// +----------------------------------------------------------------------
// | Copyright (c) 2019-2026 半城风雨团队 版权所有
// +----------------------------------------------------------------------
// | 开源协议: Apache-2.0
// | 重要声明: 未经书面许可,不得移除或修改本框架相关版权标识。
// +----------------------------------------------------------------------
// | 官方网站: https://www.easygoadmin.vip
// +----------------------------------------------------------------------
// | 研发团队: 小蚂蚁云团队 荣誉出品
// +======================================================================
// | 版权和免责声明:
// | 一、知识产权声明
// | 本团队对该软件框架产品(以下简称“本产品”)拥有完整知识产权,包括但不限于商标权、专利权、
// | 著作权、商业秘密等。前述权利均受中华人民共和国及相关国际法律法规保护。未经本团队书面授权,
// | 任何个人或单位不得基于本产品本身申请任何形式的知识产权。
// | 二、使用限制与禁止条款
// | 您理解并同意,禁止将本产品用于以下任何行为:
// | 1. 任何违反中华人民共和国法律法规的用途;
// | 2. 任何侵害他人合法权益(包括但不限于人身权、财产权、知识产权等)的行为;
// | 3. 任何危害国家安全、公共利益及社会道德风尚的行为。
// | 三、责任豁免
// | 因使用本产品而产生的任何损失或法律纠纷(包括但不限于直接损失、间接损失、附带损失、衍生损失
// | 以及因违约、侵权等引发的责任),本团队均不承担任何法律责任。若因违规使用本产品导致任何第三
// | 方提起索赔或行政机关进行调查,您应独立承担全部责任。
// | 四、违约与法律责任
// | 如发现任何违反本声明的行为,本团队有权:
// | 1. 无条件配合公安机关及其他有权机关的调查取证工作;
// | 2. 依法追究相关方的民事责任,并要求赔偿全部损失;
// | 3. 保留进一步采取刑事控告等法律措施的权利。
// | 五、许可范围说明
// | 1、被授权方应视本产品源代码为核心机密信息,负有最高标准的保密与保管义务。禁止以任何形式(包
// | 括但不限于直接或间接的分享、复制、传播、分发、转售、出租、开源、反向工程、反编译、反汇编或通
// | 过网络服务提供给任何第三方)泄露、披露或处置源代码的全部或部分内容。任何未经授权的复制、使用、
// | 传播行为均构成对本团队知识产权的严重侵权,本团队有权依法追究其全部法律责任,并要求赔偿因此造
// | 成的一切经济损失及商誉损害。
// | 2、本产品仅限于公司或个人在法律允许范围内,用于内部且合规的软件产品研发。具体权利义务以《软件
// | 许可协议》附件为准。
// +======================================================================
package v1
import (
"github.com/gogf/gf/v2/os/gtime"
"github.com/gogf/gf/v2/util/gmeta"
)
// ============================== 部门模块 ==============================
// DeptItem 部门行数据
// 用于部门分页列表、树形列表等场景的部门基础信息
type DeptItem struct {
Id int64 `json:"id"` // 主键ID
TenantId int `json:"tenantId"` // 租户ID
Name string `json:"name"` // 部门名称
Type int `json:"type"` // 部门类型:1-公司 2-子公司 3-部门 4-小组
TypeText string `json:"typeText"` // 部门类型文本
ParentId int `json:"parentId"` // 上级部门ID(0=顶级)
Sort int `json:"sort"` // 排序
Note string `json:"note"` // 备注
CreateUser string `json:"createUser"` // 创建人
CreateTime *gtime.Time `json:"createTime"` // 创建时间
}
// DeptPageReq 部门分页请求
// 支持关键词、部门名称、部门类型等条件组合查询
type DeptPageReq struct {
gmeta.Meta `method:"get" path:"/api/dept/page" summary:"部门分页" permission:"sys:dept:page" log:"部门管理-查询分页记录" logType:"query"`
PageReq // 分页基础参数
Keyword string `json:"keyword" dc:"关键词"` // 关键词
Name string `json:"name" dc:"部门名称模糊"` // 部门名称模糊匹配
Type int `json:"type" dc:"部门类型:1-公司 2-子公司 3-部门 4-小组"` // 部门类型
}
// DeptPageRes 部门分页结果
type DeptPageRes = PageData[DeptItem]
// DeptListReq 部门树形列表请求
// 返回平铺列表,由前端自行构建树形结构
type DeptListReq struct {
gmeta.Meta `method:"get" path:"/api/dept/list" summary:"部门树形列表" permission:"sys:dept:list" log:"部门管理-查询树形列表" logType:"query"`
Keyword string `json:"keyword" dc:"关键词"` // 关键词
Type int `json:"type" dc:"部门类型"` // 部门类型
}
// DeptListRes 部门平铺列表结果
// data 直接为数组,由前端自行构建树形结构
type DeptListRes = []*DeptItem
// DeptDetailReq 部门详情请求
type DeptDetailReq struct {
gmeta.Meta `method:"get" path:"/api/dept/detail/:id" summary:"部门详情" permission:"sys:dept:detail" log:"部门管理-查询详情" logType:"query"`
Id int64 `json:"id" v:"required#缺少ID" dc:"部门ID"` // 部门ID
}
// DeptDetailRes 部门详情结果
type DeptDetailRes struct {
Id int64 `json:"id"` // 主键ID
Name string `json:"name"` // 部门名称
Type int `json:"type"` // 部门类型
TypeText string `json:"typeText"` // 部门类型文本
ParentId int `json:"parentId"` // 上级部门ID
Sort int `json:"sort"` // 排序
Note string `json:"note"` // 备注
}
// DeptAddReq 新增部门请求
type DeptAddReq struct {
gmeta.Meta `method:"post" path:"/api/dept/add" summary:"新增部门" permission:"sys:dept:add" log:"部门管理-新增记录" logType:"add"`
Name string `json:"name" v:"required#请输入部门名称" dc:"部门名称"` // 部门名称
Type int `json:"type" v:"required:1,2,3,4#请选择部门类型" dc:"部门类型:1-公司 2-子公司 3-部门 4-小组"` // 部门类型
ParentId int `json:"parentId" dc:"上级部门ID(0=顶级)"` // 上级部门ID
Sort int `json:"sort" dc:"排序"` // 排序
Note string `json:"note" dc:"备注"` // 备注
}
// DeptUpdateReq 修改部门请求
type DeptUpdateReq struct {
gmeta.Meta `method:"put" path:"/api/dept/update" summary:"修改部门" permission:"sys:dept:update" log:"部门管理-修改记录" logType:"update"`
Id int64 `json:"id" v:"required#缺少ID" dc:"部门ID"` // 部门ID
Name string `json:"name" v:"required#请输入部门名称" dc:"部门名称"` // 部门名称
Type int `json:"type" dc:"部门类型"` // 部门类型
ParentId int `json:"parentId" dc:"上级部门ID"` // 上级部门ID
Sort int `json:"sort" dc:"排序"` // 排序
Note string `json:"note" dc:"备注"` // 备注
}
// DeptUpdateRes 修改部门结果
type DeptUpdateRes struct{}
// DeptDeleteReq 删除部门请求
type DeptDeleteReq struct {
gmeta.Meta `method:"delete" path:"/api/dept/delete/:id" summary:"删除部门" permission:"sys:dept:delete" log:"部门管理-删除记录" logType:"delete"`
Id int64 `json:"id" v:"required#缺少ID" dc:"部门ID"` // 部门ID
}
// DeptDeleteRes 删除部门结果
type DeptDeleteRes struct{}
// DeptBatchDeleteReq 批量删除部门请求
type DeptBatchDeleteReq struct {
gmeta.Meta `method:"delete" path:"/api/dept/batchDelete" summary:"批量删除部门" permission:"sys:dept:batchDelete" log:"部门管理-批量删除记录" logType:"delete"`
Ids []int64 `json:"ids" v:"required#请选择要删除的记录" dc:"部门ID列表"` // 部门ID列表
}
// DeptBatchDeleteRes 批量删除结果
type DeptBatchDeleteRes struct{}
+167
View File
@@ -0,0 +1,167 @@
// +======================================================================
// | EasyGoAdmin 企业数字化开发平台 [ 赋能开发者,助力企业发展 ]
// +----------------------------------------------------------------------
// | Copyright (c) 2019-2026 半城风雨团队 版权所有
// +----------------------------------------------------------------------
// | 开源协议: Apache-2.0
// | 重要声明: 未经书面许可,不得移除或修改本框架相关版权标识。
// +----------------------------------------------------------------------
// | 官方网站: https://www.easygoadmin.vip
// +----------------------------------------------------------------------
// | 研发团队: 小蚂蚁云团队 荣誉出品
// +======================================================================
// | 版权和免责声明:
// | 一、知识产权声明
// | 本团队对该软件框架产品(以下简称“本产品”)拥有完整知识产权,包括但不限于商标权、专利权、
// | 著作权、商业秘密等。前述权利均受中华人民共和国及相关国际法律法规保护。未经本团队书面授权,
// | 任何个人或单位不得基于本产品本身申请任何形式的知识产权。
// | 二、使用限制与禁止条款
// | 您理解并同意,禁止将本产品用于以下任何行为:
// | 1. 任何违反中华人民共和国法律法规的用途;
// | 2. 任何侵害他人合法权益(包括但不限于人身权、财产权、知识产权等)的行为;
// | 3. 任何危害国家安全、公共利益及社会道德风尚的行为。
// | 三、责任豁免
// | 因使用本产品而产生的任何损失或法律纠纷(包括但不限于直接损失、间接损失、附带损失、衍生损失
// | 以及因违约、侵权等引发的责任),本团队均不承担任何法律责任。若因违规使用本产品导致任何第三
// | 方提起索赔或行政机关进行调查,您应独立承担全部责任。
// | 四、违约与法律责任
// | 如发现任何违反本声明的行为,本团队有权:
// | 1. 无条件配合公安机关及其他有权机关的调查取证工作;
// | 2. 依法追究相关方的民事责任,并要求赔偿全部损失;
// | 3. 保留进一步采取刑事控告等法律措施的权利。
// | 五、许可范围说明
// | 1、被授权方应视本产品源代码为核心机密信息,负有最高标准的保密与保管义务。禁止以任何形式(包
// | 括但不限于直接或间接的分享、复制、传播、分发、转售、出租、开源、反向工程、反编译、反汇编或通
// | 过网络服务提供给任何第三方)泄露、披露或处置源代码的全部或部分内容。任何未经授权的复制、使用、
// | 传播行为均构成对本团队知识产权的严重侵权,本团队有权依法追究其全部法律责任,并要求赔偿因此造
// | 成的一切经济损失及商誉损害。
// | 2、本产品仅限于公司或个人在法律允许范围内,用于内部且合规的软件产品研发。具体权利义务以《软件
// | 许可协议》附件为准。
// +======================================================================
package v1
import (
"github.com/gogf/gf/v2/util/gmeta"
)
// ============================== 字典模块 ==============================
// DictItemRow 字典项行数据
// 内嵌使用,供字典详情展示字典项明细
type DictItemRow struct {
Id int64 `json:"id"` // 主键ID
Name string `json:"name"` // 字典项名称
Value string `json:"value"` // 字典项值
Sort int `json:"sort"` // 排序
}
// DictItem 字典行数据
// 用于字典分页列表、字典列表等场景的字典基础信息
type DictItem struct {
Id int64 `json:"id"` // 主键ID
Name string `json:"name"` // 字典名称
Code string `json:"code"` // 字典编码
Sort int `json:"sort"` // 排序
Note string `json:"note"` // 备注
CreateUser string `json:"createUser"` // 创建人
}
// DictPageReq 字典分页请求
// 支持关键词、字典名称等条件组合查询
type DictPageReq struct {
gmeta.Meta `method:"get" path:"/api/dict/page" summary:"字典分页" permission:"sys:dict:page" log:"字典管理-查询分页记录" logType:"query"`
PageReq // 分页基础参数
Keyword string `json:"keyword" dc:"关键词(名称/编码模糊)"` // 关键词,名称或编码模糊匹配
Name string `json:"name" dc:"字典名称模糊"` // 字典名称模糊匹配
}
// DictPageRes 字典分页结果
type DictPageRes = PageData[DictItem]
// DictDetailReq 字典详情请求
// 返回字典基础信息及其下的字典项集合
type DictDetailReq struct {
gmeta.Meta `method:"get" path:"/api/dict/detail/:id" summary:"字典详情" permission:"sys:dict:detail" log:"字典管理-查询详情" logType:"query"`
Id int64 `json:"id" v:"required#缺少ID" dc:"字典ID"` // 字典ID
}
// DictDetailRes 字典详情结果
// 包含字典基础信息及其下的字典项集合
type DictDetailRes struct {
DictItem
Items []DictItemRow `json:"items"` // 字典项集合
}
// DictAddReq 新增字典请求
type DictAddReq struct {
gmeta.Meta `method:"post" path:"/api/dict/add" summary:"新增字典" permission:"sys:dict:add" log:"字典管理-新增记录" logType:"add"`
Name string `json:"name" v:"required#请输入字典名称" dc:"字典名称"` // 字典名称
Code string `json:"code" v:"required#请输入字典编码" dc:"字典编码"` // 字典编码
Sort int `json:"sort" dc:"排序"` // 排序
Note string `json:"note" dc:"备注"` // 备注
}
// DictUpdateReq 修改字典请求
type DictUpdateReq struct {
gmeta.Meta `method:"put" path:"/api/dict/update" summary:"修改字典" permission:"sys:dict:update" log:"字典管理-修改记录" logType:"update"`
Id int64 `json:"id" v:"required#缺少ID" dc:"字典ID"` // 字典ID
Name string `json:"name" v:"required#请输入字典名称" dc:"字典名称"` // 字典名称
Code string `json:"code" v:"required#请输入字典编码" dc:"字典编码"` // 字典编码
Sort int `json:"sort" dc:"排序"` // 排序
Note string `json:"note" dc:"备注"` // 备注
}
// DictUpdateRes 修改字典结果
type DictUpdateRes struct{}
// DictDeleteReq 删除字典请求
type DictDeleteReq struct {
gmeta.Meta `method:"delete" path:"/api/dict/delete/:id" summary:"删除字典" permission:"sys:dict:delete" log:"字典管理-删除记录" logType:"delete"`
Id int64 `json:"id" v:"required#缺少ID" dc:"字典ID"` // 字典ID
}
// DictDeleteRes 删除字典结果
type DictDeleteRes struct{}
// DictBatchDeleteReq 批量删除字典请求
type DictBatchDeleteReq struct {
gmeta.Meta `method:"delete" path:"/api/dict/batchDelete" summary:"批量删除字典" permission:"sys:dict:batchDelete" log:"字典管理-批量删除记录" logType:"delete"`
Ids []int64 `json:"ids" v:"required#请选择要删除的记录" dc:"字典ID列表"` // 字典ID列表
}
// DictBatchDeleteRes 批量删除结果
type DictBatchDeleteRes struct{}
// DictRefreshCacheReq 刷新字典缓存请求
type DictRefreshCacheReq struct {
gmeta.Meta `method:"get" path:"/api/dict/refreshCache" summary:"刷新字典缓存" permission:"sys:dict:cache" log:"字典管理-刷新缓存" logType:"update"`
Code string `json:"code" dc:"字典编码(留空刷新全部)"` // 字典编码,留空刷新全部
}
// DictRefreshCacheRes 刷新缓存结果
type DictRefreshCacheRes struct{}
// DictAliasListReq 字典别名列表请求
// 登录用户即可访问,供前端字典查询场景使用
type DictAliasListReq struct {
gmeta.Meta `method:"get" path:"/api/dictionary/list" summary:"字典列表" log:"字典管理-查询列表" logType:"query"`
Keyword string `json:"keyword" dc:"关键词"` // 关键词
}
// DictAliasListRes 字典别名列表结果
type DictAliasListRes = []DictItem
// DictAliasInfoReq 字典别名详情请求
// 登录用户即可访问,按字典编码查询字典及其字典项
type DictAliasInfoReq struct {
gmeta.Meta `method:"get" path:"/api/dictionary/info" summary:"字典详情" log:"字典管理-查询详情" logType:"query"`
Code string `json:"code" v:"required#请输入字典编码" dc:"字典编码"` // 字典编码
}
// DictAliasInfoRes 字典别名详情结果
// 包含字典基础信息及其下的字典项集合
type DictAliasInfoRes struct {
DictItem
Items []DictItemRow `json:"items"` // 字典项集合
}
+151
View File
@@ -0,0 +1,151 @@
// +======================================================================
// | EasyGoAdmin 企业数字化开发平台 [ 赋能开发者,助力企业发展 ]
// +----------------------------------------------------------------------
// | Copyright (c) 2019-2026 半城风雨团队 版权所有
// +----------------------------------------------------------------------
// | 开源协议: Apache-2.0
// | 重要声明: 未经书面许可,不得移除或修改本框架相关版权标识。
// +----------------------------------------------------------------------
// | 官方网站: https://www.easygoadmin.vip
// +----------------------------------------------------------------------
// | 研发团队: 小蚂蚁云团队 荣誉出品
// +======================================================================
// | 版权和免责声明:
// | 一、知识产权声明
// | 本团队对该软件框架产品(以下简称“本产品”)拥有完整知识产权,包括但不限于商标权、专利权、
// | 著作权、商业秘密等。前述权利均受中华人民共和国及相关国际法律法规保护。未经本团队书面授权,
// | 任何个人或单位不得基于本产品本身申请任何形式的知识产权。
// | 二、使用限制与禁止条款
// | 您理解并同意,禁止将本产品用于以下任何行为:
// | 1. 任何违反中华人民共和国法律法规的用途;
// | 2. 任何侵害他人合法权益(包括但不限于人身权、财产权、知识产权等)的行为;
// | 3. 任何危害国家安全、公共利益及社会道德风尚的行为。
// | 三、责任豁免
// | 因使用本产品而产生的任何损失或法律纠纷(包括但不限于直接损失、间接损失、附带损失、衍生损失
// | 以及因违约、侵权等引发的责任),本团队均不承担任何法律责任。若因违规使用本产品导致任何第三
// | 方提起索赔或行政机关进行调查,您应独立承担全部责任。
// | 四、违约与法律责任
// | 如发现任何违反本声明的行为,本团队有权:
// | 1. 无条件配合公安机关及其他有权机关的调查取证工作;
// | 2. 依法追究相关方的民事责任,并要求赔偿全部损失;
// | 3. 保留进一步采取刑事控告等法律措施的权利。
// | 五、许可范围说明
// | 1、被授权方应视本产品源代码为核心机密信息,负有最高标准的保密与保管义务。禁止以任何形式(包
// | 括但不限于直接或间接的分享、复制、传播、分发、转售、出租、开源、反向工程、反编译、反汇编或通
// | 过网络服务提供给任何第三方)泄露、披露或处置源代码的全部或部分内容。任何未经授权的复制、使用、
// | 传播行为均构成对本团队知识产权的严重侵权,本团队有权依法追究其全部法律责任,并要求赔偿因此造
// | 成的一切经济损失及商誉损害。
// | 2、本产品仅限于公司或个人在法律允许范围内,用于内部且合规的软件产品研发。具体权利义务以《软件
// | 许可协议》附件为准。
// +======================================================================
package v1
import (
"github.com/gogf/gf/v2/util/gmeta"
)
// ============================== 字典项模块 ==============================
// DictItemItemRow 字典项行数据
// 用于字典项分页列表等场景的字典项基础信息
type DictItemItemRow struct {
Id int64 `json:"id"` // 主键ID
DictId int64 `json:"dictId"` // 所属字典ID
DictName string `json:"dictName"` // 所属字典名称
DictCode string `json:"dictCode"` // 所属字典编码
Name string `json:"name"` // 字典项名称
Value string `json:"value"` // 字典项值
Sort int `json:"sort"` // 排序
Note string `json:"note"` // 备注
CreateUser string `json:"createUser"` // 创建人
}
// DictItemPageReq 字典项分页请求
// 支持关键词、字典项名称、所属字典等条件组合查询
type DictItemPageReq struct {
gmeta.Meta `method:"get" path:"/api/dict/item/page" summary:"字典项分页" permission:"sys:dictitem:page" log:"字典项管理-查询分页记录" logType:"query"`
PageReq // 分页基础参数
Keyword string `json:"keyword" dc:"关键词(名称/值模糊)"` // 关键词,名称或值模糊匹配
Name string `json:"name" dc:"字典项名称模糊"` // 字典项名称模糊匹配
DictId int64 `json:"dictId" dc:"所属字典ID"` // 所属字典ID
}
// DictItemPageRes 字典项分页结果
type DictItemPageRes = PageData[DictItemItemRow]
// DictItemDetailReq 字典项详情请求
type DictItemDetailReq struct {
gmeta.Meta `method:"get" path:"/api/dict/item/detail/:id" summary:"字典项详情" permission:"sys:dictitem:detail" log:"字典项管理-查询详情" logType:"query"`
Id int64 `json:"id" v:"required#缺少ID" dc:"字典项ID"` // 字典项ID
}
// DictItemDetailRes 字典项详情结果
type DictItemDetailRes struct {
Id int64 `json:"id"` // 主键ID
DictId int64 `json:"dictId"` // 所属字典ID
Name string `json:"name"` // 字典项名称
Value string `json:"value"` // 字典项值
Sort int `json:"sort"` // 排序
Note string `json:"note"` // 备注
}
// DictItemAddReq 新增字典项请求
type DictItemAddReq struct {
gmeta.Meta `method:"post" path:"/api/dict/item/add" summary:"新增字典项" permission:"sys:dictitem:add" log:"字典项管理-新增记录" logType:"add"`
DictId int64 `json:"dictId" v:"required#请选择所属字典" dc:"所属字典ID"` // 所属字典ID
Name string `json:"name" v:"required#请输入字典项名称" dc:"字典项名称"` // 字典项名称
Value string `json:"value" v:"required#请输入字典项值" dc:"字典项值"` // 字典项值
Sort int `json:"sort" dc:"排序"` // 排序
Note string `json:"note" dc:"备注"` // 备注
}
// DictItemUpdateReq 修改字典项请求
type DictItemUpdateReq struct {
gmeta.Meta `method:"put" path:"/api/dict/item/update" summary:"修改字典项" permission:"sys:dictitem:update" log:"字典项管理-修改记录" logType:"update"`
Id int64 `json:"id" v:"required#缺少ID" dc:"字典项ID"` // 字典项ID
DictId int64 `json:"dictId" dc:"所属字典ID"` // 所属字典ID
Name string `json:"name" v:"required#请输入字典项名称" dc:"字典项名称"` // 字典项名称
Value string `json:"value" v:"required#请输入字典项值" dc:"字典项值"` // 字典项值
Sort int `json:"sort" dc:"排序"` // 排序
Note string `json:"note" dc:"备注"` // 备注
}
// DictItemUpdateRes 修改字典项结果
type DictItemUpdateRes struct{}
// DictItemDeleteReq 删除字典项请求
type DictItemDeleteReq struct {
gmeta.Meta `method:"delete" path:"/api/dict/item/delete/:id" summary:"删除字典项" permission:"sys:dictitem:delete" log:"字典项管理-删除记录" logType:"delete"`
Id int64 `json:"id" v:"required#缺少ID" dc:"字典项ID"` // 字典项ID
}
// DictItemDeleteRes 删除字典项结果
type DictItemDeleteRes struct{}
// DictItemBatchDeleteReq 批量删除字典项请求
type DictItemBatchDeleteReq struct {
gmeta.Meta `method:"delete" path:"/api/dict/item/batchDelete" summary:"批量删除字典项" permission:"sys:dictitem:batchDelete" log:"字典项管理-批量删除记录" logType:"delete"`
Ids []int64 `json:"ids" v:"required#请选择要删除的记录" dc:"字典项ID列表"` // 字典项ID列表
}
// DictItemBatchDeleteRes 批量删除结果
type DictItemBatchDeleteRes struct{}
// DictItemQuickListReq 快捷字典项列表请求
// 登录用户即可访问,按字典编码查询并走缓存
type DictItemQuickListReq struct {
gmeta.Meta `method:"get" path:"/api/dict/item/getDictItemList/:code" summary:"按编码查询字典项" log:"字典项管理-查询列表" logType:"query"`
Code string `json:"code" v:"required#请输入字典编码" dc:"字典编码"` // 字典编码
}
// DictItemQuickRow 快捷字典项行数据
// 精简结构,仅包含前端下拉等场景所需字段
type DictItemQuickRow struct {
Id int64 `json:"id"` // 主键ID
Name string `json:"name"` // 字典项名称
Value string `json:"value"` // 字典项值
}
// DictItemQuickListRes 快捷字典项列表结果
type DictItemQuickListRes = []DictItemQuickRow
+191
View File
@@ -0,0 +1,191 @@
// +======================================================================
// | EasyGoAdmin 企业数字化开发平台 [ 赋能开发者,助力企业发展 ]
// +----------------------------------------------------------------------
// | Copyright (c) 2019-2026 半城风雨团队 版权所有
// +----------------------------------------------------------------------
// | 开源协议: Apache-2.0
// | 重要声明: 未经书面许可,不得移除或修改本框架相关版权标识。
// +----------------------------------------------------------------------
// | 官方网站: https://www.easygoadmin.vip
// +----------------------------------------------------------------------
// | 研发团队: 小蚂蚁云团队 荣誉出品
// +======================================================================
// | 版权和免责声明:
// | 一、知识产权声明
// | 本团队对该软件框架产品(以下简称“本产品”)拥有完整知识产权,包括但不限于商标权、专利权、
// | 著作权、商业秘密等。前述权利均受中华人民共和国及相关国际法律法规保护。未经本团队书面授权,
// | 任何个人或单位不得基于本产品本身申请任何形式的知识产权。
// | 二、使用限制与禁止条款
// | 您理解并同意,禁止将本产品用于以下任何行为:
// | 1. 任何违反中华人民共和国法律法规的用途;
// | 2. 任何侵害他人合法权益(包括但不限于人身权、财产权、知识产权等)的行为;
// | 3. 任何危害国家安全、公共利益及社会道德风尚的行为。
// | 三、责任豁免
// | 因使用本产品而产生的任何损失或法律纠纷(包括但不限于直接损失、间接损失、附带损失、衍生损失
// | 以及因违约、侵权等引发的责任),本团队均不承担任何法律责任。若因违规使用本产品导致任何第三
// | 方提起索赔或行政机关进行调查,您应独立承担全部责任。
// | 四、违约与法律责任
// | 如发现任何违反本声明的行为,本团队有权:
// | 1. 无条件配合公安机关及其他有权机关的调查取证工作;
// | 2. 依法追究相关方的民事责任,并要求赔偿全部损失;
// | 3. 保留进一步采取刑事控告等法律措施的权利。
// | 五、许可范围说明
// | 1、被授权方应视本产品源代码为核心机密信息,负有最高标准的保密与保管义务。禁止以任何形式(包
// | 括但不限于直接或间接的分享、复制、传播、分发、转售、出租、开源、反向工程、反编译、反汇编或通
// | 过网络服务提供给任何第三方)泄露、披露或处置源代码的全部或部分内容。任何未经授权的复制、使用、
// | 传播行为均构成对本团队知识产权的严重侵权,本团队有权依法追究其全部法律责任,并要求赔偿因此造
// | 成的一切经济损失及商誉损害。
// | 2、本产品仅限于公司或个人在法律允许范围内,用于内部且合规的软件产品研发。具体权利义务以《软件
// | 许可协议》附件为准。
// +======================================================================
package v1
import (
"github.com/gogf/gf/v2/net/ghttp"
"github.com/gogf/gf/v2/os/gtime"
"github.com/gogf/gf/v2/util/gmeta"
)
// ============================== 案例演示模块(goframe_example) ==============================
// ExampleItem 案例演示行数据
// 用于分页列表等场景的基础信息
type ExampleItem struct {
Id int `json:"id"` // 主键ID
Name string `json:"name"` // 案例名称
Avatar string `json:"avatar"` // 案例图片
Type int `json:"type"` // 案例类型
Status int `json:"status"` // 案例状态
Sort int `json:"sort"` // 案例排序
CreateUser string `json:"createUser"` // 创建人
CreateTime *gtime.Time `json:"createTime"` // 创建时间
StatusText string `json:"statusText"` // 状态显示名(dict_item 解析)
}
// ExamplePageReq 案例演示分页请求
type ExamplePageReq struct {
gmeta.Meta `method:"get" path:"/api/example/page" summary:"案例演示分页" permission:"sys:example:page" log:"案例演示-查询分页记录" logType:"query"`
PageReq
Name string `json:"name" dc:"案例名称"` // 案例名称
Type int `json:"type" dc:"案例类型"` // 案例类型
Status int `json:"status" dc:"案例状态"` // 案例状态
Keyword string `json:"keyword" dc:"关键词"` // 关键词
}
// ExamplePageRes 案例演示分页结果
// 统一壳:records/total/size/current/pages
type ExamplePageRes = PageData[ExampleItem]
// ExampleListReq 案例演示列表请求
type ExampleListReq struct {
gmeta.Meta `method:"get" path:"/api/example/list" summary:"案例演示列表" permission:"sys:example:list" log:"案例演示-查询列表" logType:"query"`
Keyword string `json:"keyword" dc:"关键词"` // 关键词
Limit int `json:"limit" dc:"条数上限"` // 条数上限
}
// ExampleListRes 案例演示平铺列表结果
// data 直接为数组,树形结构由前端 buildTree 构建
type ExampleListRes = []ExampleItem
// ExampleDetailReq 案例演示详情请求
type ExampleDetailReq struct {
gmeta.Meta `method:"get" path:"/api/example/detail/:id" summary:"案例演示详情" permission:"sys:example:detail" log:"案例演示-查询详情" logType:"query"`
Id int64 `json:"id" v:"required#缺少ID" dc:"记录ID"` // 记录ID
}
// ExampleDetailRes 案例演示详情结果
type ExampleDetailRes struct {
Id int64 `json:"id"` // 主键ID
Name string `json:"name"` // 案例名称
Avatar string `json:"avatar"` // 案例图片
Type int `json:"type"` // 案例类型
Status int `json:"status"` // 案例状态
Sort int `json:"sort"` // 案例排序
StatusText string `json:"statusText"` // 状态显示名(dict_item 解析)
}
// ExampleAddReq 新增案例演示请求
type ExampleAddReq struct {
gmeta.Meta `method:"post" path:"/api/example/add" summary:"新增案例演示" permission:"sys:example:add" log:"案例演示-新增记录" logType:"add"`
Name string `json:"name" v:"required#请输入案例名称" dc:"案例名称"` // 案例名称
Avatar string `json:"avatar" dc:"案例图片"` // 案例图片
Type int `json:"type" dc:"案例类型"` // 案例类型
Status int `json:"status" dc:"案例状态"` // 案例状态
Sort int `json:"sort" dc:"案例排序"` // 案例排序
}
// ExampleIdRes 新增返回ID结构
type ExampleIdRes struct {
Id int64 `json:"id"` // 主键ID
}
// ExampleUpdateReq 修改案例演示请求
type ExampleUpdateReq struct {
gmeta.Meta `method:"put" path:"/api/example/update" summary:"修改案例演示" permission:"sys:example:update" log:"案例演示-修改记录" logType:"update"`
Id int64 `json:"id" v:"required#缺少ID" dc:"记录ID"` // 记录ID
Name string `json:"name" v:"required#请输入案例名称" dc:"案例名称"` // 案例名称
Avatar string `json:"avatar" dc:"案例图片"` // 案例图片
Type int `json:"type" dc:"案例类型"` // 案例类型
Status int `json:"status" dc:"案例状态"` // 案例状态
Sort int `json:"sort" dc:"案例排序"` // 案例排序
}
// ExampleUpdateRes 修改案例演示结果
type ExampleUpdateRes struct{}
// ExampleStatusReq 案例演示状态请求
type ExampleStatusReq struct {
gmeta.Meta `method:"put" path:"/api/example/status" summary:"案例演示状态" permission:"sys:example:status" log:"案例演示-设置状态" logType:"update"`
Id int64 `json:"id" v:"required#缺少ID" dc:"记录ID"` // 记录ID
Status int `json:"status" v:"required#缺少状态" dc:"状态"` // 状态
}
// ExampleStatusRes 案例演示状态结果
type ExampleStatusRes struct{}
// ExampleDeleteReq 删除案例演示请求
type ExampleDeleteReq struct {
gmeta.Meta `method:"delete" path:"/api/example/delete/:id" summary:"删除案例演示" permission:"sys:example:delete" log:"案例演示-删除记录" logType:"delete"`
Id int64 `json:"id" v:"required#缺少ID" dc:"记录ID"` // 记录ID
}
// ExampleDeleteRes 删除案例演示结果
type ExampleDeleteRes struct{}
// ExampleBatchDeleteReq 批量删除案例演示请求
type ExampleBatchDeleteReq struct {
gmeta.Meta `method:"delete" path:"/api/example/batchDelete" summary:"批量删除案例演示" permission:"sys:example:batchDelete" log:"案例演示-批量删除记录" logType:"delete"`
Ids []int64 `json:"ids" v:"required#请选择要删除的记录" dc:"ID列表"` // ID列表
}
// ExampleBatchDeleteRes 批量删除结果
type ExampleBatchDeleteRes struct{}
// ExampleImportReq 导入案例演示请求
type ExampleImportReq struct {
gmeta.Meta `method:"post" path:"/api/example/import" summary:"导入案例演示" permission:"sys:example:import" log:"案例演示-导入数据" logType:"import"`
File *ghttp.UploadFile `p:"file" v:"required#请选择文件" dc:"xls/xlsx 文件"` // 上传文件
}
// ExampleImportRes 导入结果
// 返回导入总数、成功数、失败数及失败原因
type ExampleImportRes struct {
Total int `json:"total"` // 导入总数
Success int `json:"success"` // 成功数
Failed int `json:"failed"` // 失败数
Reasons []string `json:"reasons"` // 失败原因列表
}
// ExampleExportReq 导出案例演示请求
type ExampleExportReq struct {
gmeta.Meta `method:"get" path:"/api/example/export" summary:"导出案例演示" permission:"sys:example:export" log:"案例演示-导出数据" logType:"export"`
Keyword string `json:"keyword" dc:"关键词"` // 关键词
Name string `json:"name" dc:"案例名称"` // 案例名称
Type int `json:"type" dc:"案例类型"` // 案例类型
Status int `json:"status" dc:"案例状态"` // 案例状态
}
// ExampleExportRes 导出结果
// data 直接为文件访问 URL 字符串,前端可 window.open(data)
type ExampleExportRes = string
+157
View File
@@ -0,0 +1,157 @@
// +======================================================================
// | EasyGoAdmin 企业数字化开发平台 [ 赋能开发者,助力企业发展 ]
// +----------------------------------------------------------------------
// | Copyright (c) 2019-2026 半城风雨团队 版权所有
// +----------------------------------------------------------------------
// | 开源协议: Apache-2.0
// | 重要声明: 未经书面许可,不得移除或修改本框架相关版权标识。
// +----------------------------------------------------------------------
// | 官方网站: https://www.easygoadmin.vip
// +----------------------------------------------------------------------
// | 研发团队: 小蚂蚁云团队 荣誉出品
// +======================================================================
// | 版权和免责声明:
// | 一、知识产权声明
// | 本团队对该软件框架产品(以下简称“本产品”)拥有完整知识产权,包括但不限于商标权、专利权、
// | 著作权、商业秘密等。前述权利均受中华人民共和国及相关国际法律法规保护。未经本团队书面授权,
// | 任何个人或单位不得基于本产品本身申请任何形式的知识产权。
// | 二、使用限制与禁止条款
// | 您理解并同意,禁止将本产品用于以下任何行为:
// | 1. 任何违反中华人民共和国法律法规的用途;
// | 2. 任何侵害他人合法权益(包括但不限于人身权、财产权、知识产权等)的行为;
// | 3. 任何危害国家安全、公共利益及社会道德风尚的行为。
// | 三、责任豁免
// | 因使用本产品而产生的任何损失或法律纠纷(包括但不限于直接损失、间接损失、附带损失、衍生损失
// | 以及因违约、侵权等引发的责任),本团队均不承担任何法律责任。若因违规使用本产品导致任何第三
// | 方提起索赔或行政机关进行调查,您应独立承担全部责任。
// | 四、违约与法律责任
// | 如发现任何违反本声明的行为,本团队有权:
// | 1. 无条件配合公安机关及其他有权机关的调查取证工作;
// | 2. 依法追究相关方的民事责任,并要求赔偿全部损失;
// | 3. 保留进一步采取刑事控告等法律措施的权利。
// | 五、许可范围说明
// | 1、被授权方应视本产品源代码为核心机密信息,负有最高标准的保密与保管义务。禁止以任何形式(包
// | 括但不限于直接或间接的分享、复制、传播、分发、转售、出租、开源、反向工程、反编译、反汇编或通
// | 过网络服务提供给任何第三方)泄露、披露或处置源代码的全部或部分内容。任何未经授权的复制、使用、
// | 传播行为均构成对本团队知识产权的严重侵权,本团队有权依法追究其全部法律责任,并要求赔偿因此造
// | 成的一切经济损失及商誉损害。
// | 2、本产品仅限于公司或个人在法律允许范围内,用于内部且合规的软件产品研发。具体权利义务以《软件
// | 许可协议》附件为准。
// +======================================================================
package v1
import (
"github.com/gogf/gf/v2/os/gtime"
"github.com/gogf/gf/v2/util/gmeta"
)
// ============================== 文件模板模块 ==============================
// FileTemplateItem 文件模板行数据
// 用于文件模板分页列表、文件模板列表等场景的模板基础信息
type FileTemplateItem struct {
Id int64 `json:"id"` // 主键ID
Name string `json:"name"` // 模板名称
Code string `json:"code"` // 模板编码
FileName string `json:"fileName"` // 文件名
FilePath string `json:"filePath"` // 文件路径
Note string `json:"note"` // 备注
Sort int `json:"sort"` // 排序
CreateUser string `json:"createUser"` // 创建人
CreateTime *gtime.Time `json:"createTime"` // 创建时间
}
// FileTemplatePageReq 文件模板分页请求
// 支持关键词、模板名称等条件组合查询
type FileTemplatePageReq struct {
gmeta.Meta `method:"get" path:"/api/file/template/page" summary:"文件模板分页" permission:"sys:fileTemplate:page" log:"文件模板-查询分页记录" logType:"query"`
PageReq // 分页基础参数
Keyword string `json:"keyword" dc:"关键词(名称/编码模糊)"` // 关键词,名称或编码模糊匹配
Name string `json:"name" dc:"模板名称模糊"` // 模板名称模糊匹配
}
// FileTemplatePageRes 文件模板分页结果
type FileTemplatePageRes = PageData[FileTemplateItem]
// FileTemplateListReq 文件模板列表请求
type FileTemplateListReq struct {
gmeta.Meta `method:"get" path:"/api/file/template/list" summary:"文件模板列表" permission:"sys:fileTemplate:list" log:"文件模板-查询列表" logType:"query"`
Keyword string `json:"keyword" dc:"关键词"` // 关键词
}
// FileTemplateListRes 文件模板列表结果
type FileTemplateListRes = []FileTemplateItem
// FileTemplateDetailReq 文件模板详情请求
type FileTemplateDetailReq struct {
gmeta.Meta `method:"get" path:"/api/file/template/detail/:id" summary:"文件模板详情" permission:"sys:fileTemplate:detail" log:"文件模板-查询详情" logType:"query"`
Id int64 `json:"id" v:"required#缺少ID" dc:"模板ID"` // 模板ID
}
// FileTemplateDetailRes 文件模板详情结果
type FileTemplateDetailRes struct {
Id int64 `json:"id"` // 主键ID
Name string `json:"name"` // 模板名称
Code string `json:"code"` // 模板编码
FileName string `json:"fileName"` // 文件名
FilePath string `json:"filePath"` // 文件路径
Note string `json:"note"` // 备注
Sort int `json:"sort"` // 排序
}
// FileTemplateAddReq 新增文件模板请求
type FileTemplateAddReq struct {
gmeta.Meta `method:"post" path:"/api/file/template/add" summary:"新增文件模板" permission:"sys:fileTemplate:add" log:"文件模板-新增记录" logType:"add"`
Name string `json:"name" v:"required#请输入模板名称" dc:"模板名称"` // 模板名称
Code string `json:"code" v:"required#请输入模板编码" dc:"模板编码"` // 模板编码
FileName string `json:"fileName" dc:"文件名"` // 文件名
FilePath string `json:"filePath" dc:"文件路径"` // 文件路径
Note string `json:"note" dc:"备注"` // 备注
Sort int `json:"sort" dc:"排序"` // 排序
}
// FileTemplateUpdateReq 修改文件模板请求
type FileTemplateUpdateReq struct {
gmeta.Meta `method:"put" path:"/api/file/template/update" summary:"修改文件模板" permission:"sys:fileTemplate:update" log:"文件模板-修改记录" logType:"update"`
Id int64 `json:"id" v:"required#缺少ID" dc:"模板ID"` // 模板ID
Name string `json:"name" v:"required#请输入模板名称" dc:"模板名称"` // 模板名称
Code string `json:"code" v:"required#请输入模板编码" dc:"模板编码"` // 模板编码
FileName string `json:"fileName" dc:"文件名"` // 文件名
FilePath string `json:"filePath" dc:"文件路径"` // 文件路径
Note string `json:"note" dc:"备注"` // 备注
Sort int `json:"sort" dc:"排序"` // 排序
}
// FileTemplateUpdateRes 修改文件模板结果
type FileTemplateUpdateRes struct{}
// FileTemplateDeleteReq 删除文件模板请求
type FileTemplateDeleteReq struct {
gmeta.Meta `method:"delete" path:"/api/file/template/delete/:id" summary:"删除文件模板" permission:"sys:fileTemplate:delete" log:"文件模板-删除记录" logType:"delete"`
Id int64 `json:"id" v:"required#缺少ID" dc:"模板ID"` // 模板ID
}
// FileTemplateDeleteRes 删除文件模板结果
type FileTemplateDeleteRes struct{}
// FileTemplateBatchDeleteReq 批量删除文件模板请求
type FileTemplateBatchDeleteReq struct {
gmeta.Meta `method:"delete" path:"/api/file/template/batchDelete" summary:"批量删除文件模板" permission:"sys:fileTemplate:batchDelete" log:"文件模板-批量删除记录" logType:"delete"`
Ids []int64 `json:"ids" v:"required#请选择要删除的记录" dc:"模板ID列表"` // 模板ID列表
}
// FileTemplateBatchDeleteRes 批量删除结果
type FileTemplateBatchDeleteRes struct{}
// FileTemplateByCodeReq 按编码查询模板请求
// 登录用户即可访问,按模板编码查询模板详情
type FileTemplateByCodeReq struct {
gmeta.Meta `method:"get" path:"/api/file/template/getTemplateByCode/:code" summary:"按编码查询模板" log:"文件模板-查询模板详情" logType:"query"`
Code string `json:"code" v:"required#请输入模板编码" dc:"模板编码"` // 模板编码
}
// FileTemplateByCodeRes 按编码查询模板结果
type FileTemplateByCodeRes struct {
FileTemplateItem
}
+162
View File
@@ -0,0 +1,162 @@
// +======================================================================
// | EasyGoAdmin 企业数字化开发平台 [ 赋能开发者,助力企业发展 ]
// +----------------------------------------------------------------------
// | Copyright (c) 2019-2026 半城风雨团队 版权所有
// +----------------------------------------------------------------------
// | 开源协议: Apache-2.0
// | 重要声明: 未经书面许可,不得移除或修改本框架相关版权标识。
// +----------------------------------------------------------------------
// | 官方网站: https://www.easygoadmin.vip
// +----------------------------------------------------------------------
// | 研发团队: 小蚂蚁云团队 荣誉出品
// +======================================================================
// | 版权和免责声明:
// | 一、知识产权声明
// | 本团队对该软件框架产品(以下简称“本产品”)拥有完整知识产权,包括但不限于商标权、专利权、
// | 著作权、商业秘密等。前述权利均受中华人民共和国及相关国际法律法规保护。未经本团队书面授权,
// | 任何个人或单位不得基于本产品本身申请任何形式的知识产权。
// | 二、使用限制与禁止条款
// | 您理解并同意,禁止将本产品用于以下任何行为:
// | 1. 任何违反中华人民共和国法律法规的用途;
// | 2. 任何侵害他人合法权益(包括但不限于人身权、财产权、知识产权等)的行为;
// | 3. 任何危害国家安全、公共利益及社会道德风尚的行为。
// | 三、责任豁免
// | 因使用本产品而产生的任何损失或法律纠纷(包括但不限于直接损失、间接损失、附带损失、衍生损失
// | 以及因违约、侵权等引发的责任),本团队均不承担任何法律责任。若因违规使用本产品导致任何第三
// | 方提起索赔或行政机关进行调查,您应独立承担全部责任。
// | 四、违约与法律责任
// | 如发现任何违反本声明的行为,本团队有权:
// | 1. 无条件配合公安机关及其他有权机关的调查取证工作;
// | 2. 依法追究相关方的民事责任,并要求赔偿全部损失;
// | 3. 保留进一步采取刑事控告等法律措施的权利。
// | 五、许可范围说明
// | 1、被授权方应视本产品源代码为核心机密信息,负有最高标准的保密与保管义务。禁止以任何形式(包
// | 括但不限于直接或间接的分享、复制、传播、分发、转售、出租、开源、反向工程、反编译、反汇编或通
// | 过网络服务提供给任何第三方)泄露、披露或处置源代码的全部或部分内容。任何未经授权的复制、使用、
// | 传播行为均构成对本团队知识产权的严重侵权,本团队有权依法追究其全部法律责任,并要求赔偿因此造
// | 成的一切经济损失及商誉损害。
// | 2、本产品仅限于公司或个人在法律允许范围内,用于内部且合规的软件产品研发。具体权利义务以《软件
// | 许可协议》附件为准。
// +======================================================================
package v1
import (
"github.com/gogf/gf/v2/util/gmeta"
)
// ============================== 代码生成模块(读数据库结构) ==============================
// GeneratorTableItem 数据表行数据
// 用于代码生成模块的数据表分页列表,描述数据库表的元信息
type GeneratorTableItem struct {
TableName string `json:"tableName"` // 表名
TableComment string `json:"tableComment"` // 表注释
Engine string `json:"engine"` // 存储引擎
TableRows int64 `json:"tableRows"` // 表记录数
DataLength int64 `json:"dataLength"` // 数据大小(字节)
AutoIncrement int64 `json:"autoIncrement"` // 自增当前值
TableCollation string `json:"tableCollation"` // 表排序规则
CreateTime string `json:"createTime"` // 创建时间
}
// GeneratorPageReq 数据表分页请求
// 支持按表名、表注释模糊查询数据库表
type GeneratorPageReq struct {
gmeta.Meta `method:"get" path:"/api/generator/page" summary:"查询数据表" permission:"sys:generator:page" log:"代码生成-查询数据表" logType:"query"`
PageReq // 分页基础参数
TableName string `json:"tableName" dc:"表名模糊"` // 表名模糊匹配
TableComment string `json:"tableComment" dc:"表注释模糊"` // 表注释模糊匹配
}
// GeneratorPageRes 数据表分页结果
type GeneratorPageRes = PageData[GeneratorTableItem]
// GeneratorPreviewReq 预览代码请求
// TableNames 元素格式为 "表名|表注释"
type GeneratorPreviewReq struct {
gmeta.Meta `method:"post" path:"/api/generator/preview" summary:"预览代码" permission:"sys:generator:generator" log:"代码生成-预览代码" logType:"generate"`
TableNames []string `json:"tableNames" v:"required#请选择数据表" dc:"数据表列表(表名|表注释)"` // 数据表列表
}
// GeneratorFileItem 生成文件
// 描述单个待生成文件的路径与内容
type GeneratorFileItem struct {
Path string `json:"path"` // 文件路径
Content string `json:"content"` // 文件内容
}
// GeneratorPreviewRes 预览结果
type GeneratorPreviewRes struct {
List []GeneratorFileItem `json:"list"` // 生成文件列表
}
// GeneratorGenerateReq 一键生成请求
// TableNames 元素格式为 "表名|表注释"
type GeneratorGenerateReq struct {
gmeta.Meta `method:"post" path:"/api/generator/generate" summary:"一键生成" permission:"sys:generator:generator" log:"代码生成-一键生成" logType:"generate"`
TableNames []string `json:"tableNames" v:"required#请选择数据表" dc:"数据表列表(表名|表注释)"` // 数据表列表
}
// GeneratorMenuResult 同步创建菜单结果
// 描述代码生成过程中同步创建菜单的执行结果
type GeneratorMenuResult struct {
Success bool `json:"success"` // 是否成功
MenuId int64 `json:"menuId"` // 菜单ID
Message string `json:"message"` // 结果消息
}
// GeneratorDictResult 同步创建字典结果
// 描述代码生成过程中同步创建字典的执行结果
type GeneratorDictResult struct {
Dict string `json:"dict"` // 字典编码
Name string `json:"name,omitempty"` // 字典名称
Items int `json:"items,omitempty"` // 字典项数量
Status string `json:"status"` // 执行状态
}
// GeneratorRouteResult 同步注册路由结果
// 描述代码生成过程中同步注册路由的执行结果
type GeneratorRouteResult struct {
Success bool `json:"success"` // 是否成功
Message string `json:"message"` // 结果消息
}
// GeneratorGenerateRes 生成结果
// 汇总代码生成的文件写入情况以及菜单、字典、路由的同步结果
type GeneratorGenerateRes struct {
Generated []string `json:"generated"` // 新生成的文件
Skipped []string `json:"skipped"` // 跳过的文件
Overwritten []string `json:"overwritten"` // 覆盖的文件
Failed []string `json:"failed"` // 失败的文件
Menu GeneratorMenuResult `json:"menu"` // 菜单创建结果
Dict []GeneratorDictResult `json:"dict"` // 字典创建结果
Route GeneratorRouteResult `json:"route"` // 路由注册结果
}
// GeneratorBatchGenerateReq 批量生成请求
// TableNames 元素格式为 "表名|表注释"
type GeneratorBatchGenerateReq struct {
gmeta.Meta `method:"post" path:"/api/generator/batchGenerate" summary:"批量生成" permission:"sys:generator:batchGenerator" log:"代码生成-批量生成" logType:"generate"`
TableNames []string `json:"tableNames" v:"required#请选择数据表" dc:"数据表列表(表名|表注释)"` // 数据表列表
}
// GeneratorBatchItem 单表生成结果
// 描述批量生成中单张表的执行情况
type GeneratorBatchItem struct {
Table string `json:"table"` // 表名
Success bool `json:"success"` // 是否成功
Generated int `json:"generated"` // 新生成文件数
Skipped int `json:"skipped"` // 跳过文件数
Overwritten int `json:"overwritten"` // 覆盖文件数
Failed int `json:"failed"` // 失败文件数
Message string `json:"message"` // 结果消息
Menu GeneratorMenuResult `json:"menu"` // 菜单创建结果
Dict []GeneratorDictResult `json:"dict"` // 字典创建结果
Route GeneratorRouteResult `json:"route"` // 路由注册结果
}
// GeneratorBatchGenerateRes 批量生成结果
type GeneratorBatchGenerateRes struct {
List []GeneratorBatchItem `json:"list"` // 各表生成结果列表
}
+142
View File
@@ -0,0 +1,142 @@
// +======================================================================
// | EasyGoAdmin 企业数字化开发平台 [ 赋能开发者,助力企业发展 ]
// +----------------------------------------------------------------------
// | Copyright (c) 2019-2026 半城风雨团队 版权所有
// +----------------------------------------------------------------------
// | 开源协议: Apache-2.0
// | 重要声明: 未经书面许可,不得移除或修改本框架相关版权标识。
// +----------------------------------------------------------------------
// | 官方网站: https://www.easygoadmin.vip
// +----------------------------------------------------------------------
// | 研发团队: 小蚂蚁云团队 荣誉出品
// +======================================================================
// | 版权和免责声明:
// | 一、知识产权声明
// | 本团队对该软件框架产品(以下简称“本产品”)拥有完整知识产权,包括但不限于商标权、专利权、
// | 著作权、商业秘密等。前述权利均受中华人民共和国及相关国际法律法规保护。未经本团队书面授权,
// | 任何个人或单位不得基于本产品本身申请任何形式的知识产权。
// | 二、使用限制与禁止条款
// | 您理解并同意,禁止将本产品用于以下任何行为:
// | 1. 任何违反中华人民共和国法律法规的用途;
// | 2. 任何侵害他人合法权益(包括但不限于人身权、财产权、知识产权等)的行为;
// | 3. 任何危害国家安全、公共利益及社会道德风尚的行为。
// | 三、责任豁免
// | 因使用本产品而产生的任何损失或法律纠纷(包括但不限于直接损失、间接损失、附带损失、衍生损失
// | 以及因违约、侵权等引发的责任),本团队均不承担任何法律责任。若因违规使用本产品导致任何第三
// | 方提起索赔或行政机关进行调查,您应独立承担全部责任。
// | 四、违约与法律责任
// | 如发现任何违反本声明的行为,本团队有权:
// | 1. 无条件配合公安机关及其他有权机关的调查取证工作;
// | 2. 依法追究相关方的民事责任,并要求赔偿全部损失;
// | 3. 保留进一步采取刑事控告等法律措施的权利。
// | 五、许可范围说明
// | 1、被授权方应视本产品源代码为核心机密信息,负有最高标准的保密与保管义务。禁止以任何形式(包
// | 括但不限于直接或间接的分享、复制、传播、分发、转售、出租、开源、反向工程、反编译、反汇编或通
// | 过网络服务提供给任何第三方)泄露、披露或处置源代码的全部或部分内容。任何未经授权的复制、使用、
// | 传播行为均构成对本团队知识产权的严重侵权,本团队有权依法追究其全部法律责任,并要求赔偿因此造
// | 成的一切经济损失及商誉损害。
// | 2、本产品仅限于公司或个人在法律允许范围内,用于内部且合规的软件产品研发。具体权利义务以《软件
// | 许可协议》附件为准。
// +======================================================================
package v1
import (
"github.com/gogf/gf/v2/util/gmeta"
)
// ============================== 首页/个人中心模块 ==============================
// GetUserReq 获取当前登录用户信息请求
// 返回用户基础信息及其角色与权限集合
type GetUserReq struct {
gmeta.Meta `method:"get" path:"/api/index/getUser" summary:"获取当前用户信息"`
}
// GetUserRes 当前登录用户信息结果
// 返回用户基础信息、角色与权限集合,敏感字段不返回
type GetUserRes struct {
Id int64 `json:"id"` // 用户ID
Username string `json:"username"` // 用户名
Realname string `json:"realname"` // 真实姓名
Gender int `json:"gender"` // 性别:1-男 2-女 3-保密
Avatar string `json:"avatar"` // 头像
Mobile string `json:"mobile"` // 手机号
Email string `json:"email"` // 邮箱
DeptId int `json:"deptId"` // 部门ID
LevelId int `json:"levelId"` // 职级ID
PositionId int `json:"positionId"` // 岗位ID
City []string `json:"city"` // 省市区街道编码数组
CityInfo string `json:"cityInfo"` // 省市区信息
Address string `json:"address"` // 详细地址
Intro string `json:"intro"` // 个人简介
Status int `json:"status"` // 状态
Note string `json:"note"` // 备注
TenantId int `json:"tenantId"` // 租户ID
Roles []string `json:"roles"` // 角色编码集合
Permissions []string `json:"permissions"` // 权限标识集合
}
// GetMenusReq 获取当前用户菜单请求
// 无路径参数版本,与带路径参数的菜单路由共用同一处理逻辑
type GetMenusReq struct {
gmeta.Meta `method:"get" path:"/api/index/getMenus" summary:"获取当前用户菜单"`
Id int64 `json:"id" dc:"菜单ID(路由占位,忽略)"` // 菜单ID,路由占位
}
// GetMenusByIdReq 获取当前用户菜单请求(带路径参数)
// 带路径参数版本,与无路径参数的菜单路由共用同一处理逻辑
type GetMenusByIdReq struct {
gmeta.Meta `method:"get" path:"/api/index/getMenus/:id" summary:"获取当前用户菜单"`
Id int64 `json:"id" dc:"菜单ID(路由占位,忽略)"` // 菜单ID,路由占位
}
// MenuTreeItem 菜单树节点
// 字段与菜单表及前端路由生成契约保持一致
type MenuTreeItem struct {
Id int64 `json:"id"` // 菜单ID
ParentId int `json:"parentId"` // 上级菜单ID
Name string `json:"name"` // 菜单名称
Icon string `json:"icon"` // 图标
Icon2 string `json:"icon2"` // 菜单图标2
Path string `json:"path"` // 路由路径
Component string `json:"component"` // 前端组件路径
Permission string `json:"permission"` // 权限标识
Target int `json:"target"` // 打开方式
Type int `json:"type"` // 类型:0-菜单 1-节点
Status int `json:"status"` // 状态
Hide int `json:"hide"` // 是否隐藏
Sort int `json:"sort"` // 排序
Redirect string `json:"redirect,omitempty"` // 重定向地址
Children []*MenuTreeItem `json:"children"` // 子节点集合
}
// GetMenusRes 菜单树结果
type GetMenusRes = []*MenuTreeItem
// UpdatePasswordReq 修改个人密码请求
type UpdatePasswordReq struct {
gmeta.Meta `method:"put" path:"/api/index/updatePassword" summary:"修改个人密码"`
Password string `json:"password" v:"required#请输入原密码" dc:"原密码"` // 原密码
NewPassword string `json:"newPassword" v:"required#请输入新密码|length:6,32#新密码长度需在6~32位" dc:"新密码"` // 新密码
}
// UpdatePasswordRes 修改个人密码结果
type UpdatePasswordRes struct{}
// UpdateProfileReq 更新个人信息请求
type UpdateProfileReq struct {
gmeta.Meta `method:"put" path:"/api/index/updateProfile" summary:"更新个人信息"`
Realname string `json:"realname" v:"required#请输入姓名" dc:"姓名"` // 真实姓名
Gender int `json:"gender" dc:"性别:1-男 2-女 3-保密"` // 性别
Avatar string `json:"avatar" dc:"头像"` // 头像
Mobile string `json:"mobile" v:"phone#手机号格式不正确" dc:"手机号"` // 手机号
Email string `json:"email" v:"email#邮箱格式不正确" dc:"邮箱"` // 邮箱
City []string `json:"city" dc:"省市区街道编码数组"` // 省市区街道编码数组
CityInfo string `json:"cityInfo" dc:"省市区信息"` // 省市区信息
Address string `json:"address" dc:"详细地址"` // 详细地址
Intro string `json:"intro" dc:"个人简介"` // 个人简介
}
// UpdateProfileRes 更新个人信息结果
type UpdateProfileRes struct{}
+206
View File
@@ -0,0 +1,206 @@
// +======================================================================
// | EasyGoAdmin 企业数字化开发平台 [ 赋能开发者,助力企业发展 ]
// +----------------------------------------------------------------------
// | Copyright (c) 2019-2026 半城风雨团队 版权所有
// +----------------------------------------------------------------------
// | 开源协议: Apache-2.0
// | 重要声明: 未经书面许可,不得移除或修改本框架相关版权标识。
// +----------------------------------------------------------------------
// | 官方网站: https://www.easygoadmin.vip
// +----------------------------------------------------------------------
// | 研发团队: 小蚂蚁云团队 荣誉出品
// +======================================================================
// | 版权和免责声明:
// | 一、知识产权声明
// | 本团队对该软件框架产品(以下简称“本产品”)拥有完整知识产权,包括但不限于商标权、专利权、
// | 著作权、商业秘密等。前述权利均受中华人民共和国及相关国际法律法规保护。未经本团队书面授权,
// | 任何个人或单位不得基于本产品本身申请任何形式的知识产权。
// | 二、使用限制与禁止条款
// | 您理解并同意,禁止将本产品用于以下任何行为:
// | 1. 任何违反中华人民共和国法律法规的用途;
// | 2. 任何侵害他人合法权益(包括但不限于人身权、财产权、知识产权等)的行为;
// | 3. 任何危害国家安全、公共利益及社会道德风尚的行为。
// | 三、责任豁免
// | 因使用本产品而产生的任何损失或法律纠纷(包括但不限于直接损失、间接损失、附带损失、衍生损失
// | 以及因违约、侵权等引发的责任),本团队均不承担任何法律责任。若因违规使用本产品导致任何第三
// | 方提起索赔或行政机关进行调查,您应独立承担全部责任。
// | 四、违约与法律责任
// | 如发现任何违反本声明的行为,本团队有权:
// | 1. 无条件配合公安机关及其他有权机关的调查取证工作;
// | 2. 依法追究相关方的民事责任,并要求赔偿全部损失;
// | 3. 保留进一步采取刑事控告等法律措施的权利。
// | 五、许可范围说明
// | 1、被授权方应视本产品源代码为核心机密信息,负有最高标准的保密与保管义务。禁止以任何形式(包
// | 括但不限于直接或间接的分享、复制、传播、分发、转售、出租、开源、反向工程、反编译、反汇编或通
// | 过网络服务提供给任何第三方)泄露、披露或处置源代码的全部或部分内容。任何未经授权的复制、使用、
// | 传播行为均构成对本团队知识产权的严重侵权,本团队有权依法追究其全部法律责任,并要求赔偿因此造
// | 成的一切经济损失及商誉损害。
// | 2、本产品仅限于公司或个人在法律允许范围内,用于内部且合规的软件产品研发。具体权利义务以《软件
// | 许可协议》附件为准。
// +======================================================================
package v1
import (
"github.com/gogf/gf/v2/os/gtime"
"github.com/gogf/gf/v2/util/gmeta"
)
// ============================== 定时任务模块 ==============================
// JobItem 任务行数据
// 用于定时任务分页列表、任务列表等场景的任务基础信息
type JobItem struct {
Id int64 `json:"id"` // 主键ID
JobName string `json:"jobName"` // 任务名称
JobAlias string `json:"jobAlias"` // 任务别名
JobGroup string `json:"jobGroup"` // 任务分组
JobTrigger string `json:"jobTrigger"` // 触发器类型
Status int `json:"status"` // 状态:0-未发布 1-运行中 2-暂停
StatusText string `json:"statusText"` // 状态文本
CronExpression string `json:"cronExpression"` // Cron表达式
ExecutePolicy int `json:"executePolicy"` // 执行策略:1-立即执行 2-执行一次 3-放弃执行
ExecutePolicyText string `json:"executePolicyText"` // 执行策略文本
IsSync int `json:"isSync"` // 是否同步:0-否 1-是
IsSyncText string `json:"isSyncText"` // 是否同步文本
Url string `json:"url"` // 任务目标:http(s)地址或本地处理方法名
Params string `json:"params"` // 请求参数(JSON)
Note string `json:"note"` // 备注
CreateUser string `json:"createUser"` // 创建人
CreateTime *gtime.Time `json:"createTime"` // 创建时间
}
// JobPageReq 定时任务分页请求
// 支持关键词、任务名称、状态等条件组合查询
type JobPageReq struct {
gmeta.Meta `method:"get" path:"/api/job/page" summary:"定时任务分页" permission:"sys:job:page" log:"定时任务-查询分页记录" logType:"query"`
PageReq // 分页基础参数
Keyword string `json:"keyword" dc:"关键词(名称/别名模糊)"` // 关键词,名称或别名模糊匹配
JobName string `json:"jobName" dc:"任务名称模糊"` // 任务名称模糊匹配
Status int `json:"status" dc:"状态:0-未发布 1-运行中 2-暂停"` // 状态
}
// JobPageRes 定时任务分页结果
type JobPageRes = PageData[JobItem]
// JobListReq 定时任务列表请求
type JobListReq struct {
gmeta.Meta `method:"get" path:"/api/job/list" summary:"定时任务列表" permission:"sys:job:list" log:"定时任务-查询列表" logType:"query"`
Keyword string `json:"keyword" dc:"关键词"` // 关键词
Status int `json:"status" dc:"状态"` // 状态
}
// JobListRes 定时任务列表结果
type JobListRes = []JobItem
// JobDetailReq 定时任务详情请求
type JobDetailReq struct {
gmeta.Meta `method:"get" path:"/api/job/detail/:id" summary:"定时任务详情" permission:"sys:job:detail" log:"定时任务-查询详情" logType:"query"`
Id int64 `json:"id" v:"required#缺少ID" dc:"任务ID"` // 任务ID
}
// JobDetailRes 定时任务详情结果
type JobDetailRes struct {
JobItem
}
// JobAddReq 新增定时任务请求
type JobAddReq struct {
gmeta.Meta `method:"post" path:"/api/job/add" summary:"新增定时任务" permission:"sys:job:add" log:"定时任务-新增记录" logType:"add"`
JobName string `json:"jobName" v:"required#请输入任务名称" dc:"任务名称"` // 任务名称
JobAlias string `json:"jobAlias" dc:"任务别名"` // 任务别名
JobGroup string `json:"jobGroup" dc:"任务分组"` // 任务分组
JobTrigger string `json:"jobTrigger" dc:"触发器类型"` // 触发器类型
CronExpression string `json:"cronExpression" v:"required#请输入Cron表达式" dc:"Cron表达式"` // Cron表达式
ExecutePolicy int `json:"executePolicy" dc:"执行策略:1-立即执行 2-执行一次 3-放弃执行"` // 执行策略
IsSync int `json:"isSync" dc:"是否同步:0-否 1-是"` // 是否同步
Url string `json:"url" v:"required#请输入任务目标" dc:"任务目标(http(s)地址或本地处理方法名)"` // 任务目标:http(s)地址或本地处理方法名
Params string `json:"params" dc:"请求参数(JSON)"` // 请求参数
Note string `json:"note" dc:"备注"` // 备注
}
// JobUpdateReq 修改定时任务请求
type JobUpdateReq struct {
gmeta.Meta `method:"put" path:"/api/job/update" summary:"修改定时任务" permission:"sys:job:update" log:"定时任务-修改记录" logType:"update"`
Id int64 `json:"id" v:"required#缺少ID" dc:"任务ID"` // 任务ID
JobName string `json:"jobName" v:"required#请输入任务名称" dc:"任务名称"` // 任务名称
JobAlias string `json:"jobAlias" dc:"任务别名"` // 任务别名
JobGroup string `json:"jobGroup" dc:"任务分组"` // 任务分组
JobTrigger string `json:"jobTrigger" dc:"触发器类型"` // 触发器类型
CronExpression string `json:"cronExpression" v:"required#请输入Cron表达式" dc:"Cron表达式"` // Cron表达式
ExecutePolicy int `json:"executePolicy" dc:"执行策略"` // 执行策略
IsSync int `json:"isSync" dc:"是否同步"` // 是否同步
Url string `json:"url" v:"required#请输入任务目标" dc:"任务目标(http(s)地址或本地处理方法名)"` // 任务目标:http(s)地址或本地处理方法名
Params string `json:"params" dc:"请求参数"` // 请求参数
Note string `json:"note" dc:"备注"` // 备注
}
// JobUpdateRes 修改定时任务结果
type JobUpdateRes struct{}
// JobDeleteReq 删除定时任务请求
type JobDeleteReq struct {
gmeta.Meta `method:"delete" path:"/api/job/delete/:id" summary:"删除定时任务" permission:"sys:job:delete" log:"定时任务-删除记录" logType:"delete"`
Id int64 `json:"id" v:"required#缺少ID" dc:"任务ID"` // 任务ID
}
// JobDeleteRes 删除定时任务结果
type JobDeleteRes struct{}
// JobBatchDeleteReq 批量删除定时任务请求
type JobBatchDeleteReq struct {
gmeta.Meta `method:"delete" path:"/api/job/batchDelete" summary:"批量删除定时任务" permission:"sys:job:batchDelete" log:"定时任务-批量删除记录" logType:"delete"`
Ids []int64 `json:"ids" v:"required#请选择要删除的记录" dc:"任务ID列表"` // 任务ID列表
}
// JobBatchDeleteRes 批量删除结果
type JobBatchDeleteRes struct{}
// JobRunOnceReq 立即执行一次任务请求
type JobRunOnceReq struct {
gmeta.Meta `method:"get" path:"/api/job/runOnce/:id" summary:"立即执行任务" permission:"sys:job:execute" log:"定时任务-执行任务" logType:"update"`
Id int64 `json:"id" v:"required#缺少ID" dc:"任务ID"` // 任务ID
}
// JobRunOnceRes 立即执行一次任务结果
type JobRunOnceRes struct{}
// JobPauseReq 暂停任务请求
type JobPauseReq struct {
gmeta.Meta `method:"get" path:"/api/job/pause/:id" summary:"暂停定时任务" permission:"sys:job:pause" log:"定时任务-暂停任务" logType:"update"`
Id int64 `json:"id" v:"required#缺少ID" dc:"任务ID"` // 任务ID
}
// JobPauseRes 暂停任务结果
type JobPauseRes struct{}
// JobResumeReq 恢复任务请求
type JobResumeReq struct {
gmeta.Meta `method:"get" path:"/api/job/resume/:id" summary:"恢复定时任务" permission:"sys:job:resume" log:"定时任务-恢复任务" logType:"update"`
Id int64 `json:"id" v:"required#缺少ID" dc:"任务ID"` // 任务ID
}
// JobResumeRes 恢复任务结果
type JobResumeRes struct{}
// JobStatusReq 设置任务状态请求
type JobStatusReq struct {
gmeta.Meta `method:"post" path:"/api/job/status" summary:"设置定时任务状态" permission:"sys:job:update" log:"定时任务-设置状态" logType:"update"`
Id int64 `json:"id" v:"required#缺少ID" dc:"任务ID"` // 任务ID
Status int `json:"status" v:"required#缺少状态" dc:"状态:0-未发布 1-运行中 2-暂停"` // 状态
}
// JobStatusRes 设置任务状态结果
type JobStatusRes struct{}
// JobDaemonStatusReq 查询调度器状态请求
type JobDaemonStatusReq struct {
gmeta.Meta `method:"get" path:"/api/job/daemonStatus" summary:"查询调度器状态" log:"定时任务-查询调度器状态" logType:"query"`
}
// JobDaemonStatusRes 调度器状态结果
type JobDaemonStatusRes struct {
Running int `json:"running"` // 运行中任务数
JobIds []string `json:"jobIds"` // 调度器中的任务键
StartTime string `json:"startTime"` // 调度器启动时间
}
+123
View File
@@ -0,0 +1,123 @@
// +======================================================================
// | EasyGoAdmin 企业数字化开发平台 [ 赋能开发者,助力企业发展 ]
// +----------------------------------------------------------------------
// | Copyright (c) 2019-2026 半城风雨团队 版权所有
// +----------------------------------------------------------------------
// | 开源协议: Apache-2.0
// | 重要声明: 未经书面许可,不得移除或修改本框架相关版权标识。
// +----------------------------------------------------------------------
// | 官方网站: https://www.easygoadmin.vip
// +----------------------------------------------------------------------
// | 研发团队: 小蚂蚁云团队 荣誉出品
// +======================================================================
// | 版权和免责声明:
// | 一、知识产权声明
// | 本团队对该软件框架产品(以下简称“本产品”)拥有完整知识产权,包括但不限于商标权、专利权、
// | 著作权、商业秘密等。前述权利均受中华人民共和国及相关国际法律法规保护。未经本团队书面授权,
// | 任何个人或单位不得基于本产品本身申请任何形式的知识产权。
// | 二、使用限制与禁止条款
// | 您理解并同意,禁止将本产品用于以下任何行为:
// | 1. 任何违反中华人民共和国法律法规的用途;
// | 2. 任何侵害他人合法权益(包括但不限于人身权、财产权、知识产权等)的行为;
// | 3. 任何危害国家安全、公共利益及社会道德风尚的行为。
// | 三、责任豁免
// | 因使用本产品而产生的任何损失或法律纠纷(包括但不限于直接损失、间接损失、附带损失、衍生损失
// | 以及因违约、侵权等引发的责任),本团队均不承担任何法律责任。若因违规使用本产品导致任何第三
// | 方提起索赔或行政机关进行调查,您应独立承担全部责任。
// | 四、违约与法律责任
// | 如发现任何违反本声明的行为,本团队有权:
// | 1. 无条件配合公安机关及其他有权机关的调查取证工作;
// | 2. 依法追究相关方的民事责任,并要求赔偿全部损失;
// | 3. 保留进一步采取刑事控告等法律措施的权利。
// | 五、许可范围说明
// | 1、被授权方应视本产品源代码为核心机密信息,负有最高标准的保密与保管义务。禁止以任何形式(包
// | 括但不限于直接或间接的分享、复制、传播、分发、转售、出租、开源、反向工程、反编译、反汇编或通
// | 过网络服务提供给任何第三方)泄露、披露或处置源代码的全部或部分内容。任何未经授权的复制、使用、
// | 传播行为均构成对本团队知识产权的严重侵权,本团队有权依法追究其全部法律责任,并要求赔偿因此造
// | 成的一切经济损失及商誉损害。
// | 2、本产品仅限于公司或个人在法律允许范围内,用于内部且合规的软件产品研发。具体权利义务以《软件
// | 许可协议》附件为准。
// +======================================================================
package v1
import (
"github.com/gogf/gf/v2/os/gtime"
"github.com/gogf/gf/v2/util/gmeta"
)
// ============================== 任务日志模块 ==============================
// JobLogItem 任务日志行数据
// 用于任务日志分页列表、任务日志列表等场景的日志基础信息
type JobLogItem struct {
Id int64 `json:"id"` // 主键ID
JobId int64 `json:"jobId"` // 任务ID
JobName string `json:"jobName"` // 任务名称
JobGroup string `json:"jobGroup"` // 任务分组
JobTrigger string `json:"jobTrigger"` // 触发器类型
JobMessage string `json:"jobMessage"` // 任务执行消息
CronExpression string `json:"cronExpression"` // Cron表达式
Status int `json:"status"` // 状态:0-正常 1-失败
StatusText string `json:"statusText"` // 状态文本
StartTime *gtime.Time `json:"startTime"` // 开始时间
EndTime *gtime.Time `json:"endTime"` // 结束时间
ConsumeTime int64 `json:"consumeTime"` // 耗时(毫秒)
ExceptionInfo string `json:"exceptionInfo"` // 异常信息
CreateTime *gtime.Time `json:"createTime"` // 创建时间
}
// JobLogPageReq 任务日志分页请求
// 支持关键词、任务名称、任务ID、状态等条件组合查询
type JobLogPageReq struct {
gmeta.Meta `method:"get" path:"/api/job/log/page" summary:"任务日志分页" permission:"sys:jobLog:page" log:"任务日志-查询分页记录" logType:"query"`
PageReq // 分页基础参数
Keyword string `json:"keyword" dc:"关键词(任务名模糊)"` // 关键词,任务名模糊匹配
JobName string `json:"jobName" dc:"任务名称模糊"` // 任务名称模糊匹配
JobId int64 `json:"jobId" dc:"任务ID"` // 任务ID
Status int `json:"status" dc:"状态:0-正常 1-失败"` // 状态
}
// JobLogPageRes 任务日志分页结果
type JobLogPageRes = PageData[JobLogItem]
// JobLogListReq 任务日志列表请求
type JobLogListReq struct {
gmeta.Meta `method:"get" path:"/api/job/log/list" summary:"任务日志列表" permission:"sys:jobLog:list" log:"任务日志-查询列表" logType:"query"`
Keyword string `json:"keyword" dc:"关键词"` // 关键词
JobId int64 `json:"jobId" dc:"任务ID"` // 任务ID
Status int `json:"status" dc:"状态"` // 状态
Limit int `json:"limit" dc:"条数上限"` // 条数上限
}
// JobLogListRes 任务日志列表结果
type JobLogListRes = []JobLogItem
// JobLogDetailReq 任务日志详情请求
type JobLogDetailReq struct {
gmeta.Meta `method:"get" path:"/api/job/log/detail/:id" summary:"任务日志详情" permission:"sys:jobLog:detail" log:"任务日志-查询详情" logType:"query"`
Id int64 `json:"id" v:"required#缺少ID" dc:"日志ID"` // 日志ID
}
// JobLogDetailRes 任务日志详情结果
type JobLogDetailRes struct {
JobLogItem
}
// JobLogDeleteReq 删除任务日志请求
type JobLogDeleteReq struct {
gmeta.Meta `method:"delete" path:"/api/job/log/delete/:id" summary:"删除任务日志" permission:"sys:jobLog:delete" log:"任务日志-删除记录" logType:"delete"`
Id int64 `json:"id" v:"required#缺少ID" dc:"日志ID"` // 日志ID
}
// JobLogDeleteRes 删除任务日志结果
type JobLogDeleteRes struct{}
// JobLogBatchDeleteReq 批量删除任务日志请求
type JobLogBatchDeleteReq struct {
gmeta.Meta `method:"delete" path:"/api/job/log/batchDelete" summary:"批量删除任务日志" permission:"sys:jobLog:batchDelete" log:"任务日志-批量删除记录" logType:"delete"`
Ids []int64 `json:"ids" v:"required#请选择要删除的记录" dc:"日志ID列表"` // 日志ID列表
}
// JobLogBatchDeleteRes 批量删除结果
type JobLogBatchDeleteRes struct{}
+188
View File
@@ -0,0 +1,188 @@
// +======================================================================
// | EasyGoAdmin 企业数字化开发平台 [ 赋能开发者,助力企业发展 ]
// +----------------------------------------------------------------------
// | Copyright (c) 2019-2026 半城风雨团队 版权所有
// +----------------------------------------------------------------------
// | 开源协议: Apache-2.0
// | 重要声明: 未经书面许可,不得移除或修改本框架相关版权标识。
// +----------------------------------------------------------------------
// | 官方网站: https://www.easygoadmin.vip
// +----------------------------------------------------------------------
// | 研发团队: 小蚂蚁云团队 荣誉出品
// +======================================================================
// | 版权和免责声明:
// | 一、知识产权声明
// | 本团队对该软件框架产品(以下简称“本产品”)拥有完整知识产权,包括但不限于商标权、专利权、
// | 著作权、商业秘密等。前述权利均受中华人民共和国及相关国际法律法规保护。未经本团队书面授权,
// | 任何个人或单位不得基于本产品本身申请任何形式的知识产权。
// | 二、使用限制与禁止条款
// | 您理解并同意,禁止将本产品用于以下任何行为:
// | 1. 任何违反中华人民共和国法律法规的用途;
// | 2. 任何侵害他人合法权益(包括但不限于人身权、财产权、知识产权等)的行为;
// | 3. 任何危害国家安全、公共利益及社会道德风尚的行为。
// | 三、责任豁免
// | 因使用本产品而产生的任何损失或法律纠纷(包括但不限于直接损失、间接损失、附带损失、衍生损失
// | 以及因违约、侵权等引发的责任),本团队均不承担任何法律责任。若因违规使用本产品导致任何第三
// | 方提起索赔或行政机关进行调查,您应独立承担全部责任。
// | 四、违约与法律责任
// | 如发现任何违反本声明的行为,本团队有权:
// | 1. 无条件配合公安机关及其他有权机关的调查取证工作;
// | 2. 依法追究相关方的民事责任,并要求赔偿全部损失;
// | 3. 保留进一步采取刑事控告等法律措施的权利。
// | 五、许可范围说明
// | 1、被授权方应视本产品源代码为核心机密信息,负有最高标准的保密与保管义务。禁止以任何形式(包
// | 括但不限于直接或间接的分享、复制、传播、分发、转售、出租、开源、反向工程、反编译、反汇编或通
// | 过网络服务提供给任何第三方)泄露、披露或处置源代码的全部或部分内容。任何未经授权的复制、使用、
// | 传播行为均构成对本团队知识产权的严重侵权,本团队有权依法追究其全部法律责任,并要求赔偿因此造
// | 成的一切经济损失及商誉损害。
// | 2、本产品仅限于公司或个人在法律允许范围内,用于内部且合规的软件产品研发。具体权利义务以《软件
// | 许可协议》附件为准。
// +======================================================================
package v1
import (
"github.com/gogf/gf/v2/net/ghttp"
"github.com/gogf/gf/v2/os/gtime"
"github.com/gogf/gf/v2/util/gmeta"
)
// ============================== 职级模块 ==============================
// LevelItem 职级行数据
// 用于职级分页列表等场景的职级基础信息
type LevelItem struct {
Id int64 `json:"id"` // 主键ID
TenantId int `json:"tenantId"` // 租户ID
Name string `json:"name"` // 职级名称
Status int `json:"status"` // 状态:1-正常 2-禁用
StatusText string `json:"statusText"` // 状态文本
Sort int `json:"sort"` // 排序
UserCount int `json:"userCount"` // 关联用户数
CreateUser string `json:"createUser"` // 创建人
CreateTime *gtime.Time `json:"createTime"` // 创建时间
}
// LevelPageReq 职级分页请求
// 支持关键词、名称、状态等条件组合查询
type LevelPageReq struct {
gmeta.Meta `method:"get" path:"/api/level/page" summary:"职级分页" permission:"sys:level:page" log:"职级管理-查询分页记录" logType:"query"`
PageReq // 分页基础参数
Keyword string `json:"keyword" dc:"关键词"` // 关键词
Name string `json:"name" dc:"名称模糊"` // 名称模糊匹配
Status int `json:"status" dc:"状态:1-正常 2-禁用"` // 状态
}
// LevelPageRes 职级分页结果
type LevelPageRes = PageData[LevelItem]
// LevelListReq 职级全量列表请求
type LevelListReq struct {
gmeta.Meta `method:"get" path:"/api/level/list" summary:"职级列表" permission:"sys:level:list" log:"职级管理-查询列表" logType:"query"`
Keyword string `json:"keyword" dc:"关键词"` // 关键词
Status int `json:"status" dc:"状态"` // 状态
}
// LevelListItem 职级列表行数据
// 精简结构,仅包含列表展示所需字段
type LevelListItem struct {
Id int64 `json:"id"` // 主键ID
Name string `json:"name"` // 职级名称
Status int `json:"status"` // 状态:1-正常 2-禁用
Sort int `json:"sort"` // 排序
}
// LevelListRes 职级列表结果
type LevelListRes = []LevelListItem
// LevelDetailReq 职级详情请求
type LevelDetailReq struct {
gmeta.Meta `method:"get" path:"/api/level/detail/:id" summary:"职级详情" permission:"sys:level:detail" log:"职级管理-查询详情" logType:"query"`
Id int64 `json:"id" v:"required#缺少ID" dc:"职级ID"` // 职级ID
}
// LevelDetailRes 职级详情结果
type LevelDetailRes struct {
Id int64 `json:"id"` // 主键ID
Name string `json:"name"` // 职级名称
Status int `json:"status"` // 状态:1-正常 2-禁用
StatusText string `json:"statusText"` // 状态文本
Sort int `json:"sort"` // 排序
}
// LevelAddReq 新增职级请求
type LevelAddReq struct {
gmeta.Meta `method:"post" path:"/api/level/add" summary:"新增职级" permission:"sys:level:add" log:"职级管理-新增记录" logType:"add"`
Name string `json:"name" v:"required#请输入职级名称" dc:"职级名称"` // 职级名称
Status int `json:"status" dc:"状态:1-正常 2-禁用"` // 状态
Sort int `json:"sort" dc:"排序"` // 排序
}
// LevelUpdateReq 修改职级请求
type LevelUpdateReq struct {
gmeta.Meta `method:"put" path:"/api/level/update" summary:"修改职级" permission:"sys:level:update" log:"职级管理-修改记录" logType:"update"`
Id int64 `json:"id" v:"required#缺少ID" dc:"职级ID"` // 职级ID
Name string `json:"name" v:"required#请输入职级名称" dc:"职级名称"` // 职级名称
Status int `json:"status" dc:"状态"` // 状态
Sort int `json:"sort" dc:"排序"` // 排序
}
// LevelUpdateRes 修改职级结果
type LevelUpdateRes struct{}
// LevelStatusReq 职级状态请求
type LevelStatusReq struct {
gmeta.Meta `method:"put" path:"/api/level/status" summary:"职级状态" permission:"sys:level:status" log:"职级管理-设置状态" logType:"update"`
Id int64 `json:"id" v:"required#缺少ID" dc:"职级ID"` // 职级ID
Status int `json:"status" v:"required#缺少状态" dc:"状态:1-正常 2-禁用"` // 状态
}
// LevelStatusRes 职级状态结果
type LevelStatusRes struct{}
// LevelDeleteReq 删除职级请求
type LevelDeleteReq struct {
gmeta.Meta `method:"delete" path:"/api/level/delete/:id" summary:"删除职级" permission:"sys:level:delete" log:"职级管理-删除记录" logType:"delete"`
Id int64 `json:"id" v:"required#缺少ID" dc:"职级ID"` // 职级ID
}
// LevelDeleteRes 删除职级结果
type LevelDeleteRes struct{}
// LevelBatchDeleteReq 批量删除职级请求
type LevelBatchDeleteReq struct {
gmeta.Meta `method:"delete" path:"/api/level/batchDelete" summary:"批量删除职级" permission:"sys:level:batchDelete" log:"职级管理-批量删除记录" logType:"delete"`
Ids []int64 `json:"ids" v:"required#请选择要删除的记录" dc:"职级ID列表"` // 职级ID列表
}
// LevelBatchDeleteRes 批量删除结果
type LevelBatchDeleteRes struct{}
// LevelImportReq 导入职级请求
// 上传 xls/xlsx 文件进行数据导入
type LevelImportReq struct {
gmeta.Meta `method:"post" path:"/api/level/import" summary:"导入职级" permission:"sys:level:import" log:"职级管理-导入数据" logType:"import"`
File *ghttp.UploadFile `p:"file" v:"required#请选择文件" dc:"xls/xlsx 文件"` // 上传文件
}
// LevelImportRes 导入结果
// 返回导入总数、成功数、失败数及失败原因
type LevelImportRes struct {
Total int `json:"total"` // 导入总数
Success int `json:"success"` // 成功数
Failed int `json:"failed"` // 失败数
Reasons []string `json:"reasons"` // 失败原因列表
}
// LevelExportReq 导出职级请求
// 按查询条件导出符合条件的记录
type LevelExportReq struct {
gmeta.Meta `method:"get" path:"/api/level/export" summary:"导出职级" permission:"sys:level:export" log:"职级管理-导出数据" logType:"export"`
Keyword string `json:"keyword" dc:"关键词"` // 关键词
Name string `json:"name" dc:"名称模糊"` // 名称模糊匹配
Status int `json:"status" dc:"状态"` // 状态
}
// LevelExportRes 导出结果
// data 直接为导出文件的访问地址
type LevelExportRes = string
+152
View File
@@ -0,0 +1,152 @@
// +======================================================================
// | EasyGoAdmin 企业数字化开发平台 [ 赋能开发者,助力企业发展 ]
// +----------------------------------------------------------------------
// | Copyright (c) 2019-2026 半城风雨团队 版权所有
// +----------------------------------------------------------------------
// | 开源协议: Apache-2.0
// | 重要声明: 未经书面许可,不得移除或修改本框架相关版权标识。
// +----------------------------------------------------------------------
// | 官方网站: https://www.easygoadmin.vip
// +----------------------------------------------------------------------
// | 研发团队: 小蚂蚁云团队 荣誉出品
// +======================================================================
// | 版权和免责声明:
// | 一、知识产权声明
// | 本团队对该软件框架产品(以下简称“本产品”)拥有完整知识产权,包括但不限于商标权、专利权、
// | 著作权、商业秘密等。前述权利均受中华人民共和国及相关国际法律法规保护。未经本团队书面授权,
// | 任何个人或单位不得基于本产品本身申请任何形式的知识产权。
// | 二、使用限制与禁止条款
// | 您理解并同意,禁止将本产品用于以下任何行为:
// | 1. 任何违反中华人民共和国法律法规的用途;
// | 2. 任何侵害他人合法权益(包括但不限于人身权、财产权、知识产权等)的行为;
// | 3. 任何危害国家安全、公共利益及社会道德风尚的行为。
// | 三、责任豁免
// | 因使用本产品而产生的任何损失或法律纠纷(包括但不限于直接损失、间接损失、附带损失、衍生损失
// | 以及因违约、侵权等引发的责任),本团队均不承担任何法律责任。若因违规使用本产品导致任何第三
// | 方提起索赔或行政机关进行调查,您应独立承担全部责任。
// | 四、违约与法律责任
// | 如发现任何违反本声明的行为,本团队有权:
// | 1. 无条件配合公安机关及其他有权机关的调查取证工作;
// | 2. 依法追究相关方的民事责任,并要求赔偿全部损失;
// | 3. 保留进一步采取刑事控告等法律措施的权利。
// | 五、许可范围说明
// | 1、被授权方应视本产品源代码为核心机密信息,负有最高标准的保密与保管义务。禁止以任何形式(包
// | 括但不限于直接或间接的分享、复制、传播、分发、转售、出租、开源、反向工程、反编译、反汇编或通
// | 过网络服务提供给任何第三方)泄露、披露或处置源代码的全部或部分内容。任何未经授权的复制、使用、
// | 传播行为均构成对本团队知识产权的严重侵权,本团队有权依法追究其全部法律责任,并要求赔偿因此造
// | 成的一切经济损失及商誉损害。
// | 2、本产品仅限于公司或个人在法律允许范围内,用于内部且合规的软件产品研发。具体权利义务以《软件
// | 许可协议》附件为准。
// +======================================================================
package v1
import (
"github.com/gogf/gf/v2/os/gtime"
"github.com/gogf/gf/v2/util/gmeta"
)
// ============================== 友链模块 ==============================
// LinkItem 友链行数据
// 用于友链分页列表等场景的友链基础信息
type LinkItem struct {
Id int64 `json:"id"` // 主键ID
Name string `json:"name"` // 友链名称
Type int `json:"type"` // 类型:1-友情链接 2-合作伙伴
TypeText string `json:"typeText"` // 类型文本
Url string `json:"url"` // 友链URL
Form int `json:"form"` // 形式:1-文字链接 2-图片链接
FormText string `json:"formText"` // 形式文本
Image string `json:"image"` // 友链图片
Status int `json:"status"` // 状态:1-正常 2-停用
StatusText string `json:"statusText"` // 状态文本
Sort int `json:"sort"` // 排序
Note string `json:"note"` // 备注
CreateUser string `json:"createUser"` // 创建人
CreateTime *gtime.Time `json:"createTime"` // 创建时间
}
// LinkPageReq 友链分页请求
// 支持关键词、名称、类型、状态等条件组合查询
type LinkPageReq struct {
gmeta.Meta `method:"get" path:"/api/link/page" summary:"友链分页" permission:"sys:link:page" log:"友链管理-查询分页记录" logType:"query"`
PageReq // 分页基础参数
Keyword string `json:"keyword" dc:"关键词(名称模糊)"` // 关键词,名称模糊匹配
Name string `json:"name" dc:"名称模糊"` // 名称模糊匹配
Type int `json:"type" dc:"类型:1-友情链接 2-合作伙伴"` // 类型
Status int `json:"status" dc:"状态:1-正常 2-停用"` // 状态
}
// LinkPageRes 友链分页结果
type LinkPageRes = PageData[LinkItem]
// LinkDetailReq 友链详情请求
type LinkDetailReq struct {
gmeta.Meta `method:"get" path:"/api/link/detail/:id" summary:"友链详情" permission:"sys:link:detail" log:"友链管理-查询详情" logType:"query"`
Id int64 `json:"id" v:"required#缺少ID" dc:"友链ID"` // 友链ID
}
// LinkDetailRes 友链详情结果
type LinkDetailRes struct {
Id int64 `json:"id"` // 主键ID
Name string `json:"name"` // 友链名称
Type int `json:"type"` // 类型:1-友情链接 2-合作伙伴
TypeText string `json:"typeText"` // 类型文本
Url string `json:"url"` // 友链URL
Form int `json:"form"` // 形式:1-文字链接 2-图片链接
FormText string `json:"formText"` // 形式文本
Image string `json:"image"` // 友链图片
Status int `json:"status"` // 状态:1-正常 2-停用
StatusText string `json:"statusText"` // 状态文本
Sort int `json:"sort"` // 排序
Note string `json:"note"` // 备注
}
// LinkAddReq 新增友链请求
type LinkAddReq struct {
gmeta.Meta `method:"post" path:"/api/link/add" summary:"新增友链" permission:"sys:link:add" log:"友链管理-新增记录" logType:"add"`
Name string `json:"name" v:"required#请输入友链名称" dc:"友链名称"` // 友链名称
Type int `json:"type" dc:"类型:1-友情链接 2-合作伙伴"` // 类型
Url string `json:"url" v:"required#请输入友链地址" dc:"友链URL"` // 友链URL
Form int `json:"form" dc:"形式:1-文字链接 2-图片链接"` // 形式
Image string `json:"image" dc:"友链图片"` // 友链图片
Status int `json:"status" dc:"状态:1-正常 2-停用"` // 状态
Sort int `json:"sort" dc:"排序"` // 排序
Note string `json:"note" dc:"备注"` // 备注
}
// LinkUpdateReq 修改友链请求
type LinkUpdateReq struct {
gmeta.Meta `method:"put" path:"/api/link/update" summary:"修改友链" permission:"sys:link:update" log:"友链管理-修改记录" logType:"update"`
Id int64 `json:"id" v:"required#缺少ID" dc:"友链ID"` // 友链ID
Name string `json:"name" v:"required#请输入友链名称" dc:"友链名称"` // 友链名称
Type int `json:"type" dc:"类型"` // 类型
Url string `json:"url" v:"required#请输入友链地址" dc:"友链URL"` // 友链URL
Form int `json:"form" dc:"形式"` // 形式
Image string `json:"image" dc:"友链图片"` // 友链图片
Status int `json:"status" dc:"状态"` // 状态
Sort int `json:"sort" dc:"排序"` // 排序
Note string `json:"note" dc:"备注"` // 备注
}
// LinkUpdateRes 修改友链结果
type LinkUpdateRes struct{}
// LinkDeleteReq 删除友链请求
type LinkDeleteReq struct {
gmeta.Meta `method:"delete" path:"/api/link/delete/:id" summary:"删除友链" permission:"sys:link:delete" log:"友链管理-删除记录" logType:"delete"`
Id int64 `json:"id" v:"required#缺少ID" dc:"友链ID"` // 友链ID
}
// LinkDeleteRes 删除友链结果
type LinkDeleteRes struct{}
// LinkBatchDeleteReq 批量删除友链请求
type LinkBatchDeleteReq struct {
gmeta.Meta `method:"delete" path:"/api/link/batchDelete" summary:"批量删除友链" permission:"sys:link:batchDelete" log:"友链管理-批量删除记录" logType:"delete"`
Ids []int64 `json:"ids" v:"required#请选择要删除的记录" dc:"友链ID列表"` // 友链ID列表
}
// LinkBatchDeleteRes 批量删除结果
type LinkBatchDeleteRes struct{}
+131
View File
@@ -0,0 +1,131 @@
// +======================================================================
// | EasyGoAdmin 企业数字化开发平台 [ 赋能开发者,助力企业发展 ]
// +----------------------------------------------------------------------
// | Copyright (c) 2019-2026 半城风雨团队 版权所有
// +----------------------------------------------------------------------
// | 开源协议: Apache-2.0
// | 重要声明: 未经书面许可,不得移除或修改本框架相关版权标识。
// +----------------------------------------------------------------------
// | 官方网站: https://www.easygoadmin.vip
// +----------------------------------------------------------------------
// | 研发团队: 小蚂蚁云团队 荣誉出品
// +======================================================================
// | 版权和免责声明:
// | 一、知识产权声明
// | 本团队对该软件框架产品(以下简称“本产品”)拥有完整知识产权,包括但不限于商标权、专利权、
// | 著作权、商业秘密等。前述权利均受中华人民共和国及相关国际法律法规保护。未经本团队书面授权,
// | 任何个人或单位不得基于本产品本身申请任何形式的知识产权。
// | 二、使用限制与禁止条款
// | 您理解并同意,禁止将本产品用于以下任何行为:
// | 1. 任何违反中华人民共和国法律法规的用途;
// | 2. 任何侵害他人合法权益(包括但不限于人身权、财产权、知识产权等)的行为;
// | 3. 任何危害国家安全、公共利益及社会道德风尚的行为。
// | 三、责任豁免
// | 因使用本产品而产生的任何损失或法律纠纷(包括但不限于直接损失、间接损失、附带损失、衍生损失
// | 以及因违约、侵权等引发的责任),本团队均不承担任何法律责任。若因违规使用本产品导致任何第三
// | 方提起索赔或行政机关进行调查,您应独立承担全部责任。
// | 四、违约与法律责任
// | 如发现任何违反本声明的行为,本团队有权:
// | 1. 无条件配合公安机关及其他有权机关的调查取证工作;
// | 2. 依法追究相关方的民事责任,并要求赔偿全部损失;
// | 3. 保留进一步采取刑事控告等法律措施的权利。
// | 五、许可范围说明
// | 1、被授权方应视本产品源代码为核心机密信息,负有最高标准的保密与保管义务。禁止以任何形式(包
// | 括但不限于直接或间接的分享、复制、传播、分发、转售、出租、开源、反向工程、反编译、反汇编或通
// | 过网络服务提供给任何第三方)泄露、披露或处置源代码的全部或部分内容。任何未经授权的复制、使用、
// | 传播行为均构成对本团队知识产权的严重侵权,本团队有权依法追究其全部法律责任,并要求赔偿因此造
// | 成的一切经济损失及商誉损害。
// | 2、本产品仅限于公司或个人在法律允许范围内,用于内部且合规的软件产品研发。具体权利义务以《软件
// | 许可协议》附件为准。
// +======================================================================
package v1
import (
"github.com/gogf/gf/v2/os/gtime"
"github.com/gogf/gf/v2/util/gmeta"
)
// ============================== 登录日志模块 ==============================
// LoginLogItem 登录日志行数据
// 用于登录日志分页列表、登录日志列表等场景的日志基础信息
type LoginLogItem struct {
Id int64 `json:"id"` // 主键ID
Username string `json:"username"` // 用户名
LogType int `json:"logType"` // 类型:1-登录 2-退出
LogTypeText string `json:"logTypeText"` // 类型文本
Source int `json:"source"` // 来源
SourceText string `json:"sourceText"` // 来源文本
Method string `json:"method"` // 处理方法
RequestMethod string `json:"requestMethod"` // 请求方式
Url string `json:"url"` // 请求地址
Param string `json:"param"` // 请求参数
Result string `json:"result"` // 返回结果
Ip string `json:"ip"` // 客户端IP
Location string `json:"location"` // 归属地
Os string `json:"os"` // 操作系统
Browser string `json:"browser"` // 浏览器
ConsumeTime int64 `json:"consumeTime"` // 耗时(毫秒)
Status int `json:"status"` // 状态:0-成功 1-失败
StatusText string `json:"statusText"` // 状态文本
Error string `json:"error"` // 错误信息
CreateUser string `json:"createUser"` // 创建人
CreateTime *gtime.Time `json:"createTime"` // 创建时间
UpdateTime *gtime.Time `json:"updateTime"` // 更新时间
}
// LoginLogPageReq 登录日志分页请求
// 支持关键词、用户名、类型、状态等条件组合查询
type LoginLogPageReq struct {
gmeta.Meta `method:"get" path:"/api/login/log/page" summary:"登录日志分页" permission:"sys:loginLog:page" log:"登录日志-查询分页记录" logType:"query"`
PageReq // 分页基础参数
Keyword string `json:"keyword" dc:"关键词(用户名模糊)"` // 关键词,用户名模糊匹配
Username string `json:"username" dc:"用户名模糊"` // 用户名模糊匹配
LogType int `json:"logType" dc:"类型:1-登录 2-退出"` // 类型
Status int `json:"status" dc:"状态:0-成功 1-失败"` // 状态
}
// LoginLogPageRes 登录日志分页结果
type LoginLogPageRes = PageData[LoginLogItem]
// LoginLogListReq 登录日志列表请求
type LoginLogListReq struct {
gmeta.Meta `method:"get" path:"/api/login/log/list" summary:"登录日志列表" permission:"sys:loginLog:list" log:"登录日志-查询列表" logType:"query"`
Keyword string `json:"keyword" dc:"关键词"` // 关键词
LogType int `json:"logType" dc:"类型"` // 类型
Status int `json:"status" dc:"状态"` // 状态
Limit int `json:"limit" dc:"条数上限"` // 条数上限
}
// LoginLogListRes 登录日志列表结果
type LoginLogListRes = []LoginLogItem
// LoginLogDetailReq 登录日志详情请求
type LoginLogDetailReq struct {
gmeta.Meta `method:"get" path:"/api/login/log/detail/:id" summary:"登录日志详情" permission:"sys:loginLog:detail" log:"登录日志-查询详情" logType:"query"`
Id int64 `json:"id" v:"required#缺少ID" dc:"日志ID"` // 日志ID
}
// LoginLogDetailRes 登录日志详情结果
type LoginLogDetailRes struct {
LoginLogItem
}
// LoginLogDeleteReq 删除登录日志请求
type LoginLogDeleteReq struct {
gmeta.Meta `method:"delete" path:"/api/login/log/delete/:id" summary:"删除登录日志" permission:"sys:loginLog:delete" log:"登录日志-删除记录" logType:"delete"`
Id int64 `json:"id" v:"required#缺少ID" dc:"日志ID"` // 日志ID
}
// LoginLogDeleteRes 删除登录日志结果
type LoginLogDeleteRes struct{}
// LoginLogBatchDeleteReq 批量删除登录日志请求
type LoginLogBatchDeleteReq struct {
gmeta.Meta `method:"delete" path:"/api/login/log/batchDelete" summary:"批量删除登录日志" permission:"sys:loginLog:batchDelete" log:"登录日志-批量删除记录" logType:"delete"`
Ids []int64 `json:"ids" v:"required#请选择要删除的记录" dc:"日志ID列表"` // 日志ID列表
}
// LoginLogBatchDeleteRes 批量删除结果
type LoginLogBatchDeleteRes struct{}
+183
View File
@@ -0,0 +1,183 @@
// +======================================================================
// | EasyGoAdmin 企业数字化开发平台 [ 赋能开发者,助力企业发展 ]
// +----------------------------------------------------------------------
// | Copyright (c) 2019-2026 半城风雨团队 版权所有
// +----------------------------------------------------------------------
// | 开源协议: Apache-2.0
// | 重要声明: 未经书面许可,不得移除或修改本框架相关版权标识。
// +----------------------------------------------------------------------
// | 官方网站: https://www.easygoadmin.vip
// +----------------------------------------------------------------------
// | 研发团队: 小蚂蚁云团队 荣誉出品
// +======================================================================
// | 版权和免责声明:
// | 一、知识产权声明
// | 本团队对该软件框架产品(以下简称“本产品”)拥有完整知识产权,包括但不限于商标权、专利权、
// | 著作权、商业秘密等。前述权利均受中华人民共和国及相关国际法律法规保护。未经本团队书面授权,
// | 任何个人或单位不得基于本产品本身申请任何形式的知识产权。
// | 二、使用限制与禁止条款
// | 您理解并同意,禁止将本产品用于以下任何行为:
// | 1. 任何违反中华人民共和国法律法规的用途;
// | 2. 任何侵害他人合法权益(包括但不限于人身权、财产权、知识产权等)的行为;
// | 3. 任何危害国家安全、公共利益及社会道德风尚的行为。
// | 三、责任豁免
// | 因使用本产品而产生的任何损失或法律纠纷(包括但不限于直接损失、间接损失、附带损失、衍生损失
// | 以及因违约、侵权等引发的责任),本团队均不承担任何法律责任。若因违规使用本产品导致任何第三
// | 方提起索赔或行政机关进行调查,您应独立承担全部责任。
// | 四、违约与法律责任
// | 如发现任何违反本声明的行为,本团队有权:
// | 1. 无条件配合公安机关及其他有权机关的调查取证工作;
// | 2. 依法追究相关方的民事责任,并要求赔偿全部损失;
// | 3. 保留进一步采取刑事控告等法律措施的权利。
// | 五、许可范围说明
// | 1、被授权方应视本产品源代码为核心机密信息,负有最高标准的保密与保管义务。禁止以任何形式(包
// | 括但不限于直接或间接的分享、复制、传播、分发、转售、出租、开源、反向工程、反编译、反汇编或通
// | 过网络服务提供给任何第三方)泄露、披露或处置源代码的全部或部分内容。任何未经授权的复制、使用、
// | 传播行为均构成对本团队知识产权的严重侵权,本团队有权依法追究其全部法律责任,并要求赔偿因此造
// | 成的一切经济损失及商誉损害。
// | 2、本产品仅限于公司或个人在法律允许范围内,用于内部且合规的软件产品研发。具体权利义务以《软件
// | 许可协议》附件为准。
// +======================================================================
package v1
import (
"github.com/gogf/gf/v2/util/gmeta"
)
// ============================== 菜单模块 ==============================
// MenuItem 菜单行数据
// 用于菜单分页列表、菜单树形列表等场景的菜单基础信息
type MenuItem struct {
Id int64 `json:"id"` // 主键ID
ParentId int `json:"parentId"` // 上级菜单ID(0=顶级)
Name string `json:"name"` // 菜单名称
Icon string `json:"icon"` // 图标
Icon2 string `json:"icon2"` // 菜单图标2
Path string `json:"path"` // 路由路径
Component string `json:"component"` // 前端组件路径
Permission string `json:"permission"` // 权限节点标识
Target int `json:"target"` // 打开方式:0-组件 1-内链 2-外链
Type int `json:"type"` // 类型:0-菜单 1-权限节点
TypeText string `json:"typeText"` // 类型文本
Status int `json:"status"` // 状态:0-正常 1-停用
StatusText string `json:"statusText"` // 状态文本
Hide int `json:"hide"` // 是否可见:0-可见 1-不可见
Sort int `json:"sort"` // 排序
Note string `json:"note"` // 备注
CreateUser string `json:"createUser"` // 创建人
}
// MenuPageReq 菜单分页请求(平铺)
// 支持关键词、名称、路径、类型、状态等条件组合查询
type MenuPageReq struct {
gmeta.Meta `method:"get" path:"/api/menu/page" summary:"菜单分页" permission:"sys:menu:page" log:"菜单管理-查询分页记录" logType:"query"`
PageReq // 分页基础参数
Keyword string `json:"keyword" dc:"关键词(名称/路径模糊)"` // 关键词,名称或路径模糊匹配
Name string `json:"name" dc:"菜单名称模糊"` // 菜单名称模糊匹配
Path string `json:"path" dc:"路由路径模糊"` // 路由路径模糊匹配
Type *int `json:"type" dc:"类型:0-菜单 1-权限节点"` // 类型,指针用于区分未传值
Status *int `json:"status" dc:"状态:0-正常 1-停用"` // 状态,指针用于区分未传值
}
// MenuPageRes 菜单分页结果
type MenuPageRes = PageData[MenuItem]
// MenuListReq 菜单树形列表请求
// 返回平铺列表,由前端自行构建树形结构
type MenuListReq struct {
gmeta.Meta `method:"get" path:"/api/menu/list" summary:"菜单树形列表" permission:"sys:menu:list" log:"菜单管理-查询树形列表" logType:"query"`
Keyword string `json:"keyword" dc:"关键词"` // 关键词
Type *int `json:"type" dc:"类型"` // 类型
Status *int `json:"status" dc:"状态"` // 状态
}
// MenuListRes 菜单平铺列表结果
// data 直接为数组,由前端自行构建树形结构
type MenuListRes = []*MenuItem
// MenuDetailReq 菜单详情请求
type MenuDetailReq struct {
gmeta.Meta `method:"get" path:"/api/menu/detail/:id" summary:"菜单详情" permission:"sys:menu:detail" log:"菜单管理-查询详情" logType:"query"`
Id int64 `json:"id" v:"required#缺少ID" dc:"菜单ID"` // 菜单ID
}
// MenuDetailRes 菜单详情结果
type MenuDetailRes struct {
Id int64 `json:"id"` // 主键ID
ParentId int `json:"parentId"` // 上级菜单ID
Name string `json:"name"` // 菜单名称
Icon string `json:"icon"` // 图标
Icon2 string `json:"icon2"` // 菜单图标2
Path string `json:"path"` // 路由路径
Component string `json:"component"` // 前端组件路径
Permission string `json:"permission"` // 权限节点标识
Target int `json:"target"` // 打开方式
Type int `json:"type"` // 类型:0-菜单 1-权限节点
TypeText string `json:"typeText"` // 类型文本
Status int `json:"status"` // 状态:0-正常 1-停用
StatusText string `json:"statusText"` // 状态文本
Hide int `json:"hide"` // 是否可见
Sort int `json:"sort"` // 排序
Note string `json:"note"` // 备注
}
// MenuAddReq 新增菜单请求
type MenuAddReq struct {
gmeta.Meta `method:"post" path:"/api/menu/add" summary:"新增菜单" permission:"sys:menu:add" log:"菜单管理-新增记录" logType:"add"`
ParentId int `json:"parentId" dc:"上级ID(0=顶级)"` // 上级菜单ID
Name string `json:"name" v:"required#请输入菜单名称" dc:"菜单名称"` // 菜单名称
Icon string `json:"icon" dc:"图标"` // 图标
Icon2 string `json:"icon2" dc:"菜单图标2"` // 菜单图标2
Path string `json:"path" dc:"路由路径"` // 路由路径
Component string `json:"component" dc:"前端组件"` // 前端组件路径
Permission string `json:"permission" dc:"权限节点"` // 权限节点标识
Target int `json:"target" dc:"打开方式:0-组件 1-内链 2-外链"` // 打开方式
Type int `json:"type" dc:"类型:0-菜单 1-权限节点"` // 类型
Status int `json:"status" dc:"状态:0-正常 1-停用"` // 状态
Hide int `json:"hide" dc:"是否可见:0-可见 1-不可见"` // 是否可见
Sort int `json:"sort" dc:"排序"` // 排序
Note string `json:"note" dc:"备注"` // 备注
}
// MenuUpdateReq 修改菜单请求
// Icon/Icon2/Note 为指针:未传值时该列不更新,保留库中原值;传空串表示清空
type MenuUpdateReq struct {
gmeta.Meta `method:"put" path:"/api/menu/update" summary:"修改菜单" permission:"sys:menu:update" log:"菜单管理-修改记录" logType:"update"`
Id int64 `json:"id" v:"required#缺少ID" dc:"菜单ID"` // 菜单ID
ParentId int `json:"parentId" dc:"上级ID"` // 上级菜单ID
Name string `json:"name" v:"required#请输入菜单名称" dc:"菜单名称"` // 菜单名称
Icon *string `json:"icon" dc:"图标"` // 图标,未传则保留原值
Icon2 *string `json:"icon2" dc:"菜单图标2"` // 菜单图标2,未传则保留原值
Path string `json:"path" dc:"路由路径"` // 路由路径
Component string `json:"component" dc:"前端组件"` // 前端组件路径
Permission string `json:"permission" dc:"权限节点"` // 权限节点标识
Target int `json:"target" dc:"打开方式"` // 打开方式
Type int `json:"type" dc:"类型"` // 类型
Status int `json:"status" dc:"状态"` // 状态
Hide int `json:"hide" dc:"是否可见"` // 是否可见
Sort int `json:"sort" dc:"排序"` // 排序
Note *string `json:"note" dc:"备注"` // 备注,未传则保留原值
}
// MenuUpdateRes 修改菜单结果
type MenuUpdateRes struct{}
// MenuDeleteReq 删除菜单请求
type MenuDeleteReq struct {
gmeta.Meta `method:"delete" path:"/api/menu/delete/:id" summary:"删除菜单" permission:"sys:menu:delete" log:"菜单管理-删除记录" logType:"delete"`
Id int64 `json:"id" v:"required#缺少ID" dc:"菜单ID"` // 菜单ID
}
// MenuDeleteRes 删除菜单结果
type MenuDeleteRes struct{}
// MenuBatchDeleteReq 批量删除菜单请求
type MenuBatchDeleteReq struct {
gmeta.Meta `method:"delete" path:"/api/menu/batchDelete" summary:"批量删除菜单" permission:"sys:menu:batchDelete" log:"菜单管理-批量删除记录" logType:"delete"`
Ids []int64 `json:"ids" v:"required#请选择要删除的记录" dc:"菜单ID列表"` // 菜单ID列表
}
// MenuBatchDeleteRes 批量删除结果
type MenuBatchDeleteRes struct{}
+169
View File
@@ -0,0 +1,169 @@
// +======================================================================
// | EasyGoAdmin 企业数字化开发平台 [ 赋能开发者,助力企业发展 ]
// +----------------------------------------------------------------------
// | Copyright (c) 2019-2026 半城风雨团队 版权所有
// +----------------------------------------------------------------------
// | 开源协议: Apache-2.0
// | 重要声明: 未经书面许可,不得移除或修改本框架相关版权标识。
// +----------------------------------------------------------------------
// | 官方网站: https://www.easygoadmin.vip
// +----------------------------------------------------------------------
// | 研发团队: 小蚂蚁云团队 荣誉出品
// +======================================================================
// | 版权和免责声明:
// | 一、知识产权声明
// | 本团队对该软件框架产品(以下简称“本产品”)拥有完整知识产权,包括但不限于商标权、专利权、
// | 著作权、商业秘密等。前述权利均受中华人民共和国及相关国际法律法规保护。未经本团队书面授权,
// | 任何个人或单位不得基于本产品本身申请任何形式的知识产权。
// | 二、使用限制与禁止条款
// | 您理解并同意,禁止将本产品用于以下任何行为:
// | 1. 任何违反中华人民共和国法律法规的用途;
// | 2. 任何侵害他人合法权益(包括但不限于人身权、财产权、知识产权等)的行为;
// | 3. 任何危害国家安全、公共利益及社会道德风尚的行为。
// | 三、责任豁免
// | 因使用本产品而产生的任何损失或法律纠纷(包括但不限于直接损失、间接损失、附带损失、衍生损失
// | 以及因违约、侵权等引发的责任),本团队均不承担任何法律责任。若因违规使用本产品导致任何第三
// | 方提起索赔或行政机关进行调查,您应独立承担全部责任。
// | 四、违约与法律责任
// | 如发现任何违反本声明的行为,本团队有权:
// | 1. 无条件配合公安机关及其他有权机关的调查取证工作;
// | 2. 依法追究相关方的民事责任,并要求赔偿全部损失;
// | 3. 保留进一步采取刑事控告等法律措施的权利。
// | 五、许可范围说明
// | 1、被授权方应视本产品源代码为核心机密信息,负有最高标准的保密与保管义务。禁止以任何形式(包
// | 括但不限于直接或间接的分享、复制、传播、分发、转售、出租、开源、反向工程、反编译、反汇编或通
// | 过网络服务提供给任何第三方)泄露、披露或处置源代码的全部或部分内容。任何未经授权的复制、使用、
// | 传播行为均构成对本团队知识产权的严重侵权,本团队有权依法追究其全部法律责任,并要求赔偿因此造
// | 成的一切经济损失及商誉损害。
// | 2、本产品仅限于公司或个人在法律允许范围内,用于内部且合规的软件产品研发。具体权利义务以《软件
// | 许可协议》附件为准。
// +======================================================================
package v1
import (
"github.com/gogf/gf/v2/os/gtime"
"github.com/gogf/gf/v2/util/gmeta"
)
// ============================== 公告模块 ==============================
// NoticeItem 公告行数据
// 用于公告分页列表等场景的公告基础信息
type NoticeItem struct {
Id int64 `json:"id"` // 主键ID
Title string `json:"title"` // 公告标题
Cover string `json:"cover"` // 封面图
Type int `json:"type"` // 类型
TypeText string `json:"typeText"` // 类型文本
ClickNum int `json:"clickNum"` // 点击量
Status int `json:"status"` // 状态:0-草稿 1-发布
StatusText string `json:"statusText"` // 状态文本
CreateUser string `json:"createUser"` // 创建人
CreateTime *gtime.Time `json:"createTime"` // 创建时间
}
// NoticePageReq 公告分页请求
// 支持关键词、标题、类型、状态等条件组合查询
type NoticePageReq struct {
gmeta.Meta `method:"get" path:"/api/notice/page" summary:"公告分页" permission:"sys:notice:page" log:"公告管理-查询分页记录" logType:"query"`
PageReq // 分页基础参数
Keyword string `json:"keyword" dc:"关键词(标题模糊)"` // 关键词,标题模糊匹配
Title string `json:"title" dc:"标题模糊"` // 标题模糊匹配
Type int `json:"type" dc:"类型"` // 类型
Status int `json:"status" dc:"状态:0-草稿 1-发布"` // 状态
}
// NoticePageRes 公告分页结果
type NoticePageRes = PageData[NoticeItem]
// NoticeListReq 公告列表请求
type NoticeListReq struct {
gmeta.Meta `method:"get" path:"/api/notice/list" summary:"公告列表" permission:"sys:notice:list" log:"公告管理-查询列表" logType:"query"`
Keyword string `json:"keyword" dc:"关键词"` // 关键词
Type int `json:"type" dc:"类型"` // 类型
Status int `json:"status" dc:"状态"` // 状态
Limit int `json:"limit" dc:"条数上限"` // 条数上限
}
// NoticeListItem 公告列表行数据
// 精简结构,仅包含列表展示所需字段
type NoticeListItem struct {
Id int64 `json:"id"` // 主键ID
Title string `json:"title"` // 公告标题
Type int `json:"type"` // 类型
Status int `json:"status"` // 状态:0-草稿 1-发布
}
// NoticeListRes 公告列表结果
type NoticeListRes = []NoticeListItem
// NoticeDetailReq 公告详情请求
type NoticeDetailReq struct {
gmeta.Meta `method:"get" path:"/api/notice/detail/:id" summary:"公告详情" permission:"sys:notice:detail" log:"公告管理-查询详情" logType:"query"`
Id int64 `json:"id" v:"required#缺少ID" dc:"公告ID"` // 公告ID
}
// NoticeDetailRes 公告详情结果
type NoticeDetailRes struct {
Id int64 `json:"id"` // 主键ID
Title string `json:"title"` // 公告标题
Cover string `json:"cover"` // 封面图
Type int `json:"type"` // 类型
TypeText string `json:"typeText"` // 类型文本
Status int `json:"status"` // 状态:0-草稿 1-发布
StatusText string `json:"statusText"` // 状态文本
Content string `json:"content"` // 正文
}
// NoticeAddReq 新增公告请求
type NoticeAddReq struct {
gmeta.Meta `method:"post" path:"/api/notice/add" summary:"新增公告" permission:"sys:notice:add" log:"公告管理-新增记录" logType:"add"`
Title string `json:"title" v:"required#请输入标题" dc:"标题"` // 公告标题
Cover string `json:"cover" dc:"封面图"` // 封面图
Type int `json:"type" dc:"类型"` // 类型
Status int `json:"status" dc:"状态:0-草稿 1-发布"` // 状态
Content string `json:"content" dc:"正文"` // 正文
}
// NoticeUpdateReq 修改公告请求
type NoticeUpdateReq struct {
gmeta.Meta `method:"put" path:"/api/notice/update" summary:"修改公告" permission:"sys:notice:update" log:"公告管理-修改记录" logType:"update"`
Id int64 `json:"id" v:"required#缺少ID" dc:"公告ID"` // 公告ID
Title string `json:"title" v:"required#请输入标题" dc:"标题"` // 公告标题
Cover string `json:"cover" dc:"封面图"` // 封面图
Type int `json:"type" dc:"类型"` // 类型
Status int `json:"status" dc:"状态"` // 状态
Content string `json:"content" dc:"正文"` // 正文
}
// NoticeUpdateRes 修改公告结果
type NoticeUpdateRes struct{}
// NoticeStatusReq 公告状态请求
type NoticeStatusReq struct {
gmeta.Meta `method:"put" path:"/api/notice/status" summary:"公告状态" permission:"sys:notice:status" log:"公告管理-设置状态" logType:"update"`
Id int64 `json:"id" v:"required#缺少ID" dc:"公告ID"` // 公告ID
Status int `json:"status" v:"required#缺少状态" dc:"状态:0-草稿 1-发布"` // 状态
}
// NoticeStatusRes 公告状态结果
type NoticeStatusRes struct{}
// NoticeDeleteReq 删除公告请求
type NoticeDeleteReq struct {
gmeta.Meta `method:"delete" path:"/api/notice/delete/:id" summary:"删除公告" permission:"sys:notice:delete" log:"公告管理-删除记录" logType:"delete"`
Id int64 `json:"id" v:"required#缺少ID" dc:"公告ID"` // 公告ID
}
// NoticeDeleteRes 删除公告结果
type NoticeDeleteRes struct{}
// NoticeBatchDeleteReq 批量删除公告请求
type NoticeBatchDeleteReq struct {
gmeta.Meta `method:"delete" path:"/api/notice/batchDelete" summary:"批量删除公告" permission:"sys:notice:batchDelete" log:"公告管理-批量删除记录" logType:"delete"`
Ids []int64 `json:"ids" v:"required#请选择要删除的记录" dc:"公告ID列表"` // 公告ID列表
}
// NoticeBatchDeleteRes 批量删除结果
type NoticeBatchDeleteRes struct{}
+113
View File
@@ -0,0 +1,113 @@
// +======================================================================
// | EasyGoAdmin 企业数字化开发平台 [ 赋能开发者,助力企业发展 ]
// +----------------------------------------------------------------------
// | Copyright (c) 2019-2026 半城风雨团队 版权所有
// +----------------------------------------------------------------------
// | 开源协议: Apache-2.0
// | 重要声明: 未经书面许可,不得移除或修改本框架相关版权标识。
// +----------------------------------------------------------------------
// | 官方网站: https://www.easygoadmin.vip
// +----------------------------------------------------------------------
// | 研发团队: 小蚂蚁云团队 荣誉出品
// +======================================================================
// | 版权和免责声明:
// | 一、知识产权声明
// | 本团队对该软件框架产品(以下简称“本产品”)拥有完整知识产权,包括但不限于商标权、专利权、
// | 著作权、商业秘密等。前述权利均受中华人民共和国及相关国际法律法规保护。未经本团队书面授权,
// | 任何个人或单位不得基于本产品本身申请任何形式的知识产权。
// | 二、使用限制与禁止条款
// | 您理解并同意,禁止将本产品用于以下任何行为:
// | 1. 任何违反中华人民共和国法律法规的用途;
// | 2. 任何侵害他人合法权益(包括但不限于人身权、财产权、知识产权等)的行为;
// | 3. 任何危害国家安全、公共利益及社会道德风尚的行为。
// | 三、责任豁免
// | 因使用本产品而产生的任何损失或法律纠纷(包括但不限于直接损失、间接损失、附带损失、衍生损失
// | 以及因违约、侵权等引发的责任),本团队均不承担任何法律责任。若因违规使用本产品导致任何第三
// | 方提起索赔或行政机关进行调查,您应独立承担全部责任。
// | 四、违约与法律责任
// | 如发现任何违反本声明的行为,本团队有权:
// | 1. 无条件配合公安机关及其他有权机关的调查取证工作;
// | 2. 依法追究相关方的民事责任,并要求赔偿全部损失;
// | 3. 保留进一步采取刑事控告等法律措施的权利。
// | 五、许可范围说明
// | 1、被授权方应视本产品源代码为核心机密信息,负有最高标准的保密与保管义务。禁止以任何形式(包
// | 括但不限于直接或间接的分享、复制、传播、分发、转售、出租、开源、反向工程、反编译、反汇编或通
// | 过网络服务提供给任何第三方)泄露、披露或处置源代码的全部或部分内容。任何未经授权的复制、使用、
// | 传播行为均构成对本团队知识产权的严重侵权,本团队有权依法追究其全部法律责任,并要求赔偿因此造
// | 成的一切经济损失及商誉损害。
// | 2、本产品仅限于公司或个人在法律允许范围内,用于内部且合规的软件产品研发。具体权利义务以《软件
// | 许可协议》附件为准。
// +======================================================================
package v1
import (
"github.com/gogf/gf/v2/util/gmeta"
)
// ============================== 在线用户模块 ==============================
// OnlineUserItem 在线用户行数据
type OnlineUserItem struct {
Id string `json:"id"` // 访问令牌标识(jti)
UserId int `json:"userId"` // 用户ID
Username string `json:"username"` // 用户名
Realname string `json:"realname"` // 姓名
Avatar string `json:"avatar"` // 头像(已补全访问域名)
Ip string `json:"ip"` // 登录IP
Location string `json:"location"` // 登录地点
Oss string `json:"oss"` // 操作系统
Browser string `json:"browser"` // 浏览器
LoginTime string `json:"loginTime"` // 登录时间
IssuedTime string `json:"issuedTime"` // 令牌颁发时间
ExpireTime string `json:"expireTime"` // 令牌过期时间
RefreshIssuedTime string `json:"refreshIssuedTime"` // 刷新令牌颁发时间(空表示无)
RefreshExpireTime string `json:"refreshExpireTime"` // 刷新令牌过期时间(空表示无)
SessionNo int `json:"sessionNo"` // 同用户会话序号
Sessions int `json:"sessions"` // 同用户会话总数
TokenType string `json:"tokenType"` // 令牌类型(Bearer)
ExpiresIn int64 `json:"expiresIn"` // 访问令牌有效期(秒)
AccessToken string `json:"accessToken"` // 访问令牌原文(仅详情返回)
RefreshToken string `json:"refreshToken"` // 刷新令牌原文(仅详情返回)
}
// OnlineUserPageReq 在线用户分页请求
type OnlineUserPageReq struct {
gmeta.Meta `method:"get" path:"/api/onlineUser/page" summary:"在线用户分页" permission:"sys:onlineUser:page" log:"在线用户-查询分页记录" logType:"query"`
PageReq // 分页基础参数
Username string `json:"username" dc:"用户名模糊"` // 用户名模糊匹配
Ip string `json:"ip" dc:"登录IP模糊"` // 登录IP模糊匹配
}
// OnlineUserPageRes 在线用户分页结果
type OnlineUserPageRes = PageData[OnlineUserItem]
// OnlineUserDetailReq 在线会话详情请求
type OnlineUserDetailReq struct {
gmeta.Meta `method:"get" path:"/api/onlineUser/detail/:id" summary:"在线会话详情" permission:"sys:onlineUser:detail" log:"在线用户-查询会话详情" logType:"query"`
Id string `json:"id" v:"required#缺少令牌标识" dc:"令牌标识"`
}
// OnlineUserDetailRes 在线会话详情结果
// 含访问/刷新令牌原文与登录环境信息
type OnlineUserDetailRes struct {
OnlineUserItem
}
// OnlineUserForceLogoutReq 强制下线请求
type OnlineUserForceLogoutReq struct {
gmeta.Meta `method:"get" path:"/api/onlineUser/forceLogout/:id" summary:"强制下线" permission:"sys:onlineUser:forceLogout" log:"在线用户-强制下线" logType:"update"`
Id string `json:"id" v:"required#缺少令牌标识" dc:"令牌标识"`
}
// OnlineUserForceLogoutRes 强制下线结果
type OnlineUserForceLogoutRes struct{}
// OnlineUserForceLogoutUserReq 踢出该用户全部设备请求
type OnlineUserForceLogoutUserReq struct {
gmeta.Meta `method:"get" path:"/api/onlineUser/forceLogoutUser/:userId" summary:"踢出用户全部设备" permission:"sys:onlineUser:forceLogout" log:"在线用户-踢出全部设备" logType:"update"`
UserId int `json:"userId" v:"required#缺少用户ID" dc:"用户ID"`
}
// OnlineUserForceLogoutUserRes 踢出该用户全部设备结果
type OnlineUserForceLogoutUserRes struct{}
+131
View File
@@ -0,0 +1,131 @@
// +======================================================================
// | EasyGoAdmin 企业数字化开发平台 [ 赋能开发者,助力企业发展 ]
// +----------------------------------------------------------------------
// | Copyright (c) 2019-2026 半城风雨团队 版权所有
// +----------------------------------------------------------------------
// | 开源协议: Apache-2.0
// | 重要声明: 未经书面许可,不得移除或修改本框架相关版权标识。
// +----------------------------------------------------------------------
// | 官方网站: https://www.easygoadmin.vip
// +----------------------------------------------------------------------
// | 研发团队: 小蚂蚁云团队 荣誉出品
// +======================================================================
// | 版权和免责声明:
// | 一、知识产权声明
// | 本团队对该软件框架产品(以下简称“本产品”)拥有完整知识产权,包括但不限于商标权、专利权、
// | 著作权、商业秘密等。前述权利均受中华人民共和国及相关国际法律法规保护。未经本团队书面授权,
// | 任何个人或单位不得基于本产品本身申请任何形式的知识产权。
// | 二、使用限制与禁止条款
// | 您理解并同意,禁止将本产品用于以下任何行为:
// | 1. 任何违反中华人民共和国法律法规的用途;
// | 2. 任何侵害他人合法权益(包括但不限于人身权、财产权、知识产权等)的行为;
// | 3. 任何危害国家安全、公共利益及社会道德风尚的行为。
// | 三、责任豁免
// | 因使用本产品而产生的任何损失或法律纠纷(包括但不限于直接损失、间接损失、附带损失、衍生损失
// | 以及因违约、侵权等引发的责任),本团队均不承担任何法律责任。若因违规使用本产品导致任何第三
// | 方提起索赔或行政机关进行调查,您应独立承担全部责任。
// | 四、违约与法律责任
// | 如发现任何违反本声明的行为,本团队有权:
// | 1. 无条件配合公安机关及其他有权机关的调查取证工作;
// | 2. 依法追究相关方的民事责任,并要求赔偿全部损失;
// | 3. 保留进一步采取刑事控告等法律措施的权利。
// | 五、许可范围说明
// | 1、被授权方应视本产品源代码为核心机密信息,负有最高标准的保密与保管义务。禁止以任何形式(包
// | 括但不限于直接或间接的分享、复制、传播、分发、转售、出租、开源、反向工程、反编译、反汇编或通
// | 过网络服务提供给任何第三方)泄露、披露或处置源代码的全部或部分内容。任何未经授权的复制、使用、
// | 传播行为均构成对本团队知识产权的严重侵权,本团队有权依法追究其全部法律责任,并要求赔偿因此造
// | 成的一切经济损失及商誉损害。
// | 2、本产品仅限于公司或个人在法律允许范围内,用于内部且合规的软件产品研发。具体权利义务以《软件
// | 许可协议》附件为准。
// +======================================================================
package v1
import (
"github.com/gogf/gf/v2/os/gtime"
"github.com/gogf/gf/v2/util/gmeta"
)
// ============================== 操作日志模块 ==============================
// OperLogItem 操作日志行数据
// 用于操作日志分页列表、操作日志列表等场景的日志基础信息
type OperLogItem struct {
Id int64 `json:"id"` // 主键ID
Title string `json:"title"` // 日志标题
Type int `json:"type"` // 类型
TypeText string `json:"typeText"` // 类型文本
Source int `json:"source"` // 来源
SourceText string `json:"sourceText"` // 来源文本
Method string `json:"method"` // 处理方法
RequestMethod string `json:"requestMethod"` // 请求方式
Url string `json:"url"` // 请求地址
Param string `json:"param"` // 请求参数
Result string `json:"result"` // 返回结果
Ip string `json:"ip"` // 客户端IP
Location string `json:"location"` // 归属地
Os string `json:"os"` // 操作系统
Browser string `json:"browser"` // 浏览器
ConsumeTime int64 `json:"consumeTime"` // 耗时(毫秒)
Status int `json:"status"` // 状态:0-正常 1-异常
StatusText string `json:"statusText"` // 状态文本
Error string `json:"error"` // 错误信息
CreateUser string `json:"createUser"` // 操作人
CreateTime *gtime.Time `json:"createTime"` // 创建时间
UpdateTime *gtime.Time `json:"updateTime"` // 更新时间
}
// OperLogPageReq 操作日志分页请求
// 支持关键词、日志标题、类型、状态等条件组合查询
type OperLogPageReq struct {
gmeta.Meta `method:"get" path:"/api/oper/log/page" summary:"操作日志分页" permission:"sys:operLog:page" log:"操作日志-查询分页记录" logType:"query"`
PageReq // 分页基础参数
Keyword string `json:"keyword" dc:"关键词(标题/URL模糊)"` // 关键词,标题或URL模糊匹配
Title string `json:"title" dc:"日志标题模糊"` // 日志标题模糊匹配
Type int `json:"type" dc:"类型(logType)"` // 类型
Status int `json:"status" dc:"状态:0-正常 1-异常"` // 状态
}
// OperLogPageRes 操作日志分页结果
type OperLogPageRes = PageData[OperLogItem]
// OperLogListReq 操作日志列表请求
type OperLogListReq struct {
gmeta.Meta `method:"get" path:"/api/oper/log/list" summary:"操作日志列表" permission:"sys:operLog:list" log:"操作日志-查询列表" logType:"query"`
Keyword string `json:"keyword" dc:"关键词"` // 关键词
Type int `json:"type" dc:"类型"` // 类型
Status int `json:"status" dc:"状态"` // 状态
Limit int `json:"limit" dc:"条数上限"` // 条数上限
}
// OperLogListRes 操作日志列表结果
type OperLogListRes = []OperLogItem
// OperLogDetailReq 操作日志详情请求
type OperLogDetailReq struct {
gmeta.Meta `method:"get" path:"/api/oper/log/detail/:id" summary:"操作日志详情" permission:"sys:operLog:detail" log:"操作日志-查询详情" logType:"query"`
Id int64 `json:"id" v:"required#缺少ID" dc:"日志ID"` // 日志ID
}
// OperLogDetailRes 操作日志详情结果
type OperLogDetailRes struct {
OperLogItem
}
// OperLogDeleteReq 删除操作日志请求
type OperLogDeleteReq struct {
gmeta.Meta `method:"delete" path:"/api/oper/log/delete/:id" summary:"删除操作日志" permission:"sys:operLog:delete" log:"操作日志-删除记录" logType:"delete"`
Id int64 `json:"id" v:"required#缺少ID" dc:"日志ID"` // 日志ID
}
// OperLogDeleteRes 删除操作日志结果
type OperLogDeleteRes struct{}
// OperLogBatchDeleteReq 批量删除操作日志请求
type OperLogBatchDeleteReq struct {
gmeta.Meta `method:"delete" path:"/api/oper/log/batchDelete" summary:"批量删除操作日志" permission:"sys:operLog:batchDelete" log:"操作日志-批量删除记录" logType:"delete"`
Ids []int64 `json:"ids" v:"required#请选择要删除的记录" dc:"日志ID列表"` // 日志ID列表
}
// OperLogBatchDeleteRes 批量删除结果
type OperLogBatchDeleteRes struct{}
+155
View File
@@ -0,0 +1,155 @@
// +======================================================================
// | EasyGoAdmin 企业数字化开发平台 [ 赋能开发者,助力企业发展 ]
// +----------------------------------------------------------------------
// | Copyright (c) 2019-2026 半城风雨团队 版权所有
// +----------------------------------------------------------------------
// | 开源协议: Apache-2.0
// | 重要声明: 未经书面许可,不得移除或修改本框架相关版权标识。
// +----------------------------------------------------------------------
// | 官方网站: https://www.easygoadmin.vip
// +----------------------------------------------------------------------
// | 研发团队: 小蚂蚁云团队 荣誉出品
// +======================================================================
// | 版权和免责声明:
// | 一、知识产权声明
// | 本团队对该软件框架产品(以下简称“本产品”)拥有完整知识产权,包括但不限于商标权、专利权、
// | 著作权、商业秘密等。前述权利均受中华人民共和国及相关国际法律法规保护。未经本团队书面授权,
// | 任何个人或单位不得基于本产品本身申请任何形式的知识产权。
// | 二、使用限制与禁止条款
// | 您理解并同意,禁止将本产品用于以下任何行为:
// | 1. 任何违反中华人民共和国法律法规的用途;
// | 2. 任何侵害他人合法权益(包括但不限于人身权、财产权、知识产权等)的行为;
// | 3. 任何危害国家安全、公共利益及社会道德风尚的行为。
// | 三、责任豁免
// | 因使用本产品而产生的任何损失或法律纠纷(包括但不限于直接损失、间接损失、附带损失、衍生损失
// | 以及因违约、侵权等引发的责任),本团队均不承担任何法律责任。若因违规使用本产品导致任何第三
// | 方提起索赔或行政机关进行调查,您应独立承担全部责任。
// | 四、违约与法律责任
// | 如发现任何违反本声明的行为,本团队有权:
// | 1. 无条件配合公安机关及其他有权机关的调查取证工作;
// | 2. 依法追究相关方的民事责任,并要求赔偿全部损失;
// | 3. 保留进一步采取刑事控告等法律措施的权利。
// | 五、许可范围说明
// | 1、被授权方应视本产品源代码为核心机密信息,负有最高标准的保密与保管义务。禁止以任何形式(包
// | 括但不限于直接或间接的分享、复制、传播、分发、转售、出租、开源、反向工程、反编译、反汇编或通
// | 过网络服务提供给任何第三方)泄露、披露或处置源代码的全部或部分内容。任何未经授权的复制、使用、
// | 传播行为均构成对本团队知识产权的严重侵权,本团队有权依法追究其全部法律责任,并要求赔偿因此造
// | 成的一切经济损失及商誉损害。
// | 2、本产品仅限于公司或个人在法律允许范围内,用于内部且合规的软件产品研发。具体权利义务以《软件
// | 许可协议》附件为准。
// +======================================================================
package v1
import (
"github.com/gogf/gf/v2/util/gmeta"
)
// ============================== 参数模块 ==============================
// ParamItem 参数行数据
// 用于参数分页列表、参数列表等场景的参数基础信息
type ParamItem struct {
Id int64 `json:"id"` // 主键ID
Name string `json:"name"` // 参数名称
Code string `json:"code"` // 参数编码
Value string `json:"value"` // 参数值
Type int `json:"type"` // 类型:1-文本 2-数字 3-开关
TypeText string `json:"typeText"` // 类型文本
Status int `json:"status"` // 状态
StatusText string `json:"statusText"` // 状态文本
Sort int `json:"sort"` // 排序
Note string `json:"note"` // 备注
CreateUser string `json:"createUser"` // 创建人
}
// ParamPageReq 参数分页请求
// 支持关键词、参数名称、类型、状态等条件组合查询
type ParamPageReq struct {
gmeta.Meta `method:"get" path:"/api/param/page" summary:"参数分页" permission:"sys:param:page" log:"参数管理-查询分页记录" logType:"query"`
PageReq // 分页基础参数
Keyword string `json:"keyword" dc:"关键词(名称/编码模糊)"` // 关键词,名称或编码模糊匹配
Name string `json:"name" dc:"参数名称模糊"` // 参数名称模糊匹配
Type int `json:"type" dc:"类型:1-文本 2-数字 3-开关"` // 类型
Status int `json:"status" dc:"状态"` // 状态
}
// ParamPageRes 参数分页结果
type ParamPageRes = PageData[ParamItem]
// ParamListReq 参数列表请求
type ParamListReq struct {
gmeta.Meta `method:"get" path:"/api/param/list" summary:"参数列表" permission:"sys:param:list" log:"参数管理-查询列表" logType:"query"`
Keyword string `json:"keyword" dc:"关键词"` // 关键词
Type int `json:"type" dc:"类型"` // 类型
Status int `json:"status" dc:"状态"` // 状态
}
// ParamListRes 参数列表结果
type ParamListRes = []ParamItem
// ParamDetailReq 参数详情请求
type ParamDetailReq struct {
gmeta.Meta `method:"get" path:"/api/param/detail/:id" summary:"参数详情" permission:"sys:param:detail" log:"参数管理-查询详情" logType:"query"`
Id int64 `json:"id" v:"required#缺少ID" dc:"参数ID"` // 参数ID
}
// ParamDetailRes 参数详情结果
type ParamDetailRes struct {
Id int64 `json:"id"` // 主键ID
Name string `json:"name"` // 参数名称
Code string `json:"code"` // 参数编码
Value string `json:"value"` // 参数值
Type int `json:"type"` // 类型:1-文本 2-数字 3-开关
TypeText string `json:"typeText"` // 类型文本
Status int `json:"status"` // 状态
StatusText string `json:"statusText"` // 状态文本
Sort int `json:"sort"` // 排序
Note string `json:"note"` // 备注
}
// ParamAddReq 新增参数请求
type ParamAddReq struct {
gmeta.Meta `method:"post" path:"/api/param/add" summary:"新增参数" permission:"sys:param:add" log:"参数管理-新增记录" logType:"add"`
Name string `json:"name" v:"required#请输入参数名称" dc:"参数名称"` // 参数名称
Code string `json:"code" v:"required#请输入参数编码" dc:"参数编码"` // 参数编码
Value string `json:"value" dc:"参数值"` // 参数值
Type int `json:"type" dc:"类型:1-文本 2-数字 3-开关"` // 类型
Status int `json:"status" dc:"状态"` // 状态
Sort int `json:"sort" dc:"排序"` // 排序
Note string `json:"note" dc:"备注"` // 备注
}
// ParamUpdateReq 修改参数请求
type ParamUpdateReq struct {
gmeta.Meta `method:"put" path:"/api/param/update" summary:"修改参数" permission:"sys:param:update" log:"参数管理-修改记录" logType:"update"`
Id int64 `json:"id" v:"required#缺少ID" dc:"参数ID"` // 参数ID
Name string `json:"name" v:"required#请输入参数名称" dc:"参数名称"` // 参数名称
Code string `json:"code" v:"required#请输入参数编码" dc:"参数编码"` // 参数编码
Value string `json:"value" dc:"参数值"` // 参数值
Type int `json:"type" dc:"类型"` // 类型
Status int `json:"status" dc:"状态"` // 状态
Sort int `json:"sort" dc:"排序"` // 排序
Note string `json:"note" dc:"备注"` // 备注
}
// ParamUpdateRes 修改参数结果
type ParamUpdateRes struct{}
// ParamDeleteReq 删除参数请求
type ParamDeleteReq struct {
gmeta.Meta `method:"delete" path:"/api/param/delete/:id" summary:"删除参数" permission:"sys:param:delete" log:"参数管理-删除记录" logType:"delete"`
Id int64 `json:"id" v:"required#缺少ID" dc:"参数ID"` // 参数ID
}
// ParamDeleteRes 删除参数结果
type ParamDeleteRes struct{}
// ParamBatchDeleteReq 批量删除参数请求
type ParamBatchDeleteReq struct {
gmeta.Meta `method:"delete" path:"/api/param/batchDelete" summary:"批量删除参数" permission:"sys:param:batchDelete" log:"参数管理-批量删除记录" logType:"delete"`
Ids []int64 `json:"ids" v:"required#请选择要删除的记录" dc:"参数ID列表"` // 参数ID列表
}
// ParamBatchDeleteRes 批量删除结果
type ParamBatchDeleteRes struct{}
+158
View File
@@ -0,0 +1,158 @@
// +======================================================================
// | EasyGoAdmin 企业数字化开发平台 [ 赋能开发者,助力企业发展 ]
// +----------------------------------------------------------------------
// | Copyright (c) 2019-2026 半城风雨团队 版权所有
// +----------------------------------------------------------------------
// | 开源协议: Apache-2.0
// | 重要声明: 未经书面许可,不得移除或修改本框架相关版权标识。
// +----------------------------------------------------------------------
// | 官方网站: https://www.easygoadmin.vip
// +----------------------------------------------------------------------
// | 研发团队: 小蚂蚁云团队 荣誉出品
// +======================================================================
// | 版权和免责声明:
// | 一、知识产权声明
// | 本团队对该软件框架产品(以下简称“本产品”)拥有完整知识产权,包括但不限于商标权、专利权、
// | 著作权、商业秘密等。前述权利均受中华人民共和国及相关国际法律法规保护。未经本团队书面授权,
// | 任何个人或单位不得基于本产品本身申请任何形式的知识产权。
// | 二、使用限制与禁止条款
// | 您理解并同意,禁止将本产品用于以下任何行为:
// | 1. 任何违反中华人民共和国法律法规的用途;
// | 2. 任何侵害他人合法权益(包括但不限于人身权、财产权、知识产权等)的行为;
// | 3. 任何危害国家安全、公共利益及社会道德风尚的行为。
// | 三、责任豁免
// | 因使用本产品而产生的任何损失或法律纠纷(包括但不限于直接损失、间接损失、附带损失、衍生损失
// | 以及因违约、侵权等引发的责任),本团队均不承担任何法律责任。若因违规使用本产品导致任何第三
// | 方提起索赔或行政机关进行调查,您应独立承担全部责任。
// | 四、违约与法律责任
// | 如发现任何违反本声明的行为,本团队有权:
// | 1. 无条件配合公安机关及其他有权机关的调查取证工作;
// | 2. 依法追究相关方的民事责任,并要求赔偿全部损失;
// | 3. 保留进一步采取刑事控告等法律措施的权利。
// | 五、许可范围说明
// | 1、被授权方应视本产品源代码为核心机密信息,负有最高标准的保密与保管义务。禁止以任何形式(包
// | 括但不限于直接或间接的分享、复制、传播、分发、转售、出租、开源、反向工程、反编译、反汇编或通
// | 过网络服务提供给任何第三方)泄露、披露或处置源代码的全部或部分内容。任何未经授权的复制、使用、
// | 传播行为均构成对本团队知识产权的严重侵权,本团队有权依法追究其全部法律责任,并要求赔偿因此造
// | 成的一切经济损失及商誉损害。
// | 2、本产品仅限于公司或个人在法律允许范围内,用于内部且合规的软件产品研发。具体权利义务以《软件
// | 许可协议》附件为准。
// +======================================================================
package v1
import (
"github.com/gogf/gf/v2/os/gtime"
"github.com/gogf/gf/v2/util/gmeta"
)
// ============================== 岗位模块 ==============================
// PositionItem 岗位行数据
// 用于岗位分页列表等场景的岗位基础信息
type PositionItem struct {
Id int64 `json:"id"` // 主键ID
TenantId int `json:"tenantId"` // 租户ID
Name string `json:"name"` // 岗位名称
Status int `json:"status"` // 状态:1-正常 2-禁用
StatusText string `json:"statusText"` // 状态文本
Sort int `json:"sort"` // 排序
UserCount int `json:"userCount"` // 关联用户数
CreateUser string `json:"createUser"` // 创建人
CreateTime *gtime.Time `json:"createTime"` // 创建时间
}
// PositionPageReq 岗位分页请求
// 支持关键词、岗位名称、状态等条件组合查询
type PositionPageReq struct {
gmeta.Meta `method:"get" path:"/api/position/page" summary:"岗位分页" permission:"sys:position:page" log:"岗位管理-查询分页记录" logType:"query"`
PageReq // 分页基础参数
Keyword string `json:"keyword" dc:"关键词"` // 关键词
Name string `json:"name" dc:"岗位名称模糊"` // 岗位名称模糊匹配
Status int `json:"status" dc:"状态:1-正常 2-禁用"` // 状态
}
// PositionPageRes 岗位分页结果
type PositionPageRes = PageData[PositionItem]
// PositionListReq 岗位全量列表请求
type PositionListReq struct {
gmeta.Meta `method:"get" path:"/api/position/list" summary:"岗位列表" permission:"sys:position:list" log:"岗位管理-查询列表" logType:"query"`
Keyword string `json:"keyword" dc:"关键词"` // 关键词
Status int `json:"status" dc:"状态"` // 状态
}
// PositionListItem 岗位列表行数据
// 精简结构,仅包含列表展示所需字段
type PositionListItem struct {
Id int64 `json:"id"` // 主键ID
Name string `json:"name"` // 岗位名称
Status int `json:"status"` // 状态:1-正常 2-禁用
Sort int `json:"sort"` // 排序
}
// PositionListRes 岗位列表结果
type PositionListRes = []PositionListItem
// PositionDetailReq 岗位详情请求
type PositionDetailReq struct {
gmeta.Meta `method:"get" path:"/api/position/detail/:id" summary:"岗位详情" permission:"sys:position:detail" log:"岗位管理-查询详情" logType:"query"`
Id int64 `json:"id" v:"required#缺少ID" dc:"岗位ID"` // 岗位ID
}
// PositionDetailRes 岗位详情结果
type PositionDetailRes struct {
Id int64 `json:"id"` // 主键ID
Name string `json:"name"` // 岗位名称
Status int `json:"status"` // 状态:1-正常 2-禁用
StatusText string `json:"statusText"` // 状态文本
Sort int `json:"sort"` // 排序
}
// PositionAddReq 新增岗位请求
type PositionAddReq struct {
gmeta.Meta `method:"post" path:"/api/position/add" summary:"新增岗位" permission:"sys:position:add" log:"岗位管理-新增记录" logType:"add"`
Name string `json:"name" v:"required#请输入岗位名称" dc:"岗位名称"` // 岗位名称
Status int `json:"status" dc:"状态:1-正常 2-禁用"` // 状态
Sort int `json:"sort" dc:"排序"` // 排序
}
// PositionUpdateReq 修改岗位请求
type PositionUpdateReq struct {
gmeta.Meta `method:"put" path:"/api/position/update" summary:"修改岗位" permission:"sys:position:update" log:"岗位管理-修改记录" logType:"update"`
Id int64 `json:"id" v:"required#缺少ID" dc:"岗位ID"` // 岗位ID
Name string `json:"name" v:"required#请输入岗位名称" dc:"岗位名称"` // 岗位名称
Status int `json:"status" dc:"状态"` // 状态
Sort int `json:"sort" dc:"排序"` // 排序
}
// PositionUpdateRes 修改岗位结果
type PositionUpdateRes struct{}
// PositionStatusReq 岗位状态请求
type PositionStatusReq struct {
gmeta.Meta `method:"put" path:"/api/position/status" summary:"岗位状态" permission:"sys:position:status" log:"岗位管理-设置状态" logType:"update"`
Id int64 `json:"id" v:"required#缺少ID" dc:"岗位ID"` // 岗位ID
Status int `json:"status" v:"required#缺少状态" dc:"状态:1-正常 2-禁用"` // 状态
}
// PositionStatusRes 岗位状态结果
type PositionStatusRes struct{}
// PositionDeleteReq 删除岗位请求
type PositionDeleteReq struct {
gmeta.Meta `method:"delete" path:"/api/position/delete/:id" summary:"删除岗位" permission:"sys:position:delete" log:"岗位管理-删除记录" logType:"delete"`
Id int64 `json:"id" v:"required#缺少ID" dc:"岗位ID"` // 岗位ID
}
// PositionDeleteRes 删除岗位结果
type PositionDeleteRes struct{}
// PositionBatchDeleteReq 批量删除岗位请求
type PositionBatchDeleteReq struct {
gmeta.Meta `method:"delete" path:"/api/position/batchDelete" summary:"批量删除岗位" permission:"sys:position:batchDelete" log:"岗位管理-批量删除记录" logType:"delete"`
Ids []int64 `json:"ids" v:"required#请选择要删除的记录" dc:"岗位ID列表"` // 岗位ID列表
}
// PositionBatchDeleteRes 批量删除结果
type PositionBatchDeleteRes struct{}
+193
View File
@@ -0,0 +1,193 @@
// +======================================================================
// | EasyGoAdmin 企业数字化开发平台 [ 赋能开发者,助力企业发展 ]
// +----------------------------------------------------------------------
// | Copyright (c) 2019-2026 半城风雨团队 版权所有
// +----------------------------------------------------------------------
// | 开源协议: Apache-2.0
// | 重要声明: 未经书面许可,不得移除或修改本框架相关版权标识。
// +----------------------------------------------------------------------
// | 官方网站: https://www.easygoadmin.vip
// +----------------------------------------------------------------------
// | 研发团队: 小蚂蚁云团队 荣誉出品
// +======================================================================
// | 版权和免责声明:
// | 一、知识产权声明
// | 本团队对该软件框架产品(以下简称“本产品”)拥有完整知识产权,包括但不限于商标权、专利权、
// | 著作权、商业秘密等。前述权利均受中华人民共和国及相关国际法律法规保护。未经本团队书面授权,
// | 任何个人或单位不得基于本产品本身申请任何形式的知识产权。
// | 二、使用限制与禁止条款
// | 您理解并同意,禁止将本产品用于以下任何行为:
// | 1. 任何违反中华人民共和国法律法规的用途;
// | 2. 任何侵害他人合法权益(包括但不限于人身权、财产权、知识产权等)的行为;
// | 3. 任何危害国家安全、公共利益及社会道德风尚的行为。
// | 三、责任豁免
// | 因使用本产品而产生的任何损失或法律纠纷(包括但不限于直接损失、间接损失、附带损失、衍生损失
// | 以及因违约、侵权等引发的责任),本团队均不承担任何法律责任。若因违规使用本产品导致任何第三
// | 方提起索赔或行政机关进行调查,您应独立承担全部责任。
// | 四、违约与法律责任
// | 如发现任何违反本声明的行为,本团队有权:
// | 1. 无条件配合公安机关及其他有权机关的调查取证工作;
// | 2. 依法追究相关方的民事责任,并要求赔偿全部损失;
// | 3. 保留进一步采取刑事控告等法律措施的权利。
// | 五、许可范围说明
// | 1、被授权方应视本产品源代码为核心机密信息,负有最高标准的保密与保管义务。禁止以任何形式(包
// | 括但不限于直接或间接的分享、复制、传播、分发、转售、出租、开源、反向工程、反编译、反汇编或通
// | 过网络服务提供给任何第三方)泄露、披露或处置源代码的全部或部分内容。任何未经授权的复制、使用、
// | 传播行为均构成对本团队知识产权的严重侵权,本团队有权依法追究其全部法律责任,并要求赔偿因此造
// | 成的一切经济损失及商誉损害。
// | 2、本产品仅限于公司或个人在法律允许范围内,用于内部且合规的软件产品研发。具体权利义务以《软件
// | 许可协议》附件为准。
// +======================================================================
package v1
import (
"github.com/gogf/gf/v2/os/gtime"
"github.com/gogf/gf/v2/util/gmeta"
)
// ============================== 角色模块 ==============================
// RolePageReq 角色分页请求
// 支持关键词、角色名称等条件组合查询
type RolePageReq struct {
gmeta.Meta `method:"get" path:"/api/role/page" summary:"角色分页" permission:"sys:role:page" log:"角色管理-查询分页记录" logType:"query"`
PageReq // 分页基础参数
Keyword string `json:"keyword" dc:"关键词(名称/编码模糊)"` // 关键词,名称或编码模糊匹配
Name string `json:"name" dc:"角色名称模糊"` // 角色名称模糊匹配
}
// RoleItem 角色行数据
// 用于角色分页列表等场景的角色基础信息
type RoleItem struct {
Id int64 `json:"id"` // 主键ID
TenantId int `json:"tenantId"` // 租户ID
Name string `json:"name"` // 角色名称
Code string `json:"code"` // 角色编码
DataScope int `json:"dataScope"` // 数据范围:1-全部 2-本部门及以下 3-本部门 4-仅本人
DataScopeText string `json:"dataScopeText"` // 数据范围文案(字典驱动)
Sort int `json:"sort"` // 排序
Note string `json:"note"` // 备注
UserCount int `json:"userCount"` // 关联用户数
CreateUser string `json:"createUser"` // 创建人
CreateTime *gtime.Time `json:"createTime"` // 创建时间
}
// RolePageRes 角色分页结果
type RolePageRes = PageData[RoleItem]
// RoleListReq 角色全量列表请求
type RoleListReq struct {
gmeta.Meta `method:"get" path:"/api/role/list" summary:"角色列表" permission:"sys:role:list" log:"角色管理-查询列表" logType:"query"`
Keyword string `json:"keyword" dc:"关键词"` // 关键词
}
// RoleListItem 角色列表行数据
// 精简结构,仅包含列表展示所需字段
type RoleListItem struct {
Id int64 `json:"id"` // 主键ID
Name string `json:"name"` // 角色名称
Code string `json:"code"` // 角色编码
Sort int `json:"sort"` // 排序
}
// RoleListRes 角色列表结果
type RoleListRes = []RoleListItem
// RoleDetailReq 角色详情请求
type RoleDetailReq struct {
gmeta.Meta `method:"get" path:"/api/role/detail/:id" summary:"角色详情" permission:"sys:role:detail" log:"角色管理-查询详情" logType:"query"`
Id int64 `json:"id" v:"required#缺少ID" dc:"角色ID"` // 角色ID
}
// RoleDetailRes 角色详情结果
type RoleDetailRes struct {
Id int64 `json:"id"` // 主键ID
TenantId int `json:"tenantId"` // 租户ID
Name string `json:"name"` // 角色名称
Code string `json:"code"` // 角色编码
DataScope int `json:"dataScope"` // 数据范围:1-全部 2-本部门及以下 3-本部门 4-仅本人
Sort int `json:"sort"` // 排序
Note string `json:"note"` // 备注
}
// RoleAddReq 新增角色请求
type RoleAddReq struct {
gmeta.Meta `method:"post" path:"/api/role/add" summary:"新增角色" permission:"sys:role:add" log:"角色管理-新增记录" logType:"add"`
Name string `json:"name" v:"required#请输入角色名称" dc:"角色名称"` // 角色名称
Code string `json:"code" v:"required#请输入角色编码|length:2,30#编码长度需在2~30位" dc:"角色编码"` // 角色编码
DataScope int `json:"dataScope" v:"in:1,2,3,4#数据范围不合法" d:"1" dc:"数据范围:1-全部 2-本部门及以下 3-本部门 4-仅本人"` // 数据范围
Sort int `json:"sort" dc:"排序"` // 排序
Note string `json:"note" dc:"备注"` // 备注
}
// RoleUpdateReq 修改角色请求
type RoleUpdateReq struct {
gmeta.Meta `method:"put" path:"/api/role/update" summary:"修改角色" permission:"sys:role:update" log:"角色管理-修改记录" logType:"update"`
Id int64 `json:"id" v:"required#缺少ID" dc:"角色ID"` // 角色ID
Name string `json:"name" v:"required#请输入角色名称" dc:"角色名称"` // 角色名称
Code string `json:"code" dc:"角色编码(不允许修改)"` // 角色编码,不允许修改
DataScope int `json:"dataScope" v:"in:1,2,3,4#数据范围不合法" dc:"数据范围:1-全部 2-本部门及以下 3-本部门 4-仅本人"` // 数据范围
Sort int `json:"sort" dc:"排序"` // 排序
Note string `json:"note" dc:"备注"` // 备注
}
// RoleUpdateRes 修改角色结果
type RoleUpdateRes struct{}
// RoleDeleteReq 删除角色请求
type RoleDeleteReq struct {
gmeta.Meta `method:"delete" path:"/api/role/delete/:id" summary:"删除角色" permission:"sys:role:delete" log:"角色管理-删除记录" logType:"delete"`
Id int64 `json:"id" v:"required#缺少ID" dc:"角色ID"` // 角色ID
}
// RoleDeleteRes 删除角色结果
type RoleDeleteRes struct{}
// RoleBatchDeleteReq 批量删除角色请求
type RoleBatchDeleteReq struct {
gmeta.Meta `method:"delete" path:"/api/role/batchDelete" summary:"批量删除角色" permission:"sys:role:batchDelete" log:"角色管理-批量删除记录" logType:"delete"`
Ids []int64 `json:"ids" v:"required#请选择要删除的记录" dc:"角色ID列表"` // 角色ID列表
}
// RoleBatchDeleteRes 批量删除结果
type RoleBatchDeleteRes struct{}
// RoleMenuListReq 角色菜单权限请求
// 返回菜单平铺列表并附带勾选状态
type RoleMenuListReq struct {
gmeta.Meta `method:"get" path:"/api/role/menu/list/:roleId" summary:"查询角色菜单权限" permission:"sys:role:getPermission" log:"角色管理-查询角色菜单" logType:"query"`
RoleId int64 `json:"roleId" v:"required#缺少角色ID" dc:"角色ID"` // 角色ID
}
// RoleMenuItem 菜单勾选行数据
// 供前端构建树形结构并依据 checked 标记勾选状态
type RoleMenuItem struct {
Id int64 `json:"id"` // 菜单ID
ParentId int `json:"parentId"` // 上级菜单ID
Name string `json:"name"` // 菜单名称
Icon string `json:"icon"` // 图标
Icon2 string `json:"icon2"` // 菜单图标2
Path string `json:"path"` // 路由路径
Component string `json:"component"` // 前端组件路径
Permission string `json:"permission"` // 权限节点标识
Target int `json:"target"` // 打开方式
Type int `json:"type"` // 类型:0-菜单 1-权限节点
Status int `json:"status"` // 状态
Hide int `json:"hide"` // 是否可见
Sort int `json:"sort"` // 排序
Checked bool `json:"checked"` // 是否已勾选
}
// RoleMenuListRes 角色菜单勾选列表结果(平铺)
type RoleMenuListRes = []RoleMenuItem
// RoleSavePermissionReq 保存角色菜单权限请求
type RoleSavePermissionReq struct {
gmeta.Meta `method:"post" path:"/api/role/menu/save" summary:"保存角色菜单权限" permission:"sys:role:savePermission" log:"角色管理-保存权限" logType:"update"`
RoleId int64 `json:"roleId" v:"required#缺少角色ID" dc:"角色ID"` // 角色ID
MenuIds []int64 `json:"menuIds" dc:"菜单ID列表(含半选父级)"` // 菜单ID列表
}
// RoleSavePermissionRes 保存角色菜单权限结果
type RoleSavePermissionRes struct{}
+113
View File
@@ -0,0 +1,113 @@
// +======================================================================
// | EasyGoAdmin 企业数字化开发平台 [ 赋能开发者,助力企业发展 ]
// +----------------------------------------------------------------------
// | Copyright (c) 2019-2026 半城风雨团队 版权所有
// +----------------------------------------------------------------------
// | 开源协议: Apache-2.0
// | 重要声明: 未经书面许可,不得移除或修改本框架相关版权标识。
// +----------------------------------------------------------------------
// | 官方网站: https://www.easygoadmin.vip
// +----------------------------------------------------------------------
// | 研发团队: 小蚂蚁云团队 荣誉出品
// +======================================================================
// | 版权和免责声明:
// | 一、知识产权声明
// | 本团队对该软件框架产品(以下简称“本产品”)拥有完整知识产权,包括但不限于商标权、专利权、
// | 著作权、商业秘密等。前述权利均受中华人民共和国及相关国际法律法规保护。未经本团队书面授权,
// | 任何个人或单位不得基于本产品本身申请任何形式的知识产权。
// | 二、使用限制与禁止条款
// | 您理解并同意,禁止将本产品用于以下任何行为:
// | 1. 任何违反中华人民共和国法律法规的用途;
// | 2. 任何侵害他人合法权益(包括但不限于人身权、财产权、知识产权等)的行为;
// | 3. 任何危害国家安全、公共利益及社会道德风尚的行为。
// | 三、责任豁免
// | 因使用本产品而产生的任何损失或法律纠纷(包括但不限于直接损失、间接损失、附带损失、衍生损失
// | 以及因违约、侵权等引发的责任),本团队均不承担任何法律责任。若因违规使用本产品导致任何第三
// | 方提起索赔或行政机关进行调查,您应独立承担全部责任。
// | 四、违约与法律责任
// | 如发现任何违反本声明的行为,本团队有权:
// | 1. 无条件配合公安机关及其他有权机关的调查取证工作;
// | 2. 依法追究相关方的民事责任,并要求赔偿全部损失;
// | 3. 保留进一步采取刑事控告等法律措施的权利。
// | 五、许可范围说明
// | 1、被授权方应视本产品源代码为核心机密信息,负有最高标准的保密与保管义务。禁止以任何形式(包
// | 括但不限于直接或间接的分享、复制、传播、分发、转售、出租、开源、反向工程、反编译、反汇编或通
// | 过网络服务提供给任何第三方)泄露、披露或处置源代码的全部或部分内容。任何未经授权的复制、使用、
// | 传播行为均构成对本团队知识产权的严重侵权,本团队有权依法追究其全部法律责任,并要求赔偿因此造
// | 成的一切经济损失及商誉损害。
// | 2、本产品仅限于公司或个人在法律允许范围内,用于内部且合规的软件产品研发。具体权利义务以《软件
// | 许可协议》附件为准。
// +======================================================================
package v1
import (
"github.com/gogf/gf/v2/util/gmeta"
)
// ============================== 服务器监控模块 ==============================
// ServerInfoReq 查询服务器信息请求
type ServerInfoReq struct {
gmeta.Meta `method:"get" path:"/api/server/info" summary:"服务器监控信息" log:"服务器监控-查询信息" logType:"query"`
}
// ServerOsInfo 操作系统与进程信息
type ServerOsInfo struct {
Hostname string `json:"hostname"` // 主机名
GoVersion string `json:"goVersion"` // Go 运行时版本
Arch string `json:"arch"` // 架构
NumCPU int `json:"numCpu"` // CPU 核数
Goroutines int `json:"goroutines"` // 协程数
Uptime string `json:"uptime"` // 进程运行时长
}
// ServerMemInfo 进程内存信息(MB)
type ServerMemInfo struct {
AllocMB float64 `json:"allocMb"` // 已分配
TotalAllocMB float64 `json:"totalAllocMb"` // 累计分配
SysMB float64 `json:"sysMb"` // 系统占用
HeapAllocMB float64 `json:"heapAllocMb"` // 堆已分配
HeapSysMB float64 `json:"heapSysMb"` // 堆系统占用
HeapObjects uint64 `json:"heapObjects"` // 堆对象数
GCCycles uint32 `json:"gcCycles"` // GC 次数
}
// ServerDiskInfo 磁盘分区信息
type ServerDiskInfo struct {
Path string `json:"path"` // 路径(工作目录所在分区)
TotalGB float64 `json:"totalGb"` // 总容量(GB)
FreeGB float64 `json:"freeGb"` // 可用容量(GB)
UsedPercent float64 `json:"usedPercent"` // 使用率(%)
}
// ServerDbInfo 数据库连通信息
type ServerDbInfo struct {
Version string `json:"version"` // 数据库版本
PingMs int64 `json:"pingMs"` // 连通耗时(毫秒)
}
// ServerCacheBrief 缓存连通信息
type ServerCacheBrief struct {
Mode string `json:"mode"` // redis / memory
Connected bool `json:"connected"` // 是否连通
}
// ServerSchedulerInfo 定时任务调度器状态
type ServerSchedulerInfo struct {
Enabled bool `json:"enabled"` // 调度器是否已启动
Healthy bool `json:"healthy"` // 是否健康(挂载数不小于应挂载数)
Mounted int `json:"mounted"` // 已挂载任务数
Expected int `json:"expected"` // 应挂载任务数(status=1)
StartTime string `json:"startTime"` // 调度器启动时间
}
// ServerInfoRes 服务器监控信息结果
type ServerInfoRes struct {
Server ServerOsInfo `json:"server"` // 操作系统与进程
Mem ServerMemInfo `json:"mem"` // 内存
Disk []ServerDiskInfo `json:"disk"` // 磁盘
Db ServerDbInfo `json:"db"` // 数据库
Cache ServerCacheBrief `json:"cache"` // 缓存
Scheduler ServerSchedulerInfo `json:"scheduler"` // 定时任务调度器
}
+236
View File
@@ -0,0 +1,236 @@
// +======================================================================
// | EasyGoAdmin 企业数字化开发平台 [ 赋能开发者,助力企业发展 ]
// +----------------------------------------------------------------------
// | Copyright (c) 2019-2026 半城风雨团队 版权所有
// +----------------------------------------------------------------------
// | 开源协议: Apache-2.0
// | 重要声明: 未经书面许可,不得移除或修改本框架相关版权标识。
// +----------------------------------------------------------------------
// | 官方网站: https://www.easygoadmin.vip
// +----------------------------------------------------------------------
// | 研发团队: 小蚂蚁云团队 荣誉出品
// +======================================================================
// | 版权和免责声明:
// | 一、知识产权声明
// | 本团队对该软件框架产品(以下简称“本产品”)拥有完整知识产权,包括但不限于商标权、专利权、
// | 著作权、商业秘密等。前述权利均受中华人民共和国及相关国际法律法规保护。未经本团队书面授权,
// | 任何个人或单位不得基于本产品本身申请任何形式的知识产权。
// | 二、使用限制与禁止条款
// | 您理解并同意,禁止将本产品用于以下任何行为:
// | 1. 任何违反中华人民共和国法律法规的用途;
// | 2. 任何侵害他人合法权益(包括但不限于人身权、财产权、知识产权等)的行为;
// | 3. 任何危害国家安全、公共利益及社会道德风尚的行为。
// | 三、责任豁免
// | 因使用本产品而产生的任何损失或法律纠纷(包括但不限于直接损失、间接损失、附带损失、衍生损失
// | 以及因违约、侵权等引发的责任),本团队均不承担任何法律责任。若因违规使用本产品导致任何第三
// | 方提起索赔或行政机关进行调查,您应独立承担全部责任。
// | 四、违约与法律责任
// | 如发现任何违反本声明的行为,本团队有权:
// | 1. 无条件配合公安机关及其他有权机关的调查取证工作;
// | 2. 依法追究相关方的民事责任,并要求赔偿全部损失;
// | 3. 保留进一步采取刑事控告等法律措施的权利。
// | 五、许可范围说明
// | 1、被授权方应视本产品源代码为核心机密信息,负有最高标准的保密与保管义务。禁止以任何形式(包
// | 括但不限于直接或间接的分享、复制、传播、分发、转售、出租、开源、反向工程、反编译、反汇编或通
// | 过网络服务提供给任何第三方)泄露、披露或处置源代码的全部或部分内容。任何未经授权的复制、使用、
// | 传播行为均构成对本团队知识产权的严重侵权,本团队有权依法追究其全部法律责任,并要求赔偿因此造
// | 成的一切经济损失及商誉损害。
// | 2、本产品仅限于公司或个人在法律允许范围内,用于内部且合规的软件产品研发。具体权利义务以《软件
// | 许可协议》附件为准。
// +======================================================================
package v1
import (
"github.com/gogf/gf/v2/os/gtime"
"github.com/gogf/gf/v2/util/gmeta"
)
// ============================== 租户模块 ==============================
// TenantItem 租户行数据
// 用于租户分页列表等场景的租户基础信息
type TenantItem struct {
Id int64 `json:"id"` // 主键ID
Name string `json:"name"` // 租户名称
Code string `json:"code"` // 租户编码
Contact string `json:"contact"` // 联系人
Mobile string `json:"mobile"` // 联系电话
Email string `json:"email"` // 邮箱
Address string `json:"address"` // 地址
Logo string `json:"logo"` // Logo
Status int `json:"status"` // 状态:1-正常 2-禁用
StatusText string `json:"statusText"` // 状态文本
ExpireTime *gtime.Time `json:"expireTime"` // 过期时间
MaxUserNum int `json:"maxUserNum"` // 用户数上限(0=不限)
UserCount int `json:"userCount"` // 已用用户数
Note string `json:"note"` // 备注
CreateUser string `json:"createUser"` // 创建人
CreateTime *gtime.Time `json:"createTime"` // 创建时间
}
// TenantPageReq 租户分页请求
// 支持关键词、租户名称、租户编码、状态等条件组合查询
type TenantPageReq struct {
gmeta.Meta `method:"get" path:"/api/tenant/page" summary:"租户分页" permission:"sys:tenant:page" log:"租户管理-查询分页记录" logType:"query"`
PageReq // 分页基础参数
Keyword string `json:"keyword" dc:"关键词(名称/编码/联系人模糊)"` // 关键词,名称、编码或联系人模糊匹配
Name string `json:"name" dc:"租户名称模糊"` // 租户名称模糊匹配
Code string `json:"code" dc:"租户编码模糊"` // 租户编码模糊匹配
Status int `json:"status" dc:"状态:1-正常 2-禁用"` // 状态
}
// TenantPageRes 租户分页结果
type TenantPageRes = PageData[TenantItem]
// TenantListReq 租户全量列表请求
type TenantListReq struct {
gmeta.Meta `method:"get" path:"/api/tenant/list" summary:"租户列表" permission:"sys:tenant:list" log:"租户管理-查询列表" logType:"query"`
Keyword string `json:"keyword" dc:"关键词"` // 关键词
Status int `json:"status" dc:"状态"` // 状态
}
// TenantListItem 租户列表行数据
// 精简结构,仅包含列表展示所需字段
type TenantListItem struct {
Id int64 `json:"id"` // 主键ID
Name string `json:"name"` // 租户名称
Code string `json:"code"` // 租户编码
Status int `json:"status"` // 状态:1-正常 2-禁用
}
// TenantListRes 租户列表结果
type TenantListRes = []TenantListItem
// TenantDetailReq 租户详情请求
type TenantDetailReq struct {
gmeta.Meta `method:"get" path:"/api/tenant/detail/:id" summary:"租户详情" permission:"sys:tenant:detail" log:"租户管理-查询详情" logType:"query"`
Id int64 `json:"id" v:"required#缺少ID" dc:"租户ID"` // 租户ID
}
// TenantDetailRes 租户详情结果
type TenantDetailRes struct {
Id int64 `json:"id"` // 主键ID
Name string `json:"name"` // 租户名称
Code string `json:"code"` // 租户编码
Contact string `json:"contact"` // 联系人
Mobile string `json:"mobile"` // 联系电话
Email string `json:"email"` // 邮箱
Address string `json:"address"` // 地址
Logo string `json:"logo"` // Logo
Status int `json:"status"` // 状态:1-正常 2-禁用
StatusText string `json:"statusText"` // 状态文本
ExpireTime *gtime.Time `json:"expireTime"` // 过期时间
MaxUserNum int `json:"maxUserNum"` // 用户数上限
Note string `json:"note"` // 备注
}
// TenantAddReq 新增租户请求
type TenantAddReq struct {
gmeta.Meta `method:"post" path:"/api/tenant/add" summary:"新增租户" permission:"sys:tenant:add" log:"租户管理-新增记录" logType:"add"`
Name string `json:"name" v:"required#请输入租户名称" dc:"租户名称"` // 租户名称
Code string `json:"code" dc:"租户编码(留空自动生成)"` // 租户编码
Contact string `json:"contact" dc:"联系人"` // 联系人
Mobile string `json:"mobile" v:"phone#手机号格式不正确" dc:"联系电话"` // 联系电话
Email string `json:"email" v:"email#邮箱格式不正确" dc:"邮箱"` // 邮箱
Address string `json:"address" dc:"地址"` // 地址
Logo string `json:"logo" dc:"Logo"` // Logo
Status int `json:"status" dc:"状态:1-正常 2-禁用"` // 状态
ExpireTime string `json:"expireTime" dc:"过期时间(Y-m-d H:i:s,留空永久)"` // 过期时间
MaxUserNum int `json:"maxUserNum" dc:"用户数上限(0=不限)"` // 用户数上限
Note string `json:"note" dc:"备注"` // 备注
}
// TenantUpdateReq 修改租户请求
type TenantUpdateReq struct {
gmeta.Meta `method:"put" path:"/api/tenant/update" summary:"修改租户" permission:"sys:tenant:update" log:"租户管理-修改记录" logType:"update"`
Id int64 `json:"id" v:"required#缺少ID" dc:"租户ID"` // 租户ID
Name string `json:"name" v:"required#请输入租户名称" dc:"租户名称"` // 租户名称
Code string `json:"code" dc:"租户编码(不允许修改)"` // 租户编码,不允许修改
Contact string `json:"contact" dc:"联系人"` // 联系人
Mobile string `json:"mobile" v:"phone#手机号格式不正确" dc:"联系电话"` // 联系电话
Email string `json:"email" v:"email#邮箱格式不正确" dc:"邮箱"` // 邮箱
Address string `json:"address" dc:"地址"` // 地址
Logo string `json:"logo" dc:"Logo"` // Logo
Status int `json:"status" dc:"状态"` // 状态
ExpireTime string `json:"expireTime" dc:"过期时间"` // 过期时间
MaxUserNum int `json:"maxUserNum" dc:"用户数上限"` // 用户数上限
Note string `json:"note" dc:"备注"` // 备注
}
// TenantUpdateRes 修改租户结果
type TenantUpdateRes struct{}
// TenantStatusReq 租户状态请求
type TenantStatusReq struct {
gmeta.Meta `method:"put" path:"/api/tenant/status" summary:"租户状态" permission:"sys:tenant:status" log:"租户管理-设置状态" logType:"update"`
Id int64 `json:"id" v:"required#缺少ID" dc:"租户ID"` // 租户ID
Status int `json:"status" v:"required#缺少状态" dc:"状态:1-正常 2-禁用"` // 状态
}
// TenantStatusRes 租户状态结果
type TenantStatusRes struct{}
// TenantDeleteReq 删除租户请求
type TenantDeleteReq struct {
gmeta.Meta `method:"delete" path:"/api/tenant/delete/:id" summary:"删除租户" permission:"sys:tenant:delete" log:"租户管理-删除记录" logType:"delete"`
Id int64 `json:"id" v:"required#缺少ID" dc:"租户ID"` // 租户ID
}
// TenantDeleteRes 删除租户结果
type TenantDeleteRes struct{}
// TenantBatchDeleteReq 批量删除租户请求
type TenantBatchDeleteReq struct {
gmeta.Meta `method:"delete" path:"/api/tenant/batchDelete" summary:"批量删除租户" permission:"sys:tenant:batchDelete" log:"租户管理-批量删除记录" logType:"delete"`
Ids []int64 `json:"ids" v:"required#请选择要删除的记录" dc:"租户ID列表"` // 租户ID列表
}
// TenantBatchDeleteRes 批量删除结果
type TenantBatchDeleteRes struct{}
// TenantAccountReq 创建租户账号请求
// 同时创建租户及其初始管理员账号
type TenantAccountReq struct {
gmeta.Meta `method:"post" path:"/api/tenant/account" summary:"创建租户账号" permission:"sys:tenant:add" log:"租户管理-创建租户账号" logType:"add"`
Name string `json:"name" v:"required#请输入租户名称" dc:"租户名称"` // 租户名称
Contact string `json:"contact" dc:"联系人"` // 联系人
Mobile string `json:"mobile" v:"phone#手机号格式不正确" dc:"联系电话"` // 联系电话
Email string `json:"email" v:"email#邮箱格式不正确" dc:"邮箱"` // 邮箱
Address string `json:"address" dc:"地址"` // 地址
ExpireTime string `json:"expireTime" dc:"过期时间"` // 过期时间
MaxUserNum int `json:"maxUserNum" dc:"用户数上限"` // 用户数上限
Note string `json:"note" dc:"备注"` // 备注
Username string `json:"username" v:"required#请输入管理员账号|length:2,30#账号长度需在2~30位" dc:"初始管理员账号"` // 初始管理员账号
Password string `json:"password" v:"required#请输入密码|length:6,32#密码长度需在6~32位" dc:"初始管理员密码"` // 初始管理员密码
Realname string `json:"realname" dc:"管理员姓名"` // 管理员姓名
}
// TenantAccountRes 创建租户账号结果
type TenantAccountRes struct {
TenantId int64 `json:"tenantId"` // 租户ID
Code string `json:"code"` // 租户编码
UserId int64 `json:"userId"` // 管理员用户ID
}
// TenantUsersReq 查询租户用户请求
type TenantUsersReq struct {
gmeta.Meta `method:"get" path:"/api/tenant/users/:tenantId" summary:"查询租户用户" permission:"sys:tenant:users" log:"租户管理-查询租户用户" logType:"query"`
TenantId int64 `json:"tenantId" v:"required#缺少租户ID" dc:"租户ID"` // 租户ID
}
// TenantUserItem 租户用户行数据
// 精简结构,仅包含租户用户列表展示所需字段
type TenantUserItem struct {
Id int64 `json:"id"` // 用户ID
Username string `json:"username"` // 用户名
Realname string `json:"realname"` // 真实姓名
Mobile string `json:"mobile"` // 手机号
Email string `json:"email"` // 邮箱
Status int `json:"status"` // 状态
}
// TenantUsersRes 查询租户用户结果
type TenantUsersRes struct {
List []TenantUserItem `json:"list"` // 租户用户列表
}
+81
View File
@@ -0,0 +1,81 @@
// +======================================================================
// | EasyGoAdmin 企业数字化开发平台 [ 赋能开发者,助力企业发展 ]
// +----------------------------------------------------------------------
// | Copyright (c) 2019-2026 半城风雨团队 版权所有
// +----------------------------------------------------------------------
// | 开源协议: Apache-2.0
// | 重要声明: 未经书面许可,不得移除或修改本框架相关版权标识。
// +----------------------------------------------------------------------
// | 官方网站: https://www.easygoadmin.vip
// +----------------------------------------------------------------------
// | 研发团队: 小蚂蚁云团队 荣誉出品
// +======================================================================
// | 版权和免责声明:
// | 一、知识产权声明
// | 本团队对该软件框架产品(以下简称“本产品”)拥有完整知识产权,包括但不限于商标权、专利权、
// | 著作权、商业秘密等。前述权利均受中华人民共和国及相关国际法律法规保护。未经本团队书面授权,
// | 任何个人或单位不得基于本产品本身申请任何形式的知识产权。
// | 二、使用限制与禁止条款
// | 您理解并同意,禁止将本产品用于以下任何行为:
// | 1. 任何违反中华人民共和国法律法规的用途;
// | 2. 任何侵害他人合法权益(包括但不限于人身权、财产权、知识产权等)的行为;
// | 3. 任何危害国家安全、公共利益及社会道德风尚的行为。
// | 三、责任豁免
// | 因使用本产品而产生的任何损失或法律纠纷(包括但不限于直接损失、间接损失、附带损失、衍生损失
// | 以及因违约、侵权等引发的责任),本团队均不承担任何法律责任。若因违规使用本产品导致任何第三
// | 方提起索赔或行政机关进行调查,您应独立承担全部责任。
// | 四、违约与法律责任
// | 如发现任何违反本声明的行为,本团队有权:
// | 1. 无条件配合公安机关及其他有权机关的调查取证工作;
// | 2. 依法追究相关方的民事责任,并要求赔偿全部损失;
// | 3. 保留进一步采取刑事控告等法律措施的权利。
// | 五、许可范围说明
// | 1、被授权方应视本产品源代码为核心机密信息,负有最高标准的保密与保管义务。禁止以任何形式(包
// | 括但不限于直接或间接的分享、复制、传播、分发、转售、出租、开源、反向工程、反编译、反汇编或通
// | 过网络服务提供给任何第三方)泄露、披露或处置源代码的全部或部分内容。任何未经授权的复制、使用、
// | 传播行为均构成对本团队知识产权的严重侵权,本团队有权依法追究其全部法律责任,并要求赔偿因此造
// | 成的一切经济损失及商誉损害。
// | 2、本产品仅限于公司或个人在法律允许范围内,用于内部且合规的软件产品研发。具体权利义务以《软件
// | 许可协议》附件为准。
// +======================================================================
package v1
import (
"github.com/gogf/gf/v2/net/ghttp"
"github.com/gogf/gf/v2/util/gmeta"
)
// ============================== 文件上传模块(存储根目录见 file.uploadDir) ==============================
// UploadFileReq 上传文件请求
// 以 multipart 表单方式提交单个文件
type UploadFileReq struct {
gmeta.Meta `method:"post" path:"/api/upload/uploadFile" summary:"上传文件" permission:"sys:upload:file" log:"文件上传-上传文件" logType:"add"`
File *ghttp.UploadFile `p:"file" v:"required#请选择文件" dc:"上传文件"` // 上传文件
Type string `json:"type" dc:"类型:images/files/video(前端约定,可空)"` // 文件类型
}
// UploadFileRes 上传文件结果
// 供前端编辑器、上传组件使用的文件信息
type UploadFileRes struct {
OriginalName string `json:"originalName"` // 原始文件名
FileExtension string `json:"fileExtension"` // 扩展名
FileType string `json:"fileType"` // MIME 类型
FileSize int64 `json:"fileSize"` // 文件大小(字节)
FileName string `json:"fileName"` // 存储文件名(basename,如 32位随机.png)
FilePath string `json:"filePath"` // 相对 uploadDir 的路径(入库形态)
FileUrl string `json:"fileUrl"` // 文件访问地址
}
// UploadFilesReq 批量上传文件请求
// 以 multipart 表单方式提交多个文件
type UploadFilesReq struct {
gmeta.Meta `method:"post" path:"/api/upload/uploadFiles" summary:"批量上传文件" permission:"sys:upload:files" log:"文件上传-批量上传" logType:"add"`
Files []*ghttp.UploadFile `p:"files" v:"required#请选择文件" dc:"上传文件列表"` // 上传文件列表
}
// UploadFilesRes 批量上传文件结果
type UploadFilesRes struct {
List []UploadFileRes `json:"list"` // 上传文件列表
}
+285
View File
@@ -0,0 +1,285 @@
// +======================================================================
// | EasyGoAdmin 企业数字化开发平台 [ 赋能开发者,助力企业发展 ]
// +----------------------------------------------------------------------
// | Copyright (c) 2019-2026 半城风雨团队 版权所有
// +----------------------------------------------------------------------
// | 开源协议: Apache-2.0
// | 重要声明: 未经书面许可,不得移除或修改本框架相关版权标识。
// +----------------------------------------------------------------------
// | 官方网站: https://www.easygoadmin.vip
// +----------------------------------------------------------------------
// | 研发团队: 小蚂蚁云团队 荣誉出品
// +======================================================================
// | 版权和免责声明:
// | 一、知识产权声明
// | 本团队对该软件框架产品(以下简称“本产品”)拥有完整知识产权,包括但不限于商标权、专利权、
// | 著作权、商业秘密等。前述权利均受中华人民共和国及相关国际法律法规保护。未经本团队书面授权,
// | 任何个人或单位不得基于本产品本身申请任何形式的知识产权。
// | 二、使用限制与禁止条款
// | 您理解并同意,禁止将本产品用于以下任何行为:
// | 1. 任何违反中华人民共和国法律法规的用途;
// | 2. 任何侵害他人合法权益(包括但不限于人身权、财产权、知识产权等)的行为;
// | 3. 任何危害国家安全、公共利益及社会道德风尚的行为。
// | 三、责任豁免
// | 因使用本产品而产生的任何损失或法律纠纷(包括但不限于直接损失、间接损失、附带损失、衍生损失
// | 以及因违约、侵权等引发的责任),本团队均不承担任何法律责任。若因违规使用本产品导致任何第三
// | 方提起索赔或行政机关进行调查,您应独立承担全部责任。
// | 四、违约与法律责任
// | 如发现任何违反本声明的行为,本团队有权:
// | 1. 无条件配合公安机关及其他有权机关的调查取证工作;
// | 2. 依法追究相关方的民事责任,并要求赔偿全部损失;
// | 3. 保留进一步采取刑事控告等法律措施的权利。
// | 五、许可范围说明
// | 1、被授权方应视本产品源代码为核心机密信息,负有最高标准的保密与保管义务。禁止以任何形式(包
// | 括但不限于直接或间接的分享、复制、传播、分发、转售、出租、开源、反向工程、反编译、反汇编或通
// | 过网络服务提供给任何第三方)泄露、披露或处置源代码的全部或部分内容。任何未经授权的复制、使用、
// | 传播行为均构成对本团队知识产权的严重侵权,本团队有权依法追究其全部法律责任,并要求赔偿因此造
// | 成的一切经济损失及商誉损害。
// | 2、本产品仅限于公司或个人在法律允许范围内,用于内部且合规的软件产品研发。具体权利义务以《软件
// | 许可协议》附件为准。
// +======================================================================
package v1
import (
"github.com/gogf/gf/v2/net/ghttp"
"github.com/gogf/gf/v2/os/gtime"
"github.com/gogf/gf/v2/util/gmeta"
)
// ============================== 用户模块 ==============================
// UserPageReq 用户分页请求
// 支持关键词、姓名、状态、部门、角色、职级、岗位、租户等条件组合查询
type UserPageReq struct {
gmeta.Meta `method:"get" path:"/api/user/page" summary:"用户分页" permission:"sys:user:page" log:"用户管理-查询分页记录" logType:"query"`
PageReq // 分页基础参数
Keyword string `json:"keyword" dc:"关键词(用户名/姓名/手机号模糊)"` // 关键词,用户名、姓名或手机号模糊匹配
Realname string `json:"realname" dc:"姓名模糊"` // 姓名模糊匹配
Status int `json:"status" dc:"状态:1-正常 2-禁用"` // 状态
DeptId int `json:"deptId" dc:"部门ID"` // 部门ID
RoleId int `json:"roleId" dc:"角色ID"` // 角色ID
Role int `json:"role" dc:"角色ID(前端参数名兼容)"` // 角色ID,前端参数名兼容
LevelId int `json:"levelId" dc:"职级ID"` // 职级ID
PositionId int `json:"positionId" dc:"岗位ID"` // 岗位ID
TenantId int `json:"tenantId" dc:"租户ID"` // 租户ID
}
// UserRoleRef 用户角色引用
// 仅包含角色ID与名称,用于用户详情中的角色输出
type UserRoleRef struct {
Id int64 `json:"id"` // 角色ID
Name string `json:"name"` // 角色名称
}
// UserItem 用户行数据
// 用于用户分页列表等场景的用户基础信息
type UserItem struct {
Id int64 `json:"id"` // 主键ID
Username string `json:"username"` // 用户名
Code string `json:"code"` // 用户编码
Realname string `json:"realname"` // 真实姓名
Avatar string `json:"avatar"` // 头像,已补全访问域名
Gender int `json:"gender"` // 性别:1-男 2-女 3-保密
GenderText string `json:"genderText"` // 性别文本
Mobile string `json:"mobile"` // 手机号
Email string `json:"email"` // 邮箱
Roles []UserRoleRef `json:"roles"` // 角色引用数组
City []string `json:"city"` // 省市区街道编码数组
LevelName string `json:"levelName"` // 职级名称
PositionName string `json:"positionName"` // 岗位名称
DeptName string `json:"deptName"` // 部门名称
Status int `json:"status"` // 状态:1-正常 2-禁用
StatusText string `json:"statusText"` // 状态文本
Sort int `json:"sort"` // 排序
Note string `json:"note"` // 备注
CreateUser string `json:"createUser"` // 创建人
CreateTime *gtime.Time `json:"createTime"` // 创建时间
}
// UserPageRes 用户分页结果
type UserPageRes = PageData[UserItem]
// UserListReq 用户全量列表请求
// 用于下拉选择场景,支持关键词与状态过滤
type UserListReq struct {
gmeta.Meta `method:"get" path:"/api/user/list" summary:"用户列表" permission:"sys:user:list" log:"用户管理-查询列表" logType:"query"`
Keyword string `json:"keyword" dc:"关键词"` // 关键词
Status int `json:"status" dc:"状态"` // 状态
}
// UserListItem 用户列表行数据
// 精简结构,仅包含列表展示所需字段
type UserListItem struct {
Id int64 `json:"id"` // 用户ID
Username string `json:"username"` // 用户名
Realname string `json:"realname"` // 真实姓名
Role string `json:"role"` // 角色
}
// UserListRes 用户列表结果
type UserListRes = []UserListItem
// UserDetailReq 用户详情请求
type UserDetailReq struct {
gmeta.Meta `method:"get" path:"/api/user/detail/:id" summary:"用户详情" permission:"sys:user:detail" log:"用户管理-查询详情" logType:"query"`
Id int64 `json:"id" v:"required#缺少ID" dc:"用户ID"` // 用户ID
}
// UserDetailRes 用户详情结果
// 满足前端编辑表单契约:roles 为角色ID数组,city 为四级区划编码
type UserDetailRes struct {
Id int64 `json:"id"` // 用户ID
Username string `json:"username"` // 用户名
Realname string `json:"realname"` // 真实姓名
Avatar string `json:"avatar"` // 头像
Gender int `json:"gender"` // 性别:1-男 2-女 3-保密
GenderText string `json:"genderText"` // 性别文本
Mobile string `json:"mobile"` // 手机号
Email string `json:"email"` // 邮箱
Roles []int64 `json:"roles"` // 角色ID数组
DeptId int `json:"deptId"` // 部门ID
LevelId int `json:"levelId"` // 职级ID
PositionId int `json:"positionId"` // 岗位ID
City []string `json:"city"` // 省市区街道编码数组
CityInfo string `json:"cityInfo"` // 省市区信息
Address string `json:"address"` // 详细地址
Intro string `json:"intro"` // 个人简介
Status int `json:"status"` // 状态:1-正常 2-禁用
StatusText string `json:"statusText"` // 状态文本
Sort int `json:"sort"` // 排序
Note string `json:"note"` // 备注
}
// UserAddReq 新增用户请求
type UserAddReq struct {
gmeta.Meta `method:"post" path:"/api/user/add" summary:"新增用户" permission:"sys:user:add" log:"用户管理-新增记录" logType:"add"`
Username string `json:"username" v:"required#请输入用户名|length:2,30#用户名长度需在2~30位" dc:"用户名"` // 用户名
Password string `json:"password" v:"required#请输入密码|length:6,32#密码长度需在6~32位" dc:"密码"` // 密码
Realname string `json:"realname" v:"required#请输入姓名" dc:"姓名"` // 真实姓名
Gender int `json:"gender" dc:"性别:1-男 2-女 3-保密"` // 性别
Mobile string `json:"mobile" v:"phone#手机号格式不正确" dc:"手机号"` // 手机号
Email string `json:"email" v:"email#邮箱格式不正确" dc:"邮箱"` // 邮箱
Roles []int64 `json:"roles" dc:"角色ID列表"` // 角色ID列表
DeptId int `json:"deptId" dc:"部门ID"` // 部门ID
LevelId int `json:"levelId" dc:"职级ID"` // 职级ID
PositionId int `json:"positionId" dc:"岗位ID"` // 岗位ID
City []string `json:"city" dc:"省市区街道编码数组"` // 省市区街道编码数组
CityInfo string `json:"cityInfo" dc:"省市区信息"` // 省市区信息
Address string `json:"address" dc:"详细地址"` // 详细地址
Avatar string `json:"avatar" dc:"头像"` // 头像
Intro string `json:"intro" dc:"个人简介"` // 个人简介
Status int `json:"status" dc:"状态:1-正常 2-禁用"` // 状态
Sort int `json:"sort" dc:"排序"` // 排序
Note string `json:"note" dc:"备注"` // 备注
}
// UserUpdateReq 修改用户请求
type UserUpdateReq struct {
gmeta.Meta `method:"put" path:"/api/user/update" summary:"修改用户" permission:"sys:user:update" log:"用户管理-修改记录" logType:"update"`
Id int64 `json:"id" v:"required#缺少ID" dc:"用户ID"` // 用户ID
Username string `json:"username" v:"required#请输入用户名" dc:"用户名"` // 用户名
Password string `json:"password" dc:"密码(留空不修改)"` // 密码,留空不修改
Realname string `json:"realname" v:"required#请输入姓名" dc:"姓名"` // 真实姓名
Gender int `json:"gender" dc:"性别"` // 性别
Mobile string `json:"mobile" v:"phone#手机号格式不正确" dc:"手机号"` // 手机号
Email string `json:"email" v:"email#邮箱格式不正确" dc:"邮箱"` // 邮箱
Roles []int64 `json:"roles" dc:"角色ID列表"` // 角色ID列表
DeptId int `json:"deptId" dc:"部门ID"` // 部门ID
LevelId int `json:"levelId" dc:"职级ID"` // 职级ID
PositionId int `json:"positionId" dc:"岗位ID"` // 岗位ID
City []string `json:"city" dc:"省市区街道编码数组"` // 省市区街道编码数组
CityInfo string `json:"cityInfo" dc:"省市区信息"` // 省市区信息
Address string `json:"address" dc:"详细地址"` // 详细地址
Avatar string `json:"avatar" dc:"头像"` // 头像
Intro string `json:"intro" dc:"个人简介"` // 个人简介
Status int `json:"status" dc:"状态"` // 状态
Sort int `json:"sort" dc:"排序"` // 排序
Note string `json:"note" dc:"备注"` // 备注
}
// UserUpdateRes 修改用户结果
type UserUpdateRes struct{}
// UserStatusReq 用户状态请求
type UserStatusReq struct {
gmeta.Meta `method:"put" path:"/api/user/status" summary:"用户状态" permission:"sys:user:status" log:"用户管理-设置状态" logType:"update"`
Id int64 `json:"id" v:"required#缺少ID" dc:"用户ID"` // 用户ID
Status int `json:"status" v:"required#缺少状态" dc:"状态:1-正常 2-禁用"` // 状态
}
// UserStatusRes 用户状态结果
type UserStatusRes struct{}
// UserResetPwdReq 重置用户密码请求
type UserResetPwdReq struct {
gmeta.Meta `method:"put" path:"/api/user/resetPwd" summary:"重置用户密码" permission:"sys:user:resetPwd" log:"用户管理-重置密码" logType:"reset"`
UserId int64 `json:"userId" v:"required#缺少用户ID" dc:"用户ID"` // 用户ID
Password string `json:"password" v:"length:6,32#密码长度需在6~32位" dc:"新密码(为空时重置为系统默认密码 DEFAULT_PASSWORD)"` // 新密码
}
// UserResetPwdRes 重置用户密码结果
type UserResetPwdRes struct{}
// UserDeleteReq 删除用户请求
type UserDeleteReq struct {
gmeta.Meta `method:"delete" path:"/api/user/delete/:id" summary:"删除用户" permission:"sys:user:delete" log:"用户管理-删除记录" logType:"delete"`
Id int64 `json:"id" v:"required#缺少ID" dc:"用户ID"` // 用户ID
}
// UserDeleteRes 删除用户结果
type UserDeleteRes struct{}
// UserBatchDeleteReq 批量删除用户请求
type UserBatchDeleteReq struct {
gmeta.Meta `method:"delete" path:"/api/user/batchDelete" summary:"批量删除用户" permission:"sys:user:batchDelete" log:"用户管理-批量删除记录" logType:"delete"`
Ids []int64 `json:"ids" v:"required#请选择要删除的记录" dc:"用户ID列表"` // 用户ID列表
}
// UserBatchDeleteRes 批量删除结果
type UserBatchDeleteRes struct{}
// UserImportReq 导入用户请求
// 上传 xls/xlsx 文件进行数据导入
type UserImportReq struct {
gmeta.Meta `method:"post" path:"/api/user/import" summary:"导入用户" permission:"sys:user:import" log:"用户管理-导入数据" logType:"import"`
File *ghttp.UploadFile `p:"file" v:"required#请选择文件" dc:"xls/xlsx 文件"` // 上传文件
}
// UserImportRes 导入结果
// 返回导入总数、成功数、失败数及失败原因
type UserImportRes struct {
Total int `json:"total"` // 导入总数
Success int `json:"success"` // 成功数
Failed int `json:"failed"` // 失败数
Reasons []string `json:"reasons"` // 失败原因列表
}
// UserExportReq 导出用户请求
// 按查询条件导出符合条件的记录
type UserExportReq struct {
gmeta.Meta `method:"get" path:"/api/user/export" summary:"导出用户" permission:"sys:user:export" log:"用户管理-导出数据" logType:"export"`
Keyword string `json:"keyword" dc:"关键词"` // 关键词
Realname string `json:"realname" dc:"姓名模糊"` // 姓名模糊匹配
Status int `json:"status" dc:"状态"` // 状态
}
// UserExportRes 导出结果
// data 直接为导出文件的访问地址
type UserExportRes = string
// UserDocumentReq 用户打印信息请求
type UserDocumentReq struct {
gmeta.Meta `method:"get" path:"/api/user/document/:id" summary:"用户打印信息" permission:"sys:user:detail" log:"用户管理-查询打印信息" logType:"query"`
Id int64 `json:"id" v:"required#缺少ID" dc:"用户ID"` // 用户ID
}
// UserDocumentRes 用户打印信息结果
// 在用户详情基础上追加关联的角色、部门、职级、岗位名称
type UserDocumentRes struct {
UserDetailRes
RoleNames []string `json:"roleNames"` // 角色名称列表
DeptName string `json:"deptName"` // 部门名称
LevelName string `json:"levelName"` // 职级名称
PositionName string `json:"positionName"` // 岗位名称
}