user()->roles)->pluck('id')->toArray() ?? []; $status = $request->input('status') ?? 0; $websiteMessage = WebsiteMessages::query()->where('status', '=', $status); if (!empty($roleIds)) { $websiteMessagePage = $websiteMessage->whereIn('role_id', $roleIds) ->paginate($request->get('per_page')); return JsonResource::collection($websiteMessagePage); } return JsonResource::collection([]); } public function update($id, Request $request) { $validator = Validator::make($request->all(), [ 'status' => ['required', 'integer', 'in:0,1'] ]); if ($validator->fails()) { $this->setValidatorFailResponse($validator->getMessageBag()->getMessages()); return response($this->res, $this->res['httpCode']); } //更新站內信狀態 $websiteMessages = WebsiteMessages::query()->find($id); if (empty($websiteMessages)) { $this->res = [ 'httpCode' => 400, 'errorCode' => 400404, 'errorMessage' => "站内信数据不存在", ]; return response($this->res, "400"); } $websiteMessages->status = $request->status; Log::info("管理員更新站內信", (array)$request->user()); $websiteMessages->save(); if ($request->status == 1) { //标记已读触发 $this->hook($websiteMessages); } return $websiteMessages; } public function hook($websiteMessages) { if ($websiteMessages->type == MessageTypeEnum::LOW_STOCK_NOTICE) { $keyArray = explode("-", $websiteMessages->unique_key);//时间Ymd-对应id-角色id $skuId = $keyArray[1] ?? 0; if (!empty($skuId)) { //变更回上架状态 GoodsSku::query()->where("id", "=", $skuId)->update(["status" => SkuStatusEnum::UP]); } } } }