立项背景和目标:针对家庭中任务分配混乱、成员参与积极性低的问题,打造「家庭任务管理系统」,目标是通过 “任务 - 奖励 - 兑换” 的闭环机制,让家务、学习等事务的分配更清晰,同时用虚拟资产(钻石、金币)激励成员主动参与,提升家庭协作效率与互动性。
软件功能、核心功能模块的介绍:
任务中心:支持发布 / 编辑 / 删除任务,可设置优先级、分类、截止时间及奖励,还能指定执行人并添加任务密码验证;成员可查看任务状态、完成任务并领取奖励。
家庭商店:支持上架商品(设置钻石 / 金币价格、库存),成员可用虚拟资产购买商品,购买后自动存入个人仓库,部分商品(如食品)使用后可返还资产。
个人中心:展示成员的虚拟资产余额、任务完成统计、仓库物品及购买记录,支持使用仓库物品。
管理员模块:可管理用户信息(调整资产、重置密码)、配置系统参数(钻石兑换金币比例、公告),并支持数据备份 / 恢复。
业务流程、功能路径描述:
任务流程:管理员 / 成员发布任务→成员查看并执行任务→完成任务(需密码则验证)→自动获得奖励资产。
商店流程:成员上架商品→其他成员浏览 / 搜索商品→用资产购买→商品存入仓库→成员使用物品(部分物品返还资产)。
管理流程:管理员进入管理面板→编辑用户信息 / 配置系统→备份 / 恢复数据。
整体架构和设计思路,不同模块使用的技术栈:
采用「前后端分离 + 关系型数据库」架构:前端用 HTML+CSS+JavaScript 实现页面交互,后端用 PHP(PDO)处理业务逻辑,数据库用 MySQL 存储数据。
技术栈:
前端:原生 HTML/CSS 构建页面,JavaScript 实现异步请求(AJAX)、模态框交互、数据渲染。
后端:PHP 作为服务端语言,通过 PDO 操作 MySQL 数据库,实现用户认证、任务 / 商品 / 资产的 CRUD 及事务处理(如购买商品时的库存扣减、资产扣除)。
数据库:设计 7 张核心表(users/tasks/shop_items 等),通过外键关联实现数据关联(如任务与创建人、商品与卖家)。
“我” 的负责模块和结果(尽可能量化):
负责模块:后端核心功能(任务管理、商店交易、资产结算)+ 前端页面交互逻辑。
结果:
实现 15 + 后端接口(登录、任务 CRUD、商品购买等),接口响应成功率 100%;
完成 5 个前端功能模块(任务中心、商店等),覆盖 90% 以上需求;
数据库事务处理模块(如购买商品)实现 0 数据不一致问题,保障资产与库存的准确性。
“我” 遇到的难点、坑,和解决方案:
难点 1:任务状态的动态判定(未开始 / 进行中 / 过期)。
坑:仅靠数据库字段无法实时反映任务状态(如到截止时间未完成应自动标记为过期)。
解决方案:在getTasks接口中,通过当前时间与任务的开始 / 截止时间对比,动态计算并修正任务状态后再返回给前端。
难点 2:商品购买的原子性操作(扣资产、减库存、加仓库)。
坑:分步操作易出现数据不一致(如扣了资产但库存未减)。
解决方案:使用 PDO 事务(beginTransaction/commit/rollBack),将多步操作封装为原子事务,任一环节失败则回滚所有操作。
难点 3:前端模态框的复用(添加 / 编辑任务共用一个弹窗)。
坑:弹窗状态易混乱(编辑时残留添加任务的默认值)。
解决方案:在弹窗打开前清空表单数据,根据操作类型(添加 / 编辑)动态设置标题和表单默认值。