项目介绍
目的:
网络技术的快速发展,使得计算机涉及到各个领域。从企业的生产到人们的家庭生活,从科学研究到工农业的生产,各行各业,计算机几乎涉及了所有领域。计算机技术的发展带动了数据信息的管理,对数据信息的实用、快捷、有效进行管理,这就是软件开发的追求目标。 本次设计使用JAVA EE平台构建思想来实现自行车租赁管理系统,他的优越性在于更多的实现实用性、可用性。另外可维护性和可扩展性相结合,使得更加安全和规范。另外,在本次系统的开发中还来取了MVC分层结构,CSS布局,使得结构越发的清晰。
意义:
本次课题的研究利用了多方面的技术,使我学习到多方面的知识,作为一名软件开发人员充分利用自己所学的知识,使我在认识事物方面有了很大的提高,让我再一次感受到了互联网的魅力所在。同时也为我以后进入计算机行业提出了更高的要求,迎接更大的挑战。
开发语言:Java
开发工具:IDEA /Eclipse
数据库:MYSQL5.7
应用服务:Tomcat7/Tomcat8
使用框架:ssm+vue
Maven包:Maven3.3.9
功能介绍
系统的模块功能划分
本次系统共分为两个大模块,分别为前台模块和系统后台两个大模块。
前台模块功能
用户模块又分为三个模块:网站首页、会员注册/登录、车辆信息、租凭订单和个人中心。
网站首页:主要是在进行何种操作界面时,只要点击网站首页,系统都会返回原始界面。通过网站首页可以看到系统公告、车辆信息、租凭订单等。
会员注册:该模块实现新用户注册:通过填个人的一些信息,例如姓名、账号、密码等信息来进行个人的会员注册,成为租车的新用户。
车辆信息:则展示了各种车辆的状态、编号,方便用户对车辆的使用进行选择。点击名称或图片,便可具体了解车辆的信息,对车辆进行租凭下单。
订单管理:展示会员的所有自行车在线租凭订单的车辆信息、租凭天数、租凭费用等。
个人中心:主要是会员的个人基本资料信息,可以修改及退出系统。
后台管理模块功能
该模块主要为五个部分,分别为:管理员登录、系统公告管理、车辆信息管理、用户信息管理、租赁订单信息管理。
管理员登录:管理员输入账号密码登录后台管理系统。
系统公告管理:对前台发布一些信息公告,如车辆信息,各种活动,让用户可以登录后了解相关的信息。
车辆信息管理:则后台显示车辆的状态,如车辆是否归还、租用时间、车辆信息的添加等。用户信息管理:则通过后台了解用户的信息,如姓名、密码、昵称、住址,电话等,还可以通过后台进行用户的添加。
租赁管理:主要是用户的租车信息、管理用户租车信息,归还车辆,计费结账等操作。
部分代码
/**
* 登录相关
*/
@RequestMapping("users")
@RestController
public class UserController{
@Autowired
private UserService userService;
@Autowired
private TokenService tokenService;
/**
* 登录
*/
@IgnoreAuth
@PostMapping(value = "/login")
public R login(String username, String password, String captcha, HttpServletRequest request) {
UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
if(user==null || !user.getPassword().equals(password)) {
return R.error("账号或密码不正确");
}
String token = tokenService.generateToken(user.getId(),username, "users", user.getRole());
return R.ok().put("token", token);
}
/**
* 注册
*/
@IgnoreAuth
@PostMapping(value = "/register")
public R register(@RequestBody UserEntity user){
// ValidatorUtils.validateEntity(user);
if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
return R.error("用户已存在");
}
userService.insert(user);
return R.ok();
}
/**
* 退出
*/
@GetMapping(value = "logout")
public R logout(HttpServletRequest request) {
request.getSession().invalidate();
return R.ok("退出成功");
}
/**
* 密码重置
*/
@IgnoreAuth
@RequestMapping(value = "/resetPass")
public R resetPass(String username, HttpServletRequest request){
UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
if(user==null) {
return R.error("账号不存在");
}
user.setPassword("123456");
userService.update(user,null);
return R.ok("密码已重置为:123456");
}
/**
* 列表
*/
@RequestMapping("/page")
public R page(@RequestParam Map<String, Object> params,UserEntity user){
EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
PageUtils page = userService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.allLike(ew, user), params), params));
return R.ok().put("data", page);
}
/**
* 列表
*/
@RequestMapping("/list")
public R list( UserEntity user){
EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
ew.allEq(MPUtil.allEQMapPre( user, "user"));
return R.ok().put("data", userService.selectListView(ew));
}
/**
* 信息
*/
@RequestMapping("/info/{id}")
public R info(@PathVariable("id") String id){
UserEntity user = userService.selectById(id);
return R.ok().put("data", user);
}
/**
* 获取用户的session用户信息
*/
@RequestMapping("/session")
public R getCurrUser(HttpServletRequest request){
Long id = (Long)request.getSession().getAttribute("userId");
UserEntity user = userService.selectById(id);
return R.ok().put("data", user);
}
/**
* 保存
*/
@PostMapping("/save")
public R save(@RequestBody UserEntity user){
// ValidatorUtils.validateEntity(user);
if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
return R.error("用户已存在");
}
userService.insert(user);
return R.ok();
}
/**
* 修改
*/
@RequestMapping("/update")
public R update(@RequestBody UserEntity user){
// ValidatorUtils.validateEntity(user);
UserEntity u = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername()));
if(u!=null && u.getId()!=user.getId() && u.getUsername().equals(user.getUsername())) {
return R.error("用户名已存在。");
}
userService.updateById(user);//全部更新
return R.ok();
}
/**
* 删除
*/
@RequestMapping("/delete")
public R delete(@RequestBody Long[] ids){
userService.deleteBatchIds(Arrays.asList(ids));
return R.ok();
}
}
效果图
1绪论 5
1.1项目研究的背景 5
1.2开发意义 5
1.3项目研究内容 5
2开发技术介绍 6
2.1 B/S架构 6
2.2Java技术 6
2.3MySQL 介绍 7
2.4MySQL环境配置 7
2.5SpringBoot技术 8
3系统分析 9
3.1可行性分析 9
3.1.1技术可行性 9
3.1.2经济可行性 9
3.1.3操作可行性 9
3.2网站性能需求分析 10
3.3 网站现状分析 10
3.4网站功能分析 11
3.5系统流程的分析 11
3.5.1 用户管理的流程 12
3.5.2个人中心管理流程 12
3.5.3登录流程 13
4系统设计 14
4.1 软件功能模块设计 14
4.2数据库设计 14
4.2.1概念模型设计 14
4.2.2物理模型设计 15
5系统详细设计 22
5.1系统功能模块 22
5.2管理员功能模块 23
5.3用户功能模块 28
6系统测试 30
7总结与心得体会 31
7.1 总结 31
7.2 心得体会 31
参考文献 32
致谢 33