鹿和sa0ChunLuyu 1 year ago
commit 16694354c2

@ -27,7 +27,7 @@ class OrderController extends Controller
->orWhere(function($query) use ($persons_sfz) { ->orWhere(function($query) use ($persons_sfz) {
$query->WhereIn('id_number', $persons_sfz) $query->WhereIn('id_number', $persons_sfz)
->where('person_id', 0); ->where('person_id', 0);
})->get(); })->orderBy('id','desc')->get();
$WaitingPaymentTime = config('app.globals.WaitingPaymentTime');//支付等待時間 $WaitingPaymentTime = config('app.globals.WaitingPaymentTime');//支付等待時間
foreach ($OrderList as $key => $list) { foreach ($OrderList as $key => $list) {
if ($list->status == 1) { if ($list->status == 1) {
@ -49,6 +49,9 @@ class OrderController extends Controller
{ {
$id = request('id'); $id = request('id');
$order_info = DB::table('orders')->where(['id' => $id])->first(); $order_info = DB::table('orders')->where(['id' => $id])->first();
if(!!$order_info){
$order_info->buy_info=json_decode($order_info->buy_info,true);
}
return \Yz::Return(true, '获取成功', [ return \Yz::Return(true, '获取成功', [
'info' => $order_info 'info' => $order_info
]); ]);
@ -96,14 +99,17 @@ class OrderController extends Controller
'group' => [ 'group' => [
'id' => '', 'id' => '',
], ],
'nmr_list'=>[]
]; ];
//如果是套餐 //如果是套餐
$TJ_Leixing_id=1;//存储用体检类型
$checkup_type_id = false; //体检类型id $checkup_type_id = false; //体检类型id
if (isset($combo_id) and $combo_id <> 0) { if (isset($combo_id) and $combo_id <> 0) {
$combo_info = DB::table('combos')->where(['combo_id' => $combo_id, 'status' => 1])->first(); $combo_info = DB::table('combos')->where(['combo_id' => $combo_id, 'status' => 1])->first();
if (!$combo_info) return \Yz::echoError1("套餐不存在"); if (!$combo_info) return \Yz::echoError1("套餐不存在");
if (!isset($combo_info->checkup_type_id)) return \Yz::echoError1("套餐未关联体检类型"); if (!isset($combo_info->checkup_type_id)) return \Yz::echoError1("套餐未关联体检类型");
$checkup_type_id = $combo_info->checkup_type_id; $checkup_type_id = $combo_info->checkup_type_id;
$TJ_Leixing_id=$checkup_type_id;
$price += $combo_info->price; $price += $combo_info->price;
$title = $combo_info->name; $title = $combo_info->name;
$buy_info['combo'] = [ $buy_info['combo'] = [
@ -111,6 +117,16 @@ class OrderController extends Controller
'name' => $combo_info->name, 'name' => $combo_info->name,
'price' => $combo_info->price, 'price' => $combo_info->price,
]; ];
//如果有影像科则存储在nmr_list字段
$comboItem=DB::table('combo_items')->where(['combo_id' => $combo_id, 'status' => 1,'keshi_name'=>'影像科'])->get();
if(count($comboItem)>0){
foreach ($comboItem as $item){
$buy_info['nmr_list'][]=[
'item_id' => $item->item_id,
'name' => $item->name,
];
}
}
} }
//如果有自选项目 //如果有自选项目
@ -126,6 +142,13 @@ class OrderController extends Controller
'name' => $item->name, 'name' => $item->name,
'price' => $item->price 'price' => $item->price
]; ];
//如果有影像科则存储在nmr_list字段
if($item->keshi_name=='影像科'){
$buy_info['nmr_list'][]=[
'item_id' => $item->item_id,
'name' => $item->name,
];
}
} }
$missingIds = array_diff($item_ids, $existingIds); $missingIds = array_diff($item_ids, $existingIds);
if (count($missingIds) > 0) return \Yz::echoError1("部分自选项目不可用Id:" . implode(', ', $missingIds)); if (count($missingIds) > 0) return \Yz::echoError1("部分自选项目不可用Id:" . implode(', ', $missingIds));
@ -150,12 +173,28 @@ class OrderController extends Controller
'items' => $group_info['items'], 'items' => $group_info['items'],
'group_id' => $group_info['group_id'], 'group_id' => $group_info['group_id'],
]; ];
$TJ_Leixing_id=$group_info['checkup_type_id'];
$title = "单位团检" . $group_info['combo_name']; $title = "单位团检" . $group_info['combo_name'];
$price = $price + $group_info['sixi_zong_ji_jin_e']; $price = $price + $group_info['sixi_zong_ji_jin_e'];
$need_pay = ($price - $group_info['tongshou_xiane']) > 0 ? $price - $group_info['tongshou_xiane'] : 0; $need_pay = ($price - $group_info['tongshou_xiane']) > 0 ? $price - $group_info['tongshou_xiane'] : 0;
//团检订单金额为减去统收后的金的 //团检订单金额为减去统收后的金的
$price = $need_pay; $price = $need_pay;
$true_price = $need_pay; $true_price = $need_pay;
//如果有影像科则存储在nmr_list字段
$all_items = DB::table('items')->where(['status' => 1,'keshi_name'=>'影像科'])->get();
foreach ($group_info[0]['items'] as $item) {
foreach ($all_items as $it) {
if ($it->item_id == $item['id']) {
$buy_info['nmr_list'][]=[
'item_id' => $item->item_id,
'name' => $item->name,
];
}
}
}
} }
//调用思信接口判断各个项目是否可用 //调用思信接口判断各个项目是否可用
@ -228,6 +267,7 @@ class OrderController extends Controller
'title' => $title, 'title' => $title,
'type' => $type, 'type' => $type,
'web_user_id' => $user->id, 'web_user_id' => $user->id,
'checkup_type_id'=>$TJ_Leixing_id,
'person_id' => $person->id, 'person_id' => $person->id,
'name' => $person->name, 'name' => $person->name,
'id_number' => $person->id_number, 'id_number' => $person->id_number,

@ -19,7 +19,7 @@ class PlanController extends Controller
$use_type=request('use_type');//使用类型 1个检 2团检 $use_type=request('use_type');//使用类型 1个检 2团检
$checkup_type_id=request('checkup_type_id');//体检类型表对应id $checkup_type_id=request('checkup_type_id');//体检类型表对应id
$amount=request('amount');//总金额 $amount=request('amount');//总金额
if(!isset($checkup_type_id)) return \Yz::echoError1("体检类型不能为空");
$first_day_timestamp = strtotime($month . '-01'); $first_day_timestamp = strtotime($month . '-01');
$first_day = date('Y-m-d', $first_day_timestamp); //当月第一天 $first_day = date('Y-m-d', $first_day_timestamp); //当月第一天
$last_day_timestamp = strtotime($month . '-01 +1 month -1 day'); $last_day_timestamp = strtotime($month . '-01 +1 month -1 day');
@ -89,7 +89,7 @@ class PlanController extends Controller
$use_type=request('use_type');//使用类型 1个检 2团检 $use_type=request('use_type');//使用类型 1个检 2团检
$checkup_type_id=(string)request('checkup_type_id');//体检类型表对应id $checkup_type_id=(string)request('checkup_type_id');//体检类型表对应id
$amount=request('amount');//总金额 $amount=request('amount');//总金额
if(!isset($checkup_type_id)) return \Yz::echoError1("体检类型不能为空");
$list=DB::table('plans') $list=DB::table('plans')
->where('date',$date)->whereIn('status',[1,2]) ->where('date',$date)->whereIn('status',[1,2])
->whereRaw('JSON_CONTAINS(checkup_type_id, ?, "$")', [$checkup_type_id]) ->whereRaw('JSON_CONTAINS(checkup_type_id, ?, "$")', [$checkup_type_id])

@ -49,14 +49,17 @@ class OrderController extends Controller
'group' => [ 'group' => [
'id' => '', 'id' => '',
], ],
'nmr_list'=>[]
]; ];
//如果是套餐 //如果是套餐
$TJ_Leixing_id=1;//存储用体检类型
$checkup_type_id = false; //体检类型id $checkup_type_id = false; //体检类型id
if (isset($combo_id) and $combo_id <> 0) { if (isset($combo_id) and $combo_id <> 0) {
$combo_info = DB::table('combos')->where(['combo_id' => $combo_id, 'status' => 1])->first(); $combo_info = DB::table('combos')->where(['combo_id' => $combo_id, 'status' => 1])->first();
if (!$combo_info) return \Yz::echoError1("套餐不存在"); if (!$combo_info) return \Yz::echoError1("套餐不存在");
if (!isset($combo_info->checkup_type_id)) return \Yz::echoError1("套餐未关联体检类型"); if (!isset($combo_info->checkup_type_id)) return \Yz::echoError1("套餐未关联体检类型");
$checkup_type_id = $combo_info->checkup_type_id; $checkup_type_id = $combo_info->checkup_type_id;
$TJ_Leixing_id=$checkup_type_id;
$price += $combo_info->price; $price += $combo_info->price;
$title = $combo_info->name; $title = $combo_info->name;
$buy_info['combo'] = [ $buy_info['combo'] = [
@ -64,6 +67,16 @@ class OrderController extends Controller
'name' => $combo_info->name, 'name' => $combo_info->name,
'price' => $combo_info->price, 'price' => $combo_info->price,
]; ];
//如果有影像科则存储在nmr_list字段
$comboItem=DB::table('combo_items')->where(['combo_id' => $combo_id, 'status' => 1,'keshi_name'=>'影像科'])->get();
if(count($comboItem)>0){
foreach ($comboItem as $item){
$buy_info['nmr_list'][]=[
'item_id' => $item->item_id,
'name' => $item->name,
];
}
}
} }
//如果有自选项目 //如果有自选项目
@ -79,6 +92,13 @@ class OrderController extends Controller
'name' => $item->name, 'name' => $item->name,
'price' => $item->price 'price' => $item->price
]; ];
//如果有影像科则存储在nmr_list字段
if($item->keshi_name=='影像科'){
$buy_info['nmr_list'][]=[
'item_id' => $item->item_id,
'name' => $item->name,
];
}
} }
$missingIds = array_diff($item_ids, $existingIds); $missingIds = array_diff($item_ids, $existingIds);
if (count($missingIds) > 0) return \Yz::echoError1("部分自选项目不可用Id:" . implode(', ', $missingIds)); if (count($missingIds) > 0) return \Yz::echoError1("部分自选项目不可用Id:" . implode(', ', $missingIds));
@ -103,12 +123,27 @@ class OrderController extends Controller
'items' => $group_info['items'], 'items' => $group_info['items'],
'group_id' => $group_info['group_id'], 'group_id' => $group_info['group_id'],
]; ];
$TJ_Leixing_id=$group_info['checkup_type_id'];
$title = "单位团检" . $group_info['combo_name']; $title = "单位团检" . $group_info['combo_name'];
$price = $price + $group_info['sixi_zong_ji_jin_e']; $price = $price + $group_info['sixi_zong_ji_jin_e'];
$need_pay = ($price - $group_info['tongshou_xiane']) > 0 ? $price - $group_info['tongshou_xiane'] : 0; $need_pay = ($price - $group_info['tongshou_xiane']) > 0 ? $price - $group_info['tongshou_xiane'] : 0;
//团检订单金额为减去统收后的金的 //团检订单金额为减去统收后的金的
$price = $need_pay; $price = $need_pay;
$true_price = $need_pay; $true_price = $need_pay;
//如果有影像科则存储在nmr_list字段
$all_items = DB::table('items')->where(['status' => 1,'keshi_name'=>'影像科'])->get();
foreach ($group_info[0]['items'] as $item) {
foreach ($all_items as $it) {
if ($it->item_id == $item['id']) {
$buy_info['nmr_list'][]=[
'item_id' => $item->item_id,
'name' => $item->name,
];
}
}
}
} }
//调用思信接口判断各个项目是否可用 //调用思信接口判断各个项目是否可用
@ -155,6 +190,7 @@ class OrderController extends Controller
'type' => $type, 'type' => $type,
'source' => 'web', 'source' => 'web',
'web_user_id' =>0, 'web_user_id' =>0,
'checkup_type_id'=>$TJ_Leixing_id,
'person_id' => 0, 'person_id' => 0,
'name' => $person['name'], 'name' => $person['name'],
'id_number' => $person['id_number'], 'id_number' => $person['id_number'],

@ -30,11 +30,11 @@ Route::get('/wxGetCode', 'App\Http\Controllers\API\mH5\LoginController@wxGetCode
Route::get('/test', 'App\Http\Controllers\TestController@DBtest'); Route::get('/test', 'App\Http\Controllers\TestController@DBtest');
Route::any('/payNotify', 'App\Http\Controllers\API\H5\PayController@Notify')->middleware('log');//支付回调 Route::any('/payNotify', 'App\Http\Controllers\API\H5\PayController@Notify')->middleware('log');//支付回调
Route::group(['prefix' => 'api/H5'], function () { Route::group(['middleware' => ['log'],'prefix' => 'api/H5'], function () {
Route::post('/CheckUpTypeGetList', 'App\Http\Controllers\API\H5\CheckUpTypeController@GetList');//获取体检类型分类 Route::post('/CheckUpTypeGetList', 'App\Http\Controllers\API\H5\CheckUpTypeController@GetList');//获取体检类型分类
Route::post('/GetComboSort', 'App\Http\Controllers\API\H5\ComboController@GetComboSort');// //获取套餐类型、适用人群 Route::post('/GetComboSort', 'App\Http\Controllers\API\H5\ComboController@GetComboSort');// //获取套餐类型、适用人群
Route::post('/ComboCompare', 'App\Http\Controllers\API\H5\ComboController@ComboCompare');// //套餐对比 Route::post('/ComboCompare', 'App\Http\Controllers\API\H5\ComboController@ComboCompare');// //套餐对比
Route::post('/BuyInfo', 'App\Http\Controllers\API\H5\ComboController@BuyInfo')->middleware('log');//获取购买详情内容(详情页信息) Route::post('/BuyInfo', 'App\Http\Controllers\API\H5\ComboController@BuyInfo');//获取购买详情内容(详情页信息)
Route::post('/GetAllItems', 'App\Http\Controllers\API\H5\ItemController@GetItems');//获取所有自选项目 Route::post('/GetAllItems', 'App\Http\Controllers\API\H5\ItemController@GetItems');//获取所有自选项目
Route::post('/GetReadme', 'App\Http\Controllers\API\H5\HospitalExtraController@GetReadme');//获取注意事项 Route::post('/GetReadme', 'App\Http\Controllers\API\H5\HospitalExtraController@GetReadme');//获取注意事项
Route::post('/GetMonthPlanCount', 'App\Http\Controllers\API\H5\PlanController@GetMonthPlanCount');//获取本月每日剩余号源数量 Route::post('/GetMonthPlanCount', 'App\Http\Controllers\API\H5\PlanController@GetMonthPlanCount');//获取本月每日剩余号源数量

@ -1,29 +1,49 @@
<template> <template>
<view> <view style="background-color: #fff;">
<view class="zhou"> <view class="zhou">
<view class="day" v-for="(item,index) in 7"> <view class="day" v-for="(item,index) in dataInfo.weeklist">
<view class="day_top"> <view :class="index==3?'day_top selected':'day_top'" @click="selectDate(item.date)">
<view>08/03</view> <view>{{item.date.split('-').slice(1).join('/')}}</view>
<view class="zhou_title">周六</view> <view class="zhou_title">{{ item.xingqi.replace('星期', '周').replace('日', '天')}}</view>
</view> </view>
<view class="yu">余20</view> <view class="yu">{{item.count}}</view>
</view> </view>
<view class="xian_k"> <view class="xian_k">
<view class="xian"></view> <view class="xian"></view>
</view> </view>
<view class="rili_icon"> <view class="rili_icon">
<uni-icons type="calendar" size="30" color="#239EA3"></uni-icons> <uni-icons type="calendar" style="font-size: 50rpx;" color="#239EA3"></uni-icons>
<text>更多</text> <text>更多</text>
</view> </view>
</view> </view>
<view class="hengxian"></view> <view class="hengxian"></view>
<view class="timelist"> <view class="timelist">
<view v-for="(item,index) in 24" class="time">07:33</view> <view v-for="(item,index) in dataInfo.list" @click="timeClick(item)" :class="item.time==selectedTime?'time selected':'time'">{{item.time.substring(0, 5)}}</view>
</view> </view>
</view> </view>
</template> </template>
<script> <script setup>
import { defineEmits } from 'vue';
const emit = defineEmits();
const props = defineProps({
dataInfo: {
type: Object,
required: true
},
selectedTime: {
type: String,
required: true
}
});
const selectDate = (date) => {
emit('selectDate', date);
};
const timeClick=(timeInfo)=>{
emit('selectTime', timeInfo);
}
</script> </script>
<style scoped> <style scoped>
@ -47,14 +67,14 @@
display: flex; display: flex;
flex-direction: column; flex-direction: column;
align-items: center; align-items: center;
margin-top: 10rpx;
padding: 10rpx; padding: 10rpx;
border-radius: 16rpx; border-radius: 16rpx;
} }
.selected { .selected {
background-color: #239EA3; background-color: #239EA3;
color: #fff; color: #fff !important;
} }
.zhou_title { .zhou_title {
@ -84,7 +104,7 @@
} }
.rili_icon { .rili_icon {
font-size: 26rpx; font-size: 24rpx;
font-weight: 500; font-weight: 500;
display: flex; display: flex;
flex-direction: column; flex-direction: column;

@ -1,14 +1,113 @@
<template> <template>
<view> <view class="ctime_main">
<WeeklyCalendar/> <view class="zhouli">
<WeeklyCalendar v-if="weekList" :dataInfo="weekList" :selectedTime="selectedTime"
@selectDate="selectDateFunc" @selectTime="selectTimeFunc" />
</view>
<view class="dateitem" v-if="orderInfo">
<view
style="background-color: #f7f7f7; padding: 20rpx; font-size: 30rpx; border-radius: 20rpx;color: #333;">
<view>{{orderInfo.name}}</view>
<view
style="background-color: #f1f1f1;padding: 20rpx 30rpx; margin-top: 10rpx;border-radius: 14rpx;font-size: 28rpx;">
<view v-if=" orderInfo.buy_info.nmr_list && orderInfo.buy_info.nmr_list.length>0">
<view v-for="(item1,index1) in orderInfo.buy_info.nmr_list">
{{item1.name}}
</view>
</view>
<view style="margin-top: 10rpx;">体检日期</view>
</view>
</view>
</view>
<view class="pb-100rpx">
<view
class="text-#fff text-32rpx rounded-45rpx bg-#239EA3 mt-40rpx ma w-520rpx h-90rpx flex flex-items-center flex-justify-center">
确定
</view>
</view>
</view> </view>
</template> </template>
<script setup> <script setup>
import { ref } from 'vue'; import {
ref
} from 'vue';
import {
$image,
$api,
$response
} from "@/api";
import {
onShow
} from "@dcloudio/uni-app";
import WeeklyCalendar from '@/common/WeeklyCalendar.vue'; import WeeklyCalendar from '@/common/WeeklyCalendar.vue';
let weekList = ref(null);
const GetDayPlanListFunc = async () => {
uni.showLoading();
let data = {
hospital: orderInfo.value.hospital_id,
person_id: orderInfo.value.person_id,
date: selectedDate.value,
use_type: orderInfo.value.type,
checkup_type_id: orderInfo.value.checkup_type_id,
amount: orderInfo.value.true_price,
}
const response = await $api("GetDayPlanList", data);
uni.hideLoading();
$response(response, () => {
weekList.value = response.data
});
};
let selectedTime = ref(null);
let orderInfo = ref(null)
const GetOrderInfo = async () => {
uni.showLoading();
const response = await $api("GetOrderDetail", {
id: 38
});
uni.hideLoading();
$response(response, () => {
orderInfo.value = response.data.info
selectedTime.value = orderInfo.value.appointment_time
selectedDate.value = orderInfo.value.appointment_date
GetDayPlanListFunc()
});
}
//weekly
let selectedDate = ref(null);
const selectDateFunc = (date) => {
selectedDate.value = date
GetDayPlanListFunc();
}
//weekly
let SelectedPlanId = ref(null)
const selectTimeFunc = (timeinfo) => {
selectedTime.value = timeinfo.time
SelectedPlanId.value = timeinfo.id
}
onShow(() => {
GetOrderInfo()
});
</script> </script>
<style> <style scoped>
.ctime_main {
padding: 20rpx;
}
.zhouli {
padding: 20rpx;
background-color: #fff;
border-radius: 20rpx;
}
.dateitem {
padding: 20rpx;
background-color: #fff;
border-radius: 20rpx;
margin-top: 20rpx;
}
</style> </style>

@ -188,7 +188,7 @@ const comfrimyy = async () => {
"", "",
item_ids: buyInfo.value.item_ids, item_ids: buyInfo.value.item_ids,
plan_id: plan_id, plan_id: plan_id,
$plan_nmr_id: plan_nmr_id, plan_nmr_id: plan_nmr_id,
}; };
console.log(obj); console.log(obj);

Loading…
Cancel
Save