123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161 |
- <?php
- /**
- * @copyright (C)2016-2099 Hnaoyun Inc.
- * @author XingMeng
- * @email hnxsh@foxmail.com
- * @date 2017年4月3日
- * 菜单管理模型类
- */
- namespace app\admin\model\system;
-
- use core\basic\Model;
-
- class MenuModel extends Model
- {
-
- // 获取菜单列表
- public function getList()
- {
- $result = parent::table('ay_menu')->order('pcode,sorting,id')->select();
- $tree = get_tree($result, 0, 'mcode', 'pcode');
- return $tree;
- }
-
- // 获取菜单选择列表
- public function getSelect()
- {
- $result = parent::table('ay_menu')->field('id,pcode,mcode,name,url,sorting')
- ->order('pcode,sorting,id')
- ->select();
- $tree = get_tree($result, 0, 'mcode', 'pcode');
- return $tree;
- }
-
- // 获取菜单详情
- public function getMenu($mcode)
- {
- $result = parent::table('ay_menu')->where("mcode='$mcode'")->find();
- if ($result)
- $result->actions = $this->getMenuAction($result->mcode);
- return $result;
- }
-
- // 检查是否存在
- public function checkMenu($data)
- {
- return parent::table('ay_menu')->where($data)->find();
- }
-
- // 获取最后一个code
- public function getLastCode()
- {
- return parent::table('ay_menu')->order('mcode DESC')->value('mcode');
- }
-
- // 新增菜单,$actions为菜单功能按钮数组
- public function addMenu(array $data, array $actions = array())
- {
- $result = parent::table('ay_menu')->autoTime()->insert($data);
- if ($result && $actions) {
- $this->delMenuAction($data['mcode']);
- $this->addMenuAction($data['mcode'], $actions);
- }
- return $result;
- }
-
- // 删除菜单
- public function delMenu($mcode)
- {
- $result = parent::table('ay_menu')->where("mcode='$mcode' OR pcode='$mcode'")->delete();
- if ($result) {
- $this->delMenuAction($mcode);
- }
- return $result;
- }
-
- // 修改菜单
- public function modMenu($mcode, $data, array $actions = null)
- {
- $result = parent::table('ay_menu')->where("mcode='$mcode'")
- ->autoTime()
- ->update($data);
- if ($result) {
- if (array_key_exists('mcode', $data) && $mcode != $data['mcode']) {
- $this->modSubMenu($mcode, $data['mcode']);
- }
- if (is_array($actions)) {
- $this->delMenuAction($mcode);
- }
- if ($actions) {
- if (array_key_exists('mcode', $data)) {
- $mcode = $data['mcode'];
- }
- $this->addMenuAction($mcode, $actions);
- }
- }
- return $result;
- }
-
- // 修改子菜单的父菜单
- private function modSubMenu($mcode, $mcodeNew)
- {
- return parent::table('ay_menu')->where("pcode='$mcode'")->update("mcode='$mcodeNew'");
- }
-
- // 获取指定菜单的功能数据
- private function getMenuAction($mcode)
- {
- return parent::table('ay_menu_action')->where("mcode='$mcode'")->column('action');
- }
-
- // 插入指定菜单功能关联数据
- private function addMenuAction($mcode, array $actions)
- {
- return parent::table('ay_menu_action')->field('mcode,action')
- ->relation($mcode, $actions)
- ->insert();
- }
-
- // 删除指定菜单功能关联数据
- private function delMenuAction($mcode)
- {
- return parent::table('ay_menu_action')->where("mcode='$mcode'")->delete();
- }
-
- // 获取菜单权限功能表
- public function getMenuLevel()
- {
- $table = array(
- 'ay_menu',
- 'ay_menu_action',
- 'ay_type'
- );
- $field = array(
- 'ay_menu.mcode',
- 'ay_menu.name',
- 'ay_menu.url',
- 'ay_type.item',
- 'ay_type.value'
- );
- $where = array(
- "ay_type.tcode='T101'",
- "ay_menu.mcode=ay_menu_action.mcode",
- "ay_type.value=ay_menu_action.action"
- );
- $order = array(
- 'ay_menu.mcode',
- 'ay_type.tcode',
- 'ay_type.sorting'
- );
- $result = parent::table($table)->field($field)
- ->where($where)
- ->order($order)
- ->select();
- $data = array();
- foreach ($result as $key => $value) {
- $data[$value->mcode][] = $value;
- }
- return $data;
- }
- }
|