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

110 lines
3.5 KiB
PHP

<?php
/**
* Created by PhpStorm.
* User: yunzhong
* Date: 2019/10/31
* Time: 16:22
*/
namespace Yunshop\RedPacket\admin;
use app\common\components\BaseController;
use Yunshop\RedPacket\models\QuotaLogsModel;
use Yunshop\RedPacket\models\QuotaManagementModel;
use app\common\helpers\PaginationHelper;
use Yunshop\RedPacket\models\ReceiveLogsModel;
class QuotaManagementController extends BaseController
{
/**
* 页码
*/
const PAGE_SIZE = 10;
/**
* @var Order
*/
protected $orderModel;
public function __construct()
{
parent::__construct();
$search = request()->search;
$this->orderModel = QuotaManagementModel::getQuotaManagement($search);
}
public function index()
{
return view('Yunshop\RedPacket::admin.quota_management', $this->getData())->render();
}
public function getData()
{
$pageSize = 10;
$Search = \Yunshop::request()->get('search');
if ($Search) {
$Search = array_filter($Search, function ($item) {
return !empty($item);
});
}
$list['amount_sum'] = $this->orderModel->sum('receive_amount');
$list += $this->orderModel->orderBy('id', 'desc')->paginate($pageSize)->toArray();
foreach($list['data'] as $k => $v) {
$list['data'][$k]['receive_amount'] = round(ReceiveLogsModel::uniacid()->where('member_id',$v['member_id'])->sum('receive_amount'),2);
$amount = round(QuotaLogsModel::uniacid()->where('member_id',$v['member_id'])->sum('receive_amount'),2);
$list['data'][$k]['amount'] = $amount <= 0 ? 0 : $amount;
}
$pager = PaginationHelper::show($list['total'], $list['current_page'], $list['per_page']);
$data = [
'list' => $list,
'pager' => $pager,
'search' => $Search,
'receive_amount' =>$list['receive_amount']
];
return $data;
}
public function export()
{
$Search = \Yunshop::request()->get('search');
if ($Search) {
$Search = array_filter($Search, function ($item) {
return !empty($item);
});
}
request()->offsetSet('page', request()->input('export_page'));
$dataBuilder = $this->orderModel->orderBy('id', 'DESC');
$exportService = new \app\common\services\ExportService($dataBuilder, request()->input('page'));
$data = $dataBuilder->paginate(500);
foreach($data as $value){
$value['receive_amount'] = round(ReceiveLogsModel::uniacid()->where('member_id',$value['member_id'])->sum('receive_amount'),2);
$value['amount'] = round(QuotaLogsModel::uniacid()->where('member_id',$value['member_id'])->sum('receive_amount'), 2);
}
$file_name = date('Ymdhis', time()) . '红包额度管理';
$export_data[0] = [
'会员ID', '会员名称','会员电话','总额度','已领取金额','剩余额度'
];
foreach ($data as $key => $item) {
$export_data[$key + 1] = [
$item->belongsToMember->uid,
$item->belongsToMember->username,
$item->belongsToMember->mobile,
$item['amount'],
$item['receive_amount'],
($item['amount']-$item['receive_amount']),
];
}
return $exportService->export($file_name, $export_data, 'plugin.red-packet.admin.quota-management.index');
}
}