SkuPrice.php 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. <?php
  2. namespace app\admin\model\shopro\activity;
  3. use app\admin\model\shopro\Common;
  4. class SkuPrice extends Common
  5. {
  6. protected $name = 'shopro_activity_sku_price';
  7. protected $type = [
  8. 'ext' => 'json',
  9. ];
  10. // 追加属性
  11. protected $append = [
  12. 'status_text',
  13. ];
  14. /**
  15. * 普通拼团,团长价
  16. *
  17. * @param string $value
  18. * @param array $data
  19. * @return string
  20. */
  21. public function getLeaderPriceAttr($value, $data)
  22. {
  23. $ext = $data['ext'];
  24. $is_leader_discount = $ext['is_leader_discount'] ?? 0;
  25. $leader_price = $ext['leader_price'] ?? 0;
  26. $leader_price = $is_leader_discount ? $leader_price : $data['price'];
  27. return $leader_price;
  28. }
  29. private function currentLadder($data, $level, $is_leader = false)
  30. {
  31. $ext = $data['ext'];
  32. $is_leader_discount = $ext['is_leader_discount'] ?? 0;
  33. $ladders = $ext['ladders'] ?? [];
  34. $ladders = array_column($ladders, null, 'ladder_level');
  35. $currentLadder = $ladders[$level] ?? []; // 当前阶梯的 价格数据
  36. $key = ($is_leader && $is_leader_discount) ? 'leader_ladder_price' : 'ladder_price';
  37. return $currentLadder[$key] ?? 0;
  38. }
  39. /**
  40. * 阶梯拼团,第一阶梯价
  41. *
  42. * @param string $value
  43. * @param array $data
  44. * @return string
  45. */
  46. public function getLadderOneAttr($value, $data)
  47. {
  48. return $this->currentLadder($data, 'ladder_one');
  49. }
  50. /**
  51. * 阶梯拼团,第二阶梯价
  52. *
  53. * @param string $value
  54. * @param array $data
  55. * @return string
  56. */
  57. public function getLadderTwoAttr($value, $data)
  58. {
  59. return $this->currentLadder($data, 'ladder_two');
  60. }
  61. /**
  62. * 阶梯拼团,第二阶梯价
  63. *
  64. * @param string $value
  65. * @param array $data
  66. * @return string
  67. */
  68. public function getLadderThreeAttr($value, $data)
  69. {
  70. return $this->currentLadder($data, 'ladder_three');
  71. }
  72. /**
  73. * 阶梯拼团,第一阶梯团长价
  74. *
  75. * @param string $value
  76. * @param array $data
  77. * @return string
  78. */
  79. public function getLadderOneLeaderAttr($value, $data)
  80. {
  81. return $this->currentLadder($data, 'ladder_one', true);
  82. }
  83. /**
  84. * 阶梯拼团,第二阶团长梯价
  85. *
  86. * @param string $value
  87. * @param array $data
  88. * @return string
  89. */
  90. public function getLadderTwoLeaderAttr($value, $data)
  91. {
  92. return $this->currentLadder($data, 'ladder_two', true);
  93. }
  94. /**
  95. * 阶梯拼团,第二阶团长梯价
  96. *
  97. * @param string $value
  98. * @param array $data
  99. * @return string
  100. */
  101. public function getLadderThreeLeaderAttr($value, $data)
  102. {
  103. return $this->currentLadder($data, 'ladder_three', true);
  104. }
  105. }