任务列表的权限管理(分类显示,只看本用户的,admin是全体)

This commit is contained in:
zhangwei 2025-03-07 11:15:44 +08:00
parent 38504b6926
commit 609576c7bb
4 changed files with 11 additions and 6 deletions

View File

@ -409,6 +409,7 @@ type (
UserId int64 `form:"userId,optional"`
Name string `form:"name,optional"`
Type string `form:"type,optional"`
UserName string `form:"userName,optional"`
PageInfo
}

View File

@ -23,6 +23,7 @@ func PageListTaskHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
user := &models.JccUserInfo{}
json.Unmarshal([]byte(userStr), user)
req.UserId = user.Id
req.UserName = user.UserName
l := core.NewPageListTaskLogic(r.Context(), svcCtx)
resp, err := l.PageListTask(&req)
result.HttpResult(r, w, resp, err)

View File

@ -39,7 +39,10 @@ func (l *PageListTaskLogic) PageListTask(req *types.PageTaskReq) (resp *types.Pa
// 构建数据库查询
db := l.svcCtx.DbEngin.Model(&types.TaskModel{}).Table("task")
db = db.Where("user_id = ?", req.UserId)
if req.UserName != "" && req.UserName != "admin" {
db = db.Where("user_id = ?", req.UserId)
}
db = db.Where("deleted_at is null")
if req.Name != "" {
db = db.Where("name LIKE ?", "%"+req.Name+"%")
@ -47,7 +50,6 @@ func (l *PageListTaskLogic) PageListTask(req *types.PageTaskReq) (resp *types.Pa
if req.Type != "" {
db = db.Where("adapter_type_dict = ?", req.Type)
}
// 计算总数
var total int64
if err := db.Count(&total).Error; err != nil {
@ -63,7 +65,7 @@ func (l *PageListTaskLogic) PageListTask(req *types.PageTaskReq) (resp *types.Pa
go status.UpdateTaskStatus(l.svcCtx, list)
go status.UpdateAiTaskStatus(l.svcCtx, list)
// 计算每个任务的运行时间
// 计算每个任务的运行时间x
for _, model := range list {
model.RunningTime = calculateRunningTime(model.StartTime, model.EndTime)
}

View File

@ -349,9 +349,10 @@ type Task struct {
}
type PageTaskReq struct {
UserId int64 `form:"userId,optional"`
Name string `form:"name,optional"`
Type string `form:"type,optional"`
UserId int64 `form:"userId,optional"`
Name string `form:"name,optional"`
Type string `form:"type,optional"`
UserName string `form:"userName,optional"`
PageInfo
}