GlobalVarMap.php 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. <?php
  2. namespace common\models\common;
  3. use common\enums\StatusEnum;
  4. use common\models\mall\MallAddons;
  5. use Yii;
  6. /**
  7. * This is the model class for table "{{%global_var_map}}".
  8. *
  9. * @property int $id
  10. * @property string|null $name 标识
  11. * @property string|null $title 中文标识
  12. * @property string|null $type 类型
  13. * @property int|null is_addons 是否是插件[0:否,1:是]
  14. * @property int|null $status 状态
  15. * @property int|null $created_at 创建时间
  16. * @property int|null $updated_at 更新时间
  17. */
  18. class GlobalVarMap extends \common\models\base\BaseActiveRecord
  19. {
  20. /**
  21. * {@inheritdoc}
  22. */
  23. public static function tableName()
  24. {
  25. return '{{%global_var_map}}';
  26. }
  27. /**
  28. * {@inheritdoc}
  29. */
  30. public function rules()
  31. {
  32. return [
  33. [['is_addons', 'status', 'created_at', 'updated_at'], 'integer'],
  34. [['name', 'title', 'type'], 'string', 'max' => 50],
  35. ];
  36. }
  37. /**
  38. * {@inheritdoc}
  39. */
  40. public function attributeLabels()
  41. {
  42. return [
  43. 'id' => 'ID',
  44. 'name' => '标识',
  45. 'title' => '中文标识',
  46. 'type' => '类型',
  47. 'is_addons' => '是否是插件[0:否,1:是]',
  48. 'status' => '状态',
  49. 'created_at' => '创建时间',
  50. 'updated_at' => '更新时间',
  51. ];
  52. }
  53. /**
  54. * 根据类型获取枚举
  55. * @Author: lun
  56. * @DateTime: 2022/6/7 0007 11:05
  57. * @Copyright: copyright (c) 2021 广东七件事集团
  58. * @param $type
  59. * @return array
  60. */
  61. public static function getEnumMapByType($type, $mall_id = 0)
  62. {
  63. $data = [];
  64. $list = self::find()->select('name,title,is_addons')->where(['type' => $type, 'status' => StatusEnum::ENABLED])->asArray()->all();
  65. if ($list) {
  66. // 获取已安装的插件
  67. $mall_id && $install_addons = MallAddons::getValidAddons($mall_id);
  68. foreach ($list as $item) {
  69. // 若枚举属于插件则需要判断插件是否存在
  70. if ($mall_id && $item['is_addons'] == 1 && !in_array($item['name'], $install_addons)) continue;
  71. if ($item['name'] == \common\enums\AddonsEnum::ADDONS_NAME_REBATE) {
  72. $new_item_title = \Yii::$app->services->setting->addons->get($mall_id, \common\enums\AddonsEnum::ADDONS_NAME_REBATE, 'basic.addons_name');
  73. if ($new_item_title) {
  74. $item['title'] = $new_item_title;
  75. }
  76. }
  77. $data[$item['name']] = $item['title'];
  78. }
  79. }
  80. return $data;
  81. }
  82. /**
  83. * 根据类型获取枚举name
  84. * @Author: lun
  85. * @DateTime: 2022/6/7 0007 11:06
  86. * @Copyright: copyright (c) 2021 广东七件事集团
  87. * @param $type
  88. * @return array
  89. */
  90. public static function getEnumNameByType($type, $mall_id = 0)
  91. {
  92. $data = [];
  93. $list = self::find()->select('name,is_addons')->where(['type' => $type, 'status' => StatusEnum::ENABLED])->asArray()->all();
  94. if ($list) {
  95. // 获取已安装的插件
  96. $mall_id && $install_addons = MallAddons::getValidAddons($mall_id);
  97. foreach ($list as $item) {
  98. // 若枚举属于插件则需要判断插件是否存在
  99. if ($mall_id && $item['is_addons'] == 1 && !in_array($item['name'], $install_addons)) continue;
  100. $data[] = $item['name'];
  101. }
  102. }
  103. return $data;
  104. }
  105. }