|
@@ -4,6 +4,7 @@ namespace app\admin\service\order;
|
|
|
|
|
|
use app\model\Appointment;
|
|
|
use app\model\Goods;
|
|
|
+use app\model\GoodsSku;
|
|
|
use app\model\Member;
|
|
|
use app\model\MemberAccount;
|
|
|
use app\model\MemberBenefit;
|
|
@@ -72,6 +73,30 @@ class AppointmentService
|
|
|
$row->person = $applyJson['person'] ?? '';
|
|
|
$row->appointment_times = $applyJson['times'] ?? '';
|
|
|
}
|
|
|
+
|
|
|
+ $skus = GoodsSku::where('join_sku_goods_id',$row->join_appointment_goods_id)
|
|
|
+ ->select('goods_sku_id','goods_sku_specs_json','goods_sku_sales_price')
|
|
|
+ ->get();
|
|
|
+ $skuJson = [];
|
|
|
+ foreach ($skus as $key => $sku){
|
|
|
+ if (!empty($sku->goods_sku_specs_json)) {
|
|
|
+ $specsJson = json_decode($sku->goods_sku_specs_json, true);
|
|
|
+ $skuTitle = '';
|
|
|
+ foreach ($specsJson as $item3) {
|
|
|
+ if (is_array($item3)) {
|
|
|
+ $item3 = implode(',', $item3);
|
|
|
+ }
|
|
|
+ $skuTitle .= $item3 . '-';
|
|
|
+ }
|
|
|
+ $skuJson[$key] = [
|
|
|
+ 'goods_sku_id' => $sku->goods_sku_id,
|
|
|
+ 'goods_sku_sales_price' => $sku->goods_sku_sales_price,
|
|
|
+ 'sku_name' => rtrim($skuTitle, '-')
|
|
|
+ ];
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ $row->sku = $skuJson;
|
|
|
}
|
|
|
return json_success('', compact('rows', 'page', 'pageSize', 'total'));
|
|
|
}
|
|
@@ -176,6 +201,7 @@ class AppointmentService
|
|
|
'appointment_id' => "AP" . str_pad(SysSerial::getSerial(), 16, '0') . random_string(6, 'up'),
|
|
|
'join_appointment_member_id' => $params['join_appointment_member_id'] ?? '',
|
|
|
'join_appointment_goods_id' => $params['join_appointment_goods_id'] ?? '',
|
|
|
+ 'join_appointment_goods_sku_id' => $params['join_appointment_goods_sku_id'] ?? '',
|
|
|
'appointment_status' => $params['appointment_status'] ?? '',
|
|
|
'appointment_datetime' => isset($params['appointment_datetime']) ? date('Y-m-d', strtotime($params['appointment_datetime'])) : '',
|
|
|
'appointment_apply_datetime' => isset($params['appointment_apply_datetime']) ? date('Y-m-d H:i:s', strtotime($params['appointment_apply_datetime'])) : '',
|
|
@@ -211,13 +237,14 @@ class AppointmentService
|
|
|
|
|
|
// 如果预约成功,生成订单
|
|
|
if ($params['appointment_status'] == 'PENDING') {
|
|
|
+ $sku = GoodsSku::find($params['join_appointment_goods_sku_id']);
|
|
|
$orderId = 'OD' . date('YmdHis') . random_string(6, 'up');
|
|
|
$order = [
|
|
|
'order_id' => $orderId,
|
|
|
'join_order_member_id' => $params['join_appointment_member_id'],
|
|
|
'order_name' => "预约-" . $goods->goods_name,
|
|
|
- 'order_amount_total' => $goods->goods_sales_price * $params['person'],
|
|
|
- 'order_amount_pay' => $goods->goods_sales_price * $params['person'],
|
|
|
+ 'order_amount_total' => $sku->goods_sku_sales_price * $params['person'],
|
|
|
+ 'order_amount_pay' => $sku->goods_sku_sales_price * $params['person'],
|
|
|
'order_is_complete' => 'N',
|
|
|
'order_category' => 'OTHER',
|
|
|
'order_status_system' => 'PAYING',
|
|
@@ -235,9 +262,9 @@ class AppointmentService
|
|
|
'order_sheet_category' => 'APPOINTMENT',
|
|
|
'order_sheet_unit' => '套',
|
|
|
'order_sheet_num' => $params['person'],
|
|
|
- 'order_sheet_price' => $goods->goods_sales_price,
|
|
|
- 'order_sheet_amount' => $goods->goods_sales_price * $params['person'],
|
|
|
- 'order_sheet_pay' => $goods->goods_sales_price * $params['person'],
|
|
|
+ 'order_sheet_price' => $sku->goods_sku_sales_price,
|
|
|
+ 'order_sheet_amount' => $sku->goods_sku_sales_price * $params['person'],
|
|
|
+ 'order_sheet_pay' => $sku->goods_sku_sales_price * $params['person'],
|
|
|
'order_sheet_task_status' => 'NONE',
|
|
|
'order_sheet_addtimes' => time()
|
|
|
];
|
|
@@ -342,6 +369,7 @@ class AppointmentService
|
|
|
}
|
|
|
$data = [
|
|
|
'appointment_status' => $params['appointment_status'],
|
|
|
+// 'join_appointment_goods_sku_id' => $params['join_appointment_goods_sku_id'] ?? '',
|
|
|
'appointment_datetime' => $params['appointment_datetime'] ? date('Y-m-d', strtotime($params['appointment_datetime'])) : null,
|
|
|
'appointment_apply_datetime' => $params['appointment_apply_datetime'] ? date('Y-m-d H:i:s', strtotime($params['appointment_apply_datetime'])) : null,
|
|
|
'appointment_doing_datetime' => $params['appointment_doing_datetime'] ? date('Y-m-d H:i:s', strtotime($params['appointment_doing_datetime'])) : null,
|
|
@@ -380,13 +408,14 @@ class AppointmentService
|
|
|
|
|
|
// 如果预约成功,没有生成过订单,生成订单
|
|
|
if ($params['appointment_status'] == 'PENDING' && empty($appointment->join_appointment_order_id)) {
|
|
|
+ $sku = GoodsSku::find($params['join_appointment_goods_sku_id']);
|
|
|
$orderId = 'OD' . date('YmdHis') . random_string(6, 'up');
|
|
|
$order = [
|
|
|
'order_id' => $orderId,
|
|
|
'join_order_member_id' => $params['join_appointment_member_id'],
|
|
|
'order_name' => "预约-" . $goods->goods_name,
|
|
|
- 'order_amount_total' => $goods->goods_sales_price * $params['person'],
|
|
|
- 'order_amount_pay' => $goods->goods_sales_price * $params['person'],
|
|
|
+ 'order_amount_total' => $sku->goods_sku_sales_price * $params['person'],
|
|
|
+ 'order_amount_pay' => $sku->goods_sku_sales_price * $params['person'],
|
|
|
'order_is_complete' => 'N',
|
|
|
'order_category' => 'OTHER',
|
|
|
'order_status_system' => 'PAYING',
|
|
@@ -404,9 +433,9 @@ class AppointmentService
|
|
|
'order_sheet_category' => 'APPOINTMENT',
|
|
|
'order_sheet_unit' => '套',
|
|
|
'order_sheet_num' => $params['person'],
|
|
|
- 'order_sheet_price' => $goods->goods_sales_price,
|
|
|
- 'order_sheet_amount' => $goods->goods_sales_price * $params['person'],
|
|
|
- 'order_sheet_pay' => $goods->goods_sales_price * $params['person'],
|
|
|
+ 'order_sheet_price' => $sku->goods_sku_sales_price,
|
|
|
+ 'order_sheet_amount' => $sku->goods_sku_sales_price * $params['person'],
|
|
|
+ 'order_sheet_pay' => $sku->goods_sku_sales_price * $params['person'],
|
|
|
'order_sheet_task_status' => 'NONE',
|
|
|
'order_sheet_addtimes' => time()
|
|
|
];
|
|
@@ -464,7 +493,7 @@ class AppointmentService
|
|
|
return json_success("数据更新成功");
|
|
|
} catch (\Exception $e) {
|
|
|
Db::rollBack();
|
|
|
- dump($e->getTrace());
|
|
|
+ dump($e->getMessage());
|
|
|
return json_fail("数据更新失败");
|
|
|
}
|
|
|
}
|