[优化] 任务异常抛出迁移到api层

This commit is contained in:
PandaX
2024-02-25 12:38:39 +08:00
parent fe38ec7143
commit 165e3e4989
4 changed files with 76 additions and 66 deletions

View File

@@ -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, "修改任务状态失败")
}

View File

@@ -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, "清空失败")
}

View File

@@ -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 {

View File

@@ -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
}