diff --git a/app/Http/Controllers/Admin/OtherController.php b/app/Http/Controllers/Admin/OtherController.php index 6553e7c..7c2239e 100644 --- a/app/Http/Controllers/Admin/OtherController.php +++ b/app/Http/Controllers/Admin/OtherController.php @@ -35,7 +35,7 @@ class OtherController extends CommonController $query->where('department_id',$all['department_id']); } if(isset($all['keyword'])){ - $query->where('name','like','%'.$all['keyword'].'%')->orWhere('username','like','%'.$all['keyword'].'%')->orWhere('mobile','like','%'.$all['keyword'].'%'); + $query->where('name',$all['keyword'])->orWhere('mobile',$all['keyword']); } })->orderBy($all['sort_name']??'id',$all['sort_type']??'desc') ->paginate($all['page_size']??20); diff --git a/app/Http/Controllers/Admin/VisitController.php b/app/Http/Controllers/Admin/VisitController.php index 46f6f33..2499a31 100644 --- a/app/Http/Controllers/Admin/VisitController.php +++ b/app/Http/Controllers/Admin/VisitController.php @@ -3,6 +3,7 @@ namespace App\Http\Controllers\Admin; use App\Models\Visit; +use App\Models\VisitLog; use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Validator; use App\Helpers\ResponseCode; @@ -32,6 +33,7 @@ class VisitController extends CommonController * @OA\Parameter(name="my_self", in="query", @OA\Schema(type="string"), required=false, description="是否显示自己创建的0否1是,默认0"), * @OA\Parameter(name="my_audit", in="query", @OA\Schema(type="string"), required=false, description="是否显示我审核的记录0否1是,默认0"), * @OA\Parameter(name="my_accept_admin", in="query", @OA\Schema(type="string"), required=false, description="是否显示接待人员是自己的0否1是,默认0"), + * @OA\Parameter(name="long_time", in="query", @OA\Schema(type="string"), required=false, description="是否长期访客0否1是"), * @OA\Parameter(name="token", in="query", @OA\Schema(type="string"), required=true, description="token"), * @OA\Response( * response="200", @@ -42,7 +44,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('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'] . '%'); } @@ -58,6 +60,9 @@ class VisitController extends CommonController if (isset($all['my_accept_admin']) && !empty($all['my_accept_admin'])) { $query->where('accept_admin_id', $this->getUserId()); } + if (isset($all['long_time']) && !empty($all['long_time'])) { + $query->where('long_time', $all['long_time']); + } if (isset($all['my_audit']) && !empty($all['my_audit'])) { $query->whereHas('audit', function ($q) { $q->where('audit_admin_id', $this->getUserId()); @@ -114,7 +119,7 @@ class VisitController extends CommonController if ($validator->fails()) { return $this->fail([ResponseCode::ERROR_PARAMETER, implode(',', $validator->errors()->all())]); } - $detail = Visit::with('audit.auditAdmin', 'visitTime', 'acceptAdmin.department', 'acceptAdminSignFile', 'acceptGoodsAdmin.department', 'visitArea','audit.auditAdmin')->find($all['id']); + $detail = Visit::with('logs', 'audit.auditAdmin', 'visitTime', 'acceptAdmin.department', 'acceptAdminSignFile', 'acceptGoodsAdmin.department', 'visitArea', 'audit.auditAdmin')->find($all['id']); return $this->success($detail); } @@ -182,6 +187,7 @@ class VisitController extends CommonController } $model->fill($all); $model->save(); + VisitLog::add($this->getUser(), '', $model->id, isset($all['id']) ? '更新拜访记录' : '新增拜访记录'); DB::commit(); return $this->success('更新成功'); } catch (\Exception $exception) { diff --git a/app/Http/Controllers/Mobile/UserController.php b/app/Http/Controllers/Mobile/UserController.php index 8d06daa..f4802f8 100644 --- a/app/Http/Controllers/Mobile/UserController.php +++ b/app/Http/Controllers/Mobile/UserController.php @@ -161,7 +161,7 @@ class UserController extends CommonController public function myVisit() { $all = request()->all(); - $list = Visit::with('visitTime', 'admin', 'visitArea', 'acceptAdmin.department', 'acceptAdminSignFile', 'acceptGoodsAdmin.department')->where('user_id', $this->getUserId()) + $list = Visit::with('logs', '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']); diff --git a/app/Http/Controllers/Mobile/VisitController.php b/app/Http/Controllers/Mobile/VisitController.php index ad4b95d..ba01526 100644 --- a/app/Http/Controllers/Mobile/VisitController.php +++ b/app/Http/Controllers/Mobile/VisitController.php @@ -9,6 +9,7 @@ use App\Models\Study; use App\Models\Visit; use App\Models\VisitArea; use App\Models\VisitAudit; +use App\Models\VisitLog; use App\Models\VisitTime; use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Validator; @@ -106,6 +107,7 @@ class VisitController extends CommonController ]); } } + VisitLog::add('', $this->getUser(), $model->id, isset($all['id']) ? '更新拜访记录' : '新增拜访记录'); DB::commit(); return $this->success('更新成功'); } catch (\Exception $exception) { diff --git a/app/Models/Visit.php b/app/Models/Visit.php index 2ccb755..7faf9d2 100644 --- a/app/Models/Visit.php +++ b/app/Models/Visit.php @@ -30,7 +30,7 @@ class Visit extends SoftDeletesModel public function getAuditStatusTextAttribute() { - $array = ['-1' => '待学习', '0' => '待审核', '1' => '通过', '2' => '驳回', '3' => '已进厂', '4' => '已离厂','5'=>'已取消']; + $array = ['-1' => '待学习', '0' => '待审核', '1' => '通过', '2' => '驳回', '3' => '已进厂', '4' => '已离厂', '5' => '已取消']; return $array[$this->audit_status] ?? ''; } @@ -59,12 +59,19 @@ class Visit extends SoftDeletesModel return $this->hasOne(Upload::class, 'id', 'accept_admin_sign'); } - public function visitArea(){ - return $this->hasOne(VisitArea::class,'id','visit_area_id'); + public function visitArea() + { + return $this->hasOne(VisitArea::class, 'id', 'visit_area_id'); } - public function audit(){ - return $this->hasMany(VisitAudit::class,'visit_id','id'); + public function audit() + { + return $this->hasMany(VisitAudit::class, 'visit_id', 'id'); + } + + public function logs() + { + return $this->hasMany(VisitLog::class, 'visit_id', 'id'); } } diff --git a/app/Models/VisitLog.php b/app/Models/VisitLog.php new file mode 100644 index 0000000..13d2af6 --- /dev/null +++ b/app/Models/VisitLog.php @@ -0,0 +1,20 @@ + $admin->id ?? 0, + 'department_id' => $admin->department_id ?? 0, + 'user_id' => $user->id ?? 0, + 'visit_id' => $visit_id, + 'remark' => $remark + ]); + } + +} diff --git a/database/migrations/2023_03_29_133905_create_visit_logs_table.php b/database/migrations/2023_03_29_133905_create_visit_logs_table.php new file mode 100644 index 0000000..98d6188 --- /dev/null +++ b/database/migrations/2023_03_29_133905_create_visit_logs_table.php @@ -0,0 +1,37 @@ +increments('id'); + $table->integer('admin_id')->nullable(); + $table->integer('department_id')->nullable(); + $table->integer('user_id')->nullable(); + $table->integer('visit_id')->nullable(); + $table->string('remark')->nullable(); + $table->dateTime('created_at')->nullable(); + $table->dateTime('updated_at')->nullable(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('visit_logs'); + } +} diff --git a/routes/api.php b/routes/api.php index ca61677..01a3242 100644 --- a/routes/api.php +++ b/routes/api.php @@ -31,7 +31,6 @@ Route::group(["namespace" => "Admin", "prefix" => "admin", "middleware" => "sanc Route::get("chart/time", [\App\Http\Controllers\Admin\ChartController::class, "time"]); Route::get("chart/car", [\App\Http\Controllers\Admin\ChartController::class, "car"]); - // 配置管理 Route::get("config/index", [\App\Http\Controllers\Admin\ConfigController::class, "index"]); Route::get("config/show", [\App\Http\Controllers\Admin\ConfigController::class, "show"]);