Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.
 
 
 
 
 
 

709 linhas
27 KiB

  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: luocj
  5. * Date: 2017/6/22
  6. * Time: 11:00
  7. */
  8. namespace backend\modules\zzcs\controllers;
  9. use app\models\HotelList;
  10. use backend\modules\zzcs\logic\BaseTourist;
  11. use backend\modules\zzcs\logic\ImageManage;
  12. use backend\modules\zzcs\logic\ProductManage;
  13. use backend\modules\zzcs\logic\TouristCalendar;
  14. use backend\modules\zzcs\logic\TouristCombination;
  15. use backend\modules\zzcs\models\BaseArea;
  16. use backend\modules\zzcs\models\OperaTouristAgent;
  17. use backend\modules\zzcs\models\OperaTouristCommon;
  18. use backend\modules\zzcs\models\OperaTouristCtrip;
  19. use backend\modules\zzcs\models\OperaTouristDetail;
  20. use backend\modules\zzcs\models\OperaTouristExtra;
  21. use backend\modules\zzcs\models\OperaTouristImg;
  22. use backend\modules\zzcs\models\OperaTouristRun;
  23. use common\models\Calendar;
  24. use yii\base\Model;
  25. use yii\db\Exception;
  26. use yii\db\Expression;
  27. use yii\web\Controller;
  28. use Yii;
  29. use yii\web\UploadedFile;
  30. use yii\web\NotFoundHttpException;
  31. use yii\imagine\Image;
  32. use Imagine\Image\Box;
  33. class TouristController extends Controller
  34. {
  35. public $layout = '@backend/modules/zzcs/views/layouts/zzcs';
  36. public $enableCsrfValidation = false;
  37. public $url = '/resource/zzcs/upload/tourist/';
  38. public function actions()
  39. {
  40. return [
  41. 'upload' => [
  42. 'class' => 'kucha\ueditor\UEditorAction',
  43. ],
  44. // 'config' => [
  45. // "imagePathFormat" => "/upload/image/{yyyy}{mm}{dd}/{time}{rand:6}" //上传保存路径
  46. // ],
  47. ];
  48. }
  49. protected function findModel($id)
  50. {
  51. if (($model = OperaTouristAgent::findOne(['tourist_id' => $id])) !== null) {
  52. $model_arr['ota'] = $model;
  53. $model_arr['otc'] = OperaTouristCommon::findOne(['tourist_id' => $id]);
  54. //寻找start_area_id 上级
  55. $parent_id = BaseArea::findOne(['ID' => $model_arr['otc']->start_area_id]);
  56. $model_arr['otc']->tp_start_area_id1 = $parent_id->PARENT_ID;
  57. //end
  58. $model_arr['ote'] = OperaTouristExtra::findOne(['tourist_id' => $id]);
  59. $model_arr['ott'] = OperaTouristCtrip::findOne(['sp_tourist_id'=>$id,'cancel_flag'=>0]);
  60. $model_arr['img'] = OperaTouristImg::findAll(['tourist_id' => $id,'cancel_flag' => 0]);
  61. return $model_arr;
  62. } else {
  63. throw new NotFoundHttpException('The requested page does not exist.');
  64. }
  65. }
  66. /**
  67. * @return string
  68. *
  69. * 添加产品的信息展示
  70. */
  71. public function actionIndex()
  72. {
  73. $model_ota = new OperaTouristAgent();
  74. $model_otc = new OperaTouristCommon();
  75. $model_ote = new OperaTouristExtra();
  76. $model_ott = new OperaTouristCtrip();
  77. $model_img[0] = new OperaTouristImg();
  78. $data['view'] = 'index';
  79. $data['op'] = 'add';
  80. $data['area'] = BaseTourist::getArea(Yii::$app->request->get('area_id'));
  81. return $this->render('_base', ['data' => $data, 'model_ota' => $model_ota, 'model_otc' => $model_otc, 'model_ote' => $model_ote,'model_ott' => $model_ott, 'model_img' => $model_img]);
  82. }
  83. // public function actionValidateForm()
  84. // {
  85. // Yii::$app->response->format = \yii\web\Response::FORMAT_JSON;
  86. // $model = new OperaTouristCommon();//这里要替换成自己的模型类
  87. // $model->load(Yii::$app->request->post());
  88. // return \yii\widgets\ActiveForm::validate($model);
  89. // }
  90. /*
  91. * 添加或修改产品操作
  92. */
  93. public function actionAddTouristBase()
  94. {
  95. $cookies = Yii::$app->request->cookies;
  96. $user_id = $cookies->getValue('user_id', 1);
  97. $otc = Yii::$app->request->post('OperaTouristCommon');
  98. $ott = Yii::$app->request->post('OperaTouristCtrip');
  99. $tourist_id = isset($otc['tourist_id']) ? $otc['tourist_id'] : '';
  100. if ($tourist_id != '') {
  101. $model_arr = $this->findModel($tourist_id);
  102. $model_ota = $model_arr['ota'];
  103. $model_otc = $model_arr['otc'];
  104. $model_ote = $model_arr['ote'];
  105. $model_img = $model_arr['img'];
  106. $op = 'modify';
  107. } else {
  108. $model_ota = new OperaTouristAgent();
  109. $model_otc = new OperaTouristCommon();
  110. $model_ote = new OperaTouristExtra();
  111. $op = 'add';
  112. }
  113. $result = false;
  114. //照片路径;
  115. // $path = Yii::getAlias("@webroot") . Yii::$app->params['tourist_img_url'];
  116. $path = Yii::$app->basePath . '/web' . Yii::$app->params['tourist_img_url'];
  117. if (!is_dir($path)) {
  118. mkdir($path, 0777);
  119. }
  120. // $path = Yii::$app->basePath . '/web' . Yii::$app->params['tourist_img_url'];
  121. if (
  122. $model_otc->load(Yii::$app->request->post()) &&
  123. $model_ote->load(Yii::$app->request->post())
  124. // && Model::validateMultiple([$model_otc, $model_ote])
  125. ) {
  126. $transaction = Yii::$app->db->beginTransaction();
  127. try {
  128. //赋予默认值
  129. $model_ote->create_time = $model_ota->create_time = $model_otc->create_time = date('Y-m-d H:i:s');
  130. $model_ote->update_time = $model_ota->update_time = $model_otc->update_time = date('Y-m-d H:i:s');
  131. $model_ote->create_user_id = $model_ota->create_user_id = $model_otc->create_user_id = $user_id;
  132. $model_ote->update_user_id = $model_ota->update_user_id = $model_otc->update_user_id = $user_id;
  133. //处理common表照片
  134. $common_pic_file = UploadedFile::getInstance($model_otc, 'top_image_url');
  135. if ($common_pic_file && $common_pic_file != null) {
  136. $name_before = $common_pic_name = time();
  137. $common_pic_name = $common_pic_name . "." . $common_pic_file->getExtension();
  138. $model_otc->top_image_url = Yii::$app->params['tourist_img_url'] . $common_pic_name;
  139. if ($common_pic_file->saveAs($path . $common_pic_name) !== true) {
  140. throw new \Exception();
  141. };
  142. //处理缩略图
  143. //获取照片长宽
  144. $imgstream = file_get_contents($path . $common_pic_name);
  145. $im = imagecreatefromstring($imgstream);
  146. $x = imagesx($im);//获取图片的宽
  147. $y = imagesy($im);//获取图片的高
  148. if ($x > $y) {
  149. //图片宽大于高
  150. $sx = abs(($y - $x) / 2);
  151. $sy = 0;
  152. } else {
  153. //图片高大于等于宽
  154. $sy = abs(($x - $y) / 2.5);
  155. $sx = 0;
  156. }
  157. //裁剪
  158. $img_big_url = "@backend/web/" . Yii::$app->params['tourist_img_url'] . "$common_pic_name";
  159. $image=new Image();
  160. $image1=clone $image;
  161. $image1::crop($img_big_url, $x>=300?300:$x, $y>=300?300:$y, [$sx, $sy])
  162. ->resize(new Box(300,300))
  163. ->save(Yii::getAlias("@backend/web/" . Yii::$app->params['tourist_img_url'] . "$name_before.{$common_pic_file->getExtension()}.min.{$common_pic_file->getExtension()}"), ['quality' => 100]);
  164. // $res = BaseTourist::cutPic("@backend/web" . Yii::$app->params['tourist_img_url'] . "$common_pic_name", "@backend/web" . Yii::$app->params['tourist_img_url']);
  165. $image2=clone $image;
  166. $image2::crop($img_big_url, $x>=370?370:$x, $y>=326?326:$y, [$sx, $sy])
  167. ->resize(new Box(370,326))
  168. ->save(Yii::getAlias("@backend/web/" . Yii::$app->params['tourist_img_url'] . "$name_before.{$common_pic_file->getExtension()}.370x326.{$common_pic_file->getExtension()}"), ['quality' => 100]);
  169. $model_otc->list_image_url = Yii::$app->params['tourist_img_url'] . "$name_before.{$common_pic_file->getExtension()}.min.{$common_pic_file->getExtension()}";
  170. }
  171. //common表保存
  172. if (!$model_otc->save(false)) {
  173. throw new \Exception('保存失败.' . $model_otc::getModelError($model_otc));
  174. }
  175. //如果是修改 那么修改行程天数会需要修改detail表
  176. // if ($op == 'update') {
  177. // //天数影响车票和门票 //晚数影响酒店
  178. // $update_info = ['cancel_flag' => 1];
  179. // $update_day_where = ['and', ['>=', 'day_from_start', $model_otc->day_num], ['in', 'res_type', [1, 3]]];
  180. // $update_night_where = ['and', ['>=', 'day_from_start', $model_otc->night_num], ['in', 'res_type', [2]]];
  181. // OperaTouristDetail::updateAll($update_info, $update_day_where);
  182. // OperaTouristDetail::updateAll($update_info, $update_night_where);
  183. // }
  184. //处理img表照片
  185. for ($i = 0; $i < count($_FILES['OperaTouristImg']['name']); $i++) {
  186. // $img_file = UploadedFile::getInstance($model_img[$i], 'image_url');
  187. $img_url = $_FILES['OperaTouristImg']['name'][$i]['image_url'];
  188. $img_oned = isset($_POST['OperaTouristImg'][$i]['image_url']) ? $_POST['OperaTouristImg'][$i]['image_url'] : '';
  189. if ($img_url != null && $img_oned == '') {
  190. if (isset($_POST['OperaTouristImg'][$i]['image_name']) & !empty($_POST['OperaTouristImg'][$i]['image_name'])) {
  191. $model_img[$i] = OperaTouristImg::findOne(['image_name' => $_POST['OperaTouristImg'][$i]['image_name']]);
  192. } else {
  193. $model_img[$i] = new OperaTouristImg();
  194. }
  195. $img_file = UploadedFile::getInstance($model_img[$i], "[$i]image_url");
  196. $name = date("Y") . date("m") . date("d") . date("H") . date("i") . date("s") . rand(100, 999) . " . " . $img_file->getExtension();
  197. if ($img_file->saveAs($path . $name) === true) {
  198. $model_img[$i]->image_url = Yii::$app->params['tourist_img_url'];
  199. $model_img[$i]->image_name = $name;
  200. $model_img[$i]->tourist_id = $model_otc->tourist_id;
  201. $model_img[$i]->create_time = date('Y-m-d H:i:s');
  202. $model_img[$i]->update_time = date('Y-m-d H:i:s');
  203. $model_img[$i]->create_user_id = $user_id;
  204. $model_img[$i]->update_user_id = $user_id;
  205. }
  206. //img表保存
  207. if (!$model_img[$i]->save(false)) {
  208. throw new \Exception('保存失败.' . $model_img[$i]::getModelError($model_img[$i]));
  209. }
  210. }
  211. }
  212. //已验证 故直接保存
  213. $model_ota->tourist_id = $model_ote->tourist_id = $model_otc->tourist_id;
  214. //extra表保存
  215. if (!$model_ote->save(false)) {
  216. throw new \Exception();
  217. }
  218. //agent表保存
  219. if (!$model_ota->save(false)) {
  220. throw new \Exception();
  221. }
  222. //ctrip表单独处理
  223. if($tourist_id=='add'){
  224. //如果添加,不填携程订单号,ctrip不插数据
  225. if(!empty($ott['ctrip_prod_id'])){
  226. $model_ott = new OperaTouristCtrip();
  227. $model_ott->create_time = date('Y-m-d H:i:s');
  228. $model_ott->update_time = date('Y-m-d H:i:s');
  229. $model_ott->create_user = $user_id;
  230. $model_ott->update_user = $user_id;
  231. $model_ott->sp_tourist_id = $model_otc->tourist_id;
  232. $model_ott->ctrip_prod_id = $ott['ctrip_prod_id'];
  233. if(!$model_ott->save(false)){
  234. throw new \Exception();
  235. }
  236. }
  237. }else{
  238. //如果修改,原来没有关联数据的ctrip添加数据
  239. if(empty($model_arr['ott'])){
  240. if(!empty($ott['ctrip_prod_id'])){
  241. $model_ott = new OperaTouristCtrip();
  242. $model_ott->create_time = date('Y-m-d H:i:s');
  243. $model_ott->update_time = date('Y-m-d H:i:s');
  244. $model_ott->create_user = $user_id;
  245. $model_ott->update_user = $user_id;
  246. $model_ott->sp_tourist_id = $model_otc->tourist_id;
  247. $model_ott->ctrip_prod_id = $ott['ctrip_prod_id'];
  248. if(!$model_ott->save(false)){
  249. throw new \Exception();
  250. }
  251. }
  252. }else{
  253. $model_ott = $model_arr['ott'];
  254. $model_ott->update_time = date('Y-m-d H:i:s');
  255. $model_ott->update_user = $user_id;
  256. if(empty($ott['ctrip_prod_id'])){
  257. $model_ott->cancel_flag = 1;
  258. $model_ott->ctrip_prod_id = 0;
  259. }else{
  260. $model_ott->ctrip_prod_id = $ott['ctrip_prod_id'];
  261. }
  262. if(!$model_ott->save(false)){
  263. throw new \Exception();
  264. }
  265. }
  266. }
  267. $result = true;
  268. //提交
  269. $transaction->commit();
  270. } catch (Exception $e) {
  271. $result = false;
  272. $transaction->rollBack();
  273. }
  274. }
  275. if ($result) {
  276. if ($op == 'add')
  277. $url = '/zzcs/tourist/add-combination-res';
  278. elseif ($op == 'modify')
  279. $url = '/zzcs/tourist/upt-combination-res';
  280. $this->redirect(Yii::$app->getUrlManager()->createUrl([$url, 'tourist_id' => $model_otc->tourist_id]));
  281. //$this->redirect(Yii::$app->getUrlManager()->createUrl('/zzcs/tourist/list'));
  282. Yii::$app->session->setFlash('success', '保存成功!');
  283. } else {
  284. $this->redirect(Yii::$app->getUrlManager()->createUrl('/zzcs/tourist/index'));
  285. Yii::$app->session->setFlash('error', '保存失败!请联系管理员');
  286. }
  287. }
  288. /**
  289. * @param int $tourist_id
  290. *
  291. * @return string
  292. *
  293. * 修改产品页面和数据加载
  294. */
  295. public
  296. function actionUpdate($tourist_id=0)
  297. {
  298. if($tourist_id==0){
  299. $tourist_id = Yii::$app->request->get('tourist_id','0');
  300. }
  301. $model_arr = $this->findModel($tourist_id);
  302. $data['view'] = 'index';
  303. $data['op'] = 'modify';
  304. $data['tourist_id'] = $tourist_id;
  305. $model_ota = $model_arr['ota'];
  306. $model_otc = $model_arr['otc'];
  307. $model_ote = $model_arr['ote'];
  308. if(!empty($model_arr['ott'])){
  309. $model_ott = $model_arr['ott'];
  310. }else{
  311. $model_ott = new OperaTouristCtrip();
  312. }
  313. if (count($model_arr['img']) > 0)
  314. $model_img = $model_arr['img'];
  315. else
  316. $model_img[0] = new OperaTouristImg();
  317. $data['area'] = BaseTourist::getArea(Yii::$app->request->get('area_id'));
  318. return $this->render('_base', ['data' => $data, 'model_ota' => $model_ota, 'model_otc' => $model_otc, 'model_ote' => $model_ote,'model_ott'=>$model_ott,'model_img' => $model_img]);
  319. }
  320. /**
  321. * Function Description:数据拷贝
  322. * Function Name: actionClone
  323. *
  324. * @return int
  325. * @throws Exception
  326. * @throws \Exception
  327. *
  328. * @author 冒炎
  329. */
  330. public function actionClone(){
  331. $tourist_id = Yii::$app->request->post('tourist_id');
  332. $common = new OperaTouristCommon();
  333. $agent = new OperaTouristAgent();
  334. $extra = new OperaTouristExtra();
  335. $img = new OperaTouristImg();
  336. $detail = new OperaTouristDetail();
  337. $ctrip = new OperaTouristCtrip();
  338. $cookies = Yii::$app->request->cookies;
  339. $user_id = $cookies->getValue('user_id', 1);
  340. $time = date('Y-m-d H:i:s');
  341. $transaction = Yii::$app->db->beginTransaction();
  342. try{
  343. //common表数据复制
  344. $last_tourist_id = $common->commonClone($tourist_id,$user_id,$time);
  345. if(!$last_tourist_id){
  346. throw new \Exception();
  347. }
  348. //agent表数据复制
  349. $agent_clone_res = $agent->agentClone($tourist_id,$user_id,$time,$last_tourist_id);
  350. if(!$agent_clone_res){
  351. throw new \Exception();
  352. }
  353. //extra表数据复制
  354. $extra_clone_res = $extra->extraClone($tourist_id,$user_id,$time,$last_tourist_id);
  355. if(!$extra_clone_res){
  356. throw new \Exception();
  357. }
  358. //img 表数据复制
  359. $img_clone_res = $img->imgClone($tourist_id,$user_id,$time,$last_tourist_id);
  360. if(!$img_clone_res){
  361. throw new \Exception();
  362. }
  363. //detail 表数据复制
  364. $detal_clone_res = $detail->detailClone($tourist_id,$user_id,$time,$last_tourist_id);
  365. if(!$detal_clone_res){
  366. throw new \Exception();
  367. }
  368. //ctrip表数据复制
  369. // $ctrip_clone_res = $ctrip->ctripClone($tourist_id,$user_id,$time,$last_tourist_id);
  370. // if(!$ctrip_clone_res){
  371. // throw new \Exception();
  372. // }
  373. $transaction->commit();
  374. return 0;
  375. }catch (Exception $e){
  376. $transaction->rollBack();
  377. return 1;
  378. }
  379. }
  380. /**
  381. * @return string
  382. * 组合产品列表
  383. */
  384. public
  385. function actionList()
  386. {
  387. $model = new OperaTouristAgent();
  388. $filter = ['product_name' => '', 'tourist_code' => '', 'start_area_name' => '', 'is_onsale' => ''];
  389. if (Yii::$app->request->isAjax) {
  390. $filter = Yii::$app->request->get();
  391. }
  392. $dataProvider = $model->getListInfo($filter);
  393. $data['view'] = 'list';
  394. return $this->render('_base', ['data' => $data, 'dataProvider' => $dataProvider]);
  395. }
  396. /**
  397. * 行程说明入口
  398. */
  399. public
  400. function actionUeditor($tourist_id)
  401. {
  402. $model = OperaTouristCommon::findOne(['tourist_id' => $tourist_id]);
  403. $data['view'] = 'ueditor';
  404. $data['tourist_id'] = $tourist_id;
  405. return $this->render('_base', ['data' => $data, 'model' => $model]);
  406. }
  407. public
  408. function actionSaveUeditor()
  409. {
  410. $data = Yii::$app->request->post('OperaTouristCommon');
  411. $update_info = ['tourist_description' => $data['tourist_description']];
  412. $update_where = ['tourist_id' => $data['tourist_id']];
  413. $res = OperaTouristCommon::updateAll($update_info, $update_where);
  414. if (!$res) {
  415. $this->redirect(Yii::$app->getUrlManager()->createUrl('/zzcs/tourist/list'));
  416. Yii::$app->session->setFlash('error', '保存失败!请联系管理员');
  417. } else {
  418. $this->redirect(Yii::$app->getUrlManager()->createUrl('/zzcs/tourist/list'));
  419. Yii::$app->session->setFlash('success', '保存成功!');
  420. }
  421. }
  422. /**
  423. * 修改产品状态
  424. */
  425. public
  426. function actionModify()
  427. {
  428. $post = Yii::$app->request->post();
  429. if (isset($post['id']) && isset($post['op'])) {
  430. $model = new OperaTouristAgent();
  431. $data = $model->isOnSaleControl($post['id'], $post['op']);
  432. } else {
  433. $data['code'] = 2;
  434. }
  435. echo json_encode($data);
  436. }
  437. /**
  438. * Function Description:批量增加修改特定票种价格日历
  439. * Function Name: actionModifyRunInfo
  440. *
  441. * @return array
  442. *
  443. * @author 温依莅
  444. */
  445. public
  446. function actionModifyRunInfo()
  447. {
  448. $request = Yii::$app->request;
  449. $prod_id = $request->post('prod_id', -1);
  450. $date = $request->post('prod_date', 0);
  451. $attribute = $request->post('prod_attribute', 0);
  452. $tourist_obj = new TouristCalendar();
  453. $res = $tourist_obj->modifyRunInfo($prod_id, $date, $attribute);
  454. return json_encode($res);
  455. }
  456. /**
  457. * Function Description:资源组合信息页
  458. * Function Name: actionAddCombinationRes
  459. *
  460. * @return array|string
  461. *
  462. * @author 娄梦宁
  463. */
  464. public
  465. function actionAddCombinationRes()
  466. {
  467. $tourist_id = Yii::$app->request->get('tourist_id', '');
  468. if ($tourist_id == '') {
  469. return [
  470. 'code' => 1,
  471. 'info' => '参数错误'
  472. ];
  473. }
  474. $logic = new TouristCombination();
  475. $data['data'] = $logic->AddCombination($tourist_id);
  476. $data['view'] = 'add-combination';
  477. $data['op'] = 'add';
  478. $data['tourist_id'] = $tourist_id;
  479. return $this->render('_base', ['data' => $data]);
  480. }
  481. /**
  482. * Function Description:资源组合修改页数据获取
  483. * Function Name: actionUptCombinationRes
  484. *
  485. * @return array|string
  486. *
  487. * @author 娄梦宁
  488. */
  489. public
  490. function actionUptCombinationRes()
  491. {
  492. $tourist_id = Yii::$app->request->get('tourist_id', '');
  493. if ($tourist_id == '') {
  494. return [
  495. 'code' => 1,
  496. 'info' => '参数错误'
  497. ];
  498. }
  499. $logic = new TouristCombination();
  500. $data['data'] = $logic->UptCombination($tourist_id);
  501. $data['view'] = 'upt-combination';
  502. $data['op'] = 'modify';
  503. $data['tourist_id'] = $tourist_id;
  504. return $this->render('_base', ['data' => $data]);
  505. }
  506. /**
  507. * Function Description:通过线路id取上下车站点
  508. * Function Name: ActionGetLineDetail
  509. *
  510. * @return mixed
  511. *
  512. * @author 娄梦宁
  513. */
  514. public
  515. function actionGetLineDetail()
  516. {
  517. $line_id = Yii::$app->request->post('line_id', '');
  518. $logic = new TouristCombination();
  519. $result = $logic->GetLineDetail($line_id);
  520. return json_encode($result);
  521. }
  522. /**
  523. * Function Description:获取酒店房型信息
  524. * Function Name: actionGetRoomType
  525. *
  526. * @return string
  527. *
  528. * @author 娄梦宁
  529. */
  530. public
  531. function actionGetRoomType()
  532. {
  533. $hotel_id = Yii::$app->request->post('hotel_id', '');
  534. $logic = new TouristCombination();
  535. $result = $logic->GetRoomType($hotel_id);
  536. return json_encode($result);
  537. }
  538. /**
  539. * Function Description:获取子门票信息
  540. * Function Name: actionGetSonTickets
  541. *
  542. * @return string
  543. *
  544. * @author 娄梦宁
  545. */
  546. public
  547. function actionGetSonTickets()
  548. {
  549. $ticket_id = Yii::$app->request->post('ticket_id', '');
  550. $logic = new TouristCombination();
  551. $result = $logic->GetSonTickets($ticket_id);
  552. return json_encode($result);
  553. }
  554. /**
  555. * Function Description:添加资源组合信息提交
  556. * Function Name: actionSubmitAddRes
  557. *
  558. * @return string
  559. *
  560. * @author 娄梦宁
  561. */
  562. public
  563. function actionSubmitAddRes()
  564. {
  565. $bus_info = Yii::$app->request->post('bus_info', '');
  566. $hotel_info = Yii::$app->request->post('hotel_info', '');
  567. $ticket_info = Yii::$app->request->post('ticket_info', '');
  568. $tourist_id = Yii::$app->request->post('tourist_id', '');
  569. $tourist_day = Yii::$app->request->post('tourist_day', '');
  570. $tourist_night = Yii::$app->request->post('tourist_night', -1);
  571. $logic = new TouristCombination();
  572. $result = $logic->SubmitAddRes($bus_info, $hotel_info, $ticket_info, $tourist_id, $tourist_day, $tourist_night);
  573. return json_encode($result);
  574. }
  575. /**
  576. * Function Description:资源组合修改信息提交
  577. * Function Name: actionSubmitAddRes
  578. *
  579. * @return string
  580. *
  581. * @author 娄梦宁
  582. */
  583. public
  584. function actionSubmitUptRes()
  585. {
  586. $bus_info = Yii::$app->request->post('bus_info', '');
  587. $hotel_info = Yii::$app->request->post('hotel_info', '');
  588. $ticket_info = Yii::$app->request->post('ticket_info', '');
  589. $tourist_id = Yii::$app->request->post('tourist_id', '');
  590. $tourist_day = Yii::$app->request->post('tourist_day', '');
  591. $tourist_night = Yii::$app->request->post('tourist_night', -1);
  592. $logic = new TouristCombination();
  593. $result = $logic->SubmitUptRes($bus_info, $hotel_info, $ticket_info, $tourist_id, $tourist_day, $tourist_night);
  594. return json_encode($result);
  595. }
  596. /**
  597. * 获取价格日历
  598. */
  599. public
  600. function actionCalendarInfo()
  601. {
  602. $request = Yii::$app->request;
  603. $tourist_id = $request->get('tourist_id', -1);
  604. $org_id = $request->get('org_id', 0);
  605. $year = $request->get('year', 0);
  606. $month = $request->get('month', 0);
  607. $model = new TouristCalendar();
  608. $data = $model->getCalInfo($year, $month, $org_id, $tourist_id);
  609. //取所有的符有售票权限的渠道商
  610. $logic = new ProductManage();
  611. $to_org_list = $logic->getAllToOrg();
  612. $data['to_org_list'] = $to_org_list;
  613. $data['view_type'] = 2;
  614. return $this->render('set-tourist-price', $data);
  615. }
  616. /**
  617. * @return string
  618. * 操作上下架
  619. */
  620. public
  621. function actionRunUpDown()
  622. {
  623. $tourist_id = Yii::$app->request->post('tourist_id');
  624. $to_org_id = Yii::$app->request->post('to_org_id');
  625. $run_dates = Yii::$app->request->post('run_dates');
  626. $op = Yii::$app->request->post('op');
  627. $model = new OperaTouristRun();
  628. $data = $model->doUpDown($tourist_id, $to_org_id, $run_dates, $op);
  629. return json_encode($data);
  630. }
  631. /**
  632. * Function Description:单个或批量修改价格日历价格
  633. * Function Name: actionRunInfo
  634. *
  635. * @return string
  636. * @throws \Exception
  637. *
  638. * @author luocj
  639. */
  640. public
  641. function actionRunInfo()
  642. {
  643. $tourist_id = Yii::$app->request->post('tourist_id');
  644. $to_org_id = Yii::$app->request->post('to_org_id');
  645. $run_dates = Yii::$app->request->post('run_dates');
  646. $diff_para_adult = Yii::$app->request->post('diff_para_adult');//成人单人加价
  647. $sale_type_adult = Yii::$app->request->post('sale_type_adult');//成人单人加价方式
  648. $diff_para_child = Yii::$app->request->post('diff_para_child');//儿童单人加价
  649. $sale_type_child = Yii::$app->request->post('sale_type_child');//儿童单人加价方式
  650. $model = new OperaTouristRun();
  651. $data = $model->updateInfo($tourist_id, $to_org_id, $run_dates, $diff_para_adult, $sale_type_adult,$diff_para_child,$sale_type_child);
  652. return json_encode($data);
  653. }
  654. /**
  655. * 删除自由行产品的图片
  656. * @return string
  657. * 田玲菲
  658. */
  659. public function actionDeleteImg(){
  660. $id = Yii::$app->request->post('id',0);
  661. $imageManage = new ImageManage();
  662. $result = $imageManage->deleteTouristImg($id);
  663. return json_encode($result);
  664. }
  665. }