2025-06-25 16:11:03 +08:00

132 lines
4.8 KiB
Go

package v1
import (
"context"
"time"
"management/internal/erpserver/model/dto"
"management/internal/erpserver/model/form"
"management/internal/erpserver/model/system"
"management/internal/erpserver/model/view"
"management/internal/pkg/cache"
"management/internal/pkg/session"
"github.com/drhin/logger"
)
type Service struct {
Log *logger.Logger
Session session.Manager
Redis cache.Cache
}
func NewService(
log *logger.Logger,
session session.Manager,
redis cache.Cache,
) *Service {
return &Service{
Log: log,
Session: session,
Redis: redis,
}
}
type CaptchaService interface {
Generate(height int, width int, length int, maxSkew float64, dotCount int) (id, b64s, answer string, err error)
Verify(id, answer string, clear bool) bool
}
type ConfigService interface {
Create(ctx context.Context, obj *system.Config) error
Update(ctx context.Context, obj *system.Config) error
Get(ctx context.Context, id int32) (*system.Config, error)
List(ctx context.Context, q dto.SearchDto) ([]*system.Config, int64, error)
Pear(ctx context.Context) (*dto.PearConfig, error)
RefreshCache(ctx context.Context, key string) error
ResetPear(ctx context.Context) error
}
type UserService interface {
Create(ctx context.Context, req *form.User) error
Update(ctx context.Context, req *form.User) error
All(ctx context.Context) ([]*system.User, error)
List(ctx context.Context, q dto.SearchDto) ([]*system.User, int64, error)
Get(ctx context.Context, id int32) (*system.User, error)
GetByEmail(ctx context.Context, email string) (*system.User, error)
XmSelect(ctx context.Context) ([]*view.XmSelect, error)
Login(ctx context.Context, req *form.Login) error
}
type LoginLogService interface {
Create(ctx context.Context, req *system.LoginLog) error
List(ctx context.Context, q dto.SearchDto) ([]*system.LoginLog, int64, error)
LoginTime(ctx context.Context, email string) (dto.LoginTimeDto, error)
LoginCount(ctx context.Context, email string) int64
HistoricalLogin(ctx context.Context, email string, createdAt time.Time) ([]*system.LoginLog, error)
}
type AuditLogService interface {
Create(ctx context.Context, req *system.AuditLog) error
BatchCreate(ctx context.Context, objs []*system.AuditLog) error
List(ctx context.Context, q dto.SearchDto) ([]*system.AuditLog, int64, error)
}
type RoleService interface {
Create(ctx context.Context, req *form.Role) error
Update(ctx context.Context, req *form.Role) error
Get(ctx context.Context, id int32) (*system.Role, error)
All(ctx context.Context) ([]*system.Role, error)
List(ctx context.Context, q dto.SearchDto) ([]*system.Role, int64, error)
RefreshCache(ctx context.Context) error
RebuildParentPath(ctx context.Context) error
Tree(ctx context.Context, id int32) ([]*view.LayuiTree, error)
XmSelectTree(ctx context.Context, id int32) ([]*view.XmSelectTree, error)
}
type DepartmentService interface {
Create(ctx context.Context, req *form.Department) error
Update(ctx context.Context, req *form.Department) error
Get(ctx context.Context, id int32) (*system.Department, error)
All(ctx context.Context) ([]*system.Department, error)
List(ctx context.Context, q dto.SearchDto) ([]*system.Department, int64, error)
RefreshCache(ctx context.Context) error
RebuildParentPath(ctx context.Context) error
Tree(ctx context.Context, id int32) ([]*view.LayuiTree, error)
XmSelectTree(ctx context.Context, id int32) ([]*view.XmSelectTree, error)
}
type MenuService interface {
Create(ctx context.Context, req *system.Menu) error
Update(ctx context.Context, req *system.Menu) error
Get(ctx context.Context, id int32) (*system.Menu, error)
GetByUrl(ctx context.Context, url string) (*system.Menu, error)
All(ctx context.Context) ([]*system.Menu, error)
ListMenuTree(ctx context.Context) ([]*view.MenuTree, error)
ListByRoleID(ctx context.Context, roleID int32) ([]*dto.OwnerMenuDto, error)
SetListByRoleID(ctx context.Context, roleID int32) ([]*dto.OwnerMenuDto, error)
ListByRoleIDToMap(ctx context.Context, roleID int32) (map[string]*dto.OwnerMenuDto, error)
SetListByRoleIDToMap(ctx context.Context, roleID int32) (map[string]*dto.OwnerMenuDto, error)
OwerMenus(ctx context.Context, roleID int32) ([]*dto.MenuUIDto, error)
SetOwerMenus(ctx context.Context, roleID int32) ([]*dto.MenuUIDto, error)
MenuViewData(ctx context.Context, roleID int32) ([]*dto.SetMenuDto, error)
SetRoleMenu(ctx context.Context, roleID int32, rms []*system.RoleMenu) error
RefreshCache(ctx context.Context) error
RebuildParentPath(ctx context.Context) error
Tree(ctx context.Context, id int32) ([]*view.LayuiTree, error)
XmSelectTree(ctx context.Context, id int32) ([]*view.XmSelectTree, error)
}
type RoleMenuService interface {
Create(ctx context.Context, req []*system.RoleMenu) error
DeleteByRoleID(ctx context.Context, roleID int32) error
ListByRoleID(ctx context.Context, roleID int32) ([]*system.RoleMenu, error)
}