diff --git a/app/admin/BaseController.php b/app/admin/BaseController.php index a34e0e1..e4527e8 100644 --- a/app/admin/BaseController.php +++ b/app/admin/BaseController.php @@ -188,14 +188,14 @@ abstract class BaseController } /** - * 获取当前用户的 tenant_id + * 获取当前用户的 tid * * @return int 租户ID */ protected function getTenantId(): int { $userInfo = $this->getAdminUserInfo(); - return isset($userInfo['tenant_id']) ? intval($userInfo['tenant_id']) : 0; + return isset($userInfo['tid']) ? intval($userInfo['tid']) : 0; } } diff --git a/app/admin/controller/AnalyticsController.php b/app/admin/controller/Cms/Analytics/AnalyticsController.php similarity index 87% rename from app/admin/controller/AnalyticsController.php rename to app/admin/controller/Cms/Analytics/AnalyticsController.php index a1e7cb2..894d375 100644 --- a/app/admin/controller/AnalyticsController.php +++ b/app/admin/controller/Cms/Analytics/AnalyticsController.php @@ -2,16 +2,16 @@ declare(strict_types=1); -namespace app\admin\controller; +namespace app\admin\controller\Cms\Analytics; use app\admin\BaseController; use think\exception\ValidateException; use think\facade\Db; use think\response\Json; use think\db\exception\DbException; -use app\model\Articles; -use app\model\ArticlesCategory; -use app\model\AdminUser; +use app\model\Cms\Articles; +use app\model\Cms\ArticlesCategory; +use app\model\System\AdminUser; class AnalyticsController extends BaseController { @@ -29,11 +29,13 @@ class AnalyticsController extends BaseController // 总发布量 $totalArticles = Articles::where('delete_time', null) + ->where('tid', $this->getTenantId()) ->where('status', 2) ->count(); // 昨日新增发布 $yesterdayArticles = Articles::where('delete_time', null) + ->where('tid', $this->getTenantId()) ->where('status', 2) ->where('publish_date', '>=', $yesterday . ' 00:00:00') ->where('publish_date', '<=', $yesterday . ' 23:59:59') @@ -41,6 +43,7 @@ class AnalyticsController extends BaseController // 本月新增发布 $monthNewArticles = Articles::where('delete_time', null) + ->where('tid', $this->getTenantId()) ->where('status', 2) ->where('publish_date', '>=', $monthStart . ' 00:00:00') ->where('publish_date', '<=', $monthEnd) @@ -48,16 +51,19 @@ class AnalyticsController extends BaseController // 总点赞量 $totalLikes = Articles::where('delete_time', null) + ->where('tid', $this->getTenantId()) ->where('status', 2) ->sum('likes'); // 总访问量 $totalViews = Articles::where('delete_time', null) + ->where('tid', $this->getTenantId()) ->where('status', 2) ->sum('views'); // 热门内容TOP5 $hotArticles = Articles::where('delete_time', null) + ->where('tid', $this->getTenantId()) ->where('status', 2) ->order('views', 'desc') ->limit(5) @@ -100,7 +106,9 @@ class AnalyticsController extends BaseController { try { $stats = [ - 'total_users' => AdminUser::where('delete_time', null)->count(), + 'total_users' => AdminUser::where('delete_time', null) + ->where('tid', $this->getTenantId()) + ->count(), ]; // 记录操作日志 $this->logSuccess('用户统计', '获取用户统计', ['data' => $stats]); diff --git a/app/admin/controller/Cms/Article/ArticleController.php b/app/admin/controller/Cms/Article/ArticleController.php index 67775de..7e2d30f 100644 --- a/app/admin/controller/Cms/Article/ArticleController.php +++ b/app/admin/controller/Cms/Article/ArticleController.php @@ -11,6 +11,7 @@ use think\facade\Session; use think\response\Json; use think\db\exception\DbException; use app\model\Cms\Articles; +use app\model\System\AdminUser; class ArticleController extends BaseController { @@ -22,18 +23,20 @@ class ArticleController extends BaseController * @param int $pageSize 每页条数(默认10) * @return Json */ - public function getArticlesList(string $keyword = '', string $cate = '', int $page = 1, int $pageSize = 10): Json + public function getArticlesList(string $author = '', string $keyword = '', string $cate = '', int $page = 1, int $pageSize = 10): Json { try { // 安全处理参数(防止非法参数) $page = max(1, $page); // 页码最小为1 $pageSize = max(1, min(100, $pageSize)); // 每页条数限制1-100条 + $author = trim($author); $keyword = trim($keyword); $cate = trim($cate); // 输出参数值 trace('查询参数:', 'debug'); trace([ + 'author' => $author, 'keyword' => $keyword, 'cate' => $cate, 'page' => $page, @@ -51,6 +54,11 @@ class ArticleController extends BaseController if ($keyword) { $query->where('a.title', 'like', '%' . $keyword . '%'); } + + // 作者筛选 + if ($author) { + $query->where('a.publisher', 'like', '%' . $author . '%'); + } // 分类筛选 if ($cate) { @@ -208,10 +216,17 @@ class ArticleController extends BaseController public function getArticle(int $id): Json { try { - $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(); + $article = Articles::alias('a') + ->where('a.id', $id) + ->where('a.tid', $this->getTenantId()) + ->leftJoin('mete_admin_user u', 'a.publisher = u.id') + ->field('a.id,a.title,a.cate,a.image,a.desc,a.author,a.content,a.is_trans,a.transurl,a.views,a.likes,u.name as publisher_name,a.create_time,a.publish_date,a.update_time') + ->find() + ->toArray(); + + // 将 publisher_name 赋值给 publisher + $article['publisher'] = $article['publisher_name'] ?? ''; + unset($article['publisher_name']); if (!$article) { return json(['code' => 404, 'msg' => '文章不存在', 'data' => null]); diff --git a/app/admin/controller/BannerController.php b/app/admin/controller/Cms/Banner/BannerController.php similarity index 90% rename from app/admin/controller/BannerController.php rename to app/admin/controller/Cms/Banner/BannerController.php index d6c45f7..fb37f0a 100644 --- a/app/admin/controller/BannerController.php +++ b/app/admin/controller/Cms/Banner/BannerController.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace app\admin\controller; +namespace app\admin\controller\Cms\Banner; use app\admin\BaseController; use think\exception\ValidateException; @@ -10,7 +10,7 @@ use think\facade\Db; use think\facade\Session; use think\response\Json; use think\db\exception\DbException; -use app\model\Banner; +use app\model\Cms\Banner; class BannerController extends BaseController { @@ -22,6 +22,7 @@ class BannerController extends BaseController { try { $banners = Banner::where('delete_time', null) + ->where('tid', $this->getTenantId()) ->order('sort', 'asc') ->field('id, title, desc, url, image, sort, create_time, update_time') ->select() @@ -66,6 +67,7 @@ class BannerController extends BaseController // 准备Banner数据 $bannerData = [ 'title' => $data['title'], + 'tid' => $this->getTenantId(), 'desc' => $data['desc'] ?? '', 'url' => $data['url'] ?? '', 'image' => $data['image'] ?? '', @@ -127,8 +129,9 @@ class BannerController extends BaseController 'sort|排序号' => 'integer', ]); - // 检查Banner是否存在 + // 检查Banner是否存在(验证tid) $banner = Banner::where('id', $id) + ->where('tid', $this->getTenantId()) ->where('delete_time', null) ->find(); @@ -150,10 +153,14 @@ class BannerController extends BaseController ]; // 执行更新 - Banner::where('id', $id)->update($updateData); + Banner::where('id', $id) + ->where('tid', $this->getTenantId()) + ->update($updateData); // 获取更新后的Banner信息 - $updatedBanner = Banner::where('id', $id)->find(); + $updatedBanner = Banner::where('id', $id) + ->where('tid', $this->getTenantId()) + ->find(); // 记录操作日志 $this->logSuccess('Banner管理', '更新Banner', ['id' => $id]); @@ -187,8 +194,9 @@ class BannerController extends BaseController public function deleteBanner(int $id) { try { - // 检查Banner是否存在 + // 检查Banner是否存在(验证tid) $banner = Banner::where('id', $id) + ->where('tid', $this->getTenantId()) ->where('delete_time', null) ->find(); @@ -201,6 +209,7 @@ class BannerController extends BaseController // 逻辑删除Banner $result = Banner::where('id', $id) + ->where('tid', $this->getTenantId()) ->where('delete_time', null) ->update([ 'delete_time' => time(), diff --git a/app/admin/controller/Cms/Demand/DemandController.php b/app/admin/controller/Cms/Demand/DemandController.php index a07bf19..c65a351 100644 --- a/app/admin/controller/Cms/Demand/DemandController.php +++ b/app/admin/controller/Cms/Demand/DemandController.php @@ -4,7 +4,7 @@ declare(strict_types=1); namespace app\admin\controller\Cms\Demand; -use app\index\BaseController; +use app\admin\BaseController; use Symfony\Component\VarDumper\VarDumper; use think\exception\ValidateException; use think\facade\Request; @@ -26,6 +26,7 @@ class DemandController extends BaseController { // 查询分类 $demandList = Demand::where('delete_time', null) + ->where('tid', $this->getTenantId()) ->order('id', 'desc') ->select(); @@ -52,7 +53,7 @@ class DemandController extends BaseController { try { $data = Request::only(['title', 'desc', 'applicant', 'status']); - + // 验证数据 if (empty($data['title']) || empty($data['desc'])) { return json([ @@ -60,15 +61,16 @@ class DemandController extends BaseController 'msg' => '标题和描述不能为空', ]); } - + // 创建需求 $demand = Demand::create([ 'title' => $data['title'], 'desc' => $data['desc'], 'applicant' => $data['applicant'] ?? '', 'status' => $data['status'] ?? 'pending', + 'tid' => $this->getTenantId(), ]); - + return json([ 'code' => 200, 'msg' => '添加成功', @@ -91,7 +93,7 @@ class DemandController extends BaseController try { $id = Request::param('id'); $data = Request::only(['title', 'desc', 'applicant', 'status']); - + // 验证数据 if (empty($id)) { return json([ @@ -99,23 +101,25 @@ class DemandController extends BaseController 'msg' => '需求ID不能为空', ]); } - + if (empty($data['title']) || empty($data['desc'])) { return json([ 'code' => 400, 'msg' => '标题和描述不能为空', ]); } - - // 查找需求 - $demand = Demand::find($id); + + // 查找需求(验证tid) + $demand = Demand::where('id', $id) + ->where('tid', $this->getTenantId()) + ->find(); if (!$demand) { return json([ 'code' => 404, 'msg' => '需求不存在', ]); } - + // 更新需求 $demand->save([ 'title' => $data['title'], @@ -123,7 +127,7 @@ class DemandController extends BaseController 'applicant' => $data['applicant'] ?? '', 'status' => $data['status'] ?? 'pending', ]); - + return json([ 'code' => 200, 'msg' => '编辑成功', @@ -145,7 +149,7 @@ class DemandController extends BaseController { try { $id = Request::param('id'); - + // 验证数据 if (empty($id)) { return json([ @@ -153,19 +157,21 @@ class DemandController extends BaseController 'msg' => '需求ID不能为空', ]); } - - // 查找需求 - $demand = Demand::find($id); + + // 查找需求(验证tid) + $demand = Demand::where('id', $id) + ->where('tid', $this->getTenantId()) + ->find(); if (!$demand) { return json([ 'code' => 404, 'msg' => '需求不存在', ]); } - + // 软删除 $demand->delete(); - + return json([ 'code' => 200, 'msg' => '删除成功', diff --git a/app/admin/controller/Cms/Domain/TenantDomainController.php b/app/admin/controller/Cms/Domain/TenantDomainController.php index 538ff66..20eaebf 100644 --- a/app/admin/controller/Cms/Domain/TenantDomainController.php +++ b/app/admin/controller/Cms/Domain/TenantDomainController.php @@ -21,14 +21,14 @@ class TenantDomainController extends BaseController { $page = $request->param('page', 1, 'int'); $pageSize = $request->param('pageSize', 10, 'int'); - $tenantId = $request->param('tenant_id', 0, 'int'); + $tenantId = $request->param('tid', 0, 'int'); $status = $request->param('status', ''); $subDomain = $request->param('sub_domain', ''); $where = [['delete_time', '=', null]]; if ($tenantId > 0) { - $where[] = ['tenant_id', '=', $tenantId]; + $where[] = ['tid', '=', $tenantId]; } if ($status !== '' && $status !== null) { $where[] = ['status', '=', $status]; @@ -49,7 +49,7 @@ class TenantDomainController extends BaseController ->count(); // 获取租户名称 - $tenantIds = array_column($list, 'tenant_id'); + $tenantIds = array_column($list, 'tid'); $tenants = []; if ($tenantIds) { $tenantList = Db::name('mete_tenant') @@ -61,7 +61,7 @@ class TenantDomainController extends BaseController // 附加租户名称 foreach ($list as &$item) { - $item['tenant_name'] = $tenants[$item['tenant_id']]['tenant_name'] ?? ''; + $item['tenant_name'] = $tenants[$item['tid']]['tenant_name'] ?? ''; } return json([ @@ -89,7 +89,7 @@ class TenantDomainController extends BaseController } $list = Db::name('mete_tenant_domain') - ->where('tenant_id', $tid) + ->where('tid', $tid) ->where('delete_time', null) ->order('id', 'desc') ->select() @@ -107,7 +107,7 @@ class TenantDomainController extends BaseController */ public function apply(Request $request) { - $tid = $request->param('tenant_id', 0, 'int'); + $tid = $request->param('tid', 0, 'int'); $subDomain = $request->param('sub_domain', ''); $mainDomain = $request->param('main_domain', ''); @@ -172,7 +172,7 @@ class TenantDomainController extends BaseController $now = date('Y-m-d H:i:s'); $id = Db::name('mete_tenant_domain')->insertGetId([ - 'tenant_id' => $tid, + 'tid' => $tid, 'sub_domain' => $subDomain, 'main_domain' => $mainDomain, 'full_domain' => $fullDomain, diff --git a/app/admin/controller/FrontMenuController.php b/app/admin/controller/Cms/FrontMenu/FrontMenuController.php similarity index 96% rename from app/admin/controller/FrontMenuController.php rename to app/admin/controller/Cms/FrontMenu/FrontMenuController.php index f42cf50..208d577 100644 --- a/app/admin/controller/FrontMenuController.php +++ b/app/admin/controller/Cms/FrontMenu/FrontMenuController.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace app\admin\controller; +namespace app\admin\controller\Cms\FrontMenu; use app\admin\BaseController; use think\exception\ValidateException; @@ -10,7 +10,7 @@ use think\facade\Db; use think\facade\Session; use think\response\Json; use think\db\exception\DbException; -use app\model\FrontMenu; +use app\model\Cms\FrontMenu; class FrontMenuController extends BaseController { @@ -23,6 +23,7 @@ class FrontMenuController extends BaseController try { // 获取所有未删除的菜单 $frontMenus = FrontMenu::where('delete_time', null) + ->where('tid', $this->getTenantId()) ->field('id,pid,title,type,image,path,component_path,sort,desc') ->order('sort', 'desc') ->select() @@ -69,6 +70,7 @@ class FrontMenuController extends BaseController // 准备菜单数据 $menuData = [ 'pid' => $data['pid'] ?? 0, + 'tid' => $this->getTenantId(), 'title' => $data['title'], 'type' => $data['type'], 'sort' => $data['sort'] ?? 0, @@ -130,6 +132,7 @@ class FrontMenuController extends BaseController // 准备更新数据 $updateData = [ 'title' => $data['title'], + 'tid' => $this->getTenantId(), 'pid' => $data['pid'] ?? null, 'type' => $data['type'], 'path' => $data['path'] ?? null, @@ -177,6 +180,7 @@ class FrontMenuController extends BaseController try { // 检查是否有子前端导航 $hasChildren = FrontMenu::where('pid', $id) + ->where('tid', $this->getTenantId()) ->where('pid', $id) ->where('delete_time', null) ->count() > 0; @@ -192,6 +196,7 @@ class FrontMenuController extends BaseController $result = FrontMenu::where('id', $id) ->where('id', $id) ->where('delete_time', null) + ->where('tid', $this->getTenantId()) ->update([ 'delete_time' => date('Y-m-d H:i:s'), 'update_time' => date('Y-m-d H:i:s') diff --git a/app/admin/controller/OnePageController.php b/app/admin/controller/Cms/OnePage/OnePageController.php similarity index 93% rename from app/admin/controller/OnePageController.php rename to app/admin/controller/Cms/OnePage/OnePageController.php index dead813..feb1557 100644 --- a/app/admin/controller/OnePageController.php +++ b/app/admin/controller/Cms/OnePage/OnePageController.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace app\admin\controller; +namespace app\admin\controller\Cms\OnePage; use app\admin\BaseController; use think\exception\ValidateException; @@ -10,7 +10,7 @@ use think\facade\Db; use think\facade\Session; use think\response\Json; use think\db\exception\DbException; -use app\model\OnePage; +use app\model\Cms\OnePage; class OnePageController extends BaseController { @@ -22,6 +22,7 @@ class OnePageController extends BaseController { try { $onePages = OnePage::where('delete_time', null) + ->where('tid', $this->getTenantId()) ->order('sort', 'asc') ->field('id, title, content, path, sort, status, create_time, update_time') ->select() @@ -69,6 +70,7 @@ class OnePageController extends BaseController // 检查路由是否已存在 $exists = OnePage::where('path', $data['path']) + ->where('tid', $this->getTenantId()) ->where('delete_time', null) ->find(); if ($exists) { @@ -85,6 +87,7 @@ class OnePageController extends BaseController 'path' => $data['path'], 'sort' => $data['sort'] ?? 0, 'status' => $data['status'] ?? 1, + 'tid' => $this->getTenantId(), 'create_time' => date('Y-m-d H:i:s'), ]; @@ -150,8 +153,9 @@ class OnePageController extends BaseController ]); } - // 检查单页是否存在 + // 检查单页是否存在(验证tid) $onePage = OnePage::where('id', $id) + ->where('tid', $this->getTenantId()) ->where('delete_time', null) ->find(); @@ -165,6 +169,7 @@ class OnePageController extends BaseController // 检查路由是否被其他单页使用 $exists = OnePage::where('path', $data['path']) ->where('id', '<>', $id) + ->where('tid', $this->getTenantId()) ->where('delete_time', null) ->find(); if ($exists) { @@ -222,8 +227,9 @@ class OnePageController extends BaseController public function deleteOnePage(int $id) { try { - // 检查单页是否存在 + // 检查单页是否存在(验证tid) $onePage = OnePage::where('id', $id) + ->where('tid', $this->getTenantId()) ->where('delete_time', null) ->find(); @@ -236,6 +242,7 @@ class OnePageController extends BaseController // 逻辑删除单页 $result = OnePage::where('id', $id) + ->where('tid', $this->getTenantId()) ->where('delete_time', null) ->update([ 'delete_time' => date('Y-m-d H:i:s'), diff --git a/app/admin/controller/Cms/Theme/ThemeController.php b/app/admin/controller/Cms/Theme/ThemeController.php index c6f2a8c..dd5c9e8 100644 --- a/app/admin/controller/Cms/Theme/ThemeController.php +++ b/app/admin/controller/Cms/Theme/ThemeController.php @@ -8,6 +8,7 @@ use app\admin\BaseController; use app\service\ThemeService; use think\facade\Request; + /** * 模板管理控制器 */ diff --git a/app/admin/controller/Erp/EmployeeController.php b/app/admin/controller/Erp/EmployeeController.php index bfdb97a..a40c8be 100644 --- a/app/admin/controller/Erp/EmployeeController.php +++ b/app/admin/controller/Erp/EmployeeController.php @@ -11,7 +11,7 @@ use think\facade\Session; use think\response\Json; use think\db\exception\DbException; use app\model\Erp\Employee; -use app\model\AdminUser; +use app\model\System\AdminUser; class EmployeeController extends BaseController { @@ -20,13 +20,13 @@ class EmployeeController extends BaseController */ public function getEmployee() { - $tenantId = $this->getTenantId(); - if (!$tenantId) { + $tid = $this->getTenantId(); + if (!$tid) { return json(['code' => 403, 'msg' => '无法获取租户信息']); } $list = Employee::where('delete_time', null) - ->where('tenant_id', $tenantId) + ->where('tid', $tid) ->select() ->toArray(); return json([ @@ -41,14 +41,14 @@ class EmployeeController extends BaseController */ public function getEmployeeDetail($id) { - $tenantId = $this->getTenantId(); - if (!$tenantId) { + $tid = $this->getTenantId(); + if (!$tid) { return json(['code' => 403, 'msg' => '无法获取租户信息']); } $detail = Employee::where('id', $id) ->where('delete_time', null) - ->where('tenant_id', $tenantId) + ->where('tid', $tid) ->find() ->toArray(); return json([ @@ -63,13 +63,13 @@ class EmployeeController extends BaseController */ public function createEmployee() { - $tenantId = $this->getTenantId(); - if (!$tenantId) { + $tid = $this->getTenantId(); + if (!$tid) { return json(['code' => 403, 'msg' => '无法获取租户信息']); } $data = $this->request->post(); - $data['tenant_id'] = $tenantId; + $data['tid'] = $tid; $employee = Employee::create($data); if ($employee) { @@ -91,16 +91,16 @@ class EmployeeController extends BaseController */ public function editEmployee($id) { - $tenantId = $this->getTenantId(); - if (!$tenantId) { + $tid = $this->getTenantId(); + if (!$tid) { return json(['code' => 403, 'msg' => '无法获取租户信息']); } $data = $this->request->post(); - unset($data['tenant_id']); // 不允许修改租户ID + unset($data['tid']); // 不允许修改租户ID $employee = Employee::where('id', $id) - ->where('tenant_id', $tenantId) + ->where('tid', $tid) ->update($data); if ($employee !== false) { return json([ @@ -121,13 +121,13 @@ class EmployeeController extends BaseController */ public function deleteEmployee($id) { - $tenantId = $this->getTenantId(); - if (!$tenantId) { + $tid = $this->getTenantId(); + if (!$tid) { return json(['code' => 403, 'msg' => '无法获取租户信息']); } $employee = Employee::where('id', $id) - ->where('tenant_id', $tenantId) + ->where('tid', $tid) ->update(['delete_time' => date('Y-m-d H:i:s')]); if ($employee) { return json([ diff --git a/app/admin/controller/Erp/OrganizationController.php b/app/admin/controller/Erp/OrganizationController.php index 6bd3a04..19f1ed1 100644 --- a/app/admin/controller/Erp/OrganizationController.php +++ b/app/admin/controller/Erp/OrganizationController.php @@ -11,7 +11,7 @@ use think\facade\Session; use think\response\Json; use think\db\exception\DbException; use app\model\Erp\Organization; -use app\model\AdminUser; +use app\model\System\AdminUser; class OrganizationController extends BaseController { @@ -20,13 +20,13 @@ class OrganizationController extends BaseController */ public function getOrganization() { - $tenantId = $this->getTenantId(); - if (!$tenantId) { + $tid = $this->getTenantId(); + if (!$tid) { return json(['code' => 403, 'msg' => '无法获取租户信息']); } $list = Organization::where('delete_time', null) - ->where('tenant_id', $tenantId) + ->where('tid', $tid) ->select() ->toArray(); return json([ @@ -41,14 +41,14 @@ class OrganizationController extends BaseController */ public function getOrganizationDetail($id) { - $tenantId = $this->getTenantId(); - if (!$tenantId) { + $tid = $this->getTenantId(); + if (!$tid) { return json(['code' => 403, 'msg' => '无法获取租户信息']); } $detail = Organization::where('id', $id) ->where('delete_time', null) - ->where('tenant_id', $tenantId) + ->where('tid', $tid) ->find() ->toArray(); $detail['leader_name'] = AdminUser::where('id', $detail['leader_id'])->value('name'); @@ -65,13 +65,13 @@ class OrganizationController extends BaseController */ public function createOrganization() { - $tenantId = $this->getTenantId(); - if (!$tenantId) { + $tid = $this->getTenantId(); + if (!$tid) { return json(['code' => 403, 'msg' => '无法获取租户信息']); } $data = $this->request->post(); - $data['tenant_id'] = $tenantId; + $data['tid'] = $tid; $organization = Organization::create($data); if ($organization) { @@ -93,16 +93,16 @@ class OrganizationController extends BaseController */ public function editOrganization($id) { - $tenantId = $this->getTenantId(); - if (!$tenantId) { + $tid = $this->getTenantId(); + if (!$tid) { return json(['code' => 403, 'msg' => '无法获取租户信息']); } $data = $this->request->post(); - unset($data['tenant_id']); // 不允许修改租户ID + unset($data['tid']); // 不允许修改租户ID $organization = Organization::where('id', $id) - ->where('tenant_id', $tenantId) + ->where('tid', $tid) ->update($data); if ($organization !== false) { return json([ @@ -123,13 +123,13 @@ class OrganizationController extends BaseController */ public function deleteOrganization($id) { - $tenantId = $this->getTenantId(); - if (!$tenantId) { + $tid = $this->getTenantId(); + if (!$tid) { return json(['code' => 403, 'msg' => '无法获取租户信息']); } $organization = Organization::where('id', $id) - ->where('tenant_id', $tenantId) + ->where('tid', $tid) ->update(['delete_time' => date('Y-m-d H:i:s')]); if ($organization) { return json([ @@ -149,12 +149,12 @@ class OrganizationController extends BaseController */ public function getCompanys() { - $tenantId = $this->getTenantId(); - if (!$tenantId) { + $tid = $this->getTenantId(); + if (!$tid) { return json(['code' => 403, 'msg' => '无法获取租户信息']); } - $where = [['delete_time', '=', null], ['is_company', '=', 1], ['tenant_id', '=', $tenantId]]; + $where = [['delete_time', '=', null], ['is_company', '=', 1], ['tid', '=', $tid]]; $list = Organization::where($where)->select()->toArray(); return json([ @@ -169,14 +169,14 @@ class OrganizationController extends BaseController */ public function getDepartments() { - $tenantId = $this->getTenantId(); - if (!$tenantId) { + $tid = $this->getTenantId(); + if (!$tid) { return json(['code' => 403, 'msg' => '无法获取租户信息']); } $parentId = input('parent_id/d', 0); - $where = [['delete_time', '=', null], ['is_company', '=', 0], ['tenant_id', '=', $tenantId]]; + $where = [['delete_time', '=', null], ['is_company', '=', 0], ['tid', '=', $tid]]; if ($parentId > 0) { $where[] = ['parent_id', '=', $parentId]; diff --git a/app/admin/controller/LoginController.php b/app/admin/controller/LoginController.php index 217afcb..fafa7d2 100644 --- a/app/admin/controller/LoginController.php +++ b/app/admin/controller/LoginController.php @@ -11,10 +11,11 @@ use think\facade\Cache; use think\response\Json; use app\service\JwtService; -use app\model\AdminUser; -use app\model\AdminUserGroup; +use app\model\System\AdminUser; +use app\model\System\AdminUserGroup; use app\model\System\SystemSiteSettings; use app\model\Tenant\Tenant; +use app\model\System\OperationLog; class LoginController extends BaseController { @@ -76,12 +77,12 @@ class LoginController extends BaseController 'msg' => '租户不存在或已禁用' ]); } - $tenant_id = $tenant->id; + $tid = $tenant->id; $tenant_name = $tenant->tenant_name; // 5. 查询用户(新增:关联租户ID,确保用户属于该租户) $user = AdminUser::where('account', $data['account']) - ->where('tenant_id', $tenant_id) // 核心:验证用户所属租户 + ->where('tid', $tid) // 核心:验证用户所属租户 ->where('status', 1) ->find(); @@ -121,7 +122,7 @@ class LoginController extends BaseController 'account' => $user['account'], 'name' => $user['name'], 'group_id' => $user['group_id'], - 'tenant_id' => $tenant_id, // 新增:租户ID + 'tid' => $tid, // 新增:租户ID 'tenant' => $tenant // 新增:租户名称 ]; @@ -146,7 +147,7 @@ class LoginController extends BaseController // 11. 写入用户数据缓存(核心:缓存包含租户信息,示例用Redis,可根据你的缓存工具调整) try { - $cacheKey = 'admin_user_' . $user['id'] . '_' . $tenant_id; // 缓存键加入租户ID,避免多租户冲突 + $cacheKey = 'admin_user_' . $user['id'] . '_' . $tid; // 缓存键加入租户ID,避免多租户冲突 $cacheExpire = 86400 * 7; // 缓存7天,可根据需求调整 // 写入缓存(这里假设你使用thinkphp的Cache类,若用其他工具可替换) \think\facade\Cache::set($cacheKey, $userInfo, $cacheExpire); @@ -159,7 +160,7 @@ class LoginController extends BaseController try { $this->logSuccess('登录管理', '登录', [ 'id' => $user['id'], - 'tenant_id' => $tenant_id, + 'tid' => $tid, 'tenant' => $tenant ], $userInfo); } catch (\Exception $e) { @@ -209,7 +210,7 @@ class LoginController extends BaseController if ($userInfo && isset($userInfo['id'])) { $this->logSuccess('登录管理', '退出登录', ['result' => 'success'], $userInfo); } else { - \app\model\OperationLog::create([ + OperationLog::create([ 'user_id' => 0, 'user_account' => '', 'user_name' => '未知用户', diff --git a/app/admin/controller/MenuController.php b/app/admin/controller/MenuController.php index e72dc2e..d5c3af5 100644 --- a/app/admin/controller/MenuController.php +++ b/app/admin/controller/MenuController.php @@ -11,8 +11,8 @@ use think\facade\Session; use think\response\Json; use think\db\exception\DbException; use app\model\SystemMenu; -use app\model\AdminUser; -use app\model\AdminUserGroup; +use app\model\System\AdminUser; +use app\model\System\AdminUserGroup; class MenuController extends BaseController { diff --git a/app/admin/controller/ModuleCenterController.php b/app/admin/controller/ModuleCenterController.php index 06d25a8..eecc2d4 100644 --- a/app/admin/controller/ModuleCenterController.php +++ b/app/admin/controller/ModuleCenterController.php @@ -12,7 +12,7 @@ use think\response\Json; use app\model\SystemModuleCenter; use app\model\SystemModuleCategory; -use app\model\AdminUser; +use app\model\System\AdminUser; class ModuleCenterController extends BaseController { diff --git a/app/admin/controller/ModulesController.php b/app/admin/controller/ModulesController.php index 3224c4d..814ae29 100644 --- a/app/admin/controller/ModulesController.php +++ b/app/admin/controller/ModulesController.php @@ -7,7 +7,7 @@ namespace app\admin\controller; use app\admin\BaseController; use think\response\Json; use app\model\AdminModules; -use app\model\AdminUserGroup; +use app\model\System\AdminUserGroup; class ModulesController extends BaseController { diff --git a/app/admin/controller/OperationLog/OperationLogController.php b/app/admin/controller/OperationLog/OperationLogController.php index e033242..73c80c7 100644 --- a/app/admin/controller/OperationLog/OperationLogController.php +++ b/app/admin/controller/OperationLog/OperationLogController.php @@ -7,8 +7,8 @@ namespace app\admin\controller\OperationLog; use app\admin\BaseController; use think\facade\Request; use think\response\Json; -use app\model\OperationLog; -use app\model\AdminUser; +use app\model\System\OperationLog; +use app\model\System\AdminUser; class OperationLogController extends BaseController { @@ -28,7 +28,8 @@ class OperationLogController extends BaseController $startTime = Request::param('startTime/s', ''); $endTime = Request::param('endTime/s', ''); - $query = OperationLog::where('delete_time', null); + $query = OperationLog::where('delete_time', null) + ->where('tid', $this->getTenantId()); // 关键词搜索(用户姓名、URL) if ($keyword) { @@ -129,6 +130,7 @@ class OperationLogController extends BaseController { try { $log = OperationLog::where('id', $id) + ->where('tid', $this->getTenantId()) ->where('delete_time', null) ->find(); @@ -164,6 +166,7 @@ class OperationLogController extends BaseController { try { $log = OperationLog::where('id', $id) + ->where('tid', $this->getTenantId()) ->where('delete_time', null) ->find(); @@ -206,6 +209,7 @@ class OperationLogController extends BaseController } OperationLog::whereIn('id', $ids) + ->where('tid', $this->getTenantId()) ->where('delete_time', null) ->delete(); @@ -230,11 +234,13 @@ class OperationLogController extends BaseController try { // 获取模块列表 $modules = OperationLog::where('delete_time', null) + ->where('tid', $this->getTenantId()) ->group('module') ->column('module'); // 获取动作列表 $actions = OperationLog::where('delete_time', null) + ->where('tid', $this->getTenantId()) ->group('action') ->column('action'); diff --git a/app/admin/controller/OperationLog/OperationLogHelper.php b/app/admin/controller/OperationLog/OperationLogHelper.php index c180a1f..94f321c 100644 --- a/app/admin/controller/OperationLog/OperationLogHelper.php +++ b/app/admin/controller/OperationLog/OperationLogHelper.php @@ -2,7 +2,7 @@ namespace app\admin\controller\OperationLog; -use app\model\OperationLog; +use app\model\System\OperationLog; use think\facade\Request; use think\facade\Session; @@ -37,6 +37,7 @@ class OperationLogHelper $userId = $userInfo['id'] ?? 0; $userAccount = $userInfo['account'] ?? ''; $userName = $userInfo['name'] ?? ''; + $tid = $userInfo['tid'] ?? ($userInfo['tid'] ?? 0); // 获取请求信息 $method = Request::method(); @@ -52,6 +53,7 @@ class OperationLogHelper 'user_id' => $userId, 'user_account' => $userAccount, 'user_name' => $userName, + 'tid' => $tid, 'module' => $module, 'action' => $action, 'method' => $method, diff --git a/app/admin/controller/OperationLog/OperationLogger.php b/app/admin/controller/OperationLog/OperationLogger.php index fb4cb86..3ab180e 100644 --- a/app/admin/controller/OperationLog/OperationLogger.php +++ b/app/admin/controller/OperationLog/OperationLogger.php @@ -3,7 +3,7 @@ namespace app\admin\controller\OperationLog; use think\facade\Request; -use app\model\OperationLog; +use app\model\System\OperationLog; use app\service\JwtService; /** @@ -33,6 +33,7 @@ class OperationLogger $userId = $userInfo['id'] ?? 0; $userAccount = $userInfo['account'] ?? ''; $userName = $userInfo['name'] ?? ''; + $tid = $userInfo['tid'] ?? ($userInfo['tid'] ?? 0); if (empty($requestData)) { $requestData = Request::param(); @@ -49,6 +50,7 @@ class OperationLogger 'user_id' => $userId, 'user_account' => $userAccount, 'user_name' => $userName, + 'tid' => $tid, 'module' => $module, 'action' => $action, 'method' => $method, diff --git a/app/admin/controller/FileController.php b/app/admin/controller/System/FileController.php similarity index 60% rename from app/admin/controller/FileController.php rename to app/admin/controller/System/FileController.php index 033e295..75cc7ea 100644 --- a/app/admin/controller/FileController.php +++ b/app/admin/controller/System/FileController.php @@ -1,6 +1,6 @@ where('tid', $this->getTenantId()); if ($cate) { $query->where('cate', $cate); @@ -75,11 +76,20 @@ class FileController extends BaseController public function getUserCate() { try { - $cate = FilesCategory::where('delete_time', null)->field('id,name')->select(); + $tid = $this->getTenantId(); + + // 只根据 tid 筛选分类 + $cate = FilesCategory::where('delete_time', null) + ->where('tid', $tid) + ->field('id,name') + ->select(); // 获取每个分类下的文件数量 foreach ($cate as &$c) { - $c['total'] = Files::where('cate', $c['id'])->where('delete_time', null)->count(); + $c['total'] = Files::where('cate', $c['id']) + ->where('tid', $tid) + ->where('delete_time', null) + ->count(); } return json([ @@ -101,6 +111,7 @@ class FileController extends BaseController try { $data = Request::param(); $data['create_time'] = date('Y-m-d H:i:s'); + $data['tid'] = $this->getTenantId(); $id = FilesCategory::insertGetId($data); // 记录操作日志 @@ -129,7 +140,9 @@ class FileController extends BaseController { try { $data = Request::param(); - $result = FilesCategory::where('id', $id)->update(['name' => $data['name']]); + $result = FilesCategory::where('id', $id) + ->where('tid', $this->getTenantId()) + ->update(['name' => $data['name']]); // 记录操作日志 $this->logSuccess('文件管理', '重命名文件分组', ['id' => $id]); return json([ @@ -150,7 +163,21 @@ class FileController extends BaseController public function deleteFileCate($id) { try { - $result = FilesCategory::where('id', $id)->update(['delete_time' => date('Y-m-d H:i:s')]); + // 检查分组里是否有关联文件 + $fileCount = Files::where('cate', $id) + ->where('tid', $this->getTenantId()) + ->where('delete_time', null) + ->count(); + if ($fileCount > 0) { + return json([ + 'code' => 400, + 'msg' => '该分组下还有 ' . $fileCount . ' 个文件,请先删除分组内文件!' + ]); + } + + $result = FilesCategory::where('id', $id) + ->where('tid', $this->getTenantId()) + ->update(['delete_time' => date('Y-m-d H:i:s')]); // 记录操作日志 $this->logSuccess('文件管理', '删除文件分组', ['id' => $id]); return json([ @@ -175,12 +202,16 @@ class FileController extends BaseController $pageSize = Request::param('pageSize/d', 10); $keyword = Request::param('keyword/s', ''); - $query = Files::where('cate', $id)->where('delete_time', null); + $query = Files::where('cate', $id) + ->where('tid', $this->getTenantId()) + ->where('delete_time', null); if ($keyword) { $query->whereLike('name', "%{$keyword}%"); } + // 获取总条数 + $total = $query->count(); $list = $query->page($page, $pageSize) ->order('create_time', 'desc') ->select(); @@ -196,6 +227,7 @@ class FileController extends BaseController 'msg' => 'success', 'data' => [ 'list' => $list, + 'total' => $total, 'page' => $page, 'pageSize' => $pageSize, 'categoryId' => $id @@ -209,7 +241,7 @@ class FileController extends BaseController } } - // 上传文件 + // 文件上传 public function uploadFile() { try { @@ -230,7 +262,10 @@ class FileController extends BaseController $fileMd5 = md5_file($file->getRealPath()); // 检查是否已存在相同文件 - $existFile = Files::where('md5', $fileMd5)->where('delete_time', null)->find(); + $existFile = Files::where('md5', $fileMd5) + ->where('tid', $this->getTenantId()) + ->where('delete_time', null) + ->find(); if ($existFile) { return json([ @@ -272,6 +307,7 @@ class FileController extends BaseController 'src' => $fileUrl, 'md5' => $fileMd5, 'uploader' => $userId, + 'tid' => $this->getTenantId(), 'create_time' => date('Y-m-d H:i:s'), ]; @@ -309,7 +345,10 @@ class FileController extends BaseController $data['update_time'] = date('Y-m-d H:i:s'); - $result = Files::where('id', $id)->where('delete_time', null)->update($data); + $result = Files::where('id', $id) + ->where('tid', $this->getTenantId()) + ->where('delete_time', null) + ->update($data); if ($result) { // 记录操作日志 @@ -329,7 +368,17 @@ class FileController extends BaseController public function deleteFile($id) { try { - $result = Files::where('id', $id)->update(['delete_time' => date('Y-m-d H:i:s')]); + // 先获取文件信息 + $file = Files::where('id', $id) + ->where('tid', $this->getTenantId()) + ->find(); + if (!$file) { + return json(['code' => 404, 'msg' => '文件不存在']); + } + + $result = Files::where('id', $id) + ->where('tid', $this->getTenantId()) + ->update(['delete_time' => date('Y-m-d H:i:s')]); if ($result) { // 记录操作日志 @@ -345,11 +394,49 @@ class FileController extends BaseController } } + //永久删除文件 + public function deleteFilePermanently($id) + { + try { + // 先获取文件信息 + $file = Files::where('id', $id) + ->where('tid', $this->getTenantId()) + ->find(); + if (!$file) { + return json(['code' => 404, 'msg' => '文件不存在']); + } + + // 删除服务器上的文件 + if ($file['src']) { + $this->deleteFileFromServer($file['src']); + } + + $result = Files::where('id', $id) + ->where('tid', $this->getTenantId()) + ->update(['delete_time' => date('Y-m-d H:i:s')]); + + if ($result) { + // 记录操作日志 + $this->logSuccess('文件管理', '永久删除文件', ['id' => $id]); + return json(['code' => 200, 'msg' => '永久删除成功']); + } + + return json(['code' => 404, 'msg' => '文件不存在']); + } catch (\Exception $e) { + // 记录失败日志 + $this->logFail('文件管理', '永久删除文件', $e->getMessage()); + return json(['code' => 500, 'msg' => '永久删除失败: ' . $e->getMessage()]); + } + } + // 下载文件 public function download($id) { try { - $file = Files::where('id', $id)->where('delete_time', null)->find(); + $file = Files::where('id', $id) + ->where('tid', $this->getTenantId()) + ->where('delete_time', null) + ->find(); if (!$file) { return json(['code' => 404, 'msg' => '文件不存在']); @@ -374,7 +461,9 @@ class FileController extends BaseController { try { $cate = Request::param('cate/d', 0); - $result = Files::where('id', $id)->update(['cate' => $cate]); + $result = Files::where('id', $id) + ->where('tid', $this->getTenantId()) + ->update(['cate' => $cate]); if ($result) { // 记录操作日志 $this->logSuccess('文件管理', '移动文件', ['id' => $id]); @@ -389,128 +478,120 @@ class FileController extends BaseController } } - - - // 上传头像 - public function uploadAvatar() + //删除服务器上文件 + private function deleteFileFromServer($fileUrl) { - try { - $file = Request::file('file'); - if (!$file) { - return json(['code' => 400, 'msg' => '请选择要上传的文件']); - } + // 去掉开头的 /storage/,得到相对路径 + $relativePath = ltrim($fileUrl, '/'); + if (strpos($relativePath, 'storage/') === 0) { + $relativePath = substr($relativePath, 8); // 去掉 'storage/' 部分 + } - // 验证文件大小和类型 - $maxSize = 50 * 1024 * 1024; // 50MB - $fileExt = strtolower($file->getOriginalExtension()); + // 获取实际服务器路径 + $fullPath = root_path() . 'public/storage/' . $relativePath; - if ($file->getSize() > $maxSize) { - return json(['code' => 400, 'msg' => '文件大小不能超过50MB']); - } - - // 计算文件MD5 - $fileMd5 = md5_file($file->getRealPath()); - - // 检查是否已存在相同文件 - $existFile = Files::where('md5', $fileMd5)->where('delete_time', null)->find(); - - if ($existFile) { - // 检查物理文件是否存在 - $existFilePath = public_path() . $existFile['src']; - if (!file_exists($existFilePath)) { - // 物理文件不存在,删除数据库记录,继续上传 - Files::where('id', $existFile['id'])->delete(); - } else { - return json([ - 'code' => 201, - 'msg' => '文件已存在', - 'data' => [ - 'url' => $existFile['src'], - 'id' => $existFile['id'], - 'name' => $existFile['name'] - ] - ]); - } - } - - // 确定文件类型 - $fileType = 1; // 默认为文件 - foreach ($this->allowedExtensions as $type => $extensions) { - if (in_array($fileExt, $extensions)) { - $fileType = $this->fileTypes[$type]; - break; - } - } - - $cate = Request::param('cate/d', 0); - // 生成按日期分类的目录结构 - $datePath = date('Y/m/d'); - $saveName = $datePath . '/' . uniqid() . '.' . $fileExt; - $fullPath = Filesystem::disk('public')->putFileAs('avatar', $file, $saveName); - $fileUrl = '/storage/' . str_replace('\\', '/', $fullPath); - - // 获取当前登录用户ID - $userId = Request::middleware('user_id', ''); - - // 保存文件信息到数据库 - $fileData = [ - 'name' => $file->getOriginalName(), - 'type' => $fileType, - 'cate' => $cate, - 'size' => $file->getSize(), - 'src' => $fileUrl, - 'md5' => $fileMd5, - 'uploader' => $userId, - 'create_time' => date('Y-m-d H:i:s'), - ]; - - $fileId = Files::insertGetId($fileData); - - // 记录操作日志 - $this->logSuccess('文件管理', '上传图片', ['id' => $fileId]); - return json([ - 'code' => 200, - 'msg' => '上传成功', - 'data' => [ - 'url' => $fileUrl, - 'id' => $fileId, - 'name' => $fileData['name'] - ] - ]); - } catch (\Exception $e) { - // 记录失败日志 - $this->logFail('文件管理', '上传图片', $e->getMessage()); - return json([ - 'code' => 500, - 'msg' => '上传失败: ' . $e->getMessage() - ]); + if (file_exists($fullPath)) { + unlink($fullPath); } } - // 更新头像 - public function updateAvatar($id) + // 批量删除文件 + public function batchDeleteFiles() { try { - $data = Request::only(['name', 'cate']); - if (empty($data)) { - return json(['code' => 400, 'msg' => '无更新数据']); + $ids = Request::param('ids/a', []); + + if (empty($ids)) { + return json(['code' => 400, 'msg' => '请选择要删除的文件']); } - $data['update_time'] = date('Y-m-d H:i:s'); + foreach ($ids as $id) { + $file = Files::where('id', $id) + ->where('tid', $this->getTenantId()) + ->find(); + if ($file && $file['src']) { + $this->deleteFileFromServer($file['src']); + } + } - $result = Files::where('id', $id)->where('delete_time', null)->update($data); + $result = Files::where('id', 'in', $ids) + ->where('tid', $this->getTenantId()) + ->update(['delete_time' => date('Y-m-d H:i:s')]); if ($result) { - // 记录操作日志 - $this->logSuccess('文件管理', '更新头像', ['id' => $id]); - return json(['code' => 200, 'msg' => '更新成功']); + $this->logSuccess('文件管理', '批量删除文件', ['ids' => $ids]); + return json(['code' => 200, 'msg' => '批量删除成功']); } - return json(['code' => 404, 'msg' => '头像不存在']); + return json(['code' => 404, 'msg' => '文件不存在']); } catch (\Exception $e) { - // 记录失败日志 - $this->logFail('文件管理', '更新头像', $e->getMessage()); - return json(['code' => 500, 'msg' => '更新失败: ' . $e->getMessage()]); + $this->logFail('文件管理', '批量删除文件', $e->getMessage()); + return json(['code' => 500, 'msg' => '批量删除失败: ' . $e->getMessage()]); + } + } + + // 批量彻底删除文件 + public function batchDeleteFilesPermanently() + { + try { + $ids = Request::param('ids/a', []); + + if (empty($ids)) { + return json(['code' => 400, 'msg' => '请选择要彻底删除的文件']); + } + + foreach ($ids as $id) { + $file = Files::where('id', $id) + ->where('tid', $this->getTenantId()) + ->find(); + if ($file && $file['src']) { + $this->deleteFileFromServer($file['src']); + } + } + + $result = Files::where('id', 'in', $ids) + ->where('tid', $this->getTenantId()) + ->force(true) + ->update(['delete_time' => date('Y-m-d H:i:s')]) + ->delete(); + + if ($result) { + $this->logSuccess('文件管理', '批量彻底删除文件', ['ids' => $ids]); + return json(['code' => 200, 'msg' => '批量彻底删除成功']); + } + + return json(['code' => 404, 'msg' => '文件不存在']); + } catch (\Exception $e) { + $this->logFail('文件管理', '批量彻底删除文件', $e->getMessage()); + return json(['code' => 500, 'msg' => '批量彻底删除失败: ' . $e->getMessage()]); + } + } + + // 批量移动文件 + public function batchMoveFiles() + { + try { + $ids = Request::param('ids/a', []); + $cate = Request::param('cate/d', 0); + + if (empty($ids)) { + return json(['code' => 400, 'msg' => '请选择要移动的文件']); + } + + $result = Files::where('id', 'in', $ids) + ->where('tid', $this->getTenantId()) + ->update(['cate' => $cate]); + + if ($result) { + $this->logSuccess('文件管理', '批量移动文件', ['ids' => $ids, 'cate' => $cate]); + return json(['code' => 200, 'msg' => '批量移动成功']); + } + + return json(['code' => 404, 'msg' => '文件不存在']); + } catch (\Exception $e) { + $this->logFail('文件管理', '批量移动文件', $e->getMessage()); + return json(['code' => 500, 'msg' => '批量移动失败: ' . $e->getMessage()]); } } } + diff --git a/app/admin/controller/RoleController.php b/app/admin/controller/System/RoleController.php similarity index 90% rename from app/admin/controller/RoleController.php rename to app/admin/controller/System/RoleController.php index 163b957..a57bf5d 100644 --- a/app/admin/controller/RoleController.php +++ b/app/admin/controller/System/RoleController.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace app\admin\controller; +namespace app\admin\controller\System; use app\admin\BaseController; use think\exception\ValidateException; @@ -10,8 +10,8 @@ use think\facade\Db; use think\facade\Session; use think\response\Json; -use app\model\AdminUser; -use app\model\AdminUserGroup; +use app\model\System\AdminUser; +use app\model\System\AdminUserGroup; class RoleController extends BaseController { @@ -21,7 +21,11 @@ class RoleController extends BaseController */ public function getAllRoles() { + $tid = $this->getTenantId(); $roles = AdminUserGroup::where('delete_time', null) + ->where(function ($query) use ($tid) { + $query->where('tid', $tid)->whereOr('tid', 0); + }) ->order('id', 'asc') ->select(); return json([ @@ -39,6 +43,7 @@ class RoleController extends BaseController public function getRoleById(int $id) { $role = AdminUserGroup::where('id', $id) + ->where('tid', $this->getTenantId()) ->where('delete_time', null) ->find(); if (!$role) { @@ -73,6 +78,7 @@ class RoleController extends BaseController // 检查角色名称是否已存在 $exists = AdminUserGroup::where('name', $data['name']) + ->where('tid', $this->getTenantId()) ->where('delete_time', null) ->find(); if ($exists) { @@ -85,6 +91,7 @@ class RoleController extends BaseController // 准备数据 $roleData = [ 'name' => $data['name'], + 'tid' => $this->getTenantId(), 'status' => $data['status'] ?? 1, 'rights' => !empty($data['rights']) ? json_encode($data['rights']) : null, 'create_time' => date('Y-m-d H:i:s'), @@ -136,8 +143,9 @@ class RoleController extends BaseController 'rights|权限' => 'array' ]); - // 查找角色 + // 查找角色(验证tid) $role = AdminUserGroup::where('id', $id) + ->where('tid', $this->getTenantId()) ->where('delete_time', null) ->find(); if (!$role) { @@ -150,6 +158,7 @@ class RoleController extends BaseController // 检查角色名称是否已被其他角色使用 $exists = AdminUserGroup::where('name', $data['name']) ->where('id', '<>', $id) + ->where('tid', $this->getTenantId()) ->where('delete_time', null) ->find(); if ($exists) { @@ -206,8 +215,9 @@ class RoleController extends BaseController ]); } - // 查找角色 + // 查找角色(验证tid) $role = AdminUserGroup::where('id', $id) + ->where('tid', $this->getTenantId()) ->where('delete_time', null) ->find(); if (!$role) { @@ -219,6 +229,7 @@ class RoleController extends BaseController // 检查是否有用户正在使用该角色 $userCount = AdminUser::where('group_id', $id) + ->where('tid', $this->getTenantId()) ->where('delete_time', null) ->count(); if ($userCount > 0) { diff --git a/app/admin/controller/Tenant/TenantController.php b/app/admin/controller/Tenant/TenantController.php index 5edd15f..8ee42ad 100644 --- a/app/admin/controller/Tenant/TenantController.php +++ b/app/admin/controller/Tenant/TenantController.php @@ -12,7 +12,7 @@ use think\response\Json; use think\db\exception\DbException; use think\Request; use app\model\Tenant\Tenant; -use app\model\AdminUser; +use app\model\System\AdminUser; use app\model\Template\TemplateSiteConfig; class TenantController extends BaseController diff --git a/app/admin/controller/UserController.php b/app/admin/controller/UserController.php index 21feffe..a2132a6 100644 --- a/app/admin/controller/UserController.php +++ b/app/admin/controller/UserController.php @@ -10,7 +10,7 @@ use think\facade\Db; use think\facade\Session; use think\response\Json; -use app\model\AdminUser; +use app\model\System\AdminUser; class UserController extends BaseController { @@ -37,7 +37,7 @@ class UserController extends BaseController */ public function getTenantUsers(int $tenantId) { - $users = AdminUser::where('delete_time', null)->where('tenant_id', $tenantId)->field('id, account, name, phone, birth, email, qq, sex, group_id, status, last_login_ip, login_count, create_time, update_time')->select()->toArray(); + $users = AdminUser::where('delete_time', null)->where('tid', $tenantId)->field('id, account, name, phone, birth, email, qq, sex, group_id, status, last_login_ip, login_count, create_time, update_time')->select()->toArray(); return json([ 'code' => 200, 'msg' => '获取成功', @@ -107,7 +107,7 @@ class UserController extends BaseController $data['update_time'] = $data['create_time']; $data['group_id'] = 2; - if (!isset($data['tenant_id']) || empty($data['tenant_id'])) { + if (!isset($data['tid']) || empty($data['tid'])) { return json([ 'code' => 400, 'msg' => '租户ID不能为空' diff --git a/app/admin/route/routes/analytics.php b/app/admin/route/routes/analytics.php index a23b2f1..373bb10 100644 --- a/app/admin/route/routes/analytics.php +++ b/app/admin/route/routes/analytics.php @@ -2,5 +2,5 @@ use think\facade\Route; // 数据统计路由 -Route::get('contentstats', 'app\\admin\\controller\\AnalyticsController@getContentStats'); -Route::get('usersstats', 'app\\admin\\controller\\AnalyticsController@getUserStats'); +Route::get('contentstats', 'app\\admin\\controller\\Cms\\Analytics\\AnalyticsController@getContentStats'); +Route::get('usersstats', 'app\\admin\\controller\\Cms\\Analytics\\AnalyticsController@getUserStats'); diff --git a/app/admin/route/routes/banner.php b/app/admin/route/routes/banner.php index 1986763..5f4c9c4 100644 --- a/app/admin/route/routes/banner.php +++ b/app/admin/route/routes/banner.php @@ -2,7 +2,7 @@ use think\facade\Route; // Banner路由 -Route::get('allbanners', 'app\\admin\\controller\\BannerController@getAllBanners'); -Route::post('createbanner', 'app\\admin\\controller\\BannerController@createBanner'); -Route::post('editbanner/:id', 'app\\admin\\controller\\BannerController@editBanner'); -Route::delete('deletebanner/:id', 'app\\admin\\controller\\BannerController@deleteBanner'); +Route::get('allbanners', 'app\\admin\\controller\\Cms\\Banner\\BannerController@getAllBanners'); +Route::post('createbanner', 'app\\admin\\controller\\Cms\\Banner\\BannerController@createBanner'); +Route::post('editbanner/:id', 'app\\admin\\controller\\Cms\\Banner\\BannerController@editBanner'); +Route::delete('deletebanner/:id', 'app\\admin\\controller\\Cms\\Banner\\BannerController@deleteBanner'); diff --git a/app/admin/route/routes/file.php b/app/admin/route/routes/file.php index 7d6bf76..ddd4628 100644 --- a/app/admin/route/routes/file.php +++ b/app/admin/route/routes/file.php @@ -2,16 +2,20 @@ use think\facade\Route; // 文件路由 -Route::get('usercate', 'app\\admin\\controller\\FileController@getUserCate'); -Route::get('allfiles', 'app\\admin\\controller\\FileController@getAllFiles'); -Route::get('catefiles/:id', 'app\\admin\\controller\\FileController@getCateFiles'); -Route::post('uploadfile', 'app\\admin\\controller\\FileController@uploadFile'); -Route::post('updatefile/:id', 'app\\admin\\controller\\FileController@updateFile'); -Route::delete('deletefile/:id', 'app\\admin\\controller\\FileController@deleteFile'); -Route::get('movefile/:id', 'app\\admin\\controller\\FileController@moveFile'); -Route::post('createfilecate', 'app\\admin\\controller\\FileController@createFileCate'); -Route::post('renamefilecate/:id', 'app\\admin\\controller\\FileController@renameFileCate'); -Route::delete('deletefilecate/:id', 'app\\admin\\controller\\FileController@deleteFileCate'); +Route::get('usercate', 'app\\admin\\controller\\System\\FileController@getUserCate'); +Route::get('allfiles', 'app\\admin\\controller\\System\\FileController@getAllFiles'); +Route::get('catefiles/:id', 'app\\admin\\controller\\System\\FileController@getCateFiles'); +Route::post('uploadfile', 'app\\admin\\controller\\System\\FileController@uploadFile'); +Route::post('updatefile/:id', 'app\\admin\\controller\\System\\FileController@updateFile'); +Route::delete('deletefile/:id', 'app\\admin\\controller\\System\\FileController@deleteFile'); +Route::get('movefile/:id', 'app\\admin\\controller\\System\\FileController@moveFile'); +Route::post('createfilecate', 'app\\admin\\controller\\System\\FileController@createFileCate'); +Route::post('renamefilecate/:id', 'app\\admin\\controller\\System\\FileController@renameFileCate'); +Route::delete('deletefilecate/:id', 'app\\admin\\controller\\System\\FileController@deleteFileCate'); -Route::post('uploadavatar', 'app\\admin\\controller\\FileController@uploadAvatar'); -Route::post('uploadavatar/:id', 'app\\admin\\controller\\FileController@updateAvatar'); \ No newline at end of file +Route::post('uploadavatar', 'app\\admin\\controller\\System\\FileController@uploadAvatar'); +Route::post('uploadavatar/:id', 'app\\admin\\controller\\System\\FileController@updateAvatar'); +Route::post('batchdeletefiles', 'app\\admin\\controller\\System\\FileController@batchDeleteFiles'); + +Route::post('batchDeleteFilesPermanently', 'app\\admin\\controller\\System\\FileController@batchDeleteFilesPermanently'); +Route::post('batchMoveFiles', 'app\\admin\\controller\\System\\FileController@batchMoveFiles'); \ No newline at end of file diff --git a/app/admin/route/routes/frontMenu.php b/app/admin/route/routes/frontMenu.php index dce0f74..1e590c7 100644 --- a/app/admin/route/routes/frontMenu.php +++ b/app/admin/route/routes/frontMenu.php @@ -2,7 +2,7 @@ use think\facade\Route; // 前端导航路由 -Route::get('frontmenus', 'app\\admin\\controller\\FrontMenuController@getFrontMenus'); -Route::post('createfrontmenu', 'app\\admin\\controller\\FrontMenuController@createFrontMenu'); -Route::post('editfrontmenu/:id', 'app\\admin\\controller\\FrontMenuController@editFrontMenu'); -Route::delete('deletefrontmenu/:id', 'app\\admin\\controller\\FrontMenuController@deleteFrontMenu'); +Route::get('frontmenus', 'app\\admin\\controller\\Cms\\FrontMenu\\FrontMenuController@getFrontMenus'); +Route::post('createfrontmenu', 'app\\admin\\controller\\Cms\\FrontMenu\\FrontMenuController@createFrontMenu'); +Route::post('editfrontmenu/:id', 'app\\admin\\controller\\Cms\\FrontMenu\\FrontMenuController@editFrontMenu'); +Route::delete('deletefrontmenu/:id', 'app\\admin\\controller\\Cms\\FrontMenu\\FrontMenuController@deleteFrontMenu'); diff --git a/app/admin/route/routes/onepage.php b/app/admin/route/routes/onepage.php index 530c61e..5e0efd9 100644 --- a/app/admin/route/routes/onepage.php +++ b/app/admin/route/routes/onepage.php @@ -2,7 +2,7 @@ use think\facade\Route; // 单页路由 -Route::get('allonepages', 'app\\admin\\controller\\OnePageController@getAllOnePages'); -Route::post('createonepage', 'app\\admin\\controller\\OnePageController@createOnePage'); -Route::post('editonepage/:id', 'app\\admin\\controller\\OnePageController@editOnePage'); -Route::delete('deleteonepage/:id', 'app\\admin\\controller\\OnePageController@deleteOnePage'); +Route::get('allonepages', 'app\\admin\\controller\\Cms\\OnePage\\OnePageController@getAllOnePages'); +Route::post('createonepage', 'app\\admin\\controller\\Cms\\OnePage\\OnePageController@createOnePage'); +Route::post('editonepage/:id', 'app\\admin\\controller\\Cms\\OnePage\\OnePageController@editOnePage'); +Route::delete('deleteonepage/:id', 'app\\admin\\controller\\Cms\\OnePage\\OnePageController@deleteOnePage'); diff --git a/app/admin/route/routes/role.php b/app/admin/route/routes/role.php index a1ff02e..c8f732f 100644 --- a/app/admin/route/routes/role.php +++ b/app/admin/route/routes/role.php @@ -2,8 +2,8 @@ use think\facade\Route; // 角色路由 -Route::get('allRoles', 'app\\admin\\controller\\RoleController@getAllRoles'); -Route::get('roles/:id', 'app\\admin\\controller\\RoleController@getRoleById'); -Route::post('roles', 'app\\admin\\controller\\RoleController@createRole'); -Route::put('roles/:id', 'app\\admin\\controller\\RoleController@updateRole'); -Route::delete('roles/:id', 'app\\admin\\controller\\RoleController@deleteRole'); +Route::get('allRoles', 'app\\admin\\controller\\System\\RoleController@getAllRoles'); +Route::get('roles/:id', 'app\\admin\\controller\\System\\RoleController@getRoleById'); +Route::post('roles', 'app\\admin\\controller\\System\\RoleController@createRole'); +Route::put('roles/:id', 'app\\admin\\controller\\System\\RoleController@updateRole'); +Route::delete('roles/:id', 'app\\admin\\controller\\System\\RoleController@deleteRole'); diff --git a/app/api/controller/LoginController.php b/app/api/controller/LoginController.php index 738e03c..dc422ee 100644 --- a/app/api/controller/LoginController.php +++ b/app/api/controller/LoginController.php @@ -11,7 +11,7 @@ use think\facade\Cache; use think\response\Json; use app\service\JwtService; -use app\model\AdminUser; +use app\model\System\AdminUser; use app\model\System\SystemSiteSettings; class LoginController extends BaseController @@ -80,7 +80,7 @@ class LoginController extends BaseController 'id' => $user['id'], 'account' => $user['account'], 'name' => $user['name'], - 'tenant_id' => $user['tenant_id'], + 'tid' => $user['tid'], 'group_id' => $user['group_id'] ]; diff --git a/app/api/controller/UserController.php b/app/api/controller/UserController.php index 5c89786..509e515 100644 --- a/app/api/controller/UserController.php +++ b/app/api/controller/UserController.php @@ -10,7 +10,7 @@ use think\facade\Db; use think\facade\Session; use think\response\Json; -use app\model\AdminUser; +use app\model\System\AdminUser; class UserController extends BaseController { diff --git a/app/common/middleware/DomainParse.php b/app/common/middleware/DomainParse.php index e2fe033..6c5614e 100644 --- a/app/common/middleware/DomainParse.php +++ b/app/common/middleware/DomainParse.php @@ -45,10 +45,10 @@ class DomainParse if ($tenantDomain) { // 将租户ID写入请求对象,供后续控制器使用 - $request->tenantId = $tenantDomain['tenant_id']; + $request->tenantId = $tenantDomain['tid']; // 同时写入header,方便前端获取 - $request->header['X-Tenant-Id', $tenantDomain['tenant_id']); + $request->header['X-Tenant-Id', $tenantDomain['tid']); } return $next($request); diff --git a/app/model/Banner.php b/app/model/Cms/Banner.php similarity index 91% rename from app/model/Banner.php rename to app/model/Cms/Banner.php index e7ec718..9193259 100644 --- a/app/model/Banner.php +++ b/app/model/Cms/Banner.php @@ -9,7 +9,7 @@ // | Author: Liu21st // +---------------------------------------------------------------------- -namespace app\model; +namespace app\model\Cms; use think\Model; use think\model\concern\SoftDelete; @@ -23,11 +23,12 @@ class Banner extends Model use SoftDelete; // 数据库表名 - protected $name = 'mete_banner'; + protected $name = 'mete_apps_cms_banner'; // 字段类型转换 protected $type = [ 'id' => 'integer', + 'tid' => 'integer', 'title' => 'string', 'desc' => 'string', 'url' => 'string', diff --git a/app/model/Cms/Demand.php b/app/model/Cms/Demand.php index 7a90997..056e940 100644 --- a/app/model/Cms/Demand.php +++ b/app/model/Cms/Demand.php @@ -23,7 +23,7 @@ class Demand extends Model use SoftDelete; // 数据库表名 - protected $name = 'mete_demand'; + protected $name = 'mete_apps_cms_demand'; // 字段类型转换 protected $type = [ diff --git a/app/model/FrontMenu.php b/app/model/Cms/FrontMenu.php similarity index 87% rename from app/model/FrontMenu.php rename to app/model/Cms/FrontMenu.php index bf4f384..33cb3aa 100644 --- a/app/model/FrontMenu.php +++ b/app/model/Cms/FrontMenu.php @@ -9,7 +9,7 @@ // | Author: Liu21st // +---------------------------------------------------------------------- -namespace app\model; +namespace app\model\Cms; use think\Model; use think\model\concern\SoftDelete; @@ -23,16 +23,19 @@ class FrontMenu extends Model use SoftDelete; // 数据库表名 - protected $name = 'mete_front_menu'; + protected $name = 'mete_apps_cms_front_menu'; // 字段类型转换 protected $type = [ 'id' => 'integer', 'pid' => 'integer', + 'tid' => 'integer', 'title' => 'string', + 'image' => 'string', 'type' => 'integer', 'path' => 'string', 'component_path' => 'string', + 'sort' => 'integer', 'desc' => 'string', 'create_time' => 'datetime', 'update_time' => 'datetime', diff --git a/app/model/OnePage.php b/app/model/Cms/OnePage.php similarity index 91% rename from app/model/OnePage.php rename to app/model/Cms/OnePage.php index 2909975..31cbc33 100644 --- a/app/model/OnePage.php +++ b/app/model/Cms/OnePage.php @@ -9,7 +9,7 @@ // | Author: Liu21st // +---------------------------------------------------------------------- -namespace app\model; +namespace app\model\Cms; use think\Model; use think\model\concern\SoftDelete; @@ -23,11 +23,12 @@ class OnePage extends Model use SoftDelete; // 数据库表名 - protected $name = 'mete_onepage'; + protected $name = 'mete_apps_cms_onepage'; // 字段类型转换 protected $type = [ 'id' => 'integer', + 'tid' => 'integer', 'title' => 'string', 'content' => 'string', 'path' => 'string', diff --git a/app/model/AdminUser.php b/app/model/Cms/TemplateSiteConfig.php similarity index 75% rename from app/model/AdminUser.php rename to app/model/Cms/TemplateSiteConfig.php index b882ffe..15788d7 100644 --- a/app/model/AdminUser.php +++ b/app/model/Cms/TemplateSiteConfig.php @@ -9,30 +9,28 @@ // | Author: Liu21st // +---------------------------------------------------------------------- -namespace app\model; +namespace app\model\Cms; use think\Model; use think\model\concern\SoftDelete; /** - * 文章分类模型 + * 网站模板模型 */ -class AdminUser extends Model +class TemplateSiteConfig extends Model { // 启用软删除 use SoftDelete; // 数据库表名 - protected $name = 'mete_admin_user'; + protected $name = 'mete_apps_cms_template_site_config'; // 字段类型转换 protected $type = [ 'id' => 'integer', - 'sex' => 'integer', - 'group_id' => 'integer', - 'login_count' => 'integer', - 'status' => 'integer', - 'api_key_status' => 'integer', + 'tid' => 'integer', + 'key' => 'string', + 'value' => 'string', 'create_time' => 'datetime', 'update_time' => 'datetime', 'delete_time' => 'datetime', diff --git a/app/model/Cms/TemplateThemeData.php b/app/model/Cms/TemplateThemeData.php new file mode 100644 index 0000000..2b2922b --- /dev/null +++ b/app/model/Cms/TemplateThemeData.php @@ -0,0 +1,40 @@ + +// +---------------------------------------------------------------------- + +namespace app\model\Cms; + +use think\Model; +use think\model\concern\SoftDelete; + +/** + * 网站模板数据模型 + */ +class TemplateThemeData extends Model +{ + // 启用软删除 + use SoftDelete; + + // 数据库表名 + protected $name = 'mete_apps_cms_template_theme_data'; + + // 字段类型转换 + protected $type = [ + 'id' => 'integer', + 'theme_key' => 'string', + 'field_key' => 'string', + 'field_value' => 'string', + 'create_time' => 'datetime', + 'update_time' => 'datetime', + 'delete_time' => 'datetime', + ]; + + +} diff --git a/app/model/Erp/Organization.php b/app/model/Erp/Organization.php index e731efd..055e212 100644 --- a/app/model/Erp/Organization.php +++ b/app/model/Erp/Organization.php @@ -28,7 +28,7 @@ class Organization extends Model // 字段类型转换 protected $type = [ 'id' => 'integer', - 'tenant_id' => 'integer', + 'tid' => 'integer', 'org_name' => 'string', 'org_code' => 'string', 'parent_id' => 'integer', diff --git a/app/model/System/AdminUser.php b/app/model/System/AdminUser.php new file mode 100644 index 0000000..71d0cb7 --- /dev/null +++ b/app/model/System/AdminUser.php @@ -0,0 +1,54 @@ + +// +---------------------------------------------------------------------- + +namespace app\model\System; + +use think\Model; +use think\model\concern\SoftDelete; + +/** + * 文章分类模型 + */ +class AdminUser extends Model +{ + // 启用软删除 + use SoftDelete; + + // 数据库表名 + protected $name = 'mete_admin_user'; + + // 字段类型转换 + protected $type = [ + 'id' => 'integer', + 'tid' => 'integer', + 'account' => 'string', + 'password' => 'string', + 'name' => 'string', + 'birth' => 'date', + 'phone' => 'string', + 'email' => 'string', + 'qq' => 'string', + 'sex' => 'integer', + 'avatar' => 'string', + 'group_id' => 'integer', + 'login_count' => 'integer', + 'last_login_ip' => 'string', + 'status' => 'integer', + 'api_key' => 'string', + 'api_key_expire' => 'datetime', + 'api_key_status' => 'integer', + 'create_time' => 'datetime', + 'update_time' => 'datetime', + 'delete_time' => 'datetime', + ]; + + +} diff --git a/app/model/AdminUserGroup.php b/app/model/System/AdminUserGroup.php similarity index 94% rename from app/model/AdminUserGroup.php rename to app/model/System/AdminUserGroup.php index 1b34a2b..96adfa9 100644 --- a/app/model/AdminUserGroup.php +++ b/app/model/System/AdminUserGroup.php @@ -9,7 +9,7 @@ // | Author: Liu21st // +---------------------------------------------------------------------- -namespace app\model; +namespace app\model\System; use think\Model; use think\model\concern\SoftDelete; @@ -28,6 +28,7 @@ class AdminUserGroup extends Model // 字段类型转换 protected $type = [ 'id' => 'integer', + 'tid' => 'integer', 'name' => 'string', 'status' => 'integer', 'rights' => 'string', diff --git a/app/model/Files.php b/app/model/System/Files.php similarity index 89% rename from app/model/Files.php rename to app/model/System/Files.php index 08c09b4..1a30ffc 100644 --- a/app/model/Files.php +++ b/app/model/System/Files.php @@ -9,7 +9,7 @@ // | Author: Liu21st // +---------------------------------------------------------------------- -namespace app\model; +namespace app\model\System; use think\Model; use think\model\concern\SoftDelete; @@ -23,11 +23,13 @@ class Files extends Model use SoftDelete; // 数据库表名 - protected $name = 'mete_files'; + protected $name = 'mete_system_files'; // 字段类型转换 protected $type = [ 'id' => 'integer', + 'tid' => 'integer', + 'uid' => 'integer', 'name' => 'string', 'type' => 'integer', 'cate' => 'integer', diff --git a/app/model/FilesCategory.php b/app/model/System/FilesCategory.php similarity index 87% rename from app/model/FilesCategory.php rename to app/model/System/FilesCategory.php index 8d8f25c..ebfa770 100644 --- a/app/model/FilesCategory.php +++ b/app/model/System/FilesCategory.php @@ -9,7 +9,7 @@ // | Author: Liu21st // +---------------------------------------------------------------------- -namespace app\model; +namespace app\model\System; use think\Model; use think\model\concern\SoftDelete; @@ -23,11 +23,13 @@ class FilesCategory extends Model use SoftDelete; // 数据库表名 - protected $name = 'mete_files_category'; + protected $name = 'mete_system_files_category'; // 字段类型转换 protected $type = [ 'id' => 'integer', + 'tid' => 'integer', + 'uid' => 'integer', 'name' => 'string', 'create_time' => 'datetime', 'update_time' => 'datetime', diff --git a/app/model/OperationLog.php b/app/model/System/OperationLog.php similarity index 70% rename from app/model/OperationLog.php rename to app/model/System/OperationLog.php index 3076cb0..5649824 100644 --- a/app/model/OperationLog.php +++ b/app/model/System/OperationLog.php @@ -9,7 +9,7 @@ // | Author: Liu21st // +---------------------------------------------------------------------- -namespace app\model; +namespace app\model\System; use think\Model; use think\model\concern\SoftDelete; @@ -21,20 +21,28 @@ class OperationLog extends Model { // 启用软删除 use SoftDelete; - + // 数据库表名 - protected $name = 'mete_operation_log'; - + protected $name = 'mete_system_operation_log'; + // 字段类型转换 protected $type = [ 'id' => 'integer', + 'tid' => 'integer', 'user_id' => 'integer', + 'module' => 'string', + 'action' => 'string', + 'method' => 'string', + 'url' => 'string', + 'ip' => 'string', + 'user_agent' => 'string', + 'request_data' => 'string', + 'response_data' => 'string', 'status' => 'integer', + 'error_message' => 'string', 'execution_time' => 'float', 'create_time' => 'datetime', 'update_time' => 'datetime', 'delete_time' => 'datetime', ]; - } - diff --git a/app/model/Tenant/TenantDomain.php b/app/model/Tenant/TenantDomain.php index 9c7bada..6f9b6c8 100644 --- a/app/model/Tenant/TenantDomain.php +++ b/app/model/Tenant/TenantDomain.php @@ -24,7 +24,7 @@ class TenantDomain extends Model // 字段类型转换 protected $type = [ 'id' => 'integer', - 'tenant_id' => 'integer', + 'tid' => 'integer', 'sub_domain' => 'string', 'main_domain' => 'string', 'full_domain' => 'string', diff --git a/app/service/ThemeService.php b/app/service/ThemeService.php index d87423f..5f18640 100644 --- a/app/service/ThemeService.php +++ b/app/service/ThemeService.php @@ -6,6 +6,8 @@ namespace app\service; use think\facade\Db; use think\facade\Config; +use app\model\Cms\TemplateSiteConfig; +use app\model\Cms\TemplateThemeData; /** * 模板服务类 @@ -36,7 +38,7 @@ class ThemeService $themes[] = [ 'key' => $dir, 'name' => $config['name'] ?? $dir, - 'description'=> $config['description'] ?? '', + 'description' => $config['description'] ?? '', 'version' => $config['version'] ?? '1.0.0', 'author' => $config['author'] ?? '', 'preview' => $preview, @@ -125,8 +127,7 @@ class ThemeService if ($tid > 0) { $where[] = ['tid', '=', $tid]; } - $config = Db::name('mete_template_site_config') - ->where($where) + $config = TemplateSiteConfig::where($where) ->find(); return $config['value'] ?? 'default'; } catch (\Exception $e) { @@ -162,19 +163,18 @@ class ThemeService if ($tid > 0) { $where[] = ['tid', '=', $tid]; } - $config = Db::name('mete_template_site_config') - ->where($where) + $config = TemplateSiteConfig::where($where) ->find(); $now = date('Y-m-d H:i:s'); if ($config) { - Db::name('mete_template_site_config')->where('id', $config['id'])->update([ + TemplateSiteConfig::where('id', $config['id'])->update([ 'value' => $themeKey, 'update_time' => $now ]); } else { - Db::name('mete_template_site_config')->insert([ + TemplateSiteConfig::insert([ 'key' => 'current_theme', 'value' => $themeKey, 'create_time' => $now, @@ -203,8 +203,7 @@ class ThemeService if ($tid > 0) { $where[] = ['tid', '=', $tid]; } - $themeData = Db::name('mete_template_theme_data') - ->where($where) + $themeData = TemplateThemeData::where($where) ->select() ->toArray(); @@ -246,22 +245,20 @@ class ThemeService if ($tid > 0) { $where[] = ['tid', '=', $tid]; } - $existing = Db::name('mete_template_theme_data') - ->where($where) + $existing = TemplateThemeData::where($where) ->find(); $value = is_array($fieldValue) ? json_encode($fieldValue, JSON_UNESCAPED_UNICODE) : $fieldValue; $now = date('Y-m-d H:i:s'); if ($existing) { - Db::name('mete_template_theme_data') - ->where('id', $existing['id']) + TemplateThemeData::where('id', $existing['id']) ->update([ 'field_value' => $value, 'update_time' => $now ]); } else { - Db::name('mete_template_theme_data')->insert([ + TemplateThemeData::insert([ 'tid' => $tid, 'theme_key' => $themeKey, 'field_key' => $fieldKey,