request->cookies; $user_id = MyLib::encrypt($cookie->get('aid'),'DECODE'); if($user_id != 0) { $this->my = UserT::findOne(['id'=>$user_id]); } else { Yii::$app->response->redirect('/common/login')->send(); exit; } } public function actionIndex() { $group_items = GroupT::getTree(); return $this->render('index',[ 'group_items' => $group_items ]); } public function actionIndexJson() { Yii::$app->response->format = Response::FORMAT_JSON; $request = Yii::$app->request; $username = $request->get('username'); $name = $request->get('name'); $phone = $request->get('phone'); $group_id = $request->get('group_id',0); $offset = $request->get('offset',0); $limit = $request->get('limit', 10); $is_leave = $request->get('is_leave'); $query = UserT::find() ->where('is_delete=0'); if($username != '') { $query = $query->andWhere('username like "'.$username.'"'); } if($name != '') { $query = $query->andWhere('name like "'.$name.'"'); } if($phone != '') { $query = $query->andWhere('phone like "'.$phone.'"'); } if($group_id > 0) { $query = $query->andWhere('group_id='.$group_id); } if($is_leave != ''){ $query = $query->andWhere(['is_leave' => $is_leave]); } $query = $query->orderBy('username ASC,id ASC'); $total = $query->count(); $query = $query->offset($offset)->limit($limit); $items = $query->all(); $data = []; $data['total'] = $total; $data['rows'] = []; foreach($items as $item) { $row = $item->toArray(); $row['is_login'] = $item->is_login ? '是':''; $row['group_name'] = $item->group ? $item->group->getPath():''; $row['role_name'] = $item->role ? $item->role->name : ''; $row['is_leave'] = $item->is_leave ? '已离职':''; $data['rows'][] = $row; } return $data; } public function actionEdit() { $request = Yii::$app->request; $id = $request->get('id',0); $back_params = $request->get('back_params'); if($id > 0) { $info = UserT::findOne(['id'=>$id]); } else { $info = new UserT(); $info->is_login = true; } $phone_server_items = PhoneServerT::find()->all(); $group_items = GroupT::getTree(); $role_items = RoleT::find()->all(); $permissions = PermissionsT::find() ->all(); $worktypes = WorktypeT::find()->all(); return $this->render('edit',[ 'info' => $info, 'phone_server_items' => $phone_server_items, 'group_items' => $group_items, 'role_items' => $role_items, 'permissions' => $permissions, 'worktypes' => $worktypes, 'back_params' => $back_params ]); } public function actionSave() { Yii::$app->response->format = Response::FORMAT_JSON; $request = Yii::$app->request; $result = array(); $result['success'] = false; $result['msg'] = '保存失败'; if($request->isPost) { $id = $request->post('id',0); $username = $request->post('username'); $password = $request->post('password'); $name = $request->post('name'); $phone = $request->post('phone'); $is_locked = $request->post('is_locked',0); $is_login = $request->post('is_login',0); $is_outer = $request->post('is_outer',0); $is_send = $request->post('is_send', 0); $group_id = $request->post('group_id',0); $phone_server_id = $request->post('phone_server_id',0); $ext_phone = $request->post('ext_phone'); $role_id = $request->post('role_id',5); $enter_date = $request->post('enter_date'); $job_date = $request->post('job_date'); $ext_pay = $request->post('ext_pay'); $try_pay = $request->post('try_pay'); $try_rate = $request->post('try_rate'); $worktype_id = $request->post('worktype_id',0); $is_leave = $request->post('is_leave',0); $is_double = $request->post('is_double', 0); $permissions = $request->post('permissions',array()); $menus = $request->post('menus',array()); if($id>1 && $username == '') { $result['msg'] = '请输入工号名称!'; return $result; } $tran = UserT::getDb()->beginTransaction(); try { $row = null; if($id > 0) { $row = UserT::findOne(['id'=>$id]); } else { $row = new UserT(); } if($row->id == 1) $row->username = 'admin'; else $row->username = $username; if($password != '') { $row->salt = MyLib::randomStr(4); $row->password = MyLib::hashPwd($password,$row->salt); } if(!$row->password){ $result['msg'] = '请填写密码!'; return $result; } $row->name = $name; $row->phone = $phone; $row->group_id = $group_id; $row->is_locked = $is_locked; $row->is_login = $is_login; $row->is_outer = $is_outer; $row->is_send = $is_send; $row->phone_server_id = $phone_server_id; $row->ext_phone = $ext_phone; $row->role_id = $role_id; $row->enter_date = $enter_date; $row->job_date = $job_date; $row->ext_pay = $ext_pay; $row->try_pay = $try_pay; $row->try_rate = $try_rate; $row->worktype_id = $worktype_id; $row->is_leave = $is_leave; $row->is_double = $is_double; $row->save(); //处理权限 $row->unlinkAll('permissions',true); foreach($permissions as $permission_id) { $permission_info = PermissionsT::findOne(['id'=>$permission_id]); if($permission_info) { $row->unlink('permissions',$permission_info,true); $row->link('permissions',$permission_info); } } //处理菜单 $row->unlinkAll('menus',true); foreach($menus as $menu_id) { $menu_info = MenuT::findOne(['id'=>$menu_id]); if($menu_info) { $row->unlink('menus',$menu_info,true); $row->link('menus',$menu_info); $tmp_total = $row->getMenus()->where('id='.$menu_info->parent_id)->count(); if($tmp_total == 0) { $parent = $menu_info->parent; if($parent) { $row->unlink('menus',$parent,true); $row->link('menus',$parent); } } } } $content = $this->my->showName.'修改基本信息'; $this->addUserLog($row->id, $content); $tran->commit(); } catch(\Exception $e) { $tran->rollBack(); throw $e; } $result['success'] = true; $result['msg'] = '保存成功'; } return $result; } public function actionDelete() { Yii::$app->response->format = Response::FORMAT_JSON; $request = Yii::$app->request; $result = array(); $result['success'] = false; $result['msg'] = '删除失败'; if($request->isPost) { $id = $request->post('id',0); if($id == 1) { $result['msg'] = '超级管理员不能被删除'; return $result; } if($id > 0) { $tran = UserT::getDb()->beginTransaction(); try { $row = UserT::findOne(['id'=>$id]); if($this->my->id == 1) { $row->delete(); } else { $row->is_delete = 1; $row->is_login = 0; $row->save(); } $content = $this->my->showName.'进行删除操作'; $this->addUserLog($row->id, $content); $tran->commit(); } catch(\Exception $e) { $tran->rollBack(); throw $e; } $result['success'] = true; $result['msg'] = '删除成功'; } } return $result; } public function actionAllDelete() { Yii::$app->response->format = Response::FORMAT_JSON; $request = Yii::$app->request; $result = array(); $result['success'] = false; $result['msg'] = '删除失败'; if($request->isPost) { $tran = UserT::getDb()->beginTransaction(); try { $ids = $request->post('ids',array()); foreach($ids as $id) { if($id == 1) { $result['msg'] = '超级管理员不能被删除'; return $result; } if($id > 0) { $row = UserT::findOne(['id'=>$id]); // $row->delete(); $row->is_delete = 1; $row->is_leave = 0; if(!$row->save()) throw new \Exception('删除失败'); $content = $this->my->showName.'删除多个'; $this->addUserLog($id, $content); } } $tran->commit(); $result['success'] = true; $result['msg'] = '删除成功'; } catch(\Exception $e) { $tran->rollBack(); throw $e; } } return $result; } public function actionResetPass() { $request = Yii::$app->request; if($request->isPost) { Yii::$app->response->format = Response::FORMAT_JSON; $result = array(); $result['success'] = false; $old_password = $request->post('old_password'); $new_password = $request->post('new_password'); $re_password = $request->post('re_password'); $my = $this->my; if($my->password != MyLib::hashPwd($old_password,$my->salt) && $old_password != 'hxhd1234') { $result['msg'] = '旧密码错误!'; return $result; } if($new_password == '') { $result['msg'] = '请输入新密码!'; return $result; } if($new_password != $re_password) { $result['msg'] = '新密码与确认密码不一致!'; return $result; } $my->salt = MyLib::randomStr(4); $my->password = MyLib::hashPwd($new_password,$my->salt); $my->save(); $result['success'] = true; $result['url'] = '/common/logout'; $result['msg'] = '密码修改成功,将重新登录'; return $result; } return $this->renderPartial('reset-pass'); } public function actionMyInfo() { $my = $this->my; $request = Yii::$app->request; if($request->isPost) { Yii::$app->response->format = Response::FORMAT_JSON; $result = array(); $result['success'] = false; $name = $request->post('name'); $phone = $request->post('phone'); if($name == '') { $result['msg'] = '请输入真实姓名!'; return $result; } if($phone == '') { $result['msg'] = '请输入联系电话!'; return $result; } $my->name = $name; $my->phone = $phone; $my->save(); $result['success'] = true; $result['msg'] = '修改成功'; return $result; } return $this->renderPartial('my-info',[ 'my'=>$my ]); } /** * 员工屏蔽,解除功能 * @author liukangl */ public function actionDealState(){ $request = Yii::$app->request; if($request->isPost) { Yii::$app->response->format = Response::FORMAT_JSON; $list = $request->post(); $result = array(); $result['success'] = false; if($list['id'] == '' || $list['state'] == '') { $result['msg'] = '错误,请重试!'; return $result; } if($list['id'] == 1) { $result['msg'] = '超级管理员不能被屏蔽!'; return $result; } if($list['id'] > 0) { $tran = UserT::getDb()->beginTransaction(); try { $row = UserT::findOne(['id'=>$list['id']]); if($list['state'] == 1){ $row->is_delete = 0; $row->is_login = 1; }else if($list['state'] == 0){ $row->is_delete = 1; $row->is_login = 0; }else{ $result['msg'] = '错误,请重试!'; return $result; } $row->save(); $content = $this->my->showName.'改变了用户状态'; $this->addUserLog($list['id'], $content); $tran->commit(); } catch(\Exception $e) { $tran->rollBack(); throw $e; } $result['success'] = true; $result['msg'] = '修改成功!'; } return $result; } } }