mirror of
https://github.com/acepanel/panel.git
synced 2026-02-04 12:40:25 +08:00
feat: 数据库管理优化1
This commit is contained in:
@@ -56,6 +56,7 @@ type DatabaseServerRepo interface {
|
||||
Get(id uint) (*DatabaseServer, error)
|
||||
Create(req *request.DatabaseServerCreate) error
|
||||
Update(req *request.DatabaseServerUpdate) error
|
||||
UpdateRemark(req *request.DatabaseServerUpdateRemark) error
|
||||
Delete(id uint) error
|
||||
Sync(id uint) error
|
||||
}
|
||||
|
||||
@@ -57,6 +57,7 @@ type DatabaseUserRepo interface {
|
||||
Get(id uint) (*DatabaseUser, error)
|
||||
Create(req *request.DatabaseUserCreate) error
|
||||
Update(req *request.DatabaseUserUpdate) error
|
||||
UpdateRemark(req *request.DatabaseUserUpdateRemark) error
|
||||
Delete(id uint) error
|
||||
DeleteByServerID(serverID uint) error
|
||||
}
|
||||
|
||||
@@ -89,6 +89,10 @@ func (r databaseServerRepo) Update(req *request.DatabaseServerUpdate) error {
|
||||
return app.Orm.Save(server).Error
|
||||
}
|
||||
|
||||
func (r databaseServerRepo) UpdateRemark(req *request.DatabaseServerUpdateRemark) error {
|
||||
return app.Orm.Model(&biz.DatabaseServer{}).Where("id = ?", req.ID).Update("remark", req.Remark).Error
|
||||
}
|
||||
|
||||
func (r databaseServerRepo) Delete(id uint) error {
|
||||
// 删除服务器下的所有用户
|
||||
if err := NewDatabaseUserRepo().DeleteByServerID(id); err != nil {
|
||||
|
||||
@@ -88,12 +88,17 @@ func (r databaseUserRepo) Create(req *request.DatabaseUserCreate) error {
|
||||
user := &biz.DatabaseUser{
|
||||
ServerID: req.ServerID,
|
||||
Username: req.Username,
|
||||
Password: req.Password,
|
||||
Host: req.Host,
|
||||
Remark: req.Remark,
|
||||
}
|
||||
|
||||
return app.Orm.Create(user).Error
|
||||
if err = app.Orm.FirstOrInit(user, user).Error; err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
user.Password = req.Password
|
||||
user.Remark = req.Remark
|
||||
|
||||
return app.Orm.Save(user).Error
|
||||
}
|
||||
|
||||
func (r databaseUserRepo) Update(req *request.DatabaseUserUpdate) error {
|
||||
@@ -146,6 +151,17 @@ func (r databaseUserRepo) Update(req *request.DatabaseUserUpdate) error {
|
||||
return app.Orm.Save(user).Error
|
||||
}
|
||||
|
||||
func (r databaseUserRepo) UpdateRemark(req *request.DatabaseUserUpdateRemark) error {
|
||||
user, err := r.Get(req.ID)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
user.Remark = req.Remark
|
||||
|
||||
return app.Orm.Save(user).Error
|
||||
}
|
||||
|
||||
func (r databaseUserRepo) Delete(id uint) error {
|
||||
user, err := r.Get(id)
|
||||
if err != nil {
|
||||
|
||||
@@ -19,3 +19,8 @@ type DatabaseServerUpdate struct {
|
||||
Password string `form:"password" json:"password"`
|
||||
Remark string `form:"remark" json:"remark"`
|
||||
}
|
||||
|
||||
type DatabaseServerUpdateRemark struct {
|
||||
ID uint `form:"id" json:"id" validate:"required,exists=database_servers id"`
|
||||
Remark string `form:"remark" json:"remark"`
|
||||
}
|
||||
|
||||
@@ -15,3 +15,8 @@ type DatabaseUserUpdate struct {
|
||||
Privileges []string `form:"privileges" json:"privileges"`
|
||||
Remark string `form:"remark" json:"remark"`
|
||||
}
|
||||
|
||||
type DatabaseUserUpdateRemark struct {
|
||||
ID uint `form:"id" json:"id" validate:"required,exists=database_users id"`
|
||||
Remark string `form:"remark" json:"remark"`
|
||||
}
|
||||
|
||||
@@ -74,6 +74,7 @@ func Http(r chi.Router) {
|
||||
r.Get("/", server.List)
|
||||
r.Post("/", server.Create)
|
||||
r.Put("/{id}", server.Update)
|
||||
r.Put("/{id}/remark", server.UpdateRemark)
|
||||
r.Delete("/{id}", server.Delete)
|
||||
r.Post("/{id}/sync", server.Sync)
|
||||
})
|
||||
@@ -83,6 +84,7 @@ func Http(r chi.Router) {
|
||||
r.Get("/", user.List)
|
||||
r.Post("/", user.Create)
|
||||
r.Put("/{id}", user.Update)
|
||||
r.Put("/{id}/remark", user.UpdateRemark)
|
||||
r.Delete("/{id}", user.Delete)
|
||||
})
|
||||
|
||||
|
||||
@@ -69,6 +69,21 @@ func (s *DatabaseServer) Update(w http.ResponseWriter, r *http.Request) {
|
||||
Success(w, nil)
|
||||
}
|
||||
|
||||
func (s *DatabaseServer) UpdateRemark(w http.ResponseWriter, r *http.Request) {
|
||||
req, err := Bind[request.DatabaseServerUpdateRemark](r)
|
||||
if err != nil {
|
||||
Error(w, http.StatusUnprocessableEntity, "%v", err)
|
||||
return
|
||||
}
|
||||
|
||||
if err = s.databaseServerRepo.UpdateRemark(req); err != nil {
|
||||
Error(w, http.StatusInternalServerError, "%v", err)
|
||||
return
|
||||
}
|
||||
|
||||
Success(w, nil)
|
||||
}
|
||||
|
||||
func (s *DatabaseServer) Delete(w http.ResponseWriter, r *http.Request) {
|
||||
req, err := Bind[request.ID](r)
|
||||
if err != nil {
|
||||
|
||||
@@ -69,6 +69,21 @@ func (s *DatabaseUser) Update(w http.ResponseWriter, r *http.Request) {
|
||||
Success(w, nil)
|
||||
}
|
||||
|
||||
func (s *DatabaseUser) UpdateRemark(w http.ResponseWriter, r *http.Request) {
|
||||
req, err := Bind[request.DatabaseUserUpdateRemark](r)
|
||||
if err != nil {
|
||||
Error(w, http.StatusUnprocessableEntity, "%v", err)
|
||||
return
|
||||
}
|
||||
|
||||
if err = s.databaseUserRepo.UpdateRemark(req); err != nil {
|
||||
Error(w, http.StatusInternalServerError, "%v", err)
|
||||
return
|
||||
}
|
||||
|
||||
Success(w, nil)
|
||||
}
|
||||
|
||||
func (s *DatabaseUser) Delete(w http.ResponseWriter, r *http.Request) {
|
||||
req, err := Bind[request.ID](r)
|
||||
if err != nil {
|
||||
|
||||
Reference in New Issue
Block a user