新增获取商品库存对接、修正实际付款金额返回值

This commit is contained in:
2023-03-15 14:44:39 +08:00
parent 55991b6987
commit cff132c5d4
10 changed files with 582 additions and 95 deletions
+1 -1
View File
@@ -267,7 +267,7 @@ class DoctorAccountService extends BaseService
$params = array();
$params['doctor_id'] = $user_info['client_user_id'];
$doctor_withdrawal = DoctorWithdrawal::getDatePage($params,$created_at_params,$page,$per_page);
$doctor_withdrawal = DoctorWithdrawal::getDatePage($params,$created_at_params,['*'],$page,$per_page);
if (empty($doctor_withdrawal['data'])){
return success();
}
+1 -2
View File
@@ -402,9 +402,8 @@ class DoctorInquiryService extends BaseService
* @param string|int $inquiry_type 订单类型(1:专家问诊 2:快速问诊 3:公益问诊 4:问诊购药)
* @param string|int $inquiry_mode 订单问诊方式(1:图文 2:视频 3:语音 4:电话 5:会员)
* @param string|int $doctor_id 医生id
* @return int
*/
public function getDoctorInquiryPrice(string|int $inquiry_type, string|int $inquiry_mode, string|int $doctor_id): int
public function getDoctorInquiryPrice(string|int $inquiry_type, string|int $inquiry_mode, string|int $doctor_id):float
{
// 接诊类型(1:专家问诊 2:快速问诊 3:公益问诊)
if ($inquiry_type == 1 || $inquiry_type == 3) {
+46 -43
View File
@@ -82,30 +82,30 @@ class InquiryService extends BaseService
// 获取当前问诊医生信息
// 专家问诊-公益问诊
if ($request_params['inquiry_type'] == 3 || $request_params['inquiry_type'] == 1) {
if (empty($request_params['doctor_id'])) {
return fail(HttpEnumCode::HTTP_ERROR, "未选择医生");
}
$params = array();
$params['doctor_id'] = $request_params['doctor_id'];
$doctor = UserDoctor::getOne($params);
if (empty($doctor)) {
return fail(HttpEnumCode::HTTP_ERROR, "未知医生");
}
if ($doctor['idcard_status'] != 1) {
return fail(HttpEnumCode::HTTP_ERROR, "当前医生无法接诊,请重新选择");
}
if ($doctor['iden_auth_status'] != 1) {
return fail(HttpEnumCode::HTTP_ERROR, "当前医生无法接诊,请重新选择");
}
}
// if ($request_params['inquiry_type'] == 3 || $request_params['inquiry_type'] == 1) {
// if (empty($request_params['doctor_id'])) {
// return fail(HttpEnumCode::HTTP_ERROR, "未选择医生");
// }
//
// $params = array();
// $params['doctor_id'] = $request_params['doctor_id'];
// $doctor = UserDoctor::getOne($params);
// if (empty($doctor)) {
// return fail(HttpEnumCode::HTTP_ERROR, "未知医生");
// }
//
// if ($doctor['idcard_status'] != 1) {
// return fail(HttpEnumCode::HTTP_ERROR, "当前医生无法接诊,请重新选择");
// }
//
// if ($doctor['iden_auth_status'] != 1) {
// return fail(HttpEnumCode::HTTP_ERROR, "当前医生无法接诊,请重新选择");
// }
// }
// 获取问诊价格
$DoctorInquiryService = new DoctorInquiryService();
$inquiry_price = $DoctorInquiryService->getDoctorInquiryPrice($request_params['inquiry_type'], $request_params['inquiry_mode'], $request_params['doctor_id'] ?? "");
$inquiry_price = $DoctorInquiryService->getDoctorInquiryPrice($request_params['inquiry_type'], $request_params['inquiry_mode'], $request_params['doctor_id'] ?: "");
// 获取可用优惠卷
$CouponService = new CouponService();
@@ -127,6 +127,9 @@ class InquiryService extends BaseService
// 实际付款金额
$coupon_amount_total = $user_coupon['coupon']['coupon_price'] ?? 0;
$payment_amount_total = $inquiry_price - $coupon_amount_total;
if ($payment_amount_total < 0) {
$payment_amount_total = 0;
}
// 生成问诊订单
$data = array();
@@ -235,14 +238,14 @@ class InquiryService extends BaseService
}
// 修改优惠卷使用状态
if (!empty($user_coupon)){
if (!empty($user_coupon)) {
$data = array();
$data['user_coupon_status'] = 1;
$data['coupon_use_date'] = date('Y-m-d H:i:s',time());
$data['coupon_use_date'] = date('Y-m-d H:i:s', time());
$params = array();
$params['user_coupon_id'] = $user_coupon['user_coupon_id'];
UserCoupon::edit($params,$data);
UserCoupon::edit($params, $data);
}
// 增加至取消订单延迟队列
@@ -433,7 +436,7 @@ class InquiryService extends BaseService
$params['patient_id'] = $user_info['client_user_id'];
$params['order_inquiry_id'] = $order_inquiry_id;;
$order_evaluation = OrderEvaluation::getOne($params);
if (!empty($order_evaluation)){
if (!empty($order_evaluation)) {
// 已评价
return success();
}
@@ -463,7 +466,7 @@ class InquiryService extends BaseService
$data['type'] = 1;
$data['content'] = $content;
$order_evaluation = OrderEvaluation::addOrderEvaluation($data);
if (empty($order_evaluation)){
if (empty($order_evaluation)) {
return fail();
}
@@ -484,7 +487,7 @@ class InquiryService extends BaseService
$params['inquiry_type'] = 2;
$params['inquiry_mode'] = 1;
$system_inquiry_config = SystemInquiryConfig::getOne($params);
if (!empty($system_inquiry_config)){
if (!empty($system_inquiry_config)) {
$quick_inquiry_price = $system_inquiry_config['inquiry_price'];
}
@@ -494,7 +497,7 @@ class InquiryService extends BaseService
$params['inquiry_type'] = 4;
$params['inquiry_mode'] = 1;
$system_inquiry_config = SystemInquiryConfig::getOne($params);
if (!empty($system_inquiry_config)){
if (!empty($system_inquiry_config)) {
$medicine_inquiry_price = $system_inquiry_config['inquiry_price'];
}
@@ -504,12 +507,12 @@ class InquiryService extends BaseService
$params['inquiry_type'] = 1;
$params['inquiry_mode'] = 1;
$expert_inquiry_price = DoctorInquiryConfig::getMinInquiryPriceMinOne($params);
if (empty($expert_inquiry_price) || $expert_inquiry_price == 0){
if (empty($expert_inquiry_price) || $expert_inquiry_price == 0) {
$params = array();
$params['inquiry_type'] = 1;
$params['inquiry_mode'] = 1;
$system_inquiry_config = SystemInquiryConfig::getOne($params);
if (!empty($system_inquiry_config)){
if (!empty($system_inquiry_config)) {
$expert_inquiry_price = $system_inquiry_config['min_inquiry_price'];
}
}
@@ -520,13 +523,13 @@ class InquiryService extends BaseService
$params['inquiry_mode'] = 1;
$welfare_inquiry_price = DoctorInquiryConfig::getMinInquiryPriceMinOne($params);
if (empty($welfare_inquiry_price) || $welfare_inquiry_price == 0){
if (empty($welfare_inquiry_price) || $welfare_inquiry_price == 0) {
$params = array();
$params['inquiry_type'] = 1;
$params['inquiry_mode'] = 1;
$system_inquiry_config = SystemInquiryConfig::getOne($params);
if (!empty($system_inquiry_config)){
$inquiry_price = explode(',',$system_inquiry_config['inquiry_price']);
if (!empty($system_inquiry_config)) {
$inquiry_price = explode(',', $system_inquiry_config['inquiry_price']);
$welfare_inquiry_price = $inquiry_price[0] ?? 0;
}
}
@@ -670,7 +673,7 @@ class InquiryService extends BaseService
}
// 发起退款
$WechatPay = new WechatPay(1,1);
$WechatPay = new WechatPay(1, 1);
$generator = $this->container->get(IdGeneratorInterface::class);
@@ -743,7 +746,7 @@ class InquiryService extends BaseService
* @param string|int $cancel_remarks 取消订单备注
* @return array
*/
public function cancelUnpayInquiryOrder(string|int $order_no,string|int $cancel_reason,string|int $cancel_remarks): array
public function cancelUnpayInquiryOrder(string|int $order_no, string|int $cancel_reason, string|int $cancel_remarks): array
{
$result = array();
$result['status'] = 1;
@@ -774,7 +777,7 @@ class InquiryService extends BaseService
return $result;
}
if (!in_array($order_inquiry['inquiry_refund_status'],[0,4,5])) {
if (!in_array($order_inquiry['inquiry_refund_status'], [0, 4, 5])) {
// 问诊订单退款状态(0:无退款 1:申请退款 2:退款中 3:退款成功 4:拒绝退款 5:退款关闭)
$result['status'] = 0;
$result['message'] = "取消未支付的问诊订单:订单正在退款中";
@@ -800,30 +803,30 @@ class InquiryService extends BaseService
$data = array();
$data['inquiry_status'] = 7;
$data['inquiry_pay_status'] = 5;
$data['cancel_time'] = date("Y-m-d H:i:s",time());
$data['cancel_time'] = date("Y-m-d H:i:s", time());
$data['cancel_reason'] = $cancel_reason; // 取消订单原因(1:医生未接诊 2:主动取消 3:无可分配医生 4:客服取消 5:支付超时)
$data['cancel_remarks'] = $cancel_remarks; // 取消订单备注
$data['updated_at'] = date("Y-m-d H:i:s",time());
$data['updated_at'] = date("Y-m-d H:i:s", time());
$params = array();
$params['order_inquiry_id'] = $order_inquiry['order_inquiry_id'];
OrderInquiry::edit($params,$data);
OrderInquiry::edit($params, $data);
// 处理订单优惠卷
if (!empty($order_inquiry['coupon_amount_total']) && $order_inquiry['coupon_amount_total'] > 0){
if (!empty($order_inquiry['coupon_amount_total']) && $order_inquiry['coupon_amount_total'] > 0) {
// 获取用户优惠卷信息
$params = array();
$params['order_inquiry_id'] = $order_inquiry['order_inquiry_id'];
$order_inquiry_coupon = OrderInquiryCoupon::getOne($params);
if (!empty($order_inquiry_coupon)){
if (!empty($order_inquiry_coupon)) {
// 恢复优惠卷
$data = array();
$data['user_coupon_status'] = 0;
$data['coupon_use_date'] = date('Y-m-d H:i:s',time());
$data['coupon_use_date'] = date('Y-m-d H:i:s', time());
$params = array();
$params['user_coupon_id'] = $order_inquiry_coupon['user_coupon_id'];
UserCoupon::edit($params,$data);
UserCoupon::edit($params, $data);
}
}
+12
View File
@@ -613,6 +613,12 @@ class PatientOrderService extends BaseService
return fail(HttpEnumCode::HTTP_ERROR, "订单支付状态错误");
}
// 验证订单过期支付时间
$diff_time = (strtotime($order_inquiry['created_at']) - time()) / 60;
if ($diff_time >= 30){
return fail(HttpEnumCode::HTTP_ERROR, "订单已过期");
}
$order_id = $order_inquiry['order_inquiry_id'];
$created_at = $order_inquiry['created_at'];
$inquiry_type = $order_inquiry['inquiry_type'];
@@ -654,6 +660,12 @@ class PatientOrderService extends BaseService
return fail(HttpEnumCode::HTTP_ERROR, "订单支付状态错误");
}
// 验证订单过期支付时间
$diff_time = (strtotime($order_product['created_at']) - time()) / 60;
if ($diff_time >= 30){
return fail(HttpEnumCode::HTTP_ERROR, "订单已过期");
}
$order_id = $order_product['order_product_id'];
$created_at = $order_product['created_at'];
$inquiry_type = 0;