user.go 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  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. }
  50. func IsJoinedCompany(c *gin.Context) {
  51. db := common.GetDB()
  52. userId := c.Params.ByName("userId")
  53. var company2user model.Company2Users
  54. if err := db.Model(&model.Company2Users{}).Where("user_id = ?", userId).First(&company2user).Error; err != nil {
  55. // 状态3 是指没有提交过申请
  56. company2user.State = 3
  57. response.Success(c, gin.H{"res": company2user}, "未加入任何公司")
  58. return
  59. }
  60. var company model.Company
  61. db.Model(&model.Company{}).Where("id = ?", company2user.CompanyId).First(&company)
  62. type result struct {
  63. model.Company2Users
  64. CompanyName string `json:"company_name"`
  65. }
  66. res := result{
  67. Company2Users: company2user,
  68. CompanyName: company.Name,
  69. }
  70. response.Success(c, gin.H{"res": res}, "查询成功")
  71. }
  72. func GetCompanyOfUser(c *gin.Context) {
  73. db := common.GetDB()
  74. userId := c.Params.ByName("userId")
  75. var company2user model.Company2Users
  76. if err := db.Model(&model.Company2Users{}).Where("user_id = ? and state = 1", userId).First(&company2user).Error; err != nil {
  77. response.Fail(c, nil, "用户还未加入公司或申请未通过")
  78. return
  79. }
  80. companyId := company2user.CompanyId
  81. var company model.Company
  82. if err := db.Model(&model.Company{}).Where("id = ?", companyId).First(&company).Error; err != nil {
  83. response.Fail(c, nil, "数据库错误")
  84. return
  85. }
  86. response.Success(c, gin.H{"company": company}, "查询成功")
  87. }