新增医生接诊新增处理服务包订单
This commit is contained in:
parent
656994c662
commit
fa9830d681
@ -22,25 +22,29 @@ class LockRequestMiddleware implements MiddlewareInterface
|
|||||||
|
|
||||||
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
|
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
|
||||||
{
|
{
|
||||||
$user_info = $request->getAttribute("userInfo");
|
try {
|
||||||
if (empty($user_info)){
|
$user_info = $request->getAttribute("userInfo");
|
||||||
return $handler->handle($request);
|
if (empty($user_info)){
|
||||||
}
|
return $handler->handle($request);
|
||||||
|
}
|
||||||
|
|
||||||
// 获取请求路径
|
// 获取请求路径
|
||||||
$path_info = $request->getUri()->getPath();
|
$path_info = $request->getUri()->getPath();
|
||||||
if (empty($path_info)){
|
if (empty($path_info)){
|
||||||
return $handler->handle($request);
|
return $handler->handle($request);
|
||||||
}
|
}
|
||||||
|
|
||||||
$redis = $this->container->get(Redis::class);
|
$redis = $this->container->get(Redis::class);
|
||||||
$redis_key = "lock_request_" . $path_info . $user_info['user_id'];
|
$redis_key = "lock_request_" . $path_info . $user_info['user_id'];
|
||||||
$redis_lock = $redis->setnx($redis_key,1);
|
$redis_lock = $redis->setnx($redis_key,1);
|
||||||
// 设置过期时间
|
// 设置过期时间
|
||||||
$redis->expire($redis_key,1);
|
$redis->expire($redis_key,1);
|
||||||
if (!$redis_lock){
|
if (!$redis_lock){
|
||||||
// 设置失败,表示已经设置该值
|
// 设置失败,表示已经设置该值
|
||||||
sleep(1);
|
sleep(1);
|
||||||
|
}
|
||||||
|
}catch (\Throwable $e){
|
||||||
|
// 异常不进行处理
|
||||||
}
|
}
|
||||||
|
|
||||||
return $handler->handle($request);
|
return $handler->handle($request);
|
||||||
|
|||||||
@ -31,6 +31,8 @@ use App\Model\OrderPrescriptionFile;
|
|||||||
use App\Model\OrderPrescriptionIcd;
|
use App\Model\OrderPrescriptionIcd;
|
||||||
use App\Model\OrderPrescriptionProduct;
|
use App\Model\OrderPrescriptionProduct;
|
||||||
use App\Model\OrderProductItem;
|
use App\Model\OrderProductItem;
|
||||||
|
use App\Model\OrderServicePackage;
|
||||||
|
use App\Model\OrderServicePackageInquiry;
|
||||||
use App\Model\PatientFollow;
|
use App\Model\PatientFollow;
|
||||||
use App\Model\PatientHistoryInquiry;
|
use App\Model\PatientHistoryInquiry;
|
||||||
use App\Model\PatientHistoryInquiry as PatientHistoryInquiryModel;
|
use App\Model\PatientHistoryInquiry as PatientHistoryInquiryModel;
|
||||||
@ -1814,21 +1816,6 @@ class UserDoctorService extends BaseService
|
|||||||
return fail(HttpEnumCode::HTTP_ERROR, "接诊失败");
|
return fail(HttpEnumCode::HTTP_ERROR, "接诊失败");
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
|
||||||
$redis = $this->container->get(Redis::class);
|
|
||||||
$redis_key = "order_inquiry_lock_" . $order_inquiry_id;
|
|
||||||
$redis_lock = $redis->setnx($redis_key,1);
|
|
||||||
if (!$redis_lock){
|
|
||||||
// 设置失败,表示已经设置该值
|
|
||||||
return fail(HttpEnumCode::HTTP_SUCCESS,"请您稍后重试");
|
|
||||||
}
|
|
||||||
|
|
||||||
// 设置过期时间
|
|
||||||
$redis->expire($redis_key,3);
|
|
||||||
}catch (\Throwable $e){
|
|
||||||
return fail(HttpEnumCode::HTTP_SUCCESS,"请您稍后重试");
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($order_inquiry['inquiry_status'] == 4) {
|
if ($order_inquiry['inquiry_status'] == 4) {
|
||||||
// 问诊订单状态(1:待支付 2:待分配 3:待接诊 4:已接诊 5:已完成 6:已结束 7:已取消)
|
// 问诊订单状态(1:待支付 2:待分配 3:待接诊 4:已接诊 5:已完成 6:已结束 7:已取消)
|
||||||
return success();
|
return success();
|
||||||
@ -1885,12 +1872,39 @@ class UserDoctorService extends BaseService
|
|||||||
$params['order_inquiry_id'] = $order_inquiry_id;
|
$params['order_inquiry_id'] = $order_inquiry_id;
|
||||||
OrderInquiry::edit($params,$data);
|
OrderInquiry::edit($params,$data);
|
||||||
|
|
||||||
/**
|
// 处理服务包订单
|
||||||
* 获取订单结束周期
|
if ($order_inquiry['inquiry_type'] == 1){
|
||||||
* 疑难问诊为自己配置周期。
|
if ($order_inquiry['inquiry_mode'] == 8 || $order_inquiry['inquiry_mode'] == 9){
|
||||||
*/
|
// 获取关联服务包订单
|
||||||
// 疑难问诊
|
$params = array();
|
||||||
|
$params['order_inquiry_id'] = $order_inquiry['order_inquiry_id'];
|
||||||
|
$order_service_package_inquiry = OrderServicePackageInquiry::getOne($params);
|
||||||
|
if (empty($order_service_package_inquiry)){
|
||||||
|
Db::rollBack();
|
||||||
|
return fail(HttpEnumCode::HTTP_ERROR, "接诊失败");
|
||||||
|
}
|
||||||
|
|
||||||
|
// 开始服务时间
|
||||||
|
$start_time = date('Y-m-d H:i:s',time());
|
||||||
|
|
||||||
|
// 结束服务时间
|
||||||
|
$finish_time = date('Y-m-d H:i:s', strtotime('+90 days', $start_time));
|
||||||
|
|
||||||
|
// 修改服务包
|
||||||
|
$data = array();
|
||||||
|
$data['order_service_status'] = 3; // 订单状态(1:待支付 2:未开始 3:服务中 4:服务完成 5:服务取消)
|
||||||
|
$data['start_time'] = $start_time;
|
||||||
|
$data['finish_time'] = $finish_time;
|
||||||
|
|
||||||
|
$params = array();
|
||||||
|
$params['order_service_id'] = $order_service_package_inquiry['order_service_id'];
|
||||||
|
OrderServicePackage::edit($params,$data);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取订单持续时长
|
||||||
if ($order_inquiry['inquiry_type'] == 1 && $order_inquiry['inquiry_mode'] == 6){
|
if ($order_inquiry['inquiry_type'] == 1 && $order_inquiry['inquiry_mode'] == 6){
|
||||||
|
// 疑难问诊为自己配置周期。
|
||||||
$params = array();
|
$params = array();
|
||||||
$params['doctor_id'] = $order_inquiry['doctor_id'];
|
$params['doctor_id'] = $order_inquiry['doctor_id'];
|
||||||
$params['inquiry_type'] = $order_inquiry['inquiry_type'];
|
$params['inquiry_type'] = $order_inquiry['inquiry_type'];
|
||||||
@ -1918,8 +1932,6 @@ class UserDoctorService extends BaseService
|
|||||||
return fail(HttpEnumCode::SERVER_ERROR, "订单创建失败");
|
return fail(HttpEnumCode::SERVER_ERROR, "订单创建失败");
|
||||||
}
|
}
|
||||||
|
|
||||||
// 删除锁
|
|
||||||
$redis->del($redis_key);
|
|
||||||
Db::commit();
|
Db::commit();
|
||||||
} catch (\Exception $e) {
|
} catch (\Exception $e) {
|
||||||
Db::rollBack();
|
Db::rollBack();
|
||||||
|
|||||||
@ -157,7 +157,11 @@ Router::addGroup('/doctor', function () {
|
|||||||
Router::post('/message/attr', [UserDoctorController::class, 'getDoctorMessageAttrList']);
|
Router::post('/message/attr', [UserDoctorController::class, 'getDoctorMessageAttrList']);
|
||||||
|
|
||||||
// 医生接诊
|
// 医生接诊
|
||||||
Router::post('/{order_inquiry_id:\d+}', [UserDoctorController::class, 'addDoctorInquiry']);
|
Router::post('/{order_inquiry_id:\d+}', [UserDoctorController::class, 'addDoctorInquiry'],
|
||||||
|
[
|
||||||
|
'middleware' => [LockRequestMiddleware::class] // 锁定重复请求
|
||||||
|
]
|
||||||
|
);
|
||||||
|
|
||||||
// 结束问诊会话列表
|
// 结束问诊会话列表
|
||||||
Router::get('/finish/message', [InquiryController::class, 'getDoctorFinishMessageList']);
|
Router::get('/finish/message', [InquiryController::class, 'getDoctorFinishMessageList']);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user