| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137 |
- package service
- import (
- "context"
- "dashoo.cn/micro/app/dao"
- "dashoo.cn/micro/app/model"
- "dashoo.cn/opms_libary/myerrors"
- "github.com/gogf/gf/util/gconv"
- )
- type ConfigService struct {
- *contextService
- Dao *dao.SysConfigDao
- }
- func NewConfigService(ctx context.Context) (svc *ConfigService, err error) {
- svc = new(ConfigService)
- if svc.contextService, err = svc.Init(ctx); err != nil {
- return nil, err
- }
- svc.Dao = dao.NewSysConfigDao(svc.Tenant)
- return svc, nil
- }
- func (s *ConfigService) GetList(req *model.SysConfigSearchReq) (total int, list []*model.SysConfig, err error) {
- m := s.Dao.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 {
- return
- }
- err = m.Page(req.GetPage()).Scan(&list)
- if err != nil {
- return
- }
- return
- }
- func (s *ConfigService) GetEntityById(id int64) (config *model.SysConfig, err error) {
- config, err = s.Dao.WherePri(id).One()
- return
- }
- // GetEntityByKey 通过key获取参数(从缓存获取)
- func (s *ConfigService) GetEntityByKey(key string) (config *model.SysConfig, err error) {
- if key == "" {
- err = myerrors.TipsError("参数key不能为空")
- return
- }
- config, err = s.GetByKey(key)
- if err != nil {
- return
- }
- return
- }
- // GetByKey 通过key获取参数(从数据库获取)
- func (s *ConfigService) GetByKey(key string) (config *model.SysConfig, err error) {
- config, err = s.Dao.Where(s.Dao.C.ConfigKey, key).One()
- return
- }
- // CheckConfigKeyUniqueAll 验证参数键名是否存在
- func (s *ConfigService) CheckConfigKeyUniqueAll(configKey string) error {
- entity, err := s.Dao.Fields(s.Dao.C.Id).Where(s.Dao.C.ConfigKey, configKey).FindOne()
- if err != nil {
- return myerrors.TipsError("参数键名校验数据失败")
- }
- if entity != nil {
- return myerrors.ValidError("参数键名已经存在")
- }
- return nil
- }
- // CheckConfigKeyUnique 检查键是否已经存在
- func (s *ConfigService) CheckConfigKeyUnique(configKey string, configId int64) error {
- entity, err := s.Dao.Fields(s.Dao.C.Id).Where(s.Dao.C.ConfigKey, configKey).WhereNot(s.Dao.C.Id, configId).FindOne()
- if err != nil {
- return myerrors.TipsError("参数键名校验数据失败")
- }
- if entity != nil {
- return myerrors.ValidError("参数键名已经存在")
- }
- return nil
- }
- // Create 添加操作
- func (s *ConfigService) Create(req *model.CreateSysConfigReq) (err error) {
- err = s.CheckConfigKeyUniqueAll(req.ConfigKey)
- if err != nil {
- return err
- }
- data := new(model.SysConfig)
- if err := gconv.Struct(req, data); err != nil {
- return err
- }
- SetCreatedInfo(data, s.GetCxtUserId(), s.GetCxtUserName())
- _, err = s.Dao.Insert(data)
- return
- }
- // UpdateById 修改系统参数
- func (s *ConfigService) UpdateById(req *model.UpdateSysConfigReq) (err error) {
- err = s.CheckConfigKeyUnique(req.ConfigKey, req.Id)
- if err != nil {
- return err
- }
- data := new(model.SysConfig)
- if err := gconv.Struct(req, data); err != nil {
- return err
- }
- SetUpdatedInfo(data, s.GetCxtUserId(), s.GetCxtUserName())
- _, err = s.Dao.FieldsEx(UpdateFieldEx...).WherePri(req.Id).Data(data).Update()
- return
- }
- // DeleteByIds 删除
- func (s *ConfigService) DeleteByIds(ids []int64) error {
- _, err := s.Dao.WhereIn(s.Dao.C.Id, ids).Delete()
- return err
- }
|