| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 | <?phpnamespace api\modules\v1\controllers;use api\common\controllers\Controller;use common\modules\config\models\Config;use common\models\Policy;use yii\helpers\ArrayHelper;use api\common\behaviors\QueryParamAuth;use Yii;use yii\base\Exception;use yii\data\ActiveDataProvider;use yii\web\NotFoundHttpException;class PolicyController extends Controller {    public function behaviors()    {        return ArrayHelper::merge(parent::behaviors(), [            [                'class' => QueryParamAuth::className(),                'tokenParam' => 'token',                'optional' => ['index','category','details']            ]        ]);    }          public function actionIndex()    {                $params = request()->get();        $query = Policy::find()->select('id,title,author,created_at,summary');        //过滤查询的政策        $query->andWhere(new \yii\db\Expression('FIND_IN_SET("'. Policy::TYPE_SEARCH .'", type)'));                if(!empty($params)){            $arr = [];                   foreach ($params as $key=>$value) {                if($key == 'page' || $key == 'page_no'){                    continue;                }    		    if($value){    		         $fd = $key.'_' . $value;    		         $query->orWhere(new \yii\db\Expression('FIND_IN_SET("'.$fd.'", filter)'));    		    }    		}        }                        return new ActiveDataProvider([            'query' => $query,            'pagination' => [                'pageParam' => 'page_no',                'pageSizeParam' => 'page_size',            ],            'sort' => [                'defaultOrder' => [                    'created_at' => SORT_ASC,                ]            ]        ]);    }        public function actionCategory()    {        $lists = Config::find()->select(['name','value','extra','description','type'])->where(['group' => 'policy'])->asArray()->all();        foreach ($lists as &$value) {                        $arr = [];            $val = explode("\r\n",$value['value']);			$extra = explode("\r\n",$value['extra']);						foreach($extra as $k => $v){			    $arr[] = [			        'name'=>$v,			        'value'=>$val[$k] ?: (string)($k + 1)			     ];			}			            $value['data'] = $arr;			unset($value['extra'],$value['value'],$value['type']);        }        return ['data' => $lists];    }     public function actionDetails($id)    {        $model = Policy::find()->where(['id' => $id])->select('id,content,author,created_at,title')->one();        return ['data' => $model];    }}
 |