链街Dcat后台
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.
 
 
 
 

68 lines
2.1 KiB

<?php
namespace App\Admin\Actions\Exporter;
use Maatwebsite\Excel\Concerns\FromArray;
use Maatwebsite\Excel\Concerns\WithStrictNullComparison;
use App\Admin\Repositories\v3\GoodsActivityReport;
use App\Models\v3\Market as MarketModel;
use App\Models\v3\Store as StoreModel;
class GoodsActivitySales implements FromArray, WithStrictNullComparison
{
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){
$createdAt = $value['created_at']??0;
$item = [
$value['goods_id'],
$value['name']??'',
$markets[$value['market_id']]??'',
$stores[$value['store_id']]??'',
$value['price']??0,
$value['original_price']??0,
date('Y-m-d H:i:s',$createdAt),
$value['total']??0,
$value['subsidy_total']??0
];
$result[] = $item;
}
return $result;
}
/**
* 获取数据
*/
public function getData($option = [])
{
$params = $option;
$repository = new GoodsActivityReport();
$selects = 'number as total,(original_price-price)*number as subsidy_total,price,original_price,lanzu_order_goods.goods_id,lanzu_order_goods.name,lanzu_order_goods.cover_img,lanzu_order_goods.created_at,lanzu_order_main.market_id,lanzu_order.store_id';
$orderGoodsActivity = $repository->getDataModel($selects,$params);
$list = $orderGoodsActivity->orderBy('total','desc')->get()->toArray();
return $list;
}
}