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.
106 lines
3.9 KiB
106 lines
3.9 KiB
5 years ago
|
<?php
|
||
|
/**
|
||
|
* Created by PhpStorm.
|
||
|
* User: liuyingjie
|
||
|
* Date: 2017/11/1
|
||
|
* Time: 9:25
|
||
|
*/
|
||
|
|
||
|
namespace frontend\controllers;
|
||
|
use common\models\DisplacementT;
|
||
|
use common\models\FixCarPart;
|
||
|
use common\models\FixCarPriceB;
|
||
|
use common\models\FixCarT;
|
||
|
use common\models\Message;
|
||
|
use common\models\MiddleFixCarT;
|
||
|
use Yii;
|
||
|
use yii\db\Exception;
|
||
|
use yii\web\Response;
|
||
|
|
||
|
class LeaveFactoryController extends FixCarBaseController
|
||
|
{
|
||
|
public function actionIndex(){
|
||
|
return $this->render('index',$this->getList());
|
||
|
}
|
||
|
public function actionInfo(){
|
||
|
$request = Yii::$app->request;
|
||
|
$id = $request->get('id', 0);
|
||
|
$type = $request->get('type', 0);
|
||
|
$gift_enable = $request->get('gift_enable', 0);
|
||
|
|
||
|
$info = FixCarT::findOne(['id' => $id]);
|
||
|
|
||
|
return $this->render('info', [
|
||
|
'info' => $info,
|
||
|
'direction_items' => $this->getDirection(),
|
||
|
'range_items' => $this->getRange(),
|
||
|
'log_items' => $this->getCarLog($info->car_id),
|
||
|
'driver_items' => $this->getDrivers(),
|
||
|
'brand_items' => $this->getBrands(),
|
||
|
'series_items' => $this->getSeries($info->brand_id),
|
||
|
'displacement_items' => $this->getDisplacement($info->series_id),
|
||
|
'type' => $type,
|
||
|
'years' => $this->getYears($info->displacement_id),
|
||
|
'gift_enable' => $gift_enable,
|
||
|
]);
|
||
|
}
|
||
|
public function actionUpdate(){
|
||
|
Yii::$app->response->format = Response::FORMAT_JSON;
|
||
|
|
||
|
$request = Yii::$app->request;
|
||
|
$follow_car_items = $request->post('follow_car_items');
|
||
|
$status = $request->post('status');
|
||
|
$car_id = $request->post('id');
|
||
|
|
||
|
if($car_id < 1) return Message::getMessage();
|
||
|
|
||
|
$tran = FixCarT::getDb()->beginTransaction();
|
||
|
try{
|
||
|
$model = FixCarT::findOne($car_id);
|
||
|
$model->getModelScenario();
|
||
|
$model->attributes = $request->post();
|
||
|
$model->out_factory_date = date('Y-m-d H:i:s');
|
||
|
//如果有随车物品,则拼接为字符串
|
||
|
if (!empty($follow_car_items)) $model->follow_car_items = implode($follow_car_items, ',');
|
||
|
if(!$model->validate()) throw new Exception(array_values($model->firstErrors)[0]);
|
||
|
if(!$model->save()) throw new Exception('操作失败!');
|
||
|
|
||
|
$middle_models = MiddleFixCarT::find()->where('fix_id='.$car_id)->all();
|
||
|
foreach($middle_models as $middle_model){
|
||
|
$middle_model->status = $status;
|
||
|
if(!$middle_model->save()) throw new Exception('操作失败!');
|
||
|
}
|
||
|
|
||
|
$tran->commit();
|
||
|
$success = true;
|
||
|
$message = '操作成功';
|
||
|
}catch(Exception $e){
|
||
|
$tran->rollBack();
|
||
|
$success = false;
|
||
|
$message = $e->getMessage();
|
||
|
}finally{
|
||
|
unset($request,$follow_car_items,$status,$car_id,$tran,$model,$middle_models);
|
||
|
}
|
||
|
return Message::getMessage($success,$message);
|
||
|
}
|
||
|
public function actionTest(){
|
||
|
$displacements = DisplacementT::find()->all();
|
||
|
foreach($displacements as $displacement){
|
||
|
$car_price_b = FixCarPriceB::find()->where('displacement_id='.$displacement->id)->all();
|
||
|
if(!$car_price_b) continue;
|
||
|
foreach($car_price_b as $p){
|
||
|
if(FixCarPart::findOne([
|
||
|
'series_id'=>$displacement->series_id,
|
||
|
'displacement_id' => $displacement->id,
|
||
|
'year_id'=>$p->id,
|
||
|
])) continue;
|
||
|
$data[] = [
|
||
|
'series_id'=>$displacement->series_id,
|
||
|
'displacement_id' => $displacement->id,
|
||
|
'year_id'=>$p->id,
|
||
|
];
|
||
|
}
|
||
|
}
|
||
|
Yii::$app->getDb()->createCommand()->batchInsert(FixCarPart::tableName(),['series_id','displacement_id','year_id'],$data)->execute();
|
||
|
}
|
||
|
}
|