一、商品下架管理功能设计
1. 核心需求
- 多条件筛选:支持按商品名称、分类、库存、上架时间等快速定位待下架商品。
- 批量操作:支持勾选多个商品一键下架,提升效率。
- 下架原因记录:强制填写下架原因(如缺货、质量问题、季节性调整等),便于数据追溯。
- 权限控制:不同角色(如管理员、仓库管理员)拥有不同下架权限。
- 数据同步:下架后自动更新库存状态、前端展示状态,并触发相关通知(如供应商、客户)。
2. 数据库设计(示例)
```sql
-- 商品表(扩展状态字段)
ALTER TABLE `products` ADD COLUMN `status` TINYINT DEFAULT 1 COMMENT 1-上架, 0-下架;
-- 下架记录表
CREATE TABLE `product_off_shelf_logs` (
`id` INT AUTO_INCREMENT PRIMARY KEY,
`product_id` INT NOT NULL,
`off_shelf_reason` VARCHAR(255) NOT NULL,
`operator_id` INT NOT NULL,
`off_shelf_time` DATETIME DEFAULT CURRENT_TIMESTAMP,
`restore_time` DATETIME NULL COMMENT 可恢复时填写
);
```
二、万象源码部署操作(简化版)
1. 环境准备
- 服务器要求:
- Linux/Windows Server(推荐CentOS 7+)
- Nginx/Apache + PHP 7.4+ + MySQL 5.7+
- 内存建议4GB以上(根据商品数据量调整)
- 依赖安装(以CentOS为例):
```bash
yum install -y nginx php php-mysqlnd php-fpm mysql-server
systemctl start nginx mysql php-fpm
```
2. 源码部署步骤
1. 上传源码:
- 通过FTP/SFTP将源码上传至服务器目录(如`/var/www/fruit_wholesale`)。
- 确保目录权限正确:
```bash
chown -R apache:apache /var/www/fruit_wholesale
chmod -R 755 /var/www/fruit_wholesale
```
2. 配置数据库:
- 导入初始SQL文件(通常位于`/sql/`目录):
```bash
mysql -u root -p < initial_db.sql
```
- 修改源码中的数据库配置(如`/config/database.php`):
```php
return [
host => localhost,
username => fruit_user,
password => your_password,
database => fruit_db
];
```
3. 配置Web服务器:
- Nginx示例:
```nginx
server {
listen 80;
server_name wholesale.example.com;
root /var/www/fruit_wholesale/public;
index index.php;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
include fastcgi_params;
}
}
```
- 重启服务:
```bash
systemctl restart nginx
```
4. 安装依赖(如使用Composer):
```bash
cd /var/www/fruit_wholesale
composer install
```
3. 快速测试下架功能
1. 登录后台(默认路径可能是`/admin`,账号密码见文档)。
2. 进入商品管理 > 商品列表,筛选待下架商品。
3. 勾选商品,点击批量下架,填写原因(如“测试下架”)。
4. 验证:
- 数据库中`products.status`是否更新为`0`。
- 前端商品列表是否隐藏。
- `product_off_shelf_logs`表是否新增记录。
三、常见问题解决
1. 权限不足:
- 确保Nginx/Apache用户对源码目录有读写权限。
- 检查SELinux状态(CentOS):
```bash
getenforce 若为Enforcing,临时关闭:setenforce 0
```
2. 数据库连接失败:
- 确认MySQL服务已启动:`systemctl status mysqld`。
- 检查防火墙是否放行3306端口(如需远程访问)。
3. 下架后前端未更新:
- 清除缓存(如Redis/OPcache):
```bash
redis-cli flushall
```
- 检查前端是否调用正确的API接口(如`/api/products?status=1`)。
四、优化建议
- 自动化下架:通过定时任务(Cron)自动下架过期商品(如保质期临近)。
- 数据备份:每日备份`products`和`product_off_shelf_logs`表。
- 操作日志:记录所有下架操作,便于审计。
通过以上步骤,您可以在1-2小时内完成基础部署并测试下架功能。如需更详细的源码修改指导,建议查阅万象源码的官方文档或社区支持。