|
|
@@ -0,0 +1,28 @@
|
|
|
+<?php
|
|
|
+declare(strict_types=1);
|
|
|
+namespace SixShop\LimitPurchase\Hook;
|
|
|
+
|
|
|
+use app\api\event\GoodsResponseEvent;
|
|
|
+use SixShop\Core\Attribute\Hook;
|
|
|
+use SixShop\LimitPurchase\Entity\GoodsLimitPurchaseRuleEntity;
|
|
|
+use SixShop\LimitPurchase\Entity\LimitPurchaseRuleEntity;
|
|
|
+
|
|
|
+class GoodsHook
|
|
|
+{
|
|
|
+ public function __construct(
|
|
|
+ private LimitPurchaseRuleEntity $limitPurchaseRuleEntity,
|
|
|
+ private GoodsLimitPurchaseRuleEntity $goodsLimitPurchaseRuleEntity,
|
|
|
+ )
|
|
|
+ {
|
|
|
+ }
|
|
|
+
|
|
|
+ #[Hook(GoodsResponseEvent::class)]
|
|
|
+ public function goodsResponse(GoodsResponseEvent $event): void
|
|
|
+ {
|
|
|
+ $ruleList = $this->limitPurchaseRuleEntity->where('status', true)
|
|
|
+ ->field(['id', 'name'])
|
|
|
+ ->select();
|
|
|
+ $event->goods['limit_purchase_rule_options'] = $ruleList;
|
|
|
+ $event->goods['limit_purchase_rule'] = $this->goodsLimitPurchaseRuleEntity->getRuleID($event->goods['id']);
|
|
|
+ }
|
|
|
+}
|