parent
3b3a3d4aae
commit
a114b67e68
|
@ -65,7 +65,15 @@ func Run(c *gin.Context, req interface{}, fn func() (interface{}, interface{}))
|
|||
tools.Success(c, data)
|
||||
}
|
||||
|
||||
// Demo
|
||||
// @Summary 健康检测
|
||||
// @Tags 基础管理
|
||||
// @Produce json
|
||||
// @Description 健康检测
|
||||
// @Success 200 {object} response.ResponseBody
|
||||
// @router /base/ping [get]
|
||||
func Demo(c *gin.Context) {
|
||||
// 健康检测
|
||||
CodeDebug()
|
||||
c.JSON(http.StatusOK, tools.H{"code": 200, "msg": "ok", "data": "pong"})
|
||||
}
|
||||
|
|
|
@ -10,6 +10,14 @@ import (
|
|||
type ApiController struct{}
|
||||
|
||||
// List 记录列表
|
||||
// @Summary 获取API接口列表
|
||||
// Description: 获取API接口列表
|
||||
// @Tags 接口管理
|
||||
// @Accept application/json
|
||||
// @Produce application/json
|
||||
// @Success 200 {object} response.ResponseBody
|
||||
// @Router /api/list [get]
|
||||
// @Security ApiKeyAuth
|
||||
func (m *ApiController) List(c *gin.Context) {
|
||||
req := new(request.ApiListReq)
|
||||
Run(c, req, func() (interface{}, interface{}) {
|
||||
|
@ -18,6 +26,14 @@ func (m *ApiController) List(c *gin.Context) {
|
|||
}
|
||||
|
||||
// GetTree 接口树
|
||||
// @Summary 获取API接口树
|
||||
// Description: 获取API接口树
|
||||
// @Tags 接口管理
|
||||
// @Accept application/json
|
||||
// @Produce application/json
|
||||
// @Success 200 {object} response.ResponseBody
|
||||
// @Router /api/tree [get]
|
||||
// @Security ApiKeyAuth
|
||||
func (m *ApiController) GetTree(c *gin.Context) {
|
||||
req := new(request.ApiGetTreeReq)
|
||||
Run(c, req, func() (interface{}, interface{}) {
|
||||
|
@ -26,6 +42,15 @@ func (m *ApiController) GetTree(c *gin.Context) {
|
|||
}
|
||||
|
||||
// Add 新建记录
|
||||
// @Summary 新建API接口
|
||||
// @Tags 接口管理
|
||||
// Description: 新建API接口
|
||||
// @Accept application/json
|
||||
// @Produce application/json
|
||||
// @Param data body request.ApiAddReq true "新建API"
|
||||
// @Success 200 {object} response.ResponseBody
|
||||
// @Router /api/add [post]
|
||||
// @Security ApiKeyAuth
|
||||
func (m *ApiController) Add(c *gin.Context) {
|
||||
req := new(request.ApiAddReq)
|
||||
Run(c, req, func() (interface{}, interface{}) {
|
||||
|
@ -34,6 +59,15 @@ func (m *ApiController) Add(c *gin.Context) {
|
|||
}
|
||||
|
||||
// Update 更新记录
|
||||
// @Summary 更新API接口
|
||||
// @Tags 接口管理
|
||||
// Description: 更新API接口
|
||||
// @Accept application/json
|
||||
// @Produce application/json
|
||||
// @Param data body request.ApiUpdateReq true "更新API"
|
||||
// @Success 200 {object} response.ResponseBody
|
||||
// @Router /api/update [post]
|
||||
// @Security ApiKeyAuth
|
||||
func (m *ApiController) Update(c *gin.Context) {
|
||||
req := new(request.ApiUpdateReq)
|
||||
Run(c, req, func() (interface{}, interface{}) {
|
||||
|
@ -42,6 +76,15 @@ func (m *ApiController) Update(c *gin.Context) {
|
|||
}
|
||||
|
||||
// Delete 删除记录
|
||||
// @Summary 删除API接口
|
||||
// @Tags 接口管理
|
||||
// Description: 删除API接口
|
||||
// @Accept application/json
|
||||
// @Produce application/json
|
||||
// @Param data body request.ApiDeleteReq true "删除API"
|
||||
// @Success 200 {object} response.ResponseBody
|
||||
// @Router /api/delete [post]
|
||||
// @Security ApiKeyAuth
|
||||
func (m *ApiController) Delete(c *gin.Context) {
|
||||
req := new(request.ApiDeleteReq)
|
||||
Run(c, req, func() (interface{}, interface{}) {
|
||||
|
|
|
@ -10,6 +10,14 @@ import (
|
|||
type BaseController struct{}
|
||||
|
||||
// SendCode 给用户邮箱发送验证码
|
||||
// @Summary 发送验证码
|
||||
// @Description 向指定邮箱发送验证码
|
||||
// @Tags 基础管理
|
||||
// @Accept application/json
|
||||
// @Produce application/json
|
||||
// @Param data body request.BaseSendCodeReq true "发送验证码请求数据"
|
||||
// @Success 200 {object} response.ResponseBody
|
||||
// @Router /base/sendcode [post]
|
||||
func (m *BaseController) SendCode(c *gin.Context) {
|
||||
req := new(request.BaseSendCodeReq)
|
||||
Run(c, req, func() (interface{}, interface{}) {
|
||||
|
@ -18,6 +26,14 @@ func (m *BaseController) SendCode(c *gin.Context) {
|
|||
}
|
||||
|
||||
// ChangePwd 用户通过邮箱修改密码
|
||||
// @Summary 用户通过邮箱修改密码
|
||||
// @Description 使用邮箱验证码修改密码
|
||||
// @Tags 基础管理
|
||||
// @Accept application/json
|
||||
// @Produce application/json
|
||||
// @Param data body request.BaseChangePwdReq true "发送验证码请求数据"
|
||||
// @Success 200 {object} response.ResponseBody
|
||||
// @Router /base/changePwd [post]
|
||||
func (m *BaseController) ChangePwd(c *gin.Context) {
|
||||
req := new(request.BaseChangePwdReq)
|
||||
Run(c, req, func() (interface{}, interface{}) {
|
||||
|
@ -26,6 +42,13 @@ func (m *BaseController) ChangePwd(c *gin.Context) {
|
|||
}
|
||||
|
||||
// Dashboard 系统首页展示数据
|
||||
// @Summary 获取仪表盘数据
|
||||
// @Description 获取系统仪表盘概览数据
|
||||
// @Tags 基础管理
|
||||
// @Accept application/json
|
||||
// @Produce application/json
|
||||
// @Success 200 {object} response.ResponseBody
|
||||
// @Router /base/dashboard [get]
|
||||
func (m *BaseController) Dashboard(c *gin.Context) {
|
||||
req := new(request.BaseDashboardReq)
|
||||
Run(c, req, func() (interface{}, interface{}) {
|
||||
|
@ -33,7 +56,15 @@ func (m *BaseController) Dashboard(c *gin.Context) {
|
|||
})
|
||||
}
|
||||
|
||||
// EncryptPasswd 生成加密密码
|
||||
// EncryptPasswd 密码加密
|
||||
// @Summary 密码加密
|
||||
// @Description 将明文密码加密
|
||||
// @Tags 基础管理
|
||||
// @Accept application/json
|
||||
// @Produce application/json
|
||||
// @Param passwd query string true "需要加密的明文密码"
|
||||
// @Success 200 {object} response.ResponseBody
|
||||
// @Router /base/encryptpwd [get]
|
||||
func (m *BaseController) EncryptPasswd(c *gin.Context) {
|
||||
req := new(request.EncryptPasswdReq)
|
||||
Run(c, req, func() (interface{}, interface{}) {
|
||||
|
@ -42,6 +73,14 @@ func (m *BaseController) EncryptPasswd(c *gin.Context) {
|
|||
}
|
||||
|
||||
// DecryptPasswd 密码解密为明文
|
||||
// @Summary 密码解密
|
||||
// @Description 将加密后的密码解密为明文
|
||||
// @Tags 基础管理
|
||||
// @Accept application/json
|
||||
// @Produce application/json
|
||||
// @Param passwd query string true "需要解密的加密密码"
|
||||
// @Success 200 {object} response.ResponseBody
|
||||
// @Router /base/decryptpwd [get]
|
||||
func (m *BaseController) DecryptPasswd(c *gin.Context) {
|
||||
req := new(request.DecryptPasswdReq)
|
||||
Run(c, req, func() (interface{}, interface{}) {
|
||||
|
|
|
@ -10,6 +10,14 @@ import (
|
|||
type FieldRelationController struct{}
|
||||
|
||||
// List 记录列表
|
||||
// @Summary 获字段关系管理列表
|
||||
// Description: 获字段关系管理列表
|
||||
// @Tags 字段关系管理
|
||||
// @Accept application/json
|
||||
// @Produce application/json
|
||||
// @Success 200 {object} response.ResponseBody
|
||||
// @Router /fieldrelation/list [get]
|
||||
// @Security ApiKeyAuth
|
||||
func (m *FieldRelationController) List(c *gin.Context) {
|
||||
req := new(request.FieldRelationListReq)
|
||||
Run(c, req, func() (interface{}, interface{}) {
|
||||
|
@ -18,6 +26,15 @@ func (m *FieldRelationController) List(c *gin.Context) {
|
|||
}
|
||||
|
||||
// Add 新建记录
|
||||
// @Summary 新建字段关系管理记录
|
||||
// Description: 新建字段关系管理记录
|
||||
// @Tags 字段关系管理
|
||||
// @Accept application/json
|
||||
// @Produce application/json
|
||||
// @Param data body request.FieldRelationAddReq true "新建字段关系管理记录"
|
||||
// @Success 200 {object} response.ResponseBody
|
||||
// @Router /fieldrelation/add [post]
|
||||
// @Security ApiKeyAuth
|
||||
func (m *FieldRelationController) Add(c *gin.Context) {
|
||||
req := new(request.FieldRelationAddReq)
|
||||
Run(c, req, func() (interface{}, interface{}) {
|
||||
|
@ -26,6 +43,15 @@ func (m *FieldRelationController) Add(c *gin.Context) {
|
|||
}
|
||||
|
||||
// Update 更新记录
|
||||
// @Summary 更新字段关系管理记录
|
||||
// Description: 更新字段关系管理记录
|
||||
// @Tags 字段关系管理
|
||||
// @Accept application/json
|
||||
// @Produce application/json
|
||||
// @Param data body request.FieldRelationUpdateReq true "更新字段关系管理记录"
|
||||
// @Success 200 {object} response.ResponseBody
|
||||
// @Router /fieldrelation/update [post]
|
||||
// @Security ApiKeyAuth
|
||||
func (m *FieldRelationController) Update(c *gin.Context) {
|
||||
req := new(request.FieldRelationUpdateReq)
|
||||
Run(c, req, func() (interface{}, interface{}) {
|
||||
|
@ -34,6 +60,15 @@ func (m *FieldRelationController) Update(c *gin.Context) {
|
|||
}
|
||||
|
||||
// Delete 删除记录
|
||||
// @Summary 删除字段关系管理记录
|
||||
// Description: 删除字段关系管理记录
|
||||
// @Tags 字段关系管理
|
||||
// @Accept application/json
|
||||
// @Produce application/json
|
||||
// @Param data body request.FieldRelationDeleteReq true "删除字段关系管理记录"
|
||||
// @Success 200 {object} response.ResponseBody
|
||||
// @Router /fieldrelation/delete [post]
|
||||
// @Security ApiKeyAuth
|
||||
func (m *FieldRelationController) Delete(c *gin.Context) {
|
||||
req := new(request.FieldRelationDeleteReq)
|
||||
Run(c, req, func() (interface{}, interface{}) {
|
||||
|
|
|
@ -10,6 +10,14 @@ import (
|
|||
type GroupController struct{}
|
||||
|
||||
// List 记录列表
|
||||
// @Summary 获取分组记录列表
|
||||
// @Description 获取分组记录列表
|
||||
// @Tags 分组管理
|
||||
// @Accept application/json
|
||||
// @Produce application/json
|
||||
// @Success 200 {object} response.ResponseBody
|
||||
// @Router /group/list [get]
|
||||
// @Security ApiKeyAuth
|
||||
func (m *GroupController) List(c *gin.Context) {
|
||||
req := new(request.GroupListReq)
|
||||
Run(c, req, func() (interface{}, interface{}) {
|
||||
|
@ -18,6 +26,16 @@ func (m *GroupController) List(c *gin.Context) {
|
|||
}
|
||||
|
||||
// UserInGroup 在分组内的用户
|
||||
// @Summary 获取分组内用户
|
||||
// @Description 获取分组内用户
|
||||
// @Tags 分组管理
|
||||
// @Accept application/json
|
||||
// @Produce application/json
|
||||
// @Param groupId query int true "分组ID"
|
||||
// @Param nickname query string false "昵称"
|
||||
// @Success 200 {object} response.ResponseBody
|
||||
// @Router /group/useringroup [get]
|
||||
// @Security ApiKeyAuth
|
||||
func (m *GroupController) UserInGroup(c *gin.Context) {
|
||||
req := new(request.UserInGroupReq)
|
||||
Run(c, req, func() (interface{}, interface{}) {
|
||||
|
@ -26,6 +44,16 @@ func (m *GroupController) UserInGroup(c *gin.Context) {
|
|||
}
|
||||
|
||||
// UserNoInGroup 不在分组的用户
|
||||
// @Summary 不在分组的用户
|
||||
// @Description 不在分组的用户
|
||||
// @Tags 分组管理
|
||||
// @Accept application/json
|
||||
// @Produce application/json
|
||||
// @Param groupId query int true "分组ID"
|
||||
// @Param nickname query string false "昵称"
|
||||
// @Success 200 {object} response.ResponseBody
|
||||
// @Router /group/usernoingroup [get]
|
||||
// @Security ApiKeyAuth
|
||||
func (m *GroupController) UserNoInGroup(c *gin.Context) {
|
||||
req := new(request.UserNoInGroupReq)
|
||||
Run(c, req, func() (interface{}, interface{}) {
|
||||
|
@ -34,6 +62,14 @@ func (m *GroupController) UserNoInGroup(c *gin.Context) {
|
|||
}
|
||||
|
||||
// GetTree 接口树
|
||||
// @Summary 获取分组接口树
|
||||
// @Description 获取分组接口树
|
||||
// @Tags 分组管理
|
||||
// @Accept application/json
|
||||
// @Produce application/json
|
||||
// @Success 200 {object} response.ResponseBody
|
||||
// @Router /group/tree [get]
|
||||
// @Security ApiKeyAuth
|
||||
func (m *GroupController) GetTree(c *gin.Context) {
|
||||
req := new(request.GroupListReq)
|
||||
Run(c, req, func() (interface{}, interface{}) {
|
||||
|
@ -41,7 +77,16 @@ func (m *GroupController) GetTree(c *gin.Context) {
|
|||
})
|
||||
}
|
||||
|
||||
// Add 新建记录
|
||||
// Add 新建分组记录
|
||||
// @Summary 添加分组记录
|
||||
// @Description 添加分组记录
|
||||
// @Tags 分组管理
|
||||
// @Accept application/json
|
||||
// @Produce application/json
|
||||
// @Param data body request.GroupAddReq true "添加用户记录的结构体"
|
||||
// @Success 200 {object} response.ResponseBody
|
||||
// @Router /group/add [post]
|
||||
// @Security ApiKeyAuth
|
||||
func (m *GroupController) Add(c *gin.Context) {
|
||||
req := new(request.GroupAddReq)
|
||||
Run(c, req, func() (interface{}, interface{}) {
|
||||
|
@ -50,6 +95,15 @@ func (m *GroupController) Add(c *gin.Context) {
|
|||
}
|
||||
|
||||
// Update 更新记录
|
||||
// @Summary 更新分组记录
|
||||
// @Description 更新分组记录
|
||||
// @Tags 分组管理
|
||||
// @Accept application/json
|
||||
// @Produce application/json
|
||||
// @Param data body request.GroupUpdateReq true "更新用户记录的结构体"
|
||||
// @Success 200 {object} response.ResponseBody
|
||||
// @Router /group/update [post]
|
||||
// @Security ApiKeyAuth
|
||||
func (m *GroupController) Update(c *gin.Context) {
|
||||
req := new(request.GroupUpdateReq)
|
||||
Run(c, req, func() (interface{}, interface{}) {
|
||||
|
@ -58,6 +112,15 @@ func (m *GroupController) Update(c *gin.Context) {
|
|||
}
|
||||
|
||||
// Delete 删除记录
|
||||
// @Summary 删除分组记录
|
||||
// @Description 删除分组记录
|
||||
// @Tags 分组管理
|
||||
// @Accept application/json
|
||||
// @Produce application/json
|
||||
// @Param data body request.GroupDeleteReq true "删除用户记录的结构体"
|
||||
// @Success 200 {object} response.ResponseBody
|
||||
// @Router /group/delete [post]
|
||||
// @Security ApiKeyAuth
|
||||
func (m *GroupController) Delete(c *gin.Context) {
|
||||
req := new(request.GroupDeleteReq)
|
||||
Run(c, req, func() (interface{}, interface{}) {
|
||||
|
@ -66,6 +129,15 @@ func (m *GroupController) Delete(c *gin.Context) {
|
|||
}
|
||||
|
||||
// AddUser 添加用户
|
||||
// @Summary 添加用户
|
||||
// @Description 添加用户
|
||||
// @Tags 分组管理
|
||||
// @Accept application/json
|
||||
// @Produce application/json
|
||||
// @Param data body request.GroupAddUserReq true "添加用户记录的结构体"
|
||||
// @Success 200 {object} response.ResponseBody
|
||||
// @Router /group/adduser [post]
|
||||
// @Security ApiKeyAuth
|
||||
func (m *GroupController) AddUser(c *gin.Context) {
|
||||
req := new(request.GroupAddUserReq)
|
||||
Run(c, req, func() (interface{}, interface{}) {
|
||||
|
@ -74,6 +146,15 @@ func (m *GroupController) AddUser(c *gin.Context) {
|
|||
}
|
||||
|
||||
// RemoveUser 移除用户
|
||||
// @Summary 移除用户
|
||||
// @Description 移除用户
|
||||
// @Tags 分组管理
|
||||
// @Accept application/json
|
||||
// @Produce application/json
|
||||
// @Param data body request.GroupRemoveUserReq true "移除用户记录的结构体"
|
||||
// @Success 200 {object} response.ResponseBody
|
||||
// @Router /group/removeuser [post]
|
||||
// @Security ApiKeyAuth
|
||||
func (m *GroupController) RemoveUser(c *gin.Context) {
|
||||
req := new(request.GroupRemoveUserReq)
|
||||
Run(c, req, func() (interface{}, interface{}) {
|
||||
|
@ -81,7 +162,15 @@ func (m *GroupController) RemoveUser(c *gin.Context) {
|
|||
})
|
||||
}
|
||||
|
||||
//同步钉钉部门信息
|
||||
// SyncDingTalkDepts 同步钉钉部门信息
|
||||
// @Summary 同步钉钉部门信息
|
||||
// @Description 同步钉钉部门信息
|
||||
// @Tags 分组管理
|
||||
// @Accept application/json
|
||||
// @Produce application/json
|
||||
// @Success 200 {object} response.ResponseBody
|
||||
// @Router /group/syncDingTalkDepts [post]
|
||||
// @Security ApiKeyAuth
|
||||
func (m *GroupController) SyncDingTalkDepts(c *gin.Context) {
|
||||
req := new(request.SyncDingTalkDeptsReq)
|
||||
Run(c, req, func() (interface{}, interface{}) {
|
||||
|
@ -89,7 +178,15 @@ func (m *GroupController) SyncDingTalkDepts(c *gin.Context) {
|
|||
})
|
||||
}
|
||||
|
||||
//同步企业微信部门信息
|
||||
// SyncWeComDepts 同步企业微信部门信息
|
||||
// @Summary 同步企业微信部门信息
|
||||
// @Description 同步企业微信部门信息
|
||||
// @Tags 分组管理
|
||||
// @Accept application/json
|
||||
// @Produce application/json
|
||||
// @Success 200 {object} response.ResponseBody
|
||||
// @Router /group/syncWeComDepts [post]
|
||||
// @Security ApiKeyAuth
|
||||
func (m *GroupController) SyncWeComDepts(c *gin.Context) {
|
||||
req := new(request.SyncWeComDeptsReq)
|
||||
Run(c, req, func() (interface{}, interface{}) {
|
||||
|
@ -97,7 +194,15 @@ func (m *GroupController) SyncWeComDepts(c *gin.Context) {
|
|||
})
|
||||
}
|
||||
|
||||
//同步飞书部门信息
|
||||
// SyncFeiShuDepts 同步飞书部门信息
|
||||
// @Summary 同步飞书部门信息
|
||||
// @Description 同步飞书部门信息
|
||||
// @Tags 分组管理
|
||||
// @Accept application/json
|
||||
// @Produce application/json
|
||||
// @Success 200 {object} response.ResponseBody
|
||||
// @Router /group/syncFeiShuDepts [post]
|
||||
// @Security ApiKeyAuth
|
||||
func (m *GroupController) SyncFeiShuDepts(c *gin.Context) {
|
||||
req := new(request.SyncFeiShuDeptsReq)
|
||||
Run(c, req, func() (interface{}, interface{}) {
|
||||
|
@ -105,7 +210,15 @@ func (m *GroupController) SyncFeiShuDepts(c *gin.Context) {
|
|||
})
|
||||
}
|
||||
|
||||
//同步原ldap部门信息
|
||||
// SyncOpenLdapDepts 同步原ldap部门信息
|
||||
// @Summary 同步原ldap部门信息
|
||||
// @Description 同步原ldap部门信息
|
||||
// @Tags 分组管理
|
||||
// @Accept application/json
|
||||
// @Produce application/json
|
||||
// @Success 200 {object} response.ResponseBody
|
||||
// @Router /group/syncOpenLdapDepts [post]
|
||||
// @Security ApiKeyAuth
|
||||
func (m *GroupController) SyncOpenLdapDepts(c *gin.Context) {
|
||||
req := new(request.SyncOpenLdapDeptsReq)
|
||||
Run(c, req, func() (interface{}, interface{}) {
|
||||
|
@ -113,7 +226,15 @@ func (m *GroupController) SyncOpenLdapDepts(c *gin.Context) {
|
|||
})
|
||||
}
|
||||
|
||||
//同步Sql中的分组信息到ldap
|
||||
// SyncSqlGroups 同步Sql中的分组信息到ldap
|
||||
// @Summary 同步Sql中的分组信息到ldap
|
||||
// @Description 同步Sql中的分组信息到ldap
|
||||
// @Tags 分组管理
|
||||
// @Accept application/json
|
||||
// @Produce application/json
|
||||
// @Success 200 {object} response.ResponseBody
|
||||
// @Router /group/syncSqlGroups [post]
|
||||
// @Security ApiKeyAuth
|
||||
func (m *GroupController) SyncSqlGroups(c *gin.Context) {
|
||||
req := new(request.SyncSqlGrooupsReq)
|
||||
Run(c, req, func() (interface{}, interface{}) {
|
||||
|
|
|
@ -10,6 +10,13 @@ import (
|
|||
type MenuController struct{}
|
||||
|
||||
// GetTree 菜单树
|
||||
// @Summary 获取菜单树
|
||||
// @Tags 菜单管理
|
||||
// @Accept application/json
|
||||
// @Produce application/json
|
||||
// @Success 200 {object} response.ResponseBody
|
||||
// @Router /menu/tree [get]
|
||||
// @Security ApiKeyAuth
|
||||
func (m *MenuController) GetTree(c *gin.Context) {
|
||||
req := new(request.MenuGetTreeReq)
|
||||
Run(c, req, func() (interface{}, interface{}) {
|
||||
|
@ -17,7 +24,15 @@ func (m *MenuController) GetTree(c *gin.Context) {
|
|||
})
|
||||
}
|
||||
|
||||
// GetUserMenuTreeByUserId 获取用户菜单树
|
||||
// GetAccessTree GetUserMenuTreeByUserId 获取用户菜单树
|
||||
// @Summary 获取用户菜单树
|
||||
// @Tags 菜单管理
|
||||
// @Accept application/json
|
||||
// @Produce application/json
|
||||
// @Param id query int true "分组ID"
|
||||
// @Success 200 {object} response.ResponseBody
|
||||
// @Router /menu/access/tree [get]
|
||||
// @Security ApiKeyAuth
|
||||
func (m *MenuController) GetAccessTree(c *gin.Context) {
|
||||
req := new(request.MenuGetAccessTreeReq)
|
||||
Run(c, req, func() (interface{}, interface{}) {
|
||||
|
@ -26,6 +41,14 @@ func (m *MenuController) GetAccessTree(c *gin.Context) {
|
|||
}
|
||||
|
||||
// Add 新建
|
||||
// @Summary 新建菜单
|
||||
// @Tags 菜单管理
|
||||
// @Accept application/json
|
||||
// @Produce application/json
|
||||
// @Param data body request.MenuAddReq true "新建菜单"
|
||||
// @Success 200 {object} response.ResponseBody
|
||||
// @Router /menu/add [post]
|
||||
// @Security ApiKeyAuth
|
||||
func (m *MenuController) Add(c *gin.Context) {
|
||||
req := new(request.MenuAddReq)
|
||||
Run(c, req, func() (interface{}, interface{}) {
|
||||
|
@ -34,6 +57,14 @@ func (m *MenuController) Add(c *gin.Context) {
|
|||
}
|
||||
|
||||
// Update 更新记录
|
||||
// @Summary 更新菜单
|
||||
// @Tags 菜单管理
|
||||
// @Accept application/json
|
||||
// @Produce application/json
|
||||
// @Param data body request.MenuUpdateReq true "更新菜单"
|
||||
// @Success 200 {object} response.ResponseBody
|
||||
// @Router /menu/update [post]
|
||||
// @Security ApiKeyAuth
|
||||
func (m *MenuController) Update(c *gin.Context) {
|
||||
req := new(request.MenuUpdateReq)
|
||||
Run(c, req, func() (interface{}, interface{}) {
|
||||
|
@ -42,6 +73,14 @@ func (m *MenuController) Update(c *gin.Context) {
|
|||
}
|
||||
|
||||
// Delete 删除记录
|
||||
// @Summary 删除菜单
|
||||
// @Tags 菜单管理
|
||||
// @Accept application/json
|
||||
// @Produce application/json
|
||||
// @Param data body request.MenuDeleteReq true "删除菜单"
|
||||
// @Success 200 {object} response.ResponseBody
|
||||
// @Router /menu/delete [post]
|
||||
// @Security ApiKeyAuth
|
||||
func (m *MenuController) Delete(c *gin.Context) {
|
||||
req := new(request.MenuDeleteReq)
|
||||
Run(c, req, func() (interface{}, interface{}) {
|
||||
|
|
|
@ -10,6 +10,21 @@ import (
|
|||
type OperationLogController struct{}
|
||||
|
||||
// List 记录列表
|
||||
// @Summary 获取操作日志记录列表
|
||||
// Description: 获取操作日志记录列表
|
||||
// @Tags 操作日志管理
|
||||
// @Accept application/json
|
||||
// @Produce application/json
|
||||
// @Param username query string false "用户名"
|
||||
// @Param ip query string false "IP地址"
|
||||
// @Param path query string false "路径"
|
||||
// @Param method query string false "方法"
|
||||
// @Param status query int false "状态码"
|
||||
// @Param pageNum query int false "页码"
|
||||
// @Param pageSize query int false "每页数量"
|
||||
// @Success 200 {object} response.ResponseBody
|
||||
// @Router /log/operation/list [get]
|
||||
// @Security ApiKeyAuth
|
||||
func (m *OperationLogController) List(c *gin.Context) {
|
||||
req := new(request.OperationLogListReq)
|
||||
Run(c, req, func() (interface{}, interface{}) {
|
||||
|
@ -18,6 +33,15 @@ func (m *OperationLogController) List(c *gin.Context) {
|
|||
}
|
||||
|
||||
// Delete 删除记录
|
||||
// @Summary 删除操作日志记录
|
||||
// Description: 删除操作日志记录
|
||||
// @Tags 操作日志管理
|
||||
// @Accept application/json
|
||||
// @Produce application/json
|
||||
// @Param data body request.OperationLogDeleteReq true "删除日志的ID"
|
||||
// @Success 200 {object} response.ResponseBody
|
||||
// @Router /log/operation/delete [post]
|
||||
// @Security ApiKeyAuth
|
||||
func (m *OperationLogController) Delete(c *gin.Context) {
|
||||
req := new(request.OperationLogDeleteReq)
|
||||
Run(c, req, func() (interface{}, interface{}) {
|
||||
|
@ -26,6 +50,14 @@ func (m *OperationLogController) Delete(c *gin.Context) {
|
|||
}
|
||||
|
||||
// Clean 清空记录
|
||||
// @Summary 清空操作日志记录
|
||||
// Description: 清空操作日志记录
|
||||
// @Tags 操作日志管理
|
||||
// @Accept application/json
|
||||
// @Produce application/json
|
||||
// @Success 200 {object} response.ResponseBody
|
||||
// @Router /log/operation/clean [delete]
|
||||
// @Security ApiKeyAuth
|
||||
func (m *OperationLogController) Clean(c *gin.Context) {
|
||||
req := new(request.OperationLogListReq)
|
||||
Run(c, req, func() (interface{}, interface{}) {
|
||||
|
|
|
@ -9,7 +9,15 @@ import (
|
|||
|
||||
type RoleController struct{}
|
||||
|
||||
// List 记录列表
|
||||
// List 角色记录列表
|
||||
// @Summary 获取角色记录列表
|
||||
// @Description 获取角色记录列表
|
||||
// @Tags 角色管理
|
||||
// @Accept application/json
|
||||
// @Produce application/json
|
||||
// @Success 200 {object} response.ResponseBody
|
||||
// @Router /role/list [get]
|
||||
// @Security ApiKeyAuth
|
||||
func (m *RoleController) List(c *gin.Context) {
|
||||
req := new(request.RoleListReq)
|
||||
Run(c, req, func() (interface{}, interface{}) {
|
||||
|
@ -18,6 +26,15 @@ func (m *RoleController) List(c *gin.Context) {
|
|||
}
|
||||
|
||||
// Add 新建
|
||||
// @Summary 新建角色记录
|
||||
// @Description 新建角色记录
|
||||
// @Tags 角色管理
|
||||
// @Accept application/json
|
||||
// @Produce application/json
|
||||
// @Param data body request.RoleAddReq true "添加角色记录的结构体"
|
||||
// @Success 200 {object} response.ResponseBody
|
||||
// @Router /role/add [post]
|
||||
// @Security ApiKeyAuth
|
||||
func (m *RoleController) Add(c *gin.Context) {
|
||||
req := new(request.RoleAddReq)
|
||||
Run(c, req, func() (interface{}, interface{}) {
|
||||
|
@ -26,6 +43,15 @@ func (m *RoleController) Add(c *gin.Context) {
|
|||
}
|
||||
|
||||
// Update 更新记录
|
||||
// @Summary 更新角色记录
|
||||
// @Description 更新角色记录
|
||||
// @Tags 角色管理
|
||||
// @Accept application/json
|
||||
// @Produce application/json
|
||||
// @Param data body request.RoleUpdateReq true "更新角色记录的结构体"
|
||||
// @Success 200 {object} response.ResponseBody
|
||||
// @Router /role/update [post]
|
||||
// @Security ApiKeyAuth
|
||||
func (m *RoleController) Update(c *gin.Context) {
|
||||
req := new(request.RoleUpdateReq)
|
||||
Run(c, req, func() (interface{}, interface{}) {
|
||||
|
@ -34,6 +60,15 @@ func (m *RoleController) Update(c *gin.Context) {
|
|||
}
|
||||
|
||||
// Delete 删除记录
|
||||
// @Summary 删除角色记录
|
||||
// @Description 删除角色记录
|
||||
// @Tags 角色管理
|
||||
// @Accept application/json
|
||||
// @Produce application/json
|
||||
// @Param data body request.RoleDeleteReq true "删除角色记录的结构体"
|
||||
// @Success 200 {object} response.ResponseBody
|
||||
// @Router /role/delete [post]
|
||||
// @Security ApiKeyAuth
|
||||
func (m *RoleController) Delete(c *gin.Context) {
|
||||
req := new(request.RoleDeleteReq)
|
||||
Run(c, req, func() (interface{}, interface{}) {
|
||||
|
@ -42,6 +77,15 @@ func (m *RoleController) Delete(c *gin.Context) {
|
|||
}
|
||||
|
||||
// GetMenuList 获取菜单列表
|
||||
// @Summary 获取菜单列表
|
||||
// @Description 获取菜单列表
|
||||
// @Tags 角色管理
|
||||
// @Accept application/json
|
||||
// @Produce application/json
|
||||
// @Param roleId query int true "角色ID"
|
||||
// @Success 200 {object} response.ResponseBody
|
||||
// @Router /role/getmenulist [get]
|
||||
// @Security ApiKeyAuth
|
||||
func (m *RoleController) GetMenuList(c *gin.Context) {
|
||||
req := new(request.RoleGetMenuListReq)
|
||||
Run(c, req, func() (interface{}, interface{}) {
|
||||
|
@ -50,6 +94,15 @@ func (m *RoleController) GetMenuList(c *gin.Context) {
|
|||
}
|
||||
|
||||
// GetApiList 获取接口列表
|
||||
// @Summary 获取接口列表
|
||||
// @Description 获取接口列表
|
||||
// @Tags 角色管理
|
||||
// @Accept application/json
|
||||
// @Produce application/json
|
||||
// @Param roleId query int true "角色ID"
|
||||
// @Success 200 {object} response.ResponseBody
|
||||
// @Router /role/getapilist [get]
|
||||
// @Security ApiKeyAuth
|
||||
func (m *RoleController) GetApiList(c *gin.Context) {
|
||||
req := new(request.RoleGetApiListReq)
|
||||
Run(c, req, func() (interface{}, interface{}) {
|
||||
|
@ -58,6 +111,15 @@ func (m *RoleController) GetApiList(c *gin.Context) {
|
|||
}
|
||||
|
||||
// UpdateMenus 更新菜单
|
||||
// @Summary 更新菜单
|
||||
// @Description 更新菜单
|
||||
// @Tags 角色管理
|
||||
// @Accept application/json
|
||||
// @Produce application/json
|
||||
// @Param data body request.RoleUpdateMenusReq true "更新菜单的结构体"
|
||||
// @Success 200 {object} response.ResponseBody
|
||||
// @Router /role/updatemenus [post]
|
||||
// @Security ApiKeyAuth
|
||||
func (m *RoleController) UpdateMenus(c *gin.Context) {
|
||||
req := new(request.RoleUpdateMenusReq)
|
||||
Run(c, req, func() (interface{}, interface{}) {
|
||||
|
@ -66,6 +128,15 @@ func (m *RoleController) UpdateMenus(c *gin.Context) {
|
|||
}
|
||||
|
||||
// UpdateApis 更新接口
|
||||
// @Summary 更新接口
|
||||
// @Description 更新接口
|
||||
// @Tags 角色管理
|
||||
// @Accept application/json
|
||||
// @Produce application/json
|
||||
// @Param data body request.RoleUpdateApisReq true "更新接口的结构体"
|
||||
// @Success 200 {object} response.ResponseBody
|
||||
// @Router /role/updateapis [post]
|
||||
// @Security ApiKeyAuth
|
||||
func (m *RoleController) UpdateApis(c *gin.Context) {
|
||||
req := new(request.RoleUpdateApisReq)
|
||||
Run(c, req, func() (interface{}, interface{}) {
|
||||
|
|
|
@ -9,7 +9,16 @@ import (
|
|||
|
||||
type UserController struct{}
|
||||
|
||||
// Add 添加记录
|
||||
// Add 添加用户记录
|
||||
// @Summary 添加用户记录
|
||||
// @Description 添加用户记录
|
||||
// @Tags 用户管理
|
||||
// @Accept application/json
|
||||
// @Produce application/json
|
||||
// @Param data body request.UserAddReq true "添加用户记录的结构体"
|
||||
// @Success 200 {object} response.ResponseBody
|
||||
// @Router /user/add [post]
|
||||
// @Security ApiKeyAuth
|
||||
func (m *UserController) Add(c *gin.Context) {
|
||||
req := new(request.UserAddReq)
|
||||
Run(c, req, func() (interface{}, interface{}) {
|
||||
|
@ -17,7 +26,16 @@ func (m *UserController) Add(c *gin.Context) {
|
|||
})
|
||||
}
|
||||
|
||||
// Update 更新记录
|
||||
// Update 更新用户记录
|
||||
// @Summary 更新用户记录
|
||||
// @Description 添加用户记录
|
||||
// @Tags 用户管理
|
||||
// @Accept application/json
|
||||
// @Produce application/json
|
||||
// @Param data body request.UserUpdateReq true "更改用户记录的结构体"
|
||||
// @Success 200 {object} response.ResponseBody
|
||||
// @Router /user/update [post]
|
||||
// @Security ApiKeyAuth
|
||||
func (m *UserController) Update(c *gin.Context) {
|
||||
req := new(request.UserUpdateReq)
|
||||
Run(c, req, func() (interface{}, interface{}) {
|
||||
|
@ -26,6 +44,14 @@ func (m *UserController) Update(c *gin.Context) {
|
|||
}
|
||||
|
||||
// List 记录列表
|
||||
// @Summary 获取所有用户记录列表
|
||||
// @Description 获取所有用户记录列表
|
||||
// @Tags 用户管理
|
||||
// @Accept application/json
|
||||
// @Produce application/json
|
||||
// @Success 200 {object} response.ResponseBody
|
||||
// @Router /user/list [get]
|
||||
// @Security ApiKeyAuth
|
||||
func (m *UserController) List(c *gin.Context) {
|
||||
req := new(request.UserListReq)
|
||||
Run(c, req, func() (interface{}, interface{}) {
|
||||
|
@ -33,7 +59,16 @@ func (m *UserController) List(c *gin.Context) {
|
|||
})
|
||||
}
|
||||
|
||||
// Delete 删除记录
|
||||
// Delete 删除用户记录
|
||||
// @Summary 删除用户记录
|
||||
// @Description 删除用户记录
|
||||
// @Tags 用户管理
|
||||
// @Accept application/json
|
||||
// @Produce application/json
|
||||
// @Param data body request.UserDeleteReq true "删除用户记录的结构体ID"
|
||||
// @Success 200 {object} response.ResponseBody
|
||||
// @Router /user/delete [post]
|
||||
// @Security ApiKeyAuth
|
||||
func (m UserController) Delete(c *gin.Context) {
|
||||
req := new(request.UserDeleteReq)
|
||||
Run(c, req, func() (interface{}, interface{}) {
|
||||
|
@ -42,6 +77,15 @@ func (m UserController) Delete(c *gin.Context) {
|
|||
}
|
||||
|
||||
// ChangePwd 更新密码
|
||||
// @Summary 更新密码
|
||||
// @Description 更新密码
|
||||
// @Tags 用户管理
|
||||
// @Accept application/json
|
||||
// @Produce application/json
|
||||
// @Param data body request.UserChangePwdReq true "更改用户密码的结构体"
|
||||
// @Success 200 {object} response.ResponseBody
|
||||
// @Router /user/changePwd [post]
|
||||
// @Security ApiKeyAuth
|
||||
func (m UserController) ChangePwd(c *gin.Context) {
|
||||
req := new(request.UserChangePwdReq)
|
||||
Run(c, req, func() (interface{}, interface{}) {
|
||||
|
@ -50,6 +94,15 @@ func (m UserController) ChangePwd(c *gin.Context) {
|
|||
}
|
||||
|
||||
// ChangeUserStatus 更改用户状态
|
||||
// @Summary 更改用户状态
|
||||
// @Description 更改用户状态
|
||||
// @Tags 用户管理
|
||||
// @Accept application/json
|
||||
// @Produce application/json
|
||||
// @Param data body request.UserChangeUserStatusReq true "更改用户状态的结构体"
|
||||
// @Success 200 {object} response.ResponseBody
|
||||
// @Router /user/changeUserStatus [post]
|
||||
// @Security ApiKeyAuth
|
||||
func (m UserController) ChangeUserStatus(c *gin.Context) {
|
||||
req := new(request.UserChangeUserStatusReq)
|
||||
Run(c, req, func() (interface{}, interface{}) {
|
||||
|
@ -58,6 +111,14 @@ func (m UserController) ChangeUserStatus(c *gin.Context) {
|
|||
}
|
||||
|
||||
// GetUserInfo 获取当前登录用户信息
|
||||
// @Summary 获取当前登录用户信息
|
||||
// @Description 获取当前登录用户信息
|
||||
// @Tags 用户管理
|
||||
// @Accept application/json
|
||||
// @Produce application/json
|
||||
// @Success 200 {object} response.ResponseBody
|
||||
// @Router /user/info [get]
|
||||
// @Security ApiKeyAuth
|
||||
func (uc UserController) GetUserInfo(c *gin.Context) {
|
||||
req := new(request.UserGetUserInfoReq)
|
||||
Run(c, req, func() (interface{}, interface{}) {
|
||||
|
@ -65,7 +126,16 @@ func (uc UserController) GetUserInfo(c *gin.Context) {
|
|||
})
|
||||
}
|
||||
|
||||
// 同步钉钉用户信息
|
||||
// SyncDingTalkUsers 同步钉钉用户信息
|
||||
// @Summary 同步钉钉用户信息
|
||||
// @Description 同步钉钉用户信息
|
||||
// @Tags 用户管理
|
||||
// @Accept application/json
|
||||
// @Produce application/json
|
||||
// @Param data body request.SyncDingUserReq true "同步钉钉用户信息"
|
||||
// @Success 200 {object} response.ResponseBody
|
||||
// @Router /user/syncDingTalkUsers [post]
|
||||
// @Security ApiKeyAuth
|
||||
func (uc UserController) SyncDingTalkUsers(c *gin.Context) {
|
||||
req := new(request.SyncDingUserReq)
|
||||
Run(c, req, func() (interface{}, interface{}) {
|
||||
|
@ -73,7 +143,16 @@ func (uc UserController) SyncDingTalkUsers(c *gin.Context) {
|
|||
})
|
||||
}
|
||||
|
||||
// 同步企业微信用户信息
|
||||
// SyncWeComUsers 同步企业微信用户信息
|
||||
// @Summary 同步企业微信用户信息
|
||||
// @Description 同步企业微信用户信息
|
||||
// @Tags 用户管理
|
||||
// @Accept application/json
|
||||
// @Produce application/json
|
||||
// @Param data body request.SyncWeComUserReq true "同步企业微信用户信息"
|
||||
// @Success 200 {object} response.ResponseBody
|
||||
// @Router /user/syncWeComUsers [post]
|
||||
// @Security ApiKeyAuth
|
||||
func (uc UserController) SyncWeComUsers(c *gin.Context) {
|
||||
req := new(request.SyncWeComUserReq)
|
||||
Run(c, req, func() (interface{}, interface{}) {
|
||||
|
@ -81,7 +160,16 @@ func (uc UserController) SyncWeComUsers(c *gin.Context) {
|
|||
})
|
||||
}
|
||||
|
||||
// 同步飞书用户信息
|
||||
// SyncFeiShuUsers 同步飞书用户信息
|
||||
// @Summary 同步飞书用户信息
|
||||
// @Description 同步飞书用户信息
|
||||
// @Tags 用户管理
|
||||
// @Accept application/json
|
||||
// @Produce application/json
|
||||
// @Param data body request.SyncFeiShuUserReq true "同步飞书用户信息"
|
||||
// @Success 200 {object} response.ResponseBody
|
||||
// @Router /user/syncFeiShuUsers [post]
|
||||
// @Security ApiKeyAuth
|
||||
func (uc UserController) SyncFeiShuUsers(c *gin.Context) {
|
||||
req := new(request.SyncFeiShuUserReq)
|
||||
Run(c, req, func() (interface{}, interface{}) {
|
||||
|
@ -89,7 +177,16 @@ func (uc UserController) SyncFeiShuUsers(c *gin.Context) {
|
|||
})
|
||||
}
|
||||
|
||||
// 同步ldap用户信息
|
||||
// SyncOpenLdapUsers 同步ldap用户信息
|
||||
// @Summary 同步ldap用户信息
|
||||
// @Description 同步ldap用户信息
|
||||
// @Tags 用户管理
|
||||
// @Accept application/json
|
||||
// @Produce application/json
|
||||
// @Param data body request.SyncOpenLdapUserReq true "同步ldap用户信息"
|
||||
// @Success 200 {object} response.ResponseBody
|
||||
// @Router /user/syncOpenLdapUsers [post]
|
||||
// @Security ApiKeyAuth
|
||||
func (uc UserController) SyncOpenLdapUsers(c *gin.Context) {
|
||||
req := new(request.SyncOpenLdapUserReq)
|
||||
Run(c, req, func() (interface{}, interface{}) {
|
||||
|
@ -97,7 +194,16 @@ func (uc UserController) SyncOpenLdapUsers(c *gin.Context) {
|
|||
})
|
||||
}
|
||||
|
||||
// 同步sql用户信息到ldap
|
||||
// SyncSqlUsers 同步sql用户信息到ldap
|
||||
// @Summary 同步sql用户信息到ldap
|
||||
// @Description 同步sql用户信息到ldap
|
||||
// @Tags 用户管理
|
||||
// @Accept application/json
|
||||
// @Produce application/json
|
||||
// @Param data body request.SyncSqlUserReq true "更改用户状态的结构体"
|
||||
// @Success 200 {object} response.ResponseBody
|
||||
// @Router /user/syncSqlUsers [post]
|
||||
// @Security ApiKeyAuth
|
||||
func (uc UserController) SyncSqlUsers(c *gin.Context) {
|
||||
req := new(request.SyncSqlUserReq)
|
||||
Run(c, req, func() (interface{}, interface{}) {
|
||||
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
33
go.mod
33
go.mod
|
@ -17,6 +17,9 @@ require (
|
|||
github.com/patrickmn/go-cache v2.1.0+incompatible
|
||||
github.com/robfig/cron/v3 v3.0.0
|
||||
github.com/spf13/viper v1.11.0
|
||||
github.com/swaggo/files v1.0.1
|
||||
github.com/swaggo/gin-swagger v1.6.0
|
||||
github.com/swaggo/swag v1.16.2
|
||||
github.com/thoas/go-funk v0.7.0
|
||||
github.com/zhaoyunxing92/dingtalk/v2 v2.1.1-0.20231013102126-c1568b7fbac5
|
||||
go.uber.org/zap v1.19.1
|
||||
|
@ -35,13 +38,22 @@ require (
|
|||
|
||||
require (
|
||||
github.com/BurntSushi/toml v1.1.0 // indirect
|
||||
github.com/KyleBanks/depth v1.2.1 // indirect
|
||||
github.com/PuerkitoBio/purell v1.1.1 // indirect
|
||||
github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 // indirect
|
||||
github.com/dustin/go-humanize v1.0.1 // indirect
|
||||
github.com/glebarez/go-sqlite v1.20.3 // indirect
|
||||
github.com/go-openapi/jsonpointer v0.19.5 // indirect
|
||||
github.com/go-openapi/jsonreference v0.19.6 // indirect
|
||||
github.com/go-openapi/spec v0.20.4 // indirect
|
||||
github.com/go-openapi/swag v0.19.15 // indirect
|
||||
github.com/golang-sql/sqlexp v0.1.0 // indirect
|
||||
github.com/golang/mock v1.6.0 // indirect
|
||||
github.com/google/go-cmp v0.5.9 // indirect
|
||||
github.com/google/uuid v1.3.0 // indirect
|
||||
github.com/josharian/intern v1.0.0 // indirect
|
||||
github.com/lib/pq v1.10.4 // indirect
|
||||
github.com/mailru/easyjson v0.7.6 // indirect
|
||||
github.com/microsoft/go-mssqldb v0.17.0 // indirect
|
||||
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
|
||||
github.com/modern-go/reflect2 v1.0.2 // indirect
|
||||
|
@ -51,6 +63,8 @@ require (
|
|||
github.com/tidwall/match v1.1.1 // indirect
|
||||
github.com/tidwall/pretty v1.2.0 // indirect
|
||||
github.com/wenerme/go-req v0.0.0-20210907160348-d822e81276bb // indirect
|
||||
golang.org/x/net v0.8.0 // indirect
|
||||
golang.org/x/tools v0.7.0 // indirect
|
||||
gopkg.in/yaml.v3 v3.0.1 // indirect
|
||||
modernc.org/libc v1.22.2 // indirect
|
||||
modernc.org/mathutil v1.5.0 // indirect
|
||||
|
@ -94,9 +108,9 @@ require (
|
|||
github.com/ugorji/go/codec v1.2.3 // indirect
|
||||
go.uber.org/atomic v1.7.0 // indirect
|
||||
go.uber.org/multierr v1.6.0 // indirect
|
||||
golang.org/x/crypto v0.0.0-20221005025214-4161e89ecf1b // indirect
|
||||
golang.org/x/sys v0.5.0 // indirect
|
||||
golang.org/x/text v0.3.7 // indirect
|
||||
golang.org/x/crypto v0.5.0 // indirect
|
||||
golang.org/x/sys v0.6.0 // indirect
|
||||
golang.org/x/text v0.8.0 // indirect
|
||||
google.golang.org/protobuf v1.28.0 // indirect
|
||||
gopkg.in/alexcesaro/quotedprintable.v3 v3.0.0-20150716171945-2caba252f4dc // indirect
|
||||
gopkg.in/ini.v1 v1.66.4 // indirect
|
||||
|
@ -104,3 +118,16 @@ require (
|
|||
gorm.io/driver/postgres v1.4.5 // indirect
|
||||
gorm.io/driver/sqlserver v1.4.1 // indirect
|
||||
)
|
||||
|
||||
exclude (
|
||||
github.com/gin-gonic/gin v1.9.0
|
||||
github.com/go-playground/locales v0.14.1
|
||||
github.com/go-playground/universal-translator v0.18.1
|
||||
github.com/go-playground/validator/v10 v10.11.2
|
||||
github.com/pelletier/go-toml/v2 v2.0.6
|
||||
github.com/ugorji/go/codec v1.2.9
|
||||
golang.org/x/crypto v0.14.0
|
||||
golang.org/x/sys v0.13.0
|
||||
golang.org/x/text v0.13.0
|
||||
google.golang.org/protobuf v1.28.1
|
||||
)
|
||||
|
|
63
go.sum
63
go.sum
|
@ -48,8 +48,14 @@ github.com/BurntSushi/toml v1.1.0/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbi
|
|||
github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo=
|
||||
github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible h1:1G1pk05UrOh0NlF1oeaaix1x8XzrfjIDK47TY0Zehcw=
|
||||
github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible/go.mod h1:r7JcOSlj0wfOMncg0iLm8Leh48TZaKVeNIfJntJ2wa0=
|
||||
github.com/KyleBanks/depth v1.2.1 h1:5h8fQADFrWtarTdtDudMmGsC7GPbOAu6RVB3ffsVFHc=
|
||||
github.com/KyleBanks/depth v1.2.1/go.mod h1:jzSb9d0L43HxTQfT+oSA1EEp2q+ne2uh6XgeJcm8brE=
|
||||
github.com/Masterminds/semver/v3 v3.1.1 h1:hLg3sBzpNErnxhQtUy/mmLR2I9foDujNK030IGemrRc=
|
||||
github.com/Masterminds/semver/v3 v3.1.1/go.mod h1:VPu/7SZ7ePZ3QOrcuXROw5FAcLl4a0cBrbBpGY/8hQs=
|
||||
github.com/PuerkitoBio/purell v1.1.1 h1:WEQqlqaGbrPkxLJWfBwQmfEAE1Z7ONdDLqrN38tNFfI=
|
||||
github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0=
|
||||
github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 h1:d+Bc7a5rLufV/sSk/8dngufqelfh6jnri85riMAaF/M=
|
||||
github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE=
|
||||
github.com/appleboy/gin-jwt/v2 v2.6.4 h1:4YlMh3AjCFnuIRiL27b7TXns7nLx8tU/TiSgh40RRUI=
|
||||
github.com/appleboy/gin-jwt/v2 v2.6.4/go.mod h1:CZpq1cRw+kqi0+yD2CwVw7VGXrrx4AqBdeZnwxVmoAs=
|
||||
github.com/appleboy/gofight/v2 v2.1.2 h1:VOy3jow4vIK8BRQJoC/I9muxyYlJ2yb9ht2hZoS3rf4=
|
||||
|
@ -97,6 +103,7 @@ github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.m
|
|||
github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
|
||||
github.com/fsnotify/fsnotify v1.5.4 h1:jRbGcIw6P2Meqdwuo0H1p6JVLbL5DHKAKlYndzMwVZI=
|
||||
github.com/fsnotify/fsnotify v1.5.4/go.mod h1:OVB6XrOHzAwXMpEM7uPOzcehqUV2UqJxmVXmkdnm1bU=
|
||||
github.com/gin-contrib/gzip v0.0.6 h1:NjcunTcGAj5CO1gn4N8jHOSIeRFHIbn51z6K+xaN4d4=
|
||||
github.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE=
|
||||
github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI=
|
||||
github.com/gin-gonic/gin v1.6.3 h1:ahKqKTFpO5KTPHxWZjEdPScmYaGtLo8Y4DMHoEsnp14=
|
||||
|
@ -116,6 +123,16 @@ github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vb
|
|||
github.com/go-ldap/ldap/v3 v3.4.2 h1:zFZKcXKLqZpFMrMQGHeHWKXbDTdNCmhGY9AK41zPh+8=
|
||||
github.com/go-ldap/ldap/v3 v3.4.2/go.mod h1:iYS1MdmrmceOJ1QOTnRXrIs7i3kloqtmGQjRvjKpyMg=
|
||||
github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A=
|
||||
github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg=
|
||||
github.com/go-openapi/jsonpointer v0.19.5 h1:gZr+CIYByUqjcgeLXnQu2gHYQC9o73G2XUeOFYEICuY=
|
||||
github.com/go-openapi/jsonpointer v0.19.5/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg=
|
||||
github.com/go-openapi/jsonreference v0.19.6 h1:UBIxjkht+AWIgYzCDSv2GN+E/togfwXUJFRTWhl2Jjs=
|
||||
github.com/go-openapi/jsonreference v0.19.6/go.mod h1:diGHMEHg2IqXZGKxqyvWdfWU/aim5Dprw5bqpKkTvns=
|
||||
github.com/go-openapi/spec v0.20.4 h1:O8hJrt0UMnhHcluhIdUgCLRWyM2x7QkBXRvOs7m+O1M=
|
||||
github.com/go-openapi/spec v0.20.4/go.mod h1:faYFR1CvsJZ0mNsmsphTMSoRrNV3TEDoAM7FOEWeq8I=
|
||||
github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk=
|
||||
github.com/go-openapi/swag v0.19.15 h1:D2NRCBzS9/pEY3gP9Nl8aDqGUcPFrwG2p+CNFrLyrCM=
|
||||
github.com/go-openapi/swag v0.19.15/go.mod h1:QYRuS/SOXUCsnplDa677K7+DxSOj6IPNl/eQntq43wQ=
|
||||
github.com/go-playground/assert/v2 v2.0.1 h1:MsBgLAaY856+nPRTKrp3/OZK38U/wa0CcBYNjji3q3A=
|
||||
github.com/go-playground/assert/v2 v2.0.1/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4=
|
||||
github.com/go-playground/locales v0.13.0/go.mod h1:taPMhCMXrRLJO55olJkUXHZBHCxTMfnGwq/HNwmWNS8=
|
||||
|
@ -286,6 +303,8 @@ github.com/jinzhu/now v1.1.1/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/
|
|||
github.com/jinzhu/now v1.1.4/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8=
|
||||
github.com/jinzhu/now v1.1.5 h1:/o9tlHleP7gOFmsnYNz3RGnqzefHA47wQpKrrdTIwXQ=
|
||||
github.com/jinzhu/now v1.1.5/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8=
|
||||
github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY=
|
||||
github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y=
|
||||
github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
|
||||
github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM=
|
||||
github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo=
|
||||
|
@ -320,6 +339,10 @@ github.com/lib/pq v1.10.4 h1:SO9z7FRPzA03QhHKJrH5BXA6HU1rS4V2nIVrrNC1iYk=
|
|||
github.com/lib/pq v1.10.4/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o=
|
||||
github.com/magiconair/properties v1.8.6 h1:5ibWZ6iY0NctNGWo87LalDlEZ6R41TqbbDamhfG/Qzo=
|
||||
github.com/magiconair/properties v1.8.6/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60=
|
||||
github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
|
||||
github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
|
||||
github.com/mailru/easyjson v0.7.6 h1:8yTIVnZgCoiM1TgqoeTl+LfU5Jg6/xL3QhGQnimLYnA=
|
||||
github.com/mailru/easyjson v0.7.6/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc=
|
||||
github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ=
|
||||
github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE=
|
||||
github.com/mattn/go-colorable v0.1.6/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc=
|
||||
|
@ -346,6 +369,7 @@ github.com/modocache/gover v0.0.0-20171022184752-b58185e213c5/go.mod h1:caMODM3P
|
|||
github.com/montanaflynn/stats v0.6.6/go.mod h1:etXPPgVO6n31NxCd9KQUMvCM+ve0ruNzt6R8Bnaayow=
|
||||
github.com/mozillazg/go-pinyin v0.19.0 h1:p+J8/kjJ558KPvVGYLvqBhxf8jbZA2exSLCs2uUVN8c=
|
||||
github.com/mozillazg/go-pinyin v0.19.0/go.mod h1:iR4EnMMRXkfpFVV5FMi4FNB6wGq9NV6uDWbUuPhP4Yc=
|
||||
github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno=
|
||||
github.com/patrickmn/go-cache v2.1.0+incompatible h1:HRMgzkcYKYpi3C8ajMPV8OFXaaRUnok+kx1WdO15EQc=
|
||||
github.com/patrickmn/go-cache v2.1.0+incompatible/go.mod h1:3Qf8kWWT7OJRJbdiICTKqZju1ZixQ/KpMGzzAfe6+WQ=
|
||||
github.com/pelletier/go-toml v1.9.5 h1:4yBQzkHv+7BHq2PQUZF3Mx0IYxG7LsP222s7Agd3ve8=
|
||||
|
@ -404,10 +428,16 @@ github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/
|
|||
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
||||
github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
||||
github.com/stretchr/testify v1.7.4/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
|
||||
github.com/stretchr/testify v1.8.0 h1:pSgiaMZlXftHpm5L7V1+rVB+AZJydKsMxsQBIJw4PKk=
|
||||
github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
|
||||
github.com/stretchr/testify v1.8.1 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKsk=
|
||||
github.com/subosito/gotenv v1.2.0 h1:Slr1R9HxAlEKefgq5jn9U+DnETlIUa6HfgEzj0g5d7s=
|
||||
github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw=
|
||||
github.com/swaggo/files v1.0.1 h1:J1bVJ4XHZNq0I46UU90611i9/YzdrF7x92oX1ig5IdE=
|
||||
github.com/swaggo/files v1.0.1/go.mod h1:0qXmMNH6sXNf+73t65aKeB+ApmgxdnkQzVTAj2uaMUg=
|
||||
github.com/swaggo/gin-swagger v1.6.0 h1:y8sxvQ3E20/RCyrXeFfg60r6H0Z+SwpTjMYsMm+zy8M=
|
||||
github.com/swaggo/gin-swagger v1.6.0/go.mod h1:BG00cCEy294xtVpyIAHG6+e2Qzj/xKlRdOqDkvq0uzo=
|
||||
github.com/swaggo/swag v1.16.2 h1:28Pp+8DkQoV+HLzLx8RGJZXNGKbFqnuvSbAAtoxiY04=
|
||||
github.com/swaggo/swag v1.16.2/go.mod h1:6YzXnDcpr0767iOejs318CwYkCQqyGer6BizOg03f+E=
|
||||
github.com/thoas/go-funk v0.7.0 h1:GmirKrs6j6zJbhJIficOsz2aAI7700KsU/5YrdHRM1Y=
|
||||
github.com/thoas/go-funk v0.7.0/go.mod h1:+IWnUfUmFO1+WVYQWQtIJHeRRdaIyyYglZN7xzUPe4Q=
|
||||
github.com/tidwall/gjson v1.6.0/go.mod h1:P256ACg0Mn+j1RXIDXoss50DeIABTYK1PULOJHhxOls=
|
||||
|
@ -433,9 +463,8 @@ github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9de
|
|||
github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
||||
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
||||
github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
|
||||
github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
|
||||
github.com/zenazn/goji v0.9.0/go.mod h1:7S9M489iMyHBNxwZnk9/EHS098H4/F6TATF2mIxtB1Q=
|
||||
github.com/zhaoyunxing92/dingtalk/v2 v2.0.7-0.20220601083444-173c10c3f835 h1:T6/rI54b4nVpQlIDv0iB0hTff4hzlXe63QcBcZ3u73s=
|
||||
github.com/zhaoyunxing92/dingtalk/v2 v2.0.7-0.20220601083444-173c10c3f835/go.mod h1:MSvHUbYR94ffuWbJKFb8yHYyHg3qC/kQ3Hqpr6lK5ko=
|
||||
github.com/zhaoyunxing92/dingtalk/v2 v2.1.1-0.20231013102126-c1568b7fbac5 h1:Ur2sZLt+zwZeYw3aNi/YhsreTnXqIeM7YrmaSH3obmA=
|
||||
github.com/zhaoyunxing92/dingtalk/v2 v2.1.1-0.20231013102126-c1568b7fbac5/go.mod h1:MSvHUbYR94ffuWbJKFb8yHYyHg3qC/kQ3Hqpr6lK5ko=
|
||||
go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU=
|
||||
|
@ -478,11 +507,13 @@ golang.org/x/crypto v0.0.0-20201203163018-be400aefbc4c/go.mod h1:jdWPYTVW3xRLrWP
|
|||
golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4=
|
||||
golang.org/x/crypto v0.0.0-20210616213533-5ff15b29337e/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
|
||||
golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
|
||||
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
|
||||
golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
|
||||
golang.org/x/crypto v0.0.0-20220511200225-c6db032c6c88/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
|
||||
golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
|
||||
golang.org/x/crypto v0.0.0-20221005025214-4161e89ecf1b h1:huxqepDufQpLLIRXiVkTvnxrzJlpwmIWAObmcCcUFr0=
|
||||
golang.org/x/crypto v0.0.0-20221005025214-4161e89ecf1b/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
|
||||
golang.org/x/crypto v0.5.0 h1:U/0M97KRkSFvyD/3FSmdP5W5swImpNgle/EHFhOsQPE=
|
||||
golang.org/x/crypto v0.5.0/go.mod h1:NK/OQwhpMQP3MwtdjgLlYHnH9ebylxKWv3e0fK+mkQU=
|
||||
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
|
||||
golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
|
||||
golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
|
||||
|
@ -517,6 +548,8 @@ golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
|||
golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
||||
golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
||||
golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
||||
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
|
||||
golang.org/x/mod v0.9.0 h1:KENHtAZL2y3NLMYZeHY9DW8HW8V+kQyJsY/V9JlKvCs=
|
||||
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||
golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||
golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||
|
@ -551,8 +584,13 @@ golang.org/x/net v0.0.0-20201209123823-ac852fbbde11/go.mod h1:m0MpNAwzfU5UDzcl9v
|
|||
golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
|
||||
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
|
||||
golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM=
|
||||
golang.org/x/net v0.0.0-20210421230115-4e50805a0758/go.mod h1:72T/g9IO56b78aLF+1Kcs5dz7/ng1VjMUvfKvpfy+jM=
|
||||
golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
|
||||
golang.org/x/net v0.0.0-20220425223048-2871e0cb64e4/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk=
|
||||
golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
|
||||
golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
|
||||
golang.org/x/net v0.8.0 h1:Zrh2ngAOFYneWTAIAPethzeaQLuHwhuBkuV6ZiRnUaQ=
|
||||
golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc=
|
||||
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
|
||||
golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
|
||||
golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
|
||||
|
@ -573,6 +611,7 @@ golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJ
|
|||
golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||
golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||
|
@ -615,6 +654,7 @@ golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7w
|
|||
golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20210225134936-a50acf3fe073/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20210420072515-93ed5bcd2bfe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20210423185535-09eb48e85fd7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
|
@ -624,12 +664,16 @@ golang.org/x/sys v0.0.0-20210806184541-e5e7981a1069/go.mod h1:oPkhp1MJrh7nUepCBc
|
|||
golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20220224120231-95c6836cb0e7/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20220412211240-33da011f77ad/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.5.0 h1:MUK/U/4lj1t1oPg0HfuXDN/Z1wv31ZJ/YcPiGccS4DU=
|
||||
golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.6.0 h1:MVltZSvRTcU2ljQOhs94SXPftV6DCNnZViHeQps87pQ=
|
||||
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw=
|
||||
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
|
||||
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
|
||||
golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k=
|
||||
golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||
golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||
|
@ -637,8 +681,10 @@ golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
|
|||
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
||||
golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
||||
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
||||
golang.org/x/text v0.3.7 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk=
|
||||
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
|
||||
golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
|
||||
golang.org/x/text v0.8.0 h1:57P1ETyNKtuIjB4SRd15iJxuhj8Gc416Y78H3qgMh68=
|
||||
golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8=
|
||||
golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
||||
golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
||||
golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
||||
|
@ -696,6 +742,9 @@ golang.org/x/tools v0.0.0-20210108195828-e2f9c7f1fc8e/go.mod h1:emZCQorbCU4vsT4f
|
|||
golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0=
|
||||
golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
|
||||
golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
|
||||
golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
|
||||
golang.org/x/tools v0.7.0 h1:W4OVu8VVOaIO0yzWMNdepAulS7YfoS3Zabrm8DOXXU4=
|
||||
golang.org/x/tools v0.7.0/go.mod h1:4pg6aUX35JBAogB10C9AtvVL+qowtN4pT3CGSQex14s=
|
||||
golang.org/x/xerrors v0.0.0-20190410155217-1f06c39b4373/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||
golang.org/x/xerrors v0.0.0-20190513163551-3ee3066db522/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||
|
@ -798,6 +847,7 @@ gopkg.in/alexcesaro/quotedprintable.v3 v3.0.0-20150716171945-2caba252f4dc h1:2gG
|
|||
gopkg.in/alexcesaro/quotedprintable.v3 v3.0.0-20150716171945-2caba252f4dc/go.mod h1:m7x9LTH6d71AHyAX77c9yqWCCa3UKHcVEj9y7hAtKDk=
|
||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||
gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
|
||||
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
|
||||
gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI=
|
||||
|
@ -814,6 +864,7 @@ gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
|||
gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
|
||||
gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
|
||||
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||
gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||
gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
|
||||
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||
|
|
|
@ -83,5 +83,5 @@ func (l OperationLogLogic) Clean(c *gin.Context, req interface{}) (data interfac
|
|||
if err != nil {
|
||||
return err, nil
|
||||
}
|
||||
return "操作日志情况完成", nil
|
||||
return "操作日志清空完成", nil
|
||||
}
|
||||
|
|
14
main.go
14
main.go
|
@ -17,6 +17,20 @@ import (
|
|||
"github.com/eryajf/go-ldap-admin/service/isql"
|
||||
)
|
||||
|
||||
// @title Go Ldap Admin
|
||||
// @version 1.0
|
||||
// @description 基于Go+Vue实现的openLDAP后台管理项目
|
||||
// @termsOfService https://github.com/eryajf/go-ldap-admin
|
||||
|
||||
// @contact.name 项目作者:二丫讲梵 、 swagger作者:南宫乘风
|
||||
// @contact.url https://github.com/eryajf/go-ldap-admin
|
||||
// @contact.email https://github.com/eryajf/go-ldap-admin
|
||||
|
||||
// @host 127.0.0.1:8888
|
||||
// @BasePath /api
|
||||
// @securityDefinitions.apikey ApiKeyAuth
|
||||
// @in header
|
||||
// @name Authorization
|
||||
func main() {
|
||||
|
||||
// 加载配置文件到全局配置结构体
|
||||
|
|
|
@ -0,0 +1,15 @@
|
|||
package response
|
||||
|
||||
/**
|
||||
* @Author: 南宫乘风
|
||||
* @Description:
|
||||
* @File: responsebody.go
|
||||
* @Email: 1794748404@qq.com
|
||||
* @Date: 2024-05-17 16:24
|
||||
*/
|
||||
|
||||
type ResponseBody struct {
|
||||
Code int `json:"code"`
|
||||
Msg string `json:"msg"`
|
||||
Data interface{} `json:"data"`
|
||||
}
|
|
@ -6,11 +6,13 @@ import (
|
|||
"time"
|
||||
|
||||
"github.com/eryajf/go-ldap-admin/config"
|
||||
_ "github.com/eryajf/go-ldap-admin/docs"
|
||||
"github.com/eryajf/go-ldap-admin/middleware"
|
||||
"github.com/eryajf/go-ldap-admin/public/common"
|
||||
"github.com/eryajf/go-ldap-admin/public/static"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
swaggerFiles "github.com/swaggo/files"
|
||||
ginSwagger "github.com/swaggo/gin-swagger"
|
||||
)
|
||||
|
||||
// 初始化
|
||||
|
@ -53,10 +55,10 @@ func InitRoutes() *gin.Engine {
|
|||
common.Log.Panicf("初始化JWT中间件失败:%v", err)
|
||||
panic(fmt.Sprintf("初始化JWT中间件失败:%v", err))
|
||||
}
|
||||
|
||||
// 路由分组
|
||||
// swag
|
||||
r.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler))
|
||||
apiGroup := r.Group("/" + config.Conf.System.UrlPathPrefix)
|
||||
|
||||
// swag
|
||||
// 注册路由
|
||||
InitBaseRoutes(apiGroup, authMiddleware) // 注册基础路由, 不需要jwt认证中间件,不需要casbin中间件
|
||||
InitUserRoutes(apiGroup, authMiddleware) // 注册用户路由, jwt认证中间件,casbin鉴权中间件
|
||||
|
|
|
@ -1,12 +1,46 @@
|
|||
package routes
|
||||
|
||||
import (
|
||||
"github.com/eryajf/go-ldap-admin/controller"
|
||||
|
||||
jwt "github.com/appleboy/gin-jwt/v2"
|
||||
"github.com/eryajf/go-ldap-admin/controller"
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
|
||||
// LoginHandler
|
||||
// @Summary 登录接口 (手动加上: Bearer + token(密码加密接口))
|
||||
// @Description 用户登录
|
||||
// @Tags 基础管理
|
||||
// @Accept application/json
|
||||
// @Produce application/json
|
||||
// @Param data body request.RegisterAndLoginReq true "用户登录信息账号和密码"
|
||||
// @Success 200 {object} response.ResponseBody
|
||||
// @Router /base/login [post]
|
||||
func LoginHandler() {}
|
||||
|
||||
// LogoutHandler
|
||||
// @Summary 退出登录
|
||||
// @Description 用户退出登录
|
||||
// @Tags 基础管理
|
||||
// @Accept application/json
|
||||
// @Produce application/json
|
||||
// @Success 200 {object} response.ResponseBody
|
||||
// @Router /base/logout [post]
|
||||
func LogoutHandler() {
|
||||
}
|
||||
|
||||
// RefreshHandler
|
||||
// @Summary 刷新 Token
|
||||
// @Description 使用旧的 Token 获取新的 Token
|
||||
// @Tags 基础管理
|
||||
// @Accept application/json
|
||||
// @Produce application/json
|
||||
// @Param Authorization header string true "Bearer 旧的 Token"
|
||||
// @Success 200 {object} response.ResponseBody
|
||||
// @Router /base/refreshToken [post]
|
||||
func RefreshHandler() {
|
||||
|
||||
}
|
||||
|
||||
// 注册基础路由
|
||||
func InitBaseRoutes(r *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware) gin.IRoutes {
|
||||
base := r.Group("/base")
|
||||
|
|
Loading…
Reference in New Issue