总结
无论是哪家公司,都很重视高并发高可用的技术,重视基础,重视JVM。面试是一个双向选择的过程,不要抱着畏惧的心态去面试,不利于自己的发挥。同时看中的应该不止薪资,还要看你是不是真的喜欢这家公司,是不是能真的得到锻炼。其实我写了这么多,只是我自己的总结,并不一定适用于所有人,相信经过一些面试,大家都会有这些感触。
最后我整理了一些面试真题资料,技术知识点剖析教程,还有和广大同仁一起交流学习共同进步,还有一些职业经验的分享。
二、功能设计
本系统基于B/S模式,采用SpringBoot+VUE作为开发技术,MYSQL数据库设计开发,充分保证系统的稳定性。
本系统分为管理员和普通用户两种角色。
下图即为管理员用例图,管理员权限操作的功能包括对注册用户信息的管理,对场地,场地预约订单,公告,论坛帖子等信息的管理。
下图即为用户用例图,用户权限操作的功能包括参与论坛帖子发布与评论,查看公告,预约场地,收藏场地等。
管理员的功能结构图如下所示:
用户的功能结构图如下所示:
系统B/S架构原理图:
三、数据设计
概念模型的设计是为了抽象真实世界的信息,并对信息世界进行建模。它是数据库设计的强大工具。数据库概念模型设计可以通过E-R图描述现实世界的概念模型。系统的E-R图显示了系统中实体之间的链接。而且Mysql数据库是自我保护能力比较强的数据库,下图主要是对数据库实体的E-R图:
四、部分效果展示
4.1管理员功能模块
图4.1 即为编码实现的论坛管理界面,管理员在该界面中查看论坛回复信息,修改论坛帖子内容,可以删除论坛帖子。论坛信息包含帖子标题,用户姓名,用户手机号,用户身份证,查询的时候可以通过这些信息查询出来结果,添加内容的时候需要输入帖子类型,帖子标题,发布内容。
图4.2 即为编码实现的场地管理界面,管理员在该界面中可以更改场地信息,新增新的场地信息,删除需要删除的场地资料。场地搜索只需要输入场地名称,场地类型就可以查到结果。新增场地则需要输入场地编号,场地名称,照片,类型,原价,现价,时间段,半全场,推荐吃饭地点,场地介绍等。
图4.3 即为编码实现的场地订单管理界面,管理员在该界面中对用户预约的场地订单进行查询,更改等,查看场地预约订单的预约时间段信息以及订单类型等信息。可以通过输入场地名称,类型,用户姓名,用户手机号,用户身份证号来进行查询场地预约信息。
4.2用户功能模块
图4.4 即为编码实现的场地信息界面,用户在该界面中对场地进行预定,或收藏场地方便下次查看场地信息。可以看到的场地名称,类型,原价,现价,人数,点击次数,半全场,推荐吃饭地点,订购日期,订购时间段详情介绍。
图4.5即为编码实现的在线论坛界面,用户在该界面中对论坛所有帖子进行查看,查看帖子之后可以发布帖子评论,用户也能点击发布帖子链接进入新界面发布自己的帖子。主要可以看到帖子标题,发布人权限,发布时间,可以对这些帖子进行回复操作。
图4.6即为编码实现的场地预约界面,用户在该界面中浏览已经预约的场地。如果存在误操作,用户可以取消预约的场地。在个人中心我的场地预约里面,有全部场地预约,已使用,取消预约,已预约这几个状态的预约信息,已经取消预约的不能再取消,已预约尚未取消预约的才可以取消预约。
部分功能代码
/\*\*
\* 体育馆场地预约
\*/
@RequestMapping("/add")
public R add(@RequestBody ChangdiOrderEntity changdiOrder, HttpServletRequest request){
logger.debug("add方法:,,Controller:{},,changdiOrder:{}",this.getClass().getName(),changdiOrder.toString());
String role = String.valueOf(request.getSession().getAttribute("role"));
if("用户".equals(role)){
ChangdiEntity changdiEntity = changdiService.selectById(changdiOrder.getChangdiId());
if(changdiEntity == null){
return R.error(511,"查不到该场地");
}
if(changdiEntity.getChangdiNewMoney() == null){
return R.error(511,"场地价格不能为空");
}
Integer userId = (Integer) request.getSession().getAttribute("userId");
YonghuEntity yonghuEntity = yonghuService.selectById(userId);
if(yonghuEntity == null)
return R.error(511,"用户不能为空");
if(yonghuEntity.getNewMoney() == null)
return R.error(511,"用户金额不能为空");
double balance = yonghuEntity.getNewMoney() - changdiEntity.getChangdiNewMoney();//余额
if(balance<0)
return R.error(511,"余额不够支付");
List<Integer> changdiOrderTypes = new ArrayList<>();
changdiOrderTypes.add(2);
String buyTime = new SimpleDateFormat("yyyy-MM-dd").format(changdiOrder.getBuyTime());
# 最后
![](https://img-blog.csdnimg.cn/img_convert/f04c74de25eade5d66eeccd9496afbb6.webp?x-oss-process=image/format,png)
![](https://img-blog.csdnimg.cn/img_convert/4ccfb638996fdc740e636f77dc0bdd2d.webp?x-oss-process=image/format,png)
![](https://img-blog.csdnimg.cn/img_convert/4a200465ccc610eb594165453ad9fabc.webp?x-oss-process=image/format,png)
> **本文已被[CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)收录**
**[需要这份系统化的资料的朋友,可以点击这里获取](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)**
613a03fab5e56a57acb)收录**
**[需要这份系统化的资料的朋友,可以点击这里获取](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)**