DiscountWidget.php 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * Name: 芸众商城系统
  5. * Author: 广州市芸众信息科技有限公司
  6. * Profile: 广州市芸众信息科技有限公司位于国际商贸中心的广州,专注于移动电子商务生态系统打造,拥有芸众社交电商系统、区块链数字资产管理系统、供应链管理系统、电子合同等产品/服务。官网 :www.yunzmall.com www.yunzshop.com
  7. * Date: 2021/9/9
  8. * Time: 17:49
  9. */
  10. namespace app\backend\modules\goods\widget;
  11. use app\backend\modules\goods\models\Discount;
  12. use app\backend\modules\member\models\MemberLevel;
  13. use app\backend\modules\member\models\MemberGroup;
  14. //折扣
  15. class DiscountWidget extends BaseGoodsWidget
  16. {
  17. public $group = 'marketing';
  18. public $widget_key = 'discount';
  19. public $code = 'discount';
  20. public function pluginFileName()
  21. {
  22. return 'goods';
  23. }
  24. public function getData()
  25. {
  26. $level_discount_type = 1;
  27. $discount_method = 1;
  28. $discountValue = array();
  29. if ($this->goods->id) {
  30. $discounts = Discount::getList($this->goods->id);
  31. if (!$discounts->isEmpty() ) {
  32. $discount_method = $discounts[0]->discount_method;
  33. }
  34. foreach ($discounts as $key => $discount) {
  35. $discountValue[$discount['level_id']] = $discount['discount_value'];
  36. }
  37. }
  38. $levels = MemberLevel::getMemberLevelList();
  39. $levels = array_merge($this->defaultLevel(),$levels);
  40. // $groups = MemberGroup::getMemberGroupList();
  41. $discount_levels = [];
  42. foreach ($levels as $level) {
  43. $discount_levels[] = [
  44. 'level_id' => $level['id'],
  45. 'level_name' => $level['level_name'],
  46. 'discount_value' => isset($discountValue[$level['id']])?$discountValue[$level['id']]:'',
  47. ];
  48. }
  49. $result = [
  50. 'level_discount_type' =>$level_discount_type,
  51. 'discount_method' => $discount_method,
  52. // 'discountValue' => $discountValue,
  53. 'levels' => $discount_levels,
  54. // 'discount' => isset($discounts)?$discounts->toArray():[],
  55. // 'groups' => $groups
  56. ];
  57. return $result;
  58. }
  59. private function defaultLevel() {
  60. return [
  61. '0'=> [
  62. 'id' => "0",
  63. 'level_name' => \Setting::get('shop.member.level_name') ?: '普通会员'
  64. ],
  65. ];
  66. }
  67. public function pagePath()
  68. {
  69. return $this->getPath('resources/views/goods/assets/js/components/');
  70. }
  71. }