第六天:通知公告与费用管理模块开发
一、需求分析
通知公告与费用管理是社团运营中不可或缺的辅助功能,第六天的工作重点在于实现通知公告的发布管理和社团费用的缴纳记录管理。通知公告用于社团向成员发布重要信息、活动通知、政策变更等内容,是社团内部沟通的重要渠道。费用管理用于记录社团活动涉及的会费、活动经费等费用收支情况,便于社团财务的透明化管理。根据系统设计,通知公告(Notice)包含所属社团、标题、内容、状态、创建者等属性。通知状态分为草稿(status=0)和发布(status=1)两种,发布后的通知对社团成员可见,草稿状态的通知只有创建者可以查看和编辑。通知支持富文本内容格式,可以包含文字、图片、链接等多种元素,满足不同类型通知的展示需求。社团管理员可以发布、编辑、删除本社团的通知;普通成员只能查看已发布的通知,不能进行编辑操作。通知列表应支持按发布时间排序,最新发布的通知显示在最前面,还应提供通知详情查看功能,让成员能够阅读通知的完整内容。为了防止通知遗漏,系统还可以实现通知提醒功能,在成员登录后显示未读通知数量,或者通过前端轮询实时推送新通知。费用记录(FeeRecord)用于记录社团活动涉及的各种费用,包括会费、活动经费、材料费、场地费等。费用记录包含所属社团、用户、费用类型、金额、说明、状态、创建者等属性。费用状态分为待缴费(status=0)、已缴费(status=1)、逾期(status=2)三种。社团管理员可以创建费用记录,指定缴费用户、费用类型、金额、说明等信息;用户可以查看自己的费用记录并进行缴费操作;缴费后状态更新为已缴费,同时记录缴费时间。系统应提供费用统计功能,帮助社团管理员了解社团财务状况,包括总收入、总支出、待收款项等统计信息。费用记录还应支持按时间范围查询、按类型筛选等功能,便于财务对账和审计。
二、开发任务
本次开发任务涵盖通知公告管理和费用记录管理两个子模块。首先是通知发布功能的实现,社团管理员可以发布本社团的通知,发布接口接收通知标题、通知内容、是否立即发布等参数。创建时如果选择立即发布,则状态设为已发布(status=1),否则状态为草稿(status=0)。通知内容支持富文本编辑器,允许插入图片、链接等元素。通知标题在本社团内应具有唯一性,防止通知混淆。发布通知时还可以选择@提及特定成员,被提及的成员会收到通知提醒(如果实现了提醒功能)。其次是通知列表查询功能的实现,普通用户可以查看自己所在社团的已发布通知列表,社团管理员可以查看本社团的所有通知(包括草稿)。通知列表应支持按状态筛选、按发布时间排序、分页展示等功能。返回的通知信息应包含通知标题、发布时间、创建者、是否已读等标识,方便用户快速浏览。第三是通知详情查询功能的实现,查询单个通知的详细信息,包括通知内容全文、发布时间、创建者信息等。查看通知详情后,系统应标记该通知为已读状态(如果实现了已读功能)。社团管理员查看本社团通知时,还应显示通知的阅读统计信息,包括已读人数、未读人数等。第四是通知编辑和删除功能的实现,社团管理员可以编辑或删除本社团的通知。编辑时如果通知已发布,编辑后保持发布状态;如果通知是草稿状态,编辑后可以选择是否发布。删除操作需要二次确认,防止误删;删除后通知不可恢复,对应的阅读记录也一并删除。第五是费用记录创建功能的实现,社团管理员可以创建费用记录,指定缴费用户、费用类型(会费、活动经费、其他等)、金额、费用说明、截止日期等参数。创建时费用状态为待缴费,如果当前时间超过截止日期则状态自动设为逾期。费用类型应支持自定义或从预定义列表选择,便于统计分析。第六是费用记录查询功能的实现,用户可以查看自己的费用记录列表,包括待缴费、已缴费、逾期的记录。社团管理员可以查看本社团的所有费用记录,包括每个成员的费用缴纳情况。查询支持按状态筛选、按时间范围筛选、按类型筛选等功能。第七是费用缴纳功能的实现,用户可以对待缴费的费用记录进行缴费操作,缴费接口需要验证费用状态是否为待缴费,验证用户身份是否为费用记录中的缴费用户。缴费成功后,费用状态更新为已缴费,记录实际缴费时间。系统还应提供批量缴费功能,允许用户一次性缴纳多条费用记录。第八是费用统计功能的实现,社团管理员可以查看本社团的费用统计数据,包括总收入金额、总支出金额、待收款项金额、逾期款项金额、各类型费用分布等统计报表。统计数据应以图表形式展示,便于直观理解。
三、实现步骤
接下来详细说明各功能的实现步骤。通知发布功能需要设计CreateNoticeDTO数据传输对象,包含通知标题、通知内容、是否发布(isPublish)等字段,通知标题长度限制在50字以内,通知内容支持HTML格式。NoticeController中新增createNotice接口,调用NoticeService的createNotice方法。Service层验证当前用户是否为该社团的社团管理员,然后创建Notice实体对象,设置标题、内容、状态(根据isPublish参数决定)、创建者ID、社团ID等属性,调用Mapper插入数据库。如果选择立即发布,则通知状态设为1。通知列表查询功能需要在NoticeService中定义listNotices方法,参数包括社团ID、用户ID(用于查询用户所在社团的通知)、通知状态、页码、每页数量等。对于普通用户,只能查询状态为已发布(status=1)的通知;对于社团管理员,可以查询所有状态的通知。Mapper层编写动态SQL,关联User表获取创建者姓名,关联Club表获取社团名称,按创建时间倒序排列。返回结果封装成分页对象。通知详情查询功能需要设计NoticeDetailVO视图对象,包含通知的所有字段以及创建者详细信息。NoticeService的getNoticeById方法首先查询通知基本信息,如果通知不存在抛出异常;如果通知状态为草稿且当前用户不是创建者也不是社团管理员,抛出无权访问异常;否则返回通知详情。如果实现了已读功能,在查询详情时同时创建或更新通知阅读记录。通知编辑功能需要设计UpdateNoticeDTO,包含通知ID、通知标题、通知内容等字段。Controller中新增updateNotice接口,Service层验证当前用户是否为通知创建者且社团管理员,然后更新通知信息。编辑后保持原有发布状态不变。通知删除功能需要验证用户权限后调用Mapper删除通知记录,同时删除关联的阅读记录。费用记录创建功能需要设计CreateFeeRecordDTO,包含用户ID、费用类型、金额、说明、截止日期等字段。FeeRecordController中新增createFeeRecord接口,Service层验证当前用户是否为社团管理员,然后创建FeeRecord实体,设置各项属性,状态根据当前时间与截止日期比较设为待缴费或逾期。费用记录查询功能类似通知,区分普通用户和社团管理员的查询权限。费用缴纳功能需要设计PayFeeDTO,包含费用记录ID。Controller中新增payFee接口,Service层验证费用状态和用户身份后更新费用状态为已缴费,记录缴费时间。费用统计功能需要在FeeRecordService中定义getFeeStatistics方法,按社团ID统计各类费用数据,返回统计结果包括总收入、总支出、待收款项、各类型费用明细等。
四、验证方法
通知公告和费用管理模块的验证需要覆盖各种使用场景。首先验证通知发布功能,社团管理员创建草稿通知,验证创建成功状态为草稿;创建并发布通知,验证创建成功状态为已发布;使用普通用户发布通知,验证返回权限不足提示;发布时填写标题为空,验证表单校验提示。其次验证通知列表查询功能,普通用户查看社团已发布通知列表,验证只显示已发布通知;社团管理员查看通知列表,验证包括草稿和已发布通知;验证分页和排序功能正确;切换社团查看,验证通知列表随社团变化。第三验证通知详情查询功能,查看已发布通知详情,验证内容显示完整;查看草稿通知(自己创建的),验证可以查看;查看草稿通知(他人创建的),验证返回无权访问提示;多次查看同一通知,验证不重复创建阅读记录。第四验证通知编辑功能,编辑已发布通知,验证编辑成功状态不变;编辑草稿通知,验证编辑成功;编辑不存在的通知,验证返回不存在提示;编辑他人创建的通知,验证返回权限不足提示。第五验证通知删除功能,删除已发布通知,验证删除成功;删除草稿通知,验证删除成功;删除后查询,验证通知不再显示。第六验证费用记录创建功能,社团管理员创建会费记录,验证创建成功;设置截止日期为过去时间,验证状态自动设为逾期;使用普通用户创建费用记录,验证返回权限不足提示。第七验证费用记录查询功能,用户查看自己的费用记录,验证显示所有状态的记录;筛选待缴费记录,验证只显示待缴费记录;社团管理员查看所有费用记录,验证显示完整信息。第八验证费用缴纳功能,用户对待缴费记录缴费,验证缴费成功状态更新为已缴费;对已缴费记录再次缴费,验证返回已缴费提示;对逾期记录缴费,验证缴费成功状态更新;对不存在的记录缴费,验证返回不存在提示。第九验证费用统计功能,社团管理员查看费用统计,验证各项统计数据正确;验证统计报表数据与明细数据一致;没有费用数据时查看统计,验证显示零值。
保定市网站建设_网站建设公司_版式布局_seo优化