123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181 |
- <?php
- /**
- * 用户角色
- * @author qqiu@qq.com
- * @version 1.0
- * @date 2015年10月9日
- *
- */
- namespace App\Services\Admin;
- use App\Services\Base\BaseProcess;
- use App\Models\AdminRoleModel;
- class Role extends BaseProcess
- {
- /**
- * 模型
- *
- * @var object
- *
- */
- private $objModel;
-
- /**
- * 初始化
- */
- public function __construct()
- {
- if( !$this->objModel) $this->objModel = new AdminRoleModel();
- }
-
- public function model()
- {
- $this->setSucessCode();
- return $this->objModel;
- }
-
- /**
- * 搜索
- * @param $search
- * @param $pagesize
- */
- public function search($search, $orderby, $pagesize = PAGE_NUMS)
- {
- $currentQuery = $this->objModel;
- if(isset($search['keyword']) && !empty($search['keyword'])) {
- $keywords = '%' . $search['keyword'] . '%';
- $currentQuery = $currentQuery->where(function ($query) use ($keywords) {
- $query->where('name' , 'like', $keywords)
- ->orwhere('mark', 'like', $keywords);
- });
- }
-
- if(isset($search['department_ids']) && !empty($search['department_ids'])) {
- $department_ids = $search['department_ids'];
- $currentQuery = $currentQuery->where(function ($query) use ($department_ids) {
- $query->whereIn('department_id', $department_ids);
- });
- }
-
- if($orderby && is_array($orderby)){
- foreach ($orderby AS $field => $value){
- $currentQuery = $currentQuery -> orderBy($field, $value);
- }
- }else{
- $currentQuery = $currentQuery->orderBy('id', 'DESC');
- }
-
- $currentQuery = $currentQuery->where('level', '>=', $search['level'])->paginate($pagesize);
- return $currentQuery;
- }
- /**
- * 添加
- * @param $data
- */
- public function create($data)
- {
- return $this->objModel->create($data);
- }
-
- /**
- * 更新
- * @param $id
- * @param $data
- */
- public function update($id, $data)
- {
- $obj = $this->objModel->find($id);
- if(!$obj) {
- return false;
- }
- $ok = $obj->update($data);
- return $ok;
- }
-
- /**
- * 更新状态
- * @param $id
- * @param $status
- */
- public function updateStatus($id, $status)
- {
- $data = $this->objModel->find($id);
- $data->status = $status;
- return $data->save();
- }
-
- /**
- * 删除
- * @param $id
- */
- public function destroy($id)
- {
- return $this->objModel->destroy($id);
- }
-
- /**
- * 获取一行数据
- * @param $where
- * @return
- */
- public function find($id)
- {
- return $this->objModel->find($id);
- }
-
- /**
- * 获取角色权限节点(level越小权限越大)
- */
- public function getLevelNode($role_ids)
- {
- $role_ids = is_array($role_ids) ? $role_ids : explode(',', $role_ids);
- return $this->objModel->whereIn('id', $role_ids)->take(1)->orderBy('level', 'ASC')->first();
- }
-
- /**
- * 根据状态查询数据
- */
- public function getValidData($status = 1)
- {
- return $this->objModel->where('status', $status)->orderBy('id', 'DESC')->get();
- }
-
- /**
- * 查询多条数据
- */
- public function get($pagesize = PAGE_NUMS) {
- return $this->objModel->take($pagesize)->orderBy('level', 'ASC')->get();
- }
-
- /**
- * 查询多条数据并分页
- */
- public function getPage($pagesize = PAGE_NUMS) {
- return $this->objModel->orderBy('id', 'DESC')->paginate($pagesize);
- }
-
- /**
- * 获取子等级数据
- */
- public function getChildByLevel($level, $departmentIds=array())
- {
- $currentQuery = $this->objModel;
- $currentQuery = $currentQuery->where('level', '>=', $level);
- $currentQuery = $currentQuery->where('status', '=', 1);
- if($departmentIds){
- $currentQuery = $currentQuery->whereIn('department_id', $departmentIds);
- }
- return $currentQuery = $currentQuery->orderBy('level', 'ASC')->get();
- }
-
- /**
- * 根据部门ID获取角色个数
- */
- public function getCountByDepartmentId($department_id)
- {
- return $this->objModel->where('department_id', '=', $department_id)->count();
- }
-
- }
|