2023-07-20 22:41:13 +08:00
|
|
|
package api
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"mayfly-go/internal/machine/api/form"
|
|
|
|
|
"mayfly-go/internal/machine/api/vo"
|
|
|
|
|
"mayfly-go/internal/machine/application"
|
|
|
|
|
"mayfly-go/internal/machine/domain/entity"
|
|
|
|
|
"strconv"
|
|
|
|
|
"strings"
|
|
|
|
|
|
|
|
|
|
"mayfly-go/pkg/biz"
|
|
|
|
|
"mayfly-go/pkg/req"
|
|
|
|
|
"mayfly-go/pkg/scheduler"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
type MachineCronJob struct {
|
2024-01-21 22:52:20 +08:00
|
|
|
MachineCronJobApp application.MachineCronJob `inject:""`
|
2023-07-20 22:41:13 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func (m *MachineCronJob) MachineCronJobs(rc *req.Ctx) {
|
2024-02-24 16:30:29 +08:00
|
|
|
cond, pageParam := req.BindQueryAndPage(rc, new(entity.MachineCronJob))
|
2023-07-20 22:41:13 +08:00
|
|
|
|
|
|
|
|
vos := new([]*vo.MachineCronJobVO)
|
2023-10-26 17:15:49 +08:00
|
|
|
pageRes, err := m.MachineCronJobApp.GetPageList(cond, pageParam, vos)
|
|
|
|
|
biz.ErrIsNil(err)
|
2023-07-20 22:41:13 +08:00
|
|
|
for _, mcj := range *vos {
|
|
|
|
|
mcj.Running = scheduler.ExistKey(mcj.Key)
|
|
|
|
|
}
|
|
|
|
|
|
2023-10-26 17:15:49 +08:00
|
|
|
rc.ResData = pageRes
|
2023-07-20 22:41:13 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func (m *MachineCronJob) Save(rc *req.Ctx) {
|
|
|
|
|
jobForm := new(form.MachineCronJobForm)
|
2024-02-24 16:30:29 +08:00
|
|
|
mcj := req.BindJsonAndCopyTo[*entity.MachineCronJob](rc, jobForm, new(entity.MachineCronJob))
|
2023-07-20 22:41:13 +08:00
|
|
|
rc.ReqParam = jobForm
|
2023-11-07 21:05:21 +08:00
|
|
|
|
2024-01-07 21:46:25 +08:00
|
|
|
cronJobId, err := m.MachineCronJobApp.SaveMachineCronJob(rc.MetaCtx, mcj)
|
2023-10-26 17:15:49 +08:00
|
|
|
biz.ErrIsNil(err)
|
2023-07-20 22:41:13 +08:00
|
|
|
|
|
|
|
|
// 关联机器
|
2023-11-07 21:05:21 +08:00
|
|
|
m.MachineCronJobApp.CronJobRelateMachines(rc.MetaCtx, cronJobId, jobForm.MachineIds)
|
2023-07-20 22:41:13 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func (m *MachineCronJob) Delete(rc *req.Ctx) {
|
2024-02-25 12:46:18 +08:00
|
|
|
idsStr := rc.PathParam("ids")
|
2023-07-20 22:41:13 +08:00
|
|
|
rc.ReqParam = idsStr
|
|
|
|
|
ids := strings.Split(idsStr, ",")
|
|
|
|
|
|
|
|
|
|
for _, v := range ids {
|
|
|
|
|
value, err := strconv.Atoi(v)
|
|
|
|
|
biz.ErrIsNilAppendErr(err, "string类型转换为int异常: %s")
|
2023-11-07 21:05:21 +08:00
|
|
|
m.MachineCronJobApp.Delete(rc.MetaCtx, uint64(value))
|
2023-07-20 22:41:13 +08:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func (m *MachineCronJob) GetRelateMachineIds(rc *req.Ctx) {
|
2024-02-25 12:46:18 +08:00
|
|
|
rc.ResData = m.MachineCronJobApp.GetRelateMachineIds(uint64(rc.QueryIntDefault("cronJobId", -1)))
|
2023-07-20 22:41:13 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func (m *MachineCronJob) GetRelateCronJobIds(rc *req.Ctx) {
|
2024-02-25 12:46:18 +08:00
|
|
|
rc.ResData = m.MachineCronJobApp.GetRelateMachineIds(uint64(rc.QueryIntDefault("machineId", -1)))
|
2023-07-20 22:41:13 +08:00
|
|
|
}
|
|
|
|
|
|
2023-12-05 23:03:51 +08:00
|
|
|
func (m *MachineCronJob) RunCronJob(rc *req.Ctx) {
|
2024-02-25 12:46:18 +08:00
|
|
|
cronJobKey := rc.PathParam("key")
|
2023-12-05 23:03:51 +08:00
|
|
|
biz.NotEmpty(cronJobKey, "cronJob key不能为空")
|
|
|
|
|
m.MachineCronJobApp.RunCronJob(cronJobKey)
|
|
|
|
|
}
|
|
|
|
|
|
2023-07-20 22:41:13 +08:00
|
|
|
func (m *MachineCronJob) CronJobExecs(rc *req.Ctx) {
|
2024-02-24 16:30:29 +08:00
|
|
|
cond, pageParam := req.BindQueryAndPage[*entity.MachineCronJobExec](rc, new(entity.MachineCronJobExec))
|
2023-10-26 17:15:49 +08:00
|
|
|
res, err := m.MachineCronJobApp.GetExecPageList(cond, pageParam, new([]entity.MachineCronJobExec))
|
|
|
|
|
biz.ErrIsNil(err)
|
|
|
|
|
rc.ResData = res
|
2023-07-20 22:41:13 +08:00
|
|
|
}
|