<?php namespace App\Admin\Controllers\Api; use App\Admin\Controllers\BaseController; use App\Admin\Service\OrderService; use App\Exceptions\InvalidRequestException; use App\Http\Utils\ValidatorMsg; use App\Models\Increasid; use App\Models\Order; use App\Models\OrderAddress; use App\Models\OrderReturnItems; use Illuminate\Http\Request; use Illuminate\Routing\Controller; use Illuminate\Support\Arr; use Maatwebsite\Excel\Facades\Excel; use Illuminate\Support\Facades\Validator; class OrderApiController extends BaseController { public function orderDownloadShow(Request $request){ $params = $request->all(); $type = arrayGet($params, "type"); $order_id = 1; $orderAddressList = OrderService::getOrderAddress($order_id); $orderAddressList = arrayChangeKeyByField($orderAddressList,"order_address_type"); // dump($orderAddressList); $info["sn"] = OrderService::getSn($type); if(empty($info["sn"])){ abort(500, '获取编码失败'); } $info["orderList"] = OrderService::getOrderList($order_id); if($type == "1"){ //PI return view('export.order_contract_PI',[ "ship"=>$orderAddressList[1]??[], "bill"=>$orderAddressList[2]??[], "info"=>$info ]); }elseif($type == "2"){ //CI return view('export.order_contract_CI',[ "ship"=>$orderAddressList[1]??[], "bill"=>$orderAddressList[2]??[], "info"=>$info ]); }else{ //PL return view('export.order_contract_PL',[ "ship"=>$orderAddressList[1]??[], "bill"=>$orderAddressList[2]??[], "info"=>$info ]); } } public function orderList(Request $request){ $params = request()->all(); $order_id = arrayGet($params,"order_id",0,"intval"); $orderInfo = Order::getOneAndRelationList($order_id); $orderItems = $orderInfo["order_items"]??[]; $orderInfo["orderItemList"] = $orderItems; foreach($orderInfo["orderItemList"] as $k=>$item){ $orderInfo["orderItemList"][$k]["goods_price_format"] = decimal_number_format_usd($item["goods_price"]); $orderInfo["orderItemList"][$k]["total_amount"] = decimal_number_format($item["goods_price"]*$item["goods_number"]); $orderInfo["orderItemList"][$k]["total_amount_format"] = decimal_number_format_usd($item["goods_price"]*$item["goods_number"]); $returnItems = OrderReturnItems::getOrderReturnItem($item["rec_id"]); $orderInfo["orderItemList"][$k]["return_num"] = $returnItems["return_num"] ?? ""; $orderInfo["orderItemList"][$k]["return_price"] = $returnItems["return_price"] ?? ""; $orderInfo["orderItemList"][$k]["return_amount"] = $returnItems["return_amount"] ?? ""; $orderInfo["orderItemList"][$k]["type"] = $returnItems["type"] ?? ""; $orderInfo["orderItemList"][$k]["type_cn"] = Arr::get(OrderReturnItems::$TYPE,$returnItems["type"] ?? 0,""); } return response()->json(["code"=>0,"msg"=>"ok","data"=>["list"=>$orderInfo["orderItemList"]],"count"=>count($orderInfo["orderItemList"] )]); } //订单明细修改 public function orderDownload(Request $request){ $params = $request->all(); $type = arrayGet($params, "type"); $order_id = 1; $orderAddressList = OrderService::getOrderAddress($order_id); $orderAddressList = arrayChangeKeyByField($orderAddressList,"order_address_type"); $info["sn"] = OrderService::getSn($type); if(empty($info["sn"])){ abort(500, '获取编码失败'); } $info["orderList"] = OrderService::getOrderList($order_id); return Excel::download(new \App\Exports\ContractExport([ "ship"=>$orderAddressList[1]??[], "bill"=>$orderAddressList[2]??[], "info"=>$info ]),'PI.xlsx'); } //订单明细修改 public function editOrderItems(Request $request){ $params = $request->all(); $order_id = arrayGet($params,"order_id",0,"intval"); $orderItems = arrayGet($params,"order_items","","trim"); $validator = Validator::make($params, [ 'order_id' => 'required', 'order_items.*.order_items_id' => 'required', 'order_items' => 'required', ], [ 'order_id.required' => admin_trans("order.validator.order_id_required"), 'order_items.required' => admin_trans("order.validator.order_items_required"), ], [ // 'order_id' => '订单id', // 'order_items' => '订单明细', ]); if ($validator->fails()) { $errors = $validator->errors()->toArray(); $err_msg = ValidatorMsg::getMsg($errors); throw new InvalidRequestException($err_msg); } OrderService::editOrderItems($order_id,$orderItems); return $this->setSuccess(); } }