package service import ( "fmt" "gitlab.wodcloud.com/smart-operation/so-operation-api/src/bean/entity" "gitlab.wodcloud.com/smart-operation/so-operation-api/src/bean/vo/request" "gitlab.wodcloud.com/smart-operation/so-operation-api/src/bean/vo/response" "gitlab.wodcloud.com/smart-operation/so-operation-api/src/common/client" "gitlab.wodcloud.com/smart-operation/so-operation-api/src/pkg/beagle/resp" "time" ) type TaskManageSvc struct { User *entity.User } // AddTaskManage 新增任务 func (t *TaskManageSvc) AddTaskManage(req request.AddTaskManageReq) (err error) { db, err := client.GetDbClient() if err != nil { err = resp.DbConnectError.WithError(err) return } // 校验 任务名称 是否重复 //has, err := db.Table("task_manage").Where("is_delete = 0 AND task_name = ?", req.TaskName).Exist() //if has { // err = resp.DbDataCheckError.WithError(errors.New("任务名称重复")) // return //} //if err != nil { // err = resp.DbSelectError.WithError(err) // return //} taskManage := entity.TaskManage{ TaskName: req.TaskName, TaskDesc: req.TaskDesc, YamlDesc: req.YamlDesc, YamlUrl: req.YamlUrl, HostGroupId: req.HostGroupId, CreateUser: "", CreateTime: time.Now(), UpdateUser: "", UpdateTime: time.Now(), } _, err = db.Table("task_manage").Insert(&taskManage) if err != nil { err = resp.DbInsertError.WithError(err) return } return } // EditTaskManage 编辑任务 func (t *TaskManageSvc) EditTaskManage(req request.EditTaskManageReq) (err error) { db, err := client.GetDbClient() if err != nil { err = resp.DbConnectError.WithError(err) return } taskManage := entity.TaskManage{ TaskDesc: req.TaskDesc, YamlDesc: req.YamlDesc, YamlUrl: req.YamlUrl, HostGroupId: req.HostGroupId, UpdateUser: "", UpdateTime: time.Now(), } //编辑任务 _, err = db.Table("task_manage").Where("is_delete = 0 AND id = ?", req.Id). Cols("task_desc,yaml_desc,yaml_url,host_group_id,update_user,update_time").Update(&taskManage) if err != nil { err = resp.DbUpdateError.WithError(err) return } return } // DelTaskManage 删除任务 func (t *TaskManageSvc) DelTaskManage(req request.DelTaskManageReq) (err error) { db, err := client.GetDbClient() if err != nil { err = resp.DbConnectError.WithError(err) return } //编辑任务 _, err = db.Table("task_manage").In("id", req.Id).Cols("is_delete").Update(&entity.TaskManage{ IsDelete: 1, }) if err != nil { err = resp.DbDeleteError.WithError(err) return } return } // DetailsTaskManage 任务详情 func (t *TaskManageSvc) DetailsTaskManage(id int) (taskManageRes response.TaskManageRes, err error) { db, err := client.GetDbClient() if err != nil { err = resp.DbConnectError.WithError(err) return } //查询任务 _, err = db.Table("task_manage").Where("is_delete = 0 AND id = ?", id).Get(&taskManageRes) if err != nil { err = resp.DbSelectError.WithError(err) return } return } // ListTaskManage 任务列表 func (t *TaskManageSvc) ListTaskManage(req request.ListTaskManageReq) (total int64, taskManageListRes []response.TaskManageRes, err error) { db, err := client.GetDbClient() if err != nil { err = resp.DbConnectError.WithError(err) return } finder := db.Table("task_manage").Where("is_delete = 0") if req.Search != "" { finder.Where(fmt.Sprintf("(task_name LIKE %s OR task_desc LIKE %s OR create_user LIKE %s)", "%"+req.Search+"%", "%"+req.Search+"%", "%"+req.Search+"%")) } if req.CreateDateFrom != "" { finder.Where("create_time >= ?", req.CreateDateFrom) } if req.CreateDateTo != "" { finder.Where("create_time <= ?", req.CreateDateFrom) } finder.OrderBy("id") //查询任务 total, err = finder.Limit(req.PageSize, (req.Page-1)*req.PageSize).FindAndCount(&taskManageListRes) if err != nil { err = resp.DbSelectError.WithError(err) return } return }