# laravel8 **Repository Path**: jamchy/laravel8 ## Basic Information - **Project Name**: laravel8 - **Description**: laravel积分兑换系统 - **Primary Language**: PHP - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2026-03-31 - **Last Updated**: 2026-03-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 积分商城系统 一个基于 PHP7+、Laravel、Vue-Element-Admin 和 MySQL 的会员积分商城系统,包含会员端和管理端功能。 ## 技术栈 - **后端**:PHP7.4+, Laravel 8.83 - **前端会员端**:HTML5 + jQuery + Bootstrap 5 - **前端管理端**:Vue 3 + Element Plus + Vue-Element-Admin - **数据库**:MySQL 5.7+ - **认证**:JWT (JSON Web Token) - **缓存**:Redis (可选) ## 功能特性 ### 会员端功能 - 用户注册和登录 - 个人信息管理 - 积分管理和签到获取积分 - 商品浏览、搜索和筛选 - 购物车功能 - 订单管理 - 响应式设计,支持移动端 ### 管理端功能 - 员工管理(CRUD操作) - 会员管理 - 商品管理(CRUD操作) - 订单管理 - 角色和权限管理 - 菜单管理 - 系统设置 - 操作日志记录 ## 项目结构 ``` point-mall/ ├── backend/ # 后端 Laravel 项目 │ ├── app/ # 应用代码 │ ├── bootstrap/ # 引导文件 │ ├── config/ # 配置文件 │ ├── database/ # 数据库迁移和种子 │ ├── public/ # 公共资源 │ ├── resources/ # 资源文件 │ ├── routes/ # 路由定义 │ ├── storage/ # 存储文件 │ └── tests/ # 测试文件 ├── frontend/ # 前端项目 │ ├── admin/ # 管理端 (Vue) │ └── client/ # 会员端 (HTML+jQuery) └── README.md # 项目说明 ``` ## 安装和部署 ### 1. 环境要求 - PHP 7.4 或更高版本 - MySQL 5.7 或更高版本 - Composer - Node.js 14+ 和 npm 6+ ### 2. 后端安装 ```bash # 进入后端目录 cd backend # 安装依赖 composer install # 复制环境配置文件 cp .env.example .env # 生成应用密钥 php artisan key:generate # 配置 JWT 密钥 php artisan jwt:secret # 配置数据库连接(编辑 .env 文件) # DB_CONNECTION=mysql # DB_HOST=127.0.0.1 # DB_PORT=3306 # DB_DATABASE=point_mall # DB_USERNAME=root # DB_PASSWORD=your_password # 运行数据库迁移 php artisan migrate # 运行数据库种子(创建默认管理员账号) php artisan db:seed # 启动开发服务器 php artisan serve --host=0.0.0.0 --port=8000 ``` ### 3. 前端会员端 会员端使用纯 HTML + jQuery + Bootstrap 开发,无需构建,直接访问即可。 ```bash # 进入会员端目录 cd frontend/client # 启动本地服务器(可选) python -m http.server 8080 ``` ### 4. 前端管理端安装 ```bash # 进入管理端目录 cd frontend/admin # 安装依赖 npm install # 开发环境启动 npm run dev # 生产环境构建 npm run build # 预览生产构建 npm run preview ``` ### 5. Nginx 配置示例 ```nginx server { listen 80; server_name point-mall.example.com; root /path/to/point-mall/backend/public; add_header X-Frame-Options "SAMEORIGIN"; add_header X-Content-Type-Options "nosniff"; index index.php; charset utf-8; location / { try_files $uri $uri/ /index.php?$query_string; } location = /favicon.ico { access_log off; log_not_found off; } location = /robots.txt { access_log off; log_not_found off; } error_page 404 /index.php; location ~ \.php$ { fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name; include fastcgi_params; } location ~ /\.(?!well-known).* { deny all; } } ``` ## 前端部署指南 ### 会员端部署(HTML + jQuery) 会员端使用纯静态技术栈开发,无需构建,直接部署静态文件即可。 #### Nginx 配置 ```nginx server { listen 80; server_name mall.example.com; # 会员端域名 root /path/to/point-mall/frontend/client; index index.html; location / { try_files $uri $uri/ /index.html; } # API 代理配置 location /api/ { proxy_pass http://localhost:8000/api/; # 后端服务地址 proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } # 静态文件缓存配置 location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ { expires 30d; add_header Cache-Control "public, no-transform"; } } ``` ### 管理端部署(Vue 3 + Element Plus) 管理端使用 Vue 3 开发,需要先构建再部署。 #### 构建步骤 ```bash # 安装依赖 cd /path/to/point-mall/frontend/admin npm install # 配置环境变量 # 创建 .env.production 文件 # VITE_API_BASE_URL=http://admin.example.com/api # VITE_APP_TITLE=积分商城管理系统 # 构建项目 npm run build ``` #### Nginx 配置 ```nginx server { listen 80; server_name admin.example.com; # 管理端域名 root /path/to/point-mall/frontend/admin/dist; index index.html; location / { try_files $uri $uri/ /index.html; } # API 代理配置 location /api/ { proxy_pass http://localhost:8000/api/; # 后端服务地址 proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } # 静态文件缓存配置 location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ { expires 7d; add_header Cache-Control "public, no-transform"; } } ``` ### Docker 部署方案 ```yaml version: '3.8' services: # 后端服务 backend: image: php:7.4-fpm # ... 后端配置 ... # 会员端 client: image: nginx:alpine ports: - "80:80" volumes: - ./frontend/client:/usr/share/nginx/html - ./nginx/client.conf:/etc/nginx/conf.d/default.conf depends_on: - backend # 管理端 admin: image: nginx:alpine ports: - "81:80" volumes: - ./frontend/admin/dist:/usr/share/nginx/html - ./nginx/admin.conf:/etc/nginx/conf.d/default.conf depends_on: - backend # MySQL 数据库 mysql: image: mysql:5.7 environment: MYSQL_ROOT_PASSWORD: root_password MYSQL_DATABASE: point_mall MYSQL_USER: mall_user MYSQL_PASSWORD: mall_password volumes: - mysql_data:/var/lib/mysql volumes: mysql_data: ``` ## 默认账号 - **管理员账号**:admin@example.com / password - **测试会员账号**:user@example.com / password ## 问题修复说明 ### 1. 缺少 artisan 文件 **解决方案**: - 重新创建了 `artisan` 文件 - 设置了正确的执行权限 (`chmod +x artisan`) ### 2. 迁移文件 PSR-4 自动加载问题 **解决方案**: - 在 `composer.json` 中添加了 `classmap` 配置来正确处理迁移文件 - 解决了 PSR-4 自动加载警告问题 ### 3. 废弃包说明 **说明**: 这些是依赖包的废弃警告,不会影响系统正常运行。在未来的版本中,建议: - 使用 Laravel 内置的 CORS 中间件替代 fruitcake/laravel-cors - 使用 symfony/mailer 替代 swiftmailer/swiftmailer - 更新 PHPUnit 到最新版本以解决 sebastian/resource-operations 依赖问题 ## Composer 依赖问题解决方案 ### 更换 Composer 镜像源 ```bash # 恢复官方源 composer config -g repo.packagist composer https://repo.packagist.org # 或使用其他镜像源 composer config -g repo.packagist composer https://packagist.phpcomposer.com composer config -g repo.packagist composer https://mirrors.cloud.tencent.com/composer # 清除 Composer 缓存 composer clear-cache # 重新安装依赖 composer install --prefer-dist --no-dev ``` ### 环境配置要求 #### PHP 安装(Ubuntu/Debian) ```bash # 更新包列表 sudo apt-get update # 安装 PHP 及扩展 sudo apt-get install -y php php-cli php-mbstring php-curl php-zip php-mysql php-xml php-gd php-intl # 验证安装 php -v ``` #### Composer 安装 ```bash # 下载 Composer curl -sS https://getcomposer.org/installer | php # 移动到全局路径 sudo mv composer.phar /usr/local/bin/composer # 设置执行权限 sudo chmod +x /usr/local/bin/composer # 验证安装 composer -V ``` ## 项目更新内容 ### 2024-12-20 更新内容 #### 1. 修复项目依赖和配置问题 **修改文件:** - `backend/composer.json` - 更新了自动加载配置 - `backend/artisan` - 重新创建了命令行工具文件 #### 2. 前端架构调整 **会员端重构**: - 从 Vue 改为 HTML + jQuery + Bootstrap 5 - 创建了完整的用户界面和交互功能 - 包含登录、注册、商品浏览、购物车、个人中心等页面 **管理端完善**: - 补充了菜单管理模块 - 完善了员工管理功能 - 添加了系统日志模块 #### 3. 功能模块完善 **会员端功能**: - ✅ 用户注册和登录 - ✅ 个人信息管理 - ✅ 积分管理和签到 - ✅ 商品浏览、搜索和筛选 - ✅ 购物车功能 - ✅ 订单管理 - ✅ 响应式设计 **管理端功能**: - ✅ 员工管理(CRUD操作) - ✅ 会员管理 - ✅ 商品管理 - ✅ 订单管理 - ✅ 角色和权限管理 - ✅ 菜单管理 - ✅ 系统设置 - ✅ 操作日志记录 ## 开发说明 ### 后端开发 1. 创建新的模型和迁移: ```bash php artisan make:model ModelName -m ``` 2. 创建新的控制器: ```bash php artisan make:controller Api/ControllerName ``` 3. 创建新的中间件: ```bash php artisan make:middleware MiddlewareName ``` ### 前端开发 1. 会员端使用 jQuery 开发,主要文件: - `frontend/client/js/api.js` - API 调用封装 - `frontend/client/js/auth.js` - 认证相关功能 - `frontend/client/*.html` - 页面文件 2. 管理端使用 Vue 3 + Element Plus 开发: - 组件位于 `frontend/admin/src/components/` - 视图位于 `frontend/admin/src/views/` - 路由配置位于 `frontend/admin/src/router/index.ts` ## 安全注意事项 1. 生产环境中请修改默认密码 2. 配置适当的文件权限 3. 启用 HTTPS 4. 定期更新依赖包 5. 配置适当的 CORS 策略 ## 许可证 MIT License