model = model('Admin'); } /** * 默认生成的控制器所继承的父类中有index/add/edit/del/multi五个方法 * 因此在当前控制器中可不用编写增删改查的代码,如果需要自己控制这部分逻辑 * 需要将application/admin/library/traits/Backend.php中对应的方法复制到当前控制器,然后进行修改 */ /** * 查看 */ public function index() { //设置过滤方法 $this->request->filter(['strip_tags']); if ($this->request->isAjax()) { //如果发送的来源是Selectpage,则转发到Selectpage if ($this->request->request('pkey_name')) { return $this->selectpage(); } list($where, $sort, $order, $offset, $limit) = $this->buildparams(); $total = $this->model->join('admin_extend a','admin.id= a.admin_id') ->join('admin_config c','c.admin_id = admin.id') ->join('auth_group_access g','admin.id = g.uid') ->field('admin.id as id,admin.username as username,admin.nickname as nickname,a.benefit as benefit,c.normal_num as normal_count,c.vip_num as vip_count,c.is_blacklist as is_blacklist') ->where($where) ->where('g.group_id',3) ->order($sort, 'ASC') ->count(); $list = $this->model->join('admin_extend a','admin.id= a.admin_id') ->join('admin_config c','c.admin_id = admin.id') ->join('auth_group_access g','admin.id = g.uid') ->field('admin.id as id,admin.username as username,admin.nickname as nickname,a.benefit as benefit,c.normal_num as normal_count,c.normal_num as normal_num,c.vip_num as vip_count,c.vip_num as vip_num,c.is_blacklist as is_blacklist,extend') ->where($where) ->where('g.group_id',3) ->order($sort, 'ASC') ->limit($offset, $limit) ->select(); foreach ($list as $index => $item) { $list[$index] = array_merge($list[$index]->getData(), ['clear' => AdminConstants::ADMIN_EXTEND_CLEAR_NO]); if ($item->extend != 'null') { $list[$index] = array_merge($list[$index], json_decode($item->extend, true) ?? []); } } $result = array("total" => $total, "rows" => $list); return json($result); } return $this->view->fetch(); } public function clearblackuser($id) { $res = model('AdminConfig')->where('admin_id', $id)->find(); if (!$res) { $this->error('账号信息不存在'); } if ($res->extend != 'null') { $extend = json_decode($res->extend, true); $extend['clear'] = AdminConstants::ADMIN_EXTEND_CLEAR_WAITING; } else { $extend = ['clear' => AdminConstants::ADMIN_EXTEND_CLEAR_WAITING]; } model('AdminConfig')->where('admin_id', $id)->update(['extend' => json_encode($extend, JSON_UNESCAPED_UNICODE)]); $this->success(); } /** * 编辑 */ public function edit($ids = NULL) { if($this->request->isAjax()){ $params = $this->request->post("row/a"); $update = []; if ($params['is_blacklist']) { $res = model('AdminConfig')->where('admin_id', $ids)->find(); if ($res->extend != 'null') { $extend = json_decode($res->extend, true); $extend['clear'] = AdminConstants::ADMIN_EXTEND_CLEAR_NO; } else { $extend = ['clear' => AdminConstants::ADMIN_EXTEND_CLEAR_NO]; } $update['extend'] = json_encode($extend, JSON_UNESCAPED_UNICODE); } $admin_id =$params['cid']; $update['normal_num'] = $params['normal_count'] ?? 0; $update['vip_num'] = $params['vip_count'] ?? 0; $update['is_blacklist'] = $params['is_blacklist']; $update['kl_rate'] = $params['kl_rate'] ?? 0.00; if($admin_id){ $res =model('AdminConfig')->update($update,['admin_id'=>$admin_id]); if($res){ model('AdminConfig')->delAdminInfoAllCache($admin_id); $this->success(); }else{ $this->error($res->getError()); } } } $row = model('AdminConfig')->get($ids); if (!$row){ $this->error(__('No Results were found')); } $this->assign('row',$row); return $this->view->fetch(); } public function bw_list(){ if($this->request->isAjax()){ $params = $this->request->post(); $ids = $params['ids']; $is_blacklist = $params['is_blacklist']; if ($is_blacklist) { $adminList = model('AdminConfig')->whereIn('admin_id', $ids)->select(); foreach ($adminList as $admin) { if ($admin->extend != 'null') { $extend = json_decode($admin->extend, true); $extend['clear'] = AdminConstants::ADMIN_EXTEND_CLEAR_NO; } else { $extend = ['clear' => AdminConstants::ADMIN_EXTEND_CLEAR_NO]; } $extend = json_encode($extend, JSON_UNESCAPED_UNICODE); model('AdminConfig')->update(['extend' => $extend], ['admin_id' => $admin['admin_id']]); } } $result = model('AdminConfig')->whereIn('admin_id', $ids)->update(['is_blacklist' => $is_blacklist]); if($result){ if($ids){ foreach($ids as $admin_id){ model('AdminConfig')->delAdminInfoAllCache($admin_id); } } $this->success('设置成功'); }else{ $this->error('设置失败'); } } } }