12 changed files with 149 additions and 62 deletions
-
86app/Admin/Actions/Exporter/GoodsSales.php
-
1app/Admin/Actions/Tools/GoodsReportExport.php
-
30app/Admin/Controllers/v3/GoodsReportController.php
-
41app/Admin/Repositories/v3/GoodsActivityReport.php
-
36app/Admin/Repositories/v3/GoodsReport.php
-
2app/Admin/Widgets/Charts/OrderGoodsActivityCountChart.php
-
2app/Admin/Widgets/Charts/OrderGoodsActivityTotalChart.php
-
1app/Admin/routes.php
-
2app/Models/ImsCjdcOrder.php
-
2app/Models/ImsCjdcOrderMain.php
-
2app/Models/LanzuOrderGoods.php
-
6resources/lang/zh-CN/goods-report.php
@ -0,0 +1,86 @@ |
|||||
|
<?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; |
||||
|
} |
||||
|
|
||||
|
} |
||||
Write
Preview
Loading…
Cancel
Save
Reference in new issue