123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146 |
- package service
- import (
- json2 "encoding/json"
- "strconv"
- "github.com/IceWhaleTech/CasaOS/pkg/config"
- httper2 "github.com/IceWhaleTech/CasaOS/pkg/utils/httper"
- loger2 "github.com/IceWhaleTech/CasaOS/pkg/utils/loger"
- "github.com/IceWhaleTech/CasaOS/service/model"
- "github.com/IceWhaleTech/CasaOS/types"
- "github.com/tidwall/gjson"
- "gorm.io/gorm"
- )
- type TaskService interface {
- List(desc bool) []model.TaskDBModel
- Delete(id string)
- Add(m *model.TaskDBModel)
- Update(m *model.TaskDBModel)
- Info(id string) model.TaskDBModel
- SyncTaskService()
- GetServerTasks() []model.TaskDBModel
- }
- type taskService struct {
- db *gorm.DB
- log loger2.OLog
- }
- func (s *taskService) List(desc bool) []model.TaskDBModel {
- var list []model.TaskDBModel
- var orderBy string
- if !desc {
- orderBy = "id"
- } else {
- orderBy = "id DESC"
- }
- s.db.Order(orderBy).Where("state=?", types.TASK_STATE_UNCOMPLETE).Find(&list)
- return list
- }
- func (s *taskService) Delete(id string) {
- var m model.TaskDBModel
- s.db.Where("id = ?", id).Delete(&m)
- }
- func (s *taskService) Add(m *model.TaskDBModel) {
- s.db.Save(m)
- }
- func (s *taskService) Update(m *model.TaskDBModel) {
- s.db.Model(&m).Update("state", m.State)
- }
- func (s *taskService) taskDirService(id string) model.TaskDBModel {
- var m model.TaskDBModel
- s.db.Where("id = ?", id).First(&m)
- return m
- }
- func (s *taskService) Info(id string) model.TaskDBModel {
- var m model.TaskDBModel
- s.db.Where("id = ?", id).Delete(&m)
- return m
- }
- func (s *taskService) GetServerTasks() []model.TaskDBModel {
- var count int64
- s.db.Model(&model.TaskDBModel{}).Count(&count)
- head := make(map[string]string)
- t := make(chan string)
- go func() {
- str := httper2.Get(config.ServerInfo.ServerApi+"/token", nil)
- t <- gjson.Get(str, "data").String()
- }()
- head["Authorization"] = <-t
- listS := httper2.Get(config.ServerInfo.ServerApi+"/v1/task/list/0?desc=true", head)
- list := []model.TaskDBModel{}
- json2.Unmarshal([]byte(gjson.Get(listS, "data").String()), &list)
- //go func(list []model.TaskDBModel) {
- // for _, dbModel := range list {
- // dbModel.Id = 0
- // s.db.Create(&dbModel)
- // }
- //}(list)
- return list
- }
- func (s *taskService) SyncTaskService() {
- var count int64
- s.db.Model(&model.TaskDBModel{}).Count(&count)
- head := make(map[string]string)
- t := make(chan string)
- go func() {
- str := httper2.Get(config.ServerInfo.ServerApi+"/token", nil)
- t <- gjson.Get(str, "data").String()
- }()
- head["Authorization"] = <-t
- listS := httper2.Get(config.ServerInfo.ServerApi+"/v1/task/list/"+strconv.Itoa(int(count)), head)
- list := []model.TaskDBModel{}
- json2.Unmarshal([]byte(gjson.Get(listS, "data").String()), &list)
- go func(list []model.TaskDBModel) {
- for _, dbModel := range list {
- dbModel.Id = 0
- s.db.Create(&dbModel)
- }
- }(list)
- }
- func SyncTask(db *gorm.DB) {
- var count int64
- db.Model(&model.TaskDBModel{}).Count(&count)
- head := make(map[string]string)
- t := make(chan string)
- go func() {
- str := httper2.Get(config.ServerInfo.ServerApi+"/token", nil)
- t <- gjson.Get(str, "data").String()
- }()
- head["Authorization"] = <-t
- listS := httper2.Get(config.ServerInfo.ServerApi+"/v1/task/list/"+strconv.Itoa(int(count)), head)
- list := []model.TaskDBModel{}
- json2.Unmarshal([]byte(gjson.Get(listS, "data").String()), &list)
- go func(list []model.TaskDBModel) {
- for _, dbModel := range list {
- dbModel.Id = 0
- db.Create(&dbModel)
- }
- }(list)
- }
- func NewTaskService(db *gorm.DB, log loger2.OLog) TaskService {
- return &taskService{db: db, log: log}
- }
|