智慧食堂
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

155 lines
5.3 KiB

  1. package svc
  2. import (
  3. "applet/app/admin/md"
  4. "applet/app/db"
  5. "applet/app/db/model"
  6. enum2 "applet/app/enum"
  7. "applet/app/utils"
  8. "fmt"
  9. )
  10. func EnterpriseUserListByCentralKitchenForSchool(req md.EnterpriseUserListReq) (resp md.EnterpriseUserListByCentralKitchenForSchoolResp, err error) {
  11. //1、判断是否过滤 "教师"
  12. userIdentityDb := db.UserIdentityDb{}
  13. userIdentityDb.Set(0)
  14. teacherUserIdentities, err := userIdentityDb.FindUserIdentityForEnterpriseByIdentity(req.EnterpriseId, enum2.UserIdentityForCentralKitchenForTeacher)
  15. if err != nil {
  16. return
  17. }
  18. userIdentities, err := userIdentityDb.FindUserIdentityForEnterprise(req.EnterpriseId)
  19. if err != nil {
  20. return
  21. }
  22. var teacherUserIdentitiesMap = map[string][]model.UserIdentity{}
  23. var userIdentitiesMap = map[string][]model.UserIdentity{}
  24. var uids, teacherUids []int
  25. for _, v := range *teacherUserIdentities {
  26. teacherUserIdentitiesMap[utils.IntToStr(v.Uid)] = append(teacherUserIdentitiesMap[utils.IntToStr(v.Uid)], v)
  27. teacherUids = append(teacherUids, v.Uid)
  28. }
  29. for _, v := range *userIdentities {
  30. userIdentitiesMap[utils.IntToStr(v.Uid)] = append(userIdentitiesMap[utils.IntToStr(v.Uid)], v)
  31. uids = append(uids, v.Uid)
  32. }
  33. var m []model.User
  34. sess := db.Db.In("id", uids)
  35. if req.IsTeacher == 1 {
  36. sess.In("id", teacherUids)
  37. }
  38. if req.IsTeacher == 2 {
  39. sess.NotIn("id", teacherUids)
  40. }
  41. if req.Nickname != "" {
  42. sess.And("nickname like ?", "%"+req.Nickname+"%")
  43. }
  44. if req.Phone != "" {
  45. sess.And("phone like ?", "%"+req.Phone+"%")
  46. }
  47. count, err := sess.Limit(req.Limit, (req.Page-1)*req.Limit).FindAndCount(&m)
  48. if err != nil {
  49. return
  50. }
  51. resp.Total = count
  52. classWithUserDb := db.ClassWithUserDb{}
  53. classWithUserDb.Set()
  54. for _, v := range m {
  55. temp := md.EnterpriseUserListByCentralKitchenForSchoolStruct{
  56. Id: v.Id,
  57. Nickname: v.Nickname,
  58. Phone: v.Phone,
  59. Avatar: v.Avatar,
  60. IsTeacher: 0,
  61. CreateAt: v.CreateAt,
  62. }
  63. for _, v1 := range userIdentitiesMap[utils.IntToStr(v.Id)] {
  64. fmt.Println(">>>>>>>>>>>>", userIdentitiesMap[utils.IntToStr(v.Id)])
  65. //TODO::判断是否为老师
  66. if v1.Identity == enum2.UserIdentityForCentralKitchenForTeacher {
  67. temp.UserIdentities = append(temp.UserIdentities, struct {
  68. Id int `json:"id" label:"身份id"`
  69. IdNo string `json:"id_no" label:"身份证号"`
  70. SchoolName string `json:"school_name" label:"学校名"`
  71. Name string `json:"name" label:"姓名"`
  72. Grade string `json:"grade" label:"年级"`
  73. GradeId int `json:"grade_id" label:"年级id"`
  74. Class string `json:"class" label:"班级"`
  75. ClassId int `json:"class_id" label:"班级id"`
  76. }{Id: v1.Id, IdNo: v1.IdNo, SchoolName: "教师", Name: v1.Name, Grade: "教师", Class: "教师", GradeId: 0, ClassId: 0})
  77. temp.IsTeacher = 1
  78. } else {
  79. data, err2 := classWithUserDb.GetInfoByUserIdentityId(v1.Id)
  80. if err2 != nil {
  81. return resp, err2
  82. }
  83. if data == nil {
  84. continue
  85. }
  86. temp.UserIdentities = append(temp.UserIdentities, struct {
  87. Id int `json:"id" label:"身份id"`
  88. IdNo string `json:"id_no" label:"身份证号"`
  89. SchoolName string `json:"school_name" label:"学校名"`
  90. Name string `json:"name" label:"姓名"`
  91. Grade string `json:"grade" label:"年级"`
  92. GradeId int `json:"grade_id" label:"年级id"`
  93. Class string `json:"class" label:"班级"`
  94. ClassId int `json:"class_id" label:"班级id"`
  95. }{Id: v1.Id, IdNo: data.UserIdentity.IdNo, SchoolName: data.Enterprise.Name, Name: data.UserIdentity.Name, Grade: data.Grade.Name, Class: data.Class.Name, GradeId: data.Grade.Id, ClassId: data.Class.Id})
  96. }
  97. }
  98. resp.List = append(resp.List, temp)
  99. }
  100. return
  101. }
  102. func EnterpriseUserListByNursingHome(req md.EnterpriseUserListReq) (resp md.EnterpriseUserListByNursingHomeResp, err error) {
  103. //1、判断是否过滤 "教师"
  104. userIdentityDb := db.UserIdentityDb{}
  105. userIdentityDb.Set(0)
  106. userIdentities, err := userIdentityDb.FindUserIdentityForEnterprise(req.EnterpriseId)
  107. if err != nil {
  108. return
  109. }
  110. var userIdentitiesMap = map[string][]model.UserIdentity{}
  111. var uids []int
  112. for _, v := range *userIdentities {
  113. userIdentitiesMap[utils.IntToStr(v.Uid)] = append(userIdentitiesMap[utils.IntToStr(v.Uid)], v)
  114. uids = append(uids, v.Uid)
  115. }
  116. var m []model.User
  117. sess := db.Db.In("id", uids)
  118. if req.Nickname != "" {
  119. sess.And("nickname like ?", "%"+req.Nickname+"%")
  120. }
  121. if req.Phone != "" {
  122. sess.And("phone like ?", "%"+req.Phone+"%")
  123. }
  124. count, err := sess.Limit(req.Limit, (req.Page-1)*req.Limit).FindAndCount(&m)
  125. if err != nil {
  126. return
  127. }
  128. resp.Total = count
  129. for _, v := range m {
  130. temp := md.EnterpriseUserListByNursingHomeStruct{
  131. Id: v.Id,
  132. Nickname: v.Nickname,
  133. Phone: v.Phone,
  134. Avatar: v.Avatar,
  135. CreateAt: v.CreateAt,
  136. }
  137. for _, v1 := range userIdentitiesMap[utils.IntToStr(v.Id)] {
  138. fmt.Println(">>>>>>>>>>>>", userIdentitiesMap[utils.IntToStr(v.Id)])
  139. temp.UserIdentities = append(temp.UserIdentities, struct {
  140. Id int `json:"id" label:"身份id"`
  141. IdNo string `json:"id_no" label:"身份证号"`
  142. EnterpriseName string `json:"enterprise_name" label:"单位名"`
  143. Name string `json:"name" label:"姓名"`
  144. }{Id: v1.Id, IdNo: v1.IdNo, EnterpriseName: req.EnterpriseName, Name: v1.Name})
  145. }
  146. resp.List = append(resp.List, temp)
  147. }
  148. return
  149. }