From 6b95517eaabcdaac6a9db66861db482ef7597a58 Mon Sep 17 00:00:00 2001 From: yanzai Date: Sat, 12 Oct 2024 22:00:24 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AF=B9=E6=8E=A5=E5=A5=97=E9=A4=90=E5=A2=9E?= =?UTF-8?q?=E5=88=A0=E6=94=B9=EF=BC=8C=E5=A5=97=E9=A4=90=E5=A4=9A=E9=80=89?= =?UTF-8?q?=E4=B8=80=EF=BC=8C=E5=AE=8C=E5=96=84=E6=94=B9=E7=BA=A6=EF=BC=8C?= =?UTF-8?q?=E8=B0=83=E6=95=B4=E4=BA=8C=E7=BA=BF=E8=AE=BE=E5=A4=87=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../API/Admin/YeWu/ComboController.php | 2 +- .../Controllers/API/H5/ComboController.php | 20 ++++ .../Http/Controllers/API/H5/NMRController.php | 33 +++++- .../API/Internal/SiXinPushController.php | 4 +- .../Controllers/API/PEISApiController.php | 20 +--- .../app/Services/ComboItemGroupService.php | 103 ++++++++++++++++++ h5/pages/main/ctime/ctime.vue | 9 +- 7 files changed, 164 insertions(+), 27 deletions(-) create mode 100644 Laravel/app/Services/ComboItemGroupService.php diff --git a/Laravel/app/Http/Controllers/API/Admin/YeWu/ComboController.php b/Laravel/app/Http/Controllers/API/Admin/YeWu/ComboController.php index 14bbe09..5cb1a41 100644 --- a/Laravel/app/Http/Controllers/API/Admin/YeWu/ComboController.php +++ b/Laravel/app/Http/Controllers/API/Admin/YeWu/ComboController.php @@ -91,7 +91,7 @@ class ComboController extends Controller // 查询在库里缓存但思信已经没有的项目ids,标注为弃用0 $k_ids = array_diff($db_combo_item_ids, $sixin_combo_item_ids); if(count($k_ids)>0){ - DB::table('combo_items')->whereIn('item_id',$k_ids)->update(['status'=>0]); + DB::table('combo_items')->where(['combo_id'=>$combo['Id']])->whereIn('item_id',$k_ids)->delete(); } diff --git a/Laravel/app/Http/Controllers/API/H5/ComboController.php b/Laravel/app/Http/Controllers/API/H5/ComboController.php index f90c678..f88269c 100644 --- a/Laravel/app/Http/Controllers/API/H5/ComboController.php +++ b/Laravel/app/Http/Controllers/API/H5/ComboController.php @@ -120,6 +120,26 @@ select combo_id as c_id,count(*) as count from orders where status in(2,4) group 'text_color' => '#34C292', 'color' => '#E9F8F3', ]; + + //多选一 + $duo_xuan_yi=[]; + if(json_decode($combo->duo_xuan_yi)){ + $N1=json_decode($combo->duo_xuan_yi); + foreach ($N1 as $k=>$v){ + foreach ($v->包含项目 as $k2=>$v2){ + + $duo_xuan_yi[$k][]=[ + 'item_id' =>$v2->Id, + 'item_name' => $v2->名称, + 'price'=>$v2->价格 + ]; + } + + } + } + $combo->duo_xuan_yi =$duo_xuan_yi; + + } $hospital_info = $hospital; diff --git a/Laravel/app/Http/Controllers/API/H5/NMRController.php b/Laravel/app/Http/Controllers/API/H5/NMRController.php index e79f4cf..80f981f 100644 --- a/Laravel/app/Http/Controllers/API/H5/NMRController.php +++ b/Laravel/app/Http/Controllers/API/H5/NMRController.php @@ -16,16 +16,41 @@ class NMRController extends Controller $month=request('month'); $list=[ [ - 'date'=>'2024-9-29', + 'date'=>'2024-10-18', 'count'=>20, ], [ - 'date'=>'2024-9-30', + 'date'=>'2024-10-19', 'count'=>10, ], - ]; - return \Yz::Return(true,"查询完成",['list'=>$list]); + //获取整月日期 + // 获取当月的第一天 + $firstDay = date("Y-m-d", strtotime($month . "-01")); + // 获取当月的最后一天 + $lastDay = date("Y-m-t", strtotime($month)); + $dates = array(); + $k=0; + for ($i = $firstDay; $i <= $lastDay; $i = date("Y-m-d", strtotime($i . " +1 day"))) { + $xingqi=\App\Lib\Tools::GetWeekName($i); + $dates[]=[ + 'date'=>$i, + 'xingqi'=>$xingqi, + 'count'=>0 + ]; + foreach ($list as $item) { + if($item['date'] == $i){ + $dates[$k]=[ + 'date'=>$i, + 'xingqi'=>$xingqi, + 'count'=>$item['count'] + ]; + break; + } + } + $k++; + } + return \Yz::Return(true,"查询完成",['list'=>$dates]); } //核磁当日号源 diff --git a/Laravel/app/Http/Controllers/API/Internal/SiXinPushController.php b/Laravel/app/Http/Controllers/API/Internal/SiXinPushController.php index 13f55ea..0f7ebb7 100644 --- a/Laravel/app/Http/Controllers/API/Internal/SiXinPushController.php +++ b/Laravel/app/Http/Controllers/API/Internal/SiXinPushController.php @@ -3,6 +3,7 @@ namespace App\Http\Controllers\API\Internal; use App\Http\Controllers\Controller; +use App\Services\ComboItemGroupService; use App\Services\ReportService; use Illuminate\Database\Schema\Blueprint; use Illuminate\Http\Request; @@ -34,7 +35,8 @@ class SiXinPushController extends Controller } //如果推送的是套餐、项目、分组 if ($code == 'updateInfo') { - + $ComboItemGroup=new ComboItemGroupService(); + return $ComboItemGroup->Save($content); } return \Yz::Return(true, "接收完成", $code); } else { diff --git a/Laravel/app/Http/Controllers/API/PEISApiController.php b/Laravel/app/Http/Controllers/API/PEISApiController.php index 7f6b962..5ea643c 100644 --- a/Laravel/app/Http/Controllers/API/PEISApiController.php +++ b/Laravel/app/Http/Controllers/API/PEISApiController.php @@ -29,7 +29,7 @@ class PEISApiController extends Controller $api['团检预约取消'] = "{$url}/PEISCommon/CancelUnitAppointment/{$code}"; $api['体检报告查询'] = "{$url}/PEISCommon/QueryExamReport/{$code}"; $api['预约时段修改'] = "{$url}/PEISCommon/ModifyAppointmentDTRange/{$code}"; - $api['修改用户预约时间'] = "http://10.0.20.227:8888/ExtAPI/SetAppointmentMoment?key=YmMxOGI2MDUxZmFh&{$code}"; + $api['修改用户预约时间'] = "http://220.174.210.111:8888/ExtAPI/SetAppointmentMoment?key=YmMxOGI2MDUxZmFh&{$code}"; $api['分诊查询体检号'] = "{$url}/PEISCommon/QueryEventNo/{$code}"; return $api["{$url_code}"] ?? $url_code; } @@ -109,23 +109,7 @@ class PEISApiController extends Controller - if (!json_decode($res_string, true)) { - return \Yz::Return(false, '获取失败', [ - 'url' => $url, - 'data' => $data, - 'res' => $res_string - ]); - } - $res = json_decode($res_string, true); - if ($res['ResultCode'] != 0){ - throw new HttpResponseException( \Yz::echoError1("体检系统提示:". $res['ResultContent'])); - } - - return [ - 'code' => $res['ResultCode'], - 'message' => $res['ResultContent'], - 'data' => $res['Records'] - ]; + return $res_string; } public static function RequestLog($url, $post_data, $code, $mark) diff --git a/Laravel/app/Services/ComboItemGroupService.php b/Laravel/app/Services/ComboItemGroupService.php new file mode 100644 index 0000000..23b04c9 --- /dev/null +++ b/Laravel/app/Services/ComboItemGroupService.php @@ -0,0 +1,103 @@ +where(['combo_id' => $combo['Id']])->delete(); + DB::table('combo_items')->where(['combo_id' => $combo['Id']])->delete(); + } + $sixin_combo_item_ids=[];//思信套餐内项目ids + if($combo['变更类别']=='修改' || $combo['变更类别']=='新增'){ + $item = []; + foreach ($combo['包含项目'] as $key => $v) { + $sixin_combo_item_ids[]=$v['Id']; + //在独立表中缓存一份套餐对应的项目信息 + $item_sex = null; + if (isset($v['性别限制'])) { + $item_sex_array = ['全部' => 0, '男' => 1, '女' => 2]; + $item_sex = $item_sex_array[$combo['性别限制']] >= 0 ? $item_sex_array[$combo['性别限制']] : null; + } + $item_date = [ + 'combo_id'=>$combo['Id'], + 'item_id'=>$v['Id'], + 'name'=>$v['名称'], + 'desc' => $v['简介'], + 'keshi_id' => $v['科室Id'], + 'keshi_name' => $v['科室名称'], + 'price'=> $v['价格'], + 'sex'=>$item_sex, + 'can_qian_hou'=>$v['餐前餐后'], + 'status'=>1 + ]; + $db_combo_item = DB::table('combo_items')->where(['item_id' => $v['Id'], 'combo_id' => $combo['Id']])->first(); + if (!!$db_combo_item) { + //如果存在项目 + $u = DB::table('combo_items')->where(['id' => $db_combo_item->id])->update($item_date); + } else { + //如果不在项目 + $u = DB::table('combo_items')->insert($item_date); + } + $item[] = [ + 'id' => $v['Id'], + 'name' => $v['名称'], + 'desc' => $v['简介'], + 'keshi_name' => $v['科室名称'], + ]; + } + //查询当前套餐缓存的套餐项目ids + $db_combo_item_ids=DB::table('combo_items') + ->where(['combo_id' => $combo['Id']])->pluck('item_id')->toArray(); + // 查询在库里缓存但思信已经没有的项目ids,标注为弃用0 + $k_ids = array_diff($db_combo_item_ids, $sixin_combo_item_ids); + if(count($k_ids)>0){ + DB::table('combo_items')->where(['combo_id'=>$combo['Id']])->whereIn('item_id',$k_ids)->delete(); + } + $item = json_encode($item, JSON_UNESCAPED_UNICODE); + $sex = null; + if (isset($combo['性别限制'])) { + $sex_array = ['全部' => 0, '男' => 1, '女' => 2]; + $sex = $sex_array[$combo['性别限制']] >= 0 ? $sex_array[$combo['性别限制']] : null; + } + + $db_combo = DB::table('combos')->where(['combo_id' => $combo['Id']])->first(); + $comboData = [ + 'combo_id' => $combo['Id'], + 'sex' => $sex, + 'name' => $combo['名称'], + 'pinyin' => $combo['拼音'], + 'original_price' => $combo['原价'], + 'price' => $combo['价格'], + 'items' => $item, + 'item_count' => $combo['项目数量'], + 'duo_xuan_yi'=>json_encode($combo['包含多选一组'], JSON_UNESCAPED_UNICODE), + 'status' => 1, + 'updated_at' => date('Y-m-d H:i:s'), + ]; + if (!!$db_combo) { + //如果存在套餐 + $u = DB::table('combos')->where([ 'combo_id' => $combo['Id']])->update($comboData); + } else { + //如果不存在套餐 + $comboData['tags'] = json_encode([]); + $comboData['tags2'] = json_encode([]); + $u = DB::table('combos')->insert($comboData); + } + if ($u) { + $successCount++; + } else { + return \Yz::echoError1('更新失败'); + } + } + } + return \Yz::Return(true, '操作完成', ['success_count' => $successCount, 'combos_count' => count($combos)]); + } + } +} diff --git a/h5/pages/main/ctime/ctime.vue b/h5/pages/main/ctime/ctime.vue index ebe1c20..f9e7377 100644 --- a/h5/pages/main/ctime/ctime.vue +++ b/h5/pages/main/ctime/ctime.vue @@ -335,9 +335,12 @@ uni.showToast({ title: '改约完成' }); - uni.redirectTo({ - url:'/pages/main/order/order' - }) + setTimeout(()=>{ + uni.redirectTo({ + url:'/pages/main/order/order' + }) + },1000) + } }); }