From ba00a25f5aca824944ae02913ece3b0a459418e1 Mon Sep 17 00:00:00 2001 From: yanzai Date: Thu, 17 Oct 2024 00:55:34 +0800 Subject: [PATCH] =?UTF-8?q?=E7=A7=AF=E5=88=86=E6=A0=B8=E9=94=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/API/AspNetZhuanController.php | 14 ++++++ .../H5/IntegralSaveMoneyCouponController.php | 12 ++++- .../Controllers/API/H5/OrderController.php | 50 ++++++++++++++++++- 3 files changed, 72 insertions(+), 4 deletions(-) diff --git a/Laravel/app/Http/Controllers/API/AspNetZhuanController.php b/Laravel/app/Http/Controllers/API/AspNetZhuanController.php index eecf208..77c3b46 100644 --- a/Laravel/app/Http/Controllers/API/AspNetZhuanController.php +++ b/Laravel/app/Http/Controllers/API/AspNetZhuanController.php @@ -26,6 +26,20 @@ class AspNetZhuanController extends Controller $res = self::Get(self::$JF_BaseUrl . '?type=3' . '&ghzid=' . $ghzid. '&ysje=' . $ysje. '&ssje=' . $ssje); return $res['本次账单可抵扣积分']; } + //使用积分 + public static function UseJiFen($ghzid,$jifen,$yyid,$caozuorenid,$caozuorenmigncheng,$beizhu,$dingdanshijian){ + $res = self::Get(self::$JF_BaseUrl . '?type=4' . '&ghzid=' . $ghzid. '&jifen=' . $jifen.'&yyid='.$yyid.'&caozuorenid='.$caozuorenid.'&caozuorenmigncheng='.urlencode($caozuorenmigncheng).'&beizhu='.urlencode($beizhu).'&dingdanshijian='.urlencode($dingdanshijian)); + return true; + } + //使用预存款 + public static function UseYuCunKuan($hzid,$yucunkuan,$yyid,$yucunkuanleixing,$caozuorenid,$caozuorenmigncheng,$beizhu,$dingdanshijian) + { + $res = self::Get(self::$JF_BaseUrl . '?type=5' . '&hzid=' . $hzid. '&yucunkuan=' . $yucunkuan.'&yyid='.$yyid.'&yucunkuanleixing='.$yucunkuanleixing.'&caozuorenid='.$caozuorenid.'&caozuorenmigncheng='.urlencode($caozuorenmigncheng).'&beizhu='.urlencode($beizhu).'&dingdanshijian='.urlencode($dingdanshijian)); + return true; + } + + + public static function Get($url) { $response = Http::get($url); diff --git a/Laravel/app/Http/Controllers/API/H5/IntegralSaveMoneyCouponController.php b/Laravel/app/Http/Controllers/API/H5/IntegralSaveMoneyCouponController.php index dd97292..f4d18f4 100644 --- a/Laravel/app/Http/Controllers/API/H5/IntegralSaveMoneyCouponController.php +++ b/Laravel/app/Http/Controllers/API/H5/IntegralSaveMoneyCouponController.php @@ -66,8 +66,16 @@ class IntegralSaveMoneyCouponController extends Controller if(!$user) return \Yz::echoError1('openid对应用户不存在'); $person=DB::table('web_user_person')->where(['user_id'=>$user->id,'is_del'=>0,'id'=>$person_id])->first(); if(!$person) return \Yz::echoError1('就诊人信息查询失败'); - $AspNet=new AspNetZhuanController(); - $count= $AspNet::GetEnableCount($person->ghzid,$ysje,$ssje); + $count=0; + $env=config('app.globals.Env'); + if($env=='pro') { //如果是正式环境 + $AspNet=new AspNetZhuanController(); + $count= $AspNet::GetEnableCount($person->ghzid,$ysje,$ssje); + } + if($env=='dev') {//如果是开发环境 + $count=30; + } + if($type==1){ return \Yz::Return(true,"查询完成",['keyong_jifen'=>$count]); } diff --git a/Laravel/app/Http/Controllers/API/H5/OrderController.php b/Laravel/app/Http/Controllers/API/H5/OrderController.php index 63adf7e..8a08af4 100644 --- a/Laravel/app/Http/Controllers/API/H5/OrderController.php +++ b/Laravel/app/Http/Controllers/API/H5/OrderController.php @@ -2,6 +2,7 @@ namespace App\Http\Controllers\API\H5; +use App\Http\Controllers\API\AspNetZhuanController; use App\Http\Controllers\Controller; use App\Http\Controllers\API\PEISApiController; use App\Lib\Tools; @@ -75,6 +76,9 @@ class OrderController extends Controller $plan_nmr_id = request('plan_nmr_id');//核磁号源id $doctor = request('doctor');//预约的医生名字 + $jifen = request('jifen',0); //使用的积分数量 + $yucunkuan = request('yucunkuan',0);//使用的预存款数量 + if (!isset($hospital_id)) return \Yz::echoError1('医院id不能为空'); if (!isset($openid)) return \Yz::echoError1('openid不能为空'); if (!isset($person_id)) return \Yz::echoError1('person_id不能为空'); @@ -296,7 +300,25 @@ class OrderController extends Controller } } + //校验积分和预存款 + $env=config('app.globals.Env'); + $AspNet=new AspNetZhuanController(); + if($env=='pro') { //如果是正式环境, 测试环境不抵扣 + if($jifen>0) { + $all_jifen= $AspNet::GetJiFen_YuCunKuan(1,$person->ghzid); + if($jifen>$all_jifen) return \Yz::echoError1("用户剩余积分不足"); + } + if($yucunkuan>0) { + return \Yz::echoError1("暂不支持预存款"); + $all_yucunkuan= $AspNet::GetJiFen_YuCunKuan(2,$person->ghzid); + if($yucunkuan>$all_yucunkuan) return \Yz::echoError1("用户剩余预存款不足"); + } + $true_price=$true_price-($jifen+$yucunkuan); + if($true_price<-1) return \Yz::echoError1("预抵扣金额超过订单金额,操作失败"); + if($true_price<0) $true_price=0; + } + $now_datetime=date('Y-m-d H:i:s'); //构建订单号 $order_num = $this->generateOrderNumber(); $data = [ @@ -309,7 +331,9 @@ class OrderController extends Controller 'id_number' => $person->id_number, 'buy_info' => json_encode($buy_info, JSON_UNESCAPED_UNICODE), 'price' => $price, - 'true_price' => $true_price, + 'true_price' =>number_format($true_price, 2, '.', ''), + 'jifen'=>$jifen, + 'yucunkuan'=>$yucunkuan, 'order_number' => $order_num, 'status' => 1, 'appointment_date' => $plan->date, @@ -323,13 +347,35 @@ class OrderController extends Controller 'sex' => $person->sex, 'birthday' => $person->birthday, 'married' => $person->married, + 'created_at' =>$now_datetime, ]; DB::beginTransaction(); $insert = DB::table('orders')->insertGetId($data); $up_plan = DB::table('plans')->where(['id' => $plan->id, 'status' => 1])->update([ 'status' => 2 ]); - if ($insert and $up_plan) { + //更新问卷log表 + DB::table('questionnaires_logs')->where(['person_id'=>$person->id,'order_id'=>0])->update([ + 'order_id' => $insert, + ]); + + //调用接口扣除积分和预存款 + $jifen_dikou_status=true; + $yucunkuan_dikou_status=true; + $yyid=$hospital_id; + if($yyid==1) $yyid=6; + if($env=='pro') { //如果是正式环境 + if($jifen>0) { + $jifen_dikou_status=false; + $jifen_dikou_status= $AspNet::UseJiFen($person->ghzid,-$jifen,$yyid,$insert,'tj_h5','抵扣体检H5订单',$now_datetime); + } + if($yucunkuan>0) { + $yucunkuan_dikou_status=false; + // $yucunkuan_dikou_status= $AspNet::UseYuCunKuan(); + } + } + + if ($insert and $up_plan and $jifen_dikou_status and $yucunkuan_dikou_status) { DB::commit(); $action = false; if ($true_price === 0) {