From 86f0477c38e1c7d4ab0efc60a4c6e5064328cbaf Mon Sep 17 00:00:00 2001 From: liyinglin Date: Wed, 12 Apr 2023 10:22:18 +0800 Subject: [PATCH 01/10] 1 --- .../Controllers/Mobile/UserController.php | 24 +++++++++++++++++-- routes/api.php | 3 ++- 2 files changed, 24 insertions(+), 3 deletions(-) diff --git a/app/Http/Controllers/Mobile/UserController.php b/app/Http/Controllers/Mobile/UserController.php index 31722c9..b4fc719 100644 --- a/app/Http/Controllers/Mobile/UserController.php +++ b/app/Http/Controllers/Mobile/UserController.php @@ -4,6 +4,7 @@ namespace App\Http\Controllers\Mobile; use App\Helpers\ResponseCode; use App\Helpers\StarterResponseCode; +use App\Models\Config; use App\Models\User; use App\Models\Visit; use EasyWeChat\Factory; @@ -161,7 +162,7 @@ class UserController extends CommonController public function myVisit() { $all = request()->all(); - $list = Visit::with('logs.admin','logs.user', 'visitTime', 'admin', 'visitArea', 'acceptAdmin.department', 'acceptAdminSignFile', 'acceptGoodsAdmin.department')->where('user_id', $this->getUserId()) + $list = Visit::with('logs.admin', 'logs.user', 'visitTime', 'admin', 'visitArea', 'acceptAdmin.department', 'acceptAdminSignFile', 'acceptGoodsAdmin.department')->where('user_id', $this->getUserId()) ->where(function ($query) use ($all) { if (isset($all['type'])) { $query->where('type', $all['type']); @@ -197,8 +198,27 @@ class UserController extends CommonController if ($validator->fails()) { return $this->fail([ResponseCode::ERROR_PARAMETER, implode(',', $validator->errors()->all())]); } - $detail = Visit::with('logs.admin','logs.user','visitTime', 'admin', 'visitArea', 'acceptAdmin.department', 'acceptAdminSignFile', 'acceptGoodsAdmin.department')->find($all['id']); + $detail = Visit::with('logs.admin', 'logs.user', 'visitTime', 'admin', 'visitArea', 'acceptAdmin.department', 'acceptAdminSignFile', 'acceptGoodsAdmin.department')->find($all['id']); return $this->success($detail); } + /** + * @OA\Get( + * path="/api/mobile/user/config", + * tags={"小程序-用户管理"}, + * summary="配置信息", + * description="", + * @OA\Parameter(name="token", in="query", @OA\Schema(type="string"), required=true, description="token"), + * @OA\Response( + * response="200", + * description="暂无" + * ) + * ) + */ + public function config() + { + $list = Config::get(); + return $this->success($list); + } + } diff --git a/routes/api.php b/routes/api.php index 8a37524..0a4e8e0 100644 --- a/routes/api.php +++ b/routes/api.php @@ -84,7 +84,8 @@ Route::group(["namespace" => "Admin", "prefix" => "admin", "middleware" => "sanc // 前台 Route::get('mobile/user/login', [\App\Http\Controllers\Mobile\UserController::class, 'login']); -Route::group(["namespace" => "Mobile", "prefix" => "mobile","middleware" => "sanctum.jwt:mobile"], function () { +Route::get('mobile/user/config', [\App\Http\Controllers\Mobile\UserController::class, 'config']); +Route::group(["namespace" => "Mobile", "prefix" => "mobile", "middleware" => "sanctum.jwt:mobile"], function () { Route::post('user/save', [\App\Http\Controllers\Mobile\UserController::class, 'save']); Route::get('user/mobile', [\App\Http\Controllers\Mobile\UserController::class, 'mobile']); Route::get('user/show', [\App\Http\Controllers\Mobile\UserController::class, 'show']); From d1a672f6c8fe1541a1103d06c8893e239bba1e65 Mon Sep 17 00:00:00 2001 From: liyinglin Date: Wed, 12 Apr 2023 14:42:35 +0800 Subject: [PATCH 02/10] 1 --- .../Admin/VisitAuditController.php | 2 +- .../Controllers/Admin/VisitController.php | 2 +- .../Controllers/Mobile/VisitController.php | 56 ++++++++++++++++++- app/Models/StudyLog.php | 9 +++ app/Models/Visit.php | 9 ++- ...3_04_12_142152_create_study_logs_table.php | 38 +++++++++++++ routes/api.php | 3 + 7 files changed, 114 insertions(+), 5 deletions(-) create mode 100644 app/Models/StudyLog.php create mode 100644 database/migrations/2023_04_12_142152_create_study_logs_table.php diff --git a/app/Http/Controllers/Admin/VisitAuditController.php b/app/Http/Controllers/Admin/VisitAuditController.php index 8e8fde2..6051646 100644 --- a/app/Http/Controllers/Admin/VisitAuditController.php +++ b/app/Http/Controllers/Admin/VisitAuditController.php @@ -183,7 +183,7 @@ class VisitAuditController extends CommonController 'value' => $visit->company_name ], ]; - Visit::subMsg('IczaKkCmwf55tAAzCcxb_fbbf5L25SWrSKvaBrkIyk4', $user->openid, $templateData); + Visit::subMsg('IczaKkCmwf55tAAzCcxb_fbbf5L25SWrSKvaBrkIyk4', $user->openid, $templateData,$all['visit_id']); } // 审核记录 $auditAdmin = Admin::find($model->audit_admin_id); diff --git a/app/Http/Controllers/Admin/VisitController.php b/app/Http/Controllers/Admin/VisitController.php index 19df06c..bad3bc0 100644 --- a/app/Http/Controllers/Admin/VisitController.php +++ b/app/Http/Controllers/Admin/VisitController.php @@ -45,7 +45,7 @@ class VisitController extends CommonController public function index() { $all = request()->all(); - $list = Visit::with('visitTime', 'admin', 'visitArea', 'acceptAdmin.department', 'acceptAdminSignFile', 'acceptGoodsAdmin.department', 'audit.auditAdmin')->where(function ($query) use ($all) { + $list = Visit::with('gateLogs', 'visitTime', 'admin', 'visitArea', 'acceptAdmin.department', 'acceptAdminSignFile', 'acceptGoodsAdmin.department', 'audit.auditAdmin')->where(function ($query) use ($all) { if (isset($all['keyword'])) { $query->where('name', 'like', '%' . $all['keyword'] . '%'); } diff --git a/app/Http/Controllers/Mobile/VisitController.php b/app/Http/Controllers/Mobile/VisitController.php index f1f7278..b398bfe 100644 --- a/app/Http/Controllers/Mobile/VisitController.php +++ b/app/Http/Controllers/Mobile/VisitController.php @@ -6,11 +6,13 @@ use App\Helpers\ResponseCode; use App\Models\Admin; use App\Models\Department; use App\Models\Study; +use App\Models\StudyLog; use App\Models\Visit; use App\Models\VisitArea; use App\Models\VisitAudit; use App\Models\VisitLog; use App\Models\VisitTime; +use Illuminate\Support\Carbon; use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Validator; @@ -130,7 +132,7 @@ class VisitController extends CommonController 'value' => $accpetDepartment->name ?? '' ], ]; - $res = Visit::subMsg('DmzNRREPFdZrMWconNDdbj_ebtVPRWufq27kRQ25eNg', $this->getUser()->openid, $templateData); + $res = Visit::subMsg('DmzNRREPFdZrMWconNDdbj_ebtVPRWufq27kRQ25eNg', $this->getUser()->openid, $templateData,$model->id); DB::commit(); return $this->success('更新成功'); } catch (\Exception $exception) { @@ -216,4 +218,56 @@ class VisitController extends CommonController return $this->success($list); } + /** + * @OA\Get( + * path="/api/mobile/visit/ask-log", + * tags={"小程序-学习"}, + * summary="获取学习记录", + * description="", + * @OA\Parameter(name="token", in="query", @OA\Schema(type="string"), required=true, description="token"), + * @OA\Response( + * response="200", + * description="暂无" + * ) + * ) + */ + public function askLog() + { + $log = StudyLog::orderBy('id', 'desc')->first(); + if (empty($log)) { + return $this->fail([ResponseCode::ERROR_BUSINESS, '未学习']); + } + $diff = Carbon::parse($log->created_at)->diffInDays(Carbon::now()); + if ($diff > $log->expire_day) { + return $this->fail([ResponseCode::ERROR_BUSINESS, '学习过期']); + } + return $this->success("学习有效中"); + } + + /** + * @OA\Post( + * path="/api/mobile/visit/ask-save", + * tags={"小程序-学习"}, + * summary="保存学习记录", + * description="", + * @OA\Parameter(name="content", in="query", @OA\Schema(type="string"), required=true, description="内容json"), + * @OA\Parameter(name="ask", in="query", @OA\Schema(type="string"), required=true, description="问题json"), + * @OA\Parameter(name="expire_day", in="query", @OA\Schema(type="string"), required=true, description="有效天数"), + * @OA\Parameter(name="token", in="query", @OA\Schema(type="string"), required=true, description="token"), + * @OA\Response( + * response="200", + * description="暂无" + * ) + * ) + */ + public function askSave() + { + $all = request()->all(); + $model = new StudyLog(); + $all['user_id'] = $this->getUserId(); + $model->fill($all); + $res = $model->save(); + return $this->success($res); + } + } diff --git a/app/Models/StudyLog.php b/app/Models/StudyLog.php new file mode 100644 index 0000000..27bab9f --- /dev/null +++ b/app/Models/StudyLog.php @@ -0,0 +1,9 @@ +hasMany(VisitLog::class, 'visit_id', 'id'); } + public function gateLogs() + { + return $this->hasMany(GateLog::class, 'visit_id', 'id'); + } + // 小程序订阅消息 - public static function subMsg($template_id, $openid, $data) + public static function subMsg($template_id, $openid, $data,$id) { $config = [ 'app_id' => \config('app.wechat_appid'), @@ -89,7 +94,7 @@ class Visit extends SoftDeletesModel $data = [ 'template_id' => $template_id, 'touser' => $openid, - 'page' => '', + 'page' => 'pages/visit/detail?id=' . $id, 'data' => $data ]; return $app->subscribe_message->send($data); diff --git a/database/migrations/2023_04_12_142152_create_study_logs_table.php b/database/migrations/2023_04_12_142152_create_study_logs_table.php new file mode 100644 index 0000000..ad8523c --- /dev/null +++ b/database/migrations/2023_04_12_142152_create_study_logs_table.php @@ -0,0 +1,38 @@ +increments('id'); + $table->integer('admin_id')->nullable()->comment('不用填'); + $table->integer('department_id')->nullable()->comment('不用填'); + $table->integer('user_id'); + $table->json('content')->nullable(); + $table->json('ask')->nullable(); + $table->integer('expire_day')->comment('有效天数')->nullable(); + $table->timestamps(); + $table->softDeletes(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('study_logs'); + } +} diff --git a/routes/api.php b/routes/api.php index 0a4e8e0..08249f1 100644 --- a/routes/api.php +++ b/routes/api.php @@ -97,4 +97,7 @@ Route::group(["namespace" => "Mobile", "prefix" => "mobile", "middleware" => "sa Route::get('visit/visit-area', [\App\Http\Controllers\Mobile\VisitController::class, 'visitArea']); Route::get('visit/visit-time', [\App\Http\Controllers\Mobile\VisitController::class, 'visitTime']); + Route::get('visit/ask-log', [\App\Http\Controllers\Mobile\VisitController::class, 'askLog']); + Route::post('visit/ask-save', [\App\Http\Controllers\Mobile\VisitController::class, 'askSave']); + }); From a639228b8616f8d98ef5c1f69689837a0a087aac Mon Sep 17 00:00:00 2001 From: liyinglin Date: Wed, 12 Apr 2023 14:43:37 +0800 Subject: [PATCH 03/10] 1 --- app/Models/Visit.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Models/Visit.php b/app/Models/Visit.php index e1caf0e..ce992f0 100644 --- a/app/Models/Visit.php +++ b/app/Models/Visit.php @@ -80,7 +80,7 @@ class Visit extends SoftDeletesModel public function gateLogs() { - return $this->hasMany(GateLog::class, 'visit_id', 'id'); + return $this->hasMany(GateLog::class, 'code', 'code'); } // 小程序订阅消息 From 3d8b355ac98bd1683d9737b1a974ae8dde4cce75 Mon Sep 17 00:00:00 2001 From: liyinglin Date: Wed, 12 Apr 2023 14:44:49 +0800 Subject: [PATCH 04/10] 1 --- app/Models/GateLog.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Models/GateLog.php b/app/Models/GateLog.php index d0fac54..a40393c 100644 --- a/app/Models/GateLog.php +++ b/app/Models/GateLog.php @@ -2,7 +2,7 @@ namespace App\Models; -class GateLog extends SoftDeletesModel +class GateLog extends CommonModel { protected $guarded = ['id']; From 52ddad6cee78d669d1bce957c707abebe2847de2 Mon Sep 17 00:00:00 2001 From: liyinglin Date: Thu, 13 Apr 2023 09:23:17 +0800 Subject: [PATCH 05/10] 1 --- app/Http/Controllers/Mobile/VisitController.php | 1 + 1 file changed, 1 insertion(+) diff --git a/app/Http/Controllers/Mobile/VisitController.php b/app/Http/Controllers/Mobile/VisitController.php index b398bfe..e5dc423 100644 --- a/app/Http/Controllers/Mobile/VisitController.php +++ b/app/Http/Controllers/Mobile/VisitController.php @@ -265,6 +265,7 @@ class VisitController extends CommonController $all = request()->all(); $model = new StudyLog(); $all['user_id'] = $this->getUserId(); + dd($all); $model->fill($all); $res = $model->save(); return $this->success($res); From cfd4b6df454fb50b35e858e58fd5ed8940623a48 Mon Sep 17 00:00:00 2001 From: liyinglin Date: Thu, 13 Apr 2023 09:24:44 +0800 Subject: [PATCH 06/10] 1 --- app/Http/Controllers/Mobile/VisitController.php | 1 - app/Models/StudyLog.php | 4 ++++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/app/Http/Controllers/Mobile/VisitController.php b/app/Http/Controllers/Mobile/VisitController.php index e5dc423..b398bfe 100644 --- a/app/Http/Controllers/Mobile/VisitController.php +++ b/app/Http/Controllers/Mobile/VisitController.php @@ -265,7 +265,6 @@ class VisitController extends CommonController $all = request()->all(); $model = new StudyLog(); $all['user_id'] = $this->getUserId(); - dd($all); $model->fill($all); $res = $model->save(); return $this->success($res); diff --git a/app/Models/StudyLog.php b/app/Models/StudyLog.php index 27bab9f..243e4e7 100644 --- a/app/Models/StudyLog.php +++ b/app/Models/StudyLog.php @@ -6,4 +6,8 @@ class StudyLog extends CommonModel { protected $guarded = ['id']; + protected $casts = [ + 'content'=>'json', + 'ask'=>'json', + ]; } From 59ee7ca2cf835b153b26e004cfa88392d54d22b6 Mon Sep 17 00:00:00 2001 From: liyinglin Date: Thu, 13 Apr 2023 09:26:43 +0800 Subject: [PATCH 07/10] 1 --- .../2023_04_10_140024_alert_visits_table.php | 33 ------------------- 1 file changed, 33 deletions(-) delete mode 100644 database/migrations/2023_04_10_140024_alert_visits_table.php diff --git a/database/migrations/2023_04_10_140024_alert_visits_table.php b/database/migrations/2023_04_10_140024_alert_visits_table.php deleted file mode 100644 index b59dade..0000000 --- a/database/migrations/2023_04_10_140024_alert_visits_table.php +++ /dev/null @@ -1,33 +0,0 @@ -json('person_no')->nullable()->comment('人牌'); - $table->json('car_no')->nullable()->comment('车牌'); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::table('visits', function (Blueprint $table) { - // - }); - } -}; From a1835ee6b17edee91dc709f0d19ddef848fdc43f Mon Sep 17 00:00:00 2001 From: liyinglin Date: Thu, 13 Apr 2023 09:27:38 +0800 Subject: [PATCH 08/10] 1 --- app/Http/Controllers/Mobile/VisitController.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Http/Controllers/Mobile/VisitController.php b/app/Http/Controllers/Mobile/VisitController.php index b398bfe..1fa05d5 100644 --- a/app/Http/Controllers/Mobile/VisitController.php +++ b/app/Http/Controllers/Mobile/VisitController.php @@ -267,7 +267,7 @@ class VisitController extends CommonController $all['user_id'] = $this->getUserId(); $model->fill($all); $res = $model->save(); - return $this->success($res); + return $this->success($model); } } From d1b3e1af2e4e5db650b0b5e2a332cce24eac0aab Mon Sep 17 00:00:00 2001 From: liyinglin Date: Thu, 13 Apr 2023 09:35:50 +0800 Subject: [PATCH 09/10] 1 --- app/Http/Controllers/Mobile/VisitController.php | 1 + .../migrations/2023_04_12_142152_create_study_logs_table.php | 1 + 2 files changed, 2 insertions(+) diff --git a/app/Http/Controllers/Mobile/VisitController.php b/app/Http/Controllers/Mobile/VisitController.php index 1fa05d5..80d6fa6 100644 --- a/app/Http/Controllers/Mobile/VisitController.php +++ b/app/Http/Controllers/Mobile/VisitController.php @@ -253,6 +253,7 @@ class VisitController extends CommonController * @OA\Parameter(name="content", in="query", @OA\Schema(type="string"), required=true, description="内容json"), * @OA\Parameter(name="ask", in="query", @OA\Schema(type="string"), required=true, description="问题json"), * @OA\Parameter(name="expire_day", in="query", @OA\Schema(type="string"), required=true, description="有效天数"), + * @OA\Parameter(name="type", in="query", @OA\Schema(type="string"), required=true, description="类型 init型"), * @OA\Parameter(name="token", in="query", @OA\Schema(type="string"), required=true, description="token"), * @OA\Response( * response="200", diff --git a/database/migrations/2023_04_12_142152_create_study_logs_table.php b/database/migrations/2023_04_12_142152_create_study_logs_table.php index ad8523c..f973440 100644 --- a/database/migrations/2023_04_12_142152_create_study_logs_table.php +++ b/database/migrations/2023_04_12_142152_create_study_logs_table.php @@ -21,6 +21,7 @@ class CreateStudyLogsTable extends Migration $table->json('content')->nullable(); $table->json('ask')->nullable(); $table->integer('expire_day')->comment('有效天数')->nullable(); + $table->boolean('type')->comment('类型')->nullable(); $table->timestamps(); $table->softDeletes(); }); From 6d968e69eae7379f0085483d6fc367bce97ccf4c Mon Sep 17 00:00:00 2001 From: liyinglin Date: Thu, 13 Apr 2023 09:38:20 +0800 Subject: [PATCH 10/10] 1 --- app/Http/Controllers/Mobile/VisitController.php | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/app/Http/Controllers/Mobile/VisitController.php b/app/Http/Controllers/Mobile/VisitController.php index 80d6fa6..e533421 100644 --- a/app/Http/Controllers/Mobile/VisitController.php +++ b/app/Http/Controllers/Mobile/VisitController.php @@ -132,7 +132,7 @@ class VisitController extends CommonController 'value' => $accpetDepartment->name ?? '' ], ]; - $res = Visit::subMsg('DmzNRREPFdZrMWconNDdbj_ebtVPRWufq27kRQ25eNg', $this->getUser()->openid, $templateData,$model->id); + $res = Visit::subMsg('DmzNRREPFdZrMWconNDdbj_ebtVPRWufq27kRQ25eNg', $this->getUser()->openid, $templateData, $model->id); DB::commit(); return $this->success('更新成功'); } catch (\Exception $exception) { @@ -224,6 +224,7 @@ class VisitController extends CommonController * tags={"小程序-学习"}, * summary="获取学习记录", * description="", + * @OA\Parameter(name="type", in="query", @OA\Schema(type="string"), required=true, description="类型"), * @OA\Parameter(name="token", in="query", @OA\Schema(type="string"), required=true, description="token"), * @OA\Response( * response="200", @@ -233,7 +234,8 @@ class VisitController extends CommonController */ public function askLog() { - $log = StudyLog::orderBy('id', 'desc')->first(); + $type = request('type'); + $log = StudyLog::where('type', $type)->orderBy('id', 'desc')->first(); if (empty($log)) { return $this->fail([ResponseCode::ERROR_BUSINESS, '未学习']); }