where(['combo_id' => $combo['Id']])->update([ 'original_price'=> $combo['原价'], 'price'=> $combo['价格'], ]); foreach ($combo['包含项目'] as $key => $v) { DB::table('combo_items')->where(['combo_id' => $combo['Id'],'item_id'=>$v['Id']])->update([ 'price'=> $v['价格'] ]); } } if($combo['变更类别']=='删除'){ DB::table('combos')->where(['combo_id' => $combo['Id']])->delete(); DB::table('combo_items')->where(['combo_id' => $combo['Id']])->delete(); } $sixin_combo_item_ids=[];//思信套餐内项目ids if($combo['变更类别']=='修改' || $combo['变更类别']=='新增'){ if($combo['可选']===false){//如果可选为false,则删除 DB::table('combos')->where(['combo_id' => $combo['Id']])->delete(); DB::table('combo_items')->where(['combo_id' => $combo['Id']])->delete(); continue; } $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(); $crowd_name=''; if(json_decode($combo['备注'], JSON_UNESCAPED_UNICODE)){ $beizhu=json_decode($combo['备注'], JSON_UNESCAPED_UNICODE); $crowd_name=isset($beizhu['适用人群'])?$beizhu['适用人群']:''; } $youxiaoEndTime=$combo['有效截止日期']; try { $EndTime = Carbon::parse($combo['有效截止日期']); // 判断是否是当天的开始时间(00:00:00) if ($EndTime->isStartOfDay()) { // Carbon 提供的方法 $youxiaoEndTime = $EndTime->endOfDay()->format('Y-m-d H:i:s'); } else { $youxiaoEndTime = $EndTime->format('Y-m-d H:i:s'); } } catch (\Exception $e) { $youxiaoEndTime = $EndTime; // 解析失败则保持原样 } $comboData = [ 'combo_id' => $combo['Id'], 'sex' => $sex, 'name' => $combo['名称'], 'pinyin' => $combo['拼音'], 'original_price' => $combo['原价'], 'price' => $combo['价格'], 'items' => $item, 'item_count' => $combo['项目数量'], 'type_name' => $combo['标签名称'], 'crowd_name' =>$crowd_name, 'beizhu'=>$combo['备注'], 'duo_xuan_yi'=>json_encode($combo['包含多选一组'], JSON_UNESCAPED_UNICODE), 'keyue_start_time' => $combo['可约开始时间'], 'keyue_end_time' => $combo['可约截止时间'], 'youxiao_start_time' => $combo['有效开始日期'], 'youxiao_end_time' => $youxiaoEndTime, '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('更新失败'); } } } } if(isset($res['变更收费项目'])){ $items=$res['变更收费项目']; foreach ($items as $item){ if($item['变更类别']=='改价'){ DB::table('items')->where(['item_id'=>$item['Id']])->update(['price'=>$item['价格']]); } if($item['变更类别']=='删除'){ DB::table('items')->where(['item_id'=>$item['Id']])->delete(); } if($item['变更类别']=='修改' || $item['变更类别']=='新增'){ $item_sex=null; if (isset($item['性别限制'])) { $item_sex_array = ['全部' => 0, '男' => 1, '女' => 2]; $item_sex = $item_sex_array[$item['性别限制']] >= 0 ? $item_sex_array[$item['性别限制']] : null; } $ItemData=[ 'item_id'=>$item['Id'], 'sex'=>$item_sex, 'can_qian_hou'=>$item['餐前餐后'], 'name'=>$item['名称'], 'pinyin'=>$item['拼音'], 'price'=>$item['价格'], 'is_choose'=>$item['可选']===false ? "0" : "1", 'keshi_id'=>$item['科室Id'], 'keshi_name'=>$item['科室名称'], 'beizhu'=>$item['备注'], 'jianjie'=>$item['简介'], 'tishi'=>$item['提示信息'], 'status'=>1, 'updated_at'=>date('Y-m-d H:i:s'), ]; $cha= DB::table('items')->where(['item_id'=>$item['Id']])->get(); if(count($cha)>0){ DB::table('items')->where(['item_id'=>$item['Id']])->update($ItemData); }else{ DB::table('items')->insert($ItemData); } } } } return \Yz::Return(true, '操作完成', []); } //弃检 public function QiJian($tj_num,$username,$ids) { $peis = new PEISApiController(); $data=[ '体检号'=>$tj_num, "操作医生姓名"=>null, "取消弃检"=>false, "收费项目Id列表"=>$ids ]; $url=$peis::Api("弃检接口","460107000001"); $res_str=$peis::Post2("弃检接口",$url,1,$data); $res = json_decode($res_str, true); if($res['Success']===true){ return ['status'=>true,'msg'=>$res['Message']]; }else{ return ['status'=>false,'msg'=>$res['Message']]; } } }