where('user_id', $user->id)->where('id', $id)->find(); // 获取要操作的 订单 item $order_item = self::getItem($order, $order_item_id); if (!in_array($order_item->refund_status, [ OrderItem::REFUND_STATUS_REFUSE, OrderItem::REFUND_STATUS_NOREFUND, ])) { throw new \app\common\exception\Exception('当前订单已在申请退款状态'); } $order = Db::transaction(function () use ($order, $order_item, $user) { $order_item->aftersale_status = OrderItem::AFTERSALE_STATUS_AFTERING; // 申请售后 $order_item->refund_status = OrderItem::REFUND_STATUS_ING; // 申请退款 $order_item->save(); OrderAction::operAdd($order, $order_item, $user, 'user', '用户申请退款'); return $order; }); return $order; } /** * 获取退款原因 * @return string[] */ public function getRefundReason(){ return [ 1=>'不想要了', 2=>'商家服务原因', 3=>'商品质量问题', 4=>'其他' ]; } }