前言
✨ 博主介绍:一线全栈工程师,毕设实战引路人。技术栈覆盖Java、Python、C#、PHP、Node.js及UniApp跨端开发,擅长多语言项目落地与架构设计。持续分享毕设源码、开题报告、技术选型心得与职场踩坑经验。用工程化思维写代码,帮你把毕设做成作品集。👍👍
👇精彩专栏 推荐订阅👇
Java精品项目案例【3000套】
Python精品项目案例【500套】
uniapp/微信小程序/安卓app【800套】
2026-2027届Java毕业设计优质选题汇总:百个热门方向完整推荐✅
2026-2027届Python毕业设计优质选题汇总:百个热门方向完整推荐✅
2026-2027届小程序/APP毕业设计优质选题汇总:百个热门方向完整推荐✅
✅获取源码请私信✅
感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以找我咨询,希望帮助更多的人❤️
系统实现
普通用户功能实现
通知公告查看功能实现
普通用户通过访问NoticeController的get_list方法获取公告列表。该方法接收前端查询条件并调用服务层select方法执行数据库查询,最终以分页形式返回公告数据供前端展示。
通知公告查看界面
鲜花咨询浏览功能实现
普通用户通过访问FlowersInformationController的get_list方法浏览鲜花资讯。该方法解析请求中的查询参数与配置参数,调用服务层分页查询接口获取鲜花信息列表并返回。
鲜花咨询浏览界面
评论交流功能实现
普通用户通过访问CommentController继承的BaseController中get_list方法查看评论列表。该模块支持用户对鲜花信息发表评论,评论数据通过服务层insert方法持久化存储。
评论交流界面
鲜花商品搜索浏览功能实现
普通用户通过访问GoodsController的get_list方法实现商品搜索与浏览。该方法接收商品名称、分类等查询条件,调用服务层执行模糊匹配查询并返回分页结果。
鲜花商品搜索浏览界面
收货地址添加功能实现
普通用户通过访问AddressController的add方法添加收货地址。该方法读取请求体中的地址信息参数,进行必填项校验后调用服务层insert方法将地址数据写入数据库。收货地址添加界面如图5-5所示。
收货地址添加界面
商品购物车查看功能实现
普通用户通过访问CartController的get_list方法查看购物车商品列表。该方法根据当前登录用户ID查询购物车表中关联的商品信息,返回商品名称、价格、数量等数据。
商品购物车查看界面
鲜花商品下单功能实现
普通用户通过访问OrderController继承的BaseController中add方法完成下单操作。该方法读取订单信息并调用服务层insert方法创建订单记录,同时更新商品库存。
鲜花商品下单界面
商品售后申请功能实现
普通用户通过访问OrderAfterSaleController的add方法提交售后申请。该方法读取售后申请参数并进行订单编号等必填项校验,调用服务层insert方法将售后记录存入数据库。
商品售后申请界面
订单配送查看功能实现
普通用户通过访问LogisticsDeliveryController的get_list方法查看订单配送状态。该方法根据订单编号查询物流表中的配送进度、配送员及联系方式等信息并返回。
订单配送查看界面
收藏记录查看功能实现
普通用户通过访问CollectController的get_list方法查看个人收藏记录。该方法根据用户ID查询收藏表,返回用户收藏的鲜花商品信息列表供前端展示。
收藏记录查看界面
点赞记录查看功能实现
普通用户通过访问PraiseController的get_list方法查看点赞记录。该方法根据用户ID筛选点赞表中的数据,返回用户已点赞的评论或商品信息。
点赞记录查看界面
评论记录查看功能实现
普通用户通过访问CommentController的get_list方法查看个人历史评论。该方法根据用户ID查询评论表,返回评论内容、评论时间及对应商品信息。
评论记录查看界面
管理员功能实现
后台销售数据管理功能实现
管理员通过访问OrderController的getList方法查看销售统计数据。该方法支持按时间范围、订单状态等条件筛选订单数据并计算销售总额与订单数量。
后台销售数据管理界面
用户管理功能实现
管理员通过访问UserController的get_list方法管理用户账户。该方法支持按用户名、状态等条件查询用户列表,管理员可执行禁用、启用或删除用户操作。
用户管理界面
轮播图管理功能实现
管理员通过访问SlidesController的add、set、del方法管理轮播图。添加时调用add方法校验标题参数并插入数据,修改时调用set方法更新图片链接与排序。
轮播图管理界面
通知公告管理功能实现
管理员通过访问NoticeController的add、set、del方法管理公告。添加公告时校验标题不能为空,修改公告时根据条件更新公告内容,删除公告时需提供查询条件。
通知公告管理界面
鲜花资讯管理功能实现
管理员通过访问ArticleController的add、set、del方法管理鲜花资讯。添加时校验分类与标题字段,修改时根据查询条件更新资讯内容。
鲜花资讯管理界面
鲜花信息管理功能实现
管理员通过访问FlowersInformationController的add和set方法管理鲜花信息。添加时处理花语、订购说明等字段并调用addEntity方法插入,修改时根据条件更新商品详情。
鲜花信息管理界面
分类列表管理功能实现
管理员通过访问GoodsTypeController的get_list方法管理商品分类。该方法支持按分类名称查询,管理员可新增、修改或删除分类,分类数据用于商品发布时选择。
分类列表管理界面
订单列表管理功能实现
管理员通过访问OrderController的getBusinessOrderList方法查看所有订单。该方法通过SQL联查订单表和商品表获取商家订单列表,支持按订单号、状态筛选。
订单列表管理界面
订单配送管理功能实现
管理员通过访问LogisticsDeliveryController的set方法更新订单配送状态。该方法根据配送单号修改物流表中的配送进度、配送员信息。
订单配送管理界面
订单售后管理功能实现
管理员通过访问OrderAfterSaleController的get_list和set方法管理售后申请。管理员可查看售后列表,根据申请内容审核并更新售后状态。
订单售后管理界面
用户权限管理功能实现
管理员通过访问UserGroupController的get_list方法管理用户组权限。该方法查询用户组列表,管理员可为不同角色分配菜单访问权限。
用户权限管理界面
数据库参考
CREATE TABLE `exam` (
`exam_id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT COMMENT '考试id',
`name` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '考试名称:[2,32]',
`duration` int(11) DEFAULT NULL COMMENT '答题时长',
`score` double(8,2) DEFAULT '0.00' COMMENT '总分',
`status` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '状态:启用、禁用',
`create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`open_start` datetime DEFAULT NULL COMMENT '开放开始时间',
`open_end` datetime DEFAULT NULL COMMENT '开放结束时间',
`reuse_state` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '启用' COMMENT '多次答题:启用、禁用',
PRIMARY KEY (`exam_id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=COMPACT COMMENT='考试';
ser_answer` (
`user_answer_id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT COMMENT '用户答题ID',
`user_id` mediumint(8) NOT NULL COMMENT '用户ID',
`exam_id` mediumint(8) unsigned NOT NULL DEFAULT '0' COMMENT '考试id',
`score` double(8,2) DEFAULT '0.00' COMMENT '分数',
`answers` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT '答案',
`score_detail` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT '评分详情',
`objective_score` double(8,2) DEFAULT '0.00' COMMENT '客观题得分',
`subjective_score` double(8,2) DEFAULT '0.00' COMMENT '主观题得分',
`score_state` tinyint(2) DEFAULT '0' COMMENT '评分状态',
`nickname` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '提交人',
`create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`comment_desc` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '评语',
PRIMARY KEY (`user_answer_id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='用户答题';
DROP TABLE IF EXISTS `code_token`;
CREATE TABLE `code_token` (
`code_token_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '验证码ID',
`token` varchar(255) CHARACTER SET latin1 COLLATE latin1_swedish_ci DEFAULT NULL COMMENT '令牌',
`code` varchar(255) CHARACTER SET latin1 COLLATE latin1_swedish_ci DEFAULT NULL COMMENT '验证码',
`expire_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '失效时间',
`create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`code_token_id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=COMPACT COMMENT='验证码';
DROP TABLE IF EXISTS `collect`;
CREATE TABLE `collect` (
`collect_id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '收藏ID',
`user_id` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '收藏人ID',
`source_table` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '来源表',
`source_field` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '来源字段',
`source_id` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '来源ID',
`title` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '标题',
`img` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '封面',
`create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`collect_id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='收藏';
DROP TABLE IF EXISTS `exam_question`;
CREATE TABLE `exam_question` (
`exam_question_id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT COMMENT 'ID',
`type` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '类型',
`title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '题目',
`question_item` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '选项',
`answer` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '参考答案',
`score` double(8,2) DEFAULT NULL COMMENT '总分',
`question_order` int(11) DEFAULT NULL COMMENT '排序',
`exam_id` mediumint(8) unsigned NOT NULL COMMENT '所属试卷',
`create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`answer_analysis` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '答案解析',
PRIMARY KEY (`exam_question_id`) USING BTREE,
KEY `exam_id` (`exam_id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='试题';
# 验证码token
class Code_token(controllerClass):
def __init__(self, config={}):
"""
构造函数
@param {Object} config 配置参数
"""
config_init = {
# 选择的模板那路径模板
"tpl": "./code_token/",
# 选择的服务
"service": "code_token",
# 接口地址
"get_api": ["send_email", "verify_email_code"]
}
config_temp = config
config_temp.update(config_init)
super(Code_token, self).__init__(config_temp)
# 发送验证码到邮箱
def Send_email(self, ctx):
"""
发送验证码到邮箱
@param {Object} ctx http请求上下文
@return {Object} 返回json-rpc格式结果
"""
query = dict(ctx.query)
if "email" not in query:
ret = {
"error": {
"code": 30000,
"message": "参数错误",
}
}
return ctx.response(json.dumps(ret, ensure_ascii=False))
email = query.pop("email")
# 生成验证码
code = ''.join(random.choices(string.digits, k=6))
now = datetime.now(timezone.utc)
token = md5(f"{code}_{now.timestamp()}".encode()).hexdigest()
# 配置邮件内容
subject = "找回密码"
body = f'<h1>验证码为:{code}</h1>'
from_email = "3216252476@qq.com" # 发件人邮箱
to = [email] # 收件人列表
# 创建邮件对象
message = EmailMessage(subject, body, from_email, to)
# 设置邮件内容类型为 HTML(默认是纯文本)
message.content_subtype = "html"
try:
# 发送邮件
message.send()
# 保存验证码到数据库
service = self.service
# 获取当前时间(UTC 时间)
now = datetime.now(timezone.utc)
# 调整为 UTC+8 时区(手动计算)
beijing_time = now + timedelta(hours=8)
# 增加 10 分钟
future_time = beijing_time + timedelta(minutes=10)
# 格式化为 'yyyy-MM-dd HH:mm:ss'
formatted_future_time = future_time.strftime('%Y-%m-%d %H:%M:%S')
body = {
"token": token,
"code": code,
"expire_time": formatted_future_time
}
result = service.Add(body, self.config)
# 返回结果
ret = {
"result": result,
"token": token
}
return ctx.response(json.dumps(ret, ensure_ascii=False))
except Exception as e:
ret = {
"error": str(e)
}
return ctx.response(json.dumps(ret, ensure_ascii=False))
# 验证验证码是否正确
def Verify_email_code(self, ctx):
"""
验证验证码是否正确
@param {Object} ctx http请求上下文
@return {Object} 返回json-rpc格式结果
"""
query = dict(ctx.query)
if "token" not in query or "code" not in query:
ret = {
"error": {
"code": 30000,
"message": "参数错误"
}
}
return ctx.response(json.dumps(ret, ensure_ascii=False))
else:
token = query.pop("token")
code = query.pop("code")
service = self.service
obj = service.Get_obj({"token": token}, {"like": False})
if obj:
expire_time = make_aware(datetime.strptime(obj['expire_time'], "%Y-%m-%d %H:%M:%S"))
now = datetime.now(timezone.utc)
# 调整为 UTC+8 时区(手动计算)
beijing_time = now + timedelta(hours=8)
if beijing_time < expire_time:
if code == obj['code']:
ret = {
"result": 1
}
return ctx.response(json.dumps(ret, ensure_ascii=False))
else:
ret = {
"error": {
"code": 30000,
"message": "验证码错误"
}
}
return ctx.response(json.dumps(ret, ensure_ascii=False))
else:
ret = {
"error": {
"code": 30000,
"message": "验证码已失效"
}
}
return ctx.response(json.dumps(ret, ensure_ascii=False))
else:
ret = {
"error": {
"code": 30000,
"message": "token请求错误"
}
}
return ctx.response(json.dumps(ret, ensure_ascii=False))
# 水果科普
class Fruit_science_popularization(controllerClass):
def __init__(self, config={}):
"""
构造函数
@param {Object} config 配置参数
"""
config_init = {
# 选择的模板那路径模板
"tpl": "./fruit_science_popularization/",
# 注册API
"get_api": [],
# 注册post api路由
"post_api": [],
# 选择的服务
"service": "fruit_science_popularization",
}
config_temp = config
config_temp.update(config_init)
super(Fruit_science_popularization , self).__init__(config_temp)
# 普通用户
class Regular_user(controllerClass):
def __init__(self, config={}):
"""
构造函数
@param {Object} config 配置参数
"""
config_init = {
# 选择的模板那路径模板
"tpl": "./regular_user/",
# 注册API
"get_api": [],
# 注册post api路由
"post_api": [],
# 选择的服务
"service": "regular_user",
}
config_temp = config
config_temp.update(config_init)
super(Regular_user , self).__init__(config_temp)
前端:基于uni-app框架构建跨平台用户界面,使用HTML5、CSS3和JavaScript/Vue.js实现页面结构与交互逻辑,通过uni-app内置路由或Vue Router管理页面导航,Vuex或Pinia维护全局状态。采用uni-ui或uView等组件库快速搭建界面,使用uni.request或Axios(经适配)封装HTTP请求实现与后端的数据通信,同时可调用uni-app提供的丰富原生API(如相机、定位、支付等)增强移动端能力。
后端:基于Spring Boot框架搭建,遵循Controller-Service-Mapper三层架构。Controller层接收前端请求并校验参数,Service层处理核心业务逻辑,Mapper层通过MyBatis或MyBatis-Plus完成数据库操作。使用Spring Security或Shiro结合JWT实现用户认证与权限控制。
数据库:采用MySQL存储持久化数据,Redis缓存热点信息以提升系统性能。
开发工具:使用HBuilderX或VSCode开发前端(uni-app),IDEA开发后端,Git进行版本管理,Maven管理后端依赖,npm或yarn管理前端依赖,并通过HBuilderX的App发布功能或命令行工具完成多端(iOS、Android、H5、各小程序)打包发布。
👇精彩专栏 推荐订阅👇
Java精品项目案例【3000套】
Python精品项目案例【500套】
uniapp/微信小程序/安卓app【800套】
2026-2027届Java毕业设计优质选题汇总:百个热门方向完整推荐✅
2026-2027届Python毕业设计优质选题汇总:百个热门方向完整推荐✅
2026-2027届小程序/APP毕业设计优质选题汇总:百个热门方向完整推荐✅
✅获取源码请私信✅
感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以找我咨询,希望帮助更多的人❤️
网硕互联帮助中心
![【关注可白嫖源码】--课程设计--毕业设计--springboot高校选课系统[编号:project82776] (案件分析)-网硕互联帮助中心](https://www.wsisp.com/helps/wp-content/uploads/2026/09/20260909041721-6aa0ddd1b1f2f-220x150.png)
-网硕互联帮助中心](https://www.wsisp.com/helps/wp-content/uploads/2026/09/20260909040108-6aa0da04c0ad1-220x150.png)




评论前必须登录!
注册