supervisor.go 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. package leader
  2. import (
  3. "strings"
  4. "zhiyuan/pkg/app"
  5. adminParam "zhiyuan/pkg/param/admin"
  6. "zhiyuan/pkg/utils"
  7. "zhiyuan/services/admin"
  8. "zhiyuan/services/aftersale/supervisor"
  9. "zhiyuan/services/dept"
  10. "zhiyuan/services/form"
  11. "zhiyuan/services/role"
  12. "github.com/gin-gonic/gin"
  13. )
  14. func SupervisorList(c *gin.Context) {
  15. type SupervisorList struct {
  16. ID int `json:"id"`
  17. UserName string `json:"username"`
  18. Phone string `json:"phone"`
  19. RoleIds string `json:"role_ids"`
  20. RoleNames string `json:"role_names"`
  21. }
  22. adminInfo := admin.GetAdminCache(c.GetInt("adminID"))
  23. supervisorList := make([]*SupervisorList, 0)
  24. if adminInfo.DeptID == 24 {
  25. dept.GetSubDeptIds(1, []int{})
  26. }
  27. where := map[string]string{
  28. "where": " deleted_at=0",
  29. "_order_by": "id desc",
  30. }
  31. param := make(map[string]interface{})
  32. if adminInfo.DeptID != 24 {
  33. where["where"] = where["where"] + " AND dept_id IN {{dept_id}}"
  34. param["dept_id"] = []int{adminInfo.DeptID, 24}
  35. }
  36. where["where"] = where["where"] + " AND FIND_IN_SET({{role_id}}, role_ids)"
  37. param["role_id"] = adminParam.SupervisorRoleId
  38. // site_id
  39. if adminInfo := admin.GetAdminCache(c.GetInt("adminID")); adminInfo.SiteID > 0 {
  40. where["where"] += " AND (site_id={{site_id}} or site_id=0)"
  41. param["site_id"] = adminInfo.SiteID
  42. }
  43. if _, err := supervisor.GetList(where, param, &supervisorList); err != nil {
  44. app.Error(c, err.Error())
  45. return
  46. }
  47. // get role name
  48. roleListMap := make(map[int]string)
  49. if roleList, err := role.GetList(nil, []string{"id, name"}, app.Page{}, nil); err == nil {
  50. for _, v := range roleList {
  51. roleListMap[v.ID] = v.Name
  52. }
  53. }
  54. for k, v := range supervisorList {
  55. roleNames := ""
  56. roleSlice := strings.Split(v.RoleIds, ",")
  57. for _, vv := range roleSlice {
  58. roleNames += "," + roleListMap[utils.ToInt(vv)]
  59. }
  60. v.RoleNames = strings.TrimLeft(roleNames, ",")
  61. supervisorList[k] = v
  62. }
  63. app.Success(c, supervisorList)
  64. }
  65. func SupervisorEdit(c *gin.Context) {
  66. id := utils.StrTo(c.Param("id")).MustInt()
  67. if id <= 0 {
  68. app.Error(c, "supervisor id must be a number")
  69. return
  70. }
  71. var form form.SupervisorAdd
  72. if app.Bind(c, &form) != nil {
  73. return
  74. }
  75. form.AdminID = c.GetInt("adminID")
  76. if err := supervisor.Edit(form, id); err != nil {
  77. app.ErrorMsg(c, err.Error(), nil)
  78. return
  79. }
  80. app.Success(c, nil)
  81. }
  82. func SupervisorAdd(c *gin.Context) {
  83. var form form.SupervisorAdd
  84. if app.Bind(c, &form) != nil {
  85. return
  86. }
  87. form.AdminID = c.GetInt("adminID")
  88. supervisorID, err := supervisor.Add(form)
  89. if err != nil {
  90. app.ErrorMsg(c, err.Error(), nil)
  91. return
  92. }
  93. app.Success(c, gin.H{"supervisor_id": supervisorID})
  94. }