优化tenant模式

This commit is contained in:
李志强 2026-03-09 18:27:05 +08:00
parent bf0daf987b
commit e09b4c639c
14 changed files with 167 additions and 73 deletions

View File

@ -1,7 +1,7 @@
<?php <?php
declare (strict_types = 1); declare (strict_types = 1);
namespace app\admin\controller\Article; namespace app\admin\controller\Cms\Article;
use app\admin\BaseController; use app\admin\BaseController;
use think\exception\ValidateException; use think\exception\ValidateException;
@ -9,6 +9,7 @@ use think\facade\Db;
use think\facade\Session; use think\facade\Session;
use think\response\Json; use think\response\Json;
use think\db\exception\DbException; use think\db\exception\DbException;
use app\model\Cms\ArticlesCategory;
class ArticleCategoryController extends BaseController class ArticleCategoryController extends BaseController
{ {
@ -24,8 +25,8 @@ class ArticleCategoryController extends BaseController
$keyword = $keyword ?? ''; $keyword = $keyword ?? '';
// 获取文章分类列表 // 获取文章分类列表
$categories = Db::name('mete_articles_category') $categories = ArticlesCategory::where('delete_time', null)
->where('delete_time', null) ->where('tid', $this->getTenantId())
->where('status', 1) ->where('status', 1)
->where('name', 'like', '%' . $keyword . '%') ->where('name', 'like', '%' . $keyword . '%')
->order('sort', 'desc') ->order('sort', 'desc')
@ -55,8 +56,8 @@ class ArticleCategoryController extends BaseController
{ {
try { try {
// 获取文章分类列表 // 获取文章分类列表
$categories = Db::name('mete_articles_category') $categories = ArticlesCategory::where('delete_time', null)
->where('delete_time', null) ->where('tid', $this->getTenantId())
->where('status', 1) ->where('status', 1)
->field('id,cid,name,image,sort') ->field('id,cid,name,image,sort')
->order('sort', 'desc') ->order('sort', 'desc')
@ -93,10 +94,11 @@ class ArticleCategoryController extends BaseController
$data['cid'] = isset($data['cid']) ? (int)$data['cid'] : 0; $data['cid'] = isset($data['cid']) ? (int)$data['cid'] : 0;
$data['sort'] = isset($data['sort']) ? (int)$data['sort'] : 0; $data['sort'] = isset($data['sort']) ? (int)$data['sort'] : 0;
$data['status']= isset($data['status']) ? (int)$data['status'] : 1; $data['status']= isset($data['status']) ? (int)$data['status'] : 1;
$data['tid'] = $this->getTenantId();
$data['create_time'] = date('Y-m-d H:i:s'); $data['create_time'] = date('Y-m-d H:i:s');
$data['update_time'] = $data['create_time']; $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]]); return json(['code'=>200,'msg'=>'success','data'=>['id'=>$id]]);
} catch (ValidateException $ve) { } catch (ValidateException $ve) {
// 记录失败日志 // 记录失败日志
@ -122,7 +124,7 @@ class ArticleCategoryController extends BaseController
return json(['code'=>400,'msg'=>'无更新数据','data'=>null]); return json(['code'=>400,'msg'=>'无更新数据','data'=>null]);
} }
$data['update_time'] = date('Y-m-d H:i:s'); $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) { if ($affected) {
// 记录成功日志 // 记录成功日志
$this->logSuccess('文章分类管理', '更新文章分类', ['id' => $id]); $this->logSuccess('文章分类管理', '更新文章分类', ['id' => $id]);
@ -144,8 +146,8 @@ class ArticleCategoryController extends BaseController
public function deleteCategory(int $id): Json public function deleteCategory(int $id): Json
{ {
try { try {
$affected = Db::name('mete_articles_category') $affected = ArticlesCategory::where('id', $id)
->where('id', $id) ->where('tid', $this->getTenantId())
->update(['delete_time' => date('Y-m-d H:i:s')]); ->update(['delete_time' => date('Y-m-d H:i:s')]);
if ($affected) { if ($affected) {
@ -179,7 +181,7 @@ class ArticleCategoryController extends BaseController
} }
$data['status'] = isset($data['status']) ? (int)$data['status'] : 1; $data['status'] = isset($data['status']) ? (int)$data['status'] : 1;
$data['update_time'] = date('Y-m-d H:i:s'); $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) { if ($affected) {
// 记录成功日志 // 记录成功日志
$this->logSuccess('文章分类管理', '更新分类状态', ['id' => $id]); $this->logSuccess('文章分类管理', '更新分类状态', ['id' => $id]);

View File

@ -1,7 +1,7 @@
<?php <?php
declare (strict_types = 1); declare (strict_types = 1);
namespace app\admin\controller\Article; namespace app\admin\controller\Cms\Article;
use app\admin\BaseController; use app\admin\BaseController;
use think\exception\ValidateException; use think\exception\ValidateException;
@ -10,6 +10,7 @@ use think\facade\Request;
use think\facade\Session; use think\facade\Session;
use think\response\Json; use think\response\Json;
use think\db\exception\DbException; use think\db\exception\DbException;
use app\model\Cms\Articles;
class ArticleController extends BaseController class ArticleController extends BaseController
{ {
@ -40,8 +41,9 @@ class ArticleController extends BaseController
], 'debug'); ], 'debug');
// 构建查询条件,合并表连接 // 构建查询条件,合并表连接
$query = Db::name('mete_articles')->alias('a') $query = Articles::alias('a')
->where('a.delete_time', null) ->where('a.delete_time', null)
->where('a.tid', $this->getTenantId())
->leftJoin('mete_admin_user u', 'a.publisher = u.id') ->leftJoin('mete_admin_user u', 'a.publisher = u.id')
->leftJoin('mete_articles_category c', 'a.cate = c.id'); ->leftJoin('mete_articles_category c', 'a.cate = c.id');
@ -98,8 +100,7 @@ class ArticleController extends BaseController
$newTitleLength = strlen($newTitleLower); $newTitleLength = strlen($newTitleLower);
// 获取所有文章标题 // 获取所有文章标题
$allTitles = Db::name('mete_articles') $allTitles = Articles::field('id, title')
->field('id, title')
->select(); ->select();
$similarArticles = []; $similarArticles = [];
@ -180,10 +181,11 @@ class ArticleController extends BaseController
'is_trans' => $data['is_trans'] ?? 0, 'is_trans' => $data['is_trans'] ?? 0,
'transurl' => $data['is_trans'] == 1 ? ($data['transurl'] ?? '') : '', 'transurl' => $data['is_trans'] == 1 ? ($data['transurl'] ?? '') : '',
'publisher' => $userId, 'publisher' => $userId,
'tid' => $this->getTenantId(),
'create_time' => date('Y-m-d H:i:s'), 'create_time' => date('Y-m-d H:i:s'),
]; ];
$id = Db::name('mete_articles')->insertGetId($insertData); $id = Articles::insertGetId($insertData);
// 记录成功日志 // 记录成功日志
$this->logSuccess('文章管理', '创建文章', ['id' => $id]); $this->logSuccess('文章管理', '创建文章', ['id' => $id]);
@ -206,8 +208,8 @@ class ArticleController extends BaseController
public function getArticle(int $id): Json public function getArticle(int $id): Json
{ {
try { try {
$article = Db::name('mete_articles') $article = Articles::where('id', $id)
->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') ->field('id,title,cate,image,desc,author,content,is_trans,transurl,views,likes,publisher,create_time,publish_date,update_time')
->find(); ->find();
@ -234,12 +236,17 @@ class ArticleController extends BaseController
return json(['code'=>400,'msg'=>'无更新数据','data'=>null]); return json(['code'=>400,'msg'=>'无更新数据','data'=>null]);
} }
$data['update_time'] = date('Y-m-d H:i:s'); $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 ($affected) { if (!$article) {
return json(['code'=>200,'msg'=>'success','data'=>null]); return json(['code'=>404,'msg'=>'文章不存在','data'=>null]);
} }
$affected = Articles::where('id',$id)->where('tid', $this->getTenantId())->update($data);
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]); return json(['code'=>404,'msg'=>'not found','data'=>null]);
} catch (\Exception $e) { } catch (\Exception $e) {
// 记录失败日志 // 记录失败日志
@ -256,24 +263,18 @@ class ArticleController extends BaseController
public function deleteArticle(int $id): Json public function deleteArticle(int $id): Json
{ {
try { try {
$affected = Db::name('mete_articles') $affected = Articles::where('id', $id)
->where('id', $id) ->where('tid', $this->getTenantId())
->update(['delete_time' => date('Y-m-d H:i:s')]); ->update(['delete_time' => date('Y-m-d H:i:s')]);
if ($affected) { if ($affected) {
// 记录成功日志
$this->logSuccess('文章管理', '删除文章', ['id' => $id]); $this->logSuccess('文章管理', '删除文章', ['id' => $id]);
return json(['code' => 200, 'msg' => 'success', 'data' => null]); return json(['code' => 200, 'msg' => 'success', 'data' => null]);
} }
return json(['code' => 404, 'msg' => 'not found', 'data' => null]); return json(['code' => 404, 'msg' => 'not found', 'data' => null]);
} catch (\Exception $e) { } catch (\Exception $e) {
// 记录失败日志
$this->logFail('文章管理', '删除文章', $e->getMessage()); $this->logFail('文章管理', '删除文章', $e->getMessage());
return json([ return json(['code' => 500, 'msg' => 'fail' . $e->getMessage(), 'data' => null]);
'code' => 500,
'msg' => 'fail' . $e->getMessage(),
'data' => $e->getTraceAsString()
]);
} }
} }
@ -290,7 +291,7 @@ class ArticleController extends BaseController
return json(['code'=>400,'msg'=>'无更新数据','data'=>null]); return json(['code'=>400,'msg'=>'无更新数据','data'=>null]);
} }
$data['update_time'] = date('Y-m-d H:i:s'); $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) { if ($affected) {
// 记录成功日志 // 记录成功日志
$this->logSuccess('文章管理', '更新文章分类状态', ['id' => $id]); $this->logSuccess('文章管理', '更新文章分类状态', ['id' => $id]);
@ -329,8 +330,8 @@ class ArticleController extends BaseController
'publisher' => $user_id, 'publisher' => $user_id,
]; ];
$affected = Db::name('mete_articles') $affected = Articles::where('id', $id)
->where('id', $id) ->where('tid', $this->getTenantId())
->update($data); ->update($data);
if ($affected) { if ($affected) {
@ -366,8 +367,8 @@ class ArticleController extends BaseController
'update_time' => $currentTime 'update_time' => $currentTime
]; ];
$affected = Db::name('mete_articles') $affected = Articles::where('id', $id)
->where('id', $id) ->where('tid', $this->getTenantId())
->update($data); ->update($data);
if ($affected) { if ($affected) {
@ -400,8 +401,8 @@ class ArticleController extends BaseController
'recommend' => 1, // 推荐状态 'recommend' => 1, // 推荐状态
]; ];
$affected = Db::name('mete_articles') $affected = Articles::where('id', $id)
->where('id', $id) ->where('tid', $this->getTenantId())
->update($data); ->update($data);
if ($affected) { if ($affected) {
@ -434,8 +435,8 @@ class ArticleController extends BaseController
'recommend' => 0, // 取消推荐状态 'recommend' => 0, // 取消推荐状态
]; ];
$affected = Db::name('mete_articles') $affected = Articles::where('id', $id)
->where('id', $id) ->where('tid', $this->getTenantId())
->update($data); ->update($data);
if ($affected) { if ($affected) {
@ -464,8 +465,8 @@ class ArticleController extends BaseController
'top' => 1, // 置顶状态 'top' => 1, // 置顶状态
]; ];
$affected = Db::name('mete_articles') $affected = Articles::where('id', $id)
->where('id', $id) ->where('tid', $this->getTenantId())
->update($data); ->update($data);
if ($affected) { if ($affected) {
@ -494,8 +495,8 @@ class ArticleController extends BaseController
'top' => 0, // 取消置顶状态 'top' => 0, // 取消置顶状态
]; ];
$affected = Db::name('mete_articles') $affected = Articles::where('id', $id)
->where('id', $id) ->where('tid', $this->getTenantId())
->update($data); ->update($data);
if ($affected) { if ($affected) {
@ -539,9 +540,9 @@ class ArticleController extends BaseController
], 'debug'); ], 'debug');
// 构建查询条件 // 构建查询条件
$query = Db::name('mete_articles') $query = Articles::alias('a')
->alias('a') ->where('a.delete_time', null)
->where('a.delete_time', null); ->where('a.tid', $this->getTenantId());
// 关键词筛选(标题模糊匹配) // 关键词筛选(标题模糊匹配)
if (!empty($keyword)) { if (!empty($keyword)) {

View File

@ -12,6 +12,7 @@ use think\response\Json;
use app\service\JwtService; use app\service\JwtService;
use app\model\AdminUser; use app\model\AdminUser;
use app\model\AdminUserGroup;
use app\model\System\SystemSiteSettings; use app\model\System\SystemSiteSettings;
use app\model\Tenant\Tenant; use app\model\Tenant\Tenant;
@ -114,7 +115,7 @@ class LoginController extends BaseController
error_log('更新登录信息失败: ' . $e->getMessage()); error_log('更新登录信息失败: ' . $e->getMessage());
} }
// 9. 组装用户信息新增加入租户ID和租户名称 // 9. 组装用户信息新增加入租户ID和租户名称和角色权限
$userInfo = [ $userInfo = [
'id' => $user['id'], 'id' => $user['id'],
'account' => $user['account'], 'account' => $user['account'],
@ -124,6 +125,14 @@ class LoginController extends BaseController
'tenant' => $tenant // 新增:租户名称 '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. 生成TokenToken中已包含租户信息后续可通过Token解析获取 // 10. 生成TokenToken中已包含租户信息后续可通过Token解析获取
try { try {
$token = $this->generateToken($userInfo); $token = $this->generateToken($userInfo);

View File

@ -69,6 +69,10 @@ class MenuController extends BaseController
$userGroup = AdminUserGroup::where('id', $user['group_id']) $userGroup = AdminUserGroup::where('id', $user['group_id'])
->find(); ->find();
// 调试日志
error_log('getMenus - user group_id: ' . $user['group_id']);
error_log('getMenus - userGroup: ' . json_encode($userGroup));
// var_dump($userGroup); // var_dump($userGroup);
if (!$userGroup) { if (!$userGroup) {
@ -81,8 +85,9 @@ class MenuController extends BaseController
// 解析权限数组 // 解析权限数组
$menuIds = []; $menuIds = [];
if (!empty($userGroup['rights'])) { if ($userGroup->rights) {
$menuIds = is_array($userGroup['rights']) ? $userGroup['rights'] : json_decode($userGroup['rights'], true); $decoded = json_decode($userGroup->rights, true);
$menuIds = is_array($decoded) ? $decoded : [];
} }
// var_dump($menuIds); // var_dump($menuIds);

View File

@ -7,6 +7,7 @@ namespace app\admin\controller;
use app\admin\BaseController; use app\admin\BaseController;
use think\response\Json; use think\response\Json;
use app\model\AdminModules; use app\model\AdminModules;
use app\model\AdminUserGroup;
class ModulesController extends BaseController 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 * @return Json
*/ */
public function getDetail(int $id) public function getDetail($id)
{ {
try { try {
$id = (int) $id;
$module = AdminModules::where('id', $id) $module = AdminModules::where('id', $id)
->where('delete_time', null) ->where('delete_time', null)
->find(); ->find();

View File

@ -14,7 +14,6 @@ use think\Request;
use app\model\Tenant\Tenant; use app\model\Tenant\Tenant;
use app\model\AdminUser; use app\model\AdminUser;
use app\model\Template\TemplateSiteConfig; use app\model\Template\TemplateSiteConfig;
use app\model\Template\TemplateSiteConfig;
class TenantController extends BaseController class TenantController extends BaseController
{ {

View File

@ -106,8 +106,15 @@ class UserController extends BaseController
$data['create_time'] = date('Y-m-d H:i:s'); $data['create_time'] = date('Y-m-d H:i:s');
$data['update_time'] = $data['create_time']; $data['update_time'] = $data['create_time'];
$data['group_id'] = 2; $data['group_id'] = 2;
if (!isset($data['tenant_id']) || empty($data['tenant_id'])) {
return json([
'code' => 400,
'msg' => '租户ID不能为空'
]);
}
$id = AdminUser::insertGetId($data); $id = AdminUser::insertGetId($data);
// 记录操作日志
$this->logSuccess('用户管理', '添加用户', ['data' => $data]); $this->logSuccess('用户管理', '添加用户', ['data' => $data]);
return json([ return json([
'code' => 200, 'code' => 200,

View File

@ -2,22 +2,22 @@
use think\facade\Route; use think\facade\Route;
// 文章路由 // 文章路由
Route::get('articlesList', 'app\\admin\\controller\\Article\\ArticleController@getArticlesList'); Route::get('articlesList', 'app\\admin\\controller\\Cms\\Article\\ArticleController@getArticlesList');
Route::get('allarticles', 'app\\admin\\controller\\Article\\ArticleController@getAllArticles'); Route::get('allarticles', 'app\\admin\\controller\\Cms\\Article\\ArticleController@getAllArticles');
Route::get('articles/:id', 'app\\admin\\controller\\Article\\ArticleController@getArticle'); Route::get('articles/:id', 'app\\admin\\controller\\Cms\\Article\\ArticleController@getArticle');
Route::post('createarticle', 'app\\admin\\controller\\Article\\ArticleController@createArticle'); Route::post('createarticle', 'app\\admin\\controller\\Cms\\Article\\ArticleController@createArticle');
Route::post('editarticle/:id', 'app\\admin\\controller\\Article\\ArticleController@editArticle'); Route::post('editarticle/:id', 'app\\admin\\controller\\Cms\\Article\\ArticleController@editArticle');
Route::delete('deletearticle/:id', 'app\\admin\\controller\\Article\\ArticleController@deleteArticle'); Route::delete('deletearticle/:id', 'app\\admin\\controller\\Cms\\Article\\ArticleController@deleteArticle');
Route::post('publisharticle/:id', 'app\\admin\\controller\\Article\\ArticleController@publishArticle'); Route::post('publisharticle/:id', 'app\\admin\\controller\\Cms\\Article\\ArticleController@publishArticle');
Route::post('unPublisharticle/:id', 'app\\admin\\controller\\Article\\ArticleController@unPublishArticle'); Route::post('unPublisharticle/:id', 'app\\admin\\controller\\Cms\\Article\\ArticleController@unPublishArticle');
Route::post('articleRecommend/:id', 'app\\admin\\controller\\Article\\ArticleController@articleRecommend'); Route::post('articleRecommend/:id', 'app\\admin\\controller\\Cms\\Article\\ArticleController@articleRecommend');
Route::post('unArticleRecommend/:id', 'app\\admin\\controller\\Article\\ArticleController@unArticleRecommend'); Route::post('unArticleRecommend/:id', 'app\\admin\\controller\\Cms\\Article\\ArticleController@unArticleRecommend');
Route::post('articleTop/:id', 'app\\admin\\controller\\Article\\ArticleController@articleTop'); Route::post('articleTop/:id', 'app\\admin\\controller\\Cms\\Article\\ArticleController@articleTop');
Route::post('unArticleTop/:id', 'app\\admin\\controller\\Article\\ArticleController@unArticleTop'); Route::post('unArticleTop/:id', 'app\\admin\\controller\\Cms\\Article\\ArticleController@unArticleTop');
// 文章分类路由 // 文章分类路由
Route::get('allcategories', 'app\\admin\\controller\\Article\\ArticleCategoryController@getAllArticleCategories'); Route::get('allcategories', 'app\\admin\\controller\\Cms\\Article\\ArticleCategoryController@getAllArticleCategories');
Route::get('categories', 'app\\admin\\controller\\Article\\ArticleCategoryController@getArticleCategories'); Route::get('categories', 'app\\admin\\controller\\Cms\\Article\\ArticleCategoryController@getArticleCategories');
Route::delete('categories/:id', 'app\\admin\\controller\\Article\\ArticleCategoryController@deleteCategory'); Route::delete('categories/:id', 'app\\admin\\controller\\Cms\\Article\\ArticleCategoryController@deleteCategory');
Route::post('createCategory', 'app\\admin\\controller\\Article\\ArticleCategoryController@createCategory'); Route::post('createCategory', 'app\\admin\\controller\\Cms\\Article\\ArticleCategoryController@createCategory');
Route::post('editCategory/:id', 'app\\admin\\controller\\Article\\ArticleCategoryController@editCategory'); Route::post('editCategory/:id', 'app\\admin\\controller\\Cms\\Article\\ArticleCategoryController@editCategory');

View File

@ -3,6 +3,7 @@ use think\facade\Route;
// 模块管理路由 // 模块管理路由
Route::get('modules/list', 'app\\admin\\controller\\ModulesController@getList'); 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::get('modules/:id', 'app\\admin\\controller\\ModulesController@getDetail');
Route::post('modules', 'app\\admin\\controller\\ModulesController@add'); Route::post('modules', 'app\\admin\\controller\\ModulesController@add');
Route::put('modules/:id', 'app\\admin\\controller\\ModulesController@edit'); Route::put('modules/:id', 'app\\admin\\controller\\ModulesController@edit');

View File

@ -15,6 +15,7 @@ class AdminModules extends Model
protected $type = [ protected $type = [
'id' => 'integer', 'id' => 'integer',
'mid' => 'integer',
'name' => 'string', 'name' => 'string',
'code' => 'string', 'code' => 'string',
'path' => 'string', 'path' => 'string',

View File

@ -9,7 +9,7 @@
// | Author: Liu21st <liu21st@gmail.com> // | Author: Liu21st <liu21st@gmail.com>
// +---------------------------------------------------------------------- // +----------------------------------------------------------------------
namespace app\model; namespace app\model\Cms;
use think\Model; use think\Model;
use think\model\concern\SoftDelete; use think\model\concern\SoftDelete;
@ -36,6 +36,7 @@ class Articles extends Model
// 字段类型转换 // 字段类型转换
protected $type = [ protected $type = [
'id' => 'integer', 'id' => 'integer',
'tid' => 'integer',
'cate' => 'integer', 'cate' => 'integer',
'sort' => 'integer', 'sort' => 'integer',
'status' => 'integer', 'status' => 'integer',

View File

@ -9,7 +9,7 @@
// | Author: Liu21st <liu21st@gmail.com> // | Author: Liu21st <liu21st@gmail.com>
// +---------------------------------------------------------------------- // +----------------------------------------------------------------------
namespace app\model; namespace app\model\Cms;
use think\Model; use think\Model;
use think\model\concern\SoftDelete; use think\model\concern\SoftDelete;
@ -36,6 +36,11 @@ class ArticlesCategory extends Model
// 字段类型转换 // 字段类型转换
protected $type = [ protected $type = [
'id' => 'integer', 'id' => 'integer',
'cid' => 'integer',
'tid' => 'integer',
'name' => 'string',
'image' => 'string',
'desc' => 'string',
'sort' => 'integer', 'sort' => 'integer',
'status' => 'integer', 'status' => 'integer',
'create_time' => 'datetime', 'create_time' => 'datetime',

View File

@ -30,9 +30,11 @@ class Tenant extends Model
'contact_phone' => 'string', 'contact_phone' => 'string',
'contact_email' => 'string', 'contact_email' => 'string',
'address' => 'string', 'address' => 'string',
'domain' => 'string',
'status' => 'integer', 'status' => 'integer',
'create_time' => 'datetime', 'create_time' => 'datetime',
'update_time' => 'datetime', 'update_time' => 'datetime',
'delete_time' => 'datetime',
'remark' => 'string', 'remark' => 'string',
]; ];
} }

View File

@ -1,4 +1,4 @@
<?php <?php
//000000604800 //000000604800
exit();?> exit();?>
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;}} 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;}}