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; namespace App\Admin\Controllers;
use App\Admin\Actions\Grid\Exports\DealerWalletWithdraw;
use App\Admin\Actions\Show\DealerWalletPay; use App\Admin\Actions\Show\DealerWalletPay;
use App\Admin\Actions\Show\DealerWalletRefuse; use App\Admin\Actions\Show\DealerWalletRefuse;
use App\Admin\Repositories\DealerWalletToBankLog; use App\Admin\Repositories\DealerWalletToBankLog;
use App\Models\DealerWalletToBankLog as DealerWalletToBankLogModel; use App\Models\DealerWalletToBankLog as DealerWalletToBankLogModel;
use Box\Spout\Writer\Common\Creator\WriterEntityFactory;
use Dcat\Admin\Admin; use Dcat\Admin\Admin;
use Dcat\Admin\Form; use Dcat\Admin\Form;
use Dcat\Admin\Grid; use Dcat\Admin\Grid;
use Dcat\Admin\Http\Controllers\AdminController; use Dcat\Admin\Http\Controllers\AdminController;
use Dcat\Admin\Show; use Dcat\Admin\Show;
use Illuminate\Http\Request;
class DealerWalletToBankLogController extends AdminController class DealerWalletToBankLogController extends AdminController
{ {
@ -23,6 +26,9 @@ class DealerWalletToBankLogController extends AdminController
{ {
$builder = DealerWalletToBankLog::with(['user']); $builder = DealerWalletToBankLog::with(['user']);
return Grid::make($builder, function (Grid $grid) { return Grid::make($builder, function (Grid $grid) {
$grid->tools(function (Grid\Tools $tools) {
$tools->append(new DealerWalletWithdraw());
});
$grid->column('id')->sortable(); $grid->column('id')->sortable();
$grid->column('user.phone'); $grid->column('user.phone');
$grid->column('amount')->prepend('¥'); $grid->column('amount')->prepend('¥');
@ -169,4 +175,53 @@ class DealerWalletToBankLogController extends AdminController
$form->display('updated_at'); $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 () { return response()->streamDownload(function () {
$writer = WriterEntityFactory::createXLSXWriter(); $writer = WriterEntityFactory::createXLSXWriter();
$writer->openToBrowser('测试'.date('Ymd').'.xlsx'); $writer->openToBrowser('发货单'.date('Ymd').'.xlsx');
$writer->addRow(WriterEntityFactory::createRowFromArray([ $writer->addRow(WriterEntityFactory::createRowFromArray([
'订单编号', '下单手机号', '商品编号', '商品名称', '数量', '姓名', '电话', '地址', '下单时间', '快递公司', '发货单号', '发货数量', '订单编号', '下单手机号', '商品编号', '商品名称', '数量', '姓名', '电话', '地址', '下单时间', '快递公司', '发货单号', '发货数量',

View File

@ -77,7 +77,7 @@ class ProductSpuController extends AdminController
/** 查询 **/ /** 查询 **/
$grid->filter(function (Grid\Filter $filter) { $grid->filter(function (Grid\Filter $filter) {
$filter->panel(); $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-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([ $router->resource('dealer-wallet-to-bank-logs', 'DealerWalletToBankLogController')->only([
'index', 'show', 'index', 'show',
])->names('dealer_wallet_to_bank_logs'); ])->names('dealer_wallet_to_bank_logs');

View File

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