GoodsTypeEnum.php 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170
  1. <?php
  2. namespace common\enums;
  3. use common\enums\BaseEnum;
  4. /**
  5. *
  6. * 商品类型
  7. * @Author bing
  8. * @DateTime 2021-09-09 10:16:18
  9. * @copyright: Copyright (c) 2020 广东七件事集团
  10. */
  11. class GoodsTypeEnum extends BaseEnum
  12. {
  13. // 商品类型
  14. const GoodsTypePhysical = 1; //实物商品
  15. const GoodsTypeVirtual = 2; //虚拟商品
  16. const GoodsTypeReserved = 3; // 预约商品
  17. const GoodsTypeMedicine = 70; // 药品
  18. // 商品子类型
  19. const GOODS_SUBTYPE_ORDINARY = 0; // 普通商品
  20. const GOODS_SUBTYPE_PRESCRIPTION = 1; // 处方药商品
  21. public static function getMap(): array
  22. {
  23. return [
  24. self::GoodsTypePhysical => '实物商品',
  25. self::GoodsTypeVirtual => '虚拟商品',
  26. self::GoodsTypeReserved => '预约商品',
  27. ];
  28. }
  29. public static function getGoodsType(): array{
  30. return [
  31. self::GoodsTypePhysical => ['name' => '实体商品', 'desc' => '物流发货', 'img' => '/resources/img/goods/goods.png', 'type' => self::GoodsTypePhysical],
  32. self::GoodsTypeVirtual => ['name' => '虚拟商品', 'desc' => '无需物流', 'img' => '/resources/img/goods/xuni.png', 'type' => self::GoodsTypeVirtual],
  33. self::GoodsTypeReserved => ['name' => '预约商品', 'desc' => '无需物流', 'img' => '/resources/img/goods/kami.png', 'type' => self::GoodsTypeReserved]
  34. ];
  35. }
  36. /**
  37. * 获取模式对应的插件配置
  38. * @Author: lun
  39. * @DateTime: 2021/10/29 0029 17:16
  40. * @Copyright: copyright (c) 2021 广东七件事集团
  41. * @return \string[][]
  42. */
  43. public static function getGoodsModel()
  44. {
  45. $list = [
  46. 'Boss' => [
  47. 'components' => 'com-boss',
  48. 'level_class' => '\addons\Boss\common\models\AddonsBossLevel',
  49. 'setting_class' => '\addons\Boss\common\models\AddonsBossCommissionItemSetting',
  50. 'method' => 'getBossLevel',// 获取等级的列表方法
  51. ],
  52. 'ServeBonus' => [
  53. 'components' => 'com-servebonus',
  54. 'level_class' => '\addons\ServeBonus\common\models\ServeBonusLevel',
  55. 'setting_class' => '\addons\ServeBonus\common\models\ServeBonusCommissionItemSetting',
  56. 'method' => 'getServeBonusLevel',// 获取等级的列表方法
  57. ],
  58. 'Agent' => [
  59. 'components' => 'com-agent',
  60. 'level_class' => 'addons\Agent\common\models\AgentLevel',
  61. 'setting_class' => 'addons\Agent\common\models\AgentCommissionItemSetting',
  62. 'method' => 'getLevelList',// 获取等级的列表方法
  63. ],
  64. 'Distribution' => [
  65. 'components' => 'com-distribution',
  66. 'level_class' => 'addons\Distribution\common\models\DistributionLevel',
  67. 'setting_class' => 'addons\Distribution\common\models\DistributionCommissionItemSetting',
  68. 'method' => 'getLevelList',// 获取等级的列表方法
  69. ],
  70. // 'coupon' => [
  71. // 'components' => 'com-coupon',
  72. // 'setting_class' => 'addons\Coupon\common\models\CouponGiveItemSetting',
  73. // ],
  74. 'ShortVideo' => [
  75. 'components' => 'com-short-video',
  76. 'level_class' => '',
  77. 'setting_class' => 'addons\ShortVideo\common\models\ShortVideoCommissionItemSetting',
  78. 'method' => '',// 获取等级的列表方法
  79. ],
  80. ];
  81. $new_list = [];
  82. // 获取有效的类方法
  83. foreach ($list as $addons => $item) {
  84. // 短视频单独处理
  85. if ($addons == 'ShortVideo' && class_exists($item['setting_class'])) $new_list[$addons] = $item;
  86. if (!empty($item['level_class']) && !empty($item['method'])) {
  87. // 判断class是否存在
  88. if (!class_exists($item['level_class'])) continue;
  89. // 判断method是否存在
  90. $class = new $item['level_class'];
  91. if (!method_exists($class, $item['method'])) continue;
  92. $new_list[$addons] = $item;
  93. }
  94. }
  95. return $new_list;
  96. }
  97. public static function getAddonsAccountModel(){
  98. $list = [
  99. 'Agent' => [
  100. 'name' => '渠道分红',
  101. 'class' => 'addons\Agent\common\models\Agent',
  102. 'method' => 'getIncomeInfo',
  103. ],
  104. 'Distribution' => [
  105. 'name' => '分销商',
  106. 'class' => 'addons\Distribution\common\models\Distribution',
  107. 'method' => 'getIncomeInfo',
  108. ],
  109. 'Boss' => [
  110. 'name' => '股东分红',
  111. 'class' => 'addons\Boss\common\models\AddonsBoss',
  112. 'method' => 'getIncomeInfo',
  113. ],
  114. 'Servebonus' => [
  115. 'name' => '服务商分红',
  116. 'class' => 'addons\ServeBonus\common\models\ServeBonus',
  117. 'method' => 'getIncomeInfo',
  118. ],
  119. 'ShortVideo' => [
  120. 'name' => '短视频分红',
  121. 'class' => 'addons\ShortVideo\common\models\ShortVideo',
  122. 'method' => 'getIncomeInfo',
  123. ],
  124. 'Area' => [
  125. 'name' => '区域分红',
  126. 'class' => 'addons\Area\common\models\AreaAgent',
  127. 'method' => 'getIncomeInfo',
  128. ],
  129. ];
  130. $new_list = [];
  131. // 获取有效的类方法
  132. foreach ($list as $addons => $item) {
  133. if (!empty($item['class']) && !empty($item['method'])) {
  134. // 判断class是否存在
  135. if (!class_exists($item['class'])) continue;
  136. // 判断method是否存在
  137. $class = new $item['class'];
  138. if (!method_exists($class, $item['method'])) continue;
  139. $new_list[$addons] = $item;
  140. }
  141. }
  142. return $new_list;
  143. }
  144. public static function getCommissionTypeMap($mall_id){
  145. $score_name = \Yii::$app->services->setting->mall->get($mall_id, 'score.score_name') ?? '积分';
  146. $digital_name = \Yii::$app->services->setting->mall->get($mall_id, 'digital.name') ?? '数字币';
  147. return [
  148. 'commission' => '收入',
  149. 'score' => $score_name,
  150. 'digital' => $digital_name,
  151. ];
  152. }
  153. }