diff --git a/app/Exports/BusinessAfterOrderExport.php b/app/Exports/BusinessAfterOrderExport.php index 77ae1d1..20f5a69 100644 --- a/app/Exports/BusinessAfterOrderExport.php +++ b/app/Exports/BusinessAfterOrderExport.php @@ -2,13 +2,13 @@ namespace App\Exports; +use App\Http\Enum\AfterSaleOrderStatusEnum; use App\Models\DailyReport; use App\Models\Shop; use Illuminate\Support\Facades\Log; use Maatwebsite\Excel\Concerns\FromCollection; use Maatwebsite\Excel\Concerns\ShouldAutoSize; use Illuminate\Support\Collection; -use PhpOffice\PhpSpreadsheet\Worksheet\Worksheet; class BusinessAfterOrderExport implements FromCollection, ShouldAutoSize { @@ -43,19 +43,15 @@ class BusinessAfterOrderExport implements FromCollection, ShouldAutoSize ]; $bodyData = []; foreach ($orders as $order) { - $productInfo = ""; - foreach ($order['items'] as $item) { - $productInfo .= $item['goods_name'] . "|" . $item['goods_number'] . ","; - } - rtrim($productInfo, ","); $bodyData[] = [ $order['order_sn'], $order['shop']['name'], bcdiv($order['refund_amount'],100,2), bcdiv($order['refund_shipping_amount'],100,2), + $order['reason'], $order['description'], implode(",",$order['image_list']), - $order['cancel_status'], + AfterSaleOrderStatusEnum::getData($order['after_sales_status']), $order['after_sale_created_at'] ]; } diff --git a/app/Http/Controllers/Business/BusinessAfterSaleOrderController.php b/app/Http/Controllers/Business/BusinessAfterSaleOrderController.php index 1f4ca99..eb2cca7 100644 --- a/app/Http/Controllers/Business/BusinessAfterSaleOrderController.php +++ b/app/Http/Controllers/Business/BusinessAfterSaleOrderController.php @@ -2,6 +2,7 @@ namespace App\Http\Controllers\Business; +use App\Exports\BusinessAfterOrderExport; use App\Exports\BusinessOrderExport; use App\Exports\OrderBlankExport; use App\Http\Controllers\Controller; @@ -27,12 +28,14 @@ class BusinessAfterSaleOrderController extends Controller ->where('plat_id', Shop::$PLAT_KTT) ->pluck('id'); $builder = BusinessAfterSaleOrder::query() + ->with(["shop:id,name"]) ->whereIn('shop_id', $shopIds) ->filter(); if (!empty($request->created_at_start) & !empty($request->created_at_end)) { $builder = $builder->whereBetween("after_sale_created_at" , [$request->created_at_start, $request->created_at_end]); } + if ($request->get("is_export")) { $params = $request->validate([ 'created_at_start' => 'required', @@ -48,7 +51,7 @@ class BusinessAfterSaleOrderController extends Controller throw new \Exception("导出时间超出一个月"); } - return Excel::download(new BusinessOrderExport($builder->get()->toArray()) + return Excel::download(new BusinessAfterOrderExport($builder->get()->toArray()) , $startDate . '~' . $endDate . "售后订单数据" . '.xlsx'); } $businessOrders = $builder->orderByDesc('after_sale_created_at') diff --git a/app/Http/Enum/AfterSaleOrderStatusEnum.php b/app/Http/Enum/AfterSaleOrderStatusEnum.php new file mode 100644 index 0000000..bc0fbeb --- /dev/null +++ b/app/Http/Enum/AfterSaleOrderStatusEnum.php @@ -0,0 +1,34 @@ + "未发起售后", + self::REFUNDING => "退款中", + self::REFUNDED_SUCCESS => "退款成功", + self::WAIT_HANDLE => "待处理", + self::REFUND_REFUSE => "拒绝退款", + self::WAIT_RETURN_GOOD => "待退货", + self::WAIT_CONFIRM_RETURN_GOOD => "待团长确认退货", + self::USER_CANCEL => "用户取消", + self::CLOSE => "系统已关闭", + ]; + + public static function getData($key) + { + return self::MAP[$key] ?? ''; + } +} \ No newline at end of file diff --git a/app/Models/BusinessAfterSaleOrder.php b/app/Models/BusinessAfterSaleOrder.php index 4e15368..ecc69b6 100644 --- a/app/Models/BusinessAfterSaleOrder.php +++ b/app/Models/BusinessAfterSaleOrder.php @@ -30,4 +30,8 @@ class BusinessAfterSaleOrder extends Model { return !empty($value) ? json_decode($value, true) : $value; } + public function shop() + { + return $this->belongsTo(Shop::class, 'shop_id', 'id'); + } }