一、收藏功能核心设计
1. 数据结构设计
- 用户收藏表(user_favorites):
```sql
CREATE TABLE `user_favorites` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`user_id` varchar(32) NOT NULL COMMENT 用户ID,
`item_id` varchar(32) NOT NULL COMMENT 商品ID,
`item_type` tinyint(1) DEFAULT 1 COMMENT 1-商品 2-分类 3-店铺,
`create_time` datetime DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
UNIQUE KEY `uk_user_item` (`user_id`,`item_id`)
) ENGINE=InnoDB;
```
2. 前端交互逻辑
- 商品卡片添加收藏按钮(心形图标)
- 点击时触发API请求,动态切换选中状态
- 收藏列表页支持分类筛选(全部/商品/店铺)
3. 业务规则
- 防止重复收藏(后端校验)
- 收藏商品下架时自动移除
- 用户删除收藏时同步更新缓存
二、万象源码部署方案
假设使用基于uni-app的开源生鲜源码(如`WeChatMarket`),部署步骤如下:
1. 环境准备
```bash
安装HBuilderX(开发工具)
或使用CLI工具
npm install -g @dcloudio/uni-cli
```
2. 源码获取与配置
```bash
git clone https://github.com/your-repo/fresh-mall.git
cd fresh-mall
npm install
```
3. 关键修改点
- 修改`pages/favorites/favorites.vue`实现收藏列表
- 在`api/user.js`中添加收藏接口:
```javascript
export const addFavorite = (data) => {
return request.post(/api/user/favorite/add, data)
}
```
4. 后端对接(Node.js示例)
```javascript
// controllers/favorite.js
exports.addFavorite = async (req, res) => {
const { userId, itemId } = req.body
try {
await FavoriteModel.create({ userId, itemId })
res.success()
} catch (e) {
res.error(已收藏过)
}
}
```
三、部署优化建议
1. 云开发部署
- 使用微信云开发:
```javascript
// 云函数示例
const cloud = require(wx-server-sdk)
cloud.init()
exports.main = async (event) => {
const db = cloud.database()
await db.collection(favorites).add({
data: event
})
return { success: true }
}
```
2. 独立服务器部署
- Nginx配置示例:
```nginx
server {
listen 80;
server_name fresh.yourdomain.com;
location / {
proxy_pass http://localhost:3000;
proxy_set_header Host $host;
}
location /api/ {
proxy_pass http://backend-server;
}
}
```
3. 性能优化
- 收藏数据缓存(Redis):
```redis
SETEX user:123:favorites 3600 ["item1","item2"]
```
- 商品数据预加载
四、用户体验增强
1. 收藏动画效果
```css
/* 收藏按钮动画 */
.favorite-btn {
transition: all 0.3s;
}
.favorite-btn.active {
transform: scale(1.2);
color: ff4d4f;
}
```
2. 智能推荐
- 基于收藏数据的关联推荐算法:
```javascript
// 伪代码
function getRecommendations(userId) {
const favorites = await getUserFavorites(userId)
return await ProductModel.find({
category: { $in: favorites.map(f => f.category) }
}).limit(5)
}
```
五、部署检查清单
1. ✅ 域名备案(如使用自有服务器)
2. ✅ HTTPS证书配置
3. ✅ 微信小程序合法域名配置
4. ✅ 数据库索引优化(user_id, item_id联合索引)
5. ✅ 接口压力测试(JMeter)
六、推荐开源项目参考
1. [uni-app生鲜模板](https://ext.dcloud.net.cn/plugin?id=1234)
2. [微信小程序云开发示例](https://developers.weixin.qq.com/miniprogram/dev/wxcloud/basis/getting-started.html)
3. [Spring Boot + Vue生鲜系统](https://github.com/xxx/fresh-mall)
通过以上方案,您可以在3-5个工作日内完成收藏功能开发及部署。建议先在测试环境验证收藏/取消收藏的原子性操作,再上线生产环境。