119 lines
2.8 KiB
PHP
119 lines
2.8 KiB
PHP
<?php
|
|
/****************************************************************
|
|
* Author: king -- LiBaoJia
|
|
* Date: 12/25/20 2:33 PM
|
|
* Email: livsyitian@163.com
|
|
* QQ: 995265288
|
|
* IDE: PhpStorm
|
|
* User:
|
|
****************************************************************/
|
|
|
|
|
|
namespace app\backend\modules\point\controllers;
|
|
|
|
|
|
use app\backend\modules\finance\models\PointLog;
|
|
use app\common\components\BaseController;
|
|
use app\common\services\ExportService;
|
|
|
|
class ExportController extends BaseController
|
|
{
|
|
public function index()
|
|
{
|
|
$exportService = new ExportService($this->exportBuilder(), $this->exportPage());
|
|
|
|
$exportData[0] = $this->exportTitle();
|
|
|
|
foreach ($exportService->builder_model as $key => $item) {
|
|
$exportData[$key + 1] = [
|
|
$item->created_at,
|
|
$item->member_id,
|
|
$item->member->nickname,
|
|
$item->member->realname,
|
|
$item->member->mobile,
|
|
$item->source_name,
|
|
$item->before_point,
|
|
$item->point,
|
|
$item->after_point,
|
|
$item->remark,
|
|
$this->getRemark($item),
|
|
];
|
|
}
|
|
$exportService->export($this->fileName(), $exportData, \Request::query('route'));
|
|
}
|
|
|
|
/**
|
|
* 导出数据标题
|
|
*
|
|
* @return array
|
|
*/
|
|
private function exportTitle()
|
|
{
|
|
return [
|
|
'时间',
|
|
'会员ID',
|
|
'昵称',
|
|
'姓名',
|
|
'手机号',
|
|
'业务类型',
|
|
'原有积分',
|
|
'变动积分',
|
|
'剩余积分',
|
|
'备注',
|
|
'会员备注',
|
|
];
|
|
}
|
|
|
|
private function exportBuilder()
|
|
{
|
|
$recordsModels = PointLog::uniacid()->with(['member']);
|
|
|
|
if ($search = $this->searchParams()) {
|
|
$recordsModels = $recordsModels->search($search);
|
|
}
|
|
return $recordsModels->orderBy('id', 'desc');
|
|
}
|
|
|
|
/**
|
|
* @return array
|
|
*/
|
|
public function searchParams()
|
|
{
|
|
return request()->search ?: [];
|
|
}
|
|
|
|
/**
|
|
* 导出页面页面值
|
|
*
|
|
* @return int
|
|
*/
|
|
private function exportPage()
|
|
{
|
|
return request()->export_page ?: 1;
|
|
}
|
|
|
|
/**
|
|
* 导出文件名称
|
|
*
|
|
* @return string
|
|
*/
|
|
private function fileName()
|
|
{
|
|
return date('Y-m-d-h-i-s', time()) . '积分变动明细导出';
|
|
}
|
|
|
|
/**
|
|
* 获取会员备注
|
|
* @param $remark
|
|
* @return false|string
|
|
*/
|
|
private function getRemark($item)
|
|
{
|
|
$member_remark = '';
|
|
if (in_array($item->point_mode,[13,14])) {
|
|
$member_remark = strstr($item->remark,'会员备注:') ? substr(strstr($item->remark,'会员备注:'),13) : null;
|
|
}
|
|
return $member_remark;
|
|
}
|
|
}
|