You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
simple-yewu/frontend/controllers/CompanyController.php

266 lines
7.2 KiB

5 years ago
<?php
namespace frontend\controllers;
use common\libs\MyLib;
use common\models\CompanyT;
use common\models\DepartmentT;
use common\models\UserT;
use Yii;
use yii\web\Response;
class CompanyController extends \yii\web\Controller
{
public $my = null;
public function init()
{
parent::init();
$cookie = Yii::$app->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()
{
$request = Yii::$app->request;
$name = $request->get('name');
$query = CompanyT::find();
if($name != '') {
$query = $query->andWhere(['like','name',$name]);
}
$items = $query->all();
return $this->render('index',[
'items' => $items,
'name' => $name
]);
}
public function actionEdit()
{
$request = Yii::$app->request;
$id = $request->get('id',0);
if($id > 0) {
$info = CompanyT::findOne(['id'=>$id]);
} else {
$info = new CompanyT();
}
return $this->render('edit',[
'info' => $info
]);
}
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);
$name = $request->post('name');
if($name == '') {
$result['msg'] = '请输入名称!';
return $result;
}
$row = null;
if($id > 0) {
$row = CompanyT::findOne(['id'=>$id]);
} else {
$row = new CompanyT();
}
$row->name = $name;
$row->save();
$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 > 0) {
$row = CompanyT::findOne(['id'=>$id]);
$row->delete();
$result['success'] = true;
$result['msg'] = '删除成功';
}
}
return $result;
}
public function actionDpIndex()
{
$request = Yii::$app->request;
$company_id = $request->get('company_id',0);
$company_info = null;
if($company_id > 0) {
$company_info = CompanyT::findOne(['id'=>$company_id]);
}
$items = DepartmentT::getTree($company_id);
return $this->render('dp-index',[
'items' => $items,
'company_id' => $company_id,
'company_info' => $company_info
]);
}
public function actionDpEdit()
{
$request = Yii::$app->request;
$id = $request->get('id',0);
$company_id = $request->get('company_id',0);
$company_info = null;
if($company_id > 0) {
$company_info = CompanyT::findOne(['id'=>$company_id]);
}
if($id > 0) {
$info = DepartmentT::findOne(['id'=>$id,'company_id'=>$company_id]);
} else {
$info = new DepartmentT();
$info->company_id = $company_id;
}
$group_items = DepartmentT::getTree($company_id);
return $this->render('dp-edit',[
'info' => $info,
'group_items' => $group_items,
'company_info' => $company_info
]);
}
public function actionDpSave()
{
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);
$company_id = $request->post('company_id',0);
$name = $request->post('name');
$parent_id = intval($request->post('parent_id',0));
if($name == '') {
$result['msg'] = '请输入名称!';
return $result;
}
if($id > 0 && $parent_id == $id) {
$result['msg'] = '上级不能选择自己!';
return $result;
}
$tran = DepartmentT::getDb()->beginTransaction();
try {
$row = null;
if($id > 0) {
$row = DepartmentT::findOne(['id'=>$id]);
if($row->hasChild($parent_id)) {
$result['msg'] = '上级不能选择自己下级岗位!';
return $result;
}
} else {
$row = new DepartmentT();
}
$row->name = $name;
$row->parent_id = $parent_id;
$row->company_id = $company_id;
$row->save();
$result['success'] = true;
$result['msg'] = '保存成功';
$tran->commit();
} catch(\Exception $e) {
$tran->rollBack();
throw $e;
}
}
return $result;
}
public function actionDpDelete()
{
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 > 0) {
$tran = DepartmentT::getDb()->beginTransaction();
try {
$row = DepartmentT::findOne(['id'=>$id]);
$children = $row->departments;
if(count($children) > 0) {
$result['msg'] = '请先删除子项';
return $result;
}
$row->delete();
$tran->commit();
} catch(\Exception $e) {
$tran->rollBack();
throw $e;
}
$result['success'] = true;
$result['msg'] = '删除成功';
}
}
return $result;
}
public function actionDepartments()
{
Yii::$app->response->format = Response::FORMAT_JSON;
$request = Yii::$app->request;
$result = array();
$company_id = $request->get('company_id',0);
$items = DepartmentT::getTree($company_id);
$html = '<option value="0">---请选择---</option>';
foreach($items as $item) {
$html .= '<option value='.$item['id'].'>'.$item['name'].'</option>';
}
$result['success'] = true;
$result['html'] = $html;
return $result;
}
}