bztang-admin/plugins/shareholder-dividend/src/admin/DividendLogController.php

102 lines
3.4 KiB
PHP

<?php
/**
* Author:
* Date: 2017/08/30
* Time: 下午2:33
*/
namespace Yunshop\ShareholderDividend\admin;
use app\common\components\BaseController;
use app\common\facades\Setting;
use app\common\helpers\PaginationHelper;
use app\common\helpers\Url;
use app\common\services\ExportService;
use Yunshop\ShareholderDividend\models\ShareholderDividendModel;
use Yunshop\TeamDividend\models\TeamDividendLevelModel;
class DividendLogController extends BaseController
{
protected $pageSize;
protected $set;
public function __construct()
{
$this->pageSize = 10;
$this->set = Setting::get('plugin.single_return');
}
/**
* @return mixed|string
* @throws \Throwable
*/
public function index()
{
if (!\YunShop::plugin()->get('team-dividend')) {
return $this->message('未安装或未开启经销商管理', Url::absoluteWeb('index.index'));
}
$search = \YunShop::request()->get('search');
$list = ShareholderDividendModel::getDividendog($search)->orderBy('id', 'desc')->whereHas('hasOneMember')->paginate($this->pageSize);
$pager = PaginationHelper::show($list->total(), $list->currentPage(), $list->perPage());
if (!$search['time']) {
$search['time']['start'] = date("Y-m-d H:i:s", time());
$search['time']['end'] = date("Y-m-d H:i:s", time());
$search['is_time'] = 0;
}
$level = TeamDividendLevelModel::getList()->get();
return view('Yunshop\ShareholderDividend::admin.dividend-log', [
'list' => $list->toarray(),
'pager' => $pager,
'search' => $search,
'level' => $level,
'set' => $this->set,
])->render();
}
public function export()
{
$file_name = date('Ymdhis', time()) . '股东分红记录导出';
$search = \YunShop::request()->get('search');
$list = ShareholderDividendModel::getDividendog($search)->orderBy('id', 'desc')
->whereHas('hasOneMember');
$export_page = request()->export_page ? request()->export_page : 1;
$export_model = new ExportService($list, $export_page);
if (!$export_model->builder_model->isEmpty()) {
$export_data[0] = [
'ID',
'时间',
'会员',
'商城销售总额',
'分红比例',
'团队等级',
'同等级团队人数',
'返现金额'
];
foreach ($export_model->builder_model->toArray() as $key => $item) {
$export_data[$key + 1] = [
$item['id'],
$item['created_at'],
$item['has_one_member']['nickname'],
$item['order_amount'],
$item['rate'].'%',
$item['team_level_name'],
$item['level_num'],
$item['amount']
];
}
$export_model->export($file_name, $export_data, 'plugin.shareholder-dividend.admin.dividend-log.index');
}
}
public function count()
{
$this->set = Setting::get('plugin.shareholder');
$orderAmount = \Yunshop\ShareholderDividend\services\CycleAmounyService::getCycleAmount($this->set['culate_cycle'], $this->set['culate_method']);
echo '统计金额:'.$orderAmount;
}
}