taskLogic.go 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  1. package logic
  2. import (
  3. "git.rtzhtech.cn/iss/public-lib/dao"
  4. "git.rtzhtech.cn/iss/public-lib/dto"
  5. "git.rtzhtech.cn/iss/public-lib/model"
  6. "git.rtzhtech.cn/iss/public-lib/svc"
  7. "github.com/gogf/gf/v2/util/gconv"
  8. "gorm.io/gen/field"
  9. )
  10. type TaskLogic struct {
  11. SvcCtx *svc.ServiceContext
  12. }
  13. // NewTaskLogic
  14. // @Description: 任务
  15. // @return *TaskLogic
  16. func NewTaskLogic() *TaskLogic {
  17. return &TaskLogic{
  18. SvcCtx: svc.SvcCtx,
  19. }
  20. }
  21. // AddTask
  22. // @Description: 添加
  23. // @receiver l
  24. // @param in
  25. // @return error
  26. func (l *TaskLogic) AddTask(in *model.DevTask) error {
  27. in.ID = 0
  28. err := l.SvcCtx.DevTask.Create(in)
  29. return err
  30. }
  31. // DelTask
  32. // @Description: 删除
  33. // @receiver l
  34. // @param taskId 任务id
  35. // @return error
  36. func (l *TaskLogic) DelTask(taskId int64) error {
  37. do := l.SvcCtx.DevTask
  38. _, err := do.Where(do.Taskid.Eq(taskId)).Delete()
  39. return err
  40. }
  41. // ModifyTask
  42. // @Description: 修改
  43. // @receiver l
  44. // @param in
  45. // @param fields 更新字段,当field为null时,更新in的全部字段
  46. // @return error
  47. func (l *TaskLogic) ModifyTask(in *model.DevTask, fields ...string) error {
  48. do := l.SvcCtx.DevTask
  49. var err error
  50. _do := do.Omit(do.ID).Where(do.Taskid.Eq(in.Taskid))
  51. if fields == nil {
  52. m := gconv.Map(in)
  53. _, err = _do.Updates(m)
  54. return err
  55. }
  56. var fieldList []field.Expr
  57. for _, v := range fields {
  58. _f, ok := do.GetFieldByName(v)
  59. if ok {
  60. fieldList = append(fieldList, _f)
  61. }
  62. }
  63. _, err = _do.Select(fieldList...).Updates(in)
  64. return err
  65. }
  66. func (l *TaskLogic) getTaskCond(req *dto.GetTaskReq) *dao.Condition {
  67. _dao := l.SvcCtx.DevTask
  68. cond := NewCondition(&req.LimitPage)
  69. if req.TaskId > 0 {
  70. cond.Where[_dao.Taskid.String()] = req.TaskId
  71. }
  72. if req.AppId > 0 {
  73. cond.Where[_dao.Appid.String()] = req.AppId
  74. }
  75. if req.TaskType > 0 {
  76. cond.Where[_dao.Tasktype.String()] = req.TaskType
  77. }
  78. if req.StartTime != "" {
  79. cond.Where[_dao.Starttime.String()+" > ?"] = req.StartTime
  80. }
  81. return cond
  82. }
  83. // GetTask
  84. // @Description: 分页查询
  85. // @receiver l
  86. // @param where 查询条件
  87. // @param page
  88. // @param limit
  89. // @return []*model.DevDevinfo
  90. // @return error
  91. func (l *TaskLogic) GetTask(req *dto.GetTaskReq) (*dto.GetTaskResp, error) {
  92. _dao := l.SvcCtx.DevTask
  93. cond := l.getTaskCond(req)
  94. resp := &dto.GetTaskResp{}
  95. err := _dao.Base.Find(cond, &resp.List)
  96. if err != nil {
  97. return nil, err
  98. }
  99. err = _dao.Base.Count(cond, &resp.Total)
  100. return resp, err
  101. }
  102. // GetTaskCount
  103. // @Description:查询满足条件的总数
  104. // @receiver l
  105. // @param where 查询条件
  106. // @return int64
  107. // @return error
  108. func (l *TaskLogic) GetTaskCount(req *dto.GetTaskReq) (int64, error) {
  109. cond := l.getTaskCond(req)
  110. var count int64
  111. err := l.SvcCtx.DevTask.Base.Count(cond, &count)
  112. if err != nil {
  113. return 0, err
  114. }
  115. return count, err
  116. }