117 lines
4.2 KiB
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');
|
|
}
|
|
} |