feat(base): 重置数据库序列并优化查询语句
- 在 base 模块初始化时添加重置所有序列的函数
- 修改多个模块中的查询语句,使用 Where(key, value) 替代 Where("key = ?", value)
- 优化部分代码结构,提高可读性和维护性
This commit is contained in:
@@ -2,6 +2,7 @@ package base
|
||||
|
||||
import (
|
||||
_ "blazing/modules/base/packed"
|
||||
"context"
|
||||
|
||||
"blazing/cool"
|
||||
|
||||
@@ -30,7 +31,38 @@ func init() {
|
||||
cool.FillInitData(ctx, "base", &model.BaseSysRoleDepartment{})
|
||||
cool.FillInitData(ctx, "base", &model.BaseSysParam{})
|
||||
cool.FillInitData(ctx, "base", &model.BaseSysConf{})
|
||||
g.DB("default").Exec(context.Background(), `CREATE OR REPLACE FUNCTION reset_all_sequences()
|
||||
RETURNS void AS $$
|
||||
DECLARE
|
||||
seq_record record;
|
||||
BEGIN
|
||||
FOR seq_record IN
|
||||
SELECT
|
||||
'SELECT SETVAL(' ||
|
||||
quote_literal(quote_ident(PGT.schemaname) || '.' || quote_ident(S.relname)) ||
|
||||
', COALESCE(MAX(' ||quote_ident(C.attname)|| '), 1) ) FROM ' ||
|
||||
quote_ident(PGT.schemaname)|| '.'||quote_ident(T.relname)|| ';' AS sql
|
||||
FROM
|
||||
pg_class AS S,
|
||||
pg_depend AS D,
|
||||
pg_class AS T,
|
||||
pg_attribute AS C,
|
||||
pg_tables AS PGT
|
||||
WHERE
|
||||
S.relkind = 'S'
|
||||
AND S.oid = D.objid
|
||||
AND D.refobjid = T.oid
|
||||
AND D.refobjid = C.attrelid
|
||||
AND D.refobjsubid = C.attnum
|
||||
AND T.relname = PGT.tablename
|
||||
LOOP
|
||||
EXECUTE seq_record.sql;
|
||||
END LOOP;
|
||||
END;
|
||||
$$ LANGUAGE plpgsql;
|
||||
|
||||
-- 执行函数
|
||||
SELECT reset_all_sequences();`, nil) //重置所有序列
|
||||
g.Log().Debug(ctx, "module base init finished ...")
|
||||
|
||||
}
|
||||
|
||||
@@ -15,8 +15,8 @@ type BaseSysMenu struct {
|
||||
Icon *string `gorm:"column:icon;type:varchar(255)" json:"icon"` // 图标
|
||||
OrderNum int32 `gorm:"column:orderNum;type:int;not null;default:0" json:"orderNum"` // 排序
|
||||
ViewPath *string `gorm:"column:viewPath;type:varchar(255)" json:"viewPath"` // 视图地址
|
||||
KeepAlive *int32 `gorm:"column:keepAlive;not null;default:1" json:"keepAlive"` // 路由缓存
|
||||
IsShow *int32 `gorm:"column:isShow;not null;default:1" json:"isShow"` // 是否显示
|
||||
KeepAlive bool `gorm:"column:keepAlive;not null;default:1" json:"keepAlive"` // 路由缓存
|
||||
IsShow bool `gorm:"column:isShow;not null;default:1" json:"isShow"` // 是否显示
|
||||
}
|
||||
|
||||
// TableName BaseSysMenu's table name
|
||||
|
||||
@@ -25,7 +25,7 @@ func NewBaseSysConfService() *BaseSysConfService {
|
||||
|
||||
// UpdateValue 更新配置值
|
||||
func (s *BaseSysConfService) UpdateValue(cKey, cValue string) error {
|
||||
m := cool.DBM(s.Model).Where("cKey = ?", cKey)
|
||||
m := cool.DBM(s.Model).Where("cKey", cKey)
|
||||
record, err := m.One()
|
||||
if err != nil {
|
||||
return err
|
||||
@@ -36,7 +36,7 @@ func (s *BaseSysConfService) UpdateValue(cKey, cValue string) error {
|
||||
"cValue": cValue,
|
||||
})
|
||||
} else {
|
||||
_, err = cool.DBM(s.Model).Where("cKey = ?", cKey).Data(g.Map{"cValue": cValue}).Update()
|
||||
_, err = cool.DBM(s.Model).Where("cKey", cKey).Data(g.Map{"cValue": cValue}).Update()
|
||||
}
|
||||
return err
|
||||
}
|
||||
|
||||
@@ -63,7 +63,7 @@ func (s *BaseSysDepartmentService) Order(ctx g.Ctx) (err error) {
|
||||
if err != nil {
|
||||
continue
|
||||
}
|
||||
cool.DBM(s.Model).Where("id = ?", data.Id).Data(data).Update()
|
||||
cool.DBM(s.Model).Where("id", data.Id).Data(data).Update()
|
||||
}
|
||||
|
||||
return
|
||||
|
||||
@@ -20,13 +20,13 @@ func NewBaseSysLogService() *BaseSysLogService {
|
||||
Model: model.NewBaseSysLog(),
|
||||
PageQueryOp: &cool.QueryOp{
|
||||
KeyWordField: []string{"name", "params", "ipAddr"},
|
||||
Select: "base_sys_log.*,user.name ",
|
||||
Select: `base_sys_log.*,"user".name `,
|
||||
Join: []*cool.JoinOp{
|
||||
{
|
||||
Model: model.NewBaseSysUser(),
|
||||
Alias: "user",
|
||||
Alias: `"user"`,
|
||||
Type: "LeftJoin",
|
||||
Condition: "user.id = base_sys_log.userID",
|
||||
Condition: `"user".id = base_sys_log."userId"`,
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
@@ -31,7 +31,7 @@ func (s *BaseSysParamService) HtmlByKey(key string) string {
|
||||
html = "<html><body>@content</body></html>"
|
||||
)
|
||||
m := cool.DBM(s.Model)
|
||||
record, err := m.Where("keyName = ?", key).One()
|
||||
record, err := m.Where("keyName", key).One()
|
||||
if err != nil {
|
||||
html = gstr.Replace(html, "@content", err.Error())
|
||||
return html
|
||||
@@ -79,7 +79,7 @@ func (s *BaseSysParamService) DataByKey(ctx context.Context, key string) (data s
|
||||
data = dataCache.String()
|
||||
return
|
||||
}
|
||||
record, err := m.Where("keyName = ?", key).One()
|
||||
record, err := m.Where("keyName", key).One()
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
@@ -30,7 +30,7 @@ func (s *BaseSysRoleService) ModifyAfter(ctx context.Context, method string, par
|
||||
// updatePerms(roleId, menuIdList?, departmentIds = [])
|
||||
func (s *BaseSysRoleService) updatePerms(ctx context.Context, roleId uint, menuIdList, departmentIds []uint) (err error) {
|
||||
// 更新菜单权限
|
||||
cool.DBM(model.NewBaseSysRoleMenu()).Where("roleId = ?", roleId).Delete()
|
||||
cool.DBM(model.NewBaseSysRoleMenu()).Where("roleId", roleId).Delete()
|
||||
if len(menuIdList) > 0 {
|
||||
roleMenuList := make([]g.MapStrAny, len(menuIdList))
|
||||
for i, menuId := range menuIdList {
|
||||
@@ -42,7 +42,7 @@ func (s *BaseSysRoleService) updatePerms(ctx context.Context, roleId uint, menuI
|
||||
cool.DBM(model.NewBaseSysRoleMenu()).Data(roleMenuList).Insert()
|
||||
}
|
||||
// 更新部门权限
|
||||
cool.DBM(model.NewBaseSysRoleDepartment()).Where("roleId = ?", roleId).Delete()
|
||||
cool.DBM(model.NewBaseSysRoleDepartment()).Where("roleId", roleId).Delete()
|
||||
if len(departmentIds) > 0 {
|
||||
roleDepartmentList := make([]g.MapStrAny, len(departmentIds))
|
||||
for i, departmentId := range departmentIds {
|
||||
@@ -54,7 +54,7 @@ func (s *BaseSysRoleService) updatePerms(ctx context.Context, roleId uint, menuI
|
||||
cool.DBM(model.NewBaseSysRoleDepartment()).Data(roleDepartmentList).Insert()
|
||||
}
|
||||
// 刷新权限
|
||||
userRoles, err := cool.DBM(model.NewBaseSysUserRole()).Where("roleId = ?", roleId).All()
|
||||
userRoles, err := cool.DBM(model.NewBaseSysUserRole()).Where("roleId", roleId).All()
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
@@ -84,7 +84,7 @@ func (s *BaseSysRoleService) GetByUser(userId uint) []string {
|
||||
|
||||
// BaseSysRoleService Info 方法重构
|
||||
func (s *BaseSysRoleService) ServiceInfo(ctx context.Context, req *cool.InfoReq) (data interface{}, err error) {
|
||||
info, err := cool.DBM(s.Model).Where("id = ?", req.Id).One()
|
||||
info, err := cool.DBM(s.Model).Where("id", req.Id).One()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -96,7 +96,7 @@ func (s *BaseSysRoleService) ServiceInfo(ctx context.Context, req *cool.InfoReq)
|
||||
return nil, err
|
||||
}
|
||||
} else {
|
||||
menus, err = cool.DBM(model.NewBaseSysRoleMenu()).Where("roleId = ?", req.Id).All()
|
||||
menus, err = cool.DBM(model.NewBaseSysRoleMenu()).Where("roleId", req.Id).All()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -112,7 +112,7 @@ func (s *BaseSysRoleService) ServiceInfo(ctx context.Context, req *cool.InfoReq)
|
||||
return nil, err
|
||||
}
|
||||
} else {
|
||||
departments, err = cool.DBM(model.NewBaseSysRoleDepartment()).Where("roleId = ?", req.Id).All()
|
||||
departments, err = cool.DBM(model.NewBaseSysRoleDepartment()).Where("roleId", req.Id).All()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
@@ -24,13 +24,13 @@ type BaseSysUserService struct {
|
||||
// Person 方法 返回不带密码的用户信息
|
||||
func (s *BaseSysUserService) Person(userId uint) (res gdb.Record, err error) {
|
||||
m := cool.DBM(s.Model)
|
||||
res, err = m.Where("id = ?", userId).FieldsEx("password").One()
|
||||
res, err = m.Where("id", userId).FieldsEx("password").One()
|
||||
return
|
||||
}
|
||||
func (s *BaseSysUserService) GetSession(email string, password string) (res *model.BaseSysUser, err error) {
|
||||
m := cool.DBM(s.Model)
|
||||
|
||||
m.Where("email = ?", email).Where("password=?", password).Where("status=?", 1).Scan(&res)
|
||||
m.Where("email", email).Where("password=?", password).Where("status=?", 1).Scan(&res)
|
||||
if res == nil {
|
||||
err = gerror.New("账户或密码不正确~")
|
||||
return
|
||||
@@ -99,7 +99,7 @@ func (s *BaseSysUserService) ServiceInfo(ctx g.Ctx, req *cool.InfoReq) (data int
|
||||
resultMap := result.(gdb.Record).Map()
|
||||
|
||||
// 获取角色
|
||||
roleIds, err := cool.DBM(model.NewBaseSysUserRole()).Where("userId = ?", resultMap["id"]).Fields("roleId").Array()
|
||||
roleIds, err := cool.DBM(model.NewBaseSysUserRole()).Where("userId", resultMap["id"]).Fields("roleId").Array()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -121,7 +121,7 @@ func (s *BaseSysUserService) ServiceUpdate(ctx context.Context, req *cool.Update
|
||||
|
||||
// 如果不传入ID代表更新当前用户
|
||||
userId := r.Get("id", admin.UserId).Uint()
|
||||
userInfo, err := m.Where("id = ?", userId).One()
|
||||
userInfo, err := m.Where("id", userId).One()
|
||||
|
||||
if err != nil {
|
||||
return
|
||||
@@ -148,7 +148,7 @@ func (s *BaseSysUserService) ServiceUpdate(ctx context.Context, req *cool.Update
|
||||
}
|
||||
|
||||
err = g.DB().Transaction(ctx, func(ctx context.Context, tx gdb.TX) (err error) {
|
||||
roleModel := cool.DBM(model.NewBaseSysUserRole()).TX(tx).Where("userId = ?", userId)
|
||||
roleModel := cool.DBM(model.NewBaseSysUserRole()).TX(tx).Where("userId", userId)
|
||||
roleIds, err := roleModel.Fields("roleId").Array()
|
||||
if err != nil {
|
||||
return
|
||||
|
||||
@@ -15,7 +15,7 @@ type TaskAddTask struct {
|
||||
|
||||
func (t *TaskAddTask) Func(ctx g.Ctx, id string) error {
|
||||
taskInfo := model.NewTaskInfo()
|
||||
result, err := cool.DBM(taskInfo).Where("id = ?", id).One()
|
||||
result, err := cool.DBM(taskInfo).Where("id", id).One()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
@@ -14,7 +14,7 @@ type TaskStopFunc struct {
|
||||
|
||||
func (t *TaskStopFunc) Func(ctx g.Ctx, id string) error {
|
||||
taskInfo := model.NewTaskInfo()
|
||||
_, err := cool.DBM(taskInfo).Where("id = ?", id).Update(g.Map{"status": 0})
|
||||
_, err := cool.DBM(taskInfo).Where("id", id).Update(g.Map{"status": 0})
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
@@ -15,11 +15,11 @@ type TaskStartFunc struct {
|
||||
|
||||
func (t *TaskStartFunc) Func(ctx g.Ctx, id string) error {
|
||||
taskInfo := model.NewTaskInfo()
|
||||
_, err := cool.DBM(taskInfo).Where("id = ?", id).Update(g.Map{"status": 1})
|
||||
_, err := cool.DBM(taskInfo).Where("id", id).Update(g.Map{"status": 1})
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
result, err := cool.DBM(taskInfo).Where("id = ?", id).One()
|
||||
result, err := cool.DBM(taskInfo).Where("id", id).One()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
@@ -35,7 +35,7 @@ func (s *TaskInfoService) ModifyAfter(ctx g.Ctx, method string, param g.MapStrAn
|
||||
g.Log().Info(ctx, "TaskInfoService.ModifyAfter", method, param)
|
||||
if method == "Add" {
|
||||
if gconv.Int(param["status"]) == 1 {
|
||||
id, err := cool.DBM(s.Model).Where("name = ?", param["name"]).Value("id")
|
||||
id, err := cool.DBM(s.Model).Where("name", param["name"]).Value("id")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -69,7 +69,7 @@ func (s *TaskInfoService) Record(ctx g.Ctx, id string, status int, detail string
|
||||
return err
|
||||
}
|
||||
if status == 1 {
|
||||
record, err := cool.DBM(taskLog).Where("taskId = ?", id).Where("status", 1).Order("id", "desc").Offset(19).One()
|
||||
record, err := cool.DBM(taskLog).Where("taskId", id).Where("status", 1).Order("id", "desc").Offset(19).One()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -80,7 +80,7 @@ func (s *TaskInfoService) Record(ctx g.Ctx, id string, status int, detail string
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
_, err = cool.DBM(taskLog).Where("taskId = ?", id).Where("status", 1).Where("id < ?", minId).Delete()
|
||||
_, err = cool.DBM(taskLog).Where("taskId", id).Where("status", 1).Where("id < ?", minId).Delete()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -90,7 +90,7 @@ func (s *TaskInfoService) Record(ctx g.Ctx, id string, status int, detail string
|
||||
|
||||
// Once 执行一次任务
|
||||
func (s *TaskInfoService) Once(ctx g.Ctx, id int64) error {
|
||||
record, err := cool.DBM(s.Model).Where("id = ?", id).One()
|
||||
record, err := cool.DBM(s.Model).Where("id", id).One()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -112,10 +112,10 @@ func (s *TaskInfoService) Log(ctx g.Ctx, param g.MapStrStr) (data interface{}, e
|
||||
m := cool.DBM(taskLog).LeftJoin("task_info", "task_info.id = task_log.taskId")
|
||||
|
||||
if id, ok := param["id"]; ok {
|
||||
m = m.Where("taskId = ?", id)
|
||||
m = m.Where("taskId", id)
|
||||
}
|
||||
if status, ok := param["status"]; ok {
|
||||
m = m.Where("status = ?", status)
|
||||
m = m.Where("status", status)
|
||||
}
|
||||
Total, err = m.Clone().Count()
|
||||
m = m.Fields("task_log.*,task_info.name as taskName")
|
||||
@@ -164,7 +164,7 @@ func (s *TaskInfoService) SetNextRunTime(ctx g.Ctx, cronId string, cron string)
|
||||
nextTime, e := getCronNextTime(cron, time.Now())
|
||||
|
||||
if e == nil {
|
||||
_, err := cool.DBM(s.Model).Where("id = ?", cronId).Data("nextRunTime", nextTime).Update()
|
||||
_, err := cool.DBM(s.Model).Where("id", cronId).Data("nextRunTime", nextTime).Update()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
@@ -22,7 +22,7 @@ func init() {
|
||||
g.Log().Debug(ctx, "module task init start ...")
|
||||
cool.FillInitData(ctx, "task", taskInfo)
|
||||
|
||||
result, err := cool.DBM(taskInfo).Where("status = ?", 1).All()
|
||||
result, err := cool.DBM(taskInfo).Where("status", 1).All()
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user