package config import ( model2 "ArmedPolice/app/common/model" "ArmedPolice/app/controller/basic" "ArmedPolice/app/model" "ArmedPolice/config" "ArmedPolice/serve/orm" "errors" "time" "gorm.io/gorm" ) 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 if err := model2.Pages(mSysConfig.SysConfig, &out, page, pageSize, &count, where...); err != nil { return nil, err } return &basic.PageDataResponse{Data: out, Count: count}, nil } func (c *Instance) Form(params map[string]interface{}) error { if len(params) <= 0 { return nil } 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 }) } func NewInstance() InstanceHandle { return func() *Instance { return &Instance{} } }