order->no_refund) { return false; } $can_refund = $this->order->canRefund(); $order_goods = OrderGoods::where('order_id', $this->order->id)->get(); if ($can_refund && $order_goods->count() == 1) { $goods_trade = GoodsTradeSet::where('goods_id', $order_goods[0]->goods_id)->first(); if ($goods_trade && $goods_trade->hide_status) { $begin_hide_day = $goods_trade->begin_hide_day; if ($begin_hide_day > 1) { $begin_hide_day -= 1; $begin_time = $this->order->pay_time->addDays($begin_hide_day)->format('Y-m-d'); } else { $begin_time = $this->order->pay_time->format('Y-m-d'); } $begin_time .= " {$goods_trade->begin_hide_time}:00"; $begin_timestamp = strtotime($begin_time); $end_hide_day = $goods_trade->end_hide_day; if ($end_hide_day) { $end_time = Carbon::createFromTimestamp($begin_timestamp)->addDays(1)->format('Y-m-d'); } else { $end_time = Carbon::createFromTimestamp($begin_timestamp)->format('Y-m-d'); } $end_time .= " {$goods_trade->end_hide_time}:00"; $end_timestamp = strtotime($end_time); if ($begin_timestamp < time() && $end_timestamp > time()) { return false; } } } return $can_refund; } }