一、收藏功能核心设计
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-店铺,
`create_time` datetime DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
UNIQUE KEY `uk_user_item` (`user_id`,`item_id`)
) ENGINE=InnoDB;
```
2. 核心接口
- 添加收藏:`POST /api/favorite/add`
- 取消收藏:`POST /api/favorite/remove`
- 获取收藏列表:`GET /api/favorite/list?type=1&page=1`
3. 前端交互
- 商品详情页:心形图标(未收藏时空心,收藏后实心)
- 个人中心:独立"我的收藏"入口,支持分类筛选(商品/店铺)
- 实时反馈:收藏成功Toast提示,取消时图标动画变化
二、万象源码部署方案
1. 环境准备
- 服务器要求:
- 基础版:1核2G(测试环境)
- 生产环境:2核4G+(建议)
- 依赖安装:
```bash
示例(基于Node.js环境)
npm install -g pm2
npm install mysql2 sequelize axios
```
2. 源码部署步骤
```bash
1. 克隆源码
git clone https://github.com/your-repo/fresh-miniapp.git
cd fresh-miniapp
2. 配置环境变量
cp .env.example .env
修改.env中的数据库连接、JWT密钥等
3. 初始化数据库
npx sequelize db:migrate
npx sequelize db:seed:all
4. 启动服务
pm2 start ecosystem.config.js
```
3. 小程序配置
- 在微信公众平台配置:
- 合法域名:添加部署服务器的HTTPS域名
- 业务域名:同上(如需网页跳转)
- 项目配置:
```json
// app.json
{
"pages": [
"pages/index/index",
"pages/favorite/favorite"
],
"requiredBackgroundModes": ["audio"] // 如需语音播报
}
```
三、优化建议
1. 性能优化
- 收藏列表分页加载(每页10-20条)
- 商品信息缓存(Redis存储热门商品)
- 接口防抖:连续点击收藏按钮时1秒内只处理一次
2. 用户体验增强
- 收藏动画:使用CSS3实现平滑过渡
```css
.favorite-icon {
transition: all 0.3s ease;
}
.favorite-icon.active {
transform: scale(1.2);
color: ff4d4f;
}
```
- 空状态设计:当收藏列表为空时显示引导图+文案
3. 数据安全
- 接口鉴权:JWT或微信小程序session_key验证
- 敏感操作日志:记录收藏/取消操作时间、IP
- 定期清理:30天未访问的匿名用户收藏数据
四、常见问题解决方案
1. 微信小程序登录问题
- 错误码`45011`:频率限制,需实现指数退避重试
- 解决方案:
```javascript
function loginWithRetry(maxRetry = 3) {
return new Promise((resolve, reject) => {
let retryCount = 0;
const tryLogin = async () => {
try {
const res = await wx.login();
resolve(res);
} catch (err) {
if (retryCount < maxRetry) {
retryCount++;
await new Promise(r => setTimeout(r, 1000 * retryCount));
tryLogin();
} else {
reject(err);
}
}
};
tryLogin();
});
}
```
2. 跨端兼容性
- 不同手机型号的收藏图标显示差异
- 解决方案:使用字体图标(如iconfont)替代图片
3. 数据同步
- 用户更换设备后收藏数据丢失
- 解决方案:绑定openid后实现云端同步
五、部署后测试要点
1. 功能测试
- 正常流程:添加→查看→取消
- 异常流程:网络中断、权限不足
2. 性能测试
- 1000用户并发时接口响应时间<500ms
- 收藏列表加载时间<1s(首屏)
3. 兼容性测试
- 主流手机型号(华为、小米、iPhone等)
- 微信基础库版本覆盖(建议支持v2.10.0+)
通过以上方案,可实现一个稳定、易用的生鲜小程序收藏功能,结合万象源码的快速部署能力,通常可在1-3个工作日内完成从开发到上线的全流程。实际部署时建议先在测试环境验证所有功能,再逐步放量到生产环境。