From 1d1e36bdc0fef67075cc3fb691bd479c8751bccd Mon Sep 17 00:00:00 2001 From: vine_liutk <961510893@qq.com> Date: Mon, 26 Jun 2023 12:28:17 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A4=84=E7=90=86=E8=87=AA=E5=8A=A8=E5=A1=AB?= =?UTF-8?q?=E5=85=A5=E5=92=8C=E7=A6=81=E6=AD=A2=E5=9B=9E=E8=BD=A6=E6=8F=90?= =?UTF-8?q?=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/LiveContinueController.php | 17 ++++- app/Admin/Controllers/LiveExitController.php | 2 +- app/Admin/Controllers/LiveInController.php | 35 ++++++--- app/Admin/Controllers/OldmenController.php | 75 ++++++++++++++++++- app/Admin/routes.php | 1 + 5 files changed, 114 insertions(+), 16 deletions(-) diff --git a/app/Admin/Controllers/LiveContinueController.php b/app/Admin/Controllers/LiveContinueController.php index ad576f0..9601e34 100644 --- a/app/Admin/Controllers/LiveContinueController.php +++ b/app/Admin/Controllers/LiveContinueController.php @@ -64,13 +64,18 @@ class LiveContinueController extends AdminController $feeKeys['del_extends'] = '${del_extends}'; $feeKeys['continue_fee'] = '${continue_fee}'; + foreach(Keyword::getByParentKey('continue_fee') as $fee){ + $continueArr[] = Components::make()->decimalControl('continue_fee['.$fee->key.']', $fee->name)->description(amis('tpl')->tpl('根据当前护理等级,建议费用为:${'.$fee->key.'_tmp}')); + // $feeKeys[$fee->key.'_tmp'] = '${'.$fee->key.'_tmp}'; + } + $page = $this->basePage()->body([ amisMake()->Card()->className('border-0')->body( amisMake()->Wrapper()->className('p-0')->body( amisMake()->Grid()->className('relative')->columns([ amisMake()->Wrapper()->sm(8)->body([ amisMake()->Panel()->title('续住表单')->body( - amisMake()->form()->title('')->panelClassName('border-0')->mode('horizontal')->name('base_form') + amisMake()->form()->title('')->panelClassName('border-0')->mode('horizontal')->name('base_form')->preventEnterSubmit(true) ->api(admin_url('live-continue-do')) ->body([ amisMake()->FieldSetControl()->title('续住人信息')->collapsable(true)->body([ @@ -144,10 +149,16 @@ class LiveContinueController extends AdminController amisMake()->FieldSetControl()->className('mt-10')->title('费用明细')->collapsable(true)->body([ amisMake()->FieldSetControl()->title('基础费用')->className('mt-5')->collapsable(true)->size('base')->body( - amisMake()->Service()->schemaApi([ + amisMake()->Service() + // ->schemaApi([ + // "method"=>'get', + // "url" => admin_url('live-fee-form').'?nurse_lv=${nurse_lv}&start_at=${start_at}&end_at=${end_at}&type=continue_fee', + // ]) + ->api([ "method"=>'get', - "url" => admin_url('live-fee-form').'?nurse_lv=${nurse_lv}&start_at=${start_at}&end_at=${end_at}&type=continue_fee', + "url" => admin_url('live-fee-form-data').'?nurse_lv=${nurse_lv}&start_at=${start_at}&end_at=${end_at}&type=continue_fee', ]) + ->body($continueArr), ), ]), diff --git a/app/Admin/Controllers/LiveExitController.php b/app/Admin/Controllers/LiveExitController.php index 14683ed..a495bc7 100644 --- a/app/Admin/Controllers/LiveExitController.php +++ b/app/Admin/Controllers/LiveExitController.php @@ -36,7 +36,7 @@ class LiveExitController extends AdminController amisMake()->Grid()->className('relative')->columns([ amisMake()->Wrapper()->sm(8)->body([ amisMake()->Panel()->title('结算表单')->body( - amisMake()->form()->title('')->panelClassName('border-0')->mode('horizontal')->name('base_form') + amisMake()->form()->title('')->panelClassName('border-0')->mode('horizontal')->name('base_form')->preventEnterSubmit(true) ->api(admin_url('live-exit-do')) ->body([ amisMake()->FieldSetControl()->title('客人信息')->collapsable(true)->body([ diff --git a/app/Admin/Controllers/LiveInController.php b/app/Admin/Controllers/LiveInController.php index 42b6f67..02dd936 100644 --- a/app/Admin/Controllers/LiveInController.php +++ b/app/Admin/Controllers/LiveInController.php @@ -66,19 +66,20 @@ class LiveInController extends AdminController $feeKeys['live_fee'] = '${live_fee}'; $feeKeys['bonds_fee'] = '${bonds_fee}'; - // foreach(Keyword::getByParentKey('live_fee') as $fee){ - // $feeKeys[$fee->key] = '${'.$fee->key.'}'; - // } - // foreach(Keyword::getByParentKey('bonds_fee') as $fee){ - // $feeKeys[$fee->key] = '${'.$fee->key.'}'; - // } + foreach(Keyword::getByParentKey('live_fee') as $fee){ + $liveArr[] = Components::make()->decimalControl('live_fee['.$fee->key.']', $fee->name)->description(amis('tpl')->tpl('根据当前护理等级,建议费用为:${'.$fee->key.'_tmp}')); + // $feeKeys[$fee->key.'_tmp'] = '${'.$fee->key.'_tmp}'; + } + foreach(Keyword::getByParentKey('bonds_fee') as $fee){ + $bondsArr[] = Components::make()->decimalControl('bonds_fee['.$fee->key.']', $fee->name)->description(amis('tpl')->tpl('根据当前护理等级,建议费用为:${'.$fee->key.'_tmp}')); + } $page = $this->basePage()->body([ amisMake()->Card()->className('border-0')->body( amisMake()->Wrapper()->className('p-0')->body( amisMake()->Grid()->className('relative')->columns([ amisMake()->Wrapper()->sm(8)->body([ amisMake()->Panel()->title('入住表单')->body( - amisMake()->form()->title('')->panelClassName('border-0')->mode('horizontal')->name('base_form') + amisMake()->form()->title('')->panelClassName('border-0')->mode('horizontal')->name('base_form')->preventEnterSubmit(true) ->api(admin_url('live-in-do')) ->body([ amisMake()->FieldSetControl()->title('入住人信息')->collapsable(true)->body([ @@ -147,16 +148,28 @@ class LiveInController extends AdminController amisMake()->FieldSetControl()->className('mt-10')->title('费用明细')->collapsable(true)->body([ amisMake()->FieldSetControl()->title('基础费用')->className('mt-5')->collapsable(true)->size('base')->body( - amisMake()->Service()->schemaApi([ + amisMake()->Service() + // ->schemaApi([ + // "method"=>'get', + // "url" => admin_url('live-fee-form').'?nurse_lv=${nurse_lv}&live_in_date=${live_in_date}&type=live_fee', + // ]) + ->api([ "method"=>'get', - "url" => admin_url('live-fee-form').'?nurse_lv=${nurse_lv}&live_in_date=${live_in_date}&type=live_fee', + "url" => admin_url('live-fee-form-data').'?nurse_lv=${nurse_lv}&live_in_date=${live_in_date}&type=live_fee', ]) + ->body($liveArr), ), amisMake()->FieldSetControl()->title('保证金')->className('mt-5')->collapsable(true)->size('base')->body( - amisMake()->Service()->schemaApi([ + amisMake()->Service() + // ->schemaApi([ + // "method"=>'get', + // "url" => admin_url('live-fee-form').'?nurse_lv=${nurse_lv}&live_in_date=${live_in_date}&type=bonds_fee', + // ]) + ->api([ "method"=>'get', - "url" => admin_url('live-fee-form').'?nurse_lv=${nurse_lv}&live_in_date=${live_in_date}&type=bonds_fee', + "url" => admin_url('live-fee-form-data').'?nurse_lv=${nurse_lv}&live_in_date=${live_in_date}&type=bonds_fee', ]) + ->body($bondsArr), ), ]), diff --git a/app/Admin/Controllers/OldmenController.php b/app/Admin/Controllers/OldmenController.php index 01f86e8..715d13f 100644 --- a/app/Admin/Controllers/OldmenController.php +++ b/app/Admin/Controllers/OldmenController.php @@ -288,6 +288,7 @@ class OldmenController extends AdminController $lv = $request->input('nurse_lv', 1); $feeKey = Keyword::getByParentKey($type); $feeKeyHelp = AdminSetting::whereIn('key', $feeKey?->pluck('key')->toArray())->pluck('values','key')->toArray(); + $feeData = $feeArr = []; foreach(Keyword::getByParentKey($type) as $fee) { $_feeValue = 0; @@ -323,7 +324,79 @@ class OldmenController extends AdminController $_feeValue = $_feeValues[$lv]['fee'] ?? 0; } } - $feeArr[] = Components::make()->decimalControl($type.'['.$fee->key.']', $fee->name)->value($_feeValue)->description(amis('tpl')->tpl('根据当前护理等级,建议费用为:'.$_feeValue)); + $feeArr[] = Components::make()->decimalControl($type.'['.$fee->key.']', $fee->name)->description(amis('tpl')->tpl('根据当前护理等级,建议费用为:'.$_feeValue)); + } + + $resData['body'] = $feeArr; + + return $this->response()->success($resData); + } + + + /** + * 推荐费用表单 + * + */ + public function liveSchemaFormData(Request $request) + { + $type = $request->input('type', 'live_fee'); + $dateRange = $request->input('live_in_date', null); + //处理续住时间传递 + $startDay = $dateRange ? explode(',', $dateRange)[0].' 00:00:00' : $request->input('start_at', null); + $endDay = $dateRange ? explode(',', $dateRange)[1].' 23:59:59' : $request->input('end_at', null); + + if($startDay && $endDay){ + $startDay = Carbon::parse($startDay); + $endDay = Carbon::parse($endDay)->addSecond(1); + $diffYears = $startDay->diffInYears($endDay); + $diffMonths = $startDay->addYears($diffYears)->diffInMonths($endDay); + $diffAbMonths = $startDay->diffInMonths($endDay); + $diffDays = $startDay->addYears($diffYears)->addMonths($diffMonths)->diffInDays($endDay); + $diffAbDays = $startDay->diffInDays($endDay); + } + + $lv = $request->input('nurse_lv', 1); + $feeKey = Keyword::getByParentKey($type); + $feeKeyHelp = AdminSetting::whereIn('key', $feeKey?->pluck('key')->toArray())->pluck('values','key')->toArray(); + $feeData = $feeArr = []; + foreach(Keyword::getByParentKey($type) as $fee) + { + $_feeValue = 0; + if(isset($feeKeyHelp[$fee->key])){ + $_feeValues = []; + if($feeKeyHelp[$fee->key]['has_time'] == 2 && !empty($dateRange)){ + array_map(function($item) use(&$_feeValues){ + $_feeValues[$item['lv']][$item['time_type']] = $item['fee']; + }, $feeKeyHelp[$fee->key]['values']); + + if(isset($_feeValues[$lv]['day'])){ + + //判断是否有设置年份 + if(isset($_feeValues[$lv]['year'])){ + $_feeValue += bcmul($diffYears, $_feeValues[$lv]['year'], 2); + if(isset($_feeValues[$lv]['month'])){ + $_feeValue += bcmul($diffMonths, $_feeValues[$lv]['month'], 2); + $_feeValue += bcmul($diffDays, $_feeValues[$lv]['day'], 2); + }else{ + $_feeValue += bcmul($diffAbDays, $_feeValues[$lv]['day'], 2); + } + }else{ + if(isset($_feeValues[$lv]['month'])){ + $_feeValue += bcmul($diffAbMonths, $_feeValues[$lv]['month'], 2); + $_feeValue += bcmul($diffDays, $_feeValues[$lv]['day'], 2); + }else{ + $_feeValue += bcmul($diffAbDays, $_feeValues[$lv]['day'], 2); + } + } + } + }else{ + $_feeValues = collect($feeKeyHelp[$fee->key]['values'] ?? [])->keyBy('lv')->toArray(); + $_feeValue = $_feeValues[$lv]['fee'] ?? 0; + } + } + + $feeArr[$type][$fee->key] = $_feeValue; + $feeArr[$fee->key.'_tmp'] = $_feeValue; } return $this->response()->success($feeArr); diff --git a/app/Admin/routes.php b/app/Admin/routes.php index 90c0b7a..08c8fd9 100644 --- a/app/Admin/routes.php +++ b/app/Admin/routes.php @@ -28,6 +28,7 @@ Route::group([ $router->get('live-feelist', '\App\Admin\Controllers\OldmenController@liveFeelist'); $router->get('exit-feelist', '\App\Admin\Controllers\OldmenController@exitFeelist'); $router->get('live-fee-form', '\App\Admin\Controllers\OldmenController@liveSchemaForm'); + $router->get('live-fee-form-data', '\App\Admin\Controllers\OldmenController@liveSchemaFormData'); $router->get('live-const-flow', '\App\Admin\Controllers\OldmenController@liveConstFlow'); //客人-入住 $router->get('live-in', '\App\Admin\Controllers\LiveInController@index');