bztang-admin/plugins/red-packet/src/admin/ReceiveLogsController.php

117 lines
4.2 KiB
PHP

<?php
/**
* Created by PhpStorm.
* User: yunzhong
* Date: 2019/10/31
* Time: 11:50
*/
namespace Yunshop\RedPacket\admin;
use app\common\components\BaseController;
use Yunshop\RedPacket\models\ReceiveLogsModel;
use app\common\helpers\PaginationHelper;
class ReceiveLogsController extends BaseController
{
/**
* 页码
*/
const PAGE_SIZE = 10;
/**
* @var Order
*/
protected $orderModel;
public function __construct()
{
parent::__construct();
$search = request()->search;
$this->orderModel = ReceiveLogsModel::getReceive($search);
}
public function index()
{
return view('Yunshop\RedPacket::admin.receive_logs', $this->getData())->render();
}
public function getData()
{
$pageSize = 15;
$Search = \Yunshop::request()->get('search');
$member_id = \YunShop::request()->get('member_id');
$quota_id =\YunShop::request()->get('quota_id');
if ($Search) {
$Search = array_filter($Search, function ($item) {
return !empty($item);
});
}
if ($quota_id) {
$list['receive_amount'] = round($this->orderModel->where('red_packet_id',$quota_id)->sum('receive_amount'),2);//已领取红包数量
$list += $this->orderModel->where('red_packet_id',$quota_id)->orderBy('id', 'desc')->paginate($pageSize)->appends(['builder_model'])->toArray();
}
if ($member_id) {
$list['receive_amount'] = round($this->orderModel->where('member_id',$member_id)->sum('receive_amount'),2);//已领取红包数量
// $list['amount_sum'] = $this->orderModel->where('member_id',$id)->sum('amount');//已领取红包数量
$list += $this->orderModel->where('member_id',$member_id)->orderBy('id', 'desc')->paginate($pageSize)->appends(['builder_model'])->toArray();
}else {
$list['receive_amount'] = round($this->orderModel->sum('receive_amount'),2);//已领取红包数量
// $list['amount_sum'] = $this->orderModel->sum('amount');//已领取红包数量
$list += $this->orderModel->orderBy('id', 'desc')->paginate($pageSize)->appends(['builder_model'])->toArray();
}
$pager = PaginationHelper::show($list['total'], $list['current_page'], $list['per_page']);
$data = [
'list' => $list,
'receive_amount' => $list['receive_amount'],
'pager' => $pager,
'search' => $Search,
'amount_sum' =>$list['amount_sum']
];
return $data;
}
public function export()
{
$Search = \Yunshop::request()->get('search');
if ($Search) {
$Search = array_filter($Search, function ($item) {
return !empty($item);
});
}
$data = $this->orderModel->orderBy('id','Asc')->get()->toArray();
$file_name = date('Ymdhis', time()) . '领取记录';
$export_data[0] = [
'ID', '会员名称','会员电话','红包总额度','领取金额','剩余额度','时间'
];
foreach ($data as $key => $item) {
$export_data[$key + 1] = [
$item['id'],
$item['belongs_to_member']['username'],
$item['belongs_to_member']['mobile'],
$item['amount'],
$item['receive_amount'],
($item['amount']- $item['receive_amount']),
$item['created_at']
];
}
return \app\exports\ExcelService::fromArrayExport($export_data, $file_name);
// \Excel::create($file_name, function ($excel) use ($export_data) {
// $excel->setTitle('Office 2005 XLSX Document');
//
// $excel->setCreator('')
// ->setLastModifiedBy("")
// ->setSubject("Office 2005 XLSX Test Document")
// ->setDescription("Test document for Office 2005 XLSX, generated using PHP classes.")
// ->setKeywords("office 2005 openxml php")
// ->setCategory("report file");
//
// $excel->sheet('info', function ($sheet) use ($export_data) {
// $sheet->rows($export_data);
// });
// })->export('xls');
}
}