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']); + });