diff --git a/internal/web/actions/default/settings/database/clean.go b/internal/web/actions/default/settings/database/clean.go
new file mode 100644
index 00000000..3bec1f33
--- /dev/null
+++ b/internal/web/actions/default/settings/database/clean.go
@@ -0,0 +1,15 @@
+package profile
+
+import "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils"
+
+type CleanAction struct {
+ actionutils.ParentAction
+}
+
+func (this *CleanAction) Init() {
+ this.Nav("", "", "clean")
+}
+
+func (this *CleanAction) RunGet(params struct{}) {
+ this.Show()
+}
diff --git a/internal/web/actions/default/settings/database/cleanSetting.go b/internal/web/actions/default/settings/database/cleanSetting.go
new file mode 100644
index 00000000..df6d752e
--- /dev/null
+++ b/internal/web/actions/default/settings/database/cleanSetting.go
@@ -0,0 +1,82 @@
+package profile
+
+import (
+ "encoding/json"
+ "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils"
+ "github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb"
+ "github.com/TeaOSLab/EdgeCommon/pkg/systemconfigs"
+ "github.com/iwind/TeaGo/actions"
+)
+
+type CleanSettingAction struct {
+ actionutils.ParentAction
+}
+
+func (this *CleanSettingAction) Init() {
+ this.Nav("", "", "cleanSetting")
+}
+
+func (this *CleanSettingAction) RunGet(params struct{}) {
+ // 读取设置
+ configResp, err := this.RPC().SysSettingRPC().ReadSysSetting(this.AdminContext(), &pb.ReadSysSettingRequest{Code: systemconfigs.SettingCodeDatabaseConfigSetting})
+ if err != nil {
+ this.ErrorPage(err)
+ return
+ }
+ var config = &systemconfigs.DatabaseConfig{}
+ if len(configResp.ValueJSON) > 0 {
+ err = json.Unmarshal(configResp.ValueJSON, config)
+ if err != nil {
+ this.ErrorPage(err)
+ return
+ }
+ }
+ this.Data["config"] = config.ServerAccessLog.Clean
+
+ this.Show()
+}
+
+func (this *CleanSettingAction) RunPost(params struct {
+ Days int
+
+ Must *actions.Must
+ CSRF *actionutils.CSRF
+}) {
+ defer this.CreateLogInfo("修改数据库自动清理设置")
+
+ days := params.Days
+ if days < 0 {
+ days = 0
+ }
+
+ // 读取设置
+ configResp, err := this.RPC().SysSettingRPC().ReadSysSetting(this.AdminContext(), &pb.ReadSysSettingRequest{Code: systemconfigs.SettingCodeDatabaseConfigSetting})
+ if err != nil {
+ this.ErrorPage(err)
+ return
+ }
+ var config = &systemconfigs.DatabaseConfig{}
+ if len(configResp.ValueJSON) > 0 {
+ err = json.Unmarshal(configResp.ValueJSON, config)
+ if err != nil {
+ this.ErrorPage(err)
+ return
+ }
+ }
+ config.ServerAccessLog.Clean.Days = days
+ configJSON, err := json.Marshal(config)
+ if err != nil {
+ this.ErrorPage(err)
+ return
+ }
+ _, err = this.RPC().SysSettingRPC().UpdateSysSetting(this.AdminContext(), &pb.UpdateSysSettingRequest{
+ Code: systemconfigs.SettingCodeDatabaseConfigSetting,
+ ValueJSON: configJSON,
+ })
+ if err != nil {
+ this.ErrorPage(err)
+ return
+ }
+
+ this.Success()
+}
diff --git a/internal/web/actions/default/settings/database/init.go b/internal/web/actions/default/settings/database/init.go
index 7e2cb69b..e497799a 100644
--- a/internal/web/actions/default/settings/database/init.go
+++ b/internal/web/actions/default/settings/database/init.go
@@ -15,6 +15,8 @@ func init() {
Prefix("/settings/database").
Get("", new(IndexAction)).
GetPost("/update", new(UpdateAction)).
+ GetPost("/clean", new(CleanAction)).
+ GetPost("/cleanSetting", new(CleanSettingAction)).
EndAll()
})
}
diff --git a/web/views/@default/settings/database/@menu.html b/web/views/@default/settings/database/@menu.html
index d8903c8d..8057ba83 100644
--- a/web/views/@default/settings/database/@menu.html
+++ b/web/views/@default/settings/database/@menu.html
@@ -1,6 +1,8 @@