v2
This commit is contained in:
63
internal/erpserver/biz/v1/system/config.go
Normal file
63
internal/erpserver/biz/v1/system/config.go
Normal file
@@ -0,0 +1,63 @@
|
||||
package system
|
||||
|
||||
import (
|
||||
"context"
|
||||
"encoding/json"
|
||||
"time"
|
||||
|
||||
"management/internal/db/model/dto"
|
||||
db "management/internal/db/sqlc"
|
||||
"management/internal/global/keys"
|
||||
"management/internal/global/pearadmin"
|
||||
"management/internal/pkg/redis"
|
||||
"management/internal/pkg/session"
|
||||
)
|
||||
|
||||
type ConfigBiz interface {
|
||||
ConfigExpansion
|
||||
}
|
||||
|
||||
type ConfigExpansion interface {
|
||||
Pear(ctx context.Context) (*dto.PearConfig, error)
|
||||
}
|
||||
|
||||
type configBiz struct {
|
||||
store db.Store
|
||||
redis redis.IRedis
|
||||
session session.ISession
|
||||
}
|
||||
|
||||
var _ ConfigBiz = (*configBiz)(nil)
|
||||
|
||||
func NewConfig(store db.Store, redis redis.IRedis, session session.ISession) *configBiz {
|
||||
return &configBiz{
|
||||
store: store,
|
||||
redis: redis,
|
||||
session: session,
|
||||
}
|
||||
}
|
||||
|
||||
func (b *configBiz) Pear(ctx context.Context) (*dto.PearConfig, error) {
|
||||
// 判断redis是否存储
|
||||
key := keys.GetManageKey(ctx, keys.PearAdmin)
|
||||
bs, err := b.redis.GetBytes(ctx, key)
|
||||
if err == nil {
|
||||
var res *dto.PearConfig
|
||||
if err := json.Unmarshal(bs, &res); err == nil {
|
||||
return res, nil
|
||||
}
|
||||
}
|
||||
|
||||
conf, err := b.store.GetSysConfigByKey(ctx, pearadmin.PearKey)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var pear dto.PearConfig
|
||||
if err := json.Unmarshal(conf.Value, &pear); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
_ = b.redis.Set(ctx, key, conf.Value, time.Hour*6)
|
||||
return &pear, nil
|
||||
}
|
||||
Reference in New Issue
Block a user