diff --git a/Laravel/app/Http/Controllers/API/AspNetZhuanController.php b/Laravel/app/Http/Controllers/API/AspNetZhuanController.php index b4d1f51..afebed2 100644 --- a/Laravel/app/Http/Controllers/API/AspNetZhuanController.php +++ b/Laravel/app/Http/Controllers/API/AspNetZhuanController.php @@ -14,6 +14,7 @@ use Illuminate\Support\Facades\Schema; class AspNetZhuanController extends Controller { public static $request; + public static $BaseUrl = "http://220.174.210.111:82";//url public static $JF_BaseUrl = "http://220.174.210.111:82/jifen.aspx";//积分预存款Url //获取用户积分和预存款 @@ -40,6 +41,12 @@ class AspNetZhuanController extends Controller $res = self::Get(self::$JF_BaseUrl . '?type=5' . '&ghzid=' . $ghzid. '&yucunkuan=' . $yucunkuan.'&yyid='.$yyid.'&yucunkuanleixing='.$yucunkuanleixing.'&caozuorenid='.$caozuorenid.'&caozuorenmigncheng='.urlencode($caozuorenmigncheng).'&beizhu='.urlencode($beizhu).'&dingdanshijian='.urlencode($dingdanshijian),"预存款变更"); return true; } + //二线预约 + public static function GetNmrList($data,$nonce) + { + $res= self::Post(self::$BaseUrl . '/erxian.aspx?str='.$nonce,$data,'二线号源'); + return $res['data']; + } @@ -69,6 +76,36 @@ class AspNetZhuanController extends Controller throw new HttpResponseException(\Yz::echoError1("查询用户积分预存款失败,status:" . $status . "body:" . $body)); } } + public static function Post($url,$data,$mark) + { + self::RequestLog($url, $data, $mark, '.Net转发'); + $response = Http::post($url,$data); + if ($response->successful()) { + $res = $response->json(); + $res_string=json_encode($res, JSON_UNESCAPED_UNICODE); + $str_len = mb_strlen($res_string, 'utf-8'); + $str_size = $str_len / 1024; + $save_res = $res_string; + if ($str_size > 10) $save_res = '{"data":"Row size too large"}'; + self::$request->response_data = $save_res; + self::$request->save(); + + if ($res['code'] == "200") { + return $res; + } else { + throw new HttpResponseException(\Yz::echoError1("查询用户积分预存款失败:" . $res['msg'])); + } + } else { + $status = $response->status(); + // 获取响应体作为字符串 + $body = $response->body(); + + self::$request->response_data = $body; + self::$request->save(); + + throw new HttpResponseException(\Yz::echoError1("查询用户积分预存款失败,status:" . $status . "body:" . $body)); + } + } public static function RequestLog($url, $post_data, $mark, $code = 0) { diff --git a/Laravel/app/Http/Controllers/API/H5/ComboController.php b/Laravel/app/Http/Controllers/API/H5/ComboController.php index 3806a7e..6d627a4 100644 --- a/Laravel/app/Http/Controllers/API/H5/ComboController.php +++ b/Laravel/app/Http/Controllers/API/H5/ComboController.php @@ -217,8 +217,12 @@ select combo_id as c_id,count(*) as count from orders where status in(2,4) group $item_ids = request('item_ids'); //自选项目ids $duo_xuan_yi = request('duo_xuan_yi'); //多选1 $group_id = request('group_id'); //团检登记id + $wj_flag= request('wj'); //问卷标记 if (!isset($hospital_id)) return \Yz::echoError1("医院id不能为空"); $hospital = DB::table('hospitals')->where(['id' => 1, 'status' => 1, 'is_del' => 0])->first(); + if(isset($wj_flag) and $wj_flag==1){ + $wj_zhekou=config('app.globals.Wj_ZheKou');//问卷过来的折扣率 + } $combo_info = false;//套餐信息 $pay_item_count = 0;//需自费项目个数 $all_original_price = 0; @@ -320,13 +324,12 @@ select combo_id as c_id,count(*) as sale_count from orders where status in(2,4) } $items_info = false;//自选项目信息 if (isset($item_ids) and !empty($item_ids)) { - $price = 0; + $item_price = 0; $items_original_price = 0; $items = DB::table('items')->whereIn('item_id', $item_ids)->where(['status' => 1])->get(); $groupedData = []; foreach ($items as $item) { - // $price=$price+$item->price; - $price = bcadd($price, $item->price, 2); + $item_price = bcadd($item_price, $item->price, 2); // $all_original_price+=$item->original_price; $all_original_price = bcadd($all_original_price, $item->original_price, 2); // $items_original_price+=$item->original_price; @@ -345,7 +348,11 @@ select combo_id as c_id,count(*) as sale_count from orders where status in(2,4) ]; } } - $items_info['price'] = $price; + if(isset($wj_flag) and $wj_flag==1){ + $item_price=$item_price*$wj_zhekou; + + } + $items_info['price'] =number_format($item_price, 2, '.', '') ; $items_info['original_price'] = $items_original_price; foreach ($groupedData as $keshiName => $children) { $items_info['items'][] = [ @@ -355,6 +362,7 @@ select combo_id as c_id,count(*) as sale_count from orders where status in(2,4) } $pay_item_count += count($items); $true_price += $items_info['price']; + } //调用his接口查询用户积分和预存款,计算可以抵扣的金额 $integral_money = 90;//积分抵扣金额 diff --git a/Laravel/app/Http/Controllers/API/H5/NMRController.php b/Laravel/app/Http/Controllers/API/H5/NMRController.php index 80f981f..c3fa580 100644 --- a/Laravel/app/Http/Controllers/API/H5/NMRController.php +++ b/Laravel/app/Http/Controllers/API/H5/NMRController.php @@ -2,6 +2,7 @@ namespace App\Http\Controllers\API\H5; +use App\Http\Controllers\API\AspNetZhuanController; use App\Http\Controllers\Controller; use DateTime; use Illuminate\Http\Request; @@ -14,16 +15,31 @@ class NMRController extends Controller { $hospital_id =request('hospital_id'); $month=request('month'); - $list=[ - [ - 'date'=>'2024-10-18', - 'count'=>20, - ], - [ - 'date'=>'2024-10-19', - 'count'=>10, - ], - ]; + + // 获取给定月份的第一天 + $firstDayOfMonth = date('Y-m-01', strtotime($month)); +// 获取给定月份的最后一天 + $lastDayOfMonth = date('Y-m-t', strtotime($month)); + $today = date('Y-m-d'); + $days = []; + for ($date = $firstDayOfMonth; $date <= $lastDayOfMonth; $date = date('Y-m-d', strtotime($date . ' +1 day'))) { + // 如果当前日期大于或等于今天的日期,则添加到数组中 + if ($date >= $today) { + $days[] = $date; + } + } + $aspnet=new AspNetZhuanController(); + $list=[]; + $nmr=$aspnet::GetNmrList(['yyid'=>6,'data'=>$days],uniqid()); + + //获取每日数量 + foreach($nmr as $k=>$v){ + $list[]=[ + 'date'=>$k, + 'count'=>count($v) + ]; + } + //获取整月日期 // 获取当月的第一天 $firstDay = date("Y-m-d", strtotime($month . "-01")); @@ -66,45 +82,66 @@ class NMRController extends Controller $dateTimeClone->modify("$i days"); // 修改日期 $days7[] = $dateTimeClone->format('Y-m-d'); // 按照需要的格式添加到结果数组 } - $list=[ - [ - 'id'=>1, - 'status'=>1, - 'time'=>'10:15' - ], - [ - 'id'=>1, - 'status'=>1, - 'time'=>'10:45' - ] - ]; - $weeklist=[[ - 'date'=>'2024-09-28', - 'count'=>20, - ] - ]; + $aspnet=new AspNetZhuanController(); $week7=[]; - $k=0; - foreach ($days7 as $date) { - $xingqi=\App\Lib\Tools::GetWeekName($date); + $nmr=$aspnet::GetNmrList(['yyid'=>6,'data'=>$days7],uniqid()); + //获取每日数量 + foreach($nmr as $k=>$v){ + $xingqi=\App\Lib\Tools::GetWeekName($k); $week7[]=[ - 'date'=>$date, - 'count'=>0, + 'date'=>$k, + 'count'=>count($v), 'xingqi'=>$xingqi ]; - foreach ($weeklist as $plan) { - if($plan['date'] == $date){ - $week7[$k]=[ - 'date'=>$date, - 'xingqi'=>$xingqi, - 'count'=>$plan['count'] - ]; - break; - } + } + $list=[]; + if(isset($nmr[$date])){ + foreach($nmr[$date] as $k=>$v){ + $list[]=[ + 'id'=>$v['TimeNum'], + 'time'=>$v['Time'], + 'status'=>$v['State'], + ]; } - $k++; + } + + +// $list=[ +// [ +// 'id'=>1, +// 'status'=>1, +// 'time'=>'10:15' +// ], +// [ +// 'id'=>1, +// 'status'=>1, +// 'time'=>'10:45' +// ] +// ]; + +// $week7=[]; +// $k=0; +// foreach ($days7 as $date) { +// $xingqi=\App\Lib\Tools::GetWeekName($date); +// $week7[]=[ +// 'date'=>$date, +// 'count'=>0, +// 'xingqi'=>$xingqi +// ]; +// foreach ($weeklist as $plan) { +// if($plan['date'] == $date){ +// $week7[$k]=[ +// 'date'=>$date, +// 'xingqi'=>$xingqi, +// 'count'=>$plan['count'] +// ]; +// break; +// } +// } +// $k++; +// } return \Yz::Return(true,"查询完成",['list'=>$list,'weeklist'=>$week7]); } } diff --git a/Laravel/app/Http/Controllers/API/H5/OrderController.php b/Laravel/app/Http/Controllers/API/H5/OrderController.php index 8298d42..fdc31ab 100644 --- a/Laravel/app/Http/Controllers/API/H5/OrderController.php +++ b/Laravel/app/Http/Controllers/API/H5/OrderController.php @@ -71,6 +71,11 @@ class OrderController extends Controller $type = request('type');//1个检2团检 $group_id = request('group_id');//团检id $item_ids = request('item_ids');//自选item的ids + + if (count($item_ids) != 0 and $item_ids[0]=="") { + $item_ids=[]; + } + $duo_xuan_yi = request('duo_xuan_yi'); //多选1 $plan_id = request('plan_id');//号源id $plan_nmr_id = request('plan_nmr_id');//核磁号源id @@ -79,6 +84,11 @@ class OrderController extends Controller $jifen = request('jifen',0); //使用的积分数量 $yucunkuan = request('yucunkuan',0);//使用的预存款数量 + $wj_flag= request('wj'); //问卷标记 + if(isset($wj_flag) and $wj_flag==1){ + $wj_zhekou=config('app.globals.Wj_ZheKou');//问卷过来的折扣率 + } + if (!isset($hospital_id)) return \Yz::echoError1('医院id不能为空'); if (!isset($openid)) return \Yz::echoError1('openid不能为空'); if (!isset($person_id)) return \Yz::echoError1('person_id不能为空'); @@ -167,11 +177,12 @@ class OrderController extends Controller //如果有自选项目 $items_list = []; - if (count($item_ids) != 0) { + if (count($item_ids) != 0 ) { $items_list = DB::table('items')->whereIn('item_id', $item_ids)->where(['status' => 1])->get(); $existingIds = []; + $item_price=0; foreach ($items_list as $item) { - $price += $item->price; + $item_price+=$item->price; $existingIds[] = $item->item_id; $buy_info['items'][] = [ 'id' => $item->item_id, @@ -186,6 +197,10 @@ class OrderController extends Controller ]; } } + if(isset($wj_flag) and $wj_flag==1){ + $item_price=$item_price*$wj_zhekou; + } + $price += $item_price; $missingIds = array_diff($item_ids, $existingIds); if (count($missingIds) > 0) return \Yz::echoError1("部分自选项目不可用,Id:" . implode(', ', $missingIds)); } @@ -194,6 +209,7 @@ class OrderController extends Controller $buy_info['items']=array_merge($buy_info['items'],$Nx1_arrInfo); } $true_price = $price; + //如果是团检 $group_info = false; if ($type == 2) { @@ -347,6 +363,7 @@ class OrderController extends Controller 'sex' => $person->sex, 'birthday' => $person->birthday, 'married' => $person->married, + 'wj_flag'=>$wj_flag, 'created_at' =>$now_datetime, ]; DB::beginTransaction(); @@ -506,10 +523,29 @@ class OrderController extends Controller "预约时间" => $order_info->appointment_date . ' ' . $order_info->appointment_time, "介绍人" => $order_info->referral, '套餐Id' => $order_info->combo_id == 0 ? null : $order_info->combo_id, - "可选项目信息" => $item_arr, + "已收费" => true, + + ]; + $cad2=[ + "可选项目信息" => $item_arr, "总计金额" => $order_info->price, ]; + if($order_info->wj_flag == 1){ + $temp=[]; + foreach ($item_arr as $k => $item) { + $temp[]=[ + "Id"=> $item['Id'], + "已收费"=>$item['已收费'], + "优惠方式"=>"打折", + "优惠值"=> config('app.globals.Wj_ZheKou') + ]; + } + $cad2=[ + "可选项目信息" => $temp, + ]; + } + $cad=array_merge($cad,$cad2); } else { $cad = [ 'type' => 2, diff --git a/Laravel/app/Http/Controllers/API/H5/QuestionnairesLogsController.php b/Laravel/app/Http/Controllers/API/H5/QuestionnairesLogsController.php index a11ff29..d14c262 100644 --- a/Laravel/app/Http/Controllers/API/H5/QuestionnairesLogsController.php +++ b/Laravel/app/Http/Controllers/API/H5/QuestionnairesLogsController.php @@ -122,7 +122,7 @@ class QuestionnairesLogsController extends Controller $sum = DB::table('items')->whereIn('item_id', $items)->where('status', 1)->sum('price'); $check_sum = DB::table('items')->whereIn('item_id', $check_items['items'])->where('status', 1)->sum('price'); $combo = DB::table('combos')->whereIn('combo_id', [$check_items['combo']])->where('status', 1)->sum('price'); - $zhekou = 1; + $zhekou = config('app.globals.Wj_ZheKou'); return number_format($combo + (($sum + $check_sum) * $zhekou), 2, '.', ''); } public function submit(Request $request) diff --git a/Laravel/app/Http/Controllers/TestController.php b/Laravel/app/Http/Controllers/TestController.php index b7a80aa..d37b012 100644 --- a/Laravel/app/Http/Controllers/TestController.php +++ b/Laravel/app/Http/Controllers/TestController.php @@ -2,6 +2,7 @@ namespace App\Http\Controllers; +use App\Http\Controllers\API\AspNetZhuanController; use App\Services\OrderService; use Illuminate\Http\Request; use Illuminate\Support\Facades\DB; @@ -12,6 +13,18 @@ class TestController extends Controller echo DB::table('users')->count(); //$order= new OrderService(); // dd($order->DepartmentItemCount(33)); + $aspnet=new AspNetZhuanController(); + $temp_list=[]; + $nmr=$aspnet::GetNmrList(['yyid'=>6,'data'=>['2024-10-25']],uniqid()); + + //获取每日数量 + foreach($nmr as $k=>$v){ + $temp_list[]=[ + 'date'=>$k, + 'count'=>count($v) + ]; + } + dd($temp_list); } public function ApiTest(){ diff --git a/Laravel/config/app.php b/Laravel/config/app.php index 9568c2a..3a110c6 100644 --- a/Laravel/config/app.php +++ b/Laravel/config/app.php @@ -8,6 +8,7 @@ return [ 'PayNotifyUrl' =>"http://124.225.137.54:39080/h5/#/pages/main/order/CheckPay",//支付完成后小程序跳转H5路径 // 'Env'=>'pro', 'Env'=>'dev', + 'Wj_ZheKou'=>1, ], /* diff --git a/h5/pages/buy/choose/choose.vue b/h5/pages/buy/choose/choose.vue index c38e9e6..96ec1a5 100644 --- a/h5/pages/buy/choose/choose.vue +++ b/h5/pages/buy/choose/choose.vue @@ -51,6 +51,7 @@ const buttonClick = (info) => { if (info.id) { $store.setCheckupTypeId({ id: info.id }); } + $store.setComboContrast([]); // 清空套餐对比 uni.navigateTo({ url: info.url, }); diff --git a/h5/pages/main/index/index.vue b/h5/pages/main/index/index.vue index 8e32196..3aa2bf5 100644 --- a/h5/pages/main/index/index.vue +++ b/h5/pages/main/index/index.vue @@ -281,7 +281,7 @@ - 10171926 + 10210900 diff --git a/h5/pages/main/tj/selectType.vue b/h5/pages/main/tj/selectType.vue index 5b5e9b1..252af75 100644 --- a/h5/pages/main/tj/selectType.vue +++ b/h5/pages/main/tj/selectType.vue @@ -34,9 +34,10 @@ onShow(() => { const toDetails = (type) => { let url = ""; - if(type == 1){ + if (type == 1) { + $store.setComboContrast([]); // 清空套餐对比 url = "/pages/main/combo/combo?groupId=" + groupInfo.value.group_id; - }else{ + } else { url = "/pages/main/tj/tjzx?groupId=" + groupInfo.value.group_id; } uni.navigateTo({ @@ -45,7 +46,7 @@ const toDetails = (type) => { };