main
Jing Li 2024-04-15 21:33:21 +08:00
parent 125a6538a2
commit 93d745fc9f
5 changed files with 8 additions and 60 deletions

View File

@ -71,13 +71,13 @@ class SalesStatisticController extends AdminController
DB::raw('SUM(expenditure) as expenditure'),
])
->filter($request->input(), LedgerItemFilter::class)
->whereIn('ledger_item_type_id', $lotteryTypes->pluck('value'))
->whereIn('ledger_item_type_id', $lotteryTypes->pluck('key'))
->groupBy('ledger_item_type_id')
->get()
->keyBy('ledger_item_type_id');
return $lotteryTypes->map(function ($lotteryType) use ($statistics) {
$statistic = $statistics->get($lotteryType->value);
$statistic = $statistics->get($lotteryType->key);
return [
'name' => $lotteryType->name,

View File

@ -1,22 +0,0 @@
<?php
namespace App\Http\Controllers\Api\Ledger;
use App\Http\Controllers\Api\Controller;
use App\Models\Keyword;
class LotteryTypeController extends Controller
{
public function index()
{
/** @var \Illuminate\Database\Eloquent\Collection */
$lotteryTypes = Keyword::filter(['parent_key' => 'lottery_type'])->oldest('sort')->get();
return $lotteryTypes
->filter(fn (Keyword $type) => (string) $type->value !== '')
->map(fn ($item) => [
'id' => $item->value,
'name' => $item->name,
]);
}
}

View File

@ -1,6 +1,6 @@
<?php
namespace App\Http\Controllers\Api\Ledger;
namespace App\Http\Controllers\Api;
use App\Exceptions\RuntimeException;
use App\Http\Controllers\Api\Controller;
@ -50,9 +50,7 @@ class LedgerController extends Controller
/** @var \Illuminate\Database\Eloquent\Collection */
$lotteryTypes = Keyword::filter(['parent_key' => 'lottery_type'])
->oldest('sort')
->get()
// 过滤未绑定上报数据类型的彩种
->filter(fn (Keyword $type) => (string) $type->value !== '');
->get();
// 上报数据项的格式:
// [
@ -65,7 +63,7 @@ class LedgerController extends Controller
/** @var \App\Models\Keyword */
foreach ($lotteryTypes as $lotteryType) {
$item = $items->get($lotteryType->value);
$item = $items->get($lotteryType->key);
if (is_null($item)) {
throw new RuntimeException("{$lotteryType->name}未填写上报数据");
@ -155,24 +153,6 @@ class LedgerController extends Controller
->where('date', $date)
->first();
$data = null;
if ($ledger) {
$data = [
'date' => $ledger->date,
'items' => $ledger->items->map(fn ($item) => [
'id' => $item->ledger_item_type_id,
'sales' => $item->sales,
'expenditure' => $item->expenditure,
]),
'new_customers' => $ledger->new_customers,
'sales' => $ledger->sales,
'expenditure' => $ledger->expenditure,
'handover_amount' => $ledger->handover_amount,
'photos' => $ledger->photos,
];
}
return [
'data' => $ledger ? $this->prepareLedger($ledger) : null,
];

View File

@ -75,19 +75,12 @@ class KeywordSeeder extends Seeder
[
'key' => 'lottery_type',
'name' => '彩种类型',
'children' => [
['name' => '电彩', 'value' => 'ledger_item_type_1'],
['name' => '竞彩', 'value' => 'ledger_item_type_2'],
['name' => '即开', 'value' => 'ledger_item_type_3'],
],
'children' => ['电彩', '竞彩', '即开'],
],
[
'key' => 'ledger_item_type',
'name' => '上报数据类型',
'children' => [
'电彩',
'竞彩',
'即开',
['key' => 'ledger_item_type_other', 'name' => '其他']
],
],

View File

@ -6,8 +6,7 @@ use App\Http\Controllers\Api\ComplaintController;
use App\Http\Controllers\Api\FeedbackController;
use App\Http\Controllers\Api\FileUploadController;
use App\Http\Controllers\Api\KeywordController;
use App\Http\Controllers\Api\Ledger\LedgerController;
use App\Http\Controllers\Api\Ledger\LotteryTypeController;
use App\Http\Controllers\Api\LedgerController;
use App\Http\Controllers\Api\ReimbursementController;
use App\Http\Controllers\Api\StatsController;
use Illuminate\Support\Facades\Route;
@ -39,9 +38,7 @@ Route::group([
Route::get('/stats/dashboard', [StatsController::class, 'dashboard']);
// 数据上报
Route::post('/ledger/ledgers', [LedgerController::class, 'store']);
Route::get('/ledger/ledgers/{date}', [LedgerController::class, 'show']);
Route::get('/ledger/lottery-types', [LotteryTypeController::class, 'index']);
Route::apiResource('/ledgers', LedgerController::class)->only(['store', 'show']);
// 举报投诉
Route::post('complaints', [ComplaintController::class, 'store']);