This repository has been archived on 2021-03-23. You can view files and clone it, but cannot push or open issues or pull requests.
Files
pingan_unionpay/app/Merchant/Controllers/Census/IndexController.php
2020-09-02 11:17:12 +08:00

60 lines
2.0 KiB
PHP

<?php
namespace App\Merchant\Controllers\Census;
use App\Merchant\Controllers\Controller;
use App\Merchant\Exporters\CensusExport;
use App\Models\ActivityRule;
use App\Models\Coupon;
use Auth;
use Illuminate\Http\Request;
class IndexController extends Controller
{
public function index(Request $request)
{
$user = Auth::guard('merchant')->user();
$month = $request->month ?? now()->format('Y-m');
$action = $request->action ?? 'search';
$month = explode('-', $month);
$coupons = Coupon::where('user_id', $user->id)
->whereYear('created_at', $month[0])
->whereMonth('created_at', $month[1])
->where('status', 2)
->get(['id', 'thirdPartyGoodsId', 'created_at']);
$rules = ActivityRule::get();
$coupons = $coupons->groupBy('create_day')->map(function ($items, $key) use ($rules) {
$data = [
'day' => $key,
// 'ysd10' => $items->where('thirdPartyGoodsId', 'YSD-full100-10')->count(),
// 'ysd25' => $items->where('thirdPartyGoodsId', 'YSD-full100-25')->count(),
// 'ysd50' => $items->where('thirdPartyGoodsId', 'YSD-full100-50')->count(),
// 'ysd100' => $items->where('thirdPartyGoodsId', 'YSD-full200-100')->count(),
];
foreach ($rules as $rule) {
$data[$rule->code] = $items->where('thirdPartyGoodsId', $rule->code)->count();
}
return collect($data);
});
$all = [];
foreach ($rules as $rule) {
$all[$rule->code] = $coupons->sum($rule->code);
}
$coupons = $coupons->sortByDesc('day');
if ($action == 'search') {
return view('Merchant::census.index', compact('coupons', 'all', 'rules'));
} else {
return (new CensusExport($month, $user))->download();
}
}
}