work_site_problem_report.go 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. package models
  2. import (
  3. "errors"
  4. "zhiyuan/pkg/db"
  5. "github.com/gin-gonic/gin"
  6. )
  7. type WorkSiteProblemReport struct {
  8. ID int64 `json:"id" prop:"add:false"`
  9. SiteProblemId int64 `json:"site_problem_id" type:"int" prop:"add" search:"="`
  10. Type int64 `json:"type" label:"类型" type:"int" prop:"add" default:"0"`
  11. Time int64 `json:"time" label:"时间" type:"int" default:"0"`
  12. Pictures string `json:"pictures" label:"图片列表" type:"string"`
  13. Mark string `json:"mark" label:"备注" type:"string"`
  14. State int64 `json:"state" label:"状态" type:"int" prop:"add:false" default:"0"`
  15. AdminId int64 `json:"admin_id" label:"整改人" type:"int" prop:"add:false"`
  16. Explain string `json:"explain" label:"确认说明" type:"int" prop:"add:false"`
  17. CheckId int64 `json:"check_id" label:"确认人" type:"int" prop:"add:false"`
  18. DeletedAt int64 `json:"deleted_at" prop:"add:false select:false"`
  19. CreatedAt int64 `json:"created_at" prop:"add:false"`
  20. UpdatedAt int64 `json:"updated_at" prop:"add:false"`
  21. AdminName string `json:"admin_name" prop:"select:admin.username"`
  22. AdminPhone string `json:"admin_phone" prop:"select:admin.phone"`
  23. AdminHeadImgUrl string `json:"admin_headimgurl" prop:"select:admin.headimgurl"`
  24. CheckName string `json:"check_name" prop:"select:check.username"`
  25. CheckPhone string `json:"check_phone" prop:"select:check.phone"`
  26. CheckHeadImgUrl string `json:"check_headimgurl" prop:"select:check.headimgurl"`
  27. db.BaseModel
  28. }
  29. func (WorkSiteProblemReport) TableName() string {
  30. return "zy_work_site_problem_report"
  31. }
  32. func (WorkSiteProblemReport) ListPrivilege(c *gin.Context, data map[string]interface{}, s *db.Select) bool {
  33. return true
  34. }
  35. func (WorkSiteProblemReport) AddPrivilege(c *gin.Context, data map[string]interface{}, post map[string]interface{}) error {
  36. var problem WorkSiteProblem
  37. db.GetModel(map[string]interface{}{
  38. "id": data["site_problem_id"].(int64),
  39. }, &problem)
  40. if problem.ID == 0 {
  41. return errors.New("没有权限")
  42. }
  43. if data["type"].(int64) == 0 {
  44. if problem.State != 0 {
  45. return errors.New("没有权限")
  46. }
  47. db.UpdateModel(db.Type(problem), problem.ID, map[string]interface{}{
  48. "state": 1,
  49. "visittime": data["time"].(int64),
  50. })
  51. } else if data["type"].(int64) == 1 {
  52. if problem.State != 2 {
  53. return errors.New("没有权限")
  54. }
  55. db.UpdateModel(db.Type(problem), problem.ID, map[string]interface{}{
  56. "state": 3,
  57. "finishtime": data["time"].(int64),
  58. })
  59. } else {
  60. if problem.State != 4 {
  61. return errors.New("没有权限")
  62. }
  63. db.UpdateModel(db.Type(problem), problem.ID, map[string]interface{}{
  64. "state": 5,
  65. })
  66. }
  67. data["admin_id"] = c.GetInt("adminID")
  68. return nil
  69. }
  70. func (WorkSiteProblemReport) OrderBy() string {
  71. return "updated_at"
  72. }
  73. func (WorkSiteProblemReport) Page() bool {
  74. return false
  75. }
  76. func (WorkSiteProblemReport) Count() bool {
  77. return true
  78. }
  79. func (model WorkSiteProblemReport) LeftJoin(data map[string]interface{}, s *db.Select) []db.JoinModel {
  80. return []db.JoinModel{
  81. {
  82. Model: Admin{},
  83. As: "admin",
  84. On: []string{"`admin`.`id` = " + model.TableName() + ".`admin_id`"},
  85. },
  86. {
  87. Model: Admin{},
  88. As: "check",
  89. On: []string{"`check`.`id` = " + model.TableName() + ".`check_id`"},
  90. },
  91. }
  92. }