MenuApi.php 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. <?php
  2. namespace app\common\api;
  3. use app\admin\model\Role;
  4. use app\admin\model\SysRelation;
  5. use app\admin\model\Menu;
  6. /**
  7. * Description of MenuApi
  8. *
  9. * @author sgq
  10. */
  11. class MenuApi {
  12. public static function getMenuListByRoleid($roleid) {
  13. $role = Role::find($roleid);
  14. $menu_ids = $role->sysRelation->column("menuid");
  15. $menus = Menu::where("id", "in", $menu_ids)->where("ismenu", 1)->where("status", 1)->order("levels asc,num asc")->select()->toArray();
  16. return self::buildMenu($menus);
  17. }
  18. /**
  19. * 递归获取多级菜单集合
  20. * @param type $menus
  21. * @param type $pcode
  22. * @return type
  23. */
  24. private static function buildMenu($menus, $pcode = "0") {
  25. $result = [];
  26. foreach ($menus as $key => $menu) {
  27. if ($pcode == $menu["pcode"]) {
  28. unset($menus[$key]);
  29. $menu["children"] = self::buildMenu($menus, $menu["code"]);
  30. if ($menu["pcode"] == 0) {
  31. $result[] = $menu;
  32. }
  33. }
  34. }
  35. return $result;
  36. }
  37. /**
  38. * 权限检查
  39. * @param type $url 新权限url
  40. * @param type $old_url 旧系统权限url
  41. * @return boolean
  42. */
  43. public static function chkPermission($url, $old_url) {
  44. $url = strtolower($url);
  45. $old_url = strtolower($old_url);
  46. $menu = Menu::whereRaw("`status`=1 and (new_url=:new_url or `url`=:url)", ["new_url" => $url, "url" => $old_url])->findOrEmpty()->toArray();
  47. if (!$menu)
  48. return true;
  49. $menuid = $menu["id"];
  50. $roleid = session("user")["roleid"];
  51. $role = Role::find($roleid);
  52. $menu_ids = $role->sysRelation->column("menuid");
  53. return in_array($menuid, $menu_ids);
  54. }
  55. public static function getEnterpriseMenuByType($type) {
  56. $menus = [];
  57. $menus[] = ["type" => [1, 2, 3], "code" => "qyzx", "pcode" => "0", "name" => "企业用户中心", "url" => "", "icon" => "fa-user"];
  58. $menus[] = ["type" => [1, 2], "code" => "yhfk", "pcode" => "0", "name" => "用户反馈", "url" => "", "icon" => "fa-bug"];
  59. $menus[] = ["type" => [1, 2], "code" => "rcrd", "pcode" => "0", "name" => "人才认定", "url" => "", "icon" => "fa-thumbs-o-up"];
  60. $menus[] = ["type" => [1, 2], "code" => "rcrdsb", "pcode" => "rcrd", "name" => "人才认定申报", "url" => "", "icon" => "fa-thumbs-up"];
  61. $menus[] = ["type" => [1, 2], "code" => "yxrck", "pcode" => "rcrd", "name" => "优秀人才库", "url" => "", "icon" => "fa-thumbs-up"];
  62. $menus[] = ["type" => [1, 2], "code" => "lzsb", "pcode" => "rcrd", "name" => "离职申报", "url" => "", "icon" => "fa-thumbs-up"];
  63. $menus[] = ["type" => [1, 2], "code" => "gzdwbg", "pcode" => "rcrd", "name" => "工作单位变更", "url" => "", "icon" => "fa-thumbs-up"];
  64. $menus[] = ["type" => [1, 2], "code" => "yhzhbg", "pcode" => "rcrd", "name" => "银行账号变更", "url" => "", "icon" => "fa-thumbs-up"];
  65. $menus[] = ["type" => [1, 2], "code" => "rcccbg", "pcode" => "rcrd", "name" => "人才层次变更", "url" => "", "icon" => "fa-thumbs-up"];
  66. $menus[] = ["type" => [1, 2], "code" => "jcxxbg", "pcode" => "rcrd", "name" => "基础信息变更", "url" => "", "icon" => "fa-thumbs-up"];
  67. $menus[] = ["type" => [1, 2], "code" => "jbtmanage", "pcode" => "0", "name" => "津补贴申报", "url" => "", "icon" => "fa-money"];
  68. $menus[] = ["type" => [1, 2], "code" => "jbtsb", "pcode" => "jbtmanage", "name" => "津补贴申报", "url" => "", "icon" => "fa-thumbs-up"];
  69. $menus[] = ["type" => [1, 2], "code" => "gfbt", "pcode" => "0", "name" => "购房补贴", "url" => "", "icon" => "fa-university"];
  70. $menus[] = ["type" => [1, 2], "code" => "gfbtsb", "pcode" => "gfbt", "name" => "购房补贴申报", "url" => "", "icon" => "fa-thumbs-up"];
  71. $menus[] = ["type" => [2], "code" => "pxbtmanage", "pcode" => "0", "name" => "培训补贴", "url" => "", "icon" => "fa-building"];
  72. $menus[] = ["type" => [2], "code" => "pxbt", "pcode" => "pxbtmanage", "name" => "培训补贴", "url" => "", "icon" => "fa-thumbs-up"];
  73. $menus[] = ["type" => [2], "code" => "zdzxmanage", "pcode" => "0", "name" => "重大专项", "url" => "", "icon" => "fa-life-ring"];
  74. $menus[] = ["type" => [2], "code" => "zdzx", "pcode" => "zdzxmanage", "name" => "重大专项", "url" => "", "icon" => "fa-thumbs-up"];
  75. $menus[] = ["type" => [2], "code" => "znjy", "pcode" => "0", "name" => "子女教育", "url" => "", "icon" => "fa-graduation-cap"];
  76. $menus[] = ["type" => [2], "code" => "xzfbz", "pcode" => "znjy", "name" => "学杂费补助", "url" => "", "icon" => "fa-thumbs-up"];
  77. $menus[] = ["type" => [2], "code" => "ylbzmanage", "pcode" => "0", "name" => "医疗补助", "url" => "", "icon" => "fa-hospital-o"];
  78. $menus[] = ["type" => [2], "code" => "ylbz", "pcode" => "ylbzmanage", "name" => "医疗补助", "url" => "", "icon" => "fa-thumbs-up"];
  79. $menus[] = ["type" => [2], "code" => "zfbz", "pcode" => "0", "name" => "住房保障", "url" => "", "icon" => "fa-home"];
  80. $menus[] = ["type" => [2], "code" => "zfsq", "pcode" => "zfbz", "name" => "租房申请", "url" => "", "icon" => "fa-home"];
  81. $menus[] = ["type" => [2], "code" => "fzbz", "pcode" => "zfbz", "name" => "房租补助", "url" => "", "icon" => "fa-money"];
  82. $menus[] = ["type" => [2], "code" => "gfsq", "pcode" => "zfbz", "name" => "购房申请", "url" => "", "icon" => "fa-envira"];
  83. $menus[] = ["type" => [2], "code" => "gfbz", "pcode" => "zfbz", "name" => "购房补助", "url" => "", "icon" => "fa-envira"];
  84. $menus[] = ["type" => [1], "code" => "sbrc", "pcode" => "0", "name" => "硕博人才", "url" => "", "icon" => "fa-graduation-cap"];
  85. $menus[] = ["type" => [1], "code" => "shbt", "pcode" => "sbrc", "name" => "生活补贴", "url" => "", "icon" => "fa-graduation-cap"];
  86. $menus[] = ["type" => [3], "code" => "hxjh", "pcode" => "0", "name" => "海峡计划", "url" => "", "icon" => "fa-plane"];
  87. $menus[] = ["type" => [3], "code" => "hxjhsb", "pcode" => "hxjh", "name" => "海峡计划申报", "url" => "", "icon" => "fa-pencil"];
  88. foreach ($menus as $key => $menu) {
  89. if (!in_array($type, $menu["type"]))
  90. unset($menus[$key]);
  91. }
  92. return self::buildMenu($menus);
  93. }
  94. }