110 lines
3.5 KiB
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');
|
|
}
|
|
|
|
|
|
} |