diff --git a/app/admin/controller/Article/ArticleCategoryController.php b/app/admin/controller/Cms/Article/ArticleCategoryController.php similarity index 89% rename from app/admin/controller/Article/ArticleCategoryController.php rename to app/admin/controller/Cms/Article/ArticleCategoryController.php index af333f2..13eef29 100644 --- a/app/admin/controller/Article/ArticleCategoryController.php +++ b/app/admin/controller/Cms/Article/ArticleCategoryController.php @@ -1,7 +1,7 @@ where('delete_time', null) + $categories = ArticlesCategory::where('delete_time', null) + ->where('tid', $this->getTenantId()) ->where('status', 1) ->where('name', 'like', '%' . $keyword . '%') ->order('sort', 'desc') @@ -55,8 +56,8 @@ class ArticleCategoryController extends BaseController { try { // 获取文章分类列表 - $categories = Db::name('mete_articles_category') - ->where('delete_time', null) + $categories = ArticlesCategory::where('delete_time', null) + ->where('tid', $this->getTenantId()) ->where('status', 1) ->field('id,cid,name,image,sort') ->order('sort', 'desc') @@ -93,10 +94,11 @@ class ArticleCategoryController extends BaseController $data['cid'] = isset($data['cid']) ? (int)$data['cid'] : 0; $data['sort'] = isset($data['sort']) ? (int)$data['sort'] : 0; $data['status']= isset($data['status']) ? (int)$data['status'] : 1; + $data['tid'] = $this->getTenantId(); $data['create_time'] = date('Y-m-d H:i:s'); $data['update_time'] = $data['create_time']; - $id = Db::name('mete_articles_category')->insertGetId($data); + $id = ArticlesCategory::insertGetId($data); return json(['code'=>200,'msg'=>'success','data'=>['id'=>$id]]); } catch (ValidateException $ve) { // 记录失败日志 @@ -122,7 +124,7 @@ class ArticleCategoryController extends BaseController return json(['code'=>400,'msg'=>'无更新数据','data'=>null]); } $data['update_time'] = date('Y-m-d H:i:s'); - $affected = Db::name('mete_articles_category')->where('id',$id)->update($data); + $affected = ArticlesCategory::where('id',$id)->where('tid', $this->getTenantId())->update($data); if ($affected) { // 记录成功日志 $this->logSuccess('文章分类管理', '更新文章分类', ['id' => $id]); @@ -144,8 +146,8 @@ class ArticleCategoryController extends BaseController public function deleteCategory(int $id): Json { try { - $affected = Db::name('mete_articles_category') - ->where('id', $id) + $affected = ArticlesCategory::where('id', $id) + ->where('tid', $this->getTenantId()) ->update(['delete_time' => date('Y-m-d H:i:s')]); if ($affected) { @@ -179,7 +181,7 @@ class ArticleCategoryController extends BaseController } $data['status'] = isset($data['status']) ? (int)$data['status'] : 1; $data['update_time'] = date('Y-m-d H:i:s'); - $affected = Db::name('mete_articles_category')->where('id',$id)->update($data); + $affected = ArticlesCategory::where('id',$id)->where('tid', $this->getTenantId())->update($data); if ($affected) { // 记录成功日志 $this->logSuccess('文章分类管理', '更新分类状态', ['id' => $id]); diff --git a/app/admin/controller/Article/ArticleController.php b/app/admin/controller/Cms/Article/ArticleController.php similarity index 91% rename from app/admin/controller/Article/ArticleController.php rename to app/admin/controller/Cms/Article/ArticleController.php index c15dbc7..67775de 100644 --- a/app/admin/controller/Article/ArticleController.php +++ b/app/admin/controller/Cms/Article/ArticleController.php @@ -1,7 +1,7 @@ alias('a') + $query = Articles::alias('a') ->where('a.delete_time', null) + ->where('a.tid', $this->getTenantId()) ->leftJoin('mete_admin_user u', 'a.publisher = u.id') ->leftJoin('mete_articles_category c', 'a.cate = c.id'); @@ -98,8 +100,7 @@ class ArticleController extends BaseController $newTitleLength = strlen($newTitleLower); // 获取所有文章标题 - $allTitles = Db::name('mete_articles') - ->field('id, title') + $allTitles = Articles::field('id, title') ->select(); $similarArticles = []; @@ -180,10 +181,11 @@ class ArticleController extends BaseController 'is_trans' => $data['is_trans'] ?? 0, 'transurl' => $data['is_trans'] == 1 ? ($data['transurl'] ?? '') : '', 'publisher' => $userId, + 'tid' => $this->getTenantId(), 'create_time' => date('Y-m-d H:i:s'), ]; - $id = Db::name('mete_articles')->insertGetId($insertData); + $id = Articles::insertGetId($insertData); // 记录成功日志 $this->logSuccess('文章管理', '创建文章', ['id' => $id]); @@ -206,8 +208,8 @@ class ArticleController extends BaseController public function getArticle(int $id): Json { try { - $article = Db::name('mete_articles') - ->where('id', $id) + $article = Articles::where('id', $id) + ->where('tid', $this->getTenantId()) ->field('id,title,cate,image,desc,author,content,is_trans,transurl,views,likes,publisher,create_time,publish_date,update_time') ->find(); @@ -234,12 +236,17 @@ class ArticleController extends BaseController return json(['code'=>400,'msg'=>'无更新数据','data'=>null]); } $data['update_time'] = date('Y-m-d H:i:s'); - $affected = Db::name('mete_articles')->where('id',$id)->update($data); + $article = Articles::where('id', $id)->where('tid', $this->getTenantId())->find(); + if (!$article) { + return json(['code'=>404,'msg'=>'文章不存在','data'=>null]); + } + + $affected = Articles::where('id',$id)->where('tid', $this->getTenantId())->update($data); if ($affected) { + // 记录成功日志 + $this->logSuccess('文章管理', '编辑文章', ['id' => $id]); return json(['code'=>200,'msg'=>'success','data'=>null]); } - // 记录成功日志 - $this->logSuccess('文章管理', '编辑文章', ['id' => $id]); return json(['code'=>404,'msg'=>'not found','data'=>null]); } catch (\Exception $e) { // 记录失败日志 @@ -256,24 +263,18 @@ class ArticleController extends BaseController public function deleteArticle(int $id): Json { try { - $affected = Db::name('mete_articles') - ->where('id', $id) + $affected = Articles::where('id', $id) + ->where('tid', $this->getTenantId()) ->update(['delete_time' => date('Y-m-d H:i:s')]); if ($affected) { - // 记录成功日志 - $this->logSuccess('文章管理', '删除文章', ['id' => $id]); + $this->logSuccess('文章管理', '删除文章', ['id' => $id]); return json(['code' => 200, 'msg' => 'success', 'data' => null]); } return json(['code' => 404, 'msg' => 'not found', 'data' => null]); } catch (\Exception $e) { - // 记录失败日志 - $this->logFail('文章管理', '删除文章', $e->getMessage()); - return json([ - 'code' => 500, - 'msg' => 'fail:' . $e->getMessage(), - 'data' => $e->getTraceAsString() - ]); + $this->logFail('文章管理', '删除文章', $e->getMessage()); + return json(['code' => 500, 'msg' => 'fail:' . $e->getMessage(), 'data' => null]); } } @@ -290,7 +291,7 @@ class ArticleController extends BaseController return json(['code'=>400,'msg'=>'无更新数据','data'=>null]); } $data['update_time'] = date('Y-m-d H:i:s'); - $affected = Db::name('mete_articles')->where('id',$id)->update($data); + $affected = Articles::where('id',$id)->where('tid', $this->getTenantId())->update($data); if ($affected) { // 记录成功日志 $this->logSuccess('文章管理', '更新文章分类状态', ['id' => $id]); @@ -329,8 +330,8 @@ class ArticleController extends BaseController 'publisher' => $user_id, ]; - $affected = Db::name('mete_articles') - ->where('id', $id) + $affected = Articles::where('id', $id) + ->where('tid', $this->getTenantId()) ->update($data); if ($affected) { @@ -366,8 +367,8 @@ class ArticleController extends BaseController 'update_time' => $currentTime ]; - $affected = Db::name('mete_articles') - ->where('id', $id) + $affected = Articles::where('id', $id) + ->where('tid', $this->getTenantId()) ->update($data); if ($affected) { @@ -400,8 +401,8 @@ class ArticleController extends BaseController 'recommend' => 1, // 推荐状态 ]; - $affected = Db::name('mete_articles') - ->where('id', $id) + $affected = Articles::where('id', $id) + ->where('tid', $this->getTenantId()) ->update($data); if ($affected) { @@ -434,8 +435,8 @@ class ArticleController extends BaseController 'recommend' => 0, // 取消推荐状态 ]; - $affected = Db::name('mete_articles') - ->where('id', $id) + $affected = Articles::where('id', $id) + ->where('tid', $this->getTenantId()) ->update($data); if ($affected) { @@ -464,8 +465,8 @@ class ArticleController extends BaseController 'top' => 1, // 置顶状态 ]; - $affected = Db::name('mete_articles') - ->where('id', $id) + $affected = Articles::where('id', $id) + ->where('tid', $this->getTenantId()) ->update($data); if ($affected) { @@ -494,8 +495,8 @@ class ArticleController extends BaseController 'top' => 0, // 取消置顶状态 ]; - $affected = Db::name('mete_articles') - ->where('id', $id) + $affected = Articles::where('id', $id) + ->where('tid', $this->getTenantId()) ->update($data); if ($affected) { @@ -539,9 +540,9 @@ class ArticleController extends BaseController ], 'debug'); // 构建查询条件 - $query = Db::name('mete_articles') - ->alias('a') - ->where('a.delete_time', null); + $query = Articles::alias('a') + ->where('a.delete_time', null) + ->where('a.tid', $this->getTenantId()); // 关键词筛选(标题模糊匹配) if (!empty($keyword)) { diff --git a/app/admin/controller/LoginController.php b/app/admin/controller/LoginController.php index e330ecd..217afcb 100644 --- a/app/admin/controller/LoginController.php +++ b/app/admin/controller/LoginController.php @@ -12,6 +12,7 @@ use think\response\Json; use app\service\JwtService; use app\model\AdminUser; +use app\model\AdminUserGroup; use app\model\System\SystemSiteSettings; use app\model\Tenant\Tenant; @@ -114,7 +115,7 @@ class LoginController extends BaseController error_log('更新登录信息失败: ' . $e->getMessage()); } - // 9. 组装用户信息(新增:加入租户ID和租户名称) + // 9. 组装用户信息(新增:加入租户ID和租户名称和角色权限) $userInfo = [ 'id' => $user['id'], 'account' => $user['account'], @@ -123,6 +124,14 @@ class LoginController extends BaseController 'tenant_id' => $tenant_id, // 新增:租户ID 'tenant' => $tenant // 新增:租户名称 ]; + + // 获取角色权限 + if ($user['group_id']) { + $userGroup = AdminUserGroup::where('id', $user['group_id'])->find(); + if ($userGroup && $userGroup->rights) { + $userInfo['rights'] = json_decode($userGroup->rights, true); + } + } // 10. 生成Token(Token中已包含租户信息,后续可通过Token解析获取) try { diff --git a/app/admin/controller/MenuController.php b/app/admin/controller/MenuController.php index c515c94..e72dc2e 100644 --- a/app/admin/controller/MenuController.php +++ b/app/admin/controller/MenuController.php @@ -69,6 +69,10 @@ class MenuController extends BaseController $userGroup = AdminUserGroup::where('id', $user['group_id']) ->find(); + // 调试日志 + error_log('getMenus - user group_id: ' . $user['group_id']); + error_log('getMenus - userGroup: ' . json_encode($userGroup)); + // var_dump($userGroup); if (!$userGroup) { @@ -81,8 +85,9 @@ class MenuController extends BaseController // 解析权限数组 $menuIds = []; - if (!empty($userGroup['rights'])) { - $menuIds = is_array($userGroup['rights']) ? $userGroup['rights'] : json_decode($userGroup['rights'], true); + if ($userGroup->rights) { + $decoded = json_decode($userGroup->rights, true); + $menuIds = is_array($decoded) ? $decoded : []; } // var_dump($menuIds); diff --git a/app/admin/controller/ModulesController.php b/app/admin/controller/ModulesController.php index 4ec1fed..3224c4d 100644 --- a/app/admin/controller/ModulesController.php +++ b/app/admin/controller/ModulesController.php @@ -7,6 +7,7 @@ namespace app\admin\controller; use app\admin\BaseController; use think\response\Json; use app\model\AdminModules; +use app\model\AdminUserGroup; class ModulesController extends BaseController { @@ -43,13 +44,73 @@ class ModulesController extends BaseController } } + /** + * 获取租户模块列表 + * @return Json + */ + public function getTenantList() + { + try { + $userInfo = $this->getAdminUserInfo(); + + $groupId = $userInfo['group_id'] ?? null; + $menuIds = []; + + if ($groupId) { + $userGroup = AdminUserGroup::where('id', $groupId)->find(); + if ($userGroup && $userGroup->rights) { + $rights = $userGroup->rights; + $decoded = json_decode($rights, true); + $menuIds = is_array($decoded) ? $decoded : []; + } + } + + if (empty($menuIds)) { + return json([ + 'code' => 200, + 'msg' => '获取成功', + 'data' => [ + 'list' => [], + 'total' => 0 + ] + ]); + } + + $modules = AdminModules::where('delete_time', null) + ->whereIn('mid', $menuIds) + ->order('sort', 'asc') + ->order('id', 'asc') + ->select() + ->toArray(); + + $this->logSuccess('模块管理', '获取模块列表', ['count' => count($modules)]); + + return json([ + 'code' => 200, + 'msg' => '获取成功', + 'data' => [ + 'list' => $modules, + 'total' => count($modules) + ] + ]); + } catch (\Exception $e) { + $this->logFail('模块管理', '获取模块列表', $e->getMessage()); + return json([ + 'code' => 500, + 'msg' => '获取失败:' . $e->getMessage(), + 'data' => [] + ]); + } + } + /** * 获取模块详情 * @return Json */ - public function getDetail(int $id) + public function getDetail($id) { try { + $id = (int) $id; $module = AdminModules::where('id', $id) ->where('delete_time', null) ->find(); diff --git a/app/admin/controller/Tenant/TenantController.php b/app/admin/controller/Tenant/TenantController.php index 9f6d298..5edd15f 100644 --- a/app/admin/controller/Tenant/TenantController.php +++ b/app/admin/controller/Tenant/TenantController.php @@ -14,7 +14,6 @@ use think\Request; use app\model\Tenant\Tenant; use app\model\AdminUser; use app\model\Template\TemplateSiteConfig; -use app\model\Template\TemplateSiteConfig; class TenantController extends BaseController { diff --git a/app/admin/controller/UserController.php b/app/admin/controller/UserController.php index a087b99..21feffe 100644 --- a/app/admin/controller/UserController.php +++ b/app/admin/controller/UserController.php @@ -106,8 +106,15 @@ class UserController extends BaseController $data['create_time'] = date('Y-m-d H:i:s'); $data['update_time'] = $data['create_time']; $data['group_id'] = 2; + + if (!isset($data['tenant_id']) || empty($data['tenant_id'])) { + return json([ + 'code' => 400, + 'msg' => '租户ID不能为空' + ]); + } + $id = AdminUser::insertGetId($data); - // 记录操作日志 $this->logSuccess('用户管理', '添加用户', ['data' => $data]); return json([ 'code' => 200, diff --git a/app/admin/route/routes/article.php b/app/admin/route/routes/article.php index ded1275..4661c1c 100644 --- a/app/admin/route/routes/article.php +++ b/app/admin/route/routes/article.php @@ -2,22 +2,22 @@ use think\facade\Route; // 文章路由 -Route::get('articlesList', 'app\\admin\\controller\\Article\\ArticleController@getArticlesList'); -Route::get('allarticles', 'app\\admin\\controller\\Article\\ArticleController@getAllArticles'); -Route::get('articles/:id', 'app\\admin\\controller\\Article\\ArticleController@getArticle'); -Route::post('createarticle', 'app\\admin\\controller\\Article\\ArticleController@createArticle'); -Route::post('editarticle/:id', 'app\\admin\\controller\\Article\\ArticleController@editArticle'); -Route::delete('deletearticle/:id', 'app\\admin\\controller\\Article\\ArticleController@deleteArticle'); -Route::post('publisharticle/:id', 'app\\admin\\controller\\Article\\ArticleController@publishArticle'); -Route::post('unPublisharticle/:id', 'app\\admin\\controller\\Article\\ArticleController@unPublishArticle'); -Route::post('articleRecommend/:id', 'app\\admin\\controller\\Article\\ArticleController@articleRecommend'); -Route::post('unArticleRecommend/:id', 'app\\admin\\controller\\Article\\ArticleController@unArticleRecommend'); -Route::post('articleTop/:id', 'app\\admin\\controller\\Article\\ArticleController@articleTop'); -Route::post('unArticleTop/:id', 'app\\admin\\controller\\Article\\ArticleController@unArticleTop'); +Route::get('articlesList', 'app\\admin\\controller\\Cms\\Article\\ArticleController@getArticlesList'); +Route::get('allarticles', 'app\\admin\\controller\\Cms\\Article\\ArticleController@getAllArticles'); +Route::get('articles/:id', 'app\\admin\\controller\\Cms\\Article\\ArticleController@getArticle'); +Route::post('createarticle', 'app\\admin\\controller\\Cms\\Article\\ArticleController@createArticle'); +Route::post('editarticle/:id', 'app\\admin\\controller\\Cms\\Article\\ArticleController@editArticle'); +Route::delete('deletearticle/:id', 'app\\admin\\controller\\Cms\\Article\\ArticleController@deleteArticle'); +Route::post('publisharticle/:id', 'app\\admin\\controller\\Cms\\Article\\ArticleController@publishArticle'); +Route::post('unPublisharticle/:id', 'app\\admin\\controller\\Cms\\Article\\ArticleController@unPublishArticle'); +Route::post('articleRecommend/:id', 'app\\admin\\controller\\Cms\\Article\\ArticleController@articleRecommend'); +Route::post('unArticleRecommend/:id', 'app\\admin\\controller\\Cms\\Article\\ArticleController@unArticleRecommend'); +Route::post('articleTop/:id', 'app\\admin\\controller\\Cms\\Article\\ArticleController@articleTop'); +Route::post('unArticleTop/:id', 'app\\admin\\controller\\Cms\\Article\\ArticleController@unArticleTop'); // 文章分类路由 -Route::get('allcategories', 'app\\admin\\controller\\Article\\ArticleCategoryController@getAllArticleCategories'); -Route::get('categories', 'app\\admin\\controller\\Article\\ArticleCategoryController@getArticleCategories'); -Route::delete('categories/:id', 'app\\admin\\controller\\Article\\ArticleCategoryController@deleteCategory'); -Route::post('createCategory', 'app\\admin\\controller\\Article\\ArticleCategoryController@createCategory'); -Route::post('editCategory/:id', 'app\\admin\\controller\\Article\\ArticleCategoryController@editCategory'); +Route::get('allcategories', 'app\\admin\\controller\\Cms\\Article\\ArticleCategoryController@getAllArticleCategories'); +Route::get('categories', 'app\\admin\\controller\\Cms\\Article\\ArticleCategoryController@getArticleCategories'); +Route::delete('categories/:id', 'app\\admin\\controller\\Cms\\Article\\ArticleCategoryController@deleteCategory'); +Route::post('createCategory', 'app\\admin\\controller\\Cms\\Article\\ArticleCategoryController@createCategory'); +Route::post('editCategory/:id', 'app\\admin\\controller\\Cms\\Article\\ArticleCategoryController@editCategory'); diff --git a/app/admin/route/routes/modules.php b/app/admin/route/routes/modules.php index f563ab4..0330882 100644 --- a/app/admin/route/routes/modules.php +++ b/app/admin/route/routes/modules.php @@ -3,6 +3,7 @@ use think\facade\Route; // 模块管理路由 Route::get('modules/list', 'app\\admin\\controller\\ModulesController@getList'); +Route::get('modules/getTenantList', 'app\\admin\\controller\\ModulesController@getTenantList'); Route::get('modules/:id', 'app\\admin\\controller\\ModulesController@getDetail'); Route::post('modules', 'app\\admin\\controller\\ModulesController@add'); Route::put('modules/:id', 'app\\admin\\controller\\ModulesController@edit'); diff --git a/app/model/AdminModules.php b/app/model/AdminModules.php index 91d88f7..257f4b9 100644 --- a/app/model/AdminModules.php +++ b/app/model/AdminModules.php @@ -15,6 +15,7 @@ class AdminModules extends Model protected $type = [ 'id' => 'integer', + 'mid' => 'integer', 'name' => 'string', 'code' => 'string', 'path' => 'string', diff --git a/app/model/Articles.php b/app/model/Cms/Articles.php similarity index 98% rename from app/model/Articles.php rename to app/model/Cms/Articles.php index 524ea94..84a3357 100644 --- a/app/model/Articles.php +++ b/app/model/Cms/Articles.php @@ -9,7 +9,7 @@ // | Author: Liu21st // +---------------------------------------------------------------------- -namespace app\model; +namespace app\model\Cms; use think\Model; use think\model\concern\SoftDelete; @@ -36,6 +36,7 @@ class Articles extends Model // 字段类型转换 protected $type = [ 'id' => 'integer', + 'tid' => 'integer', 'cate' => 'integer', 'sort' => 'integer', 'status' => 'integer', diff --git a/app/model/ArticlesCategory.php b/app/model/Cms/ArticlesCategory.php similarity index 91% rename from app/model/ArticlesCategory.php rename to app/model/Cms/ArticlesCategory.php index 900a901..eb01990 100644 --- a/app/model/ArticlesCategory.php +++ b/app/model/Cms/ArticlesCategory.php @@ -9,7 +9,7 @@ // | Author: Liu21st // +---------------------------------------------------------------------- -namespace app\model; +namespace app\model\Cms; use think\Model; use think\model\concern\SoftDelete; @@ -36,6 +36,11 @@ class ArticlesCategory extends Model // 字段类型转换 protected $type = [ 'id' => 'integer', + 'cid' => 'integer', + 'tid' => 'integer', + 'name' => 'string', + 'image' => 'string', + 'desc' => 'string', 'sort' => 'integer', 'status' => 'integer', 'create_time' => 'datetime', diff --git a/app/model/Tenant/Tenant.php b/app/model/Tenant/Tenant.php index 5bfdb53..5c1e28d 100644 --- a/app/model/Tenant/Tenant.php +++ b/app/model/Tenant/Tenant.php @@ -30,9 +30,11 @@ class Tenant extends Model 'contact_phone' => 'string', 'contact_email' => 'string', 'address' => 'string', + 'domain' => 'string', 'status' => 'integer', 'create_time' => 'datetime', 'update_time' => 'datetime', + 'delete_time' => 'datetime', 'remark' => 'string', ]; } diff --git a/runtime/cache/01/296e54db593b14cdb27079fd1ee7fc.php b/runtime/cache/01/296e54db593b14cdb27079fd1ee7fc.php index 1de34b7..dff18b8 100644 --- a/runtime/cache/01/296e54db593b14cdb27079fd1ee7fc.php +++ b/runtime/cache/01/296e54db593b14cdb27079fd1ee7fc.php @@ -1,4 +1,4 @@ -a:6:{s:2:"id";i:2;s:7:"account";s:10:"hero920103";s:4:"name";s:9:"李志强";s:8:"group_id";i:1;s:9:"tenant_id";i:1;s:6:"tenant";O:23:"app\model\Tenant\Tenant":26:{s:3:"get";a:2:{s:2:"id";i:1;s:11:"tenant_name";s:39:"连云港云泽广告传媒有限公司";}s:4:"data";a:2:{s:2:"id";i:1;s:11:"tenant_name";s:39:"连云港云泽广告传媒有限公司";}s:6:"origin";a:2:{s:2:"id";i:1;s:11:"tenant_name";s:39:"连云港云泽广告传媒有限公司";}s:8:"relation";a:0:{}s:8:"together";a:0:{}s:5:"allow";a:0:{}s:8:"withAttr";a:0:{}s:6:"schema";a:12:{s:2:"id";s:7:"integer";s:11:"tenant_code";s:6:"string";s:11:"tenant_name";s:6:"string";s:14:"contact_person";s:6:"string";s:13:"contact_phone";s:6:"string";s:13:"contact_email";s:6:"string";s:7:"address";s:6:"string";s:6:"status";s:7:"integer";s:11:"create_time";s:8:"datetime";s:11:"update_time";s:8:"datetime";s:11:"delete_time";s:8:"datetime";s:6:"remark";s:6:"string";}s:10:"updateTime";s:11:"update_time";s:10:"createTime";s:11:"create_time";s:6:"suffix";s:0:"";s:8:"validate";s:0:"";s:4:"type";a:0:{}s:8:"readonly";a:0:{}s:6:"disuse";a:0:{}s:6:"hidden";a:0:{}s:7:"visible";a:0:{}s:6:"append";a:0:{}s:7:"mapping";a:0:{}s:6:"strict";b:1;s:8:"bindAttr";a:0:{}s:12:"autoRelation";a:0:{}s:18:"autoWriteTimestamp";b:1;s:10:"dateFormat";s:11:"Y-m-d H:i:s";s:2:"pk";s:2:"id";s:6:"exists";b:1;}} \ No newline at end of file +a:7:{s:2:"id";i:2;s:7:"account";s:10:"hero920103";s:4:"name";s:9:"李志强";s:8:"group_id";i:1;s:9:"tenant_id";i:1;s:6:"tenant";O:23:"app\model\Tenant\Tenant":26:{s:3:"get";a:2:{s:2:"id";i:1;s:11:"tenant_name";s:39:"连云港云泽广告传媒有限公司";}s:4:"data";a:2:{s:2:"id";i:1;s:11:"tenant_name";s:39:"连云港云泽广告传媒有限公司";}s:6:"origin";a:2:{s:2:"id";i:1;s:11:"tenant_name";s:39:"连云港云泽广告传媒有限公司";}s:8:"relation";a:0:{}s:8:"together";a:0:{}s:5:"allow";a:0:{}s:8:"withAttr";a:0:{}s:6:"schema";a:13:{s:2:"id";s:7:"integer";s:11:"tenant_code";s:6:"string";s:11:"tenant_name";s:6:"string";s:14:"contact_person";s:6:"string";s:13:"contact_phone";s:6:"string";s:13:"contact_email";s:6:"string";s:7:"address";s:6:"string";s:6:"domain";s:6:"string";s:6:"status";s:7:"integer";s:11:"create_time";s:8:"datetime";s:11:"update_time";s:8:"datetime";s:11:"delete_time";s:8:"datetime";s:6:"remark";s:6:"string";}s:10:"updateTime";s:11:"update_time";s:10:"createTime";s:11:"create_time";s:6:"suffix";s:0:"";s:8:"validate";s:0:"";s:4:"type";a:0:{}s:8:"readonly";a:0:{}s:6:"disuse";a:0:{}s:6:"hidden";a:0:{}s:7:"visible";a:0:{}s:6:"append";a:0:{}s:7:"mapping";a:0:{}s:6:"strict";b:1;s:8:"bindAttr";a:0:{}s:12:"autoRelation";a:0:{}s:18:"autoWriteTimestamp";b:1;s:10:"dateFormat";s:11:"Y-m-d H:i:s";s:2:"pk";s:2:"id";s:6:"exists";b:1;}s:6:"rights";a:46:{i:0;i:31;i:1;i:32;i:2;i:33;i:3;i:4;i:4;i:9;i:5;i:29;i:6;i:5;i:7;i:6;i:8;i:30;i:9;i:27;i:10;i:28;i:11;i:19;i:12;i:12;i:13;i:18;i:14;i:23;i:15;i:25;i:16;i:26;i:17;i:24;i:18;i:7;i:19;i:8;i:20;i:17;i:21;i:21;i:22;i:2;i:23;i:10;i:24;i:11;i:25;i:16;i:26;i:1;i:27;i:20;i:28;i:22;i:29;i:3;i:30;i:15;i:31;i:34;i:32;i:35;i:33;i:36;i:34;i:37;i:35;i:38;i:36;i:39;i:37;i:40;i:38;i:41;i:39;i:42;i:40;i:43;i:41;i:44;i:42;i:45;i:43;i:46;i:44;i:47;i:45;i:48;}} \ No newline at end of file