mirror of
https://github.com/bufanyun/hotgo.git
synced 2025-02-02 18:28:41 +08:00
Merge pull request #39 from bufanyun/v2.0
消息订阅增加多个消息支持,优化文件选择器清空操作,添加后台用户时增加角色部门验证
This commit is contained in:
commit
31ec4040ca
@ -1,4 +1,4 @@
|
|||||||
// Package consts
|
// Package global
|
||||||
// @Link https://github.com/bufanyun/hotgo
|
// @Link https://github.com/bufanyun/hotgo
|
||||||
// @Copyright Copyright (c) 2023 HotGo CLI
|
// @Copyright Copyright (c) 2023 HotGo CLI
|
||||||
// @Author Ms <133814250@qq.com>
|
// @Author Ms <133814250@qq.com>
|
||||||
@ -22,21 +22,15 @@ func SubscribeClusterSync(ctx context.Context) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// 系统配置
|
err := pubsub.SubscribeMap(map[string]pubsub.SubHandler{
|
||||||
if err := pubsub.Subscribe(consts.ClusterSyncSysconfig, service.SysConfig().ClusterSync); err != nil {
|
consts.ClusterSyncSysconfig: service.SysConfig().ClusterSync, // 系统配置
|
||||||
|
consts.ClusterSyncSysBlacklist: service.SysBlacklist().ClusterSync, // 系统黑名单
|
||||||
|
consts.ClusterSyncSysSuperAdmin: service.AdminMember().ClusterSyncSuperAdmin, // 超管
|
||||||
|
})
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
g.Log().Fatal(ctx, err)
|
g.Log().Fatal(ctx, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
// 系统黑名单
|
|
||||||
if err := pubsub.Subscribe(consts.ClusterSyncSysBlacklist, service.SysBlacklist().ClusterSync); err != nil {
|
|
||||||
g.Log().Fatal(ctx, err)
|
|
||||||
}
|
|
||||||
|
|
||||||
// 超管
|
|
||||||
if err := pubsub.Subscribe(consts.ClusterSyncSysSuperAdmin, service.AdminMember().ClusterSyncSuperAdmin); err != nil {
|
|
||||||
g.Log().Fatal(ctx, err)
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// PublishClusterSync 推送集群同步消息,如果没有开启集群部署,则不进行推送
|
// PublishClusterSync 推送集群同步消息,如果没有开启集群部署,则不进行推送
|
||||||
|
@ -26,6 +26,23 @@ var subscribes = &subscribeManager{
|
|||||||
List: make(map[string]SubHandler),
|
List: make(map[string]SubHandler),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// SubscribeMap 订阅多个消息
|
||||||
|
func SubscribeMap(channels map[string]SubHandler) (err error) {
|
||||||
|
if channels == nil || len(channels) == 0 {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
subscribes.mutex.Lock()
|
||||||
|
defer subscribes.mutex.Unlock()
|
||||||
|
|
||||||
|
for channel, hr := range channels {
|
||||||
|
if err = Subscribe(channel, hr); err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
// Subscribe 订阅消息
|
// Subscribe 订阅消息
|
||||||
func Subscribe(channel string, hr SubHandler) (err error) {
|
func Subscribe(channel string, hr SubHandler) (err error) {
|
||||||
subscribes.mutex.Lock()
|
subscribes.mutex.Lock()
|
||||||
|
@ -37,6 +37,7 @@ func init() {
|
|||||||
|
|
||||||
// View 获取指定提现信息
|
// View 获取指定提现信息
|
||||||
func (s *sAdminCash) View(ctx context.Context, in *adminin.CashViewInp) (res *adminin.CashViewModel, err error) {
|
func (s *sAdminCash) View(ctx context.Context, in *adminin.CashViewInp) (res *adminin.CashViewModel, err error) {
|
||||||
|
// 这里做了强制限制非超管不允许访问,如果你想通过菜单权限控制,请注释掉以下验证
|
||||||
if !service.AdminMember().VerifySuperId(ctx, contexts.GetUserId(ctx)) {
|
if !service.AdminMember().VerifySuperId(ctx, contexts.GetUserId(ctx)) {
|
||||||
err = gerror.New("没有访问权限")
|
err = gerror.New("没有访问权限")
|
||||||
return
|
return
|
||||||
@ -153,12 +154,12 @@ func (s *sAdminCash) Apply(ctx context.Context, in *adminin.CashApplyInp) (err e
|
|||||||
}
|
}
|
||||||
|
|
||||||
if err = dao.AdminMember.Ctx(ctx).Where("id", in.MemberId).Scan(&member); err != nil {
|
if err = dao.AdminMember.Ctx(ctx).Where("id", in.MemberId).Scan(&member); err != nil {
|
||||||
err = gerror.Newf("获取管理员信息失败:%+v", err.Error())
|
err = gerror.Newf("获取用户信息失败:%+v", err.Error())
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
if member == nil {
|
if member == nil {
|
||||||
err = gerror.Newf("获取管理员信息失败")
|
err = gerror.Newf("获取用户信息失败")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -20,6 +20,7 @@ import (
|
|||||||
"hotgo/internal/service"
|
"hotgo/internal/service"
|
||||||
"hotgo/utility/convert"
|
"hotgo/utility/convert"
|
||||||
"hotgo/utility/tree"
|
"hotgo/utility/tree"
|
||||||
|
"hotgo/utility/validate"
|
||||||
)
|
)
|
||||||
|
|
||||||
type sAdminDept struct{}
|
type sAdminDept struct{}
|
||||||
@ -333,3 +334,35 @@ func (s *sAdminDept) treeList(pid int64, nodes []*entity.AdminDept) (list []*adm
|
|||||||
}
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// VerifyDeptId 验证部门ID
|
||||||
|
func (s *sAdminDept) VerifyDeptId(ctx context.Context, id int64) (err error) {
|
||||||
|
var (
|
||||||
|
pid int64 = 0
|
||||||
|
mb = contexts.GetUser(ctx)
|
||||||
|
mod = dao.AdminDept.Ctx(ctx).Fields(dao.AdminDept.Columns().Id)
|
||||||
|
)
|
||||||
|
|
||||||
|
if mb == nil {
|
||||||
|
err = gerror.New("用户信息获取失败!")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// 非超管只获取下级
|
||||||
|
if !service.AdminMember().VerifySuperId(ctx, mb.Id) {
|
||||||
|
pid = mb.DeptId
|
||||||
|
mod = mod.WhereLike(dao.AdminDept.Columns().Tree, "%"+tree.GetIdLabel(pid)+"%")
|
||||||
|
}
|
||||||
|
|
||||||
|
columns, err := mod.Array()
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
ids := g.NewVar(columns).Int64s()
|
||||||
|
if !validate.InSlice(ids, id) {
|
||||||
|
err = gerror.New("部门ID是无效的")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
@ -401,7 +401,7 @@ func (s *sAdminMember) VerifyUnique(ctx context.Context, in *adminin.VerifyUniqu
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// Delete 删除
|
// Delete 删除用户
|
||||||
func (s *sAdminMember) Delete(ctx context.Context, in *adminin.MemberDeleteInp) (err error) {
|
func (s *sAdminMember) Delete(ctx context.Context, in *adminin.MemberDeleteInp) (err error) {
|
||||||
if s.VerifySuperId(ctx, gconv.Int64(in.Id)) {
|
if s.VerifySuperId(ctx, gconv.Int64(in.Id)) {
|
||||||
err = gerror.New("超管账号禁止删除!")
|
err = gerror.New("超管账号禁止删除!")
|
||||||
@ -438,7 +438,7 @@ func (s *sAdminMember) Delete(ctx context.Context, in *adminin.MemberDeleteInp)
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// Edit 修改/新增
|
// Edit 修改/新增用户
|
||||||
func (s *sAdminMember) Edit(ctx context.Context, in *adminin.MemberEditInp) (err error) {
|
func (s *sAdminMember) Edit(ctx context.Context, in *adminin.MemberEditInp) (err error) {
|
||||||
opMemberId := contexts.GetUserId(ctx)
|
opMemberId := contexts.GetUserId(ctx)
|
||||||
if opMemberId <= 0 {
|
if opMemberId <= 0 {
|
||||||
@ -464,6 +464,16 @@ func (s *sAdminMember) Edit(ctx context.Context, in *adminin.MemberEditInp) (err
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 验证角色ID
|
||||||
|
if err = service.AdminRole().VerifyRoleId(ctx, in.RoleId); err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// 验证部门ID
|
||||||
|
if err = service.AdminDept().VerifyDeptId(ctx, in.DeptId); err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
config, err := service.SysConfig().GetLogin(ctx)
|
config, err := service.SysConfig().GetLogin(ctx)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return
|
return
|
||||||
@ -564,7 +574,7 @@ func (s *sAdminMember) View(ctx context.Context, in *adminin.MemberViewInp) (res
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// List 获取列表
|
// List 获取用户列表
|
||||||
func (s *sAdminMember) List(ctx context.Context, in *adminin.MemberListInp) (list []*adminin.MemberListModel, totalCount int, err error) {
|
func (s *sAdminMember) List(ctx context.Context, in *adminin.MemberListInp) (list []*adminin.MemberListModel, totalCount int, err error) {
|
||||||
mod := s.FilterAuthModel(ctx, contexts.GetUserId(ctx))
|
mod := s.FilterAuthModel(ctx, contexts.GetUserId(ctx))
|
||||||
cols := dao.AdminMember.Columns()
|
cols := dao.AdminMember.Columns()
|
||||||
|
@ -22,6 +22,7 @@ import (
|
|||||||
"hotgo/internal/service"
|
"hotgo/internal/service"
|
||||||
"hotgo/utility/convert"
|
"hotgo/utility/convert"
|
||||||
"hotgo/utility/tree"
|
"hotgo/utility/tree"
|
||||||
|
"hotgo/utility/validate"
|
||||||
"sort"
|
"sort"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -53,7 +54,7 @@ func (s *sAdminRole) Verify(ctx context.Context, path, method string) bool {
|
|||||||
|
|
||||||
ok, err := casbin.Enforcer.Enforce(user.RoleKey, path, method)
|
ok, err := casbin.Enforcer.Enforce(user.RoleKey, path, method)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
g.Log().Infof(ctx, "admin Verify Enforce err:%+v", err)
|
g.Log().Infof(ctx, "admin Verify Enforce err:%+v", err)
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
return ok
|
return ok
|
||||||
@ -91,11 +92,7 @@ func (s *sAdminRole) List(ctx context.Context, in *adminin.RoleListInp) (res *ad
|
|||||||
|
|
||||||
// GetName 获取指定角色的名称
|
// GetName 获取指定角色的名称
|
||||||
func (s *sAdminRole) GetName(ctx context.Context, id int64) (name string, err error) {
|
func (s *sAdminRole) GetName(ctx context.Context, id int64) (name string, err error) {
|
||||||
r, err := dao.AdminRole.Ctx(ctx).
|
r, err := dao.AdminRole.Ctx(ctx).Fields("name").WherePri(id).Order("id desc").Value()
|
||||||
Fields("name").
|
|
||||||
WherePri(id).
|
|
||||||
Order("id desc").
|
|
||||||
Value()
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
err = gerror.Wrap(err, consts.ErrorORM)
|
err = gerror.Wrap(err, consts.ErrorORM)
|
||||||
return
|
return
|
||||||
@ -313,3 +310,35 @@ func (s *sAdminRole) treeList(pid int64, nodes []*entity.AdminRole) (list []*adm
|
|||||||
}
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// VerifyRoleId 验证角色ID
|
||||||
|
func (s *sAdminRole) VerifyRoleId(ctx context.Context, id int64) (err error) {
|
||||||
|
var (
|
||||||
|
pid int64 = 0
|
||||||
|
mb = contexts.GetUser(ctx)
|
||||||
|
mod = dao.AdminRole.Ctx(ctx).Fields(dao.AdminRole.Columns().Id)
|
||||||
|
)
|
||||||
|
|
||||||
|
if mb == nil {
|
||||||
|
err = gerror.New("用户信息获取失败!")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// 非超管只获取下级
|
||||||
|
if !service.AdminMember().VerifySuperId(ctx, mb.Id) {
|
||||||
|
pid = mb.RoleId
|
||||||
|
mod = mod.WhereLike(dao.AdminRole.Columns().Tree, "%"+tree.GetIdLabel(pid)+"%")
|
||||||
|
}
|
||||||
|
|
||||||
|
columns, err := mod.Array()
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
ids := g.NewVar(columns).Int64s()
|
||||||
|
if !validate.InSlice(ids, id) {
|
||||||
|
err = gerror.New("角色ID是无效的")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
@ -41,6 +41,7 @@ type MemberUpdateMobileInp struct {
|
|||||||
type GetIdByCodeInp struct {
|
type GetIdByCodeInp struct {
|
||||||
Code string `json:"code"`
|
Code string `json:"code"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type GetIdByCodeModel struct {
|
type GetIdByCodeModel struct {
|
||||||
Id int64
|
Id int64
|
||||||
}
|
}
|
||||||
@ -49,6 +50,7 @@ type GetIdByCodeModel struct {
|
|||||||
type MemberProfileInp struct {
|
type MemberProfileInp struct {
|
||||||
Id int64
|
Id int64
|
||||||
}
|
}
|
||||||
|
|
||||||
type MemberProfileModel struct {
|
type MemberProfileModel struct {
|
||||||
PostGroup string `json:"postGroup" dc:"岗位名称"`
|
PostGroup string `json:"postGroup" dc:"岗位名称"`
|
||||||
RoleGroup string `json:"roleGroup" dc:"角色名称"`
|
RoleGroup string `json:"roleGroup" dc:"角色名称"`
|
||||||
@ -109,7 +111,7 @@ type LoginMemberInfoModel struct {
|
|||||||
*MemberLoginStatModel
|
*MemberLoginStatModel
|
||||||
}
|
}
|
||||||
|
|
||||||
// MemberEditInp 修改/新增管理员
|
// MemberEditInp 修改用户
|
||||||
type MemberEditInp struct {
|
type MemberEditInp struct {
|
||||||
Id int64 `json:"id" dc:"管理员ID"`
|
Id int64 `json:"id" dc:"管理员ID"`
|
||||||
RoleId int64 `json:"roleId" v:"required#角色不能为空" dc:"角色ID"`
|
RoleId int64 `json:"roleId" v:"required#角色不能为空" dc:"角色ID"`
|
||||||
@ -133,6 +135,7 @@ type MemberEditInp struct {
|
|||||||
Status int `json:"status" dc:"状态"`
|
Status int `json:"status" dc:"状态"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// MemberAddInp 新增用户
|
||||||
type MemberAddInp struct {
|
type MemberAddInp struct {
|
||||||
*MemberEditInp
|
*MemberEditInp
|
||||||
Salt string `json:"salt" dc:"密码盐"`
|
Salt string `json:"salt" dc:"密码盐"`
|
||||||
@ -162,13 +165,14 @@ type VerifyUniqueInp struct {
|
|||||||
Where g.Map
|
Where g.Map
|
||||||
}
|
}
|
||||||
|
|
||||||
// MemberDeleteInp 删除字典类型
|
// MemberDeleteInp 删除用户
|
||||||
type MemberDeleteInp struct {
|
type MemberDeleteInp struct {
|
||||||
Id interface{} `json:"id" v:"required#用户ID不能为空" dc:"用户ID"`
|
Id interface{} `json:"id" v:"required#用户ID不能为空" dc:"用户ID"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type MemberDeleteModel struct{}
|
type MemberDeleteModel struct{}
|
||||||
|
|
||||||
// MemberViewInp 获取信息
|
// MemberViewInp 获取用户信息
|
||||||
type MemberViewInp struct {
|
type MemberViewInp struct {
|
||||||
Id int64 `json:"id" dc:"用户ID"`
|
Id int64 `json:"id" dc:"用户ID"`
|
||||||
}
|
}
|
||||||
@ -179,7 +183,7 @@ type MemberViewModel struct {
|
|||||||
RoleName string `json:"roleName" dc:"所属角色"`
|
RoleName string `json:"roleName" dc:"所属角色"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// MemberListInp 获取列表
|
// MemberListInp 获取用户列表
|
||||||
type MemberListInp struct {
|
type MemberListInp struct {
|
||||||
form.PageReq
|
form.PageReq
|
||||||
form.StatusReq
|
form.StatusReq
|
||||||
|
@ -19,155 +19,6 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
type (
|
type (
|
||||||
IAdminRole interface {
|
|
||||||
// Verify 验证权限
|
|
||||||
Verify(ctx context.Context, path, method string) bool
|
|
||||||
// List 获取列表
|
|
||||||
List(ctx context.Context, in *adminin.RoleListInp) (res *adminin.RoleListModel, totalCount int, err error)
|
|
||||||
// GetName 获取指定角色的名称
|
|
||||||
GetName(ctx context.Context, id int64) (name string, err error)
|
|
||||||
// GetMemberList 获取指定用户的岗位列表
|
|
||||||
GetMemberList(ctx context.Context, id int64) (list []*adminin.RoleListModel, err error)
|
|
||||||
// GetPermissions 更改角色菜单权限
|
|
||||||
GetPermissions(ctx context.Context, in *adminin.GetPermissionsInp) (res *adminin.GetPermissionsModel, err error)
|
|
||||||
// UpdatePermissions 更改角色菜单权限
|
|
||||||
UpdatePermissions(ctx context.Context, in *adminin.UpdatePermissionsInp) (err error)
|
|
||||||
Edit(ctx context.Context, in *adminin.RoleEditInp) (err error)
|
|
||||||
Delete(ctx context.Context, in *adminin.RoleDeleteInp) (err error)
|
|
||||||
DataScopeSelect() (res form.Selects)
|
|
||||||
DataScopeEdit(ctx context.Context, in *adminin.DataScopeEditInp) (err error)
|
|
||||||
}
|
|
||||||
IAdminCash interface {
|
|
||||||
// View 获取指定提现信息
|
|
||||||
View(ctx context.Context, in *adminin.CashViewInp) (res *adminin.CashViewModel, err error)
|
|
||||||
// List 获取列表
|
|
||||||
List(ctx context.Context, in *adminin.CashListInp) (list []*adminin.CashListModel, totalCount int, err error)
|
|
||||||
// Apply 申请提现
|
|
||||||
Apply(ctx context.Context, in *adminin.CashApplyInp) (err error)
|
|
||||||
// Payment 提现打款处理
|
|
||||||
Payment(ctx context.Context, in *adminin.CashPaymentInp) (err error)
|
|
||||||
}
|
|
||||||
IAdminCreditsLog interface {
|
|
||||||
// Model 资产变动ORM模型
|
|
||||||
Model(ctx context.Context, option ...*handler.Option) *gdb.Model
|
|
||||||
// SaveBalance 更新余额
|
|
||||||
SaveBalance(ctx context.Context, in *adminin.CreditsLogSaveBalanceInp) (res *adminin.CreditsLogSaveBalanceModel, err error)
|
|
||||||
// SaveIntegral 更新积分
|
|
||||||
SaveIntegral(ctx context.Context, in *adminin.CreditsLogSaveIntegralInp) (res *adminin.CreditsLogSaveIntegralModel, err error)
|
|
||||||
// List 获取资产变动列表
|
|
||||||
List(ctx context.Context, in *adminin.CreditsLogListInp) (list []*adminin.CreditsLogListModel, totalCount int, err error)
|
|
||||||
// Export 导出资产变动
|
|
||||||
Export(ctx context.Context, in *adminin.CreditsLogListInp) (err error)
|
|
||||||
}
|
|
||||||
IAdminMemberPost interface {
|
|
||||||
// UpdatePostIds 更新用户岗位
|
|
||||||
UpdatePostIds(ctx context.Context, memberId int64, postIds []int64) (err error)
|
|
||||||
}
|
|
||||||
IAdminMenu interface {
|
|
||||||
// Delete 删除
|
|
||||||
Delete(ctx context.Context, in *adminin.MenuDeleteInp) (err error)
|
|
||||||
// VerifyUnique 验证菜单唯一属性
|
|
||||||
VerifyUnique(ctx context.Context, in *adminin.VerifyUniqueInp) (err error)
|
|
||||||
// Edit 修改/新增
|
|
||||||
Edit(ctx context.Context, in *adminin.MenuEditInp) (err error)
|
|
||||||
// List 获取菜单列表
|
|
||||||
List(ctx context.Context, in *adminin.MenuListInp) (res *adminin.MenuListModel, err error)
|
|
||||||
// GetMenuList 获取菜单列表
|
|
||||||
GetMenuList(ctx context.Context, memberId int64) (res *role.DynamicRes, err error)
|
|
||||||
// LoginPermissions 获取登录成功后的细粒度权限
|
|
||||||
LoginPermissions(ctx context.Context, memberId int64) (lists adminin.MemberLoginPermissions, err error)
|
|
||||||
}
|
|
||||||
IAdminMonitor interface {
|
|
||||||
// StartMonitor 启动服务监控
|
|
||||||
StartMonitor(ctx context.Context)
|
|
||||||
// GetMeta 获取监控元数据
|
|
||||||
GetMeta(ctx context.Context) *model.MonitorData
|
|
||||||
}
|
|
||||||
IAdminPost interface {
|
|
||||||
// Delete 删除
|
|
||||||
Delete(ctx context.Context, in *adminin.PostDeleteInp) (err error)
|
|
||||||
// VerifyUnique 验证部门唯一属性
|
|
||||||
VerifyUnique(ctx context.Context, in *adminin.VerifyUniqueInp) (err error)
|
|
||||||
// Edit 修改/新增
|
|
||||||
Edit(ctx context.Context, in *adminin.PostEditInp) (err error)
|
|
||||||
// MaxSort 最大排序
|
|
||||||
MaxSort(ctx context.Context, in *adminin.PostMaxSortInp) (res *adminin.PostMaxSortModel, err error)
|
|
||||||
// View 获取指定岗位信息
|
|
||||||
View(ctx context.Context, in *adminin.PostViewInp) (res *adminin.PostViewModel, err error)
|
|
||||||
// List 获取列表
|
|
||||||
List(ctx context.Context, in *adminin.PostListInp) (list []*adminin.PostListModel, totalCount int, err error)
|
|
||||||
// GetMemberByStartName 获取指定用户的第一岗位
|
|
||||||
GetMemberByStartName(ctx context.Context, memberId int64) (name string, err error)
|
|
||||||
// Status 更新状态
|
|
||||||
Status(ctx context.Context, in *adminin.PostStatusInp) (err error)
|
|
||||||
}
|
|
||||||
IAdminDept interface {
|
|
||||||
// Delete 删除
|
|
||||||
Delete(ctx context.Context, in *adminin.DeptDeleteInp) (err error)
|
|
||||||
// VerifyUnique 验证部门唯一属性
|
|
||||||
VerifyUnique(ctx context.Context, in *adminin.VerifyUniqueInp) (err error)
|
|
||||||
// Edit 修改/新增
|
|
||||||
Edit(ctx context.Context, in *adminin.DeptEditInp) (err error)
|
|
||||||
// Status 更新部门状态
|
|
||||||
Status(ctx context.Context, in *adminin.DeptStatusInp) (err error)
|
|
||||||
// MaxSort 最大排序
|
|
||||||
MaxSort(ctx context.Context, in *adminin.DeptMaxSortInp) (res *adminin.DeptMaxSortModel, err error)
|
|
||||||
// View 获取指定部门信息
|
|
||||||
View(ctx context.Context, in *adminin.DeptViewInp) (res *adminin.DeptViewModel, err error)
|
|
||||||
// Option 选项
|
|
||||||
Option(ctx context.Context, in *adminin.DeptOptionInp) (res *adminin.DeptOptionModel, totalCount int, err error)
|
|
||||||
// List 获取列表
|
|
||||||
List(ctx context.Context, in *adminin.DeptListInp) (res *adminin.DeptListModel, err error)
|
|
||||||
// GetName 获取部门名称
|
|
||||||
GetName(ctx context.Context, id int64) (name string, err error)
|
|
||||||
}
|
|
||||||
IAdminMember interface {
|
|
||||||
// AddBalance 增加余额
|
|
||||||
AddBalance(ctx context.Context, in *adminin.MemberAddBalanceInp) (err error)
|
|
||||||
// AddIntegral 增加积分
|
|
||||||
AddIntegral(ctx context.Context, in *adminin.MemberAddIntegralInp) (err error)
|
|
||||||
// UpdateCash 修改提现信息
|
|
||||||
UpdateCash(ctx context.Context, in *adminin.MemberUpdateCashInp) (err error)
|
|
||||||
// UpdateEmail 换绑邮箱
|
|
||||||
UpdateEmail(ctx context.Context, in *adminin.MemberUpdateEmailInp) (err error)
|
|
||||||
// UpdateMobile 换绑手机号
|
|
||||||
UpdateMobile(ctx context.Context, in *adminin.MemberUpdateMobileInp) (err error)
|
|
||||||
// UpdateProfile 更新用户资料
|
|
||||||
UpdateProfile(ctx context.Context, in *adminin.MemberUpdateProfileInp) (err error)
|
|
||||||
// UpdatePwd 修改登录密码
|
|
||||||
UpdatePwd(ctx context.Context, in *adminin.MemberUpdatePwdInp) (err error)
|
|
||||||
// ResetPwd 重置密码
|
|
||||||
ResetPwd(ctx context.Context, in *adminin.MemberResetPwdInp) (err error)
|
|
||||||
// VerifyUnique 验证管理员唯一属性
|
|
||||||
VerifyUnique(ctx context.Context, in *adminin.VerifyUniqueInp) (err error)
|
|
||||||
// Delete 删除
|
|
||||||
Delete(ctx context.Context, in *adminin.MemberDeleteInp) (err error)
|
|
||||||
// Edit 修改/新增
|
|
||||||
Edit(ctx context.Context, in *adminin.MemberEditInp) (err error)
|
|
||||||
// View 获取用户信息
|
|
||||||
View(ctx context.Context, in *adminin.MemberViewInp) (res *adminin.MemberViewModel, err error)
|
|
||||||
// List 获取列表
|
|
||||||
List(ctx context.Context, in *adminin.MemberListInp) (list []*adminin.MemberListModel, totalCount int, err error)
|
|
||||||
// Status 更新状态
|
|
||||||
Status(ctx context.Context, in *adminin.MemberStatusInp) (err error)
|
|
||||||
// GenTree 生成关系树
|
|
||||||
GenTree(ctx context.Context, pid int64) (level int, newTree string, err error)
|
|
||||||
// LoginMemberInfo 获取登录用户信息
|
|
||||||
LoginMemberInfo(ctx context.Context) (res *adminin.LoginMemberInfoModel, err error)
|
|
||||||
// MemberLoginStat 用户登录统计
|
|
||||||
MemberLoginStat(ctx context.Context, in *adminin.MemberLoginStatInp) (res *adminin.MemberLoginStatModel, err error)
|
|
||||||
// GetIdByCode 通过邀请码获取用户ID
|
|
||||||
GetIdByCode(ctx context.Context, in *adminin.GetIdByCodeInp) (res *adminin.GetIdByCodeModel, err error)
|
|
||||||
// Select 获取可选的用户选项
|
|
||||||
Select(ctx context.Context, in *adminin.MemberSelectInp) (res []*adminin.MemberSelectModel, err error)
|
|
||||||
// VerifySuperId 验证是否为超管
|
|
||||||
VerifySuperId(ctx context.Context, verifyId int64) bool
|
|
||||||
// LoadSuperAdmin 加载超管数据
|
|
||||||
LoadSuperAdmin(ctx context.Context)
|
|
||||||
// ClusterSyncSuperAdmin 集群同步
|
|
||||||
ClusterSyncSuperAdmin(ctx context.Context, message *gredis.Message)
|
|
||||||
FilterAuthModel(ctx context.Context, memberId int64) *gdb.Model
|
|
||||||
}
|
|
||||||
IAdminNotice interface {
|
IAdminNotice interface {
|
||||||
// Model Orm模型
|
// Model Orm模型
|
||||||
Model(ctx context.Context, option ...*handler.Option) *gdb.Model
|
Model(ctx context.Context, option ...*handler.Option) *gdb.Model
|
||||||
@ -218,6 +69,24 @@ type (
|
|||||||
// Status 更新充值订单状态
|
// Status 更新充值订单状态
|
||||||
Status(ctx context.Context, in *adminin.OrderStatusInp) (err error)
|
Status(ctx context.Context, in *adminin.OrderStatusInp) (err error)
|
||||||
}
|
}
|
||||||
|
IAdminPost interface {
|
||||||
|
// Delete 删除
|
||||||
|
Delete(ctx context.Context, in *adminin.PostDeleteInp) (err error)
|
||||||
|
// VerifyUnique 验证部门唯一属性
|
||||||
|
VerifyUnique(ctx context.Context, in *adminin.VerifyUniqueInp) (err error)
|
||||||
|
// Edit 修改/新增
|
||||||
|
Edit(ctx context.Context, in *adminin.PostEditInp) (err error)
|
||||||
|
// MaxSort 最大排序
|
||||||
|
MaxSort(ctx context.Context, in *adminin.PostMaxSortInp) (res *adminin.PostMaxSortModel, err error)
|
||||||
|
// View 获取指定岗位信息
|
||||||
|
View(ctx context.Context, in *adminin.PostViewInp) (res *adminin.PostViewModel, err error)
|
||||||
|
// List 获取列表
|
||||||
|
List(ctx context.Context, in *adminin.PostListInp) (list []*adminin.PostListModel, totalCount int, err error)
|
||||||
|
// GetMemberByStartName 获取指定用户的第一岗位
|
||||||
|
GetMemberByStartName(ctx context.Context, memberId int64) (name string, err error)
|
||||||
|
// Status 更新状态
|
||||||
|
Status(ctx context.Context, in *adminin.PostStatusInp) (err error)
|
||||||
|
}
|
||||||
IAdminSite interface {
|
IAdminSite interface {
|
||||||
// Register 账号注册
|
// Register 账号注册
|
||||||
Register(ctx context.Context, in *adminin.RegisterInp) (err error)
|
Register(ctx context.Context, in *adminin.RegisterInp) (err error)
|
||||||
@ -226,67 +95,159 @@ type (
|
|||||||
// MobileLogin 手机号登录
|
// MobileLogin 手机号登录
|
||||||
MobileLogin(ctx context.Context, in *adminin.MobileLoginInp) (res *adminin.LoginModel, err error)
|
MobileLogin(ctx context.Context, in *adminin.MobileLoginInp) (res *adminin.LoginModel, err error)
|
||||||
}
|
}
|
||||||
|
IAdminMember interface {
|
||||||
|
// AddBalance 增加余额
|
||||||
|
AddBalance(ctx context.Context, in *adminin.MemberAddBalanceInp) (err error)
|
||||||
|
// AddIntegral 增加积分
|
||||||
|
AddIntegral(ctx context.Context, in *adminin.MemberAddIntegralInp) (err error)
|
||||||
|
// UpdateCash 修改提现信息
|
||||||
|
UpdateCash(ctx context.Context, in *adminin.MemberUpdateCashInp) (err error)
|
||||||
|
// UpdateEmail 换绑邮箱
|
||||||
|
UpdateEmail(ctx context.Context, in *adminin.MemberUpdateEmailInp) (err error)
|
||||||
|
// UpdateMobile 换绑手机号
|
||||||
|
UpdateMobile(ctx context.Context, in *adminin.MemberUpdateMobileInp) (err error)
|
||||||
|
// UpdateProfile 更新用户资料
|
||||||
|
UpdateProfile(ctx context.Context, in *adminin.MemberUpdateProfileInp) (err error)
|
||||||
|
// UpdatePwd 修改登录密码
|
||||||
|
UpdatePwd(ctx context.Context, in *adminin.MemberUpdatePwdInp) (err error)
|
||||||
|
// ResetPwd 重置密码
|
||||||
|
ResetPwd(ctx context.Context, in *adminin.MemberResetPwdInp) (err error)
|
||||||
|
// VerifyUnique 验证管理员唯一属性
|
||||||
|
VerifyUnique(ctx context.Context, in *adminin.VerifyUniqueInp) (err error)
|
||||||
|
// Delete 删除用户
|
||||||
|
Delete(ctx context.Context, in *adminin.MemberDeleteInp) (err error)
|
||||||
|
// Edit 修改/新增用户
|
||||||
|
Edit(ctx context.Context, in *adminin.MemberEditInp) (err error)
|
||||||
|
// View 获取用户信息
|
||||||
|
View(ctx context.Context, in *adminin.MemberViewInp) (res *adminin.MemberViewModel, err error)
|
||||||
|
// List 获取用户列表
|
||||||
|
List(ctx context.Context, in *adminin.MemberListInp) (list []*adminin.MemberListModel, totalCount int, err error)
|
||||||
|
// Status 更新状态
|
||||||
|
Status(ctx context.Context, in *adminin.MemberStatusInp) (err error)
|
||||||
|
// GenTree 生成关系树
|
||||||
|
GenTree(ctx context.Context, pid int64) (level int, newTree string, err error)
|
||||||
|
// LoginMemberInfo 获取登录用户信息
|
||||||
|
LoginMemberInfo(ctx context.Context) (res *adminin.LoginMemberInfoModel, err error)
|
||||||
|
// MemberLoginStat 用户登录统计
|
||||||
|
MemberLoginStat(ctx context.Context, in *adminin.MemberLoginStatInp) (res *adminin.MemberLoginStatModel, err error)
|
||||||
|
// GetIdByCode 通过邀请码获取用户ID
|
||||||
|
GetIdByCode(ctx context.Context, in *adminin.GetIdByCodeInp) (res *adminin.GetIdByCodeModel, err error)
|
||||||
|
// Select 获取可选的用户选项
|
||||||
|
Select(ctx context.Context, in *adminin.MemberSelectInp) (res []*adminin.MemberSelectModel, err error)
|
||||||
|
// VerifySuperId 验证是否为超管
|
||||||
|
VerifySuperId(ctx context.Context, verifyId int64) bool
|
||||||
|
// LoadSuperAdmin 加载超管数据
|
||||||
|
LoadSuperAdmin(ctx context.Context)
|
||||||
|
// ClusterSyncSuperAdmin 集群同步
|
||||||
|
ClusterSyncSuperAdmin(ctx context.Context, message *gredis.Message)
|
||||||
|
// FilterAuthModel 过滤查询权限,如果不是超管则排除掉自己
|
||||||
|
FilterAuthModel(ctx context.Context, memberId int64) *gdb.Model
|
||||||
|
}
|
||||||
|
IAdminCreditsLog interface {
|
||||||
|
// Model 资产变动ORM模型
|
||||||
|
Model(ctx context.Context, option ...*handler.Option) *gdb.Model
|
||||||
|
// SaveBalance 更新余额
|
||||||
|
SaveBalance(ctx context.Context, in *adminin.CreditsLogSaveBalanceInp) (res *adminin.CreditsLogSaveBalanceModel, err error)
|
||||||
|
// SaveIntegral 更新积分
|
||||||
|
SaveIntegral(ctx context.Context, in *adminin.CreditsLogSaveIntegralInp) (res *adminin.CreditsLogSaveIntegralModel, err error)
|
||||||
|
// List 获取资产变动列表
|
||||||
|
List(ctx context.Context, in *adminin.CreditsLogListInp) (list []*adminin.CreditsLogListModel, totalCount int, err error)
|
||||||
|
// Export 导出资产变动
|
||||||
|
Export(ctx context.Context, in *adminin.CreditsLogListInp) (err error)
|
||||||
|
}
|
||||||
|
IAdminDept interface {
|
||||||
|
// Delete 删除
|
||||||
|
Delete(ctx context.Context, in *adminin.DeptDeleteInp) (err error)
|
||||||
|
// VerifyUnique 验证部门唯一属性
|
||||||
|
VerifyUnique(ctx context.Context, in *adminin.VerifyUniqueInp) (err error)
|
||||||
|
// Edit 修改/新增
|
||||||
|
Edit(ctx context.Context, in *adminin.DeptEditInp) (err error)
|
||||||
|
// Status 更新部门状态
|
||||||
|
Status(ctx context.Context, in *adminin.DeptStatusInp) (err error)
|
||||||
|
// MaxSort 最大排序
|
||||||
|
MaxSort(ctx context.Context, in *adminin.DeptMaxSortInp) (res *adminin.DeptMaxSortModel, err error)
|
||||||
|
// View 获取指定部门信息
|
||||||
|
View(ctx context.Context, in *adminin.DeptViewInp) (res *adminin.DeptViewModel, err error)
|
||||||
|
// Option 选项
|
||||||
|
Option(ctx context.Context, in *adminin.DeptOptionInp) (res *adminin.DeptOptionModel, totalCount int, err error)
|
||||||
|
// List 获取列表
|
||||||
|
List(ctx context.Context, in *adminin.DeptListInp) (res *adminin.DeptListModel, err error)
|
||||||
|
// GetName 获取部门名称
|
||||||
|
GetName(ctx context.Context, id int64) (name string, err error)
|
||||||
|
// VerifyDeptId 验证用户权限内的部门ID
|
||||||
|
VerifyDeptId(ctx context.Context, id int64) (err error)
|
||||||
|
}
|
||||||
|
IAdminMemberPost interface {
|
||||||
|
// UpdatePostIds 更新用户岗位
|
||||||
|
UpdatePostIds(ctx context.Context, memberId int64, postIds []int64) (err error)
|
||||||
|
}
|
||||||
|
IAdminMenu interface {
|
||||||
|
// Delete 删除
|
||||||
|
Delete(ctx context.Context, in *adminin.MenuDeleteInp) (err error)
|
||||||
|
// VerifyUnique 验证菜单唯一属性
|
||||||
|
VerifyUnique(ctx context.Context, in *adminin.VerifyUniqueInp) (err error)
|
||||||
|
// Edit 修改/新增
|
||||||
|
Edit(ctx context.Context, in *adminin.MenuEditInp) (err error)
|
||||||
|
// List 获取菜单列表
|
||||||
|
List(ctx context.Context, in *adminin.MenuListInp) (res *adminin.MenuListModel, err error)
|
||||||
|
// GetMenuList 获取菜单列表
|
||||||
|
GetMenuList(ctx context.Context, memberId int64) (res *role.DynamicRes, err error)
|
||||||
|
// LoginPermissions 获取登录成功后的细粒度权限
|
||||||
|
LoginPermissions(ctx context.Context, memberId int64) (lists adminin.MemberLoginPermissions, err error)
|
||||||
|
}
|
||||||
|
IAdminMonitor interface {
|
||||||
|
// StartMonitor 启动服务监控
|
||||||
|
StartMonitor(ctx context.Context)
|
||||||
|
// GetMeta 获取监控元数据
|
||||||
|
GetMeta(ctx context.Context) *model.MonitorData
|
||||||
|
}
|
||||||
|
IAdminRole interface {
|
||||||
|
// Verify 验证权限
|
||||||
|
Verify(ctx context.Context, path, method string) bool
|
||||||
|
// List 获取列表
|
||||||
|
List(ctx context.Context, in *adminin.RoleListInp) (res *adminin.RoleListModel, totalCount int, err error)
|
||||||
|
// GetName 获取指定角色的名称
|
||||||
|
GetName(ctx context.Context, id int64) (name string, err error)
|
||||||
|
// GetMemberList 获取指定用户的岗位列表
|
||||||
|
GetMemberList(ctx context.Context, id int64) (list []*adminin.RoleListModel, err error)
|
||||||
|
// GetPermissions 更改角色菜单权限
|
||||||
|
GetPermissions(ctx context.Context, in *adminin.GetPermissionsInp) (res *adminin.GetPermissionsModel, err error)
|
||||||
|
// UpdatePermissions 更改角色菜单权限
|
||||||
|
UpdatePermissions(ctx context.Context, in *adminin.UpdatePermissionsInp) (err error)
|
||||||
|
Edit(ctx context.Context, in *adminin.RoleEditInp) (err error)
|
||||||
|
Delete(ctx context.Context, in *adminin.RoleDeleteInp) (err error)
|
||||||
|
DataScopeSelect() (res form.Selects)
|
||||||
|
DataScopeEdit(ctx context.Context, in *adminin.DataScopeEditInp) (err error)
|
||||||
|
// VerifyRoleId 验证用户权限内的角色ID
|
||||||
|
VerifyRoleId(ctx context.Context, id int64) (err error)
|
||||||
|
}
|
||||||
|
IAdminCash interface {
|
||||||
|
// View 获取指定提现信息
|
||||||
|
View(ctx context.Context, in *adminin.CashViewInp) (res *adminin.CashViewModel, err error)
|
||||||
|
// List 获取列表
|
||||||
|
List(ctx context.Context, in *adminin.CashListInp) (list []*adminin.CashListModel, totalCount int, err error)
|
||||||
|
// Apply 申请提现
|
||||||
|
Apply(ctx context.Context, in *adminin.CashApplyInp) (err error)
|
||||||
|
// Payment 提现打款处理
|
||||||
|
Payment(ctx context.Context, in *adminin.CashPaymentInp) (err error)
|
||||||
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
localAdminCash IAdminCash
|
localAdminOrder IAdminOrder
|
||||||
localAdminCreditsLog IAdminCreditsLog
|
localAdminPost IAdminPost
|
||||||
|
localAdminSite IAdminSite
|
||||||
|
localAdminMember IAdminMember
|
||||||
|
localAdminNotice IAdminNotice
|
||||||
|
localAdminDept IAdminDept
|
||||||
localAdminMemberPost IAdminMemberPost
|
localAdminMemberPost IAdminMemberPost
|
||||||
localAdminMenu IAdminMenu
|
localAdminMenu IAdminMenu
|
||||||
localAdminMonitor IAdminMonitor
|
localAdminMonitor IAdminMonitor
|
||||||
localAdminPost IAdminPost
|
|
||||||
localAdminRole IAdminRole
|
localAdminRole IAdminRole
|
||||||
localAdminDept IAdminDept
|
localAdminCash IAdminCash
|
||||||
localAdminMember IAdminMember
|
localAdminCreditsLog IAdminCreditsLog
|
||||||
localAdminNotice IAdminNotice
|
|
||||||
localAdminOrder IAdminOrder
|
|
||||||
localAdminSite IAdminSite
|
|
||||||
)
|
)
|
||||||
|
|
||||||
func AdminMonitor() IAdminMonitor {
|
|
||||||
if localAdminMonitor == nil {
|
|
||||||
panic("implement not found for interface IAdminMonitor, forgot register?")
|
|
||||||
}
|
|
||||||
return localAdminMonitor
|
|
||||||
}
|
|
||||||
|
|
||||||
func RegisterAdminMonitor(i IAdminMonitor) {
|
|
||||||
localAdminMonitor = i
|
|
||||||
}
|
|
||||||
|
|
||||||
func AdminPost() IAdminPost {
|
|
||||||
if localAdminPost == nil {
|
|
||||||
panic("implement not found for interface IAdminPost, forgot register?")
|
|
||||||
}
|
|
||||||
return localAdminPost
|
|
||||||
}
|
|
||||||
|
|
||||||
func RegisterAdminPost(i IAdminPost) {
|
|
||||||
localAdminPost = i
|
|
||||||
}
|
|
||||||
|
|
||||||
func AdminRole() IAdminRole {
|
|
||||||
if localAdminRole == nil {
|
|
||||||
panic("implement not found for interface IAdminRole, forgot register?")
|
|
||||||
}
|
|
||||||
return localAdminRole
|
|
||||||
}
|
|
||||||
|
|
||||||
func RegisterAdminRole(i IAdminRole) {
|
|
||||||
localAdminRole = i
|
|
||||||
}
|
|
||||||
|
|
||||||
func AdminCash() IAdminCash {
|
|
||||||
if localAdminCash == nil {
|
|
||||||
panic("implement not found for interface IAdminCash, forgot register?")
|
|
||||||
}
|
|
||||||
return localAdminCash
|
|
||||||
}
|
|
||||||
|
|
||||||
func RegisterAdminCash(i IAdminCash) {
|
|
||||||
localAdminCash = i
|
|
||||||
}
|
|
||||||
|
|
||||||
func AdminCreditsLog() IAdminCreditsLog {
|
func AdminCreditsLog() IAdminCreditsLog {
|
||||||
if localAdminCreditsLog == nil {
|
if localAdminCreditsLog == nil {
|
||||||
panic("implement not found for interface IAdminCreditsLog, forgot register?")
|
panic("implement not found for interface IAdminCreditsLog, forgot register?")
|
||||||
@ -298,6 +259,17 @@ func RegisterAdminCreditsLog(i IAdminCreditsLog) {
|
|||||||
localAdminCreditsLog = i
|
localAdminCreditsLog = i
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func AdminDept() IAdminDept {
|
||||||
|
if localAdminDept == nil {
|
||||||
|
panic("implement not found for interface IAdminDept, forgot register?")
|
||||||
|
}
|
||||||
|
return localAdminDept
|
||||||
|
}
|
||||||
|
|
||||||
|
func RegisterAdminDept(i IAdminDept) {
|
||||||
|
localAdminDept = i
|
||||||
|
}
|
||||||
|
|
||||||
func AdminMemberPost() IAdminMemberPost {
|
func AdminMemberPost() IAdminMemberPost {
|
||||||
if localAdminMemberPost == nil {
|
if localAdminMemberPost == nil {
|
||||||
panic("implement not found for interface IAdminMemberPost, forgot register?")
|
panic("implement not found for interface IAdminMemberPost, forgot register?")
|
||||||
@ -320,37 +292,37 @@ func RegisterAdminMenu(i IAdminMenu) {
|
|||||||
localAdminMenu = i
|
localAdminMenu = i
|
||||||
}
|
}
|
||||||
|
|
||||||
func AdminSite() IAdminSite {
|
func AdminMonitor() IAdminMonitor {
|
||||||
if localAdminSite == nil {
|
if localAdminMonitor == nil {
|
||||||
panic("implement not found for interface IAdminSite, forgot register?")
|
panic("implement not found for interface IAdminMonitor, forgot register?")
|
||||||
}
|
}
|
||||||
return localAdminSite
|
return localAdminMonitor
|
||||||
}
|
}
|
||||||
|
|
||||||
func RegisterAdminSite(i IAdminSite) {
|
func RegisterAdminMonitor(i IAdminMonitor) {
|
||||||
localAdminSite = i
|
localAdminMonitor = i
|
||||||
}
|
}
|
||||||
|
|
||||||
func AdminDept() IAdminDept {
|
func AdminRole() IAdminRole {
|
||||||
if localAdminDept == nil {
|
if localAdminRole == nil {
|
||||||
panic("implement not found for interface IAdminDept, forgot register?")
|
panic("implement not found for interface IAdminRole, forgot register?")
|
||||||
}
|
}
|
||||||
return localAdminDept
|
return localAdminRole
|
||||||
}
|
}
|
||||||
|
|
||||||
func RegisterAdminDept(i IAdminDept) {
|
func RegisterAdminRole(i IAdminRole) {
|
||||||
localAdminDept = i
|
localAdminRole = i
|
||||||
}
|
}
|
||||||
|
|
||||||
func AdminMember() IAdminMember {
|
func AdminCash() IAdminCash {
|
||||||
if localAdminMember == nil {
|
if localAdminCash == nil {
|
||||||
panic("implement not found for interface IAdminMember, forgot register?")
|
panic("implement not found for interface IAdminCash, forgot register?")
|
||||||
}
|
}
|
||||||
return localAdminMember
|
return localAdminCash
|
||||||
}
|
}
|
||||||
|
|
||||||
func RegisterAdminMember(i IAdminMember) {
|
func RegisterAdminCash(i IAdminCash) {
|
||||||
localAdminMember = i
|
localAdminCash = i
|
||||||
}
|
}
|
||||||
|
|
||||||
func AdminNotice() IAdminNotice {
|
func AdminNotice() IAdminNotice {
|
||||||
@ -374,3 +346,36 @@ func AdminOrder() IAdminOrder {
|
|||||||
func RegisterAdminOrder(i IAdminOrder) {
|
func RegisterAdminOrder(i IAdminOrder) {
|
||||||
localAdminOrder = i
|
localAdminOrder = i
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func AdminPost() IAdminPost {
|
||||||
|
if localAdminPost == nil {
|
||||||
|
panic("implement not found for interface IAdminPost, forgot register?")
|
||||||
|
}
|
||||||
|
return localAdminPost
|
||||||
|
}
|
||||||
|
|
||||||
|
func RegisterAdminPost(i IAdminPost) {
|
||||||
|
localAdminPost = i
|
||||||
|
}
|
||||||
|
|
||||||
|
func AdminSite() IAdminSite {
|
||||||
|
if localAdminSite == nil {
|
||||||
|
panic("implement not found for interface IAdminSite, forgot register?")
|
||||||
|
}
|
||||||
|
return localAdminSite
|
||||||
|
}
|
||||||
|
|
||||||
|
func RegisterAdminSite(i IAdminSite) {
|
||||||
|
localAdminSite = i
|
||||||
|
}
|
||||||
|
|
||||||
|
func AdminMember() IAdminMember {
|
||||||
|
if localAdminMember == nil {
|
||||||
|
panic("implement not found for interface IAdminMember, forgot register?")
|
||||||
|
}
|
||||||
|
return localAdminMember
|
||||||
|
}
|
||||||
|
|
||||||
|
func RegisterAdminMember(i IAdminMember) {
|
||||||
|
localAdminMember = i
|
||||||
|
}
|
||||||
|
@ -18,94 +18,6 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
type (
|
type (
|
||||||
ISysLoginLog interface {
|
|
||||||
// Model 登录日志Orm模型
|
|
||||||
Model(ctx context.Context) *gdb.Model
|
|
||||||
// List 获取登录日志列表
|
|
||||||
List(ctx context.Context, in *sysin.LoginLogListInp) (list []*sysin.LoginLogListModel, totalCount int, err error)
|
|
||||||
// Export 导出登录日志
|
|
||||||
Export(ctx context.Context, in *sysin.LoginLogListInp) (err error)
|
|
||||||
// Delete 删除登录日志
|
|
||||||
Delete(ctx context.Context, in *sysin.LoginLogDeleteInp) (err error)
|
|
||||||
// View 获取登录日志指定信息
|
|
||||||
View(ctx context.Context, in *sysin.LoginLogViewInp) (res *sysin.LoginLogViewModel, err error)
|
|
||||||
// Push 推送登录日志
|
|
||||||
Push(ctx context.Context, in *sysin.LoginLogPushInp)
|
|
||||||
// RealWrite 真实写入
|
|
||||||
RealWrite(ctx context.Context, models entity.SysLoginLog) (err error)
|
|
||||||
}
|
|
||||||
ISysAddons interface {
|
|
||||||
// List 获取列表
|
|
||||||
List(ctx context.Context, in *sysin.AddonsListInp) (list []*sysin.AddonsListModel, totalCount int, err error)
|
|
||||||
// Selects 选项
|
|
||||||
Selects(ctx context.Context, in *sysin.AddonsSelectsInp) (res *sysin.AddonsSelectsModel, err error)
|
|
||||||
// Build 提交生成
|
|
||||||
Build(ctx context.Context, in *sysin.AddonsBuildInp) (err error)
|
|
||||||
// Install 安装模块
|
|
||||||
Install(ctx context.Context, in *sysin.AddonsInstallInp) (err error)
|
|
||||||
// Upgrade 更新模块
|
|
||||||
Upgrade(ctx context.Context, in *sysin.AddonsUpgradeInp) (err error)
|
|
||||||
// UnInstall 卸载模块
|
|
||||||
UnInstall(ctx context.Context, in *sysin.AddonsUnInstallInp) (err error)
|
|
||||||
}
|
|
||||||
ISysAddonsConfig interface {
|
|
||||||
// GetConfigByGroup 获取指定分组的配置
|
|
||||||
GetConfigByGroup(ctx context.Context, in *sysin.GetAddonsConfigInp) (res *sysin.GetAddonsConfigModel, err error)
|
|
||||||
// ConversionType 转换类型
|
|
||||||
ConversionType(ctx context.Context, models *entity.SysAddonsConfig) (value interface{}, err error)
|
|
||||||
// UpdateConfigByGroup 更新指定分组的配置
|
|
||||||
UpdateConfigByGroup(ctx context.Context, in *sysin.UpdateAddonsConfigInp) (err error)
|
|
||||||
}
|
|
||||||
ISysCurdDemo interface {
|
|
||||||
// Model 生成演示ORM模型
|
|
||||||
Model(ctx context.Context, option ...*handler.Option) *gdb.Model
|
|
||||||
// List 获取生成演示列表
|
|
||||||
List(ctx context.Context, in *sysin.CurdDemoListInp) (list []*sysin.CurdDemoListModel, totalCount int, err error)
|
|
||||||
// Export 导出生成演示
|
|
||||||
Export(ctx context.Context, in *sysin.CurdDemoListInp) (err error)
|
|
||||||
// Edit 修改/新增生成演示
|
|
||||||
Edit(ctx context.Context, in *sysin.CurdDemoEditInp) (err error)
|
|
||||||
// Delete 删除生成演示
|
|
||||||
Delete(ctx context.Context, in *sysin.CurdDemoDeleteInp) (err error)
|
|
||||||
// MaxSort 获取生成演示最大排序
|
|
||||||
MaxSort(ctx context.Context, in *sysin.CurdDemoMaxSortInp) (res *sysin.CurdDemoMaxSortModel, err error)
|
|
||||||
// View 获取生成演示指定信息
|
|
||||||
View(ctx context.Context, in *sysin.CurdDemoViewInp) (res *sysin.CurdDemoViewModel, err error)
|
|
||||||
// Status 更新生成演示状态
|
|
||||||
Status(ctx context.Context, in *sysin.CurdDemoStatusInp) (err error)
|
|
||||||
// Switch 更新生成演示开关
|
|
||||||
Switch(ctx context.Context, in *sysin.CurdDemoSwitchInp) (err error)
|
|
||||||
}
|
|
||||||
ISysDictData interface {
|
|
||||||
// Delete 删除
|
|
||||||
Delete(ctx context.Context, in *sysin.DictDataDeleteInp) error
|
|
||||||
// Edit 修改/新增
|
|
||||||
Edit(ctx context.Context, in *sysin.DictDataEditInp) (err error)
|
|
||||||
// List 获取列表
|
|
||||||
List(ctx context.Context, in *sysin.DictDataListInp) (list []*sysin.DictDataListModel, totalCount int, err error)
|
|
||||||
// Select 获取列表
|
|
||||||
Select(ctx context.Context, in *sysin.DataSelectInp) (list sysin.DataSelectModel, err error)
|
|
||||||
}
|
|
||||||
ISysEmsLog interface {
|
|
||||||
// Delete 删除
|
|
||||||
Delete(ctx context.Context, in *sysin.EmsLogDeleteInp) (err error)
|
|
||||||
// Edit 修改/新增
|
|
||||||
Edit(ctx context.Context, in *sysin.EmsLogEditInp) (err error)
|
|
||||||
// Status 更新部门状态
|
|
||||||
Status(ctx context.Context, in *sysin.EmsLogStatusInp) (err error)
|
|
||||||
// View 获取指定字典类型信息
|
|
||||||
View(ctx context.Context, in *sysin.EmsLogViewInp) (res *sysin.EmsLogViewModel, err error)
|
|
||||||
// List 获取列表
|
|
||||||
List(ctx context.Context, in *sysin.EmsLogListInp) (list []*sysin.EmsLogListModel, totalCount int, err error)
|
|
||||||
// Send 发送邮件
|
|
||||||
Send(ctx context.Context, in *sysin.SendEmsInp) (err error)
|
|
||||||
// GetTemplate 获取指定邮件模板
|
|
||||||
GetTemplate(ctx context.Context, template string, config *model.EmailConfig) (val string, err error)
|
|
||||||
// AllowSend 是否允许发送
|
|
||||||
AllowSend(ctx context.Context, models *entity.SysEmsLog, config *model.EmailConfig) (err error)
|
|
||||||
// VerifyCode 效验验证码
|
|
||||||
VerifyCode(ctx context.Context, in *sysin.VerifyEmsCodeInp) (err error)
|
|
||||||
}
|
|
||||||
ISysConfig interface {
|
ISysConfig interface {
|
||||||
// InitConfig 初始化系统配置
|
// InitConfig 初始化系统配置
|
||||||
InitConfig(ctx context.Context)
|
InitConfig(ctx context.Context)
|
||||||
@ -148,24 +60,6 @@ type (
|
|||||||
// ClusterSync 集群同步
|
// ClusterSync 集群同步
|
||||||
ClusterSync(ctx context.Context, message *gredis.Message)
|
ClusterSync(ctx context.Context, message *gredis.Message)
|
||||||
}
|
}
|
||||||
ISysServeLicense interface {
|
|
||||||
// Model 服务许可证ORM模型
|
|
||||||
Model(ctx context.Context, option ...*handler.Option) *gdb.Model
|
|
||||||
// List 获取服务许可证列表
|
|
||||||
List(ctx context.Context, in *sysin.ServeLicenseListInp) (list []*sysin.ServeLicenseListModel, totalCount int, err error)
|
|
||||||
// Export 导出服务许可证
|
|
||||||
Export(ctx context.Context, in *sysin.ServeLicenseListInp) (err error)
|
|
||||||
// Edit 修改/新增服务许可证
|
|
||||||
Edit(ctx context.Context, in *sysin.ServeLicenseEditInp) (err error)
|
|
||||||
// Delete 删除服务许可证
|
|
||||||
Delete(ctx context.Context, in *sysin.ServeLicenseDeleteInp) (err error)
|
|
||||||
// View 获取服务许可证指定信息
|
|
||||||
View(ctx context.Context, in *sysin.ServeLicenseViewInp) (res *sysin.ServeLicenseViewModel, err error)
|
|
||||||
// Status 更新服务许可证状态
|
|
||||||
Status(ctx context.Context, in *sysin.ServeLicenseStatusInp) (err error)
|
|
||||||
// AssignRouter 分配服务许可证路由
|
|
||||||
AssignRouter(ctx context.Context, in *sysin.ServeLicenseAssignRouterInp) (err error)
|
|
||||||
}
|
|
||||||
ISysDictType interface {
|
ISysDictType interface {
|
||||||
// Tree 树
|
// Tree 树
|
||||||
Tree(ctx context.Context) (list []*sysin.DictTypeTree, err error)
|
Tree(ctx context.Context) (list []*sysin.DictTypeTree, err error)
|
||||||
@ -190,25 +84,65 @@ type (
|
|||||||
// RealWrite 真实写入
|
// RealWrite 真实写入
|
||||||
RealWrite(ctx context.Context, models entity.SysServeLog) (err error)
|
RealWrite(ctx context.Context, models entity.SysServeLog) (err error)
|
||||||
}
|
}
|
||||||
ISysSmsLog interface {
|
ISysAddons interface {
|
||||||
// Delete 删除
|
|
||||||
Delete(ctx context.Context, in *sysin.SmsLogDeleteInp) (err error)
|
|
||||||
// Edit 修改/新增
|
|
||||||
Edit(ctx context.Context, in *sysin.SmsLogEditInp) (err error)
|
|
||||||
// Status 更新短信状态
|
|
||||||
Status(ctx context.Context, in *sysin.SmsLogStatusInp) (err error)
|
|
||||||
// View 获取指定字典类型信息
|
|
||||||
View(ctx context.Context, in *sysin.SmsLogViewInp) (res *sysin.SmsLogViewModel, err error)
|
|
||||||
// List 获取列表
|
// List 获取列表
|
||||||
List(ctx context.Context, in *sysin.SmsLogListInp) (list []*sysin.SmsLogListModel, totalCount int, err error)
|
List(ctx context.Context, in *sysin.AddonsListInp) (list []*sysin.AddonsListModel, totalCount int, err error)
|
||||||
// SendCode 发送验证码
|
// Selects 选项
|
||||||
SendCode(ctx context.Context, in *sysin.SendCodeInp) (err error)
|
Selects(ctx context.Context, in *sysin.AddonsSelectsInp) (res *sysin.AddonsSelectsModel, err error)
|
||||||
// GetTemplate 获取指定短信模板
|
// Build 提交生成
|
||||||
GetTemplate(ctx context.Context, template string, config *model.SmsConfig) (val string, err error)
|
Build(ctx context.Context, in *sysin.AddonsBuildInp) (err error)
|
||||||
// AllowSend 是否允许发送
|
// Install 安装模块
|
||||||
AllowSend(ctx context.Context, models *entity.SysSmsLog, config *model.SmsConfig) (err error)
|
Install(ctx context.Context, in *sysin.AddonsInstallInp) (err error)
|
||||||
// VerifyCode 效验验证码
|
// Upgrade 更新模块
|
||||||
VerifyCode(ctx context.Context, in *sysin.VerifyCodeInp) (err error)
|
Upgrade(ctx context.Context, in *sysin.AddonsUpgradeInp) (err error)
|
||||||
|
// UnInstall 卸载模块
|
||||||
|
UnInstall(ctx context.Context, in *sysin.AddonsUnInstallInp) (err error)
|
||||||
|
}
|
||||||
|
ISysAddonsConfig interface {
|
||||||
|
// GetConfigByGroup 获取指定分组的配置
|
||||||
|
GetConfigByGroup(ctx context.Context, in *sysin.GetAddonsConfigInp) (res *sysin.GetAddonsConfigModel, err error)
|
||||||
|
// ConversionType 转换类型
|
||||||
|
ConversionType(ctx context.Context, models *entity.SysAddonsConfig) (value interface{}, err error)
|
||||||
|
// UpdateConfigByGroup 更新指定分组的配置
|
||||||
|
UpdateConfigByGroup(ctx context.Context, in *sysin.UpdateAddonsConfigInp) (err error)
|
||||||
|
}
|
||||||
|
ISysBlacklist interface {
|
||||||
|
// Delete 删除
|
||||||
|
Delete(ctx context.Context, in *sysin.BlacklistDeleteInp) (err error)
|
||||||
|
// Edit 修改/新增
|
||||||
|
Edit(ctx context.Context, in *sysin.BlacklistEditInp) (err error)
|
||||||
|
// Status 更新部门状态
|
||||||
|
Status(ctx context.Context, in *sysin.BlacklistStatusInp) (err error)
|
||||||
|
// View 获取指定字典类型信息
|
||||||
|
View(ctx context.Context, in *sysin.BlacklistViewInp) (res *sysin.BlacklistViewModel, err error)
|
||||||
|
// List 获取列表
|
||||||
|
List(ctx context.Context, in *sysin.BlacklistListInp) (list []*sysin.BlacklistListModel, totalCount int, err error)
|
||||||
|
// VariableLoad 变化加载
|
||||||
|
VariableLoad(ctx context.Context, err error)
|
||||||
|
// Load 加载黑名单
|
||||||
|
Load(ctx context.Context)
|
||||||
|
// VerifyRequest 验证请求的访问IP是否在黑名单,如果存在则返回错误
|
||||||
|
VerifyRequest(r *ghttp.Request) (err error)
|
||||||
|
// ClusterSync 集群同步
|
||||||
|
ClusterSync(ctx context.Context, message *gredis.Message)
|
||||||
|
}
|
||||||
|
ISysServeLicense interface {
|
||||||
|
// Model 服务许可证ORM模型
|
||||||
|
Model(ctx context.Context, option ...*handler.Option) *gdb.Model
|
||||||
|
// List 获取服务许可证列表
|
||||||
|
List(ctx context.Context, in *sysin.ServeLicenseListInp) (list []*sysin.ServeLicenseListModel, totalCount int, err error)
|
||||||
|
// Export 导出服务许可证
|
||||||
|
Export(ctx context.Context, in *sysin.ServeLicenseListInp) (err error)
|
||||||
|
// Edit 修改/新增服务许可证
|
||||||
|
Edit(ctx context.Context, in *sysin.ServeLicenseEditInp) (err error)
|
||||||
|
// Delete 删除服务许可证
|
||||||
|
Delete(ctx context.Context, in *sysin.ServeLicenseDeleteInp) (err error)
|
||||||
|
// View 获取服务许可证指定信息
|
||||||
|
View(ctx context.Context, in *sysin.ServeLicenseViewInp) (res *sysin.ServeLicenseViewModel, err error)
|
||||||
|
// Status 更新服务许可证状态
|
||||||
|
Status(ctx context.Context, in *sysin.ServeLicenseStatusInp) (err error)
|
||||||
|
// AssignRouter 分配服务许可证路由
|
||||||
|
AssignRouter(ctx context.Context, in *sysin.ServeLicenseAssignRouterInp) (err error)
|
||||||
}
|
}
|
||||||
ISysLog interface {
|
ISysLog interface {
|
||||||
// Export 导出
|
// Export 导出
|
||||||
@ -248,37 +182,25 @@ type (
|
|||||||
// Select 省市区选项
|
// Select 省市区选项
|
||||||
Select(ctx context.Context, in *sysin.ProvincesSelectInp) (res *sysin.ProvincesSelectModel, err error)
|
Select(ctx context.Context, in *sysin.ProvincesSelectInp) (res *sysin.ProvincesSelectModel, err error)
|
||||||
}
|
}
|
||||||
ISysAttachment interface {
|
ISysSmsLog interface {
|
||||||
// Model ORM模型
|
|
||||||
Model(ctx context.Context, option ...*handler.Option) *gdb.Model
|
|
||||||
// Delete 删除附件
|
|
||||||
Delete(ctx context.Context, in *sysin.AttachmentDeleteInp) (err error)
|
|
||||||
// View 获取附件信息
|
|
||||||
View(ctx context.Context, in *sysin.AttachmentViewInp) (res *sysin.AttachmentViewModel, err error)
|
|
||||||
// List 获取附件列表
|
|
||||||
List(ctx context.Context, in *sysin.AttachmentListInp) (list []*sysin.AttachmentListModel, totalCount int, err error)
|
|
||||||
// ClearKind 清空上传类型
|
|
||||||
ClearKind(ctx context.Context, in *sysin.AttachmentClearKindInp) (err error)
|
|
||||||
}
|
|
||||||
ISysBlacklist interface {
|
|
||||||
// Delete 删除
|
// Delete 删除
|
||||||
Delete(ctx context.Context, in *sysin.BlacklistDeleteInp) (err error)
|
Delete(ctx context.Context, in *sysin.SmsLogDeleteInp) (err error)
|
||||||
// Edit 修改/新增
|
// Edit 修改/新增
|
||||||
Edit(ctx context.Context, in *sysin.BlacklistEditInp) (err error)
|
Edit(ctx context.Context, in *sysin.SmsLogEditInp) (err error)
|
||||||
// Status 更新部门状态
|
// Status 更新短信状态
|
||||||
Status(ctx context.Context, in *sysin.BlacklistStatusInp) (err error)
|
Status(ctx context.Context, in *sysin.SmsLogStatusInp) (err error)
|
||||||
// View 获取指定字典类型信息
|
// View 获取指定字典类型信息
|
||||||
View(ctx context.Context, in *sysin.BlacklistViewInp) (res *sysin.BlacklistViewModel, err error)
|
View(ctx context.Context, in *sysin.SmsLogViewInp) (res *sysin.SmsLogViewModel, err error)
|
||||||
// List 获取列表
|
// List 获取列表
|
||||||
List(ctx context.Context, in *sysin.BlacklistListInp) (list []*sysin.BlacklistListModel, totalCount int, err error)
|
List(ctx context.Context, in *sysin.SmsLogListInp) (list []*sysin.SmsLogListModel, totalCount int, err error)
|
||||||
// VariableLoad 变化加载
|
// SendCode 发送验证码
|
||||||
VariableLoad(ctx context.Context, err error)
|
SendCode(ctx context.Context, in *sysin.SendCodeInp) (err error)
|
||||||
// Load 加载黑名单
|
// GetTemplate 获取指定短信模板
|
||||||
Load(ctx context.Context)
|
GetTemplate(ctx context.Context, template string, config *model.SmsConfig) (val string, err error)
|
||||||
// VerifyRequest 验证请求的访问IP是否在黑名单,如果存在则返回错误
|
// AllowSend 是否允许发送
|
||||||
VerifyRequest(r *ghttp.Request) (err error)
|
AllowSend(ctx context.Context, models *entity.SysSmsLog, config *model.SmsConfig) (err error)
|
||||||
// ClusterSync 集群同步
|
// VerifyCode 效验验证码
|
||||||
ClusterSync(ctx context.Context, message *gredis.Message)
|
VerifyCode(ctx context.Context, in *sysin.VerifyCodeInp) (err error)
|
||||||
}
|
}
|
||||||
ISysCron interface {
|
ISysCron interface {
|
||||||
StartCron(ctx context.Context)
|
StartCron(ctx context.Context)
|
||||||
@ -297,21 +219,45 @@ type (
|
|||||||
// OnlineExec 在线执行
|
// OnlineExec 在线执行
|
||||||
OnlineExec(ctx context.Context, in *sysin.OnlineExecInp) (err error)
|
OnlineExec(ctx context.Context, in *sysin.OnlineExecInp) (err error)
|
||||||
}
|
}
|
||||||
ISysCronGroup interface {
|
ISysCurdDemo interface {
|
||||||
|
// Model 生成演示ORM模型
|
||||||
|
Model(ctx context.Context, option ...*handler.Option) *gdb.Model
|
||||||
|
// List 获取生成演示列表
|
||||||
|
List(ctx context.Context, in *sysin.CurdDemoListInp) (list []*sysin.CurdDemoListModel, totalCount int, err error)
|
||||||
|
// Export 导出生成演示
|
||||||
|
Export(ctx context.Context, in *sysin.CurdDemoListInp) (err error)
|
||||||
|
// Edit 修改/新增生成演示
|
||||||
|
Edit(ctx context.Context, in *sysin.CurdDemoEditInp) (err error)
|
||||||
|
// Delete 删除生成演示
|
||||||
|
Delete(ctx context.Context, in *sysin.CurdDemoDeleteInp) (err error)
|
||||||
|
// MaxSort 获取生成演示最大排序
|
||||||
|
MaxSort(ctx context.Context, in *sysin.CurdDemoMaxSortInp) (res *sysin.CurdDemoMaxSortModel, err error)
|
||||||
|
// View 获取生成演示指定信息
|
||||||
|
View(ctx context.Context, in *sysin.CurdDemoViewInp) (res *sysin.CurdDemoViewModel, err error)
|
||||||
|
// Status 更新生成演示状态
|
||||||
|
Status(ctx context.Context, in *sysin.CurdDemoStatusInp) (err error)
|
||||||
|
// Switch 更新生成演示开关
|
||||||
|
Switch(ctx context.Context, in *sysin.CurdDemoSwitchInp) (err error)
|
||||||
|
}
|
||||||
|
ISysEmsLog interface {
|
||||||
// Delete 删除
|
// Delete 删除
|
||||||
Delete(ctx context.Context, in *sysin.CronGroupDeleteInp) (err error)
|
Delete(ctx context.Context, in *sysin.EmsLogDeleteInp) (err error)
|
||||||
// Edit 修改/新增
|
// Edit 修改/新增
|
||||||
Edit(ctx context.Context, in *sysin.CronGroupEditInp) (err error)
|
Edit(ctx context.Context, in *sysin.EmsLogEditInp) (err error)
|
||||||
// Status 更新状态
|
// Status 更新部门状态
|
||||||
Status(ctx context.Context, in *sysin.CronGroupStatusInp) (err error)
|
Status(ctx context.Context, in *sysin.EmsLogStatusInp) (err error)
|
||||||
// MaxSort 最大排序
|
// View 获取指定字典类型信息
|
||||||
MaxSort(ctx context.Context, in *sysin.CronGroupMaxSortInp) (res *sysin.CronGroupMaxSortModel, err error)
|
View(ctx context.Context, in *sysin.EmsLogViewInp) (res *sysin.EmsLogViewModel, err error)
|
||||||
// View 获取指定信息
|
|
||||||
View(ctx context.Context, in *sysin.CronGroupViewInp) (res *sysin.CronGroupViewModel, err error)
|
|
||||||
// List 获取列表
|
// List 获取列表
|
||||||
List(ctx context.Context, in *sysin.CronGroupListInp) (list []*sysin.CronGroupListModel, totalCount int, err error)
|
List(ctx context.Context, in *sysin.EmsLogListInp) (list []*sysin.EmsLogListModel, totalCount int, err error)
|
||||||
// Select 选项
|
// Send 发送邮件
|
||||||
Select(ctx context.Context, in *sysin.CronGroupSelectInp) (res *sysin.CronGroupSelectModel, err error)
|
Send(ctx context.Context, in *sysin.SendEmsInp) (err error)
|
||||||
|
// GetTemplate 获取指定邮件模板
|
||||||
|
GetTemplate(ctx context.Context, template string, config *model.EmailConfig) (val string, err error)
|
||||||
|
// AllowSend 是否允许发送
|
||||||
|
AllowSend(ctx context.Context, models *entity.SysEmsLog, config *model.EmailConfig) (err error)
|
||||||
|
// VerifyCode 效验验证码
|
||||||
|
VerifyCode(ctx context.Context, in *sysin.VerifyEmsCodeInp) (err error)
|
||||||
}
|
}
|
||||||
ISysGenCodes interface {
|
ISysGenCodes interface {
|
||||||
// Delete 删除
|
// Delete 删除
|
||||||
@ -339,29 +285,116 @@ type (
|
|||||||
// Build 提交生成
|
// Build 提交生成
|
||||||
Build(ctx context.Context, in *sysin.GenCodesBuildInp) (err error)
|
Build(ctx context.Context, in *sysin.GenCodesBuildInp) (err error)
|
||||||
}
|
}
|
||||||
|
ISysLoginLog interface {
|
||||||
|
// Model 登录日志Orm模型
|
||||||
|
Model(ctx context.Context) *gdb.Model
|
||||||
|
// List 获取登录日志列表
|
||||||
|
List(ctx context.Context, in *sysin.LoginLogListInp) (list []*sysin.LoginLogListModel, totalCount int, err error)
|
||||||
|
// Export 导出登录日志
|
||||||
|
Export(ctx context.Context, in *sysin.LoginLogListInp) (err error)
|
||||||
|
// Delete 删除登录日志
|
||||||
|
Delete(ctx context.Context, in *sysin.LoginLogDeleteInp) (err error)
|
||||||
|
// View 获取登录日志指定信息
|
||||||
|
View(ctx context.Context, in *sysin.LoginLogViewInp) (res *sysin.LoginLogViewModel, err error)
|
||||||
|
// Push 推送登录日志
|
||||||
|
Push(ctx context.Context, in *sysin.LoginLogPushInp)
|
||||||
|
// RealWrite 真实写入
|
||||||
|
RealWrite(ctx context.Context, models entity.SysLoginLog) (err error)
|
||||||
|
}
|
||||||
|
ISysAttachment interface {
|
||||||
|
// Model ORM模型
|
||||||
|
Model(ctx context.Context, option ...*handler.Option) *gdb.Model
|
||||||
|
// Delete 删除附件
|
||||||
|
Delete(ctx context.Context, in *sysin.AttachmentDeleteInp) (err error)
|
||||||
|
// View 获取附件信息
|
||||||
|
View(ctx context.Context, in *sysin.AttachmentViewInp) (res *sysin.AttachmentViewModel, err error)
|
||||||
|
// List 获取附件列表
|
||||||
|
List(ctx context.Context, in *sysin.AttachmentListInp) (list []*sysin.AttachmentListModel, totalCount int, err error)
|
||||||
|
// ClearKind 清空上传类型
|
||||||
|
ClearKind(ctx context.Context, in *sysin.AttachmentClearKindInp) (err error)
|
||||||
|
}
|
||||||
|
ISysCronGroup interface {
|
||||||
|
// Delete 删除
|
||||||
|
Delete(ctx context.Context, in *sysin.CronGroupDeleteInp) (err error)
|
||||||
|
// Edit 修改/新增
|
||||||
|
Edit(ctx context.Context, in *sysin.CronGroupEditInp) (err error)
|
||||||
|
// Status 更新状态
|
||||||
|
Status(ctx context.Context, in *sysin.CronGroupStatusInp) (err error)
|
||||||
|
// MaxSort 最大排序
|
||||||
|
MaxSort(ctx context.Context, in *sysin.CronGroupMaxSortInp) (res *sysin.CronGroupMaxSortModel, err error)
|
||||||
|
// View 获取指定信息
|
||||||
|
View(ctx context.Context, in *sysin.CronGroupViewInp) (res *sysin.CronGroupViewModel, err error)
|
||||||
|
// List 获取列表
|
||||||
|
List(ctx context.Context, in *sysin.CronGroupListInp) (list []*sysin.CronGroupListModel, totalCount int, err error)
|
||||||
|
// Select 选项
|
||||||
|
Select(ctx context.Context, in *sysin.CronGroupSelectInp) (res *sysin.CronGroupSelectModel, err error)
|
||||||
|
}
|
||||||
|
ISysDictData interface {
|
||||||
|
// Delete 删除
|
||||||
|
Delete(ctx context.Context, in *sysin.DictDataDeleteInp) error
|
||||||
|
// Edit 修改/新增
|
||||||
|
Edit(ctx context.Context, in *sysin.DictDataEditInp) (err error)
|
||||||
|
// List 获取列表
|
||||||
|
List(ctx context.Context, in *sysin.DictDataListInp) (list []*sysin.DictDataListModel, totalCount int, err error)
|
||||||
|
// Select 获取列表
|
||||||
|
Select(ctx context.Context, in *sysin.DataSelectInp) (list sysin.DataSelectModel, err error)
|
||||||
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
localSysConfig ISysConfig
|
|
||||||
localSysServeLicense ISysServeLicense
|
|
||||||
localSysDictType ISysDictType
|
|
||||||
localSysServeLog ISysServeLog
|
|
||||||
localSysSmsLog ISysSmsLog
|
|
||||||
localSysAttachment ISysAttachment
|
|
||||||
localSysBlacklist ISysBlacklist
|
|
||||||
localSysCron ISysCron
|
localSysCron ISysCron
|
||||||
localSysCronGroup ISysCronGroup
|
localSysCurdDemo ISysCurdDemo
|
||||||
localSysGenCodes ISysGenCodes
|
localSysEmsLog ISysEmsLog
|
||||||
localSysLog ISysLog
|
localSysLog ISysLog
|
||||||
localSysProvinces ISysProvinces
|
localSysProvinces ISysProvinces
|
||||||
|
localSysSmsLog ISysSmsLog
|
||||||
|
localSysAttachment ISysAttachment
|
||||||
|
localSysCronGroup ISysCronGroup
|
||||||
|
localSysDictData ISysDictData
|
||||||
|
localSysGenCodes ISysGenCodes
|
||||||
|
localSysLoginLog ISysLoginLog
|
||||||
localSysAddons ISysAddons
|
localSysAddons ISysAddons
|
||||||
localSysAddonsConfig ISysAddonsConfig
|
localSysAddonsConfig ISysAddonsConfig
|
||||||
localSysCurdDemo ISysCurdDemo
|
localSysBlacklist ISysBlacklist
|
||||||
localSysDictData ISysDictData
|
localSysConfig ISysConfig
|
||||||
localSysEmsLog ISysEmsLog
|
localSysDictType ISysDictType
|
||||||
localSysLoginLog ISysLoginLog
|
localSysServeLog ISysServeLog
|
||||||
|
localSysServeLicense ISysServeLicense
|
||||||
)
|
)
|
||||||
|
|
||||||
|
func SysServeLicense() ISysServeLicense {
|
||||||
|
if localSysServeLicense == nil {
|
||||||
|
panic("implement not found for interface ISysServeLicense, forgot register?")
|
||||||
|
}
|
||||||
|
return localSysServeLicense
|
||||||
|
}
|
||||||
|
|
||||||
|
func RegisterSysServeLicense(i ISysServeLicense) {
|
||||||
|
localSysServeLicense = i
|
||||||
|
}
|
||||||
|
|
||||||
|
func SysCron() ISysCron {
|
||||||
|
if localSysCron == nil {
|
||||||
|
panic("implement not found for interface ISysCron, forgot register?")
|
||||||
|
}
|
||||||
|
return localSysCron
|
||||||
|
}
|
||||||
|
|
||||||
|
func RegisterSysCron(i ISysCron) {
|
||||||
|
localSysCron = i
|
||||||
|
}
|
||||||
|
|
||||||
|
func SysCurdDemo() ISysCurdDemo {
|
||||||
|
if localSysCurdDemo == nil {
|
||||||
|
panic("implement not found for interface ISysCurdDemo, forgot register?")
|
||||||
|
}
|
||||||
|
return localSysCurdDemo
|
||||||
|
}
|
||||||
|
|
||||||
|
func RegisterSysCurdDemo(i ISysCurdDemo) {
|
||||||
|
localSysCurdDemo = i
|
||||||
|
}
|
||||||
|
|
||||||
func SysEmsLog() ISysEmsLog {
|
func SysEmsLog() ISysEmsLog {
|
||||||
if localSysEmsLog == nil {
|
if localSysEmsLog == nil {
|
||||||
panic("implement not found for interface ISysEmsLog, forgot register?")
|
panic("implement not found for interface ISysEmsLog, forgot register?")
|
||||||
@ -373,6 +406,83 @@ func RegisterSysEmsLog(i ISysEmsLog) {
|
|||||||
localSysEmsLog = i
|
localSysEmsLog = i
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func SysLog() ISysLog {
|
||||||
|
if localSysLog == nil {
|
||||||
|
panic("implement not found for interface ISysLog, forgot register?")
|
||||||
|
}
|
||||||
|
return localSysLog
|
||||||
|
}
|
||||||
|
|
||||||
|
func RegisterSysLog(i ISysLog) {
|
||||||
|
localSysLog = i
|
||||||
|
}
|
||||||
|
|
||||||
|
func SysProvinces() ISysProvinces {
|
||||||
|
if localSysProvinces == nil {
|
||||||
|
panic("implement not found for interface ISysProvinces, forgot register?")
|
||||||
|
}
|
||||||
|
return localSysProvinces
|
||||||
|
}
|
||||||
|
|
||||||
|
func RegisterSysProvinces(i ISysProvinces) {
|
||||||
|
localSysProvinces = i
|
||||||
|
}
|
||||||
|
|
||||||
|
func SysSmsLog() ISysSmsLog {
|
||||||
|
if localSysSmsLog == nil {
|
||||||
|
panic("implement not found for interface ISysSmsLog, forgot register?")
|
||||||
|
}
|
||||||
|
return localSysSmsLog
|
||||||
|
}
|
||||||
|
|
||||||
|
func RegisterSysSmsLog(i ISysSmsLog) {
|
||||||
|
localSysSmsLog = i
|
||||||
|
}
|
||||||
|
|
||||||
|
func SysAttachment() ISysAttachment {
|
||||||
|
if localSysAttachment == nil {
|
||||||
|
panic("implement not found for interface ISysAttachment, forgot register?")
|
||||||
|
}
|
||||||
|
return localSysAttachment
|
||||||
|
}
|
||||||
|
|
||||||
|
func RegisterSysAttachment(i ISysAttachment) {
|
||||||
|
localSysAttachment = i
|
||||||
|
}
|
||||||
|
|
||||||
|
func SysCronGroup() ISysCronGroup {
|
||||||
|
if localSysCronGroup == nil {
|
||||||
|
panic("implement not found for interface ISysCronGroup, forgot register?")
|
||||||
|
}
|
||||||
|
return localSysCronGroup
|
||||||
|
}
|
||||||
|
|
||||||
|
func RegisterSysCronGroup(i ISysCronGroup) {
|
||||||
|
localSysCronGroup = i
|
||||||
|
}
|
||||||
|
|
||||||
|
func SysDictData() ISysDictData {
|
||||||
|
if localSysDictData == nil {
|
||||||
|
panic("implement not found for interface ISysDictData, forgot register?")
|
||||||
|
}
|
||||||
|
return localSysDictData
|
||||||
|
}
|
||||||
|
|
||||||
|
func RegisterSysDictData(i ISysDictData) {
|
||||||
|
localSysDictData = i
|
||||||
|
}
|
||||||
|
|
||||||
|
func SysGenCodes() ISysGenCodes {
|
||||||
|
if localSysGenCodes == nil {
|
||||||
|
panic("implement not found for interface ISysGenCodes, forgot register?")
|
||||||
|
}
|
||||||
|
return localSysGenCodes
|
||||||
|
}
|
||||||
|
|
||||||
|
func RegisterSysGenCodes(i ISysGenCodes) {
|
||||||
|
localSysGenCodes = i
|
||||||
|
}
|
||||||
|
|
||||||
func SysLoginLog() ISysLoginLog {
|
func SysLoginLog() ISysLoginLog {
|
||||||
if localSysLoginLog == nil {
|
if localSysLoginLog == nil {
|
||||||
panic("implement not found for interface ISysLoginLog, forgot register?")
|
panic("implement not found for interface ISysLoginLog, forgot register?")
|
||||||
@ -406,26 +516,15 @@ func RegisterSysAddonsConfig(i ISysAddonsConfig) {
|
|||||||
localSysAddonsConfig = i
|
localSysAddonsConfig = i
|
||||||
}
|
}
|
||||||
|
|
||||||
func SysCurdDemo() ISysCurdDemo {
|
func SysBlacklist() ISysBlacklist {
|
||||||
if localSysCurdDemo == nil {
|
if localSysBlacklist == nil {
|
||||||
panic("implement not found for interface ISysCurdDemo, forgot register?")
|
panic("implement not found for interface ISysBlacklist, forgot register?")
|
||||||
}
|
}
|
||||||
return localSysCurdDemo
|
return localSysBlacklist
|
||||||
}
|
}
|
||||||
|
|
||||||
func RegisterSysCurdDemo(i ISysCurdDemo) {
|
func RegisterSysBlacklist(i ISysBlacklist) {
|
||||||
localSysCurdDemo = i
|
localSysBlacklist = i
|
||||||
}
|
|
||||||
|
|
||||||
func SysDictData() ISysDictData {
|
|
||||||
if localSysDictData == nil {
|
|
||||||
panic("implement not found for interface ISysDictData, forgot register?")
|
|
||||||
}
|
|
||||||
return localSysDictData
|
|
||||||
}
|
|
||||||
|
|
||||||
func RegisterSysDictData(i ISysDictData) {
|
|
||||||
localSysDictData = i
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func SysConfig() ISysConfig {
|
func SysConfig() ISysConfig {
|
||||||
@ -439,17 +538,6 @@ func RegisterSysConfig(i ISysConfig) {
|
|||||||
localSysConfig = i
|
localSysConfig = i
|
||||||
}
|
}
|
||||||
|
|
||||||
func SysServeLicense() ISysServeLicense {
|
|
||||||
if localSysServeLicense == nil {
|
|
||||||
panic("implement not found for interface ISysServeLicense, forgot register?")
|
|
||||||
}
|
|
||||||
return localSysServeLicense
|
|
||||||
}
|
|
||||||
|
|
||||||
func RegisterSysServeLicense(i ISysServeLicense) {
|
|
||||||
localSysServeLicense = i
|
|
||||||
}
|
|
||||||
|
|
||||||
func SysDictType() ISysDictType {
|
func SysDictType() ISysDictType {
|
||||||
if localSysDictType == nil {
|
if localSysDictType == nil {
|
||||||
panic("implement not found for interface ISysDictType, forgot register?")
|
panic("implement not found for interface ISysDictType, forgot register?")
|
||||||
@ -471,91 +559,3 @@ func SysServeLog() ISysServeLog {
|
|||||||
func RegisterSysServeLog(i ISysServeLog) {
|
func RegisterSysServeLog(i ISysServeLog) {
|
||||||
localSysServeLog = i
|
localSysServeLog = i
|
||||||
}
|
}
|
||||||
|
|
||||||
func SysSmsLog() ISysSmsLog {
|
|
||||||
if localSysSmsLog == nil {
|
|
||||||
panic("implement not found for interface ISysSmsLog, forgot register?")
|
|
||||||
}
|
|
||||||
return localSysSmsLog
|
|
||||||
}
|
|
||||||
|
|
||||||
func RegisterSysSmsLog(i ISysSmsLog) {
|
|
||||||
localSysSmsLog = i
|
|
||||||
}
|
|
||||||
|
|
||||||
func SysGenCodes() ISysGenCodes {
|
|
||||||
if localSysGenCodes == nil {
|
|
||||||
panic("implement not found for interface ISysGenCodes, forgot register?")
|
|
||||||
}
|
|
||||||
return localSysGenCodes
|
|
||||||
}
|
|
||||||
|
|
||||||
func RegisterSysGenCodes(i ISysGenCodes) {
|
|
||||||
localSysGenCodes = i
|
|
||||||
}
|
|
||||||
|
|
||||||
func SysLog() ISysLog {
|
|
||||||
if localSysLog == nil {
|
|
||||||
panic("implement not found for interface ISysLog, forgot register?")
|
|
||||||
}
|
|
||||||
return localSysLog
|
|
||||||
}
|
|
||||||
|
|
||||||
func RegisterSysLog(i ISysLog) {
|
|
||||||
localSysLog = i
|
|
||||||
}
|
|
||||||
|
|
||||||
func SysProvinces() ISysProvinces {
|
|
||||||
if localSysProvinces == nil {
|
|
||||||
panic("implement not found for interface ISysProvinces, forgot register?")
|
|
||||||
}
|
|
||||||
return localSysProvinces
|
|
||||||
}
|
|
||||||
|
|
||||||
func RegisterSysProvinces(i ISysProvinces) {
|
|
||||||
localSysProvinces = i
|
|
||||||
}
|
|
||||||
|
|
||||||
func SysAttachment() ISysAttachment {
|
|
||||||
if localSysAttachment == nil {
|
|
||||||
panic("implement not found for interface ISysAttachment, forgot register?")
|
|
||||||
}
|
|
||||||
return localSysAttachment
|
|
||||||
}
|
|
||||||
|
|
||||||
func RegisterSysAttachment(i ISysAttachment) {
|
|
||||||
localSysAttachment = i
|
|
||||||
}
|
|
||||||
|
|
||||||
func SysBlacklist() ISysBlacklist {
|
|
||||||
if localSysBlacklist == nil {
|
|
||||||
panic("implement not found for interface ISysBlacklist, forgot register?")
|
|
||||||
}
|
|
||||||
return localSysBlacklist
|
|
||||||
}
|
|
||||||
|
|
||||||
func RegisterSysBlacklist(i ISysBlacklist) {
|
|
||||||
localSysBlacklist = i
|
|
||||||
}
|
|
||||||
|
|
||||||
func SysCron() ISysCron {
|
|
||||||
if localSysCron == nil {
|
|
||||||
panic("implement not found for interface ISysCron, forgot register?")
|
|
||||||
}
|
|
||||||
return localSysCron
|
|
||||||
}
|
|
||||||
|
|
||||||
func RegisterSysCron(i ISysCron) {
|
|
||||||
localSysCron = i
|
|
||||||
}
|
|
||||||
|
|
||||||
func SysCronGroup() ISysCronGroup {
|
|
||||||
if localSysCronGroup == nil {
|
|
||||||
panic("implement not found for interface ISysCronGroup, forgot register?")
|
|
||||||
}
|
|
||||||
return localSysCronGroup
|
|
||||||
}
|
|
||||||
|
|
||||||
func RegisterSysCronGroup(i ISysCronGroup) {
|
|
||||||
localSysCronGroup = i
|
|
||||||
}
|
|
||||||
|
@ -265,7 +265,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
function handleSelect(item: Attachment) {
|
function handleSelect(item: Attachment) {
|
||||||
if (selectList.value === null || props.maxNumber == 1) {
|
if (!selectList.value || props.maxNumber == 1) {
|
||||||
selectList.value = [];
|
selectList.value = [];
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -289,7 +289,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
function isSelected(item: Attachment) {
|
function isSelected(item: Attachment) {
|
||||||
if (selectList.value === null) {
|
if (!selectList.value) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
return selectList.value.some((selected) => selected === item.fileUrl);
|
return selectList.value.some((selected) => selected === item.fileUrl);
|
||||||
@ -297,11 +297,11 @@
|
|||||||
|
|
||||||
function generateKindOptions(kinds: KindRawOption[]): any {
|
function generateKindOptions(kinds: KindRawOption[]): any {
|
||||||
const option: KindOption[] = [];
|
const option: KindOption[] = [];
|
||||||
kinds.forEach((item) => {
|
kinds.forEach((item: KindRawOption) => {
|
||||||
const data: KindOption = {
|
const data: KindOption = {
|
||||||
label: () => h(NEllipsis, null, { default: () => item.label }),
|
label: () => h(NEllipsis, null, { default: () => item.label }),
|
||||||
key: item.key,
|
key: item.key,
|
||||||
extra: () => createExtraContent(item),
|
extra: () => (item.key !== '' ? createExtraContent(item) : null),
|
||||||
icon: constantRouterIcon[item.icon] || null,
|
icon: constantRouterIcon[item.icon] || null,
|
||||||
disabled: isDisabledKindOption(item),
|
disabled: isDisabledKindOption(item),
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user