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 }