PlatformUsePointHandler.php 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. <?php
  2. namespace addons\TinyShop\common\components\platform;
  3. use addons\TinyShop\common\enums\MarketingEnum;
  4. use addons\TinyShop\common\traits\AutoCalculatePriceTrait;
  5. /**
  6. * 积分抵现
  7. *
  8. * Class PlatformUsePointHandler
  9. * @package addons\TinyShop\common\components\platform
  10. * @author jianyan74 <751393839@qq.com>
  11. */
  12. class PlatformUsePointHandler
  13. {
  14. use AutoCalculatePriceTrait;
  15. /**
  16. * @param $discountMoney
  17. * @param $groupOrderProducts
  18. * @return array
  19. */
  20. public function execute($discountMoney, $groupOrderProducts)
  21. {
  22. // 所有数据
  23. $allData = [];
  24. foreach ($groupOrderProducts as $product_id => $groupOrderProduct) {
  25. $allData[] = [
  26. 'uuid' => $product_id,
  27. 'original_money' => $groupOrderProduct['product_money'], // 原始金额
  28. 'surplus_money' => $groupOrderProduct['product_money'], // 剩余金额
  29. 'discount_money' => 0, // 已优惠金额
  30. 'cate_id' => [], // 商品商家分类
  31. 'platform_cate_id' => [], // 平台分类
  32. 'merchant_id' => $groupOrderProduct['merchant_id'], // 商家ID
  33. ];
  34. }
  35. list($allData, $marketingDetails) = $this->filterData($allData, [
  36. [
  37. 'uuid' => array_keys($groupOrderProducts),
  38. 'marketing_id' => 0,
  39. 'marketing_type' => MarketingEnum::USE_POINT,
  40. 'marketing_condition' => '积分抵扣:' . $discountMoney . '元',
  41. 'discount_money' => $discountMoney,
  42. ]
  43. ]);
  44. $platformMarketingDetails = [];
  45. foreach ($allData as $allDatum) {
  46. if ($allDatum['discount_money'] <= 0) {
  47. continue;
  48. }
  49. if (!isset($platformMarketingDetails[$allDatum['merchant_id']])) {
  50. $platformMarketingDetails[$allDatum['merchant_id']] = [];
  51. }
  52. $platformMarketingDetails[$allDatum['merchant_id']][] = [
  53. 'uuid' => [$allDatum['uuid']],
  54. 'product_id' => $allDatum['uuid'],
  55. 'marketing_id' => 0,
  56. 'marketing_name' => '积分抵扣',
  57. 'marketing_type' => MarketingEnum::USE_POINT,
  58. 'marketing_condition' => '积分抵扣: ' . $allDatum['discount_money']. '元',
  59. 'discount_money' => $allDatum['discount_money'],
  60. ];
  61. }
  62. return $platformMarketingDetails;
  63. }
  64. }
粤ICP备19079148号