181 lines
6.3 KiB
PHP
181 lines
6.3 KiB
PHP
<?php
|
||
/**
|
||
* Created by PhpStorm.
|
||
*
|
||
* User: king/QQ:995265288
|
||
* Date: 2018/5/15 上午9:51
|
||
* Email: livsyitian@163.com
|
||
*/
|
||
|
||
namespace app\backend\modules\income\controllers;
|
||
|
||
|
||
use app\backend\modules\income\models\Income;
|
||
use app\common\components\BaseController;
|
||
use app\common\facades\Setting;
|
||
use app\common\helpers\PaginationHelper;
|
||
use app\common\services\ExportService;
|
||
use Yunshop\TeamDividend\admin\models\TeamDividendModel;
|
||
|
||
class IncomeRecordsController extends BaseController
|
||
{
|
||
|
||
//收入明细
|
||
public function index()
|
||
{
|
||
if (request()->ajax()) {
|
||
$records = Income::records()
|
||
->withMember()
|
||
->with([
|
||
'hasManyOrder' => function ($query) {
|
||
$query->select('order_sn','price');
|
||
}
|
||
]);
|
||
|
||
$search = \YunShop::request()->search;
|
||
if ($search) {
|
||
$records = $records->search($search)->searchMember($search);
|
||
}
|
||
$pageList = $records->orderBy('id', 'desc')->paginate();
|
||
$amount = $records->sum('amount');
|
||
$shopSet = Setting::get('shop.member');
|
||
$pageList->map(function ($item) {
|
||
$item->member->nickname = $item->member->nickname ?:
|
||
($item->member->mobile ? substr($item->member->mobile, 0, 2) . '******' . substr($item->member->mobile, -2, 2) : '无昵称会员');
|
||
});
|
||
$pageList = $pageList->toArray();
|
||
foreach ($pageList['data'] as &$item) {
|
||
if (!$item['member']) {
|
||
$item['member'] = [
|
||
'nickname' => '已注销或已删除会员',
|
||
'avatar' => tomedia($shopSet['headimg']),
|
||
];
|
||
}
|
||
|
||
|
||
if($item['dividend_code'] == 2){
|
||
$type = TeamDividendModel::where('id', $item['incometable_id'])->value('type');
|
||
switch ($type) {
|
||
case 0:
|
||
$item['type_name'] = '分红佣金';
|
||
break;
|
||
case 1:
|
||
$item['type_name'] = '示范点奖励';
|
||
break;
|
||
case 2:
|
||
$item['type_name'] = '感恩奖励';
|
||
break;
|
||
case 3:
|
||
$item['type_name'] = '额外分红';
|
||
break;
|
||
case 7:
|
||
$item['type_name'] = '推广佣金';// 月月返
|
||
break;
|
||
case 8:
|
||
$item['type_name'] = '拓新奖';// 分红奖
|
||
break;
|
||
}
|
||
}
|
||
else if($item['dividend_code'] == 203){
|
||
$item['type_name'] = '合作养殖补助';
|
||
}
|
||
}
|
||
|
||
|
||
return $this->successJson('ok', [
|
||
'pageList' => $pageList,
|
||
'search' => $search,
|
||
'income_type_comment' => $this->getIncomeTypeComment(),
|
||
'amount' => $amount
|
||
]);
|
||
}
|
||
return view('income.income_records')->render();
|
||
|
||
}
|
||
|
||
//收入明细导出excel
|
||
public function export()
|
||
{
|
||
$records = Income::records()->withMember()
|
||
->with([
|
||
'hasManyOrder' => function ($query) {
|
||
$query->select('order_sn','price');
|
||
}
|
||
])
|
||
->orderBy('created_at', 'desc');
|
||
$search = \YunShop::request()->search;
|
||
if ($search) {
|
||
if (isset($search['time'])) {
|
||
$search['time'] = explode(',', $search['time']);
|
||
$search['time'] = [
|
||
'start' => $search['time'][0],
|
||
'end' => $search['time'][1]
|
||
];
|
||
}
|
||
$records = $records->search($search)->searchMember($search);
|
||
}
|
||
|
||
$export_page = request()->export_page ? request()->export_page : 1;
|
||
$export_model = new ExportService($records, $export_page);
|
||
// $data = $records->orderBy('created_at','desc')->limit(20)->get()->toArray();
|
||
|
||
$excel_data=[['会员id','粉丝','姓名','手机','时间','收入金额','业务类型','提现状态','打款状态','订单号','订单金额']];
|
||
// foreach ($data as $v){
|
||
foreach ($export_model->builder_model->toArray() as $v){
|
||
|
||
$typeName = '合作养殖补助';
|
||
if($v['dividend_code'] == 2){
|
||
$type = TeamDividendModel::where('id', $v['incometable_id'])->value('type');
|
||
switch ($type) {
|
||
case 0:
|
||
$typeName = '分红佣金';
|
||
break;
|
||
case 1:
|
||
$typeName = '示范点奖励';
|
||
break;
|
||
case 2:
|
||
$typeName = '感恩奖励';
|
||
break;
|
||
case 3:
|
||
$typeName = '额外分红';
|
||
break;
|
||
case 7:
|
||
$typeName = '推广佣金';// 月月返
|
||
break;
|
||
case 8:
|
||
$typeName = '拓新奖';// 分红奖
|
||
break;
|
||
}
|
||
}
|
||
|
||
|
||
$excel_data[]=[
|
||
$v['member_id'],
|
||
empty($v['member']['nickname']) ? '' : $v['member']['nickname'],
|
||
empty($v['member']['realname']) ? '' : $v['member']['realname'],
|
||
empty($v['member']['mobile']) ? '' : $v['member']['mobile'],
|
||
$v['created_at'],
|
||
$v['amount'],
|
||
$typeName,
|
||
$v['status_name'],
|
||
$v['pay_status_name'],
|
||
($v['order_sn']?:''),
|
||
($v['has_many_order']['price']?:''),
|
||
];
|
||
}
|
||
$file_name = date('Ymdhis', time()) . '收入明细导出'.$export_page;
|
||
$export_model->export($file_name, $excel_data, "income.income-records.index");
|
||
|
||
}
|
||
|
||
|
||
private function getIncomeTypeComment()
|
||
{
|
||
return \app\backend\modules\income\Income::current()->getItems();
|
||
}
|
||
|
||
|
||
|
||
|
||
}
|