RoleApi.php 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. <?php
  2. namespace app\admin\api;
  3. use app\admin\model\Role;
  4. use app\admin\model\SysRelation;
  5. /**
  6. * Description of RoleApi
  7. *
  8. * @author sgq
  9. */
  10. class RoleApi {
  11. public static function getOne($id) {
  12. $res = Role::findOrEmpty($id);
  13. if ($res["pid"] > 0) {
  14. $res["pName"] = isNullOrEmpty(Role::where("id", "=", $res["pid"])->findOrEmpty()["name"]);
  15. }
  16. if ($res["deptid"] > 0) {
  17. $res["deptName"] = isNullOrEmpty(DeptApi::getOne($res["deptid"])["simplename"]);
  18. }
  19. return $res;
  20. }
  21. public static function getList($params) {
  22. $where = [];
  23. if (isset($params["roleName"])) {
  24. $where = [["name", "like", "%" . $name . "%"]];
  25. }
  26. $list = Role::where($where)->select()->toArray();
  27. foreach ($list as &$item) {
  28. if ($item["pid"] > 0) {
  29. $item["pName"] = isNullOrEmpty(Role::where("id", "=", $item["pid"])->findOrEmpty()["name"]);
  30. }
  31. if ($item["deptid"] > 0) {
  32. $item["deptName"] = isNullOrEmpty(DeptApi::getOne($item["deptid"])["simplename"]);
  33. }
  34. }
  35. return $list;
  36. }
  37. public static function create($params) {
  38. if (!isset($params["name"]))
  39. return ["msg" => "角色名不能为空"];
  40. if (!isset($params["tips"]))
  41. return ["msg" => "别名不能为空"];
  42. if (!isset($params["pid"]))
  43. return ["msg" => "请选择上级名称"];
  44. $data["name"] = $params["name"];
  45. $data["pid"] = $params["pid"];
  46. $data["deptid"] = $params["deptid"];
  47. $data["tips"] = $params["tips"];
  48. $data["num"] = $params["num"];
  49. Role::insert($data);
  50. return ["code" => 200, "msg" => "成功"];
  51. }
  52. public static function update($params) {
  53. if (!isset($params["id"]))
  54. return ["msg" => "没有角色信息"];
  55. if (!isset($params["name"]))
  56. return ["msg" => "角色名不能为空"];
  57. if (!isset($params["tips"]))
  58. return ["msg" => "别名不能为空"];
  59. if (!isset($params["pid"]))
  60. return ["msg" => "请选择上级名称"];
  61. $child_ids = Role::where("pid", "=", $params["id"])->column("id");
  62. if (in_array($params["pid"], $child_ids))
  63. return ["msg" => "不能选择自身下级作为上级"];
  64. $data["id"] = $params["id"];
  65. $data["name"] = $params["name"];
  66. $data["pid"] = $params["pid"];
  67. $data["deptid"] = $params["deptid"];
  68. $data["tips"] = $params["tips"];
  69. $data["num"] = $params["num"];
  70. Role::update($data);
  71. return ["code" => 200, "msg" => "成功"];
  72. }
  73. public static function set_authority($id, $mids) {
  74. SysRelation::where("roleid", "=", $id)->delete();
  75. $data = [];
  76. $mids = explode(",", $mids);
  77. for ($i = 0; $i < count($mids); $i++) {
  78. $data[] = [
  79. "menuid" => $mids[$i],
  80. "roleid" => $id
  81. ];
  82. }
  83. SysRelation::insertAll($data);
  84. return ["code" => 200, "msg" => "成功"];
  85. }
  86. public static function delete($id) {
  87. //不能删除超级管理员角色
  88. if ($id == 1)
  89. return ["msg" => "不能删除超级管理员角色"];
  90. Role::where(["id" => $id])->delete();
  91. return ["code" => 200, "msg" => "成功"];
  92. }
  93. }