| xqd
@@ -91,7 +91,7 @@ class Order extends BaseModel
|
|
|
//支付完成的处理方法
|
|
|
public static function payCompletedHandle($order_id)
|
|
|
{
|
|
|
- $order = Order::with(['organization', 'orderVaccine', 'orderNurse', 'orderPack'])->where('id', $order_id)->first();
|
|
|
+ $order = Order::with(['organization', 'orderVaccine', 'orderNurse', 'orderPack'])->where('id', $order_id)->first()->toArray();
|
|
|
$orderPatient = OrderPatient::where('order_id', $order_id)->first();
|
|
|
$user = User::select(['balance', 'openid'])->where('id', $order['user_id'])->first();
|
|
|
//发送下单消息
|
| xqd
@@ -211,16 +211,33 @@ class Order extends BaseModel
|
|
|
//改变订单状态
|
|
|
$updateOrder = ['order_status' => 5, 'order_notes' => $order_notes];
|
|
|
if ($order['payment_status'] > 1) {
|
|
|
- //退钱到余额
|
|
|
- if (!empty($order['payment_amount']) && $can_refund && $order['product_type'] != 5) {
|
|
|
- User::changeBalance($order['user_id'], $order['payment_amount'], 4, $order['id'], '取消订单退款');
|
|
|
- }
|
|
|
- $updateOrder['cancel_time'] = time();
|
|
|
- if ($can_refund) {
|
|
|
+ //判断是余额支付还是服务包支付
|
|
|
+ if ($order['payment_type'] == 2) {
|
|
|
+ //退服务包的次数
|
|
|
+ $map = [1 => 'phone_minutes', 2 => 'chat_num', 3 => 'appoint_num', 4 => 'vaccine_limit_amount', 5 => 'nurses_limit_amount'];
|
|
|
+ $addNum = $order['product_type'] == 1 ? 10 : 1;
|
|
|
+ OrderPack::where('id', $order['pay_order_pack_id'])->increment($map[$order['product_type']], $addNum);
|
|
|
+ $updateOrder['cancel_time'] = time();
|
|
|
$updateOrder['payment_status'] = 4;
|
|
|
+ if ($order['product_type'] == 3 && !$can_refund) {
|
|
|
+ $updateOrder['payment_status'] = 2;
|
|
|
+ }
|
|
|
}
|
|
|
- if ($order['product_type'] == 5) {
|
|
|
- $updateOrder['payment_status'] = 5;
|
|
|
+ else {
|
|
|
+ //退钱到余额
|
|
|
+ if (!empty($order['payment_amount']) && $can_refund && $order['product_type'] != 5) {
|
|
|
+ User::changeBalance($order['user_id'], $order['payment_amount'], 4, $order['id'], '取消订单退款');
|
|
|
+ }
|
|
|
+ $updateOrder['cancel_time'] = time();
|
|
|
+ if ($can_refund) {
|
|
|
+ $updateOrder['payment_status'] = 4;
|
|
|
+ }
|
|
|
+ if ($order['product_type'] == 5) {
|
|
|
+ $updateOrder['payment_status'] = 5;
|
|
|
+ }
|
|
|
+ if ($order['product_type'] == 3 && !$can_refund) {
|
|
|
+ $updateOrder['payment_status'] = 2;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
Order::where('id', $order_id)->update($updateOrder);
|