系统配置管理
()
| 28 | |
| 29 | //系统配置管理 |
| 30 | func (this *SysController) Get() { |
| 31 | tab := helper.ConfigCate(strings.ToLower(this.GetString("tab"))) |
| 32 | var err error |
| 33 | switch tab { |
| 34 | case models.ConfigCateEmail, models.ConfigCateDepend, models.ConfigCateElasticSearch, models.ConfigCateLog: |
| 35 | default: |
| 36 | tab = "default" |
| 37 | } |
| 38 | if this.Ctx.Request.Method == http.MethodPost { |
| 39 | defer func() { |
| 40 | models.NewSys().UpdateGlobalConfig() |
| 41 | models.NewConfig().UpdateGlobalConfig() |
| 42 | }() |
| 43 | if tab == "default" { |
| 44 | var sys models.Sys |
| 45 | this.ParseForm(&sys) |
| 46 | _, err := orm.NewOrm().Update(&sys) |
| 47 | if err != nil { |
| 48 | helper.Logger.Error(err.Error()) |
| 49 | this.ResponseJson(false, err.Error()) |
| 50 | } |
| 51 | this.ResponseJson(true, "更新成功") |
| 52 | } |
| 53 | |
| 54 | var cfg interface{} |
| 55 | cfg, err = models.NewConfig().ParseForm(tab, this.Ctx.Request.Form) |
| 56 | if cfg != nil { |
| 57 | switch tab { |
| 58 | case models.ConfigCateEmail: |
| 59 | if err != nil { |
| 60 | this.ResponseJson(false, err.Error()) |
| 61 | } |
| 62 | modelEmail := cfg.(*models.ConfigEmail) |
| 63 | err = modelEmail.SendMail(modelEmail.TestUserEmail, "测试邮件", "这是一封测试邮件,用于检测是否能正常发送邮件") |
| 64 | case models.ConfigCateElasticSearch: |
| 65 | modelES := cfg.(*models.ElasticSearchClient) |
| 66 | if modelES.On { |
| 67 | modelES.Host = strings.TrimRight(modelES.Host, "/") + "/" |
| 68 | modelES.Type = "fulltext" |
| 69 | modelES.Timeout = 5 * time.Second |
| 70 | err = modelES.Init() |
| 71 | } |
| 72 | } |
| 73 | } |
| 74 | if err != nil { |
| 75 | this.ResponseJson(false, err.Error(), cfg) |
| 76 | } |
| 77 | |
| 78 | o := orm.NewOrm() |
| 79 | o.Begin() |
| 80 | defer func() { |
| 81 | if err != nil { |
| 82 | o.Rollback() |
| 83 | } else { |
| 84 | o.Commit() |
| 85 | } |
| 86 | }() |
| 87 |
nothing calls this directly
no test coverage detected