| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147 |
- package service
- import (
- "dashoo.cn/micro/app/common/global"
- comModel "dashoo.cn/micro/app/common/model"
- comService "dashoo.cn/micro/app/common/service"
- "dashoo.cn/micro/app/dao"
- "dashoo.cn/micro/app/model"
- "github.com/gogf/gf/errors/gerror"
- "github.com/gogf/gf/frame/g"
- "github.com/gogf/gf/util/gconv"
- )
- type sysConfig struct {
- }
- var SysConfig = new(sysConfig)
- func (s *sysConfig) SelectListByPage(req *model.SysConfigSearchReq) (total, page int, list []*model.SysConfig, err error) {
- m := dao.SysConfig.Ctx(req.Ctx)
- if req != nil {
- if req.ConfigName != "" {
- m = m.Where("config_name like ?", "%"+req.ConfigName+"%")
- }
- if req.ConfigType != "" {
- m = m.Where("config_type = ", gconv.Int(req.ConfigType))
- }
- if req.ConfigKey != "" {
- m = m.Where("config_key like ?", "%"+req.ConfigKey+"%")
- }
- if req.BeginTime != "" {
- m = m.Where("create_time >= ? ", req.BeginTime)
- }
- if req.EndTime != "" {
- m = m.Where("create_time<=?", req.EndTime)
- }
- }
- total, err = m.Count()
- if err != nil {
- g.Log().Error(err)
- err = gerror.New("获取总行数失败")
- return
- }
- if req.PageNum == 0 {
- req.PageNum = 1
- }
- page = req.PageNum
- if req.PageSize == 0 {
- req.PageSize = comModel.PageSize
- }
- err = m.Page(page, req.PageSize).Order("config_id asc").Scan(&list)
- if err != nil {
- g.Log().Error(err)
- err = gerror.New("获取数据失败")
- return
- }
- return
- }
- // CheckConfigKeyUniqueAll 验证参数键名是否存在
- func (s *sysConfig) CheckConfigKeyUniqueAll(configKey string) error {
- entity, err := dao.SysConfig.Fields(dao.SysConfig.Columns.Id).FindOne(dao.SysConfig.Columns.ConfigKey, configKey)
- if err != nil {
- g.Log().Error(err)
- return gerror.New("校验数据失败")
- }
- if entity != nil {
- return gerror.New("参数键名已经存在")
- }
- return nil
- }
- // AddSave 添加操作
- func (s *sysConfig) AddSave(req *model.SysConfigAddReq) (err error) {
- _, err = dao.SysConfig.Insert(req)
- return
- }
- func (s *sysConfig) GetById(id int) (data *model.SysConfig, err error) {
- err = dao.SysConfig.WherePri(id).Scan(&data)
- return
- }
- // CheckConfigKeyUnique 检查键是否已经存在
- func (s *sysConfig) CheckConfigKeyUnique(configKey string, configId int64) error {
- entity, err := dao.SysConfig.Fields(dao.SysConfig.Columns.Id).
- FindOne(dao.SysConfig.Columns.ConfigKey+"=? and "+dao.SysConfig.Columns.Id+"!=?",
- configKey, configId)
- if err != nil {
- g.Log().Error(err)
- return gerror.New("校验数据失败")
- }
- if entity != nil {
- return gerror.New("参数键名已经存在")
- }
- return nil
- }
- // EditSave 修改系统参数
- func (s *sysConfig) EditSave(req *model.SysConfigEditReq) (err error) {
- _, err = dao.SysConfig.FieldsEx(dao.SysConfig.Columns.Id, dao.SysConfig.Columns.CreatedBy).
- WherePri(req.ConfigId).Data(req).Update()
- return
- }
- // DeleteByIds 删除
- func (s *sysConfig) DeleteByIds(ids []int) error {
- _, err := dao.SysConfig.Delete(dao.SysConfig.Columns.Id+" in (?)", ids)
- if err != nil {
- g.Log().Error(err)
- return gerror.New("删除失败")
- }
- return nil
- }
- // GetConfigByKey 通过key获取参数(从缓存获取)
- func (s *sysConfig) GetConfigByKey(key string) (config *model.SysConfig, err error) {
- if key == "" {
- err = gerror.New("参数key不能为空")
- return
- }
- cache := comService.Cache.New()
- cf := cache.Get(global.SysConfigTag + key)
- if cf != nil {
- err = gconv.Struct(cf, &config)
- return
- }
- config, err = s.GetByKey(key)
- if err != nil {
- return
- }
- if config != nil {
- cache.Set(global.SysConfigTag+key, config, 0, global.SysConfigTag)
- }
- return
- }
- // GetByKey 通过key获取参数(从数据库获取)
- func (s *sysConfig) GetByKey(key string) (config *model.SysConfig, err error) {
- err = dao.SysConfig.Where("config_key", key).Scan(&config)
- if err != nil {
- g.Log().Error(err)
- err = gerror.New("获取配置失败")
- }
- return
- }
|