root 2 лет назад
Родитель
Сommit
f483c60c07

+ 2 - 1
backendApi/config/menu.php

@@ -17,6 +17,7 @@ return [
         'controller'=>'dashboard',
         'action'=>'index',
         'routePath'=>'dashboard/index',
+        "schemaApi" => "/v1/oauth/page?code=homeDemo",
         'show'=>1,
         'child'=>[
 //            ['name'=>'总累计', 'class'=>'', 'icon'=>'', 'controller'=>'dashboard', 'action'=>'total-item', 'routePath'=>'dashboard/total-item', 'show'=>0,],
@@ -34,7 +35,7 @@ return [
         'routePath'=>'shop',
         'show'=>1,
         'child'=>[
-            ['name'=>'Products list', 'class'=>'', 'icon'=>'', 'controller'=>'shop', 'action'=>'index', 'routePath'=>'shop/index', 'show'=>1,],//商品列表
+            [ "schemaApi" => "/v1/oauth/page?code=productList",'name'=>'Products list', 'class'=>'', 'icon'=>'', 'controller'=>'shop', 'action'=>'index', 'routePath'=>'shop/index', 'show'=>1,],//商品列表
             // 新添加的商品操作  --- stat
             ['name'=>'添加商品', 'class'=>'', 'icon'=>'', 'controller'=>'shop', 'action'=>'goods-add', 'routePath'=>'shop/goods-add', 'show'=>0,],
             ['name'=>'编辑商品', 'class'=>'', 'icon'=>'', 'controller'=>'shop', 'action'=>'goods-edit', 'routePath'=>'shop/goods-edit', 'show'=>0,],

+ 74 - 2
backendApi/config/params.php

@@ -1,6 +1,78 @@
 <?php
 return [
     'adminEmail' => 'admin@example.com',
-    'noCheckTokenActions' => ['v1/oauth/login', 'v1/oauth/no-login-modify-password', 'v1/oauth/refresh-access-token', 'v1/oauth/refresh-refresh-token', 'v1/oauth/refresh-token', 'v1/site/days-diff', 'v1/site/page-data', 'v1/site/captcha', 'v1/site/send-notice',],
-    'noCheckPermissionActions' => ['oauth/login', 'oauth/no-login-modify-password', 'oauth/refresh-access-token', 'oauth/refresh-refresh-token', 'oauth/refresh-token', 'oauth/info', 'site/base-info', 'site/days-diff', 'site/page-data', 'site/captcha', 'user/full-info', 'user/filter-user', 'user/generate-user-name', 'reconsume/cant-deduct-date', 'user/get-sub-com', 'user/chk-relation', 'user/get-period-num', 'user/company-bank-get', 'user/main-divide', 'user/chk-del-user', 'reconsume/deduct-audit-add', 'finance/perf-apply-get','file/upload-excel', 'user/move-net-type', 'user/move-get', 'user/reg-info-audit-get', 'user/status-audit-get', 'user/status-audit-get-statuses', 'user/close-login-get', 'user/close-dec-get', 'atlas/main-user-info', 'reconsume/change-audit-get', 'reconsume/cant-deduct-month', 'finance/change-balance-type', 'finance/balance-audit-get', 'file/token', 'finance/perf-audit-get', 'finance/invoice-audit-get', 'finance/withdraw-get', 'finance/deal-type-get', 'ad/upload', 'config/reg-type-get', 'config/pact-get', 'user/reg-info-audit-add-opt', 'reconsume/get-flow-deal-type', 'user/status-close-get', 'finance/mult-point', 'shop/upload', 'article/upload', 'site/send-notice',],
+    'noCheckTokenActions' => [
+        //新版测试---开始
+        'v1/oauth/testmenu',
+        'v1/oauth/page',
+        //新版测试---结束
+
+
+        'v1/oauth/login', 
+        'v1/oauth/no-login-modify-password', 
+        'v1/oauth/refresh-access-token', 
+        'v1/oauth/refresh-refresh-token', 
+        'v1/oauth/refresh-token', 
+        'v1/site/days-diff', 
+        'v1/site/page-data', 
+        'v1/site/captcha', 
+        'v1/site/send-notice',
+    ],
+    'noCheckPermissionActions' => [
+        //新版测试---开始
+        'oauth/testmenu',
+        'oauth/page',
+        //新版测试---结束
+
+        'oauth/login', 
+        'oauth/no-login-modify-password', 
+        'oauth/refresh-access-token', 
+        'oauth/refresh-refresh-token', 
+        'oauth/refresh-token', 
+        'oauth/info', 
+        'site/base-info', 
+        'site/days-diff', 
+        'site/page-data', 
+        'site/captcha', 
+        'user/full-info', 
+        'user/filter-user', 
+        'user/generate-user-name', 
+        'reconsume/cant-deduct-date', 
+        'user/get-sub-com', 
+        'user/chk-relation', 
+        'user/get-period-num', 
+        'user/company-bank-get', 
+        'user/main-divide', 
+        'user/chk-del-user', 
+        'reconsume/deduct-audit-add', 
+        'finance/perf-apply-get',
+        'file/upload-excel', 
+        'user/move-net-type', 
+        'user/move-get', 
+        'user/reg-info-audit-get', 
+        'user/status-audit-get', 
+        'user/status-audit-get-statuses', 
+        'user/close-login-get', 
+        'user/close-dec-get', 
+        'atlas/main-user-info', 
+        'reconsume/change-audit-get', 
+        'reconsume/cant-deduct-month', 
+        'finance/change-balance-type', 
+        'finance/balance-audit-get', 
+        'file/token', 
+        'finance/perf-audit-get', 
+        'finance/invoice-audit-get', 
+        'finance/withdraw-get', 
+        'finance/deal-type-get', 
+        'ad/upload', 
+        'config/reg-type-get', 
+        'config/pact-get', 
+        'user/reg-info-audit-add-opt', 
+        'reconsume/get-flow-deal-type', 
+        'user/status-close-get', 
+        'finance/mult-point', 
+        'shop/upload', 
+        'article/upload', 
+        'site/send-notice',
+    ],
 ];

+ 4 - 0
backendApi/config/urlManagerRules.php

@@ -233,6 +233,10 @@ return [
         'pluralize' => false,
         'controller' => 'v1/oauth',
         'extraPatterns' => [
+            //新版测试---开始
+            'POST,GET page' => 'page',
+            'POST,GET testmenu' => 'testmenu',
+            //新版测试---结束
             'GET menu' => 'menu',
             'POST login' => 'login',
             'POST no-login-modify-password' => 'no-login-modify-password',

+ 66 - 0
backendApi/modules/v1/controllers/OauthController.php

@@ -9,10 +9,12 @@ namespace backendApi\modules\v1\controllers;
 
 use backendApi\modules\v1\models\AdminForm;
 use backendApi\modules\v1\models\LoginForm;
+use backendApi\modules\v1\models\PageDetails;
 use backendApi\modules\v1\models\User;
 use common\helpers\Form;
 use Yii;
 use yii\web\HttpException;
+use yii\web\Response;
 
 class OauthController extends BaseController
 {
@@ -39,6 +41,70 @@ class OauthController extends BaseController
         return $menuResult;
     }
 
+    // "visible":true, 是否在菜单可见
+    // "icon":"ri-computer-line", 图标
+    // "schemaApi":"/page/home", 拉取页面的地址
+    // "label":"控制台", 显示的名字
+    // "leaf":true, 是否有子数据
+    // "url":"home" 浏览器的url
+
+    private function _testMenu($parentArray){
+        $menuResult = [];
+        foreach($parentArray as $key => $parentMenu){
+            $temp = [];
+            $hasSon = isset($parentMenu['child']) && !empty($parentMenu['child']) ? true : false;
+            $temp['visible'] = isset($parentMenu['show']) && $parentMenu['show']=="1" ? true : false;
+            $temp['icon'] = isset($parentMenu['icon']) ? $parentMenu['icon'] : "";
+            
+            $temp['label'] = $parentMenu['name'];
+            $temp['leaf'] =  $hasSon;// 是否有子节点
+            if (!$hasSon) {
+                $temp['url'] =  "/".$parentMenu['routePath']; // 浏览器上展示的前端路由
+                $temp['schemaApi'] = isset($parentMenu['schemaApi']) ? $parentMenu['schemaApi'] : "/page/aa"; // 获取页面的请求.之前没有,之前是请求的后端api请求
+            }else {
+                if (strpos($parentMenu['routePath'], "/") !== false) {
+                    // 如果包含/ , 表示需要展示到页面上
+                    $temp['schemaApi'] = isset($parentMenu['schemaApi']) ? $parentMenu['schemaApi'] : "/page/aa"; // 获取页面的请求.之前没有,之前是请求的后端api请求
+                }
+            } 
+            if(isset($parentMenu['child']) && !empty($parentMenu['child'])){
+                $temp['children'] = $this->_testMenu($parentMenu['child']);
+            }
+            $menuResult[] = $temp;
+        }
+        return $menuResult;
+    }
+
+    public function actionTestmenu(){
+        $menu = require Yii::getAlias('@backendApi/config/menu.php');
+        $menu = $this->_testMenu($menu);
+        $children = [
+            'children' => $menu
+        ];
+        $pages = [
+            'pages' => $children
+        ];
+        $ret = [
+            'msg' => 'success',
+            'data' => $pages,
+            'status' => 0
+        ];
+        return static::notice($ret);
+    }
+
+    // 获取页面
+    public function actionPage(){
+        $request = Yii::$app->request;
+        $sqlCode = $request->get('code', '');
+        $pageInfo = PageDetails::getInfoByCode($sqlCode);
+        $a = [
+            $pageInfo['page_json']
+        ];
+        Yii::$app->response->format = Response::FORMAT_HTML;
+        
+        return $pageInfo['page_json'];
+    }
+
     public function actionInfo(){
         $userInfo = User::find()->where(['ID'=>Yii::$app->user->id])->asArray()->one();
         unset($userInfo['PASSWORD_HASH'], $userInfo['PASSWORD_RESET_TOKEN'], $userInfo['AUTH_KEY']);

+ 102 - 0
backendApi/modules/v1/models/PageDetails.php

@@ -0,0 +1,102 @@
+<?php
+
+namespace backendApi\modules\v1\models;
+
+use common\components\ActiveRecord;
+use common\libs\logging\operate\valueType\Config as ValueTypeConfig;
+
+/**
+ * This is the model class for table "{{%ADMIN}}".
+ *
+ * @property string $ID
+ * @property string $ADMIN_NAME 用户名
+ * @property string $REAL_NAME 会员姓名
+ * @property string $REMARK 备注
+ * @property string $ROLE_ID 角色ID
+ * @property int $IS_ENABLE 是否启用
+ * @property string $AUTH_KEY 认证KEY
+ * @property string $PASSWORD_HASH 密码
+ * @property string $PASSWORD_RESET_TOKEN 重设密码TOKEN
+ * @property int $DONT_DEL 不可删除
+ * @property int $IS_DEL 是否删除
+ * @property int $LOGIN_NUMS 登录次数
+ * @property int $FAIL_NUMS 登录失败次数
+ * @property string $LAST_LOGIN_IP 上次登录IP
+ * @property int $LAST_LOGIN_AT 上次登录时间
+ * @property string $BIND_IP 绑定IP
+ * @property string $CREATE_ADMIN 创建管理员
+ * @property string $UPDATE_ADMIN 更新管理员
+ * @property int $CREATED_AT 创建时间
+ * @property int $UPDATED_AT 更新时间
+ * @property int $DELETED_AT 删除时间
+ * @property int $IS_MODIFY_PASSWORD 是否修改密码
+ */
+class PageDetails extends ActiveRecord
+{
+    /**
+     * @inheritdoc
+     */
+    public static function tableName()
+    {
+        return '{{%PAGE_DETAILS}}';
+    }
+
+    // /**
+    //  * {@inheritdoc}
+    //  */
+    // public function rules()
+    // {
+    //     return [
+    //         [['ADMIN_NAME', 'REAL_NAME', 'ROLE_ID', 'PASSWORD_HASH', 'CREATE_ADMIN', 'CREATED_AT'], 'required'],
+    //         [['IS_ENABLE', 'DONT_DEL', 'IS_DEL', 'LOGIN_NUMS', 'FAIL_NUMS', 'LAST_LOGIN_AT', 'CREATED_AT', 'UPDATED_AT', 'DELETED_AT', 'IS_MODIFY_PASSWORD'], 'integer'],
+    //         [['ID', 'ROLE_ID', 'CREATE_ADMIN', 'UPDATE_ADMIN'], 'string', 'max' => 32],
+    //         [['ADMIN_NAME', 'REMARK', 'AUTH_KEY', 'PASSWORD_HASH', 'PASSWORD_RESET_TOKEN'], 'string', 'max' => 255],
+    //         [['REAL_NAME'], 'string', 'max' => 128],
+    //         [['LAST_LOGIN_IP'], 'string', 'max' => 16],
+    //         [['BIND_IP'], 'string', 'max' => 4000],
+    //         [['ADMIN_NAME'], 'unique'],
+    //         [['ID'], 'unique'],
+    //     ];
+    // }
+
+    // /**
+    //  * {@inheritdoc}
+    //  */
+    // public function attributeLabels()
+    // {
+    //     return [
+    //         'ID' => 'ID',
+    //         'ADMIN_NAME' => '用户名',
+    //         'REAL_NAME' => '会员姓名',
+    //         'REMARK' => '备注',
+    //         'ROLE_ID' => '角色ID',
+    //         'IS_ENABLE' => '是否启用',
+    //         'AUTH_KEY' => '认证KEY',
+    //         'PASSWORD_HASH' => '密码',
+    //         'PASSWORD_RESET_TOKEN' => '重设密码TOKEN',
+    //         'DONT_DEL' => '不可删除',
+    //         'IS_DEL' => '是否删除',
+    //         'LOGIN_NUMS' => '登录次数',
+    //         'FAIL_NUMS' => '登录失败次数',
+    //         'LAST_LOGIN_IP' => '上次登录IP',
+    //         'LAST_LOGIN_AT' => '上次登录时间',
+    //         'BIND_IP' => '绑定IP',
+    //         'CREATE_ADMIN' => '创建管理员',
+    //         'UPDATE_ADMIN' => '更新管理员',
+    //         'CREATED_AT' => '创建时间',
+    //         'UPDATED_AT' => '更新时间',
+    //         'DELETED_AT' => '删除时间',
+    //         'IS_MODIFY_PASSWORD' => '是否修改密码',
+    //     ];
+    // }
+
+    /**
+     * 通过code获取数据
+     * @param $id
+     * @return string|null
+     */
+    public static function getInfoByCode($code){
+        $data = self::findOneAsArray('page_code=:pageCode', [':pageCode' => $code]);
+        return $data;
+    }
+}