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
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;
|
|
}
|
|
|
|
}
|