From 47c816270d33001b69515cdec4b73f5b5f6d7c3a Mon Sep 17 00:00:00 2001 From: ylweng Date: Mon, 22 Sep 2025 02:04:07 +0800 Subject: [PATCH] =?UTF-8?q?=E9=87=8D=E6=9E=84=E5=8A=A8=E7=89=A9=E6=A8=A1?= =?UTF-8?q?=E5=9E=8B=E5=92=8C=E8=B7=AF=E7=94=B1=E7=B3=BB=E7=BB=9F=EF=BC=8C?= =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=9F=A5=E8=AF=A2=E9=80=BB=E8=BE=91=E5=B9=B6?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=95=86=E6=88=B7=E5=92=8C=E4=BF=83=E9=94=80?= =?UTF-8?q?=E6=B4=BB=E5=8A=A8=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 4 +- admin-system/src/api/flower.ts | 115 + admin-system/src/layouts/MainLayout.vue | 11 +- admin-system/src/pages/Login.vue | 22 +- admin-system/src/pages/animal/index.vue | 865 -------- .../pages/animals/components/AnimalDetail.vue | 219 -- .../pages/animals/components/AnimalForm.vue | 362 --- admin-system/src/pages/animals/index.vue | 716 ------ .../pages/flower/components/FlowerModal.vue | 272 +++ admin-system/src/pages/flower/index.vue | 223 ++ admin-system/src/pages/user/index.vue | 3 +- .../src/pages/users/components/UserDetail.vue | 172 -- .../src/pages/users/components/UserForm.vue | 276 --- admin-system/src/pages/users/index.vue | 843 ------- admin-system/src/router/index.ts | 12 + admin-system/src/stores/app.ts | 31 +- admin-system/src/stores/modules/flower.ts | 163 ++ admin-system/test-mock.js | 44 - backend/docs/商户管理API接口文档.md | 420 ++++ backend/scripts/create-database-schema.sql | 2 +- backend/scripts/init-database.sql | 47 +- backend/scripts/test-database-connection.js | 5 +- backend/src/app.js | 33 +- backend/src/config/database.js | 9 + backend/src/controllers/admin/index.js | 21 +- backend/src/controllers/animal/index.js | 22 +- backend/src/controllers/merchant.js | 276 +++ .../promotion/activityController.js | 461 ++++ .../controllers/promotion/rewardController.js | 175 ++ backend/src/controllers/travel/index.js | 46 +- backend/src/models/Animal.js | 40 +- backend/src/models/Merchant.js | 217 ++ backend/src/models/Travel.js | 427 ++++ backend/src/models/UserMySQL.js | 3 + backend/src/routes/auth.js | 6 +- backend/src/routes/merchant.js | 453 ++++ backend/src/routes/promotion.js | 61 + backend/src/routes/user.js | 12 +- backend/src/services/animal/index.js | 28 +- backend/src/services/travel/index.js | 105 +- backend/src/services/user/index.js | 3 +- docs/后端开发文档.md | 4 +- docs/安全文档.md | 10 +- docs/官网需求文档.md | 6 +- docs/小程序app接口设计文档.md | 205 +- docs/小程序app需求文档.md | 4 +- docs/数据库设计文档.md | 562 ++++- docs/整个项目的架构文档.md | 4 +- docs/整个项目需求文档.md | 4 +- docs/测试文档.md | 20 +- docs/用户手册文档.md | 8 +- docs/管理后台接口设计文档.md | 1955 ++++++++++------- docs/管理后台架构文档.md | 12 +- docs/部署文档.md | 4 +- 54 files changed, 5384 insertions(+), 4639 deletions(-) create mode 100644 admin-system/src/api/flower.ts delete mode 100644 admin-system/src/pages/animal/index.vue delete mode 100644 admin-system/src/pages/animals/components/AnimalDetail.vue delete mode 100644 admin-system/src/pages/animals/components/AnimalForm.vue delete mode 100644 admin-system/src/pages/animals/index.vue create mode 100644 admin-system/src/pages/flower/components/FlowerModal.vue create mode 100644 admin-system/src/pages/flower/index.vue delete mode 100644 admin-system/src/pages/users/components/UserDetail.vue delete mode 100644 admin-system/src/pages/users/components/UserForm.vue delete mode 100644 admin-system/src/pages/users/index.vue create mode 100644 admin-system/src/stores/modules/flower.ts delete mode 100644 admin-system/test-mock.js create mode 100644 backend/docs/商户管理API接口文档.md create mode 100644 backend/src/controllers/merchant.js create mode 100644 backend/src/controllers/promotion/activityController.js create mode 100644 backend/src/controllers/promotion/rewardController.js create mode 100644 backend/src/models/Merchant.js create mode 100644 backend/src/models/Travel.js create mode 100644 backend/src/routes/merchant.js create mode 100644 backend/src/routes/promotion.js diff --git a/README.md b/README.md index 68afba2..902c725 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,10 @@ -# 解班客 - 宠物认领平台 +# 结伴客 - 宠物认领平台 一个基于Vue.js和Node.js的宠物认领平台,帮助流浪动物找到温暖的家。 ## 项目概述 -解班客是一个专业的宠物认领平台,致力于为流浪动物提供一个温暖的归宿。平台通过现代化的Web技术,为用户提供便捷的宠物发布、搜索、认领服务,同时为管理员提供完善的后台管理功能。 +结伴客是一个专业的宠物认领平台,致力于为流浪动物提供一个温暖的归宿。平台通过现代化的Web技术,为用户提供便捷的宠物发布、搜索、认领服务,同时为管理员提供完善的后台管理功能。 ### 核心功能 diff --git a/admin-system/src/api/flower.ts b/admin-system/src/api/flower.ts new file mode 100644 index 0000000..43300a4 --- /dev/null +++ b/admin-system/src/api/flower.ts @@ -0,0 +1,115 @@ +import { request } from '.' + +// 定义花卉相关类型 +export interface Flower { + id: number + name: string + type: string + variety: string + price: number + stock: number + image: string + description: string + merchantId: number + merchantName: string + status: string + createdAt: string + updatedAt: string +} + +export interface FlowerQueryParams { + page?: number + limit?: number + keyword?: string + type?: string + status?: string + merchantId?: number + startDate?: string + endDate?: string +} + +export interface FlowerCreateData { + name: string + type: string + variety: string + price: number + stock: number + image: string + description: string + merchantId: number + status?: string +} + +export interface FlowerUpdateData { + name?: string + type?: string + variety?: string + price?: number + stock?: number + image?: string + description?: string + merchantId?: number + status?: string +} + +export interface FlowerSale { + id: number + flowerId: number + flowerName: string + buyerId: number + buyerName: string + quantity: number + price: number + totalAmount: number + status: string + saleTime: string + createdAt: string +} + +export interface Merchant { + id: number + name: string + contact: string + phone: string + address: string + status: string + createdAt: string +} + +// 获取花卉列表 +export const getFlowers = (params?: FlowerQueryParams) => + request.get<{ success: boolean; code: number; message: string; data: { flowers: Flower[]; pagination: any } }>('/flowers', { params }) + +// 获取花卉详情 +export const getFlower = (id: number) => + request.get<{ success: boolean; code: number; message: string; data: { flower: Flower } }>(`/flowers/${id}`) + +// 创建花卉 +export const createFlower = (data: FlowerCreateData) => + request.post<{ success: boolean; code: number; message: string; data: { flower: Flower } }>('/flowers', data) + +// 更新花卉 +export const updateFlower = (id: number, data: FlowerUpdateData) => + request.put<{ success: boolean; code: number; message: string; data: { flower: Flower } }>(`/flowers/${id}`, data) + +// 删除花卉 +export const deleteFlower = (id: number) => + request.delete<{ success: boolean; code: number; message: string }>(`/flowers/${id}`) + +// 获取花卉销售记录 +export const getFlowerSales = (params?: any) => + request.get<{ success: boolean; code: number; message: string; data: { sales: FlowerSale[]; pagination: any } }>('/flower-sales', { params }) + +// 获取商家列表 +export const getMerchants = (params?: any) => + request.get<{ success: boolean; code: number; message: string; data: { merchants: Merchant[] } }>('/merchants', { params }) + +export default { + getFlowers, + getFlower, + createFlower, + updateFlower, + deleteFlower, + getFlowerSales, + getMerchants +} \ No newline at end of file diff --git a/admin-system/src/layouts/MainLayout.vue b/admin-system/src/layouts/MainLayout.vue index a0052b7..fb22f51 100644 --- a/admin-system/src/layouts/MainLayout.vue +++ b/admin-system/src/layouts/MainLayout.vue @@ -60,6 +60,14 @@ + + + 花卉管理 + + +