CartGroupManager.php 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * Name: 芸众商城系统
  5. * Author: 广州市芸众信息科技有限公司
  6. * Profile: 广州市芸众信息科技有限公司位于国际商贸中心的广州,专注于移动电子商务生态系统打造,拥有芸众社交电商系统、区块链数字资产管理系统、供应链管理系统、电子合同等产品/服务。官网 :www.yunzmall.com www.yunzshop.com
  7. * Date: 2021/5/27
  8. * Time: 9:36
  9. */
  10. namespace app\frontend\modules\cart\group;
  11. use app\frontend\modules\cart\models\MemberCart;
  12. use Illuminate\Container\Container;
  13. class CartGroupManager extends Container
  14. {
  15. public function __construct()
  16. {
  17. }
  18. public function getCartGroup(MemberCart $memberCart)
  19. {
  20. $pluginConfigCollection = collect();
  21. foreach ($this->getBindings() as $key => $value) {
  22. $pluginConfigCollection->push($this->make($key, [$memberCart]));
  23. }
  24. // 按权重排序
  25. $pluginGroups = $pluginConfigCollection->sortBy(function (BaseShopGroup $pluginGroup) {
  26. return $pluginGroup->getWeight();
  27. });
  28. foreach ($pluginGroups as $key => $pluginGroup) {
  29. /**
  30. * @var BaseShopGroup $pluginGroup
  31. */
  32. if ($pluginGroup->validate()) {
  33. return $pluginGroup;
  34. }
  35. }
  36. return new DefaultShopGroup($memberCart);
  37. }
  38. }