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/LeaveFactoryController.php

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();
}
}