workspace.go 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. package db
  2. import (
  3. "context"
  4. "fmt"
  5. "github.com/issue9/conv"
  6. "github.com/sirupsen/logrus"
  7. "time"
  8. "youngee_b_api/model/gorm_model"
  9. "youngee_b_api/model/http_model"
  10. )
  11. func GetWorkspaceNums(ctx context.Context, enterpriseID int64) (*http_model.WorkspaceNums, error) {
  12. var workspaceNums http_model.WorkspaceNums
  13. var PaymentPending, DraftNum, RecruitingFullNum, ExecutionSpecNum, ExecutionFullNum int64
  14. db := GetReadDB(ctx)
  15. db = db.Model(gorm_model.ProjectInfo{}).Where("enterprise_id = ?", enterpriseID)
  16. db.Where("project_status = 1").Count(&DraftNum)
  17. db1 := GetReadDB(ctx)
  18. db1 = db1.Model(gorm_model.ProjectInfo{}).Where("enterprise_id = ?", enterpriseID)
  19. db1.Where("project_status = 4 AND project_type = 1").Count(&RecruitingFullNum)
  20. db2 := GetReadDB(ctx)
  21. db2 = db2.Model(gorm_model.ProjectInfo{}).Where("enterprise_id = ?", enterpriseID)
  22. db2.Where("project_status = 6").Count(&PaymentPending)
  23. db3 := GetReadDB(ctx)
  24. db3 = db3.Model(gorm_model.ProjectInfo{}).Where("enterprise_id = ?", enterpriseID)
  25. db3.Where("project_status = 9 AND project_type = 2").Count(&ExecutionSpecNum)
  26. db4 := GetReadDB(ctx)
  27. db4 = db4.Model(gorm_model.ProjectInfo{}).Where("enterprise_id = ?", enterpriseID)
  28. db4.Where("project_status = 9 AND project_type = 1").Count(&ExecutionFullNum)
  29. var ProjectFunds float64
  30. db5 := GetReadDB(ctx)
  31. db5 = db5.Model(gorm_model.Enterprise{}).Select("frozen_balance").Where("enterprise_id = ?", enterpriseID).First(&ProjectFunds)
  32. workspaceNums.PaymentPending = PaymentPending
  33. workspaceNums.DraftNum = DraftNum
  34. workspaceNums.RecruitingFullNum = RecruitingFullNum
  35. workspaceNums.ExecutionSpecNum = ExecutionSpecNum
  36. workspaceNums.ExecutionFullNum = ExecutionFullNum
  37. workspaceNums.ProjectFunds = ProjectFunds
  38. return &workspaceNums, nil
  39. }
  40. func GetWorkspacePieNums(ctx context.Context, enterpriseID int64) (*http_model.WorkspacePieNums, error) {
  41. var workspaceNums http_model.WorkspacePieNums
  42. var DataPendingNum, LinkPendingNum, ScriptPendingNum int64
  43. db := GetReadDB(ctx)
  44. var DataProjectIDs []int64
  45. db = db.Model(gorm_model.ProjectInfo{}).Select("project_id").Where("enterprise_id = ? AND project_status = 9", enterpriseID).Find(&DataProjectIDs)
  46. db1 := GetReadDB(ctx)
  47. db1.Model(gorm_model.YoungeeTaskInfo{}).Where("project_id IN ? AND task_stage = 14", DataProjectIDs).Count(&DataPendingNum)
  48. db2 := GetReadDB(ctx)
  49. var scriptProjectIDs []int64
  50. db2 = db2.Model(gorm_model.ProjectInfo{}).Select("project_id").Where("enterprise_id = ? AND project_status = 9", enterpriseID).Find(&scriptProjectIDs)
  51. db3 := GetReadDB(ctx)
  52. db3.Model(gorm_model.YoungeeTaskInfo{}).Where("project_id IN ? AND task_stage = 8", scriptProjectIDs).Count(&ScriptPendingNum)
  53. db4 := GetReadDB(ctx)
  54. var linkProjectIDs []int64
  55. db4 = db4.Model(gorm_model.ProjectInfo{}).Select("project_id").Where("enterprise_id = ? AND project_status = 9", enterpriseID).Find(&linkProjectIDs)
  56. db5 := GetReadDB(ctx)
  57. db5 = db5.Debug().Model(gorm_model.YoungeeTaskInfo{}).Where("project_id IN ? AND task_stage = 12", linkProjectIDs).Count(&LinkPendingNum)
  58. workspaceNums.DataPendingNum = DataPendingNum
  59. workspaceNums.LinkPendingNum = LinkPendingNum
  60. workspaceNums.ScriptPendingNum = ScriptPendingNum
  61. return &workspaceNums, nil
  62. }
  63. func GetWorkspacePieNums2(ctx context.Context, enterpriseID int64) (*http_model.WorkspacePieNums2, error) {
  64. var workspaceNums http_model.WorkspacePieNums2
  65. var SketchPendingNum, AccSelecting, ShipmentPendingNum int64
  66. db := GetReadDB(ctx)
  67. var sketchProjectIDs []int64
  68. db = db.Model(gorm_model.ProjectInfo{}).Select("project_id").Where("enterprise_id = ? AND project_status = 9", enterpriseID).Find(&sketchProjectIDs)
  69. db5 := GetReadDB(ctx)
  70. db5.Debug().Model(gorm_model.YoungeeTaskInfo{}).Where("project_id IN ? AND task_stage = 10", sketchProjectIDs).Count(&SketchPendingNum)
  71. fmt.Println("SketchPendingNum:", SketchPendingNum)
  72. var RecruitingProjectIDs []int64
  73. db1 := GetReadDB(ctx)
  74. db1 = db1.Model(gorm_model.ProjectInfo{}).Select("project_id").Where("enterprise_id = ? AND project_status = 4", enterpriseID).Find(&RecruitingProjectIDs)
  75. db4 := GetReadDB(ctx)
  76. db4.Model(gorm_model.YoungeeTaskInfo{}).Where("project_id IN ? AND task_status = 1", RecruitingProjectIDs).Count(&AccSelecting)
  77. db2 := GetReadDB(ctx)
  78. var LogisticProjectIDs []int64
  79. db2 = db2.Model(gorm_model.ProjectInfo{}).Select("project_id").Where("enterprise_id = ? AND project_status = 9", enterpriseID).Find(&LogisticProjectIDs)
  80. db3 := GetReadDB(ctx)
  81. db3.Model(gorm_model.YoungeeTaskInfo{}).Where("project_id IN ? AND task_stage = 4", LogisticProjectIDs).Count(&ShipmentPendingNum)
  82. workspaceNums.SketchPendingNum = SketchPendingNum
  83. workspaceNums.AccSelecting = AccSelecting
  84. workspaceNums.ShipmentPendingNum = ShipmentPendingNum
  85. return &workspaceNums, nil
  86. }
  87. func GetWorkspaceDDLproject(ctx context.Context, enterpriseID int64) (*http_model.WorkspaceDDLprojectdata, error) {
  88. var projectInfos []gorm_model.ProjectInfo
  89. //DDLproject := http_model.WorkspaceDDLprojectdata{}
  90. db := GetReadDB(ctx)
  91. ddl := conv.MustString(time.Now())[0:10] + "%"
  92. err := db.Model(gorm_model.ProjectInfo{}).Where("enterprise_id = ? AND project_status = 4 AND recruit_ddl like ?", enterpriseID, ddl).
  93. Or("enterprise_id = ? AND project_status = 6 AND auto_fail_at like ?", enterpriseID, ddl).Find(&projectInfos).Error
  94. if err != nil {
  95. logrus.WithContext(ctx).Errorf("[Project db] Update ProjectInfo error,err:%+v", err)
  96. return nil, err
  97. }
  98. wsDDLprojectData := http_model.WorkspaceDDLprojectdata{}
  99. wsDDLprojectData.Total = conv.MustString(len(projectInfos))
  100. for _, projectInfo := range projectInfos {
  101. DDLProjectPreview := new(http_model.DDLProjectPreview)
  102. DDLProjectPreview.ProjectId = conv.MustString(projectInfo.ProjectID)
  103. DDLProjectPreview.ProjectForm = conv.MustString(projectInfo.ProjectForm)
  104. DDLProjectPreview.ProjectName = projectInfo.ProjectName
  105. DDLProjectPreview.ProjectStatus = conv.MustString(projectInfo.ProjectStatus)
  106. DDLProjectPreview.ProjectPlatform = conv.MustString(projectInfo.ProjectPlatform)
  107. DDLProjectPreview.ProjectContentType = conv.MustString(projectInfo.ContentType)
  108. DDLProjectPreview.RecruitDDL = conv.MustString(projectInfo.RecruitDdl)[0:19]
  109. if projectInfo.AutoFailAt != nil {
  110. DDLProjectPreview.AutoFailAt = conv.MustString(projectInfo.AutoFailAt)[0:19]
  111. }
  112. DDLProjectPreview.RecruitNum = conv.MustString(projectInfo.RecruitNum)
  113. wsDDLprojectData.DDLProjectPreview = append(wsDDLprojectData.DDLProjectPreview, DDLProjectPreview)
  114. }
  115. fmt.Printf("GGGGGGGGGG %+v \n", len(projectInfos))
  116. return &wsDDLprojectData, nil
  117. }