123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229 |
- <?php
- namespace app\admin\logic;
- use app\model\CommonModel;
- use app\model\RoleModel;
- use think\Exception;
- use think\exception\ValidateException;
- use think\facade\Db;
- use think\response\Json;
- class RoleLogic extends BaseLogic
- {
- //获取角色列表
- public static function list(array $data = []): Json
- {
- $db = RoleModel::where('is_del', CommonModel::$del_normal);
- if ($data['name'] != '') $db->whereLike('name', '%' . $data['name'] . '%');
- if ($data['level'] != '') $db->where('level', $data['level']);
- if ($data['status'] != '') $db->where('status', $data['status']);
- $count = $db->count('id');
- $list = $db
- ->field('id,name,level,status')
- ->page($data['page'], $data['size'])
- ->order(['id' => 'desc'])
- ->select()
- ->toArray();
- return json_show(CommonModel::$success, '获取角色列表成功', ['count' => $count, 'list' => $list]);
- }
- //获取全部角色
- public static function all(string $keyword = ''): Json
- {
- $db = RoleModel::where('is_del', CommonModel::$del_normal)
- ->field('id,name,level,status')
- ->order(['id' => 'desc']);
- if ($keyword != '') $db->whereLike('name', '%' . $keyword . '%');
- $list = $db
- ->select()
- ->toArray();
- return json_show(CommonModel::$success, '获取获取全部角色成功', $list);
- }
- //添加角色
- public static function add(array $data = []): Json
- {
- Db::startTrans();
- try {
- $rs = RoleModel::field('id')
- ->where(['is_del' => CommonModel::$del_normal, 'name' => $data['name']])
- ->findOrEmpty()
- ->isEmpty();
- if (!$rs) throw new Exception('该角色名已存在');
- $date = date('Y-m-d H:i:s');
- $roleid = Db::name('role')->strict(false)->insertGetId(array_merge($data, [
- 'status' => CommonModel::$status_normal,
- 'is_del' => CommonModel::$del_normal,
- 'creater' => self::$uname,
- 'createrid' => self::$uid,
- 'addtime' => $date,
- 'updater' => self::$uname,
- 'updaterid' => self::$uid,
- 'updatetime' => $date,
- ]));
- Db::name('role_action')->insert([
- 'roleid' => $roleid,
- 'action_data' => implode(',', $data['action_data']),
- 'status' => CommonModel::$status_normal,
- 'addtime' => $date,
- 'updatetime' => $date,
- ]);
- Db::commit();
- return json_show(CommonModel::$success, '添加角色成功');
- } catch (Exception $exception) {
- Db::rollback();
- return json_show(CommonModel::$error_default, $exception->getMessage());
- }
- }
- //获取角色详情
- public static function read(int $id = 0): Json
- {
- $rs = RoleModel::field(true)
- ->where(['id' => $id, 'is_del' => CommonModel::$del_normal])
- ->findOrEmpty()
- ->toArray();
- if (empty($rs)) throw new ValidateException('该角色详情为空');
- //已有的权限信息
- $rs['action'] = Db::name('role_action')
- ->where(['roleid' => $id, 'is_del' => CommonModel::$del_normal, 'status' => CommonModel::$status_normal])
- ->value('action_data');
- $rs['action'] = explode(',', $rs['action']);
- return json_show(CommonModel::$success, '获取角色详情成功', $rs);
- }
- //编辑角色
- public static function edit(array $data = []): Json
- {
- Db::startTrans();
- try {
- $rs = RoleModel::field('id,name')
- ->where(['id' => $data['id'], 'is_del' => CommonModel::$del_normal])
- ->findOrEmpty();
- if ($rs->isEmpty()) throw new Exception('该角色不存在');
- if ($rs->name != $data['name']) {
- $rs = RoleModel::field('id')
- ->where(['is_del' => CommonModel::$del_normal, 'name' => $data['name']])
- ->findOrEmpty()
- ->isEmpty();
- if (!$rs) throw new Exception('该角色名已存在');
- }
- $date = date('Y-m-d H:i:s');
- RoleModel::where('id', $data['id'])->strict(false)->save(array_merge($data, [
- 'updater' => self::$uname,
- 'updaterid' => self::$uid,
- 'updatetime' => $date,
- ]));
- Db::name('role_action')
- ->where('roleid', $data['id'])
- ->save([
- 'action_data' => implode(',', $data['action_data']),
- 'updatetime' => $date,
- ]);
- Db::commit();
- return json_show(CommonModel::$success, '编辑角色成功');
- } catch (Exception $exception) {
- Db::rollback();
- return json_show(CommonModel::$error_default, $exception->getMessage());
- }
- }
- //删除角色
- public static function delete(int $id = 0): Json
- {
- Db::startTrans();
- try {
- $date = date('Y-m-d H:i:s');
- RoleModel::where(['id' => $id, 'is_del' => CommonModel::$del_normal])->save([
- 'is_del' => CommonModel::$del_deleted,
- 'updater' => self::$uname,
- 'updaterid' => self::$uid,
- 'updatetime' => $date,
- ]);
- Db::name('role_action')
- ->where(['roleid' => $id, 'is_del' => CommonModel::$del_normal])
- ->save([
- 'is_del' => CommonModel::$del_deleted,
- 'updatetime' => $date,
- ]);
- Db::commit();
- return json_show(CommonModel::$success, '删除角色成功');
- } catch (Exception $exception) {
- Db::rollback();
- return json_show(CommonModel::$error_default, $exception->getMessage());
- }
- }
- //启禁用菜单
- public static function status(array $data = []): Json
- {
- Db::startTrans();
- try {
- $rs = RoleModel::field('id,name')
- ->where(['id' => $data['id'], 'is_del' => CommonModel::$del_normal])
- ->where('status', '<>', $data['status'])
- ->findOrEmpty()
- ->isEmpty();
- if ($rs) throw new Exception('该角色不存在或重复操作');
- $date = date('Y-m-d H:i:s');
- RoleModel::where(['id' => $data['id'], 'is_del' => CommonModel::$del_normal])
- ->where('status', '<>', $data['status'])
- ->save(array_merge($data, [
- 'updater' => self::$uname,
- 'updaterid' => self::$uid,
- 'updatetime' => $date,
- ]));
- Db::name('role_action')
- ->where('roleid', $data['id'])
- ->save([
- 'status' => $data['status'],
- 'updatetime' => $date,
- ]);
- Db::commit();
- return json_show(CommonModel::$success, '操作成功');
- } catch (Exception $exception) {
- Db::rollback();
- return json_show(CommonModel::$error_default, $exception->getMessage());
- }
- }
- }
|