255], ]; } /** * {@inheritdoc} */ public function attributeLabels() { return [ 'id' => 'ID', 'mall_id' => 'Mall ID', 'supply_id' => 'Supply ID', 'order_id' => 'Order ID', 'user_id' => 'User ID', 'order_no' => 'Order No', 'supply_order_sn' => 'Supply Order Sn', 'goods_id' => 'Goods ID', 'sku_id' => 'Sku ID', 'source' => 'Source', 'status' => 'Status', 'push_num' => 'Push Num', 'order_data' => 'Order Data', 'error' => 'Error', 'created_at' => 'Created At', 'updated_at' => 'Updated At', 'is_refund' => 'Is Refund', 'refund_id' => 'Refund ID', 'refund_money' => 'Refund Money', 'err_id' => 'Err ID', 'order_json' => 'order json', ]; } /** * 关联系统订单表 * * @return ActiveQuery */ public function getMallOrder() { return $this->hasOne(MallOrderModel::class, ['id' => 'order_id']); } /** * 关联系统订单详情表 * * @return ActiveQuery */ public function getMallOrderDetail() { return $this->hasOne(OrderDetail::class, ['order_id' => 'order_id']); } /** * 商城订单ID获取订单信息 * * @param integer $order_id * @return static */ public static function getOrderByOrderId(int $order_id, string $field = '*') { return static::find()->where(['order_id' => $order_id])->select($field)->one(); } /** * 订单推送失败 * * @return OrderModel */ public function pushFail($msg) { $this->updated_at = time(); $this->status = OrderEnum::PUSH_FAIL; $this->error = $msg; return $this->save(); } /** * 推送成功 * * @param string $supply_order_sn * @return OrderModel */ public function payOk($supply_order_sn = '', $order_data = []) { $this->updated_at = time(); $this->supply_order_sn = $supply_order_sn; !empty($order_data) && $this->order_data = Json::encode($order_data); $this->status = OrderEnum::PUSH_OK; $this->error = ''; return $this->save(); } /** * 退单 * * @return OrderModel */ public function refund() { $this->updated_at = time(); $this->status = OrderEnum::PUSH_REFUND; return $this->save(); } /** * 获取供应链子订单ID * * @return int */ public function getOrderItemId() { $order_data = json_decode($this->order_data, true); if (empty($order_data)) { throw new Exception('订单未推送, 无法售后'); } if(empty($order_data['Orders'])){ throw new Exception('订单数据异常'); } $order_items_id = 0; foreach($order_data['Orders'] as $order_items){ $order_item = $order_items['order_items']; foreach($order_item as $item){ if($item['sku_id'] == $this->sku_id){ $order_items_id = $item['id']; } } } // 是否拥有ItemId if (empty($order_items_id)) { throw new Exception('子订单ID不存在'); } return $order_items_id; } }