73 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			73 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| 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
 | |
| }
 |