This commit is contained in:
2025-06-06 14:31:58 +08:00
parent 38ee553cf3
commit 96d537c044
20 changed files with 412 additions and 421 deletions

View File

@@ -2,7 +2,6 @@ package system
import (
"context"
"encoding/json"
"errors"
"fmt"
"strconv"
@@ -12,19 +11,19 @@ import (
"management/internal/erpserver/model/form"
"management/internal/erpserver/model/system"
"management/internal/erpserver/model/view"
"management/internal/erpserver/service"
v1 "management/internal/erpserver/service/v1"
"management/internal/erpserver/service/util"
"management/internal/erpserver/service/v1"
"management/internal/pkg/convertor"
"management/internal/pkg/database"
"management/internal/pkg/know"
)
type departmentService struct {
*service.Service
*v1.Service
repo system.DepartmentRepository
}
func NewDepartmentService(service *service.Service, repo system.DepartmentRepository) v1.DepartmentService {
func NewDepartmentService(service *v1.Service, repo system.DepartmentRepository) v1.DepartmentService {
return &departmentService{
Service: service,
repo: repo,
@@ -107,27 +106,12 @@ func (s *departmentService) Get(ctx context.Context, id int32) (*system.Departme
}
func (s *departmentService) All(ctx context.Context) ([]*system.Department, error) {
var res []*system.Department
key := know.GetManageKey(ctx, know.AllDepartments)
bs, err := s.Redis.GetBytes(ctx, key)
if err == nil {
var res []*system.Department
if err := json.Unmarshal(bs, &res); err == nil {
return res, nil
}
}
res, err := s.repo.All(ctx)
if err != nil {
return nil, err
}
bs, err = json.Marshal(res)
if err != nil {
return nil, err
}
_ = s.Redis.Set(ctx, key, bs, time.Hour*6)
return res, nil
err := util.GetOrSetCache(ctx, s.Redis, key, util.GetCacheExpire(), func() (any, error) {
return s.repo.All(ctx)
}, &res)
return res, err
}
func (s *departmentService) List(ctx context.Context, q dto.SearchDto) ([]*system.Department, int64, error) {
@@ -135,19 +119,12 @@ func (s *departmentService) List(ctx context.Context, q dto.SearchDto) ([]*syste
}
func (s *departmentService) RefreshCache(ctx context.Context) error {
var res []*system.Department
key := know.GetManageKey(ctx, know.AllDepartments)
res, err := s.All(ctx)
if err != nil {
return err
}
b, err := json.Marshal(res)
if err != nil {
return err
}
_ = s.Redis.Set(ctx, key, b, time.Hour*6)
return nil
err := util.GetOrSetCache(ctx, s.Redis, key, util.GetCacheExpire(), func() (any, error) {
return s.All(ctx)
}, &res)
return err
}
func (s *departmentService) RebuildParentPath(ctx context.Context) error {