diff --git a/app/Admin/Controllers/MessageController.php b/app/Admin/Controllers/MessageController.php index c77dd23c..00580c71 100644 --- a/app/Admin/Controllers/MessageController.php +++ b/app/Admin/Controllers/MessageController.php @@ -4,7 +4,6 @@ namespace App\Admin\Controllers; use App\Admin\Repositories\Message; use App\Models\Message as MessageModel; -use App\Services\Push\MallUnipushService; use Dcat\Admin\Admin; use Dcat\Admin\Form; use Dcat\Admin\Grid; @@ -104,9 +103,11 @@ class MessageController extends AdminController } $form->saved(function (Form $form, $result) { // 判断是否是新增操作 - if ($form->isCreating() && $form->is_push) { - $pushService = new MallUnipushService(); - $pushService->pushAllMessage(MessageModel::findOrFail($result)); + if ($form->isCreating()) { + $message = MessageModel::findOrFail($result); + if ($message->needPush()) { + $message->pushMessage(); + } return; } }); diff --git a/app/Models/Message.php b/app/Models/Message.php index 5117a828..038c14ca 100644 --- a/app/Models/Message.php +++ b/app/Models/Message.php @@ -3,6 +3,7 @@ namespace App\Models; use App\Casts\JsonArray; +use App\Helpers\Order as OrderHelper; use Dcat\Admin\Traits\HasDateTimeFormatter; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; @@ -45,7 +46,7 @@ class Message extends Model public static function createOrderMessage(Order $order) { - self::create([ + $message = self::create([ 'type' => 1, 'title' => '订单编号:'.$order->sn, 'user_id' => $order->user_id, @@ -57,6 +58,27 @@ class Message extends Model ], 'jump_type'=> self::JUMP_MIINE, 'jump_link'=> '/pages/order_details/index?id='.$order->id, + 'is_push' => 1, + ]); + + if ($message && $message->needPush()) { + $message->pushMessage(); + } + + return $message; + } + + public function needPush() + { + return $this->is_push; + } + + public function pushMessage() + { + //填入推送内容 + PushMessageTask::create([ + 'sn' => OrderHelper::serialNumber(), + 'message_id' => $this->id, ]); } } diff --git a/app/Models/PushMessageTask.php b/app/Models/PushMessageTask.php new file mode 100644 index 00000000..07b41c99 --- /dev/null +++ b/app/Models/PushMessageTask.php @@ -0,0 +1,26 @@ +'bool', + ]; + + /** + * @var array + */ + protected $fillable = [ + 'sn', + 'message_id', + 'is_pushed', + 'status', + ]; +} diff --git a/database/migrations/2021_12_22_101027_create_push_message_tasks_table.php b/database/migrations/2021_12_22_101027_create_push_message_tasks_table.php new file mode 100644 index 00000000..eb337106 --- /dev/null +++ b/database/migrations/2021_12_22_101027_create_push_message_tasks_table.php @@ -0,0 +1,35 @@ +id(); + $table->string('sn')->comment('消息流水号'); + $table->unsignedBigInteger('message_id')->comment('消息ID'); + $table->unsignedTinyInteger('is_pushed')->default(0)->comment('是否已经推送'); + $table->unsignedBigInteger('status')->default(0)->comment('0待处理,1成功,2失败'); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('push_message_tasks'); + } +}