github.com/SupenBysz/gf-admin-community@v0.7.4/internal/logic/sys_settings/sys_settings.go (about)

     1  package sys_settings
     2  
     3  import (
     4  	"context"
     5  	"github.com/SupenBysz/gf-admin-community/sys_model"
     6  	"github.com/SupenBysz/gf-admin-community/sys_model/sys_dao"
     7  	"github.com/SupenBysz/gf-admin-community/sys_model/sys_do"
     8  	"github.com/SupenBysz/gf-admin-community/sys_model/sys_entity"
     9  	"github.com/SupenBysz/gf-admin-community/sys_service"
    10  	"github.com/gogf/gf/v2/encoding/gjson"
    11  	"github.com/gogf/gf/v2/errors/gerror"
    12  	"github.com/kysion/base-library/base_model"
    13  	"github.com/kysion/base-library/utility/daoctl"
    14  	"github.com/kysion/base-library/utility/kconv"
    15  )
    16  
    17  type sSysSettings struct {
    18  }
    19  
    20  func init() {
    21  	sys_service.RegisterSysSettings(New())
    22  }
    23  
    24  func New() *sSysSettings {
    25  	return &sSysSettings{}
    26  }
    27  
    28  // QueryList 获取列表
    29  func (s *sSysSettings) QueryList(ctx context.Context, params *base_model.SearchParams, isExport bool) (*sys_model.SysSettingListRes, error) {
    30  	result, err := daoctl.Query[sys_entity.SysSettings](sys_dao.SysSettings.Ctx(ctx), params, isExport)
    31  
    32  	if err != nil {
    33  		return nil, sys_service.SysLogs().ErrorSimple(ctx, gerror.New("配置列表获取失败"), "", sys_dao.SysSettings.Table())
    34  	}
    35  
    36  	return (*sys_model.SysSettingListRes)(result), err
    37  }
    38  
    39  // GetByName 根据 name 查询百度SDK应用配置信息
    40  func (s *sSysSettings) GetByName(ctx context.Context, name string, info *base_model.SearchParams) (*sys_model.SysSettingsRes, error) {
    41  	items, err := s.QueryList(ctx, info, true)
    42  	if err != nil {
    43  		return nil, err
    44  	}
    45  
    46  	for _, setting := range items.Records {
    47  		if setting.Name == name {
    48  			return (*sys_model.SysSettingsRes)(&setting), nil
    49  		}
    50  	}
    51  
    52  	return nil, sys_service.SysLogs().ErrorSimple(ctx, err, "根据 name 查询配置信息失败", sys_dao.SysSettings.Table()+":"+name)
    53  }
    54  
    55  // Save 保存系统配置信息
    56  func (s *sSysSettings) Save(ctx context.Context, info *sys_model.SysSettings) (*sys_model.SysSettingsRes, error) {
    57  	data := kconv.Struct(info, &sys_do.SysSettings{})
    58    
    59  	count, err := sys_dao.SysSettings.Ctx(ctx).Count(sys_do.SysSettings{Name: info.Name})
    60  	if count > 0 {
    61  		_, err = sys_dao.SysSettings.Ctx(ctx).Where(sys_do.SysSettings{Name: info.Name, UnionMainId: info.UnionMainId}).OmitNilData().Update(sys_do.SysSettings{Values: data.Values, Desc: data.Desc})
    62  	} else {
    63  		_, err = sys_dao.SysSettings.Ctx(ctx).Insert(data)
    64  	}
    65  
    66  	if nil != err {
    67  		return nil, sys_service.SysLogs().ErrorSimple(ctx, err, "配置保存失败", sys_dao.SysSettings.Table()+":"+info.Name)
    68  	}
    69  
    70  	return s.GetByName(ctx, info.Name, nil)
    71  }
    72  
    73  // Create  创建系统配置信息
    74  func (s *sSysSettings) Create(ctx context.Context, info *sys_model.SysSettings) (*sys_model.SysSettingsRes, error) {
    75  	info.Values = gjson.MustEncodeString(info.Values)
    76  
    77  	return s.Save(ctx, info)
    78  }
    79  
    80  // Update  修改系统配置信息
    81  func (s *sSysSettings) Update(ctx context.Context, info *sys_model.SysSettings) (*sys_model.SysSettingsRes, error) {
    82  	info.Values = gjson.MustEncodeString(info.Values)
    83  
    84  	return s.Save(ctx, info)
    85  }
    86  
    87  // Delete 删除
    88  func (s *sSysSettings) Delete(ctx context.Context, name string, unionMainId int64) (bool, error) {
    89  	affected, err := daoctl.DeleteWithError(sys_dao.SysSettings.Ctx(ctx).Where(sys_do.SysSettings{Name: name, UnionMainId: unionMainId}))
    90  
    91  	if err != nil {
    92  		return false, sys_service.SysLogs().ErrorSimple(ctx, err, "删除配置信息失败", sys_dao.SysSettings.Table()+":"+name)
    93  	}
    94  
    95  	return affected > 0, err
    96  }