64], [['spu_id', 'sku_id'], 'string', 'max' => 32], ]; } /** * {@inheritdoc} */ public function attributeLabels() { return [ 'id' => 'ID', 'mall_id' => 'Mall ID', 'order_id' => 'Order ID', 'mall_order_id' => 'Mall Order ID', 'chain_batch_order_sn' => 'Chain Batch Order Sn', 'chain_order_sn' => 'Chain Order Sn', 'order_detail_id' => 'Order Detail ID', 'spu_id' => 'Spu ID', 'sku_id' => 'Sku ID', 'num' => 'Num', 'delivery_sn' => 'Delivery Sn', 'delivery_corp_sn' => 'Delivery Corp Sn', 'send_status' => 'Send Status', 'updated_at' => 'Updated At', 'created_at' => 'Created At', ]; } /** * @return ActiveQueryInterface the relational query object. */ public function getOrder() { return $this->hasOne(Order::class, ['id' => 'order_id']); } /** * 创建子订单 * * @param Order $order * @param array $goods_list * @return boolean */ public static function createOrderItem(Order $order, array $goods_list) { foreach ($goods_list as $item) { $model = new self(); $model->mall_id = $order->mall_id; $model->order_id = $order->id; $model->spu_id = $item['spuId']; $model->sku_id = $item['skuId']; $model->num = $item['goodsQty']; $model->mall_order_id = $item['mall_order_id']; $model->order_detail_id = $item['order_detail_id']; if (!$model->save()) throw new \Exception("创建子订单失败"); } return true; } /** * 编辑子订单 * * @param integer $order_id * @param array $data * @return boolean */ public static function editOrderItem(int $order_id, array $data) { $order_list = self::find()->where(['order_id' => $order_id])->all(); foreach ($order_list as $item) { $order_item = ArrayHelper::find($data, function($i) use ($item) { return in_array($item->sku_id, explode(',', $i['skuIds'])); }); $item->chain_order_sn = $order_item['orderSn']; $item->chain_batch_order_sn = $order_item['batchOrderSn']; if (!$item->save()) throw new \Exception("编辑子订单失败"); } return true; } /** * 获取item by order_detail_id * * @param integer $order_detail_id * @return static|null */ public static function getOrderItemByDetailId(int $order_detail_id) { return self::findOne([ 'order_detail_id' => $order_detail_id, ]); } /** * 获取子订单详情ID列表 * * @param integer $order_id * @param array $sku_ids * @return array */ public static function getDetailIdsBySkuIds(int $order_id, array $sku_ids) { return self::find()->select('order_detail_id')->where([ 'order_id' => $order_id, 'sku_id' => $sku_ids, ])->column(); } /** * 获取子订单详情ID列表 * * @param integer $order_id * @param array $sku_ids * @return array */ public static function getDetailBySkuIds(int $order_id, array $sku_ids) { return self::find()->where([ 'order_id' => $order_id, 'sku_id' => $sku_ids, ])->all(); } /** * @param integer $mall_id * @param string $order_sn * @return self|null */ public static function getOrderByOrderSn(int $mall_id, string $order_sn) { return static::find()->where(['mall_id' => $mall_id, 'chain_order_sn' => $order_sn]) ->with(['order']) ->one(); } }