From 472e0fc47ba3f84748394a6073a665c8fabaadb1 Mon Sep 17 00:00:00 2001 From: yanzai Date: Sat, 29 Jun 2024 22:13:47 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=90=E5=8C=BB=E9=99=A2=E5=92=8C?= =?UTF-8?q?=E7=AB=99=E7=82=B9=E8=AE=BE=E7=BD=AE=E3=80=81=E5=A5=97=E9=A4=90?= =?UTF-8?q?=E7=BC=93=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../API/Admin/YeWu/ComboController.php | 83 ++++++++++++++ .../API/Admin/YeWu/HospitalController.php | 16 ++- .../API/Admin/YeWu/PEISApiController.php | 57 ++++++++++ .../Admin/YeWu/healthCalendarController.php | 2 +- Laravel/routes/api.php | 3 +- admin/.env.development | 2 +- admin/src/api/api.js | 9 ++ .../views/OrganizationMngr/HospitalMngr.vue | 105 +++++++++++++++--- admin/vite.config.js | 2 +- 9 files changed, 258 insertions(+), 21 deletions(-) create mode 100644 Laravel/app/Http/Controllers/API/Admin/YeWu/ComboController.php create mode 100644 Laravel/app/Http/Controllers/API/Admin/YeWu/PEISApiController.php diff --git a/Laravel/app/Http/Controllers/API/Admin/YeWu/ComboController.php b/Laravel/app/Http/Controllers/API/Admin/YeWu/ComboController.php new file mode 100644 index 0000000..0b51f6e --- /dev/null +++ b/Laravel/app/Http/Controllers/API/Admin/YeWu/ComboController.php @@ -0,0 +1,83 @@ +"0","价格上限"=>"999999","性别"=>null,"妇检"=>false,"请求来源"=>"小程序" + ]; + $peis=new PEISApiController(); + $info= $peis::Post('套餐查询',$hospital_id,$data,false); + $successCount=0;//成功的数量 + + if(count($info['data'])>0){ + $combos=$info['data']; + foreach ($combos as $c_key=>$combo){ + + $item=[]; + $comboDetail= $peis::Post('套餐详情查询',$hospital_id,['套餐Id'=>$combo['Id']],false); + if($comboDetail['code']!=0) return \Yz::echoError1("套餐详情查询失败"); + + $comboDetail_list=$comboDetail['data'][0]['包含项目']; + foreach ($comboDetail_list as $key=>$v){ + $item[]=[ + 'id'=>$v['Id'], + 'name'=>$v['名称'], + 'desc'=>$v['简介'], + ]; + } + + $item=json_encode($item,JSON_UNESCAPED_UNICODE); + + + $db_combo=DB::table('combos')->where(['combo_id'=>$combo['Id']])->first(); + $comboData=[ + 'hospital_id'=>$hospital_id, + 'combo_id'=>$combo['Id'], + 'name'=>$combo['名称'], + 'original_price'=>$combo['原价'], + 'price'=>$combo['价格'], + 'items'=>$item, + 'updated_at'=>date('Y-m-d H:i:s'), + ]; + if(!!$db_combo){ + //如果存在套餐 + $u=DB::table('combos')->where(['combo_id'=>$combo['Id']])->update($comboData); + }else{ + //如果不存在套餐 + $u= DB::table('combos')->insert($comboData); + } + if($u){ + $successCount++; + }else{ + return \Yz::echoError1('更新失败'); + } + + } + $hospital=DB::table('hospital')->where(['id'=>$hospital_id])->first(); + if(!!$hospital->frequency){ + $date = new DateTime(); + $date->modify('+'.$hospital->frequency.' minutes'); + $formatted_time = $date->format('Y-m-d H:i:s'); + DB::table("hospital")->where(['id'=>$hospital_id])->update([ + 'next_time'=>$formatted_time + ]); + } + return \Yz::Return(true,'操作完成',['success_count'=>$successCount,'combos_count'=>count($combos)]); + + }else{ + return \Yz::echoError1('未查询到套餐'); + } + } +} diff --git a/Laravel/app/Http/Controllers/API/Admin/YeWu/HospitalController.php b/Laravel/app/Http/Controllers/API/Admin/YeWu/HospitalController.php index f3a7b69..a3f875c 100644 --- a/Laravel/app/Http/Controllers/API/Admin/YeWu/HospitalController.php +++ b/Laravel/app/Http/Controllers/API/Admin/YeWu/HospitalController.php @@ -51,13 +51,27 @@ class HospitalController extends Controller { $id = request('id'); $info=DB::table('hospital') - ->select('id','name','code','address','longitude','latitude','logo','dev','tel','status') ->where(['id'=>$id,'is_del'=>0])->first(); if(!!$info){ + $info->api_list= $info->api_list?implode(',',json_decode( $info->api_list)):''; return \Yz::Return(true,'查询成功',$info); }else{ return \Yz::echoError1("查询失败"); } } + public function SaveCacheInfo() + { + $Info =request('Info'); + $ex=DB::table('hospital')->where(['id'=>$Info['id']])->update([ + 'frequency'=>$Info['frequency'], + 'api_list'=>json_encode($Info['api_list'],JSON_UNESCAPED_UNICODE) + ]); + if($ex){ + return \Yz::Return(true,"保存成功",[]); + }else{ + return \Yz::echoError1("保存失败"); + } + + } //获取 } diff --git a/Laravel/app/Http/Controllers/API/Admin/YeWu/PEISApiController.php b/Laravel/app/Http/Controllers/API/Admin/YeWu/PEISApiController.php new file mode 100644 index 0000000..dcd72f8 --- /dev/null +++ b/Laravel/app/Http/Controllers/API/Admin/YeWu/PEISApiController.php @@ -0,0 +1,57 @@ +where(['id'=>$hospital_id,'status'=>1,'is_del'=>0])->first(); + if (!$hospital) return \Yz::echoError1('医院不存在'); + $code = $hospital->code; + $url = self::Api($url_code, $code); +// self::RequestLog($url, $data, $code, $url_code); + $data_string = json_encode($data, JSON_UNESCAPED_UNICODE); + $ch = curl_init(); + curl_setopt($ch, CURLOPT_URL, $url); + curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); + curl_setopt($ch, CURLOPT_HTTPHEADER, [ + 'Content-Type: application/json; charset=utf-8', + 'Content-Length: ' . strlen($data_string) + ]); + curl_setopt($ch, CURLOPT_POST, 1); + curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string); + $res_string = curl_exec($ch); + curl_close($ch); + + + if (!json_decode($res_string, true)) { + return \Yz::Return(false,'获取失败', [ + 'url' => $url, + 'data' => $data, + 'res' => $res_string + ]); + } + $res = json_decode($res_string, true); + + + return [ + 'code' => $res['ResultCode'], + 'message' => $res['ResultContent'], + 'data' => $res['Records'] + ]; + } +} diff --git a/Laravel/app/Http/Controllers/API/Admin/YeWu/healthCalendarController.php b/Laravel/app/Http/Controllers/API/Admin/YeWu/healthCalendarController.php index 072f58b..132f981 100644 --- a/Laravel/app/Http/Controllers/API/Admin/YeWu/healthCalendarController.php +++ b/Laravel/app/Http/Controllers/API/Admin/YeWu/healthCalendarController.php @@ -9,7 +9,7 @@ use App\Services\Admin\YeWu\HealthCalendarService; class healthCalendarController extends Controller { public function getList(Request $request){ - $userid = $request->get('userid');//中间件产生的参数 + $userid = $request->get('userid');//中间件产生的参数1 $group = $request->get('role');//中间件产生的参数 $page =request('page'); $pageSize =request('pageSize'); diff --git a/Laravel/routes/api.php b/Laravel/routes/api.php index aee7233..8c8d609 100644 --- a/Laravel/routes/api.php +++ b/Laravel/routes/api.php @@ -58,12 +58,13 @@ Route::group(['middleware'=>['checktoken','log'],'prefix'=>'v1'],function () { Route::post('admin/HospitalSave','App\Http\Controllers\API\Admin\YeWu\HospitalController@Save'); Route::post('admin/HospitalGetList','App\Http\Controllers\API\Admin\YeWu\HospitalController@GetList'); Route::post('admin/GetBaseInfoDetail','App\Http\Controllers\API\Admin\YeWu\HospitalController@GetBaseInfoDetail'); + Route::post('admin/SaveCacheInfo','App\Http\Controllers\API\Admin\YeWu\HospitalController@SaveCacheInfo'); }); - +Route::post('admin/UpdateCombo','App\Http\Controllers\API\Admin\YeWu\ComboController@UpdateCombo')->middleware('log'); diff --git a/admin/.env.development b/admin/.env.development index 83bc6a6..37d4560 100644 --- a/admin/.env.development +++ b/admin/.env.development @@ -1,3 +1,3 @@ ENV = 'development' VITE_APP_API = '/api/' -VITE_APP_FILE = 'http://tijian-composite' \ No newline at end of file +VITE_APP_FILE = 'http://tjweb.pi.sa0.online:88' \ No newline at end of file diff --git a/admin/src/api/api.js b/admin/src/api/api.js index 70df43f..42a122e 100644 --- a/admin/src/api/api.js +++ b/admin/src/api/api.js @@ -136,4 +136,13 @@ export const HospitalGetList = (data={}) => { //获取医院基本信息 export const GetBaseInfoDetail = (data={}) => { return axios({url:import.meta.env.VITE_APP_API+'v1/admin/GetBaseInfoDetail',data:data}) +} + +//更新缓存 +export const UpdateCombo = (data={}) => { + return axios({url:import.meta.env.VITE_APP_API+'admin/UpdateCombo',data:data}) +} +//更新缓存 +export const SaveCacheInfo = (data={}) => { + return axios({url:import.meta.env.VITE_APP_API+'v1/admin/SaveCacheInfo',data:data}) } \ No newline at end of file diff --git a/admin/src/views/OrganizationMngr/HospitalMngr.vue b/admin/src/views/OrganizationMngr/HospitalMngr.vue index f2b1263..59423ed 100644 --- a/admin/src/views/OrganizationMngr/HospitalMngr.vue +++ b/admin/src/views/OrganizationMngr/HospitalMngr.vue @@ -6,7 +6,7 @@ 新建医院 - + + @@ -42,7 +43,7 @@ - + @@ -80,6 +81,30 @@ + + + + + + + + + + {{Info.next_time}} + + + 立即更新缓存 + + + + @@ -96,7 +121,8 @@ UpFileUrl, HospitalSave, HospitalGetList, - GetBaseInfoDetail + GetBaseInfoDetail, + UpdateCombo,SaveCacheInfo } from '@/api/api.js' import { Edit @@ -108,6 +134,7 @@ let pageSize = ref(15) //每页数量 let total = 0 //总数量 let dialogVisible = ref(false) + let CacheDialogVisible=ref(false); const PageSizeChange = (e) => { // 修改每页数量 pageSize.value = e GetList() @@ -123,7 +150,7 @@ } let logo = ref(''); //上传成功钩子 - let BaseUrl=import.meta.env.VITE_APP_FILE + let BaseUrl=ref(import.meta.env.VITE_APP_FILE) const upLoadSuccess = (res) => { logo.value =BaseUrl.value + res.data Info.value.logo = res.data @@ -135,31 +162,38 @@ hospital: '', domain: '', }) + const GetDetail=(row)=>{ + loading.value = true + GetBaseInfoDetail({ + id: row.id + }).then(res => { + loading.value = false + if (res.status) { + Info.value=res.data + logo.value =BaseUrl.value + res.data.logo + + } else { + ElMessage.error(res.msg) + } + }) + } const Add = (row = null) => { dialogVisible.value = true Info.value = { status: 1, } if (row) { - loading.value = true - GetBaseInfoDetail({ - id: row.id - }).then(res => { - loading.value = false - if (res.status) { - Info.value=res.data - } else { - ElMessage.error(res.msg) - } - }) + GetDetail(row) } } const GetList = () => { + loading.value = true HospitalGetList({ page: currentPage.value, pageSize: pageSize.value }).then(res => { + loading.value = false if (res.status) { tableData.value = res.data.list total = res.data.count @@ -194,6 +228,45 @@ } return str.split(",") } + const CacheConfig=(row)=>{ + CacheDialogVisible.value=true, + GetDetail(row) + } + //更新缓存 + const updateCache=()=>{ + loading.value=true + UpdateCombo({hospital:Info.value.id}).then(res=>{ + loading.value=false + if(res.status){ + ElMessage({ + message: "套餐包含"+res.data.combos_count+"条项目,成功更新"+res.data.success_count+"条", + type: 'success', + }) + CacheDialogVisible.value=false + GetList() + }else{ + ElMessage.error(res.msg) + } + }) + } + //保存缓存设置 + const SaveCache=()=>{ + Info.value.api_list = toArray(Info.value.api_list) + loading.value=true + SaveCacheInfo({Info: Info.value}).then(res=>{ + loading.value=false + if(res.status){ + ElMessage({ + message: "保存成功", + type: 'success', + }) + CacheDialogVisible.value=false + }else{ + ElMessage.error(res.msg) + } + }) + } + onMounted(() => { GetList() }) diff --git a/admin/vite.config.js b/admin/vite.config.js index 0439e10..8f68666 100644 --- a/admin/vite.config.js +++ b/admin/vite.config.js @@ -24,7 +24,7 @@ export default defineConfig({ port: 5174, proxy: { '/api': { - target: 'http://tijian-composite/api', // 实际的API服务器地址 + target: 'http://tjweb.pi.sa0.online:88/api', // 实际的API服务器地址 changeOrigin: true, rewrite: (path) => path.replace(/^\/api/, '') // 如果API地址有前缀,可以进行转写 }