链街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.
 
 
 
 

72 lines
2.5 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;
use App\Models\ImsCjdcOrderMain as OrderMainModel;
use App\Models\ImsCjdcOrder as OrderModel;
use App\Models\LanzuOrderGoods as OrderGoodsModel;
use App\Models\v3\GoodsActivity as GoodsActivityModel;
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['purchase_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 = OrderGoodsModel::$tableName.'.number as total,('.GoodsActivityModel::TABLE_NAME.'.purchase_price-'.GoodsActivityModel::TABLE_NAME.'.price)*'.OrderGoodsModel::$tableName.'.number as subsidy_total,'.GoodsActivityModel::TABLE_NAME.'.price,'.GoodsActivityModel::TABLE_NAME.'.purchase_price,'.OrderGoodsModel::$tableName.'.goods_id,'.OrderGoodsModel::$tableName.'.name,'.OrderGoodsModel::$tableName.'.cover_img,'.OrderGoodsModel::$tableName.'.created_at,'.OrderMainModel::$tableName.'.market_id,'.OrderModel::$tableName.'.store_id';
$orderGoodsActivity = $repository->getDataModel($selects,$params);
$list = $orderGoodsActivity->orderBy('total','desc')->get()->toArray();
return $list;
}
}