|
@@ -7,6 +7,8 @@
|
|
|
*/
|
|
*/
|
|
|
namespace backendApi\modules\v1\controllers;
|
|
namespace backendApi\modules\v1\controllers;
|
|
|
|
|
|
|
|
|
|
+use backendApi\modules\v1\models\Admin;
|
|
|
|
|
+use backendApi\modules\v1\models\AdminCountry;
|
|
|
use common\helpers\Cache;
|
|
use common\helpers\Cache;
|
|
|
use common\helpers\Form;
|
|
use common\helpers\Form;
|
|
|
use common\models\Article;
|
|
use common\models\Article;
|
|
@@ -86,6 +88,22 @@ class ArticleController extends BaseController
|
|
|
*/
|
|
*/
|
|
|
public function actionIndex()
|
|
public function actionIndex()
|
|
|
{
|
|
{
|
|
|
|
|
+ // 如果admin不是超管,只允许查询自己关联的国家
|
|
|
|
|
+ $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();
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
$filter = $this->filterCondition([
|
|
$filter = $this->filterCondition([
|
|
|
'TITLE' => 'TITLE',
|
|
'TITLE' => 'TITLE',
|
|
|
'COUNTRY_ID' => 'COUNTRY_ID',
|
|
'COUNTRY_ID' => 'COUNTRY_ID',
|
|
@@ -93,9 +111,24 @@ class ArticleController extends BaseController
|
|
|
$condition = $filter['condition'];
|
|
$condition = $filter['condition'];
|
|
|
$params = $filter['params'];
|
|
$params = $filter['params'];
|
|
|
|
|
|
|
|
|
|
+ $countryIds = array_column($countries, 'ID');
|
|
|
|
|
+ if (!empty($countryIds)) {
|
|
|
|
|
+ $placeholders = [];
|
|
|
|
|
+ foreach ($countryIds as $key => $id) {
|
|
|
|
|
+ $paramName = ':countryId_' . $key;
|
|
|
|
|
+ $placeholders[] = $paramName;
|
|
|
|
|
+ $params[$paramName] = $id;
|
|
|
|
|
+ }
|
|
|
|
|
+ $condition .= ' AND AD.COUNTRY_ID IN (' . implode(',', $placeholders) . ')';
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
$data = Article::lists($condition, $params, [
|
|
$data = Article::lists($condition, $params, [
|
|
|
- 'select' => 'ID,TITLE,CID,COUNTRY_ID,STATUS,SORT,CREATED_AT',
|
|
|
|
|
- 'orderBy' => 'SORT ASC,CREATED_AT DESC',
|
|
|
|
|
|
|
+ 'select' => 'ART.ID,ART.TITLE,ART.CID,ART.COUNTRY_ID,ART.STATUS,ART.SORT,ART.CREATED_AT,,ADC.NAME AS COUNTRY_NAME, ADC.CODE AS COUNTRY_CODE',
|
|
|
|
|
+ 'from' => Article::tableName().' AS ART',
|
|
|
|
|
+ 'join' => [
|
|
|
|
|
+ ['INNER JOIN', Countries::tableName() . ' AS ADC', 'ADC.ID=ART..COUNTRY_ID'],
|
|
|
|
|
+ ],
|
|
|
|
|
+ 'orderBy' => 'ART.SORT ASC,ART.CREATED_AT DESC',
|
|
|
]);
|
|
]);
|
|
|
|
|
|
|
|
// 全部分类
|
|
// 全部分类
|