套餐项目单独缓存到表、配置version添加到数据库

wenjuan
yanzai 1 year ago
parent 18b900457e
commit 22586f0215

@ -12,148 +12,193 @@ class ComboController extends Controller
//获取套餐 //获取套餐
public function UpdateCombo() public function UpdateCombo()
{ {
$hospital_id =request('hospital'); $hospital_id = request('hospital');
date_default_timezone_set('PRC'); date_default_timezone_set('PRC');
$data=[ $data = [
"价格下限"=>"0","价格上限"=>"999999","性别"=>null,"妇检"=>false "价格下限" => "0", "价格上限" => "999999", "性别" => null, "妇检" => false
]; ];
$peis=new PEISApiController(); $peis = new PEISApiController();
$info= $peis::Post('套餐查询',$hospital_id,$data,false); $info = $peis::Post('套餐查询', $hospital_id, $data, false);
$successCount=0;//成功的数量 $successCount = 0;//成功的数量
if(count($info['data'])>0){ if (count($info['data']) > 0) {
$combos=$info['data']; $combos = $info['data'];
//查询医院下所有缓存的套餐 //查询医院下所有缓存的套餐
$db_combo_all=DB::table('combos')->where(['hospital_id'=>$hospital_id])->get(); $db_combo_all = DB::table('combos')->where(['hospital_id' => $hospital_id])->get();
foreach($db_combo_all as $key=>$db_combo){ foreach ($db_combo_all as $key => $db_combo) {
$cunzai=false; $cunzai = false;
foreach ($combos as $c_key=>$combo){ foreach ($combos as $c_key => $combo) {
if($db_combo->combo_id==$combo['Id']){ if ($db_combo->combo_id == $combo['Id']) {
$cunzai=true; $cunzai = true;
} }
} }
if(!$cunzai){ if (!$cunzai) {
DB::table('combos')->where(['id'=>$db_combo->id])->update([ DB::table('combos')->where(['id' => $db_combo->id])->update([
'status'=>0 'status' => 0
]); ]);
} }
} }
foreach ($combos as $c_key=>$combo){ foreach ($combos as $c_key => $combo) {
$sixin_combo_item_ids=[];//思信套餐内项目ids
$item=[]; $item = [];
$comboDetail= $peis::Post('套餐详情查询',$hospital_id,['套餐Id'=>$combo['Id']],false); $comboDetail = $peis::Post('套餐详情查询', $hospital_id, ['套餐Id' => $combo['Id']], false);
if($comboDetail['code']!=0) return \Yz::echoError1("套餐详情查询失败"); if ($comboDetail['code'] != 0) return \Yz::echoError1("套餐详情查询失败");
$comboDetail_list=$comboDetail['data'][0]['包含项目']; $comboDetail_list = $comboDetail['data'][0]['包含项目'];
foreach ($comboDetail_list as $key=>$v){ foreach ($comboDetail_list as $key => $v) {
$item[]=[ $sixin_combo_item_ids[]=$v['Id'];
'id'=>$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['名称'], 'name'=>$v['名称'],
'desc'=>$v['简介'], 'desc' => $v['简介'],
'keshi_name'=>$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=json_encode($item,JSON_UNESCAPED_UNICODE);
$sex=null;
if(isset($combo['性别限制'])){ $item[] = [
$sex_array=['全部'=>0,'男'=>1,'女'=>2]; 'id' => $v['Id'],
$sex=$sex_array[$combo['性别限制']]>=0?$sex_array[$combo['性别限制']]:null; 'name' => $v['名称'],
'desc' => $v['简介'],
'keshi_name' => $v['科室名称'],
];
} }
$db_combo=DB::table('combos')->where(['hospital_id'=>$hospital_id,'combo_id'=>$combo['Id']])->first();
$comboData=[ //查询当前套餐缓存的套餐项目ids
'hospital_id'=>$hospital_id, $db_combo_item_ids=DB::table('combo_items')
'combo_id'=>$combo['Id'], ->where(['combo_id' => $combo['Id']])->pluck('item_id')->toArray();
'sex'=>$sex, // 查询在库里缓存但思信已经没有的项目ids,标注为弃用0
'name'=>$combo['名称'], $k_ids = array_diff($db_combo_item_ids, $sixin_combo_item_ids);
'pinyin'=>$combo['拼音'], if(count($k_ids)>0){
'original_price'=>$combo['原价'], DB::table('combo_items')->whereIn('item_id',$k_ids)->update(['status'=>0]);
'price'=>$combo['价格'], }
'items'=>$item,
'item_count'=>$comboDetail['data'][0]['项目数量'],
'status'=>1, $item = json_encode($item, JSON_UNESCAPED_UNICODE);
'updated_at'=>date('Y-m-d H:i:s'), $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(['hospital_id' => $hospital_id, 'combo_id' => $combo['Id']])->first();
$comboData = [
'hospital_id' => $hospital_id,
'combo_id' => $combo['Id'],
'sex' => $sex,
'name' => $combo['名称'],
'pinyin' => $combo['拼音'],
'original_price' => $combo['原价'],
'price' => $combo['价格'],
'items' => $item,
'item_count' => $comboDetail['data'][0]['项目数量'],
'status' => 1,
'updated_at' => date('Y-m-d H:i:s'),
]; ];
if(!!$db_combo){ if (!!$db_combo) {
//如果存在套餐 //如果存在套餐
$u=DB::table('combos')->where(['hospital_id'=>$hospital_id,'combo_id'=>$combo['Id']])->update($comboData); $u = DB::table('combos')->where(['hospital_id' => $hospital_id, 'combo_id' => $combo['Id']])->update($comboData);
}else{ } else {
//如果不存在套餐 //如果不存在套餐
$comboData['tags']=json_encode([]); $comboData['tags'] = json_encode([]);
$u= DB::table('combos')->insert($comboData); $u = DB::table('combos')->insert($comboData);
} }
if($u){ if ($u) {
$successCount++; $successCount++;
}else{ } else {
return \Yz::echoError1('更新失败'); return \Yz::echoError1('更新失败');
} }
} }
$hospital=DB::table('hospitals')->where(['id'=>$hospital_id])->first(); $hospital = DB::table('hospitals')->where(['id' => $hospital_id])->first();
if(!!$hospital->frequency){ if (!!$hospital->frequency) {
$date = new DateTime(); $date = new DateTime();
$date->modify('+'.$hospital->frequency.' minutes'); $date->modify('+' . $hospital->frequency . ' minutes');
$formatted_time = $date->format('Y-m-d H:i:s'); $formatted_time = $date->format('Y-m-d H:i:s');
DB::table("hospitals")->where(['id'=>$hospital_id])->update([ DB::table("hospitals")->where(['id' => $hospital_id])->update([
'next_time'=>$formatted_time 'next_time' => $formatted_time
]); ]);
} }
return \Yz::Return(true,'操作完成',['success_count'=>$successCount,'combos_count'=>count($combos)]); return \Yz::Return(true, '操作完成', ['success_count' => $successCount, 'combos_count' => count($combos)]);
}else{ } else {
return \Yz::echoError1('未查询到套餐'); return \Yz::echoError1('未查询到套餐');
} }
} }
public function GetList() public function GetList()
{ {
$page = request('page'); $page = request('page');
$pageSize = request('pageSize'); $pageSize = request('pageSize');
$searchInfo = request('searchInfo'); $searchInfo = request('searchInfo');
$list=DB::table('combos') $list = DB::table('combos')
->select('combos.*','hospitals.name as hospital_name','combo_type.name as combo_type_name','combo_crowd.name as combo_crowd_name') ->select('combos.*', 'hospitals.name as hospital_name', 'combo_type.name as combo_type_name', 'combo_crowd.name as combo_crowd_name')
->leftJoin('hospitals','hospitals.id','=','combos.hospital_id') ->leftJoin('hospitals', 'hospitals.id', '=', 'combos.hospital_id')
->leftJoin('combo_type','combos.type_id','=','combo_type.id') ->leftJoin('combo_type', 'combos.type_id', '=', 'combo_type.id')
->leftJoin('combo_crowd','combos.crowd_id','=','combo_crowd.id'); ->leftJoin('combo_crowd', 'combos.crowd_id', '=', 'combo_crowd.id');
if(isset($searchInfo['name'])){ if (isset($searchInfo['name'])) {
$list = $list->where('combos.name', 'like', '%' . $searchInfo['name'] . '%'); $list = $list->where('combos.name', 'like', '%' . $searchInfo['name'] . '%');
} }
$count=$list->count(); $count = $list->count();
$list=$list $list = $list
->skip(($page-1)*$pageSize) // 跳过前9999条记录 ->skip(($page - 1) * $pageSize) // 跳过前9999条记录
->take($pageSize)->get(); ->take($pageSize)->get();
return \Yz::Return(true,"查询完成",['list'=>$list,'count'=>$count]); return \Yz::Return(true, "查询完成", ['list' => $list, 'count' => $count]);
} }
public function GetDetail() public function GetDetail()
{ {
$id = request('id'); $id = request('id');
$query=DB::table('combos')->where(['id'=>$id])->first(); $query = DB::table('combos')->where(['id' => $id])->first();
if(!!$query){ if (!!$query) {
$query->tags=implode(", ", json_decode($query->tags,true)); $query->tags = implode(", ", json_decode($query->tags, true));
$query->tags2=implode(", ", json_decode($query->tags2,true)); $query->tags2 = implode(", ", json_decode($query->tags2, true));
$query->items=json_decode($query->items); $query->items = json_decode($query->items);
return \Yz::Return(true,"查询完成",$query); return \Yz::Return(true, "查询完成", $query);
}else{ } else {
return \Yz::echoError1("获取详情失败"); return \Yz::echoError1("获取详情失败");
} }
} }
public function Save() public function Save()
{ {
$Info = request('Info'); $Info = request('Info');
$u=DB::table('combos')->where(['id'=>$Info['id']])->update([ $u = DB::table('combos')->where(['id' => $Info['id']])->update([
'checkup_type_id'=>$Info['checkup_type_id'], 'checkup_type_id' => $Info['checkup_type_id'],
'type_id'=>$Info['type_id'], 'type_id' => $Info['type_id'],
'crowd_id'=>$Info['crowd_id'], 'crowd_id' => $Info['crowd_id'],
'tags'=>isset($Info['tags'])?json_encode($Info['tags'],JSON_UNESCAPED_UNICODE):[], 'tags' => isset($Info['tags']) ? json_encode($Info['tags'], JSON_UNESCAPED_UNICODE) : [],
'tags2'=>isset($Info['tags2'])?json_encode($Info['tags2'],JSON_UNESCAPED_UNICODE):[], 'tags2' => isset($Info['tags2']) ? json_encode($Info['tags2'], JSON_UNESCAPED_UNICODE) : [],
'cover'=>$Info['cover'], 'cover' => $Info['cover'],
'intro'=>$Info['intro'], 'intro' => $Info['intro'],
'sub_intro'=>$Info['sub_intro'], 'sub_intro' => $Info['sub_intro'],
'desc'=>$Info['desc'] 'desc' => $Info['desc']
]); ]);
if($u){ if ($u) {
return \Yz::Return(true,"更新完成",[]); return \Yz::Return(true, "更新完成", []);
}else{ } else {
return \Yz::echoError1("没有数据更新"); return \Yz::echoError1("没有数据更新");
} }
} }

@ -12,7 +12,8 @@ class HomeController extends Controller
// 获取配置更新时间 // 获取配置更新时间
public function config_version() public function config_version()
{ {
$version = '2024-08-28 18:00:02'; $version= DB::table('configs')->where(['label'=>'H5配置版本'])->first();
$version = $version->value;
return \Yz::Return(true, '获取成功', [ return \Yz::Return(true, '获取成功', [
'version' => $version 'version' => $version
]); ]);

@ -81,6 +81,7 @@ Route::group(['middleware' => ['checktoken', 'log'], 'prefix' => 'v1'], function
Route::post('admin/QuestionSave', 'App\Http\Controllers\API\Admin\YeWu\QuestionController@Save');//保存题目 Route::post('admin/QuestionSave', 'App\Http\Controllers\API\Admin\YeWu\QuestionController@Save');//保存题目
Route::post('admin/QuestionGetDetail', 'App\Http\Controllers\API\Admin\YeWu\QuestionController@GetDetail');//题目详情 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/QuestionDel', 'App\Http\Controllers\API\Admin\YeWu\QuestionController@Del');//删除题目
Route::post('admin/ArticleGetList', 'App\Http\Controllers\API\Admin\YeWu\ArticleController@GetList');//获取文章列表

@ -233,3 +233,7 @@ export const QuestionGetDetail = (data={}) => {
export const QuestionDel = (data={}) => { export const QuestionDel = (data={}) => {
return axios({url:import.meta.env.VITE_APP_API+'v1/admin/QuestionDel',data:data}) return axios({url:import.meta.env.VITE_APP_API+'v1/admin/QuestionDel',data:data})
} }
//获取文章列表
export const ArticleGetList = (data={}) => {
return axios({url:import.meta.env.VITE_APP_API+'v1/admin/ArticleGetList',data:data})
}

@ -155,6 +155,13 @@ const router = createRouter({
meta: { meta: {
title: '订单列表' title: '订单列表'
} }
},{
path: '/H5Mngr/articlesmngr',
name: 'H5MngrArticlesMngr',
component: () => import('../views/H5Mngr/ArticlesMngr.vue'),
meta: {
title: '文章管理'
}
}] }]
}, },

Loading…
Cancel
Save