|
|
|
<?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 $enableCsrfValidation = false;
|
|
|
|
public $layout = 'blue-main';
|
|
|
|
|
|
|
|
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()
|
|
|
|
{
|
|
|
|
return $this->render('index');
|
|
|
|
}
|
|
|
|
|
|
|
|
public function actionIndexJson()
|
|
|
|
{
|
|
|
|
Yii::$app->response->format = Response::FORMAT_JSON;
|
|
|
|
$items = CompanyT::find()
|
|
|
|
->orderBy('order_id asc')
|
|
|
|
->all();
|
|
|
|
|
|
|
|
$data = [];
|
|
|
|
$data['total'] = count($items);
|
|
|
|
$data['rows'] = [];
|
|
|
|
foreach($items as $item) {
|
|
|
|
$row = $item->toArray();
|
|
|
|
$data['rows'][] = $row;
|
|
|
|
}
|
|
|
|
|
|
|
|
return $data;
|
|
|
|
}
|
|
|
|
|
|
|
|
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;
|
|
|
|
}
|
|
|
|
}
|