博主主页 :猫头鹰源码
博主简介:Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万+、专注Java技术领域和毕业设计项目实战
主要内容 :毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询
文末联系获取
项目介绍:
随着社会的不断发展和教育事业的不断壮大,各种信息化技术的应用也越来越广泛,校园缴费系统作为一种信息化管理工具,也得到了越来越多学校和教育机构的重视和使用。在这个背景下,研究和开发一款完善、高效、易用的校园缴费系统具有非常重要的意义。
首先,校园缴费业务管理系统这块发展速度较慢,大部分中学、小学主要是集中在学杂费收取系统的建设,缴费业务过于单一,加上不同年级具有不同的学费标准,收取各种类型的费用,以及统计各种类型的缴费情况都需要投入大量的人力物力,随着学校规模的扩大,由此带来的问题更加突出。其次,校园缴费系统可以提高工作效率,减轻工作负担。而传统的缴费方式需要学校财务部门手动核对每一笔缴费记录,需要大量的人力物力,而校园缴费系统则可以自动完成数据的收集和核对,从而提高工作效率,减轻工作负担。此外,校园缴费系统还可以提高缴费的便捷性。同时可以实现线上支付这种缴费方式,方便学生进行缴费。
用例描述:
本系统的用例主要分为管理员用例和学生用例,其用例描述如下:
(1)注册与登录用例:学生用户可以通过注册功能创建账号并登录系统。在注册时,学生需要提供正确的学号,否则无法进行注册,符合学号格式则可以选择一个安全密码的后进行注册。学生登录时需要输入正确的学号和密码。管理员可以通过预先设置的账号登录功能进入系统管理界面,输入正确的管理员账号和密码即可进入系统管理界面。
(2)学生账号管理用例:管理员都可以对学生账号等进行操作。在添加学生账号时,管理员需要输入学生的账号资料,并为其分配账号和密码。在调整学生帐户时,管理者能够更改学生的基本资料和登录凭据。同样,学生也可以更新自己帐户的信息和更改密码。但修改密码需要确认原密码后才能修改成功,管理员则不需要。
(3)缴费管理用例:缴费管理用例包括缴费类型管理、费用管理、管理员可以添加、修改、删除缴费类型,如学费、住宿费、杂费等。对每个缴费类型,管理员可以设置费用标准。管理员可以发送费用催缴通知,提醒学生及时缴费,并可以设置费用减免数目。
(4)消息通告与催缴信息用例:学生用户可以查看系统发布的消息通告,如学校活动、通知等,同时也可以收到费用催缴通知。管理员可以发布、修改、删除消息通告,查看催缴信息。
(5)管理员管理用例:管理员可以编辑操作管理员账号,在添加管理员账号时,需要输入管理员的账号资料,也就是分配账号和密码。在修改管理员账号时,管理员可以修改登录信息。在删除管理员账号时,直接点击删除即可。
系统包含技术:
后端:springBoot、mybatis
前端:bootstrap、js、css等,html页面
开发工具:idea
数据库:mysql 5.7
JDK版本:jdk1.8
部分截图说明:
下面是登录页面
下面是首页
管理员可以进行学生管理
管理员对费用类型管理
管理员查看费用缴纳信息
管理员对缴费管理
学生查看费用
部分代码:
/**列表数据*/
@GetMapping("/list")
@ResponseBody
public PageResultVo findCost(Cost cost, Integer limit, Integer page, HttpSession session){
String type = (String)session.getAttribute("type");
if(type.equals("02")){
Student student = (Student)session.getAttribute("userInfo");
cost.setSid(student.getId().toString());
}
PageHelper.startPage(page,limit);
List<Cost> costList = costService.selectByCondition(cost);
for(int i=0;i<costList.size();i++){
Map mp = new HashMap();
mp.put("cid",costList.get(i).getCid());
mp.put("sid",costList.get(i).getSid());
List<Waiver> waivers = waiverService.queryFilter(mp);
if(waivers.size()>0){
BigDecimal money = new BigDecimal(costList.get(i).getMoney());
BigDecimal fee = new BigDecimal(waivers.get(0).getFee());
costList.get(i).setFeeMoney(fee.setScale(2, BigDecimal.ROUND_HALF_UP).toString());
BigDecimal actual = money.subtract(fee).setScale(2, BigDecimal.ROUND_HALF_UP);
costList.get(i).setActualMoney(actual.toString());
}else{
BigDecimal money = new BigDecimal(costList.get(i).getMoney());
costList.get(i).setFeeMoney("无减免");
costList.get(i).setActualMoney(money.setScale(2, BigDecimal.ROUND_HALF_UP).toString());
}
}
PageInfo<Cost> pages = new PageInfo<>(costList);
return JsonData.table(costList,pages.getTotal());
}
/**编辑详情*/
@GetMapping("/edit")
@ResponseBody
public Cost edit(Model model, String id){
return costService.selectById(id);
}
/**编辑*/
@PostMapping("/edit")
@ResponseBody
public JsonData edit(Cost cost){
int a = costService.updateById(cost);
if (a > 0) {
return JsonData.success(null,"编辑成功!");
} else {
return JsonData.fail("编辑失败");
}
}
/**删除*/
@PostMapping("/del")
@ResponseBody
public JsonData del(String id){
try{
costService.deleteById(Integer.parseInt(id));
}catch(Exception ex){
JsonData.fail("出现错误");
}
return JsonData.success(null,"删除成功");
}
/**新增*/
@PostMapping("/add")
@ResponseBody
public JsonData add(Cost cost){
cost.setStatus("01");
Date date = new Date();
cost.setCreateTime(date);
int num = costService.addByCondition(cost);
if(num > 0){
return JsonData.success(null,"添加成功");
}else {
return JsonData.fail("添加失败");
}
}
以上就是部分功能展示,从整体上来看,本系统功能是十分完整的,界面设计简洁大方,交互友好,数据库设计也很合理,规模适中,代码工整,清晰,适合学习使用。
好了,今天就到这儿吧,小伙伴们点赞、收藏、评论,一键三连走起呀,下期见~~