162 lines
5.7 KiB
PHP
162 lines
5.7 KiB
PHP
<?php
|
||
// +------------------------------------------------+
|
||
// |http://www.cjango.com |
|
||
// +------------------------------------------------+
|
||
// | 修复BUG不是一朝一夕的事情,等我喝醉了再说吧! |
|
||
// +------------------------------------------------+
|
||
// | Author: 小陈叔叔 <Jason.Chen> |
|
||
// +------------------------------------------------+
|
||
namespace app\common\service;
|
||
|
||
class Excel extends _Init
|
||
{
|
||
|
||
/**
|
||
* 导出提现管理
|
||
* @param [type] $list [description]
|
||
* @return [type] [description]
|
||
*/
|
||
public static function withdrawal_excel($list)
|
||
{
|
||
$data = array();
|
||
foreach ($list as $key => $v) {
|
||
$data[] = [
|
||
$v->userinfo->nickname,
|
||
$v->money,
|
||
$v->charge,
|
||
$v->price,
|
||
strip_tags($v->status_text),
|
||
$v->create_time,
|
||
];
|
||
}
|
||
$header = ['姓名', '提现金额', '手续费', '实收', '状态', '创建时间'];
|
||
self::writer($header, $data, '提现记录 - ', true);
|
||
}
|
||
|
||
/**
|
||
* 全部账户
|
||
* @param [type] $list [description]
|
||
* @return [type] [description]
|
||
*/
|
||
public static function account_excel($list)
|
||
{
|
||
|
||
$n = array();
|
||
foreach ($list as $key => $v) {
|
||
if ($v->user->is_country) {
|
||
$level = ' 分公司';
|
||
} elseif ($v->user->is_center) {
|
||
$level = '报单中心';
|
||
} else {
|
||
$level = $v->user->levelinfo->title;
|
||
}
|
||
|
||
$n[] = [
|
||
$v->uid,
|
||
$v->user->username,
|
||
$v->user->info->nickname ?? '',
|
||
$level,
|
||
$v->user->identity->title ?? '',
|
||
$v->user->account->price,
|
||
$v->user->account->earnings,
|
||
$v->user->account->cash,
|
||
$v->user->account->balance,
|
||
$v->user->spot_text,
|
||
$v->user->create_time,
|
||
];
|
||
}
|
||
|
||
$header = ['会员编号', '帐号', '真实名称', '会员等级', '套餐类型', '消费积分账户', '收益账户', '注册积分账户', '余额宝账户', '空点', '注册时间'];
|
||
self::writer($header, $n, '全部账户 - ', true);
|
||
}
|
||
|
||
/**
|
||
* 导出账变
|
||
* @param [type] $list [description]
|
||
* @return [type] [description]
|
||
*/
|
||
public static function account_logs_excel($list)
|
||
{
|
||
$n = array();
|
||
foreach ($list as $key => $v) {
|
||
$n[] = [
|
||
$v->uid,
|
||
$v->user->info->nickname ?? '',
|
||
$v->type_text,
|
||
$v->rules->title,
|
||
$v->increase,
|
||
$v->remark,
|
||
$v->create_time,
|
||
$v->fromuser,
|
||
$v->fuser->info->nickname ?? '',
|
||
];
|
||
}
|
||
$header = ['会员编号', '真实名称', '账户类型', '获取规则', '获取数值', '描述', '产生时间', '产生会员', '会员名称'];
|
||
self::writer($header, $n, '账变明细 - ', true);
|
||
}
|
||
|
||
/**
|
||
* [writer description]
|
||
* @param [type] $header 表头信息
|
||
* @param [type] $data 表数据
|
||
* @param boolean $type 是否输出 true 直接下载 false 保存文件
|
||
*/
|
||
public static function writer($header, $data, $fileName = '', $output = false)
|
||
{
|
||
$cacheMethod = \PHPExcel_CachedObjectStorageFactory::cache_in_memory_gzip;
|
||
$cacheSettings = array('memoryCacheSize' => '16MB');
|
||
$istrue = \PHPExcel_Settings::setCacheStorageMethod($cacheMethod, $cacheSettings);
|
||
$objPHPExcel = new \PHPExcel();
|
||
$objProps = $objPHPExcel->getProperties();
|
||
$objProps->setCreator("skyxu");
|
||
//设置表头
|
||
$key = ord("A");
|
||
foreach ($header as $v) {
|
||
$colum = chr($key);
|
||
$objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '1', $v);
|
||
$objPHPExcel->getActiveSheet()->getStyle($colum . '1')->getFont()->setBold(true);
|
||
$objPHPExcel->getActiveSheet()->getStyle($colum . '1')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
|
||
$key += 1;
|
||
}
|
||
$column = 2;
|
||
$objActSheet = $objPHPExcel->getActiveSheet();
|
||
foreach ($data as $key => $rows) {
|
||
//行写入
|
||
$span = ord("A");
|
||
foreach ($rows as $keyName => $value) {
|
||
// 列写入
|
||
$j = chr($span); //'f'
|
||
$objActSheet->setCellValue($j . $column, $value);
|
||
$span++;
|
||
}
|
||
$column++;
|
||
}
|
||
$objPHPExcel->getActiveSheet()->setTitle($fileName);
|
||
$objPHPExcel->setActiveSheetIndex(0);
|
||
$objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
|
||
$saveName = $fileName . date('YmdHis', time()) . '.xls';
|
||
|
||
if ($output) {
|
||
//$fileName = iconv("utf-8", "gb2312", $fileName);
|
||
header('Content-Type: application/vnd.ms-excel');
|
||
header("Content-Disposition: attachment;filename=\"$saveName\"");
|
||
header('Cache-Control: max-age=0');
|
||
$objWriter->save('php://output');
|
||
} else {
|
||
//$fileName = iconv("utf-8", "gb2312", $fileName);
|
||
$objWriter->save($saveName);
|
||
return $saveName . '.xls';
|
||
}
|
||
}
|
||
|
||
/**
|
||
* 使用的内存
|
||
* @return [type] [description]
|
||
*/
|
||
public static function memory_usage()
|
||
{
|
||
$memory = (!function_exists('memory_get_usage')) ? '0' : round(memory_get_usage() / 1024 / 1024, 2) . 'MB';
|
||
return $memory;
|
||
}
|
||
}
|