$order->id]); $attr = Json::decode($orderDetail->attr); // 酒店预约 if ($order->order_type == 1) { $date_book = GoodsBook::findOne(['goods_id' => $orderDetail->goods_id]); $goods_book = Json::decode($date_book->date_book); if (!$goods_book) { return [ 'code' => 1, 'msg' => '数据异常' ]; } foreach ($goods_book as &$book) { foreach ($attr as &$value) { if ($book['date'] == $value['date']) { $book['num'] -= $orderDetail->num; } } } $date_book->date_book = Json::encode($goods_book); $date_book->save(); } // 服务预约 动态库存 // if ($order->order_type == 2) { // $service_book = GoodsBook::findOne(['goods_id' => $orderDetail->goods_id]); // $service_goods_book = Json::decode($service_book->service_book); // if (!$service_goods_book) { // return [ // 'code' => 1, // 'msg' => '数据异常' // ]; // } // // foreach ($service_goods_book['data'] as &$value) { // if ($value['date'] == $attr['date']) { // foreach ($value['time'] as &$m) { // foreach ($m['times'] as &$n) { // if ($n['time'] == $attr['time']) { // $n['num'] -= $orderDetail->num; // } // } // } // } // } // $service_book->service_book = Json::encode($service_goods_book); // $service_book->save(); // } } /** * @param Order $order */ public static function bookNumAdd($order) { $orderDetail = OrderDetail::findOne(['order_id' => $order->id]); $attr = Json::decode($orderDetail->attr); // 酒店预约 if ($order->order_type == 1) { $date_book = GoodsBook::findOne(['goods_id' => $orderDetail->goods_id]); $goods_book = Json::decode($date_book->date_book); if (!$goods_book) { return [ 'code' => 1, 'msg' => '数据异常' ]; } foreach ($goods_book as &$book) { foreach ($attr as &$value) { if ($book['date'] == $value['date']) { $book['num'] += $orderDetail->num; } } } $date_book->date_book = Json::encode($goods_book); $date_book->save(); } // 服务预约 if ($order->order_type == 2) { $service_book = GoodsBook::findOne(['goods_id' => $orderDetail->goods_id]); $service_goods_book = Json::decode($service_book->service_book); if (!$service_goods_book) { return [ 'code' => 1, 'msg' => '数据异常' ]; } foreach ($service_goods_book['data'] as &$value) { if ($value['date'] == $attr['date']) { foreach ($value['time'] as &$m) { foreach ($m['times'] as &$n) { if ($n['time'] == $attr['time']) { $n['num'] += $orderDetail->num; } } } } } $service_book->service_book = Json::encode($service_goods_book); $service_book->save(); } } }