generated from liutk/owl-admin-base
调整补充
parent
166f7850e0
commit
df7ca68395
|
|
@ -105,7 +105,10 @@ class ActivityController extends AdminController
|
|||
amis()->TextControl('name', __('admin.activities.name'))->required(true),
|
||||
Components::make()->cropImageControl('cover', __('admin.activities.cover'), 1.5)->required(true),
|
||||
amis()->DateRangeControl('start_at', __('admin.activities.activity_at'))->extraName('end_at')->clearable(false)->format('YYYY-MM-DD HH:mm:ss')->required(true),
|
||||
amis()->TextareaControl('rules', __('admin.activities.rules'))->minRows(30)
|
||||
amis()->TextControl('share_title', __('admin.activities.share_title')),
|
||||
Components::make()->cropImageControl('share_image', __('admin.activities.share_image'), 1.5),
|
||||
amis()->TextareaControl('rules', __('admin.activities.rules'))->minRows(30),
|
||||
|
||||
]);
|
||||
}
|
||||
|
||||
|
|
@ -118,6 +121,8 @@ class ActivityController extends AdminController
|
|||
amis()->TextControl('name', __('admin.activities.name'))->required(true),
|
||||
amis()->Image()->type('static-image')->name('cover')->label( __('admin.activities.cover'))->height('80px')->width('80px')->thumbMode('cover')->enlargeAble(true)->required(true),
|
||||
amis()->DateRangeControl('start_at', __('admin.activities.activity_at'))->extraName('end_at')->clearable(false)->format('YYYY-MM-DD HH:mm:ss')->required(true),
|
||||
amis()->TextControl('share_title', __('admin.activities.share_title')),
|
||||
amis()->Image()->type('static-image')->name('share_image')->label( __('admin.activities.share_image'))->height('80px')->width('80px')->thumbMode('cover')->enlargeAble(true),
|
||||
amis()->TextareaControl('rules', __('admin.activities.rules'))
|
||||
]),
|
||||
]);
|
||||
|
|
|
|||
|
|
@ -53,4 +53,30 @@ class ActivityController extends ApiController
|
|||
|
||||
return $this->success(['rank_list' => UserActivityResource::collection($list)->resolve(), 'rank_number'=>$rankNumber]);
|
||||
}
|
||||
|
||||
public function latestRankList(Request $request)
|
||||
{
|
||||
$activity = Activity::show()->sort()->first();
|
||||
$activityId = $activity?->id ?? 0;
|
||||
//获取排行表
|
||||
$list = UserActivity::with('user')->where('activity_id', $activityId)->where('mark', '>', 0)->sort()->limit(30)->get();
|
||||
|
||||
//获取当前排名;
|
||||
$userMark = UserActivity::where([
|
||||
'user_id' => $request->user()->id,
|
||||
'activity_id' => $activityId,
|
||||
])->value('mark');
|
||||
|
||||
$rankNumber = null;
|
||||
if($userMark){
|
||||
$rankNumber = UserActivity::where('activity_id', $activityId)->where('mark', '>', $userMark)->sort()->count();
|
||||
$rankNumber++;
|
||||
}
|
||||
|
||||
return $this->success([
|
||||
'activity'=> ActivityResource::make($activity)->resolve(),
|
||||
'rank_list' => UserActivityResource::collection($list)->resolve(),
|
||||
'rank_number'=>$rankNumber,
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
|
@ -23,6 +23,8 @@ class ActivityResource extends JsonResource
|
|||
'start_at' => $this->start_at->format('Y-m-d H:i'),
|
||||
'end_at' => $this->end_at->format('Y-m-d H:i'),
|
||||
'state' => $this->state,
|
||||
'share_image'=> $this->share_image ?? '',
|
||||
'share_title'=> $this->share_title ?? '',
|
||||
|
||||
'has_gift' => $this->when($this->has_gift !== null, $this->has_gift),
|
||||
];
|
||||
|
|
|
|||
|
|
@ -30,6 +30,7 @@ class ActivityService extends BaseService
|
|||
$model = $this->getModel();
|
||||
|
||||
$data['cover'] = $this->saveImage('cover', 'activities/cover')[0] ?? '';
|
||||
$data['share_image'] = $this->saveImage('share_image', 'activities/share_image')[0] ?? '';
|
||||
|
||||
foreach ($data as $k => $v) {
|
||||
if (!in_array($k, $columns)) {
|
||||
|
|
@ -49,6 +50,9 @@ class ActivityService extends BaseService
|
|||
|
||||
if(isset($data['cover'])){
|
||||
$data['cover'] = $this->saveImage('cover', 'activities/cover')[0] ?? '';
|
||||
}
|
||||
if(isset($data['share_image'])){
|
||||
$data['share_image'] = $this->saveImage('share_image', 'activities/share_image')[0] ?? '';
|
||||
}
|
||||
|
||||
foreach ($data as $k => $v) {
|
||||
|
|
|
|||
|
|
@ -0,0 +1,31 @@
|
|||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*/
|
||||
public function up(): void
|
||||
{
|
||||
Schema::table('activities', function (Blueprint $table) {
|
||||
//
|
||||
$table->string('share_image')->nullable()->comment('分享图');
|
||||
$table->string('share_title')->nullable()->comment('分享文案');
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*/
|
||||
public function down(): void
|
||||
{
|
||||
Schema::table('activities', function (Blueprint $table) {
|
||||
//
|
||||
$table->dropColumn(['share_image', 'share_title']);
|
||||
});
|
||||
}
|
||||
};
|
||||
|
|
@ -336,7 +336,9 @@ return [
|
|||
'end_at' => '结束时间',
|
||||
'rules' => '规则内容',
|
||||
'cover' => '活动封面',
|
||||
'user_count' => '参与人数'
|
||||
'user_count' => '参与人数',
|
||||
'share_image' => '分享图',
|
||||
'share_title' => '分享文案',
|
||||
],
|
||||
'activity_games' => [
|
||||
'name' => '场次名称',
|
||||
|
|
|
|||
|
|
@ -32,6 +32,7 @@ Route::group(['prefix' => 'miniprogram', 'namespace' => 'Api\Miniprogram'], func
|
|||
// 活动接口
|
||||
Route::get('activities', [App\Http\Controllers\Api\ActivityController::class, 'index']);
|
||||
Route::get('activities/rank-list', [App\Http\Controllers\Api\ActivityController::class, 'rankList']);
|
||||
Route::get('activities/latest-rank-list', [App\Http\Controllers\Api\ActivityController::class, 'latestRankList']);
|
||||
Route::get('activities/{activity}', [App\Http\Controllers\Api\ActivityController::class, 'show']);
|
||||
Route::get('games', [App\Http\Controllers\Api\ActivityGameController::class, 'index']);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue