菜单

产品收藏与关注

相关源文件

1. 简介

本文档描述了 Mall 电商系统 mall-portal 模块中的商品收藏和品牌关注功能。这些功能允许会员(注册用户)

  1. 收藏(喜欢)他们感兴趣的商品
  2. 关注(留意)他们喜欢的品牌

这些个性化功能通过允许会员维护他们喜欢的商品和品牌列表以供将来参考,从而增强了用户体验。

有关会员注册和认证的信息,请参阅 会员服务

来源

2. 系统概览

商品收藏 & 关注系统包含两个并行的子系统:

  1. 商品收藏:管理会员收藏的商品
  2. 品牌关注:管理会员关注的品牌

两个子系统都遵循相似的架构模式,使用 MongoDB 进行数据存储。

组件架构

来源

3. 商品收藏

商品收藏功能允许会员维护一个收藏的商品列表。

3.1 数据模型

MemberProductCollection 类以文档形式存储在 MongoDB 中,结构如下:

字段类型描述索引
id字符串文档 ID是(主键)
memberId长期会员 ID
memberNickname字符串会员昵称
memberIcon字符串会员头像 URL
productId长期商品 ID
productName字符串商品名称
productSubTitle字符串商品副标题
productPrice字符串商品价格
productPic字符串商品图片 URL

3.2 API 端点

MemberProductCollectionController 提供以下端点:

端点方法描述
/member/productCollection/addPOST将商品添加到收藏
/member/productCollection/deletePOST从收藏中移除商品
/member/productCollection/listGET列出收藏的商品(带分页)
/member/productCollection/detailGET获取收藏商品的详情
/member/productCollection/clearPOST清空所有收藏的商品

来源

3.3 操作流程

添加商品到收藏

来源

4. 品牌关注

品牌关注功能允许会员关注他们感兴趣的品牌。

4.1 数据模型

MemberBrandAttention 类以文档形式存储在 MongoDB 中,结构如下:

字段类型描述索引
id字符串文档 ID是(主键)
memberId长期会员 ID
memberNickname字符串会员昵称
memberIcon字符串会员头像 URL
brandId长期品牌 ID
brandName字符串品牌名称
brandLogo字符串品牌 Logo URL
brandCity字符串品牌所在城市
createTime日期关注创建时间

来源

4.2 API 端点

MemberAttentionController 提供以下端点:

端点方法描述
/member/attention/addPOST添加品牌关注
/member/attention/deletePOST移除品牌关注
/member/attention/listGET列出品牌关注(带分页)
/member/attention/detailGET获取品牌关注的详情
/member/attention/clearPOST清空所有品牌关注

来源

4.3 操作流程

添加品牌关注

来源

5. 与其他系统的集成

商品收藏 & 关注系统与 Mall 电商系统的其他几个组件集成:

5.1 MongoDB 集成

商品收藏和品牌关注都使用 MongoDB 进行数据存储,并利用 Spring Data MongoDB 仓库。

5.2 会员系统集成

两个子系统都从 UmsMemberService 获取当前已认证的会员,以便将收藏和关注关联到相应的会员。

5.3 商品和品牌集成

在将商品添加到收藏或关注品牌时,系统可以选择性地检索其他信息:

  • 商品详情(名称、副标题、价格、图片)通过 PmsProductMapper 获取。
  • 品牌详情(名称、Logo)通过 PmsBrandMapper 获取。

此行为由 mongo.insert.sqlEnable 配置属性控制。启用时,通过从 MySQL 获取额外数据,确保 MongoDB 文档包含全面的信息。

来源

6. 实现细节

6.1 分页支持

商品收藏和品牌关注都通过 Spring Data 的 Pageable 接口支持分页。

6.2 数据验证

两个实现都包含基本验证:

  • 检查商品/品牌 ID 是否为空。
  • 在添加到收藏/关注之前,验证商品/品牌是否存在于数据库中。
  • 对于商品,还检查商品是否未被标记为已删除。

来源