|
|
<?php
namespace App\Admin\Actions\Exporter;
use Maatwebsite\Excel\Concerns\FromArray;use Maatwebsite\Excel\Concerns\WithStrictNullComparison;use Maatwebsite\Excel\Concerns\ShouldAutoSize;use App\Admin\Repositories\v3\GoodsReport;use App\Models\v3\Market as MarketModel;use App\Models\v3\Store as StoreModel;use App\Models\LanzuOrderGoods as OrderGoodsModel;use App\Models\ImsCjdcOrderMain as OrderMainModel;use App\Models\ImsCjdcOrder as OrderModel;
class GoodsSales implements FromArray, WithStrictNullComparison, ShouldAutoSize{ protected $params = []; public function __construct($params) { $this->params = $params; }
public function array(): array { $result = [[ '下单时间', '主订单号', '商品ID', '商品名称', '市场', '店铺', '售价(元)', '原价(元)', '数量', '单位', '规格', ]]; $data = $this->getData($this->params); $markets = MarketModel::getMarketArray(); $stores = StoreModel::getStoreArray(); foreach ($data as $value){ $specStr = ''; if(!empty($value['spec'])){ $specArr = json_decode($value['spec'],true); if(isset($specArr[0]['spec_key'])){ foreach($specArr as $spec){ $specStr .= ' ['.$spec['spec_key'].':'.$spec['spec_value'].'] '; } } } $global_order_id = $value['global_order_id']??''; $item = [ date('Y-m_d H:i:s',$value['created_at']), ' '.$global_order_id, $value['goods_id'], $value['name']??'', $markets[$value['market_id']]??'', $stores[$value['store_id']]??'', $value['price']??0, $value['original_price']??0, $value['number']??0, $value['goods_unit']??'', $specStr??'' ]; $result[] = $item; } return $result; }
/** * 获取数据 */ public function getData($option = []) { $params = $option; $repository = new GoodsReport(); $selects = OrderGoodsModel::$tableName.'.goods_id,'.OrderGoodsModel::$tableName.'.name,price,original_price,goods_unit,spec,'.OrderMainModel::$tableName.'.market_id,'.OrderModel::$tableName.'.store_id,number,'.OrderMainModel::$tableName.'.created_at,global_order_id'; $orderGoods = $repository->getDataModel($selects,$params); $list = $orderGoods->get()->toArray(); return $list; }
}
|