2023-11-07 21:05:21 +08:00
|
|
|
|
package api
|
|
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
|
"mayfly-go/internal/db/api/form"
|
|
|
|
|
|
"mayfly-go/internal/db/application"
|
|
|
|
|
|
"mayfly-go/internal/db/domain/entity"
|
|
|
|
|
|
"mayfly-go/pkg/biz"
|
2024-04-28 23:45:57 +08:00
|
|
|
|
"mayfly-go/pkg/model"
|
2023-11-07 21:05:21 +08:00
|
|
|
|
"mayfly-go/pkg/req"
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
type DbSql struct {
|
2024-12-16 23:29:18 +08:00
|
|
|
|
dbSqlApp application.DbSql `inject:"T"`
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
func (d *DbSql) ReqConfs() *req.Confs {
|
|
|
|
|
|
reqs := [...]*req.Conf{
|
|
|
|
|
|
// 用户sql相关
|
|
|
|
|
|
req.NewPost(":dbId/sql", d.SaveSql),
|
|
|
|
|
|
|
|
|
|
|
|
req.NewGet(":dbId/sql", d.GetSql),
|
|
|
|
|
|
|
|
|
|
|
|
req.NewDelete(":dbId/sql", d.DeleteSql),
|
|
|
|
|
|
|
|
|
|
|
|
req.NewGet(":dbId/sql-names", d.GetSqlNames),
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return req.NewConfs("/dbs", reqs[:]...)
|
2023-11-07 21:05:21 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// @router /api/db/:dbId/sql [post]
|
|
|
|
|
|
func (d *DbSql) SaveSql(rc *req.Ctx) {
|
|
|
|
|
|
dbSqlForm := &form.DbSqlSaveForm{}
|
2024-02-24 16:30:29 +08:00
|
|
|
|
req.BindJsonAndValid(rc, dbSqlForm)
|
2023-11-07 21:05:21 +08:00
|
|
|
|
rc.ReqParam = dbSqlForm
|
|
|
|
|
|
|
2024-02-24 16:30:29 +08:00
|
|
|
|
dbId := getDbId(rc)
|
2023-11-07 21:05:21 +08:00
|
|
|
|
|
|
|
|
|
|
account := rc.GetLoginAccount()
|
|
|
|
|
|
// 获取用于是否有该dbsql的保存记录,有则更改,否则新增
|
|
|
|
|
|
dbSql := &entity.DbSql{Type: dbSqlForm.Type, DbId: dbId, Name: dbSqlForm.Name, Db: dbSqlForm.Db}
|
|
|
|
|
|
dbSql.CreatorId = account.Id
|
2024-12-16 23:29:18 +08:00
|
|
|
|
e := d.dbSqlApp.GetByCond(dbSql)
|
2023-11-07 21:05:21 +08:00
|
|
|
|
|
|
|
|
|
|
// 更新sql信息
|
|
|
|
|
|
dbSql.Sql = dbSqlForm.Sql
|
|
|
|
|
|
if e == nil {
|
2024-12-16 23:29:18 +08:00
|
|
|
|
d.dbSqlApp.UpdateById(rc.MetaCtx, dbSql)
|
2023-11-07 21:05:21 +08:00
|
|
|
|
} else {
|
2024-12-16 23:29:18 +08:00
|
|
|
|
d.dbSqlApp.Insert(rc.MetaCtx, dbSql)
|
2023-11-07 21:05:21 +08:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// 获取所有保存的sql names
|
|
|
|
|
|
func (d *DbSql) GetSqlNames(rc *req.Ctx) {
|
2024-02-24 16:30:29 +08:00
|
|
|
|
dbId := getDbId(rc)
|
|
|
|
|
|
dbName := getDbName(rc)
|
2023-11-07 21:05:21 +08:00
|
|
|
|
// 获取用于是否有该dbsql的保存记录,有则更改,否则新增
|
|
|
|
|
|
dbSql := &entity.DbSql{Type: 1, DbId: dbId, Db: dbName}
|
|
|
|
|
|
dbSql.CreatorId = rc.GetLoginAccount().Id
|
2024-12-16 23:29:18 +08:00
|
|
|
|
sqls, _ := d.dbSqlApp.ListByCond(model.NewModelCond(dbSql).Columns("id", "name"))
|
2023-11-07 21:05:21 +08:00
|
|
|
|
|
|
|
|
|
|
rc.ResData = sqls
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// 删除保存的sql
|
|
|
|
|
|
func (d *DbSql) DeleteSql(rc *req.Ctx) {
|
2024-02-24 16:30:29 +08:00
|
|
|
|
dbSql := &entity.DbSql{Type: 1, DbId: getDbId(rc)}
|
2023-11-07 21:05:21 +08:00
|
|
|
|
dbSql.CreatorId = rc.GetLoginAccount().Id
|
2024-02-25 12:46:18 +08:00
|
|
|
|
dbSql.Name = rc.Query("name")
|
|
|
|
|
|
dbSql.Db = rc.Query("db")
|
2023-11-07 21:05:21 +08:00
|
|
|
|
|
2024-12-16 23:29:18 +08:00
|
|
|
|
biz.ErrIsNil(d.dbSqlApp.DeleteByCond(rc.MetaCtx, dbSql))
|
2023-11-07 21:05:21 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// @router /api/db/:dbId/sql [get]
|
|
|
|
|
|
func (d *DbSql) GetSql(rc *req.Ctx) {
|
2024-02-24 16:30:29 +08:00
|
|
|
|
dbId := getDbId(rc)
|
|
|
|
|
|
dbName := getDbName(rc)
|
2023-11-07 21:05:21 +08:00
|
|
|
|
// 根据创建者id, 数据库id,以及sql模板名称查询保存的sql信息
|
|
|
|
|
|
dbSql := &entity.DbSql{Type: 1, DbId: dbId, Db: dbName}
|
|
|
|
|
|
dbSql.CreatorId = rc.GetLoginAccount().Id
|
2024-02-25 12:46:18 +08:00
|
|
|
|
dbSql.Name = rc.Query("name")
|
2023-11-07 21:05:21 +08:00
|
|
|
|
|
2024-12-16 23:29:18 +08:00
|
|
|
|
e := d.dbSqlApp.GetByCond(dbSql)
|
2023-11-07 21:05:21 +08:00
|
|
|
|
if e != nil {
|
|
|
|
|
|
return
|
|
|
|
|
|
}
|
|
|
|
|
|
rc.ResData = dbSql
|
|
|
|
|
|
}
|