|
- <?php
- /**
- * Function Description:门票模板
-
- * @author 娄梦宁
- */
-
-
- namespace backend\modules\zzcs\controllers;
-
- use backend\modules\zzcs\logic\ProductManage;
- use backend\modules\zzcs\models\BaseUser;
- use backend\modules\zzcs\util\Util;
- use common\models\Msg;
- use common\models\Utils;
- use Yii;
- use yii\web\Controller;
- use backend\modules\zzcs\models\OperaProduct;
- use backend\modules\zzcs\models\OperaProductRun;
- use backend\modules\zzcs\models\BaseSupplier;
-
- class ProdController extends Controller
- {
- public $enableCsrfValidation = false;
- public $layout = '@backend/modules/zzcs/views/layouts/zzcs';
- /**
- * Function Description:产品列表
- * Function Name: actionAddProd
- *
- * @return string
- *
- * @author 娄梦宁
- */
- public function actionProdList(){
- $opera_prod=new OperaProduct();
- #region 获取参数
- $prod_name = Yii::$app->request->get('prod_name','');//门票编号/门票名称
- $is_onsale= Yii::$app->request->get('is_onsale',1);//是否上架
- $run_duty_id= Yii::$app->request->get('run_duty_id',0);
- $page_size= Yii::$app->request->get('page_size',10);//是否上架
- $current_page= Yii::$app->request->get('current_page',1);//是否上架
- $data=$opera_prod->getProdList($prod_name,$is_onsale,$run_duty_id,$page_size,$current_page);
- #获取供应商列表
- $base_supplier = new BaseSupplier();
- $supplier_list = $base_supplier->getProductSupplierList();
- $supplier_list2 = array();
- foreach( $supplier_list as $supplier_info ) {
- $supplier_list2[$supplier_info["org_id"]] = $supplier_info;
- }
- $data["supplier_list"] = $supplier_list2;
- // 获取运营商
- $base_user = new BaseUser();
- $user_id = Yii::$app->request->cookies->getValue('user_id', 0);
- $run_duty_list = $base_user->getRunDutyList($user_id);
- $data['run_duty_list'] = $run_duty_list;
- return $this->render('prod-list', $data);
- }
- /*
- * 产品上架
- */
- public function actionOnSale(){
- $opera_prod=new OperaProduct();
- $onsale_id= Yii::$app->request->post('onsale_id','');
- $id_str=rtrim($onsale_id,',');
- $id_arr=explode(',',$id_str);
- $result=$opera_prod->onSale($id_arr);
- return json_encode($result);
- }
- /*
- * 产品下架
- */
- public function actionOffSale(){
- $opera_prod=new OperaProduct();
- $offsale_id= Yii::$app->request->post('offsale_id','');
- $id_str=rtrim($offsale_id,',');
- $id_arr=explode(',',$id_str);
- $result=$opera_prod->offSale($id_arr);
- return json_encode($result);
- }
- /*
- * 新增产品
- */
- public function actionAddProd(){
- $opera_prod=new OperaProduct();
- $prod_cate_name= trim(Yii::$app->request->post('prod_cate_name',''));
- $prod_price_arr= Yii::$app->request->post('prod_price_arr','');
- $prod_price_arr=json_decode($prod_price_arr,true);
- $is_refund= Yii::$app->request->post('is_refund',1);
- $refund_limit_day= Yii::$app->request->post('refund_limit_day')==''?0:Yii::$app->request->post('refund_limit_day',0);
- $refund_limit_time= Yii::$app->request->post('refund_limit_time','23:59');
- $remark= Yii::$app->request->post('remark','');
- $prod_code= trim(Yii::$app->request->post('prod_code',''));
- $run_duty_id = trim(Yii::$app->request->post('run_duty_id',''));
- $top_org_id = trim(Yii::$app->request->post('top_org_id',0));
- // if (count($prod_price_arr) != count(array_unique($prod_price_arr))){
- // $json=[
- // 'code'=>2,
- // 'info'=>'价格类型重复,请重新添加',
- // ];
- // return json_encode($json);
- // }
- $tmp_arr=$prod_price_arr;
- foreach($prod_price_arr as $key=>$val){
- foreach($tmp_arr as $k=>$v){
- if($v['price_type_name']==$val['price_type_name'] && $key!=$k){
- $json=[
- 'code'=>2,
- 'info'=>'价格类型重复,请重新添加',
- ];
- return json_encode($json);
- }
- }
- }
- //简单参数校验
- if($prod_cate_name=='' ||$prod_code==''){
- $json=[
- 'code'=>1,
- 'info'=>'参数错误',
- ];
- return json_encode($json);
- }
- if(empty($run_duty_id)){
- $json=[
- 'code'=>1,
- 'info'=>'请选择运营负责人',
- ];
- return json_encode($json);
- }
- if(empty($prod_price_arr)){
- $json=[
- 'code'=>1,
- 'info'=>'请填写价格类型',
- ];
- return json_encode($json);
- }
- $result=$opera_prod->istProd($prod_cate_name,$prod_price_arr,$is_refund,$refund_limit_day,$refund_limit_time,$remark,$run_duty_id,$prod_code);
- if($result!=0){
- $json=[
- 'code'=>$result,
- 'info'=>'数据库错误',
- ];
- }else{
- $json=[
- 'code'=>0,
- ];
- }
- return json_encode($json);
- }
-
- /*
- * 获取门票信息
- */
- public function actionGetProdDetail(){
- $opera_prod=new OperaProduct();
- $prod_id= Yii::$app->request->post('prod_id','');
- $detail=$opera_prod->getDetailForUpt($prod_id);
- return json_encode($detail);
- }
-
- /**
- * Function Description:修改门票信息
- * Function Name: actionUptProd
- *
- *
- * @author 娄梦宁
- */
- public function actionUptProd(){
- $opera_prod=new OperaProduct();
- $prod_cate_name= trim(Yii::$app->request->post('prod_cate_name',''));
- $prod_id= Yii::$app->request->post('prod_id','');
- $prod_price_arr= Yii::$app->request->post('prod_price_arr','');
- $prod_price_arr=json_decode($prod_price_arr,true);
- $is_refund= Yii::$app->request->post('is_refund',1);
- $refund_limit_day= Yii::$app->request->post('refund_limit_day')==''?0:Yii::$app->request->post('refund_limit_day',0);
- $refund_limit_time= Yii::$app->request->post('refund_limit_time','23:59');
- $remark= Yii::$app->request->post('remark','');
- $prod_code= trim(Yii::$app->request->post('prod_code',''));
- $top_org_id= Yii::$app->request->post('top_org_id',0);
- $run_duty_id= Yii::$app->request->post('run_duty_id',0);
- //简单参数校验
- if($prod_cate_name=='' ||$prod_code==''){
- $json=[
- 'code'=>1,
- 'info'=>'参数错误',
- ];
- return json_encode($json);
- }
- //价格类型不能重复
- $tmp_arr=$prod_price_arr;
- foreach($prod_price_arr as $key=>$val){
- foreach($tmp_arr as $k=>$v){
- if($v['price_type_name']==$val['price_type_name'] && $key!=$k){
- $json=[
- 'code'=>2,
- 'info'=>'价格类型重复,请重新添加',
- ];
- return json_encode($json);
- }
- }
- }
- if(empty($run_duty_id)){
- $json=[
- 'code'=>1,
- 'info'=>'请选择运营负责人',
- ];
- return json_encode($json);
- }
- if(empty($prod_price_arr)){
- $json=[
- 'code'=>1,
- 'info'=>'请填写价格类型',
- ];
- return json_encode($json);
- }
- $result=$opera_prod->uptProd($prod_cate_name,$prod_id,$prod_price_arr,$is_refund,$refund_limit_day,$refund_limit_time,$remark,$run_duty_id,$prod_code,$top_org_id);
- if($result!=0){
- $json=[
- 'code'=>$result,
- 'info'=>'数据库错误'
- ];
- }else{
- $json=[
- 'code'=>0,
- 'info'=>'修改成功'
- ];
- }
- return json_encode($json);
- }
-
-
-
- /**
- * Function Description:得到价格日历
- * Function Name: actionGetCalendar
- *
- * @return string
- *
- * @author 温依莅
- */
- public function actionGetCalendar()
- {
- $request = Yii::$app->request;
- $prod_id = $request->get('prod_id', -1);
- $view_type = $request->get('view_type', 1);
- $to_org_id = $request->get('to_org_id',0);
- $year = $request->get('year', 0);
- $month = $request->get('month',0);
- $prod_run = new OperaProductRun();
- $final = $prod_run->getRunList($prod_id,$to_org_id, $year, $month);
- $final['view_type'] = $view_type;
- //取所有的符有售票权限的渠道商
- $logic = new ProductManage();
- $to_org_list = $logic->getAllToOrg();
- $final['to_org_list'] = $to_org_list;
- //结合opera_product_fun处理list数组
-
- //print_r($final);exit;
- return $this->render('set-prod-price', $final);
- }
-
- /**
- * Function Description:批量增加修改特定票种价格日历
- * Function Name: actionModifyRunInfo
- *
- * @return array
- *
- * @author 温依莅
- */
- public function actionModifyRunInfo()
- {
- $request = Yii::$app->request;
- $to_org_id = $request->post('to_org_id',-1);
- $prod_id = $request->post('prod_id', -1);
- $date = $request->post('prod_date', 0);
- $attribute = $request->post('prod_attribute', 0);
- $prod_run = new OperaProductRun();
- $res = $prod_run->modifyRunInfo($to_org_id,$prod_id, $date, $attribute);
- return json_encode($res);
- }
-
- /**
- * Function Description:
- * Function Name: actionChangeSale
- *
- * @return array
- *
- * @author 温依莅
- */
- public function actionChangeSale()
- {
- $request = Yii::$app->request;
- $prod_id = $request->post('prod_id', -1);
- $date = $request->post('prod_date', 0);
- $attribute = $request->post('is_onsale', -1);
- $to_org_id = $request->post('to_org_id',-1);
- $prod_run = new OperaProductRun();
- $res = $prod_run->changeSale($prod_id, $date, $attribute,$to_org_id);
- return json_encode($res);
- }
-
- /**
- * Function Description:门票录入获取基础信息
- * Function Name: actionFillOrder
- *
- * @return string
- *
- * @author 娄梦宁
- */
- public function actionFillOrder(){
- $opera_prod=new OperaProduct();
- $prod_list=$opera_prod->getAllProdMain();
- $supplier_list=$opera_prod->getSupplierList();
- $data=[
- 'prod_list'=>$prod_list,
- 'supplier_list'=>$supplier_list
- ];
- $prod_id=Yii::$app->request->get('prod_id','');
- $run_date=Yii::$app->request->get('run_date','');
- if($prod_id=='' || $run_date==''){
- $prod_arr=[];
- }else{
- $prod_arr=$opera_prod->getProdPriceByDate($prod_id,$run_date);
- }
- $data['prod_arr']=$prod_arr;
- return $this->render('fill-order',$data);
- }
-
- /**
- * Function Description:填写订单下单接口
- * Function Name: actionFillOrderSubmit
- *
- * @return mixed
- *
- * @author 娄梦宁
- */
- public function actionFillOrderSubmit(){
- $opera_prod=new OperaProduct();
- $cookies = Yii::$app->request->cookies;
- $user_id = $cookies->getValue('user_id', -1);
- //联系人信息拼接
- $customer_info='{'.Yii::$app->request->post('customer_name','').','.Yii::$app->request->post('customer_phone','').','
- .Yii::$app->request->post('customer_id_type',150).','.Yii::$app->request->post('customer_id_card','').'}';
- //订单状态配置数据
- $outside_sale_org_id= Yii::$app->request->post('outside_sale_org_id','');
- $outside_sale_order_no= Yii::$app->request->post('outside_sale_order_no','');
- //获取业务员
- $sales_man=$opera_prod->getSalesMan($outside_sale_org_id);
- $order_info_str="{".$user_id.',0,'.$outside_sale_org_id.','.$outside_sale_order_no.',0,275,1,'.$sales_man."}";
- $prod_str=Yii::$app->request->post('prod_str','');
- $run_date=Yii::$app->request->post('run_date','');
- $main_prod_id=Yii::$app->request->post('main_prod_id','');
- //调用下单接口
- $timer=time();
- $send_date=[
- 'auth_code' => Util::authCodeForCs($timer),
- 'user_key' => 'cs',
- 'user' => 'cs_key',
- 'request_time' => $timer,
- 'action' => 'submit_ticket_order',
- 'order_info_str' => $order_info_str,
- 'customer_info_str' => $customer_info,
- 'run_date'=>$run_date,
- 'prod_str'=>$prod_str,
- 'main_prod_id'=>$main_prod_id
- ];
- $return=Utils::httpRequest(CS1_DOMAIN. '/api/submit-order',$send_date);
- return $return;
- }
-
- /**
- * Function Description:门票退票接口
- * Function Name: actionCancelOrder
- *
- * @return string
- *
- * @author 娄梦宁
- */
- public function actionCancelOrder(){
- $order_id=Yii::$app->request->post('order_id');
- $cookies = Yii::$app->request->cookies;
- $user_id = $cookies->getValue('user_id', -1);
- $cancel_reason=Yii::$app->request->post('cancel_reason','系统退单');
- //调用取消单接口
- $timer=time();
- $send_date=[
- 'auth_code' => Util::authCodeForCs($timer),
- 'user_key' => 'cs',
- 'user' => 'cs_key',
- 'request_time' => $timer,
- 'action' => 'cancel_ticket_order',
- 'order_id' => $order_id,
- 'user_id' => $user_id,
- 'cancel_reason'=>$cancel_reason
- ];
- $return=Msg::httpRequest(CS1_DOMAIN.'/api/submit-order',$send_date);
- return $return;
- }
- }
|