Kaynağa Gözat

feat: EK-2806: 会员端Promo和banner图增加分国家设置.

kevin 5 ay önce
ebeveyn
işleme
66b1419f6f

+ 3 - 0
common/messages/en-US/ctx.php

@@ -413,9 +413,12 @@ return [
     #Ad
     'AdAddedSuccessfully' => 'Ad added successfully',
     'EditAdSuccessfully' => 'Ad edited successfully',
+    'Hide' => 'Hide',
+    'Show' => 'Show',
 
     #Article
     'articleNotExists'  => 'Article does not exist',
+    'title' => 'Title',
 
     #File
     'mallManagement'    => 'Mall Management',

+ 3 - 0
common/messages/zh-CN/ctx.php

@@ -411,9 +411,12 @@ return [
     #Ad
     'AdAddedSuccessfully' => '广告添加成功',
     'EditAdSuccessfully' => '广告编辑成功',
+    'Hide' => '隐藏',
+    'Show' => '展示',
 
     #Article
     'articleNotExists'  => '文章不存在',
+    'title' => '标题',
 
     #File
     'mallManagement'    => '商城管理',

+ 57 - 0
common/models/Article.php

@@ -2,6 +2,9 @@
 
 namespace common\models;
 
+use backendApi\modules\v1\models\Admin;
+use backendApi\modules\v1\models\AdminCountry;
+use common\helpers\Tool;
 use Yii;
 
 /**
@@ -59,4 +62,58 @@ class Article extends \common\components\ActiveRecord
             'CREATED_AT' => Yii::t('app', 'createAt'),
         ];
     }
+
+    /**
+     * 前台用于筛选的类型集合
+     * @return mixed
+     */
+    public function getFilterTypes()
+    {
+        if (!$this->filterTypes) {
+            $this->filterTypes = [
+                'TITLE'=> ['name'=> Yii::t('ctx', 'title')],
+                'COUNTRY'=> [
+                    'name'=> \Yii::t('ctx', 'country'),
+                    'other'=> 'select',
+                    'selectData'=> self::getCountry()
+                ],
+                'STATUS'=> [
+                    'name'=> Yii::t('ctx', 'activeStatus'),
+                    'other'=> 'select',
+                    'selectData'=> [
+                        ['id'=> 0, 'name'=> Yii::t('ctx', 'Hide')],
+                        ['id'=> 1, 'name'=> Yii::t('ctx', 'Show')]
+                    ]
+                ],
+            ];
+        }
+        return $this->filterTypes;
+    }
+
+    public function getCountry()
+    {
+        $admin = Admin::findOne(Yii::$app->user->id);
+        $roleId = $admin->ROLE_ID;
+        if ($roleId == \Yii::$app->params['superAdminRoleId']) {
+            $countries = Countries::find()->asArray()->all();
+        } else {
+            $countries = Countries::find()
+                ->select('COU.ID, COU.CODE, COU.NAME')
+                ->from(['COU' => Countries::tableName()])
+                ->join('INNER JOIN', AdminCountry::tableName() . ' AS ADL', 'ADL.COUNTRY_ID = COU.ID')
+                ->where(['ADL.ADMIN_ID' => $admin->ID])
+                ->asArray()
+                ->all();
+        }
+
+        $data = [];
+        foreach ($countries as $country) {
+            $data[] = [
+                'id' => $country['ID'],
+                'name' => $country['NAME'],
+            ];
+        }
+
+        return $data;
+    }
 }