personId.go 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  1. //go:generate reform --gofmt=false .
  2. package api11Models
  3. import (
  4. )
  5. type StaffStatus int
  6. type StudentStatus int
  7. //reform:person_ids
  8. type PersonId struct {
  9. Id int `reform:"id" json:"id" view:"readonly"`
  10. EmpGUID *int `reform:"EmpGUID" json:"EmpGUID" view:"readonly"`
  11. StaffId *int `reform:"staff_id" json:"staff_id" view:"readonly"`
  12. StaffStatus *StaffStatus `reform:"staff_status" json:"staff_status" view:"readonly"`
  13. StudentIds []int `reform:"student_ids" json:"student_ids" view:"readonly"`
  14. StudentStatus []StudentStatus `reform:"student_status" json:"student_status" view:"readonly"`
  15. LearndepIds []int `reform:"learndep_ids" json:"learndep_ids" view:"readonly"`
  16. RecordBookNums []int `reform:"record_book_nums" json:"record_book_nums" view:"readonly"`
  17. PhysGuardIds []int `reform:"phys_guard_ids" json:"phys_guard_ids" view:"readonly"`
  18. Logins []string `reform:"logins" json:"logins" view:"readonly"`
  19. person *Person
  20. }
  21. type PersonIdPtrs []*PersonId
  22. type PersonIdsData struct {
  23. personIds PersonIdPtrs
  24. idMap map[int]*PersonId
  25. empGUIDMap map[int]*PersonId
  26. staffIdMap map[int]*PersonId
  27. studentIdMap map[int]*PersonId
  28. learndepIdMap map[int]*PersonId
  29. recordBookNumMap map[int]*PersonId
  30. physGuardIdMap map[int]*PersonId
  31. }
  32. func (personId PersonId) GetPerson() *Person {
  33. if personId.person == nil {
  34. panic("Not loaded, yet")
  35. return nil
  36. }
  37. return personId.person
  38. }
  39. func (personIds PersonIdPtrs) GetMaps() (result PersonIdsData) {
  40. result.personIds = personIds
  41. result.idMap = map[int]*PersonId{}
  42. result.empGUIDMap = map[int]*PersonId{}
  43. result.staffIdMap = map[int]*PersonId{}
  44. result.studentIdMap = map[int]*PersonId{}
  45. result.learndepIdMap = map[int]*PersonId{}
  46. result.recordBookNumMap = map[int]*PersonId{}
  47. result.physGuardIdMap = map[int]*PersonId{}
  48. for _, personId := range result.personIds {
  49. result.idMap[personId.Id] = personId
  50. if personId.EmpGUID != nil {
  51. result.empGUIDMap[*personId.EmpGUID] = personId
  52. }
  53. if personId.StaffId != nil {
  54. result.staffIdMap[*personId.StaffId] = personId
  55. }
  56. for _, studentId := range personId.StudentIds {
  57. result.studentIdMap[studentId] = personId
  58. }
  59. for _, learndepId := range personId.LearndepIds {
  60. result.learndepIdMap[learndepId] = personId
  61. }
  62. for _, recordBookNum := range personId.RecordBookNums {
  63. result.recordBookNumMap[recordBookNum] = personId
  64. }
  65. for _, physGuardId := range personId.PhysGuardIds {
  66. result.physGuardIdMap[physGuardId] = personId
  67. }
  68. }
  69. return
  70. }
  71. func (data PersonIdsData) GetId(id int) *PersonId {
  72. if data.idMap[id] == nil {
  73. return nil
  74. }
  75. personIdDup := *data.idMap[id]
  76. return &personIdDup
  77. }
  78. func (data PersonIdsData) GetStaffId(staffId int) *PersonId {
  79. if data.staffIdMap[staffId] == nil {
  80. return nil
  81. }
  82. personIdDup := *data.staffIdMap[staffId]
  83. return &personIdDup
  84. }
  85. func (data PersonIdsData) GetByEmpGUID(empGUID int) *PersonId {
  86. if data.empGUIDMap[empGUID] == nil {
  87. return nil
  88. }
  89. personIdDup := *data.empGUIDMap[empGUID]
  90. return &personIdDup
  91. }
  92. func (data PersonIdsData) GetByStudentId(studentId int) *PersonId {
  93. if data.studentIdMap[studentId] == nil {
  94. return nil
  95. }
  96. personIdDup := *data.studentIdMap[studentId]
  97. return &personIdDup
  98. }
  99. func (data PersonIdsData) GetByLearndepId(learndepId int) *PersonId {
  100. if data.learndepIdMap[learndepId] == nil {
  101. return nil
  102. }
  103. personIdDup := *data.learndepIdMap[learndepId]
  104. return &personIdDup
  105. }
  106. func (data PersonIdsData) GetByRecordBookNum(recordBookNum int) *PersonId {
  107. if data.recordBookNumMap[recordBookNum] == nil {
  108. return nil
  109. }
  110. personIdDup := *data.recordBookNumMap[recordBookNum]
  111. return &personIdDup
  112. }
  113. func (data PersonIdsData) GetByPhysGuardId(physGuardId int) *PersonId {
  114. if data.physGuardIdMap[physGuardId] == nil {
  115. return nil
  116. }
  117. personIdDup := *data.physGuardIdMap[physGuardId]
  118. return &personIdDup
  119. }