6
0
Fork 0

添加打款单导出

release
vine_liutk 2022-01-25 17:51:19 +08:00
parent 9cb4f693cc
commit 0575f450d2
6 changed files with 107 additions and 2 deletions

View File

@ -0,0 +1,44 @@
<?php
namespace App\Admin\Actions\Grid\Exports;
use Dcat\Admin\Actions\Response;
use Dcat\Admin\Grid\RowAction;
use Dcat\Admin\Traits\HasPermissions;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Http\Request;
class DealerWalletWithdraw extends RowAction
{
public function title()
{
if ($this->title) {
return $this->title;
}
return '<i class="feather grid-action-icon icon-download"></i> 导出打款单&nbsp;&nbsp;';
}
/**
* @param Model|Authenticatable|HasPermissions|null $user
*
* @return bool
*/
protected function authorize($user): bool
{
return $user->can('dcat.admin.dealer_wallet_to_bank_logs.export');
}
/**
* Handle the action request.
*
* @param Request $request
*
* @return Response
*/
public function handle(Request $request)
{
$last_path_arr = parse_url(session('admin.prev.url'));
return $this->response()->download(admin_route('dealer_wallet_to_bank_logs.export').'?'.$last_path_arr['query']);
}
}

View File

@ -2,15 +2,18 @@
namespace App\Admin\Controllers;
use App\Admin\Actions\Grid\Exports\DealerWalletWithdraw;
use App\Admin\Actions\Show\DealerWalletPay;
use App\Admin\Actions\Show\DealerWalletRefuse;
use App\Admin\Repositories\DealerWalletToBankLog;
use App\Models\DealerWalletToBankLog as DealerWalletToBankLogModel;
use Box\Spout\Writer\Common\Creator\WriterEntityFactory;
use Dcat\Admin\Admin;
use Dcat\Admin\Form;
use Dcat\Admin\Grid;
use Dcat\Admin\Http\Controllers\AdminController;
use Dcat\Admin\Show;
use Illuminate\Http\Request;
class DealerWalletToBankLogController extends AdminController
{
@ -23,6 +26,9 @@ class DealerWalletToBankLogController extends AdminController
{
$builder = DealerWalletToBankLog::with(['user']);
return Grid::make($builder, function (Grid $grid) {
$grid->tools(function (Grid\Tools $tools) {
$tools->append(new DealerWalletWithdraw());
});
$grid->column('id')->sortable();
$grid->column('user.phone');
$grid->column('amount')->prepend('¥');
@ -169,4 +175,53 @@ class DealerWalletToBankLogController extends AdminController
$form->display('updated_at');
});
}
public function export(Request $request)
{
return response()->streamDownload(function () use ($request) {
$writer = WriterEntityFactory::createXLSXWriter();
$writer->openToBrowser('打款单'.date('Ymd').'.xlsx');
$writer->addRow(WriterEntityFactory::createRowFromArray([
'提现手机号', '打款金额', '收款人', '收款银行', '收款账号', '开户行', '提现时间',
]));
$query = DealerWalletToBankLogModel::with('dealer', 'user');
foreach ($request->input() as $key => $value) {
dump($key);
switch ($key) {
case 'created_at':
$query->whereBetween('created_at', $value);
break;
case 'status':
if ($value) {
$query->where('status', $value);
}
break;
case 'user':
if (is_array($value)) {
foreach ($value as $kk =>$vv) {
$query->whereHas($key, function ($q) use ($kk, $vv) {
if ($vv) {
$q->where($kk, $vv);
}
});
}
}
break;
}
}
foreach ($query->cursor() as $log) {
$payInfo = $log->getPayInfo();
$writer->addRow(WriterEntityFactory::createRowFromArray([
$log->user->phone,
$log->account_amount,
$payInfo ? $payInfo['bank']['user_name'] : '',
$payInfo ? $payInfo['bank']['bank_name'] : '',
$payInfo ? $payInfo['bank']['bank_number'] : '',
$payInfo ? $payInfo['bank']['bank_description'] : '',
$log->created_at->toDateTimeString(),
]));
};
$writer->close();
});
}
}

View File

@ -429,7 +429,7 @@ class OrderController extends AdminController
{
return response()->streamDownload(function () {
$writer = WriterEntityFactory::createXLSXWriter();
$writer->openToBrowser('测试'.date('Ymd').'.xlsx');
$writer->openToBrowser('发货单'.date('Ymd').'.xlsx');
$writer->addRow(WriterEntityFactory::createRowFromArray([
'订单编号', '下单手机号', '商品编号', '商品名称', '数量', '姓名', '电话', '地址', '下单时间', '快递公司', '发货单号', '发货数量',

View File

@ -77,7 +77,7 @@ class ProductSpuController extends AdminController
/** 查询 **/
$grid->filter(function (Grid\Filter $filter) {
$filter->panel();
$filter->equal('name')->width(3);
$filter->like('name')->width(3);
});
});
}

View File

@ -187,6 +187,7 @@ Route::group([
$router->get('dealer-purchase-logs', 'DealerPurchaseLogController@index')->name('dealer_purchase_logs.index');
//批零余额提现
$router->get('dealer-wallet-to-bank-logs/export', 'DealerWalletToBankLogController@export')->name('dealer_wallet_to_bank_logs.export');
$router->resource('dealer-wallet-to-bank-logs', 'DealerWalletToBankLogController')->only([
'index', 'show',
])->names('dealer_wallet_to_bank_logs');

View File

@ -37,6 +37,11 @@ class DealerWalletToBankLog extends Model
return $this->belongsTo(User::class);
}
public function dealer()
{
return $this->belongsTo(Dealer::class, 'user_id', 'user_id');
}
/**
* 待打款状态
*