main
yanzai 11 months ago
parent 3efd4038d3
commit 41d684a045

@ -96,6 +96,7 @@ class ApiMapController extends Controller
'GetSanFangList' => $base_url . '/api/H5/GetSanFangList', // 获取三方机构列表
'GetSanFangCode' => $base_url . '/api/H5/GetSanFangCode', // 获取三方机构code
'HeXiaoSanFangCode' => $base_url . '/api/H5/HeXiaoSanFangCode', // 核销三方机构code
'GetHomeNotice' => $base_url . '/api/H5/GetHomeNotice', // 首页消息通知
];
}

@ -293,7 +293,7 @@ FROM combos;");
//获取套餐类型、适用人群
public function GetComboSort()
{
$type = DB::table('combo_type')->get();
$type = DB::table('combo_type')->where('name','<>','专家定制')->get();
$crowd = DB::table('combo_crowd')->get();
$sort_list = [
["id" => 1, 'name' => '综合排序'],

@ -84,6 +84,9 @@ class FenzhenController extends Controller
$id = request('id');
$info = DB::table('orders')->where(['id' => $id])->whereIn('status', [2, 4])->first();
if (!$info) return \Yz::echoError1("查询就诊人订单失败");
if($info->check_read_status==1){
DB::table('orders')->where('id', $id)->update(['check_read_status' => 2]);
}
$end_time = date('H:i', strtotime($info->appointment_date . ' ' . $info->appointment_time) + (60 * 60 * 0.54));
$clinics = [];
$order = new OrderService();

@ -169,6 +169,36 @@ class HomeController extends Controller
];
return \Yz::Return(true, "查询完成", ['list' => $list]);
}
//获取首页相关信息通知
public function GetHomeNotice()
{
$openid = request('openid');
$person_id = request('person_id');
$id_number = request('id_number');
$user = DB::table('web_users')->where(['openid' => $openid, 'is_del' => 0])->first();
if (!$user) return \Yz::echoError1("openid对应用户不存在");
$order_count=0;
$tjyd_count=0;//体检引导
$bgcx_count=0;//报告查询
$order_count=DB::table('orders')->where(['web_user_id'=>$user->id,'status'=>2])
->where(function($query) {
$query->where('appointment_number', '=', '')
->orWhereNull('appointment_number');
})->count();
if(isset($person_id)){
$tjyd_count=DB::table('orders')->where(['person_id'=>$person_id,'status'=>4,'check_read_status'=>1])->count();
}
if(isset($id_number)){
$bgcx_count=DB::table('report_l1_records')->where(['证件号码'=>$id_number,'is_read'=>0])->whereIn('体检状态',['报告已出','总检完成'])->count();
}
$return_data=[
['label'=>'我的订单','value' => $order_count],
['label'=>'体检引导','value' => $tjyd_count],
['label'=>'报告查询','value' => $bgcx_count]
];
return \Yz::Return(true,"查询完成",$return_data);
}
function getValueByLabel($items, $label)
{

@ -179,6 +179,7 @@ class OrderController extends Controller
$Nx1_arrInfo = [];
$TJ_Leixing_id = 1;//存储用体检类型
$checkup_type_id = false; //体检类型id
$cha_sanfang_code=false;
if (isset($combo_id) and $combo_id <> 0) {
$combo_info = DB::table('combos')->where(['combo_id' => $combo_id, 'status' => 1])->first();
if (!$combo_info) return \Yz::echoError1("套餐不存在");
@ -214,7 +215,7 @@ class OrderController extends Controller
$TJ_Leixing_id = $checkup_type_id;
$price += $combo_info->price;
//如果使用了第三方券
$cha_sanfang_code=false;
if(isset($sanfang_code) and isset($sanfang_code['code_num'])){
if($sanfang_code['combo_id']<>$combo_id) return \Yz::echoError1("转赠码与套餐不匹配");
//校验有效性,临时抵消套餐价格
@ -795,6 +796,11 @@ class OrderController extends Controller
'appointment_time' => $planInfo->time,
'doctor' => isset($doctor) ? $doctor : null,
]);
$is_sendMsg = DB::table('configs')->where(['label' => '预约完成短信通知'])->first();
if (!!$is_sendMsg and $is_sendMsg->value == 1 and strlen($orderInfo->phone)>0) {
$asp = new AspNetZhuanController();
$asp::SendMsg($orderInfo->hospital_id, $orderInfo->phone, $orderInfo->name, $planInfo->date . ' ' . substr($planInfo->time, 0, 5),$orderInfo->sex);
}
}
return \Yz::Return(true, "操作完成", []);
}

@ -28,7 +28,7 @@ class OrderNewController extends Controller
$configs_youxiaoqi=DB::table('configs')->where(['label'=>"订单有效期"])->first();
$date = new DateTime();
$date->modify('+'.$configs_youxiaoqi['value'].' days');
$date->modify('+'.$configs_youxiaoqi->value.' days');
$youxiaoqi_end=$date->format('Y-m-d');
if (count($item_ids) != 0 and $item_ids[0] == "") {
@ -94,6 +94,7 @@ class OrderNewController extends Controller
$Nx1_arrInfo = [];
$TJ_Leixing_id = 1;//存储用体检类型
$checkup_type_id = false; //体检类型id
$cha_sanfang_code=false;
if (isset($combo_id) and $combo_id <> 0) {
$combo_info = DB::table('combos')->where(['combo_id' => $combo_id, 'status' => 1])->first();
if (!$combo_info) return \Yz::echoError1("套餐不存在");
@ -132,7 +133,6 @@ class OrderNewController extends Controller
$TJ_Leixing_id = $checkup_type_id;
$price += $combo_info->price;
//如果使用了第三方券
$cha_sanfang_code=false;
if(isset($sanfang_code) and isset($sanfang_code['code_num'])){
if($sanfang_code['combo_id']<>$combo_id) return \Yz::echoError1("转赠码与套餐不匹配");
//校验有效性,临时抵消套餐价格
@ -188,7 +188,7 @@ class OrderNewController extends Controller
// if (isset($wj_flag) and $wj_flag == 1) {
// $item_price = $item_price * $wj_zhekou;
// }
$item_price = $item_price *0.8; //所有自选项目打8折
$item_price = $item_price * config('app.globals.ZiXuan_ZheKou'); //所有自选项目打8折
$price += $item_price;
$missingIds = array_diff($item_ids, $existingIds);

@ -86,6 +86,7 @@ class PayController extends Controller
$XCX = new XCXApiController();
$res = $XCX::Post('订单查询', ['orderid' => $order_number]);
//判断如果支付成功,更改订单状态
$is_yuyue=false;//是否已经勾选号源
if ($res['data']['trade_state'] === 'SUCCESS') {
$order = DB::table('orders')->where(['order_number' => $order_number])->first();
if($order->status == 1){
@ -93,7 +94,7 @@ class PayController extends Controller
'status' => 2,
'pay_time' => date('Y-m-d H:i:s'),
]);
$is_yuyue=false;//是否已经勾选号源
if(!!$order->plan_id){
$is_yuyue=true;
$Finish = new OrderController();//预约体检

@ -38,7 +38,8 @@ class OrderController extends Controller
// 'tj_number'=>$info['data'][0]['体检号'],
'tj_number' => $exam_id,
'check_status' => 2,
'check_time' => date('Y-m-d H:i:s')
'check_time' => date('Y-m-d H:i:s'),
'check_read_status'=>1
]);
return \Yz::Return(true, "", ['id' => $orderInfo->id]);
} else {

@ -314,8 +314,8 @@ class OrderService
if (!$newOrderInfo) return ['status'=>false,'msg'=>"id:".$NewOrderid.",未找到有效订单"];
if ($newOrderInfo->status!== 2) return ['status'=>false,'msg'=>"id:".$NewOrderid."订单状态异常。当前状态:". $newOrderInfo->status];
if (!empty($newOrderInfo->person_id)) return ['status'=>false,'msg'=>"id:".$NewOrderid."已被接收,禁止取消:"];
if(strstr($newOrderInfo->from,"from")){
$from=explode("from",$newOrderInfo->from);
if(strstr($newOrderInfo->source,"from")){
$from=explode("from",$newOrderInfo->source);
if(count($from)<>2) return ['status'=>false,'msg'=>"id:".$NewOrderid."接收转赠异常,无法取消"];
$oldOrderid=$from[1];
}else{

@ -928,6 +928,8 @@
}
const plan_list = ref([])
const getPlanList = async () => {
if(input_data.value.gender==='男') input_data.value.gender="1"
if(input_data.value.gender==='女') input_data.value.gender="2"
const response = await axios.post($api("GetDayPlanList"), {
hospital: input_data.value.hospital,
openid: "",

@ -88,6 +88,7 @@ Route::group(['middleware' => ['log'],'prefix' => 'api/H5'], function () {
Route::post('/GetSanFangList', 'App\Http\Controllers\API\H5\SanFangController@GetSanFangList');//获取三方机构列表
Route::post('/GetSanFangCode', 'App\Http\Controllers\API\H5\SanFangController@GetSanFangCode');//获取三方code
Route::post('/HeXiaoSanFangCode', 'App\Http\Controllers\API\H5\SanFangController@HeXiaoSanFangCode');//核销三方code
Route::post('/GetHomeNotice', 'App\Http\Controllers\API\H5\HomeController@GetHomeNotice');//首页消息通知

@ -23,7 +23,7 @@ function PayCheckFunc()
$pay_check = $db->getRow("select * from orders where status = ? and order_number is not null order by paycheck_time asc", [
1,
]);
if (!!$pay_check ) {
if (!!$pay_check and strtotime($pay_check['paycheck_time'])>strtotime($pay_check['created_at']) + 60) {
Db2::u($db, 'orders', [
'paycheck_time' => date('Y-m-d H:i:s'),
], 'where id = ?', [

@ -114,6 +114,11 @@
</view>
</view>
</template>
<style>
.isfocused{
border-color: aquamarine !important;
}
</style>
<style scoped>
.choose_main{
background-color: #E0F1F5;

@ -172,9 +172,10 @@
uni.hideLoading();
$response(response, async () => {
combo_select.value = response.data;
combo_select.value.sort_sale_count=[{id:1,name:"销量从低到高"},{id:2,name:"销量从高到低"}]
// combo_select.value.sort_price=[{id:1,name:""},{id:2,name:""}]
combo_select.value.sort_price=[{id:2,name:"价格从高到低"}]
// combo_select.value.sort_sale_count=[{id:1,name:""},{id:2,name:""}]
combo_select.value.sort_sale_count=[{id:2,name:"销量从高到低"}]
combo_select.value.sort_price=[{id:1,name:"价格从低到高"},{id:2,name:"价格从高到低"}]
if ("sort_list" in combo_select.value) {
selectKey.value = "sort_list";
sortIndex.value = 0;

@ -13,7 +13,7 @@
$response
} from '@/api'
import {
onShow
onShow,onLoad
} from '@dcloudio/uni-app'
import wx from 'weixin-js-sdk'
import {
@ -26,6 +26,7 @@
$response(response, () => {
// $store.user = response.data.info
$store.setUser(response.data.info);
GetNoticeFunc()
})
}
const switch_arr = [
@ -208,7 +209,20 @@
url: "/pages/test/test"
})
}
//
let NoticeInfo=ref([])
const GetNoticeFunc = async () => {
uni.showLoading();
const response = await $api("GetHomeNotice",{person_id:$store.getUser().person_id,id_number:$store.getUser().id_number});
uni.hideLoading();
$response(response, async () => {
NoticeInfo.value=response.data
});
};
const getItemValue=(name) =>{
const item = NoticeInfo.value.find(item => item.label === name && item.value > 0);
return item ? item.value : '';
}
onShow(() => {
uni.getLocation({
@ -244,6 +258,9 @@
$store.setDuoXuanYi({});
$store.setPeiOuUser({});
})
onLoad(()=>{
})
</script>
<template>
<view>
@ -287,6 +304,7 @@
</view>
<view class="more_wrapper" v-for="(i,k) in $store.config.button">
<view @click="buttonClick(ii)" class="more_item_wrapper" v-for="(ii,ik) in i" :key="ik">
<view v-if="NoticeInfo.length>0 && NoticeInfo.some(item => item.label === ii.name && item.value>0) " class="hongdian"><span v-if="ii.name=='我的订单'">{{ getItemValue(ii.name) }}</span></view>
<view class="more_item_icon_wrapper">
<image :src="$image(ii.icon)"></image>
</view>
@ -300,6 +318,20 @@
</view>
</template>
<style scoped>
.hongdian{
line-height: 20rpx;
height: 20rpx;
width: 20rpx;
background-color: #ff9170;
border-radius: 50%;
position: absolute;
right: 40rpx;
top: 30rpx;
z-index: 100;
font-size: 16rpx;
color: #fff;
text-align: center;
}
.more_item_name_wrapper {
font-weight: 500;
font-size: 26rpx;
@ -533,6 +565,7 @@
.more_item_wrapper {
width: 170rpx;
height: 157rpx;
position: relative;
}
.more_wrapper {

@ -466,7 +466,7 @@
增加项目
</button>
<button @click="buy(1)" class="button">
立即支付
下一步
</button>
</view>
</view>

@ -100,6 +100,32 @@
let person_name = ref('')
let combo_name = ref('')
let combo_id=ref(null);
const getBuyInfoFuc = async () => {
//
let obj = {
item_ids: buyInfo.value.item_ids,
combo_id: combo_id.value,
hospital: $store.save_info?.hospital?$store.save_info?.hospital:1,
person_id: person_id.value,
group_id: buyInfo.value.group_id,
duo_xuan_yi: $store.getDuoXuanYi(),
wj: buyInfo.value.wj,
sanfang_code:buyInfo.value.sanfang_code?.code_num?buyInfo.value.sanfang_code:null
};
const response = await $api("BuyInfo", obj);
$response(response, () => {
if(combo_id.value){
combo_name.value=response.data.combo_info?.combo_name
}else{
combo_name.value = buyInfo.value.group_id ? $store.getGroupInfo()?.group_name : ''
}
})
}
//
const GetDayPlanListFunc = async () => {
uni.showLoading();
@ -522,14 +548,20 @@
GetOrderInfo()
} else {
checkup_type_id.value = buyInfo.value.group_id ?
$store.getGroupInfo()?.checkup_type_id : $store.getCheckupTypeId()?.id,
hospital_id.value = buyInfo.value.hospital,
person_id.value = buyInfo.value.person_id,
combo_id.value=buyInfo.value.combo_id,
use_type.value = buyInfo.value.group_id ? 2 : 1,
person_name.value = buyInfo.value.group_id ? $store.getGroupInfo()?.name : '',
combo_name.value = buyInfo.value.group_id ? $store.getGroupInfo()?.group_name : '',
$store.getGroupInfo()?.checkup_type_id : $store.getCheckupTypeId()?.id
hospital_id.value = buyInfo.value.hospital
person_id.value = buyInfo.value.person_id
combo_id.value=buyInfo.value.combo_id
use_type.value = buyInfo.value.group_id ? 2 : 1
if(buyInfo.value.group_id){
person_name.value = $store.getGroupInfo()?.name
}else{
person_name.value = $store.getUser()?.name
}
GetDayPlanListFunc()
getBuyInfoFuc()
}
});

@ -225,7 +225,7 @@ export default {
},
primaryColor: {
type: String,
default: '#2979ff'
default: '#009da5'
},
styles: {
type: Object,

Loading…
Cancel
Save