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

View File

@ -75,19 +75,12 @@ class KeywordSeeder extends Seeder
[ [
'key' => 'lottery_type', 'key' => 'lottery_type',
'name' => '彩种类型', 'name' => '彩种类型',
'children' => [ 'children' => ['电彩', '竞彩', '即开'],
['name' => '电彩', 'value' => 'ledger_item_type_1'],
['name' => '竞彩', 'value' => 'ledger_item_type_2'],
['name' => '即开', 'value' => 'ledger_item_type_3'],
],
], ],
[ [
'key' => 'ledger_item_type', 'key' => 'ledger_item_type',
'name' => '上报数据类型', 'name' => '上报数据类型',
'children' => [ 'children' => [
'电彩',
'竞彩',
'即开',
['key' => 'ledger_item_type_other', 'name' => '其他'] ['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\FeedbackController;
use App\Http\Controllers\Api\FileUploadController; use App\Http\Controllers\Api\FileUploadController;
use App\Http\Controllers\Api\KeywordController; use App\Http\Controllers\Api\KeywordController;
use App\Http\Controllers\Api\Ledger\LedgerController; use App\Http\Controllers\Api\LedgerController;
use App\Http\Controllers\Api\Ledger\LotteryTypeController;
use App\Http\Controllers\Api\ReimbursementController; use App\Http\Controllers\Api\ReimbursementController;
use App\Http\Controllers\Api\StatsController; use App\Http\Controllers\Api\StatsController;
use Illuminate\Support\Facades\Route; use Illuminate\Support\Facades\Route;
@ -39,9 +38,7 @@ Route::group([
Route::get('/stats/dashboard', [StatsController::class, 'dashboard']); Route::get('/stats/dashboard', [StatsController::class, 'dashboard']);
// 数据上报 // 数据上报
Route::post('/ledger/ledgers', [LedgerController::class, 'store']); Route::apiResource('/ledgers', LedgerController::class)->only(['store', 'show']);
Route::get('/ledger/ledgers/{date}', [LedgerController::class, 'show']);
Route::get('/ledger/lottery-types', [LotteryTypeController::class, 'index']);
// 举报投诉 // 举报投诉
Route::post('complaints', [ComplaintController::class, 'store']); Route::post('complaints', [ComplaintController::class, 'store']);