felixyin 3 months ago
parent
commit
4573684b4b

+ 1 - 1
.env

@@ -27,7 +27,7 @@ DB_HOST=192.168.110.85
 DB_PORT=3306
 DB_DATABASE=xiaoding_dev
 DB_USERNAME=xiaoding_dev
-DB_PASSWORD=5zWmCxsxsSPt6fH3
+DB_PASSWORD=SestHXbshKY2SBLG
 
 SESSION_DRIVER=redis
 SESSION_LIFETIME=480

+ 77 - 47
app/Admin/Controllers/ProjectCateController.php

@@ -2,6 +2,7 @@
 
 namespace App\Admin\Controllers;
 
+use App\Enums\ProjectStatus;
 use App\Services\ProjectCateService;
 use Slowlyo\OwlAdmin\Controllers\AdminController;
 
@@ -12,50 +13,79 @@ use Slowlyo\OwlAdmin\Controllers\AdminController;
  */
 class ProjectCateController extends AdminController
 {
-	protected string $serviceName = ProjectCateService::class;
-
-	public function list()
-	{
-		$crud = $this->baseCRUD()
-			->filterTogglable(false)
-			->headerToolbar([
-				$this->createButton('dialog'),
-				...$this->baseHeaderToolBar()
-			])
-			->columns([
-				amis()->TableColumn('id', 'ID')->sortable(),
-				amis()->TableColumn('name', '项目分类名称'),
-				amis()->TableColumn('cover', '分类封面'),
-				amis()->TableColumn('sort', '排序')->sortable(),
-				amis()->TableColumn('state', '状态'),
-				amis()->TableColumn('created_at', admin_trans('admin.created_at'))->type('datetime')->sortable(),
-				amis()->TableColumn('updated_at', admin_trans('admin.updated_at'))->type('datetime')->sortable(),
-				$this->rowActions('dialog')
-			]);
-
-		return $this->baseList($crud);
-	}
-
-	public function form($isEdit = false)
-	{
-		return $this->baseForm()->body([
-			amis()->TextControl('name', '项目分类名称'),
-			amis()->TextControl('cover', '分类封面'),
-			amis()->TextControl('sort', '排序'),
-			amis()->TextControl('state', '状态'),
-		]);
-	}
-
-	public function detail()
-	{
-		return $this->baseDetail()->body([
-			amis()->TextControl('id', 'ID')->static(),
-			amis()->TextControl('name', '项目分类名称')->static(),
-			amis()->TextControl('cover', '分类封面')->static(),
-			amis()->TextControl('sort', '排序')->static(),
-			amis()->TextControl('state', '状态')->static(),
-			amis()->TextControl('created_at', admin_trans('admin.created_at'))->static(),
-			amis()->TextControl('updated_at', admin_trans('admin.updated_at'))->static(),
-		]);
-	}
-}
+    protected string $serviceName = ProjectCateService::class;
+
+    public function list()
+    {
+        $crud = $this->baseCRUD()
+            ->filterTogglable(false)
+            ->headerToolbar([
+                $this->createButton('dialog'),
+                ...$this->baseHeaderToolBar()
+            ])
+            ->columns([
+                amis()->TableColumn('id', 'ID')->sortable(),
+                amis()->TableColumn('name', '项目分类名称'),
+                amis()->TableColumn('cover', '分类封面')
+                    ->type('image')
+                    ->enlargeAble(true)
+                    ->thumbMode('cover')
+                    ->height(50)
+                    ->width(50),
+                amis()->TableColumn('sort', '排序')->sortable(),
+                amis()->TableColumn('state', '状态')
+                    ->type('mapping')
+                    ->map([
+                        ProjectStatus::CLOSE->value => '关闭',
+                        ProjectStatus::OPEN->value => '开启',
+                    ]),
+                amis()->TableColumn('created_at', admin_trans('admin.created_at'))->type('datetime')->sortable(),
+                amis()->TableColumn('updated_at', admin_trans('admin.updated_at'))->type('datetime')->sortable(),
+                $this->rowActions('dialog')
+            ]);
+
+        return $this->baseList($crud);
+    }
+
+    public function form($isEdit = false)
+    {
+        return $this->baseForm()->body([
+            amis()->TextControl('name', '项目分类名称')
+                ->required(),
+
+            amis()->ImageControl('cover', '分类封面')
+                ->receiver('/upload-project-cate')
+                ->data([
+                    'bucket' => 'project-cate'
+                ])
+                ->autoUpload(true)
+                ->accept('image/*')
+                ->multiple(false),
+
+            amis()->NumberControl('sort', '排序')
+                ->min(0)
+                ->value(0),
+
+            amis()->SelectControl('state', '状态')
+                ->options([
+                    ['label' => '关闭', 'value' => ProjectStatus::CLOSE],
+                    ['label' => '开启', 'value' => ProjectStatus::OPEN],
+                ])
+                ->value(ProjectStatus::OPEN)
+                ->required(),
+        ]);
+    }
+
+    public function detail()
+    {
+        return $this->baseDetail()->body([
+            amis()->TextControl('id', 'ID')->static(),
+            amis()->TextControl('name', '项目分类名称')->static(),
+            amis()->TextControl('cover', '分类封面')->static(),
+            amis()->TextControl('sort', '排序')->static(),
+            amis()->TextControl('state', '状态')->static(),
+            amis()->TextControl('created_at', admin_trans('admin.created_at'))->static(),
+            amis()->TextControl('updated_at', admin_trans('admin.updated_at'))->static(),
+        ]);
+    }
+}

+ 26 - 0
app/Http/Controllers/UploadController.php

@@ -34,6 +34,32 @@ class UploadController extends Controller
         ], 201);
     }
 
+    public function uploadProjectCate(Request $request)
+    {
+        // 验证请求
+        $request->validate([
+            'file' => 'required|file|mimes:jpg,jpeg,png,gif|max:2048',
+        ]);
+
+        // 获取桶名
+        $bucket = 'project-cate';
+
+        // 上传文件到指定的 S3 桶
+        $path = $request->file('file')->store('uploads', $bucket);
+
+        // 获取文件名
+        $filename = basename($path);
+
+        // 生成文件的 URL
+        $url = Storage::disk($bucket)->url($path);
+
+        // 返回文件名和 URL
+        return response()->json([
+            'filename' => $filename,
+            'url' => $url, // 返回文件的 URL
+        ], 201);
+    }
+
     public function download(Request $request)
     {
         // 获取桶名

File diff suppressed because it is too large
+ 77 - 0
doc/系统设计/数据库设计/数据库备份/xiaoding_test_2024-12-27_151042.sql


File diff suppressed because it is too large
+ 71 - 0
doc/系统设计/数据库设计/数据库备份/xiaoding_test_2024-12-27_navicat.sql


+ 99 - 0
doc/系统设计/数据库设计/数据库备份/清理所有业务表数据.sql

@@ -0,0 +1,99 @@
+-- Active: 1735094924500@@192.168.110.85@3306@xiaoding_test
+
+/**
+ * 清空表数据
+*/
+
+-- 禁用外键检查
+SET FOREIGN_KEY_CHECKS = 0;
+TRUNCATE TABLE agent_info_records;
+TRUNCATE TABLE agent_infos;
+TRUNCATE TABLE agent_project;
+TRUNCATE TABLE agent_project_cate;
+TRUNCATE TABLE agent_real_auth_records;
+TRUNCATE TABLE member_address;
+TRUNCATE TABLE member_social_accounts;
+TRUNCATE TABLE member_users;
+TRUNCATE TABLE order_comments;
+TRUNCATE TABLE order_dist_records;
+TRUNCATE TABLE order_exc_records;
+TRUNCATE TABLE order_grab_records;
+TRUNCATE TABLE order_records;
+TRUNCATE TABLE project_cate;
+TRUNCATE TABLE shop_auth_records;
+TRUNCATE TABLE shop_coach_services;
+TRUNCATE TABLE shop_infos;
+TRUNCATE TABLE shop_services;
+TRUNCATE TABLE user_feedbacks;
+TRUNCATE TABLE wallet_payment_records;
+TRUNCATE TABLE wallet_refund_records;
+TRUNCATE TABLE wallet_split_records;
+TRUNCATE TABLE wallet_trans_records;
+TRUNCATE TABLE wallet_withdraw_records;
+TRUNCATE TABLE agent_info_records;
+TRUNCATE TABLE agent_project;
+TRUNCATE TABLE agent_project_cate;
+TRUNCATE TABLE agent_real_auth_records;
+TRUNCATE TABLE coupon_info;
+TRUNCATE TABLE member_address;
+TRUNCATE TABLE member_bad_behaviors;
+TRUNCATE TABLE member_social_accounts;
+TRUNCATE TABLE member_users;
+TRUNCATE TABLE order_comments;
+TRUNCATE TABLE order_dist_records;
+TRUNCATE TABLE order_exc_records;
+TRUNCATE TABLE order_grab_records;
+TRUNCATE TABLE order_records;
+TRUNCATE TABLE project_cate;
+TRUNCATE TABLE shop_auth_records;
+TRUNCATE TABLE shop_coach_services;
+TRUNCATE TABLE shop_infos;
+TRUNCATE TABLE shop_services;
+TRUNCATE TABLE user_feedbacks;
+TRUNCATE TABLE wallet_payment_records;
+TRUNCATE TABLE wallet_refund_records;
+TRUNCATE TABLE wallet_split_records;
+TRUNCATE TABLE wallet_trans_records;
+TRUNCATE TABLE wallet_withdraw_records;
+TRUNCATE TABLE agent_info_records;
+TRUNCATE TABLE agent_infos;
+TRUNCATE TABLE agent_project;
+TRUNCATE TABLE agent_project_cate;
+TRUNCATE TABLE agent_real_auth_records;
+TRUNCATE TABLE coach_alerts;
+TRUNCATE TABLE coach_comment_tags;
+TRUNCATE TABLE coach_flow_orders;
+TRUNCATE TABLE coach_info_records;
+TRUNCATE TABLE coach_locations;
+TRUNCATE TABLE coach_order_comment_tags;
+TRUNCATE TABLE coach_order_comments;
+TRUNCATE TABLE coach_project;
+TRUNCATE TABLE coach_qual_records;
+TRUNCATE TABLE coach_real_records;
+TRUNCATE TABLE coach_schedules;
+TRUNCATE TABLE coach_scores;
+TRUNCATE TABLE coach_statistics;
+TRUNCATE TABLE coach_users;
+TRUNCATE TABLE coupon_info;
+TRUNCATE TABLE member_address;
+TRUNCATE TABLE member_bad_behaviors;
+TRUNCATE TABLE member_social_accounts;
+TRUNCATE TABLE member_users;
+TRUNCATE TABLE order_comments;
+TRUNCATE TABLE order_dist_records;
+TRUNCATE TABLE order_exc_records;
+TRUNCATE TABLE order_grab_records;
+TRUNCATE TABLE order_records;
+TRUNCATE TABLE project_cate;
+TRUNCATE TABLE setting_groups;;
+SET FOREIGN_KEY_CHECKS = 1;
+
+
+/*
+select table_name from information_schema.TABLES where `TABLE_SCHEMA` = 'xiaoding_test'
+and `TABLE_NAME` like 'coach_%' and `TABLE_TYPE` = 'BASE TABLE'
+or ( `TABLE_NAME` like 'agent_%' or `TABLE_NAME` like 'coupon_%' or
+ `TABLE_NAME` like 'order_%' or `TABLE_NAME` like 'user_%' or `TABLE_NAME` like 'member_%'
+or `TABLE_NAME` like 'project_%' or `TABLE_NAME` like 'setting_%' or `TABLE_NAME` like 'shop_%'
+or `TABLE_NAME` like 'wallet_%' );
+*/

+ 0 - 15
doc/系统设计/数据库设计/物理模型/分析后台设计增加/04平台项目管理.sql

@@ -1,21 +1,6 @@
--- Active: xiaoding_test@@192.168.110.85@3306@xiaoding_test
 
 /* 项目列表视图 */
 
-DROP VIEW IF EXISTS manage_project_list;
-
-CREATE OR REPLACE VIEW manage_project_list AS
-SELECT p.id /* 项目编号 */, p.title /* 项目名称 */, pc.name /* 项目分类名称 */, p.price /* 项目价格 */, p.duration /* 服务时长(分钟) */, p.state /* 状态 */, p.cover /* 项目封面图片 */
-FROM
-    project p /* 项目表 */
-    LEFT JOIN project_cate pc /* 项目分类表 */ ON p.cate_id = pc.id
-    AND pc.deleted_at IS NULL
-WHERE
-    p.deleted_at IS NULL
-ORDER BY p.id DESC;
-
-/* 项目管理列表视图 */
-
 DROP VIEW IF EXISTS v_project_manage;
 
 CREATE VIEW v_project_manage AS

+ 2 - 0
doc/系统设计/数据库设计/物理模型/分析后台设计增加/sdfsdfa.sqlbook

@@ -0,0 +1,2 @@
+-- SQLBook: Code
+select * from v_project_manage;

+ 1 - 0
routes/web.php

@@ -25,6 +25,7 @@ Route::group(
     function (Router $router) {
         // 上传
         Route::post('/upload', [UploadController::class, 'upload']);
+        Route::post('/upload-project-cate', [UploadController::class, 'uploadProjectCate']);
 
         // 通用枚举路由
         Route::get('/enums', [EnumController::class, 'getEnumData']);

Some files were not shown because too many files changed in this diff