You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
86 lines
2.7 KiB
86 lines
2.7 KiB
<?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;
|
|
}
|
|
|
|
}
|