mirror of
https://gitee.com/XM-GO/PandaX.git
synced 2026-04-23 02:48:34 +08:00
[优化] 任务异常抛出迁移到api层
This commit is contained in:
@@ -22,7 +22,8 @@ func (j *JobApi) CreateJob(rc *restfulx.ReqCtx) {
|
||||
job.Id = model2.GenerateID()
|
||||
job.Owner = rc.LoginAccount.UserName
|
||||
job.OrgId = rc.LoginAccount.OrganizationId
|
||||
j.JobApp.Insert(job)
|
||||
_, err := j.JobApp.Insert(job)
|
||||
biz.ErrIsNil(err, "添加任务失败")
|
||||
}
|
||||
|
||||
func (j *JobApi) GetJobList(rc *restfulx.ReqCtx) {
|
||||
@@ -35,7 +36,8 @@ func (j *JobApi) GetJobList(rc *restfulx.ReqCtx) {
|
||||
job.RoleId = rc.LoginAccount.RoleId
|
||||
job.Owner = rc.LoginAccount.UserName
|
||||
|
||||
list, total := j.JobApp.FindListPage(pageNum, pageSize, job)
|
||||
list, total, err := j.JobApp.FindListPage(pageNum, pageSize, job)
|
||||
biz.ErrIsNil(err, "查询任务列表失败")
|
||||
rc.ResData = model.ResultPage{
|
||||
Total: total,
|
||||
PageNum: int64(pageNum),
|
||||
@@ -46,35 +48,39 @@ func (j *JobApi) GetJobList(rc *restfulx.ReqCtx) {
|
||||
|
||||
func (j *JobApi) GetJob(rc *restfulx.ReqCtx) {
|
||||
jobId := restfulx.PathParam(rc, "jobId")
|
||||
rc.ResData = j.JobApp.FindOne(jobId)
|
||||
data, err := j.JobApp.FindOne(jobId)
|
||||
biz.ErrIsNil(err, "查询任务失败")
|
||||
rc.ResData = data
|
||||
}
|
||||
|
||||
func (l *JobApi) UpdateJob(rc *restfulx.ReqCtx) {
|
||||
var job entity.SysJob
|
||||
restfulx.BindQuery(rc, &job)
|
||||
l.JobApp.Update(job)
|
||||
_, err := l.JobApp.Update(job)
|
||||
biz.ErrIsNil(err, "修改任务失败")
|
||||
}
|
||||
|
||||
func (l *JobApi) DeleteJob(rc *restfulx.ReqCtx) {
|
||||
jobIds := restfulx.PathParam(rc, "jobId")
|
||||
group := strings.Split(jobIds, ",")
|
||||
l.JobApp.Delete(group)
|
||||
err := l.JobApp.Delete(group)
|
||||
biz.ErrIsNil(err, "删除任务失败")
|
||||
}
|
||||
|
||||
func (l *JobApi) StopJobForService(rc *restfulx.ReqCtx) {
|
||||
jobId := restfulx.PathParam(rc, "jobId")
|
||||
job := l.JobApp.FindOne(jobId)
|
||||
job, err := l.JobApp.FindOne(jobId)
|
||||
biz.ErrIsNil(err, "任务不存在")
|
||||
jobs.Remove(jobs.Crontab, job.EntryId)
|
||||
}
|
||||
|
||||
func (l *JobApi) StartJobForService(rc *restfulx.ReqCtx) {
|
||||
jobId := restfulx.PathParam(rc, "jobId")
|
||||
job := l.JobApp.FindOne(jobId)
|
||||
|
||||
job, err := l.JobApp.FindOne(jobId)
|
||||
biz.ErrIsNil(err, "任务不存在")
|
||||
biz.IsTrue(job.Status == "0", "以关闭的任务不能开启")
|
||||
biz.IsTrue(job.EntryId == 0, "任务不能重复启动")
|
||||
|
||||
var err error
|
||||
var j = &jobs.ExecJob{}
|
||||
j.InvokeTarget = job.TargetInvoke
|
||||
j.CronExpression = job.CronExpression
|
||||
@@ -87,7 +93,8 @@ func (l *JobApi) StartJobForService(rc *restfulx.ReqCtx) {
|
||||
job.EntryId, err = jobs.AddJob(jobs.Crontab, j)
|
||||
biz.ErrIsNil(err, "添加任务失败,可能任务表达式错误")
|
||||
|
||||
l.JobApp.Update(*job)
|
||||
_, err = l.JobApp.Update(*job)
|
||||
biz.ErrIsNil(err, "修改任务失败")
|
||||
}
|
||||
|
||||
func (l *JobApi) UpdateStatusJob(rc *restfulx.ReqCtx) {
|
||||
@@ -96,5 +103,6 @@ func (l *JobApi) UpdateStatusJob(rc *restfulx.ReqCtx) {
|
||||
sjob := entity.SysJob{}
|
||||
sjob.Id = job.JobId
|
||||
sjob.Status = job.Status
|
||||
l.JobApp.Update(sjob)
|
||||
_, err := l.JobApp.Update(sjob)
|
||||
biz.ErrIsNil(err, "修改任务状态失败")
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@ package api
|
||||
import (
|
||||
"pandax/apps/job/entity"
|
||||
"pandax/apps/job/services"
|
||||
"pandax/kit/biz"
|
||||
"pandax/kit/model"
|
||||
"pandax/kit/restfulx"
|
||||
"strings"
|
||||
@@ -23,7 +24,8 @@ func (l *JobLogApi) GetJobLogList(rc *restfulx.ReqCtx) {
|
||||
job.RoleId = rc.LoginAccount.RoleId
|
||||
job.Owner = rc.LoginAccount.UserName
|
||||
|
||||
list, total := l.JobLogApp.FindListPage(pageNum, pageSize, job)
|
||||
list, total, err := l.JobLogApp.FindListPage(pageNum, pageSize, job)
|
||||
biz.ErrIsNil(err, "查询任务列表失败")
|
||||
rc.ResData = model.ResultPage{
|
||||
Total: total,
|
||||
PageNum: int64(pageNum),
|
||||
@@ -36,10 +38,12 @@ func (l *JobLogApi) GetJobLogList(rc *restfulx.ReqCtx) {
|
||||
func (l *JobLogApi) DeleteJobLog(rc *restfulx.ReqCtx) {
|
||||
logIds := restfulx.PathParam(rc, "id")
|
||||
group := strings.Split(logIds, ",")
|
||||
l.JobLogApp.Delete(group)
|
||||
err := l.JobLogApp.Delete(group)
|
||||
biz.ErrIsNil(err, "删除失败")
|
||||
}
|
||||
|
||||
// DeleteAll 清空登录日志
|
||||
func (l *JobLogApi) DeleteAll(rc *restfulx.ReqCtx) {
|
||||
l.JobLogApp.DeleteAll()
|
||||
err := l.JobLogApp.DeleteAll()
|
||||
biz.ErrIsNil(err, "清空失败")
|
||||
}
|
||||
|
||||
@@ -2,20 +2,19 @@ package services
|
||||
|
||||
import (
|
||||
"pandax/apps/job/entity"
|
||||
"pandax/kit/biz"
|
||||
"pandax/pkg/global"
|
||||
"pandax/pkg/global/model"
|
||||
)
|
||||
|
||||
type (
|
||||
JobModel interface {
|
||||
Insert(data entity.SysJob) *entity.SysJob
|
||||
FindOne(jobId string) *entity.SysJob
|
||||
FindListPage(page, pageSize int, data entity.SysJob) (*[]entity.SysJob, int64)
|
||||
FindList(data entity.SysJob) *[]entity.SysJob
|
||||
Update(data entity.SysJob) *entity.SysJob
|
||||
Delete(jobId []string)
|
||||
FindByEntryId(entryId int64) *entity.SysJob
|
||||
Insert(data entity.SysJob) (*entity.SysJob, error)
|
||||
FindOne(jobId string) (*entity.SysJob, error)
|
||||
FindListPage(page, pageSize int, data entity.SysJob) (*[]entity.SysJob, int64, error)
|
||||
FindList(data entity.SysJob) (*[]entity.SysJob, error)
|
||||
Update(data entity.SysJob) (*entity.SysJob, error)
|
||||
Delete(jobId []string) error
|
||||
FindByEntryId(entryId int64) (*entity.SysJob, error)
|
||||
RemoveAllEntryID() error
|
||||
RemoveEntryID(EntryID int) error
|
||||
}
|
||||
@@ -29,19 +28,18 @@ var JobModelDao JobModel = &jobModelImpl{
|
||||
table: `jobs`,
|
||||
}
|
||||
|
||||
func (m *jobModelImpl) Insert(data entity.SysJob) *entity.SysJob {
|
||||
global.Db.Table(m.table).Create(&data)
|
||||
return &data
|
||||
func (m *jobModelImpl) Insert(data entity.SysJob) (*entity.SysJob, error) {
|
||||
err := global.Db.Table(m.table).Create(&data).Error
|
||||
return &data, err
|
||||
}
|
||||
|
||||
func (m *jobModelImpl) FindOne(jobId string) *entity.SysJob {
|
||||
func (m *jobModelImpl) FindOne(jobId string) (*entity.SysJob, error) {
|
||||
resData := new(entity.SysJob)
|
||||
err := global.Db.Table(m.table).Where("id = ?", jobId).First(resData).Error
|
||||
biz.ErrIsNil(err, "查询任务信息失败")
|
||||
return resData
|
||||
return resData, err
|
||||
}
|
||||
|
||||
func (m *jobModelImpl) FindListPage(page, pageSize int, data entity.SysJob) (*[]entity.SysJob, int64) {
|
||||
func (m *jobModelImpl) FindListPage(page, pageSize int, data entity.SysJob) (*[]entity.SysJob, int64, error) {
|
||||
list := make([]entity.SysJob, 0)
|
||||
var total int64 = 0
|
||||
offset := pageSize * (page - 1)
|
||||
@@ -58,13 +56,14 @@ func (m *jobModelImpl) FindListPage(page, pageSize int, data entity.SysJob) (*[]
|
||||
model.OrgAuthSet(db, data.RoleId, data.Owner)
|
||||
|
||||
err := db.Count(&total).Error
|
||||
if err != nil {
|
||||
return &list, total, err
|
||||
}
|
||||
err = db.Order("create_time desc").Limit(pageSize).Offset(offset).Find(&list).Error
|
||||
|
||||
biz.ErrIsNil(err, "查询任务分页信息失败")
|
||||
return &list, total
|
||||
return &list, total, err
|
||||
}
|
||||
|
||||
func (m *jobModelImpl) FindList(data entity.SysJob) *[]entity.SysJob {
|
||||
func (m *jobModelImpl) FindList(data entity.SysJob) (*[]entity.SysJob, error) {
|
||||
list := make([]entity.SysJob, 0)
|
||||
db := global.Db.Table(m.table)
|
||||
// 此处填写 where参数判断
|
||||
@@ -75,30 +74,28 @@ func (m *jobModelImpl) FindList(data entity.SysJob) *[]entity.SysJob {
|
||||
db = db.Where("status = ?", data.Status)
|
||||
}
|
||||
// 组织数据访问权限
|
||||
model.OrgAuthSet(db, data.RoleId, data.Owner)
|
||||
err := db.Order("create_time desc").Find(&list).Error
|
||||
err := model.OrgAuthSet(db, data.RoleId, data.Owner)
|
||||
if err != nil {
|
||||
global.Log.Error("查询任务分页信息失败:" + err.Error())
|
||||
return nil, err
|
||||
}
|
||||
return &list
|
||||
err = db.Order("create_time desc").Find(&list).Error
|
||||
return &list, err
|
||||
}
|
||||
|
||||
func (m *jobModelImpl) Update(data entity.SysJob) *entity.SysJob {
|
||||
biz.ErrIsNil(global.Db.Table(m.table).Updates(&data).Error, "修改任务失败")
|
||||
return &data
|
||||
func (m *jobModelImpl) Update(data entity.SysJob) (*entity.SysJob, error) {
|
||||
err := global.Db.Table(m.table).Updates(&data).Error
|
||||
return &data, err
|
||||
}
|
||||
|
||||
func (m *jobModelImpl) Delete(jobIds []string) {
|
||||
func (m *jobModelImpl) Delete(jobIds []string) error {
|
||||
err := global.Db.Table(m.table).Delete(&entity.SysJob{}, "id in (?)", jobIds).Error
|
||||
biz.ErrIsNil(err, "删除操作日志信息失败")
|
||||
return
|
||||
return err
|
||||
}
|
||||
|
||||
func (m *jobModelImpl) FindByEntryId(entryId int64) *entity.SysJob {
|
||||
func (m *jobModelImpl) FindByEntryId(entryId int64) (*entity.SysJob, error) {
|
||||
resData := new(entity.SysJob)
|
||||
err := global.Db.Table(m.table).Where("entry_id = ?", entryId).First(resData).Error
|
||||
biz.ErrIsNil(err, "查询失败")
|
||||
return resData
|
||||
return resData, err
|
||||
}
|
||||
|
||||
func (m *jobModelImpl) RemoveAllEntryID() error {
|
||||
|
||||
@@ -2,17 +2,16 @@ package services
|
||||
|
||||
import (
|
||||
"pandax/apps/job/entity"
|
||||
"pandax/kit/biz"
|
||||
"pandax/pkg/global"
|
||||
"pandax/pkg/global/model"
|
||||
)
|
||||
|
||||
type (
|
||||
JobLogModel interface {
|
||||
Insert(data entity.JobLog) *entity.JobLog
|
||||
FindListPage(page, pageSize int, data entity.JobLog) (*[]entity.JobLog, int64)
|
||||
Delete(infoId []string)
|
||||
DeleteAll()
|
||||
Insert(data entity.JobLog) (*entity.JobLog, error)
|
||||
FindListPage(page, pageSize int, data entity.JobLog) (*[]entity.JobLog, int64, error)
|
||||
Delete(infoId []string) error
|
||||
DeleteAll() error
|
||||
}
|
||||
|
||||
JobLogModelImpl struct {
|
||||
@@ -24,12 +23,12 @@ var JobLogModelDao JobLogModel = &JobLogModelImpl{
|
||||
table: `job_logs`,
|
||||
}
|
||||
|
||||
func (m *JobLogModelImpl) Insert(data entity.JobLog) *entity.JobLog {
|
||||
global.Db.Table(m.table).Create(&data)
|
||||
return &data
|
||||
func (m *JobLogModelImpl) Insert(data entity.JobLog) (*entity.JobLog, error) {
|
||||
err := global.Db.Table(m.table).Create(&data).Error
|
||||
return &data, err
|
||||
}
|
||||
|
||||
func (m *JobLogModelImpl) FindListPage(page, pageSize int, data entity.JobLog) (*[]entity.JobLog, int64) {
|
||||
func (m *JobLogModelImpl) FindListPage(page, pageSize int, data entity.JobLog) (*[]entity.JobLog, int64, error) {
|
||||
list := make([]entity.JobLog, 0)
|
||||
var total int64 = 0
|
||||
offset := pageSize * (page - 1)
|
||||
@@ -43,21 +42,23 @@ func (m *JobLogModelImpl) FindListPage(page, pageSize int, data entity.JobLog) (
|
||||
}
|
||||
|
||||
// 组织数据访问权限
|
||||
model.OrgAuthSet(db, data.RoleId, data.Owner)
|
||||
|
||||
err := db.Count(&total).Error
|
||||
err := model.OrgAuthSet(db, data.RoleId, data.Owner)
|
||||
if err != nil {
|
||||
return &list, total, err
|
||||
}
|
||||
err = db.Count(&total).Error
|
||||
if err != nil {
|
||||
return &list, total, err
|
||||
}
|
||||
err = db.Order("create_time desc").Limit(pageSize).Offset(offset).Find(&list).Error
|
||||
|
||||
biz.ErrIsNil(err, "查询任务分页日志信息失败")
|
||||
return &list, total
|
||||
return &list, total, err
|
||||
}
|
||||
|
||||
func (m *JobLogModelImpl) Delete(logIds []string) {
|
||||
func (m *JobLogModelImpl) Delete(logIds []string) error {
|
||||
err := global.Db.Table(m.table).Delete(&entity.JobLog{}, "id in (?)", logIds).Error
|
||||
biz.ErrIsNil(err, "删除任务日志信息失败")
|
||||
return
|
||||
return err
|
||||
}
|
||||
|
||||
func (m *JobLogModelImpl) DeleteAll() {
|
||||
global.Db.Exec("DELETE FROM job_logs")
|
||||
func (m *JobLogModelImpl) DeleteAll() error {
|
||||
return global.Db.Exec("DELETE FROM job_logs").Error
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user