|
@@ -0,0 +1,58 @@
|
|
|
+<?php
|
|
|
+
|
|
|
+namespace App\Jobs\ProfilePipeline;
|
|
|
+
|
|
|
+use Illuminate\Bus\Queueable;
|
|
|
+use Illuminate\Contracts\Queue\ShouldBeUnique;
|
|
|
+use Illuminate\Contracts\Queue\ShouldQueue;
|
|
|
+use Illuminate\Foundation\Bus\Dispatchable;
|
|
|
+use Illuminate\Queue\InteractsWithQueue;
|
|
|
+use Illuminate\Queue\SerializesModels;
|
|
|
+use App\Profile;
|
|
|
+use App\Status;
|
|
|
+use App\Services\AccountService;
|
|
|
+
|
|
|
+class DecrementPostCount implements ShouldQueue
|
|
|
+{
|
|
|
+ use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
|
|
|
+
|
|
|
+ public $id;
|
|
|
+
|
|
|
+ /**
|
|
|
+ * Create a new job instance.
|
|
|
+ *
|
|
|
+ * @return void
|
|
|
+ */
|
|
|
+ public function __construct($id)
|
|
|
+ {
|
|
|
+ $this->id = $id;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * Execute the job.
|
|
|
+ *
|
|
|
+ * @return void
|
|
|
+ */
|
|
|
+ public function handle()
|
|
|
+ {
|
|
|
+ $id = $this->id;
|
|
|
+
|
|
|
+ $profile = Profile::find($id);
|
|
|
+
|
|
|
+ if(!$profile) {
|
|
|
+ return 1;
|
|
|
+ }
|
|
|
+
|
|
|
+ if($profile->updated_at && $profile->updated_at->lt(now()->subDays(30))) {
|
|
|
+ $profile->status_count = Status::whereProfileId($id)->whereNull(['in_reply_to_id', 'reblog_of_id'])->count();
|
|
|
+ $profile->save();
|
|
|
+ AccountService::del($id);
|
|
|
+ } else {
|
|
|
+ $profile->status_count = $profile->status_count ? $profile->status_count - 1 : 0;
|
|
|
+ $profile->save();
|
|
|
+ AccountService::del($id);
|
|
|
+ }
|
|
|
+
|
|
|
+ return 1;
|
|
|
+ }
|
|
|
+}
|