You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
76 lines
1.9 KiB
76 lines
1.9 KiB
package service |
|
|
|
import ( |
|
"context" |
|
"strconv" |
|
|
|
"go-common/app/admin/main/spy/model" |
|
"go-common/library/ecode" |
|
"go-common/library/log" |
|
) |
|
|
|
// SettingList get all setting |
|
func (s *Service) SettingList(c context.Context) (list []*model.Setting, err error) { |
|
if list, err = s.spyDao.SettingList(c); err != nil { |
|
log.Error("s.spyDao.SettingList() error(%v)", err) |
|
return |
|
} |
|
return |
|
} |
|
|
|
// UpdateSetting update setting |
|
func (s *Service) UpdateSetting(c context.Context, name string, property string, val string) (err error) { |
|
if err = s.checkSettingVal(property, val); err != nil { |
|
return |
|
} |
|
var effected int64 |
|
if effected, err = s.spyDao.UpdateSetting(c, property, val); err != nil { |
|
log.Error("s.spyDao.UpdateSetting(%s,%d) error(%v)", property, val, err) |
|
return |
|
} |
|
if effected > 0 { |
|
updatedSetting := &model.Setting{Property: property, Val: val} |
|
if err := s.AddLog(c, name, model.UpdateSetting, updatedSetting); err != nil { |
|
log.Error("s.AddLog(%s,%d,%+v) error(%v)", name, model.UpdateSetting, updatedSetting, err) |
|
} |
|
} |
|
return |
|
} |
|
|
|
func (s *Service) checkSettingVal(prop string, val string) (err error) { |
|
switch prop { |
|
case model.AutoBlock: |
|
var block int64 |
|
if block, err = strconv.ParseInt(val, 10, 64); err != nil { |
|
err = ecode.SpySettingValTypeError |
|
return |
|
} |
|
if block != 1 && block != 0 { |
|
err = ecode.SpySettingValueOutOfRange |
|
return |
|
} |
|
case model.LimitBlockCount: |
|
var count int64 |
|
if count, err = strconv.ParseInt(val, 10, 64); err != nil { |
|
err = ecode.SpySettingValTypeError |
|
return |
|
} |
|
if count < 0 { |
|
err = ecode.SpySettingValueOutOfRange |
|
return |
|
} |
|
case model.LessBlockScore: |
|
var score int64 |
|
if score, err = strconv.ParseInt(val, 10, 64); err != nil { |
|
err = ecode.SpySettingValTypeError |
|
return |
|
} |
|
if score < 0 || score > 30 { |
|
err = ecode.SpySettingValueOutOfRange |
|
return |
|
} |
|
default: |
|
err = ecode.SpySettingUnknown |
|
} |
|
return err |
|
}
|
|
|