flow.go 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. // ==========================================================================
  2. // 生成日期:2020-08-24 17:13:46
  3. // 生成人:gfast
  4. // ==========================================================================
  5. package flow_service
  6. import (
  7. flowModel "gfast/app/model/admin/wf_flow"
  8. "gfast/app/model/admin/wf_run"
  9. "github.com/gogf/gf/frame/g"
  10. "github.com/gogf/gf/util/gconv"
  11. )
  12. // 添加
  13. func AddSave(req *flowModel.AddReq) error {
  14. return flowModel.AddSave(req)
  15. }
  16. // 删除
  17. func DeleteByIds(Ids []int) error {
  18. return flowModel.DeleteByIds(Ids)
  19. }
  20. func SetStatus(req *flowModel.StatusReq) error {
  21. return flowModel.SetStatus(req)
  22. }
  23. //修改
  24. func EditSave(editReq *flowModel.EditReq) error {
  25. return flowModel.EditSave(editReq)
  26. }
  27. // 根据ID查询
  28. func GetByID(id int64) (*flowModel.Entity, error) {
  29. return flowModel.GetByID(id)
  30. }
  31. // 分页查询
  32. func SelectListByPage(req *flowModel.SelectPageReq) (total int, page int64, list []*flowModel.Entity, err error) {
  33. return flowModel.SelectListByPage(req)
  34. }
  35. func GetRunningStatus(flowList []*flowModel.Entity) (g.List, error) {
  36. //获取流程Id
  37. flowIds := make([]uint, len(flowList))
  38. for k, v := range flowList {
  39. flowIds[k] = v.Id
  40. }
  41. runs, err := wf_run.GetRuns("flow_id in(?) and status = ?", flowIds, 0)
  42. if err != nil {
  43. return nil, err
  44. }
  45. rdata := make(g.List, len(flowList))
  46. for k, v := range flowList {
  47. rdata[k] = gconv.Map(v)
  48. for _, run := range runs {
  49. if run.FlowId == v.Id {
  50. rdata[k]["running"] = true
  51. break
  52. }
  53. }
  54. }
  55. return rdata, nil
  56. }