From dc86e4ee19f85f2bf023ba61e30b9085d4e7f277 Mon Sep 17 00:00:00 2001 From: yanzai Date: Thu, 12 Sep 2024 21:17:01 +0800 Subject: [PATCH] =?UTF-8?q?=E5=90=8E=E5=8F=B0=E5=AE=8C=E5=96=84=E6=96=87?= =?UTF-8?q?=E7=AB=A0=E7=AE=A1=E7=90=86=E3=80=81=E8=AE=B0=E5=BD=95=E5=B0=8F?= =?UTF-8?q?=E7=A8=8B=E5=BA=8F=E6=8E=A5=E5=8F=A3=E6=97=A5=E5=BF=97=E3=80=81?= =?UTF-8?q?=E8=B0=83=E6=95=B4=E9=83=A8=E5=88=86=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../API/Admin/YeWu/ArticleController.php | 34 +++++- .../Http/Controllers/API/ApiMapController.php | 3 + .../Controllers/API/H5/ComboController.php | 71 ++++++++++- .../Controllers/API/H5/UserController.php | 4 +- .../Http/Controllers/API/XCXApiController.php | 53 ++++++++- Laravel/routes/api.php | 3 + admin/src/api/api.js | 12 ++ admin/src/views/H5Mngr/ArticlesMngr.vue | 110 ++++++++++++------ admin/src/views/MedicalCenter/Dashboard.vue | 1 + 9 files changed, 245 insertions(+), 46 deletions(-) diff --git a/Laravel/app/Http/Controllers/API/Admin/YeWu/ArticleController.php b/Laravel/app/Http/Controllers/API/Admin/YeWu/ArticleController.php index 67ac3e4..5ad04fb 100644 --- a/Laravel/app/Http/Controllers/API/Admin/YeWu/ArticleController.php +++ b/Laravel/app/Http/Controllers/API/Admin/YeWu/ArticleController.php @@ -18,7 +18,27 @@ class ArticleController extends Controller } public function Save() { - + $Info=request('Info'); + if(!isset($Info['id'])) return \Yz::echoError1("id不能为空"); + $data=[ + 'title'=>$Info['title'], + 'type'=>$Info['type'], + 'head_img'=>$Info['head_img'], + 'content'=>$Info['content'], + 'author'=>$Info['author'], + 'order'=>$Info['order'], + ]; + $do=false; + if($Info['id']===0){ + $do=DB::table('articles')->insert($data); + }else{ + $do= DB::table('articles')->where(['id'=>$Info['id'],'is_del'=>0])->update($data); + } + if($do){ + return \Yz::Return(true,"操作成功",[]); + }else{ + return \Yz::echoError1("操作失败"); + } } //获取详情 @@ -27,10 +47,20 @@ class ArticleController extends Controller $id=request('id'); $info = DB::table('articles')->where(['id'=>$id,'is_del'=>0,'status'=>1])->first(); if($info){ - return \Yz::Return(true,"查询完成",['info'=>$info]); + return \Yz::Return(true,"查询完成",$info); }else{ return \Yz::echoError1("文章内容查询失败"); } } + public function Del() + { + $id=request('id'); + $d=DB::table('articles')->where(['id'=>$id])->update(['is_del'=>1]); + if($d){ + return \Yz::Return(true,"操作完成",[]); + }else{ + return \Yz::echoError1("删除失败"); + } + } } diff --git a/Laravel/app/Http/Controllers/API/ApiMapController.php b/Laravel/app/Http/Controllers/API/ApiMapController.php index e6722d2..c4b484f 100644 --- a/Laravel/app/Http/Controllers/API/ApiMapController.php +++ b/Laravel/app/Http/Controllers/API/ApiMapController.php @@ -35,6 +35,9 @@ class ApiMapController extends Controller 'GetGeJianButtonList' => $base_url . '/api/H5/GetGeJianButtonList', 'ArticleGetList' => $base_url . '/api/H5/ArticleGetList', 'ArticleGetDetail' => $base_url . '/api/H5/ArticleGetDetail', + 'GetAllItems' => $base_url . '/api/H5/GetAllItems',//获取全部自选项目 + 'BuyInfo' => $base_url . '/api/H5/BuyInfo',//获取全部自选项目 + 'GetComboSort' => $base_url . '/api/H5/GetComboSort',//套餐排序、筛选标签 ]; } diff --git a/Laravel/app/Http/Controllers/API/H5/ComboController.php b/Laravel/app/Http/Controllers/API/H5/ComboController.php index 6a55c75..39e066c 100644 --- a/Laravel/app/Http/Controllers/API/H5/ComboController.php +++ b/Laravel/app/Http/Controllers/API/H5/ComboController.php @@ -38,6 +38,13 @@ class ComboController extends Controller $hospital = $request->post('hospital'); $doctor = $request->post('doctor'); $openid = $request->post('openid'); + + $combo_sort = $request->post('combo_sort'); + $combo_type = $request->post('combo_type'); + $combo_crowd = $request->post('combo_crowd'); + $combo_price = $request->post('combo_price'); + $combo_item = $request->post('combo_item'); + $hospital= DB::table('hospitals')->select('id','name','address','latitude','longitude')->where(['id'=>$hospital])->first(); $user=DB::table('web_users')->where(['openid'=>$openid,'status'=>1,'is_del'=>0])->first(); if(!$user) return \Yz::echoError1('openid对应用户不存在'); @@ -45,9 +52,48 @@ class ComboController extends Controller if(!$person) return \Yz::echoError1("请选择就诊人"); //用户绑定就诊人数量 $personCount=DB::table('web_user_person')->where(['user_id'=>$user->id,'is_del'=>0])->count(); + $canshu=[]; + $sql=''; + if(isset($combo_price)){ + $price_list=[ + "1"=>[0,299], + "2"=>[300,999], + "3"=>[1000,1499], + "4"=>[1500,2999], + "5"=>[3000,999999], + ]; + $sql=" and (a.price>=? and a.price<=?) "; + $canshu[]=$price_list[$combo_price][0]; + $canshu[]=$price_list[$combo_price][1]; + } + if(isset($combo_type)){ + $sql=$sql." and a.type_id=? "; + $canshu[]=$combo_type; + } + if(isset($combo_crowd)){ + $sql=$sql." and a.crowd_id=? "; + $canshu[]=$combo_crowd; + } + if(isset($combo_sort)){ + if($combo_sort==1){ + $sql=$sql." "; + } + if($combo_sort==2){ + $sql=$sql." "; + } + if($combo_sort==3){ + $sql=$sql." order by a.price"; + } + if($combo_sort==4){ + $sql=$sql." order by a.price desc"; + } + + } + + $combos=DB::select("select * from combos as a LEFT JOIN ( select combo_id as c_id,count(*) as count from orders where status in(2,4) group by combo_id -) as b on a.combo_id=b.c_id where a.status=1"); +) as b on a.combo_id=b.c_id where a.status=1".$sql,$canshu); foreach ($combos as $key=>$combo){ $tags=json_decode($combo->tags,true); @@ -121,7 +167,28 @@ select combo_id as c_id,count(*) as count from orders where status in(2,4) group { $type=DB::table('combo_type')->get(); $crowd=DB::table('combo_crowd')->get(); - return \Yz::Return(true,"查询成功",['type'=>$type,'crowd'=>$crowd]); + $sort_list=[ + ["id"=>1,'name'=>'综合排序'], + ["id"=>2,'name'=>'预约最多'], + ["id"=>3,'name'=>'低价优先'], + ["id"=>4,'name'=>'高价优先'], + ]; + $price_list=[ + ['name'=>'300以下','id'=>1], + ['name'=>'300-1000','id'=>2], + ['name'=>'1000-1500','id'=>3], + ['name'=>'1500-3000','id'=>4], + ['name'=>'3000以上','id'=>5], + ]; + $item_label=[ + ["id"=>1,'name'=>'一般检查'], + ["id"=>2,'name'=>'血常规'], + ["id"=>3,'name'=>'尿常规'], + ["id"=>4,'name'=>'肝功能'], + ["id"=>5,'name'=>'肾功能'], + ["id"=>6,'name'=>'血糖'] + ]; + return \Yz::Return(true,"查询成功",['sort_list'=>$sort_list,'combo_type'=>$type,'combo_crowd'=>$crowd,'combo_price'=>$price_list,'combo_item'=>$item_label]); } //获取购买详情内容(详情页信息) diff --git a/Laravel/app/Http/Controllers/API/H5/UserController.php b/Laravel/app/Http/Controllers/API/H5/UserController.php index 4d3fd22..650480d 100644 --- a/Laravel/app/Http/Controllers/API/H5/UserController.php +++ b/Laravel/app/Http/Controllers/API/H5/UserController.php @@ -102,8 +102,8 @@ class UserController extends Controller public function UpdatePersonList($openid) { $XCX=new XCXApiController(); - // $list=$XCX::Post('就诊人列表',['a'=>1]); - // $openid = "234243"; + $list=$XCX::Post('就诊人列表',['a'=>1]); + $ApiPersonList = [ [ 'ghzid' => 'ghz11', diff --git a/Laravel/app/Http/Controllers/API/XCXApiController.php b/Laravel/app/Http/Controllers/API/XCXApiController.php index 1be5b32..55d4e6d 100644 --- a/Laravel/app/Http/Controllers/API/XCXApiController.php +++ b/Laravel/app/Http/Controllers/API/XCXApiController.php @@ -3,11 +3,15 @@ namespace App\Http\Controllers\API; use App\Http\Controllers\Controller; +use Illuminate\Database\Schema\Blueprint; use Illuminate\Http\Request; +use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Http; +use Illuminate\Support\Facades\Schema; class XCXApiController extends Controller { + public static $request; public static function Api($url_code) { $url = 'https://dqgatjzx-wx.sixinyun.com'; @@ -19,13 +23,58 @@ class XCXApiController extends Controller public static function Post($url_code, $data) { $url = self::Api($url_code); + self::RequestLog($url, $data, $url_code,'小程序接口'); $response = Http::post($url,$data); if ($response->successful()) { // 处理成功的响应 - dd($response); + $res_string = json_encode($response->json(),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(); } else { // 处理失败的响应 - dd($response); + self::$request->response_data = "请求失败"; + self::$request->save(); } } + + public static function RequestLog($url, $post_data, $mark ,$code=0) + { + self::CheckTableName(); + foreach ($post_data as $key => $post_datum) { + $str_len = mb_strlen(json_encode($post_datum, JSON_UNESCAPED_UNICODE), 'utf-8'); + $str_size = $str_len / 1024; + if ($str_size > 10) { + $post_data["$key"] = 'Row size too large'; + } + } + $post_data = json_encode($post_data, JSON_UNESCAPED_UNICODE); + self::$request->code = $code; + self::$request->mark = $mark; + self::$request->post_data = $post_data == '[]' ? '{}' : $post_data; + self::$request->request_url = $url; + self::$request->save(); + } + + public static function CheckTableName() + { + $table_name = 'zz_peis_log_' . date('ym'); + $table_count = DB::select('select count(1) as c from information_schema.TABLES where table_schema = ? and table_name = ?', [env('DB_DATABASE'), $table_name])[0]; + if ($table_count->c === 0) { + Schema::create($table_name, function (Blueprint $table) { + $table->id(); + $table->string('code', 50)->index(); + $table->string('mark', 50)->index(); + $table->text('post_data'); + $table->text('response_data')->nullable(); + $table->string('request_url', 300); + $table->timestamps(); + }); + } + self::$request = new \App\Models\PEISLog(); + self::$request->setTable($table_name); + } } diff --git a/Laravel/routes/api.php b/Laravel/routes/api.php index be634a5..57659af 100644 --- a/Laravel/routes/api.php +++ b/Laravel/routes/api.php @@ -82,6 +82,9 @@ Route::group(['middleware' => ['checktoken', 'log'], 'prefix' => 'v1'], function Route::post('admin/QuestionGetDetail', 'App\Http\Controllers\API\Admin\YeWu\QuestionController@GetDetail');//题目详情 Route::post('admin/QuestionDel', 'App\Http\Controllers\API\Admin\YeWu\QuestionController@Del');//删除题目 Route::post('admin/ArticleGetList', 'App\Http\Controllers\API\Admin\YeWu\ArticleController@GetList');//获取文章列表 + Route::post('admin/ArticleSave', 'App\Http\Controllers\API\Admin\YeWu\ArticleController@Save');//文章保存 + Route::post('admin/ArticleGetDetail', 'App\Http\Controllers\API\Admin\YeWu\ArticleController@GetDetail');//文章详情 + Route::post('admin/ArticleGetDel', 'App\Http\Controllers\API\Admin\YeWu\ArticleController@Del');//文章详情 diff --git a/admin/src/api/api.js b/admin/src/api/api.js index 98aa3e2..27428d3 100644 --- a/admin/src/api/api.js +++ b/admin/src/api/api.js @@ -236,4 +236,16 @@ export const QuestionDel = (data={}) => { //获取文章列表 export const ArticleGetList = (data={}) => { return axios({url:import.meta.env.VITE_APP_API+'v1/admin/ArticleGetList',data:data}) +} +//保存文章 +export const ArticleSave = (data={}) => { + return axios({url:import.meta.env.VITE_APP_API+'v1/admin/ArticleSave',data:data}) +} +//文章详情 +export const ArticleGetDetail = (data={}) => { + return axios({url:import.meta.env.VITE_APP_API+'v1/admin/ArticleGetDetail',data:data}) +} +//删除文章 +export const ArticleGetDel = (data={}) => { + return axios({url:import.meta.env.VITE_APP_API+'v1/admin/ArticleGetDel',data:data}) } \ No newline at end of file diff --git a/admin/src/views/H5Mngr/ArticlesMngr.vue b/admin/src/views/H5Mngr/ArticlesMngr.vue index f2f762c..ae6f354 100644 --- a/admin/src/views/H5Mngr/ArticlesMngr.vue +++ b/admin/src/views/H5Mngr/ArticlesMngr.vue @@ -13,6 +13,7 @@ @change="ArticleTypeChange()"> 健康指导 注意事项 + 院内介绍 @@ -27,7 +28,6 @@ -