supervisor.go 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. package supervisor
  2. import (
  3. "errors"
  4. "zhiyuan/models"
  5. adminParam "zhiyuan/pkg/param/admin"
  6. "zhiyuan/services/admin"
  7. "zhiyuan/services/form"
  8. )
  9. func GetList(where map[string]string, param map[string]interface{}, retVal interface{}) ([]*models.Admin, error) {
  10. where["where"] = where["where"] + " AND FIND_IN_SET({{role_id}}, role_ids)"
  11. param["role_id"] = adminParam.SupervisorRoleId
  12. return admin.GetAdminsRaw(where, param, retVal)
  13. }
  14. func Edit(form form.SupervisorAdd, id int) error {
  15. info, err := admin.GetInfoByID(id, nil, nil)
  16. if info == nil {
  17. return errors.New("invalid admin id")
  18. }
  19. if info.Phone != form.Phone && admin.CheckAdminDuplicate(form.Phone) {
  20. return errors.New("手机号码已存在")
  21. }
  22. adminInfo := admin.GetAdminCache(form.AdminID)
  23. if adminInfo.DeptID != info.DeptID {
  24. return errors.New("只能编辑本部门数据")
  25. }
  26. adminMap := map[string]interface{}{
  27. "phone": form.Phone,
  28. "username": form.Username,
  29. }
  30. _, err = admin.Update(map[string]interface{}{"id": id}, adminMap)
  31. admin.ClearAdminCache(id)
  32. return err
  33. }
  34. func Add(form form.SupervisorAdd) (int64, error) {
  35. if admin.CheckAdminDuplicate(form.Phone) {
  36. return 0, errors.New("手机号码已存在")
  37. }
  38. adminInfo := admin.GetAdminCache(form.AdminID)
  39. adminMap := map[string]interface{}{
  40. "username": form.Username,
  41. "phone": form.Phone,
  42. "dept_id": adminInfo.DeptID,
  43. "password": form.Phone[len(form.Phone)-6:],
  44. "role_ids": adminParam.SupervisorRoleId,
  45. }
  46. adminID, err := admin.InsertOne(adminMap)
  47. if err != nil {
  48. return 0, nil
  49. }
  50. return adminID, nil
  51. }