user.go 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. package controller
  2. import (
  3. "github.com/gin-gonic/gin"
  4. "lims-extend/common"
  5. "lims-extend/model"
  6. "lims-extend/response"
  7. )
  8. func GetStatisticsInfoForAdmin(c *gin.Context) {
  9. userId := c.Params.ByName("userId")
  10. db := common.GetDB()
  11. //总发包数
  12. var totalSendCount int64
  13. db.Model(&model.Task{}).Joins("left join plan on task.plan_id = plan.id").
  14. Where("plan.creator_id = ?", userId).Count(&totalSendCount)
  15. //发包中总接包数
  16. var totalRecvCount int64
  17. db.Model(&model.Task{}).Joins("left join plan on task.plan_id = plan.id").
  18. Where("plan.creator_id = ? and task.state <> 3", userId).Count(&totalRecvCount)
  19. //发包中总完成数
  20. var totalFinishedCount int64
  21. db.Model(&model.Task{}).Joins("left join plan on task.plan_id = plan.id").
  22. Where("plan.creator_id = ? and task.state = 2", userId).Count(&totalFinishedCount)
  23. response.Success(c, gin.H{
  24. "totalSendCount": totalSendCount,
  25. "totalRecvCount": totalRecvCount,
  26. "totalFinishedCount": totalFinishedCount,
  27. }, "success")
  28. }
  29. func GetStatisticsInfoForUser(c *gin.Context) {
  30. userId := c.Params.ByName("userId")
  31. db := common.GetDB()
  32. //总发包数
  33. var totalWaitingCount int64
  34. db.Model(&model.Task{}).
  35. Where("executor_id = ? and state = 3", userId).Count(&totalWaitingCount)
  36. //发包中总接包数
  37. var totalRecvCount int64
  38. db.Model(&model.Task{}).
  39. Where("executor_id = ? and task.state <> 3", userId).Count(&totalRecvCount)
  40. //发包中总完成数
  41. var totalFinishedCount int64
  42. db.Model(&model.Task{}).
  43. Where("executor_id= ? and task.state = 2", userId).Count(&totalFinishedCount)
  44. response.Success(c, gin.H{
  45. "totalWaitingCount": totalWaitingCount,
  46. "totalRecvCount": totalRecvCount,
  47. "totalFinishedCount": totalFinishedCount,
  48. }, "success")
  49. }