2021-11-04 15:15:11 +08:00
|
|
|
|
package config
|
|
|
|
|
|
|
|
|
|
import (
|
2021-11-08 11:09:27 +08:00
|
|
|
|
model2 "ArmedPolice/app/common/model"
|
|
|
|
|
"ArmedPolice/app/controller/basic"
|
|
|
|
|
"ArmedPolice/app/model"
|
2021-11-04 15:15:11 +08:00
|
|
|
|
"ArmedPolice/config"
|
2021-11-08 11:09:27 +08:00
|
|
|
|
"ArmedPolice/serve/orm"
|
|
|
|
|
"errors"
|
|
|
|
|
"time"
|
|
|
|
|
|
|
|
|
|
"gorm.io/gorm"
|
2021-11-04 15:15:11 +08:00
|
|
|
|
)
|
|
|
|
|
|
2021-11-08 11:09:27 +08:00
|
|
|
|
type Instance struct{}
|
|
|
|
|
|
|
|
|
|
type InstanceHandle func() *Instance
|
|
|
|
|
|
|
|
|
|
func (c *Instance) List(kind, page, pageSize int) (*basic.PageDataResponse, error) {
|
|
|
|
|
mSysConfig := model.NewSysConfig()
|
|
|
|
|
|
|
|
|
|
where := []*model2.ModelWhereOrder{
|
|
|
|
|
&model2.ModelWhereOrder{Order: model2.NewOrder("kind", model2.OrderModeToAsc)},
|
|
|
|
|
}
|
|
|
|
|
if kind > 0 {
|
|
|
|
|
where = append(where, &model2.ModelWhereOrder{Where: model2.NewWhere("kind", kind)})
|
|
|
|
|
}
|
|
|
|
|
out := make([]*model2.SysConfig, 0)
|
|
|
|
|
|
|
|
|
|
var count int64
|
2021-11-04 15:15:11 +08:00
|
|
|
|
|
2021-11-08 11:09:27 +08:00
|
|
|
|
if err := model2.Pages(mSysConfig.SysConfig, &out, page, pageSize, &count, where...); err != nil {
|
|
|
|
|
return nil, err
|
|
|
|
|
}
|
|
|
|
|
return &basic.PageDataResponse{Data: out, Count: count}, nil
|
|
|
|
|
}
|
2021-11-04 15:15:11 +08:00
|
|
|
|
|
2021-11-08 11:09:27 +08:00
|
|
|
|
func (c *Instance) Form(params map[string]interface{}) error {
|
|
|
|
|
if len(params) <= 0 {
|
|
|
|
|
return nil
|
2021-11-04 15:15:11 +08:00
|
|
|
|
}
|
2021-11-08 11:09:27 +08:00
|
|
|
|
return orm.GetDB().Transaction(func(tx *gorm.DB) error {
|
|
|
|
|
mSysConfig := model.NewSysConfig()
|
|
|
|
|
now := time.Now()
|
|
|
|
|
|
|
|
|
|
for k, v := range params {
|
|
|
|
|
if _, has := config.SystemConfig[k]; !has {
|
|
|
|
|
return errors.New("UnKnown Config Key :" + k)
|
|
|
|
|
}
|
|
|
|
|
if err := model2.UpdatesWhere(mSysConfig.SysConfig, map[string]interface{}{
|
|
|
|
|
"value": v, "updated_at": now,
|
|
|
|
|
}, []*model2.ModelWhere{model2.NewWhere("key", k)}, tx); err != nil {
|
|
|
|
|
return err
|
|
|
|
|
}
|
|
|
|
|
config.SystemConfig[k] = v
|
|
|
|
|
}
|
|
|
|
|
return nil
|
|
|
|
|
})
|
2021-11-04 15:15:11 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func NewInstance() InstanceHandle {
|
2021-11-08 11:09:27 +08:00
|
|
|
|
return func() *Instance {
|
|
|
|
|
return &Instance{}
|
2021-11-04 15:15:11 +08:00
|
|
|
|
}
|
|
|
|
|
}
|