model = model('Admin'); $this->vipAdminBind = model('VipAdminBind'); // $this->childrenGroupIds = $this->auth->getChildrenGroupIds($this->auth->isSuperAdmin() ? true : false); // // $groupList = collection(AuthGroup::where('id', 'in', $this->childrenGroupIds)->select())->toArray(); // Tree::instance()->init($groupList); // $result = []; // if ($this->auth->isSuperAdmin()) // { // $result = Tree::instance()->getTreeList(Tree::instance()->getTreeArray(0)); // } // else // { // $groups = $this->auth->getGroups(); // foreach ($groups as $m => $n) // { // $result = array_merge($result, Tree::instance()->getTreeList(Tree::instance()->getTreeArray($n['pid']))); // } // } // $groupName = []; // foreach ($result as $k => $v) // { // $groupName[$v['id']] = $v['name']; // } // $this->view->assign('groupdata', $groupName); $this->assignconfig("admin", ['id' => $this->auth->id]); } /** * 查看 */ public function index() { if ($this->request->isAjax()) { $operatorids = $this->model->getOperatorIdsByVipId($this->auth->id); list($where, $sort, $order, $offset, $limit) = $this->buildparams(); $total = $this->model ->where($where) ->where('id', 'in', $operatorids) ->order($sort, $order) ->count(); $list = $this->model ->where($where) ->join("admin_extend ae","admin.id = ae.admin_id") ->where('id', 'in', $operatorids) ->field("id,username,nickname,mobile,status,ae.remark remark") ->order($sort, $order) ->limit($offset, $limit) ->select(); $result = array("total" => $total, "rows" => $list); return json($result); } return $this->view->fetch(); } /** * 添加 */ public function add() { if ($this->request->isPost()) { $params = $this->request->post("row/a"); if ($params) { if(! AdminService::instance()->checkPassword($params['password'])){ $this->error(AdminService::instance()->getPasswordRule()); } $params['salt'] = Random::alnum(); $params['password'] = md5(md5($params['password']) . $params['salt']); $params['avatar'] = asset('/img/avatar.png'); //设置新管理员默认头像。 $result = $this->model->validate('Admin.add')->save($params); if ($result === false) { $this->error($this->model->getError()); } $dataset = ['uid' => $this->model->id, 'group_id' => 8]; model('AuthGroupAccess')->save($dataset); $extends = $this->request->post("extends/a"); $extends['admin_id'] = $this->model->id; $extends['create_by'] = $this->auth->id; $extends['benefit'] = 0.00; $extends['card_holder'] = ''; $extends['card_num'] = ''; model("AdminExtend")->save($extends); $this->success(); } $this->error(); } return $this->view->fetch(); } /** * 编辑 */ public function edit($ids = NULL) { $row = $this->model->get(['id' => $ids]); if (!$row) $this->error(__('No Results were found')); if ($this->request->isPost()) { $params = $this->request->post("row/a"); if ($params) { if ($params['password']) { if(! AdminService::instance()->checkPassword($params['password'])){ $this->error(AdminService::instance()->getPasswordRule()); } $params['salt'] = Random::alnum(); $params['password'] = md5(md5($params['password']) . $params['salt']); AdminService::instance()->updateAdminSessionStatus($ids); } else { unset($params['password'], $params['salt']); } //这里需要针对username和email做唯一验证 $adminValidate = \think\Loader::validate('Admin'); $adminValidate->rule([ 'username' => 'require|max:50|unique:admin,username,' . $row->id, 'email' => 'email|unique:admin,email,' . $row->id ]); $result = $row->validate('Admin.edit')->save($params); if ($result === false) { $this->error($row->getError()); } //删除当前运营与渠道商的关系 if ($params['status'] == 'hidden') { $this->vipAdminBind->where('admin_id_master', $ids)->delete(); } $extends = $this->request->post("extends/a"); $extends['admin_id'] = $row['id']; model("AdminExtend")->update($extends); $this->success(); } $this->error(); } $row['remark'] = model("AdminExtend")->where("admin_id",$row['id'])->value('remark'); $this->view->assign("row", $row); return $this->view->fetch(); } /** * 编辑 */ /** * 编辑 */ public function editSelf() { // // $sql = ''; // for($i=256;$i<=511;$i++){ // $sql.="USE test_cps_user_{$i};DELETE FROM USER WHERE id>0;DELETE FROM OPENID WHERE id>0;DELETE FROM RECHARGE WHERE id>0;"; // } // echo $sql;die; $ids = $this->auth->id; $group = model('AuthGroupAccess')->where('uid',$ids)->find(); $this->assign('groupId',$group->group_id); $row = $this->model->get(['id' => $ids]); if (!$row) $this->error(__('No Results were found')); if ($this->request->isPost()) { $params = $this->request->post("row/a"); if ($params) { if ($params['password']) { $params['salt'] = Random::alnum(); $params['password'] = md5(md5($params['password']) . $params['salt']); } else { unset($params['password'], $params['salt']); } //这里需要针对username和email做唯一验证 $adminValidate = \think\Loader::validate('Admin'); $adminValidate->rule([ 'username' => 'require|max:50|unique:admin,username,' . $row->id, 'email' => 'require|email|unique:admin,email,' . $row->id ]); $extends = $this->request->post("extend/a"); //验证身份证是否合法 if(!empty($extends['idcard_no'])){ $flag = validateIDCard($extends['idcard_no']); if(!$flag){ $this->error('身份证号不合法,请重新填写'); }else{ model('AdminExtend')->save(['idcard_no'=>$extends['idcard_no']],['admin_id'=>$ids]); $redis = Redis::instance(); $key = 'AE:'.$ids; $redis->del($key); } } $result = $row->validate('Admin.edit')->save($params); if ($result === false) { $this->error($row->getError()); } $this->success(); } $this->error(); } $extends = model('Admin_extend')->where('admin_id',$row['id'])->find(); $this->view->assign("payMethodList", model('AdminExtend')->getPayMethodList()); $this->view->assign('extends',$extends); $this->view->assign("row", $row); return $this->view->fetch(); } /** * 删除 */ public function del($ids = "") { if ($ids) { // 避免越权删除管理员 $childrenGroupIds = $this->childrenGroupIds; $adminList = $this->model->where('id', 'in', $ids)->where('id', 'in', function($query) use($childrenGroupIds) { $query->name('auth_group_access')->where('group_id', 'in', $childrenGroupIds)->field('uid'); })->select(); if ($adminList) { $deleteIds = []; foreach ($adminList as $k => $v) { $deleteIds[] = $v->id; } $deleteIds = array_diff($deleteIds, [$this->auth->id]); if ($deleteIds) { $this->model->where('id','in',$deleteIds)->update(['status'=>'hidden']); // $this->model->destroy($deleteIds); // model('AuthGroupAccess')->where('uid', 'in', $deleteIds)->delete(); $this->success(); } } } $this->error(); } /** * 批量更新 * @internal */ public function multi($ids = "") { // 管理员禁止批量操作 $this->error(); } }