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" ) func CreateSysConfig(ctx context.Context, arg *db.CreateSysConfigParams) error { return db.Engine.CreateSysConfig(ctx, arg) } func UpdateSysConfigByKey(ctx context.Context, arg *db.UpdateSysConfigByKeyParams) error { return db.Engine.UpdateSysConfigByKey(ctx, arg) } func GetSysConfig(ctx context.Context, id int32) (*db.SysConfig, error) { return db.Engine.GetSysConfig(ctx, id) } func GetSysConfigByKey(ctx context.Context, key string) (*db.SysConfig, error) { return db.Engine.GetSysConfigByKey(ctx, key) } func PearConfig(ctx context.Context) (*dto.PearConfig, error) { // 判断redis是否存储 key := keys.GetManageKey(ctx, keys.PearAdmin) b, err := redis.GetBytes(ctx, key) if err == nil { var res *dto.PearConfig if err := json.Unmarshal(b, &res); err == nil { return res, nil } } conf, err := db.Engine.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 } _ = redis.Set(ctx, key, conf.Value, time.Hour*6) return &pear, nil } func ListSysConfigCondition(ctx context.Context, q dto.SearchDto) ([]*db.SysConfig, int64, error) { count, err := db.Engine.CountSysConfigCondition(ctx, q.SearchKey) if err != nil { return nil, 0, err } configs, err := db.Engine.ListSysConfigCondition(ctx, &db.ListSysConfigConditionParams{ Key: q.SearchKey, Skip: (int32(q.Page) - 1) * int32(q.Rows), Size: int32(q.Rows), }) if err != nil { return nil, 0, err } return configs, count, nil }