Commit 5ada1d95 authored by wuxiaoli's avatar wuxiaoli

签到功能

parent 778bd761
<?php
namespace Modules\Member\Controllers\Api;
use App\Http\Controllers\BaseController;
use Illuminate\Http\Request;
use Modules\Member\Services\SignService;
class Sign extends BaseController
{
/*
* 签到记录
*/
public function index(Request $request,SignService $service){
try {
$this->data['data'] = $service->getDataList($request);
} catch (\Throwable $th) {
$this->data['code'] = 0;
$this->data['message'] = $th->getMessage();
}
return response()->json($this->data);
}
/**签到
* @param Request $request
* @param SignService $service
* @return array
*/
public function add(Request $request,SignService $service){
try {
$this->data['data'] = $service->create($request);
} catch (\Exception $e) {
$this->data['code'] = 0;
$this->data['message'] = $e->getMessage();
}
return $this->data;
}
}
\ No newline at end of file
<?php
namespace Modules\Member\Models;
use App\Models\BaseModel;
class SignRecord extends BaseModel
{
protected $table = 'sign_record';
protected $fillable = ['member_id','score','day','month'];
}
\ No newline at end of file
<?php
namespace Modules\Member\Services;
use Modules\Member\Models\SignRecord;
class SignService
{
/**
* @title 获取签到列表
*
* @param [type] $request
* @return void
*/
public function getDataList($request){
$map = [];
if($request->filled('is_user')){
$map[] = ['member_id', '=', auth('api')->user()['uid']];
}
if($request->filled('month')){
$map[] = ['month', '=', $request->input('month')];
}
$query = SignRecord::where($map)->orderBy('id', 'desc');
if($request->filled('page')){
$data = [
'total' => $query->count(),
'page' => $request->input('page', 1),
'data' => $query->offset($request->input('offset', 0))->limit($request->input('limit', 10))->get(),
];
}else{
$data = $query->get();
}
return $data;
}
/**
* @title 添加签到
*
* @param Request $request
* @param MemberService $service
* @return void
*/
public function create($request){
$member_id=auth('api')->user()['uid'];
$checkSign=SignRecord::where(['member_id' => $member_id])->whereDate('created_at', date('Y-m-d'))->count();
if($checkSign){
throw new \Exception('不能重复签到');
}
$record = new SignRecord();
$record->member_id = $member_id;
$record->score = 1;
$record->day = date('d');
$record->month = date('Y-m');
$record->save();
return $checkSign;
}
}
\ No newline at end of file
...@@ -60,4 +60,9 @@ Route::name('member.')->prefix('member')->middleware(['auth.check:api'])->group( ...@@ -60,4 +60,9 @@ Route::name('member.')->prefix('member')->middleware(['auth.check:api'])->group(
Route::post('/withdraw', 'withdraw')->name('withdraw'); Route::post('/withdraw', 'withdraw')->name('withdraw');
Route::get('/count', 'count')->name('count'); Route::get('/count', 'count')->name('count');
}); });
Route::controller(Modules\Member\Controllers\Api\Sign::class)->prefix('sign')->name('sign.')->group(function () {
Route::get('/index', 'index')->name('index');
Route::get('/add', 'add')->name('add');
});
}); });
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment