123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748 |
- <?php
- namespace app\index\controller;
- use app\common\model\LogisticsModel;
- use app\common\model\OrderListModel;
- use app\common\model\OrderModel;
- use app\common\model\OrderSalesModel;
- use app\common\model\PayListModel;
- use app\common\model\ProductConfigModel;
- use app\common\model\ProductModel;
- use app\common\model\UserAddressModel;
- use app\common\model\UserModel;
- use app\common\service\helperService;
- use app\common\model\BuyCarModel;
- use app\common\service\ServiceBaseInfo;
- use think\Config;
- use think\Session;
- use think\Validate;
- class OrderInterfaces extends Base
- {
- /**
- * 获得用户订单
- */
- public function getOrder(){
- $params = $this->request->param();
- $action = isset($params['data'])?$params['data']:'1';
- Session::set('order_status',$action);
- // echo Session::get('order_status');exit;
- $orderModel = new OrderModel();
- $user_no = Session::get('user_no');
- $orderInfo = $orderModel->getOrderAndSales(['user_no'=>$user_no,'order_status'=>$action,'is_show'=>2]);
- // echo 33;exit;
- // $orderInfo['click_sales'] = 2;
- if($action == 1){
- $orderInfo = $orderModel->getOrderAndSales(['user_no'=>$user_no,'order_status'=>['neq','11'],'is_show'=>2]);
- // echo 22;exit;
- }
- if($action == 40){
- $orderInfo = $orderModel->getOrderAndSales(['user_no'=>$user_no,'is_sales'=>1,'is_show'=>2]);
- // $orderInfo['click_sales'] = 1;
- }
- if($action == 30){
- $orderInfo = $orderModel->getOrderAndSales(['user_no'=>$user_no,'order_status'=>['in',[30,31]],'is_show'=>2]);
- }
- if(!empty($orderInfo)){
- $orderListModel = new OrderListModel();
- foreach ($orderInfo as &$order){
- $orderListInfo = $orderListModel->getOrderListAndProduct(['order_no'=>$order['order_no'],'orderList.status'=>1]);
- if(!empty($orderListInfo)){
- foreach ($orderListInfo as &$orderPro){
- $orderPro['images'] = json_decode($orderPro['images'],true);
- if(empty($orderPro['product_type_name'])){
- $orderPro['product_type_name'] = '11';
- }
- }
- }
- // print_r($orderListInfo);exit;
- $order['orderList'] = $orderListInfo;
- if($action == 40){
- $order['click_sales'] = 1;
- }else{
- $order['click_sales'] = 2;
- }
- }
- }
- // print_r($orderInfo);exit;
- $data = ['code'=>'200','msg'=>'操作成功','data'=>$orderInfo];
- helperService::returnJson($data);
- }
- public function checkOrderS(){
- $orderNo = Session::get('orderNo');
- $orderModel = new OrderModel();
- $list = $orderModel->getOne(['order_status'=>20,'order_no'=>$orderNo]);
- if($list){
- helperService::returnJson(['code'=>400,'msg'=>'订单已完成','data'=>[]]);
- }
- helperService::returnJson(['code'=>200,'msg'=>'','data'=>[]]);
- }
- /**
- * 删除订单
- */
- public function deleteOrder(){
- $params = $this->request->param();
- $rule = [
- ['orderNo','require|number'],
- ];
- $validate = new Validate($rule);
- if(!$validate->check($params)){
- $data = ['code'=>'400','msg'=>$validate->getError(),'data'=>[]];
- helperService::returnJson($data);
- }
- $orderModel = new OrderModel();
- $return = $orderModel->saveData(['order_status'=>11],['order_no'=>$params['orderNo']]);//前台取消
- $orderListModel = new OrderListModel();
- $productModel = new ProductModel();
- $orderListInfo = $orderListModel->getMulti(['order_no'=>$params['orderNo'],'status'=>1]);
- if($orderListInfo){
- foreach($orderListInfo as $info){
- $productInfo = $productModel->getOne(['product_no'=>$info['product_no']]);
- $productModel->saveData(['sales_volume'=>$productInfo['sales_volume']-$info['number']],['product_no'=>$info['product_no']]);
- $productModel->saveData(['number'=>$productInfo['number']+$info['number']],['product_no'=>$info['product_no']]);
- }
- }
- if($return === false){
- $data = ['code'=>'400','msg'=>'取消失败','data'=>[]];
- helperService::returnJson($data);
- }
- $data = ['code'=>'200','msg'=>'取消成功','data'=>[]
- ];
- helperService::returnJson($data);
- }
- /*
- * 确认收货
- */
- public function ok(){
- $params = $this->request->param();
- $rule = [
- ['orderNo','require|number'],
- ];
- $validate = new Validate($rule);
- if(!$validate->check($params)){
- $data = ['code'=>'400','msg'=>$validate->getError(),'data'=>[]];
- helperService::returnJson($data);
- }
- $orderModel = new OrderModel();
- $return = $orderModel->saveData(['order_status'=>31,'sign_in_time'=>time()],['order_no'=>$params['orderNo']]);//已收货
- if($return === false){
- $data = ['code'=>'400','msg'=>'操作失败','data'=>[]];
- helperService::returnJson($data);
- }
- $data = ['code'=>'200','msg'=>'操作成功','data'=>[]
- ];
- helperService::returnJson($data);
- }
- /*
- * 隐藏订单
- */
- public function hide(){
- $params = $this->request->param();
- $rule = [
- ['orderNo','require|number'],
- ];
- $validate = new Validate($rule);
- if(!$validate->check($params)){
- $data = ['code'=>'400','msg'=>$validate->getError(),'data'=>[]];
- helperService::returnJson($data);
- }
- $orderModel = new OrderModel();
- $return = $orderModel->saveData(['is_show'=>1],['order_no'=>$params['orderNo']]);//已隐藏
- if($return === false){
- $data = ['code'=>'400','msg'=>'删除失败','data'=>[]];
- helperService::returnJson($data);
- }
- $data = ['code'=>'200','msg'=>'删除成功','data'=>[]
- ];
- helperService::returnJson($data);
- }
- /*
- * 隐藏订单
- */
- public function hidess(){
- $params = $this->request->param();
- $rule = [
- ['orderNo','require|number'],
- ];
- $validate = new Validate($rule);
- if(!$validate->check($params)){
- $data = ['code'=>'400','msg'=>$validate->getError(),'data'=>[]];
- helperService::returnJson($data);
- }
- $orderModel = new OrderSalesModel();
- $return = $orderModel->saveData(['is_shows'=>2],['order_no'=>$params['orderNo']]);//已取消
- if($return === false){
- $data = ['code'=>'400','msg'=>'操作失败','data'=>[]];
- helperService::returnJson($data);
- }
- $data = ['code'=>'200','msg'=>'操作成功','data'=>[]
- ];
- helperService::returnJson($data);
- }
- /**
- * 检查手机号
- */
- public function checkMobile(){
- $params = $this->request->param();
- $rule = [
- ['mobile|手机号','require|number'],
- ];
- $validate = new Validate($rule);
- if(!$validate->check($params)){
- $data = ['code'=>'400','msg'=>$validate->getError(),'data'=>[]];
- helperService::returnJson($data);
- }
- if(preg_match("/^1[345789]{1}\d{9}$/",$params['mobile'])){
- $data = ['code'=>'200','msg'=>'success','data'=>[]];
- helperService::returnJson($data);
- }else{
- $data = ['code'=>'400','msg'=>'请输入正确的手机号','data'=>[]];
- helperService::returnJson($data);
- }
- }
- /**
- * 提交售后订单
- */
- public function sales(){
- $params = $this->request->param();
- $rule = [
- ['mobile|手机号','require|number'],
- ['orderNo|订单号','require|number'],
- ['note|问题详情描述','require'],
- ];
- $validate = new Validate($rule);
- if(!$validate->check($params)){
- $data = ['code'=>'400','msg'=>$validate->getError(),'data'=>[]];
- helperService::returnJson($data);
- }
- $orderModel = new OrderModel();
- $return = $orderModel->getOne(['is_sales'=>1,'order_no'=>$params['orderNo']]);
- // print_r($return);exit;
- if($return){
- $data = ['code'=>'400','msg'=>'请不要重复提交','data'=>[]];
- helperService::returnJson($data);
- }
- $return = $orderModel->saveData(['is_sales'=>1],['order_no'=>$params['orderNo']]);
- if($return === false){
- $data = ['code'=>'400','msg'=>'申请失败请重试','data'=>[]];
- helperService::returnJson($data);
- }
- $orderSalesModel = new OrderSalesModel();
- $insertData = [
- 'mobile'=>$params['mobile'],
- 'order_no'=>$params['orderNo'],
- 'sales_type'=>1,
- 'sales_userNote'=>$params['note'],
- 'status'=>0,
- 'add_ts'=>time(),
- ];
- $return = $orderSalesModel->saveData($insertData);
- if($return === false){
- $data = ['code'=>'400','msg'=>'申请失败请重试','data'=>[]];
- helperService::returnJson($data);
- }
- $data = ['code'=>'200','msg'=>'申请成功','data'=>[]];
- helperService::returnJson($data);
- }
- /**
- * 下订单接口
- */
- public function orderDetail(){
- $params = $this->request->param();
- $rule = [
- ['orderNo|订单编号','require|number'],
- ];
- $validate = new Validate($rule);
- if(!$validate->check($params)){
- $data = ['code'=>'400','msg'=>$validate->getError(),'data'=>[]];
- helperService::returnJson($data);
- }
- $orderNo = $params['orderNo'];
- $orderModel = new OrderModel();
- $orderListModel = new OrderListModel();
- $orderInfo = $orderModel->getOne(['order_no'=>$orderNo]);
- $orderListInfo = $orderListModel->getProductS(['order_no'=>$orderNo,'orderList.status'=>1]);
- // print_r($orderListInfo);exit;
- // echo $orderListModel->getLastSql();exit;
- $num = 0;
- if(!empty($orderListInfo)){
- foreach ($orderListInfo as &$pro){
- $pro['images'] = json_decode($pro['images'],true);
- if(empty($pro['type_name'])){
- $pro['type_name'] = '11';
- }
- if($pro['is_mail']==1&&$pro['number']>=$pro['mail_number']){
- $num+=$pro['number'];
- }
- }
- }
- $orderInfo['num'] = $num;
- // print_r($orderListInfo);exit;
- // echo $orderListModel->getLastSql();exit;
- // print_r($orderListInfo);exit;
- $orderInfo['orderList'] = $orderListInfo;
- $data=['code'=>'200','msg'=>'success','data'=>$orderInfo];
- helperService::returnJson($data);
- }
- /**
- *获得用户购物车信息接口
- */
- public function car(){
- $user_no = Session::get('user_no');
- $carModel = new BuyCarModel();
- $carInfo = $carModel->getCarAndProduct(['user_no'=>$user_no]);
- // print_r($carInfo);exit;
- // echo $carModel->getLastSql();exit;
- if(!empty($carInfo)){
- foreach ($carInfo as &$pro){
- $pro['images'] = json_decode($pro['images'],true);
- if(empty($pro['type_name'])){
- $pro['type_name'] = '11';
- }
- }
- }
- $data = ['code'=>'200','msg'=>'success','data'=>$carInfo];
- helperService::returnJson($data);
- }
- /**
- * 删除购物车记录接口
- */
- public function deleteCar(){
- $params = $this->request->param();
- $rule = [
- ['id|购物车信息标识','require|number'],
- ];
- $validate = new Validate($rule);
- if(!$validate->check($params)){
- $data = ['code'=>'400','msg'=>$validate->getError(),'data'=>[]];
- helperService::returnJson($data);
- }
- $carModel = new BuyCarModel();
- $return = $carModel->removeData(['id'=>$params['id']]);
- if($return === false){
- $data = ['code'=>'400','msg'=>'删除失败请重试','data'=>[]];
- helperService::returnJson($data);
- }
- $data = ['code'=>'200', 'msg'=>'删除成功', 'data'=>[]];
- helperService::returnJson($data);
- }
- public function checkOrder(){
- $params = $this->request->param();
- $rule = [
- ['orderNo|订单编号','require'],
- ];
- $validate = new Validate($rule);
- if(!$validate->check($params)){
- $data = ['code'=>'400', 'msg'=>$validate->getError(), 'data'=>[]];
- helperService::returnJson($data);
- }
- $orderModel = new OrderModel();
- $orderListModel= new OrderListModel();
- $productModel = new ProductModel();
- $orderListInfo = $orderListModel->getMulti(['order_no'=>$params['orderNo']]);
- foreach ($orderListInfo as $key=>$value){//判断商品剩余及限购
- // $count_doctorNo = explode('/',$value);
- $productInfo = $productModel->getOne(['product_no'=>$value['product_no']]);//得到商品信息
- if($value['number'] > $productInfo['number']){
- $data = ['code'=>400, 'msg'=>$productInfo['product_name'].'商品库存不足', 'data'=>[],];
- helperService::returnJson($data);
- }
- $productConfigModel = new ProductConfigModel();//判断商品是否是限购商品
- $productConfigInfo = $productConfigModel->getOne(['product_no'=>$productInfo['product_no'],'status'=>1]);
- if(!empty($productConfigInfo)){
- if($productConfigInfo['type']==1){//单次购买限制
- if($productConfigInfo['number']<$value['number']){
- $data = ['code'=>400, 'msg'=>$productInfo['product_name']."单次购买数量不可超过".$productConfigInfo['number'], 'data'=>[],];
- helperService::returnJson($data);
- }
- }elseif($productConfigInfo['type']==2){//时间段限制
- $start = time()-86400*$productConfigInfo['day'];
- $res = $orderModel->getProduct(['user_no'=>Session::get('user_no'),'order_status'=>'20','add_time'=>['between',[$start,time()]],'ol.product_no'=>$productInfo['product_no']]);
- $count = 0;
- if(!empty($res)){
- foreach ($res as $values){
- $count+=$values['number'];
- }
- }
- if($value['number']+$count>$productConfigInfo['number']){
- $data = ['code'=>400, 'msg'=>$productInfo['product_name'].$productConfigInfo['day']."天内购买数量不可超过".$productConfigInfo['number'], 'data'=>[],];
- helperService::returnJson($data);
- }
- }
- }
- }
- $data=['code'=>200,'msg'=>'','data'=>[]];
- helperService::returnJson($data);
- }
- /**
- * 将订单信息插入到订单表和订单详情表
- */
- public function insertOrder(){
- $params = $this->request->param();
- $rule = [
- ['total_price|总价','require'],
- ['arr|商品选择','require'],
- ['count|购买总数','number']
- ];
- $validate = new Validate($rule);
- if(!$validate->check($params)){
- $data = ['code'=>'400', 'msg'=>$validate->getError(), 'data'=>[]];
- helperService::returnJson($data);
- }
- $price = $params['total_price'];
- $p = '';
- $ar = explode(',',$price);
- foreach ($ar as $key=>$value){
- $p.=$value;
- }
- $params['total_price'] = $p;
- $arr = array_filter($params['arr']);
- $orderListModel = new OrderListModel();
- $orderModel = new OrderModel();
- $productModel = new ProductModel();
- foreach ($arr as $key=>$value){//判断商品剩余及限购
- $count_doctorNo = explode('/',$value);
- $productInfo = $productModel->getOne(['product_id'=>$key]);//得到商品信息
- if($count_doctorNo[0] > $productInfo['number']){
- $data = ['code'=>400, 'msg'=>$productInfo['product_name'].'商品库存不足', 'data'=>[],];
- helperService::returnJson($data);
- }
- $productConfigModel = new ProductConfigModel();//判断商品是否是限购商品
- $productConfigInfo = $productConfigModel->getOne(['product_no'=>$productInfo['product_no'],'status'=>1]);
- $productInfo = helperService::modelDataToArr($productInfo);
- if(!empty($productConfigInfo)){
- if($productConfigInfo['type']==1){//单次购买限制
- if($productConfigInfo['number']<$count_doctorNo[0]){
- $data = ['code'=>400, 'msg'=>$productInfo['product_name']."单次购买数量不可超过".$productConfigInfo['number'], 'data'=>[],];
- helperService::returnJson($data);
- }
- }elseif($productConfigInfo['type']==2){//时间段限制
- $start = time()-86400*$productConfigInfo['day'];
- $res = $orderModel->getProduct(['user_no'=>Session::get('user_no'),'order_status'=>['in',[20,30,31]],'add_time'=>['between',[$start,time()]],'ol.product_no'=>$productInfo['product_no']]);
- $count = 0;
- if(!empty($res)){
- foreach ($res as $values){
- $count+=$values['number'];
- }
- }
- if($count_doctorNo[0]+$count>$productConfigInfo['number']){
- $data = ['code'=>400, 'msg'=>$productInfo['product_name'].$productConfigInfo['day']."天内购买数量不可超过".$productConfigInfo['number'], 'data'=>[],];
- helperService::returnJson($data);
- }
- }
- }
- }
- $order_no = helperService::createOrderNum();//生成订单编号
- Session::set('orderNo',$order_no);
- $UserModel = new UserModel();
- $user_id = $UserModel->where('user_no',Session::get('user_no'))->value('id');
- $insertOrderData = [
- 'order_no'=>$order_no,
- 'user_no'=>Session::get('user_no'),
- 'total_number'=>$params['count'],
- 'total_price'=>$params['total_price']*100,
- // 'order_status'=>10,
- 'add_time'=>time(),
- 'user_id'=>$user_id
- ];
- $order_id = $orderModel->saveData($insertOrderData);
- if($order_id === false){
- $data = [
- 'code'=>'400',
- 'msg'=>'订单保存失败',
- 'data'=>[]
- ];
- helperService::returnJson($data);
- }
- $DoctorModel = new DoctorModel();
- foreach ($arr as $key=>$value){//key 商品id value 商品数量
- $count_doctorNo = explode('/',$value);//将购买的商品数量和医生编号和商品实际价格分离
- $productInfo = $productModel->getOne(['product_id'=>$key]);//得到商品信息
- $doctor_id=0;
- if(isset($count_doctorNo[1]) && $count_doctorNo[1]!=0){
- $doctor_id = $DoctorModel->where('doctor_no',$count_doctorNo[1])->value('doctor_id');
- }
- $insertOrderListData = [
- 'order_no'=>$order_no,
- 'number'=>$count_doctorNo[0],
- 'doctor_no'=>$count_doctorNo[1],
- 'overdue_time'=>$productInfo['overdue_time'],
- 'add_ts'=>time(),
- 'product_no'=>$productInfo['product_no'],
- 'status'=>1,
- 'product_price'=>$productInfo['member_price'],
- 'actual_price'=>$count_doctorNo[2]*100,
- 'user_id'=>$user_id,
- 'order_id'=>$order_id,
- 'doctor_id'=>$doctor_id
- ];
- $return = $orderListModel->saveData($insertOrderListData);
- if($return === false){
- $data = ['code'=>'400','msg'=>'订单详情保存失败','data'=>[]];
- helperService::returnJson($data);
- }
- // $return = $productModel->saveData(['sales_volume'=>$productInfo['sales_volume']+$count_doctorNo[0]],['product_id'=>$key]);
- // if($return === false){
- // $data = ['code'=>'400', 'msg'=>'订单销量保存失败', 'data'=>[]];
- // helperService::returnJson($data);
- // }
- }
- // foreach ($arr as $key=>$value){//订单下好减少商品库存
- // $count_doctorNo = explode('/',$value);//将购买的商品数量和医生编号分离
- // $productInfo = $productModel->getOne(['product_id'=>$key]);//得到商品信息
- // $nowNumber = $productInfo['number']-$count_doctorNo[0];
- // $return = $productModel->saveData(['number'=>$nowNumber],['product_no'=>$productInfo['product_no']]);
- // if($return === false){
- // $data = ['code'=>'400', 'msg'=>'订单库存减少失败', 'data'=>[]];
- // helperService::returnJson($data);
- // }
- // }
- $data = [
- 'code'=>'200', 'msg'=>'success', 'data'=>[]
- ];
- helperService::returnJson($data);
- }
- /**
- * 将订单编号保存在session
- */
- public function insertSessionOrderNo(){
- $params = $this->request->param();
- $rule = [
- ['orderNo|订单编号','require|number'],
- ];
- $validate = new Validate($rule);
- if(!$validate->check($params)){
- $data = ['code'=>'400','msg'=>$validate->getError(),'data'=>[]];
- helperService::returnJson($data);
- }
- Session::set('orderNo',$params['orderNo']);
- $data = ['code'=>'200','msg'=>'success','data'=>[]];
- helperService::returnJson($data);
- }
- /**
- * 匹配物流模板
- */
- public function getLogisticsModel(){
- $params = $this->request->param();
- $rule = [
- ['province_code|省份标识','require|number'],
- ['total_number|订单总数','require|number'],
- ['num|包邮数量','require|number']
- ];
- $validate = new Validate($rule);
- if(!$validate->check($params)){
- $data = ['code'=>'400','msg'=>$validate->getError(),'data'=>[]];
- helperService::returnJson($data);
- }
- $logisticsModel = new LogisticsModel();
- $logisticsInfo = $logisticsModel->getOne(['province_code'=>$params['province_code'],'status'=>1]);
- if(empty($logisticsInfo)){
- $data=['code'=>'400','msg'=>'物流模板不存在','data'=>[],];
- helperService::returnJson($data);
- }
- if($params['total_number']>$params['num']){
- $params['total_number'] = $params['total_number'] - $params['num'];
- if($params['total_number']>$logisticsInfo['full_number']){
- $logisticsMoney = $logisticsInfo['full_price'] + ceil(($params['total_number']-$logisticsInfo['full_number'])/$logisticsInfo['continue_number'])*$logisticsInfo['continue_price'];
- }else{
- $logisticsMoney = $logisticsInfo['full_price'];
- }
- $logisticsMoney = number_format($logisticsMoney/100,2);//保留两位小数
- }else{
- $logisticsMoney=0.00;
- }
- $data = ['code'=>'200','msg'=>$logisticsMoney,'data'=>[],];
- helperService::returnJson($data);
- }
- /**
- * 支付前的接口
- */
- public function pay(){
- $params = $this->request->param();
- $rule = [
- ['addressId|用户收货地址标识','require|number'],
- ['logistics_price|物流价格','number'],
- ['total_price|总价格','require']
- ];
- $validate = new Validate($rule);
- if(!$validate->check($params)){
- $data = ['code'=>'400','msg'=>$validate->getError(),'data'=>[]];
- helperService::returnJson($data);
- }
- $price = $params['total_price'];
- $p = '';
- $ar = explode(',',$price);
- foreach ($ar as $key=>$value){
- $p.=$value;
- }
- $params['total_price'] = $p;
- $addressModel = new UserAddressModel();
- $addressInfo = $addressModel->getOne(['address_id'=>$params['addressId']]);
- if(empty($addressInfo)){
- $data = ['code'=>'400','msg'=>'地址信息有误','data'=>[]];
- helperService::returnJson($data);
- }
- $orderModel = new OrderModel();
- if(!Session::has('orderNo')){
- $data = ['code'=>'400','msg'=>'订单信息有误','data'=>[]];
- helperService::returnJson($data);
- }
- $orderNo = Session::get('orderNo');
- $logistics_price = isset($params['logistics_price'])?$params['logistics_price']:'0';
- $userDefaultAddress = array();
- $userDefaultAddress['province'] = ServiceBaseInfo::getAddress(['level'=>1,'code'=>$addressInfo['province_code']]);
- $userDefaultAddress['province'] = current($userDefaultAddress['province']);
- $userDefaultAddress['city'] = ServiceBaseInfo::getAddress(['level'=>2,'code'=>$addressInfo['city_code']]);
- $userDefaultAddress['city'] = current($userDefaultAddress['city']);
- $userDefaultAddress['area'] = ServiceBaseInfo::getAddress(['level'=>3,'code'=>$addressInfo['area_code']]);
- $userDefaultAddress['area'] = current($userDefaultAddress['area']);
- // print_r($userDefaultAddress);exit;
- $insertOrderData = [
- 'logistics_price'=>$logistics_price*100,
- 'order_type'=>1,
- // 'total_price'=>$params['total_price'],
- 'note'=>$params['note'],
- 'province'=>$userDefaultAddress['province']['name'],
- 'city'=>$userDefaultAddress['city']['name'],
- 'area'=>$userDefaultAddress['area']['name'],
- 'province_code'=>$addressInfo['province_code'],
- 'order_status'=>10,
- 'model_id'=>$params['addressId'],
- 'city_code'=>$addressInfo['city_code'],
- 'area_code'=>$addressInfo['area_code'],
- 'address'=>$addressInfo['address'],
- 'consignee'=>$addressInfo['consignee'],
- 'address_mobile'=>$addressInfo['address_mobile'],
- 'point'=>intval($params['total_price']),
- ];
- $return = $orderModel->saveData($insertOrderData,['order_no'=>$orderNo]);
- if($return === false){
- $data = ['code'=>'400','msg'=>'订单信息修改失败','data'=>[]];
- helperService::returnJson($data);
- }
- $return = $this->checkUser();
- if(!$return){
- $this->redirect('/index/index/person_info',['check_user_pay'=>2]);
- }
- $orderListModel = new OrderListModel();
- $productModel = new ProductModel();
- $orderListInfo = $orderListModel->getMulti(['order_no'=>$orderNo,'status'=>1]);
- if($orderListInfo){
- foreach($orderListInfo as $info){
- $productInfo = $productModel->getOne(['product_no'=>$info['product_no']]);
- $productModel->saveData(['sales_volume'=>$productInfo['sales_volume']+$info['number']],['product_no'=>$info['product_no']]);
- $productModel->saveData(['number'=>$productInfo['number']-$info['number']],['product_no'=>$info['product_no']]);
- }
- }
- $this->wxPay($orderNo,$params['total_price']);//总价格【商品+物流】
- }
- /**
- * 从我的订单发起支付
- */
- public function payment(){
- $params = $this->request->param();
- $orderNo = isset($params['orderNo'])?$params['orderNo']:Session::get('orderNo');
- Session::set('orderNo',$orderNo);
- $return = $this->checkUser();
- if(!$return){
- $this->redirect('/index/index/person_info',['check_user_pay'=>2]);
- }
- // $orderNo = $params('orderNo');
- $orderModel = new OrderModel();
- $orderInfo = $orderModel->getOne(['order_no'=>$orderNo]);
- $this->wxPay($orderNo,$orderInfo['total_price']/100+$orderInfo['logistics_price']/100);
- }
- /**
- * 连接支付接口
- */
- private function wxPay($orderNo,$total_price){
- $res = $this->checkTime();
- // print_r($res);exit;
- if(!$res){
- echo "<script language=javascript>alert('很抱歉,系统维护中,请明天早上8:00在付款!');history.back();</script>";
- exit;
- }
- $total_price = $total_price*100;
- // $total_price = 100;
- $payListModel = new PayListModel();
- $data = [
- 'user_no'=>Session::get('user_no'),
- 'price'=>$total_price,
- 'order_no'=>$orderNo,
- 'status'=>2,
- 'add_ts'=>time(),
- ];
- $list = $payListModel->getOne(['order_no'=>$orderNo,'user_no'=>Session::get('user_no')]);
- if(empty($list)){
- $payListModel->saveData($data);
- }
- $notify_url = 'http://'.$_SERVER['SERVER_NAME']."/index/order/paySuccess";
- $notify_url = base64_encode($notify_url);
- header("HTTP/1.1 301 Moved Permanently");
- header("Location: http://vapi2.vowkin.com/index/wechat/platformWxPay.html?pay_notify_url={$notify_url}&order_no={$orderNo}&total_price={$total_price}&companyCode=".Config::get('companyCode'))."¬e=信谊";
- exit;
- }
- private function checkUser(){
- $userNo = Session::get('user_no');
- $userModel = new UserModel();
- $userInfo = $userModel->getOne(['user_no'=>$userNo]);
- // print_r($userInfo);exit;
- if(empty($userInfo['mobile'])){
- return false;
- }
- return true;
- }
- private function checkTime(){
- $date = date('Y-m-d');
- $return = $this->getthemonth($date);
- $start = strtotime("22:00:00");
- $end = strtotime("23:59:59");
- // echo $start;echo "<br/>";echo $end;exit;
- if($date == $return[1]){
- if(time()>$start && time()<$end){
- return false;
- }
- }
- return true;
- }
- private function getthemonth($date)
- {
- $firstday = date('Y-m-01', strtotime($date));
- $lastday = date('Y-m-d', strtotime("$firstday +1 month -1 day"));
- return array($firstday,$lastday);
- }
- }
|