1. 项目概述与背景
萌宠商城网站是一个基于SpringBoot框架开发的综合性宠物服务平台,旨在解决当前宠物行业存在的服务割裂、信息分散等问题。作为一名长期从事电商系统开发的工程师,我在实际项目中发现传统宠物服务存在三大痛点:商品购买与医疗服务分离、领养流程繁琐、社区互动薄弱。这个项目正是针对这些痛点设计的全栈解决方案。
系统采用前后端分离架构,后端基于SpringBoot 2.7实现,前端使用Vue 3+Element Plus,数据库选用MySQL 5.7配合Redis缓存。特别值得一提的是,我们在技术选型时特别考虑了宠物行业的特殊性——例如医疗预约需要高实时性,因此引入了WebSocket实现即时通知;领养信息更新频繁,采用Elasticsearch提升搜索效率。这些设计决策都源于对行业需求的深入理解。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 核心功能模块详解
2.1 用户体系设计
系统采用RBAC(基于角色的访问控制)模型,区分普通用户、商家和管理员三种角色。用户表设计时特别注意了宠物主人的特殊需求:
java复制@Entity
@Table(name = "users")
public class User {
@Id @GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(unique = true, nullable = false)
private String username; // 支持手机号/邮箱登录
@JsonIgnore
private String password;
@Embedded
private PetPreference preference; // 嵌入式对象,记录用户宠物偏好
@OneToMany(mappedBy = "owner")
private List<Pet> pets; // 用户拥有的宠物列表
}
关键点:用户实体与宠物信息建立一对多关系,便于后续服务推荐。密码字段使用@JsonIgnore避免序列化泄露,实际项目应采用BCrypt加密。
2.2 商品管理系统实现
商品模块采用分类+标签的双维度组织方式,核心表结构包括:
sql复制CREATE TABLE `product` (
`id` bigint NOT NULL AUTO_INCREMENT,
`name` varchar(100) NOT NULL COMMENT '商品名称',
`category_id` int NOT NULL COMMENT '分类ID',
`price` decimal(10,2) NOT NULL COMMENT '售价',
`stock` int NOT NULL DEFAULT '0' COMMENT '库存',
`is_medical` tinyint(1) DEFAULT '0' COMMENT '是否医疗用品',
`requires_prescription` tinyint(1) DEFAULT '0' COMMENT '是否需要处方',
PRIMARY KEY (`id`),
KEY `idx_category` (`category_id`),
FULLTEXT KEY `ft_name` (`name`) /*!50100 WITH PARSER `ngram` */
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
性能优化技巧:
- 为高频查
