<?php
namespace app\common\service;
use app\common\model\Role;
use app\common\service\Service;
use think\facade\Cache;
class RoleService extends Service
{
public function list()
{
return (new Role)->select();
}
public function create($param = [])
{
$param = $this->autoParams($param);
return Role::create($param);
}
public function update($param = [])
{
$param = $this->autoParams($param);
return Role::update($param);
}
const CODE_CACHE_KEY = 'ROLE_CODE_CACHE';
public function codes()
{
// 从缓存获取之前生成好的值
// $cache = Cache::get(self::CODE_CACHE_KEY);
// if ($cache) {
// return $cache;
// }
$crud = function($parent, $name, $create = true, $read = true, $update = true, $delete = true) {
$codes = [];
if ($create) {
$codes[] = [
'id' => "$parent.create",
'lable' => "创建-$name"
];
}
if ($read) {
$codes[] = [
'id' => "$parent.read",
'lable' => "读取-$name"
];
}
if ($update) {
$codes[] = [
'id' => "$parent.update",
'lable' => "编辑-$name"
];
}
if ($delete) {
$codes[] = [
'id' => "$parent.delete",
'lable' => "删除-$name"
];
}
return $codes;
};
$codes = [
[
'id' => Role::CODE_SUPER_ADMIN,
'lable' => '超级管理员(所有权限)',
],
[
'id' => 'admin',
'lable' => '人员管理',
'children' => $crud('admin', '人员管理')
],
[
'id' => 'role',
'lable' => '角色管理',
'children' => $crud('role', '角色管理')
],
[
'id' => 'project',
'lable' => '项目',
'children' => [
...$crud('project', '项目'),
[
'id' => 'project.schedule',
'lable' => '进程',
'children' => $crud('project.schedule', '进程', read: false)
],
[
'id' => 'project.status',
'lable' => '状态',
'children' => $crud('project.status', '状态', read: false, delete: false)
],
[
'id' => 'project.contract',
'lable' => '合同',
'children' => $crud('project.contract', '合同')
]
]
]
];
Cache::set(self::CODE_CACHE_KEY, $codes, 600);
return $codes;
}
}