软件开发定制毕业设计:SpringBoot+Vue+Element的校内跑腿平台

作者主页:

作者简介:Java软件开发定制领域优质创作者、CSDN博客专家 、软件开发定制掘金特邀作者、软件开发定制多年架构师设计经验、软件开发定制腾讯课堂常驻讲师

主要内容:Java项目、毕业设计、简历模板、学习资料、面试题库、技术互助

软件开发定制文末获取源码 

项目编号:BS-XX-155

一,项目简介

近年来,软件开发定制随着国内都市化的发展,软件开发定制生产生活节奏变快、软件开发定制各种往来频繁。软件开发定制经济的高速发展催生出“懒人经济”。软件开发定制不想走出家门,软件开发定制饭菜可以送上门;软件开发定制不方便交水、电、气费,软件开发定制也可以让人代交;软件开发定制想买任何东西都可以让软件开发定制人替你去采购...繁忙、软件开发定制没有精力去处理一些事情,软件开发定制如今这些都已不再是难题。一些“代跑腿”软件开发定制业务在北京、软件开发定制上海等城市开始出现,软件开发定制并逐渐蔓延到中小城市。软件开发定制跑腿项目因为国内市场的需求而诞生。

为了让客户能有时间去处理更多的事情,为客户提供更加便捷的生活环境,类似于同城随叫随到这样的跑腿项目开始被提出并规划实施。同城随叫随到提出了“有事您动嘴,办事我跑腿,不论大事小事,只要是合理合法的事情,只要您需要跑腿,我们都可以代劳”,这样的服务宗旨,对于很多生活忙碌、需要跑腿服务的人来说,的确很诱人。

本项目分为四个系统:、前台系统、订单系统、登陆注册系统九,即前台用户查询房屋信息、登陆注册、发布跑腿订单信息、管理员信息管理、会员信息管理、用户信息。

后台管理系统:管理用户信息、订单、用户、前台内容等功能。具体有管理员管理、订单管理、订单信息更改、订单信息查询。

前台系统:用户可以在前台系统中进行注册、登录、浏览资源、首页、下单等操作。具体有首页资源展示、资源搜索、订单模块、用户模块。

订单系统:提供下单、查询订单、修改订单状态、定时处理订单搜索系统,

提供商品的搜索功能。

登录系统:为多个系统之间提供用户登录凭证以及查询登录用户的信息。

 

功能具体信息分析如下:

  1. 用户管理功能

表3-1 用户管理功能描述

功能名称

功能描述

用户信息注册

用户填写电话号码、邮箱、密码、验证码、注册成功

修改信息

用户可以修改自己的个人信息

注销用户

管理员可以注销用户

查询用户

管理员可以查询用户,用户自己也可以查看自己信息。

  1. 订单管理功能

表3-2 订单管理功能描述

功能名称

功能描述

添加订单

用户填写订单信息、选择订单种类、填写订单金额、上传订单图片、添加成功

修改订单状态

管理员可以修改订单状态和订单信息、用户可以修改订单信息

查询订单

用户可以查看自己的订单、管理员可以查询全部订单

订单删除

管理员可以删除订单、用户可以取消自己的订单

  1. 搜索模块功能

表3-3 搜索模块功能描述

功能名称

功能描述

订单标题名查询

在搜索框中输入订单标题名,点击搜索

订单分类名查询

在搜索框中输入订单类型名,点击搜索

  1. 管理员管理功能

表3-4 管理员管理功能描述

功能名称

功能描述

用户管理

对用户信息进行查看、修改、删除、添加操作

订单分类管理

对订单分类信息进行查看、删除、添加操作

订单管理

对订单信息进行查看、修改、删除、添加操作

本系统为C/S架构,用户通过浏览器访问获取服务,为了确保用户服务的及时性,需要较为稳定的性能。

1.数据精确度

后台管理在进行订单或订单分类的增加、删除和修改等的操作时,不允许在同一时间内对同一条数据进行三次操作;后端业务在进行订单业务处理时,要求保证数据的一致性,确保数据库事务精确度。

2.时间特性:

用户登录注册响应时间大概在2秒左右;用户订单支付成功后,回调页面的响应时间大概在4秒左右。

大量用户访问时造成的高并发,系统对此响应时间10秒左右。

管理员对订单和订单分类的修改、删除、添加成功后,前台响应、重新渲染页面数据时间大概在3秒前后。

3.安全性

本系统已经设计的较为安全了,使用JWT对前端后端请求中不断传递的token具备一定的加密性,足够确保用户和数据的安全性和隐私性。

4.可维护性

本系统可以由开发人员继续维护,开发过程中,已经确保了代码的简洁与详细的注释。该系统配置在macOS上,后期可以配备在Windows、Linux操作系统上。

二,环境介绍

语言环境:Java:  jdk1.8

数据库:Mysql: mysql5.7

应用服务器:Tomcat:  tomcat8.5.31

开发工具:IDEA或eclipse

后台开发技术:Springboot+Mybatis

前台开发技术:Vue+ElementUI

三,系统展示

后台管理

 

用户管理

 

 订单类型管理

订单管理

 

客户端操作界面

 

用户发布需求操作

 

 

四,核心代码展示

  1. package cn.edu.jsu.zjj.running.admin.controller;
  2. import cn.edu.jsu.zjj.running.admin.entity.Admin;
  3. import cn.edu.jsu.zjj.running.admin.service.AdminService;
  4. import cn.edu.jsu.zjj.running.utils.Result;
  5. import org.springframework.data.domain.Page;
  6. import org.springframework.data.domain.PageRequest;
  7. import org.springframework.http.ResponseEntity;
  8. import org.springframework.web.bind.annotation.*;
  9. import javax.annotation.Resource;
  10. import java.util.HashMap;
  11. /**
  12. * 管理员表(Admin)表控制层
  13. *
  14. * @author znz
  15. * @since 2022-10-26 10:49:28
  16. */
  17. @RestController
  18. @RequestMapping("admin")
  19. public class AdminController {
  20. /**
  21. * 服务对象
  22. */
  23. @Resource
  24. private AdminService adminService;
  25. /**
  26. * 分页查询
  27. *
  28. * @param admin 筛选条件
  29. * @return 查询结果
  30. */
  31. @GetMapping
  32. public Result<ResponseEntity<Page<Admin>>> queryByPage(Admin admin, Integer size,Integer page) {
  33. PageRequest pageRequest = PageRequest.of(page, size);
  34. Page<Admin> admins = this.adminService.queryByPage(admin, pageRequest);
  35. return Result.success(ResponseEntity.ok(admins));
  36. }
  37. /**
  38. * 通过主键查询单条数据
  39. *
  40. * @param id 主键
  41. * @return 单条数据
  42. */
  43. @GetMapping("{id}")
  44. public Result queryById(@PathVariable("id") Integer id) {
  45. return this.adminService.queryById(id);
  46. }
  47. /**
  48. * 新增数据
  49. *
  50. * @param admin 实体
  51. * @return 新增结果
  52. */
  53. @PostMapping
  54. public Result add(Admin admin) {
  55. return this.adminService.insert(admin);
  56. }
  57. /**
  58. * 编辑数据
  59. *
  60. * @param admin 实体
  61. * @return 编辑结果
  62. */
  63. @PutMapping
  64. public Result edit(Admin admin) {
  65. return this.adminService.update(admin);
  66. }
  67. /**
  68. * 修改密码
  69. *
  70. * @return 编辑结果
  71. */
  72. @PutMapping("updatePwd")
  73. public Result updatePwd(Integer aId,String oldPwd,String newPwd) {
  74. return this.adminService.updatePwd(aId,oldPwd,newPwd);
  75. }
  76. /**
  77. * 删除数据
  78. *
  79. * @param aId 主键
  80. * @return 删除是否成功
  81. */
  82. @DeleteMapping
  83. public Result deleteById(Integer aId) {
  84. return this.adminService.deleteById(aId);
  85. }
  86. //管理员登陆注册
  87. @GetMapping("login")
  88. public Result<HashMap<String, Object>> login(String acc, String pwd){
  89. return adminService.login(acc,pwd);
  90. }
  91. @GetMapping("register")
  92. public Result register(Admin admin){
  93. return adminService.register(admin);
  94. }
  95. }

  1. package cn.edu.jsu.zjj.running.apply.controller;
  2. import cn.edu.jsu.zjj.running.apply.entity.Apply;
  3. import cn.edu.jsu.zjj.running.apply.service.ApplyService;
  4. import cn.edu.jsu.zjj.running.utils.Result;
  5. import org.springframework.data.domain.Page;
  6. import org.springframework.data.domain.PageRequest;
  7. import org.springframework.http.ResponseEntity;
  8. import org.springframework.web.bind.annotation.*;
  9. import javax.annotation.Resource;
  10. /**
  11. * 用户申请跑腿表(Apply)表控制层
  12. *
  13. * @author znz
  14. * @since 2022-10-26 10:50:46
  15. */
  16. @RestController
  17. @RequestMapping("apply")
  18. public class ApplyController {
  19. /**
  20. * 服务对象
  21. */
  22. @Resource
  23. private ApplyService applyService;
  24. /**
  25. * 分页查询
  26. * @param apply 筛选条件
  27. * @return 查询结果
  28. */
  29. @GetMapping
  30. public Result<ResponseEntity<Page<Apply>>> queryByPage(Apply apply, Integer size, Integer page) {
  31. PageRequest pageRequest = PageRequest.of(page,size);
  32. Page<Apply> applies = this.applyService.queryByPage(apply,pageRequest);
  33. return Result.success(ResponseEntity.ok(applies));
  34. }
  35. /**
  36. * 通过主键查询单条数据
  37. *
  38. * @param id 主键
  39. * @return 单条数据
  40. */
  41. @GetMapping("{id}")
  42. public Result queryById(@PathVariable("id") Integer id) {
  43. return this.applyService.queryById(id);
  44. }
  45. /**
  46. * 新增数据
  47. *
  48. * @param apply 实体
  49. * @return 新增结果
  50. */
  51. @PostMapping
  52. public Result add(Apply apply) {
  53. return this.applyService.insert(apply);
  54. }
  55. /**
  56. * 编辑数据
  57. *
  58. * @param apply 实体
  59. * @return 编辑结果
  60. */
  61. @PutMapping
  62. public Result edit(Apply apply) {
  63. return this.applyService.update(apply);
  64. }
  65. /**
  66. * 删除数据
  67. *
  68. * @param id 主键
  69. * @return 删除是否成功
  70. */
  71. @DeleteMapping
  72. public Result deleteById(Integer id) {
  73. return this.applyService.deleteById(id);
  74. }
  75. }
  1. package cn.edu.jsu.zjj.running.comment.controller;
  2. import cn.edu.jsu.zjj.running.comment.entity.Comment;
  3. import cn.edu.jsu.zjj.running.comment.service.CommentService;
  4. import cn.edu.jsu.zjj.running.utils.Result;
  5. import org.springframework.data.domain.Page;
  6. import org.springframework.data.domain.PageRequest;
  7. import org.springframework.http.ResponseEntity;
  8. import org.springframework.web.bind.annotation.*;
  9. import javax.annotation.Resource;
  10. /**
  11. * 评论表(Comment)表控制层
  12. *
  13. * @author makejava
  14. * @since 2022-10-26 10:52:11
  15. */
  16. @RestController
  17. @RequestMapping("comment")
  18. public class CommentController {
  19. /**
  20. * 服务对象
  21. */
  22. @Resource
  23. private CommentService commentService;
  24. /**
  25. * 分页查询
  26. *
  27. * @param comment 筛选条件
  28. * @return 查询结果
  29. */
  30. @GetMapping
  31. public Result<ResponseEntity<Page<Comment>>> queryByPage(Comment comment, Integer size, Integer page) {
  32. PageRequest pageRequest = PageRequest.of(page,size);
  33. Page<Comment> comments = this.commentService.queryByPage(comment,pageRequest);
  34. return Result.success(ResponseEntity.ok(comments));
  35. }
  36. /**
  37. * 通过主键查询单条数据
  38. *
  39. * @param id 主键
  40. * @return 单条数据
  41. */
  42. @GetMapping("{id}")
  43. public Result queryById(@PathVariable("id") Integer id) {
  44. return this.commentService.queryById(id);
  45. }
  46. /**
  47. * 新增数据
  48. *
  49. * @param comment 实体
  50. * @return 新增结果
  51. */
  52. @PostMapping
  53. public Result add(Comment comment) {
  54. return this.commentService.insert(comment);
  55. }
  56. /**
  57. * 编辑数据
  58. *
  59. * @param comment 实体
  60. * @return 编辑结果
  61. */
  62. @PutMapping
  63. public Result edit(Comment comment) {
  64. return this.commentService.update(comment);
  65. }
  66. /**
  67. * 删除数据
  68. *
  69. * @param id 主键
  70. * @return 删除是否成功
  71. */
  72. @DeleteMapping
  73. public Result deleteById(Integer id) {
  74. return this.commentService.deleteById(id);
  75. }
  76. }
  1. package cn.edu.jsu.zjj.running.order.controller;
  2. import cn.edu.jsu.zjj.running.order.entity.Order;
  3. import cn.edu.jsu.zjj.running.order.service.OrderService;
  4. import cn.edu.jsu.zjj.running.utils.Encryption;
  5. import cn.edu.jsu.zjj.running.utils.MailSend;
  6. import cn.edu.jsu.zjj.running.utils.RandomUtil;
  7. import cn.edu.jsu.zjj.running.utils.Result;
  8. import org.springframework.data.domain.Page;
  9. import org.springframework.data.domain.PageRequest;
  10. import org.springframework.http.ResponseEntity;
  11. import org.springframework.web.bind.annotation.*;
  12. import org.springframework.web.multipart.MultipartFile;
  13. import javax.annotation.Resource;
  14. import java.io.IOException;
  15. /**
  16. * 订单表(Order)表控制层
  17. *
  18. * @author PL
  19. * @since 2022-10-26 10:52:50
  20. */
  21. @RestController
  22. @RequestMapping("order")
  23. public class OrderController {
  24. /**
  25. * 服务对象
  26. */
  27. private OrderService orderService;
  28. private MailSend mailSend;
  29. public OrderController(OrderService orderService, MailSend mailSend) {
  30. this.orderService = orderService;
  31. this.mailSend = mailSend;
  32. }
  33. /**
  34. * 分页查询
  35. *
  36. * @param order 筛选条件
  37. * @return 查询结果
  38. */
  39. @GetMapping
  40. public Result<ResponseEntity<Page<Order>>> queryByPage(Order order, Integer size, Integer page) {
  41. PageRequest pageRequest = PageRequest.of(page, size);
  42. Page<Order> orders = this.orderService.queryByPage(order, pageRequest);
  43. return Result.success(ResponseEntity.ok(orders));
  44. }
  45. /**
  46. * 通过主键查询单条数据
  47. *
  48. * @param id 主键
  49. * @return 单条数据
  50. */
  51. @GetMapping("{id}")
  52. public Result queryById(@PathVariable("id") Integer id) {
  53. return this.orderService.queryById(id);
  54. }
  55. @GetMapping("queryByState")
  56. public Result queryByState(Integer oState){
  57. return this.orderService.queryByState(oState);
  58. }
  59. /**
  60. * 新增数据
  61. *
  62. * @param order 实体
  63. * @return 新增结果
  64. */
  65. @PostMapping
  66. public Result add(MultipartFile file,Order order) throws IOException {
  67. return this.orderService.insert(file,order);
  68. }
  69. /**
  70. * 编辑数据
  71. *
  72. * @param order 实体
  73. * @return 编辑结果
  74. */
  75. @PutMapping
  76. public Result edit(Order order) {
  77. return this.orderService.update(order);
  78. }
  79. /**
  80. * 编辑数据
  81. *
  82. * @param image 实体
  83. * @return 编辑结果
  84. */
  85. @PostMapping("editImg")
  86. public Result editImg(MultipartFile uploadFIle, Integer oId, String image) throws IOException {
  87. return this.orderService.editImg(uploadFIle,oId,image);
  88. }
  89. /**
  90. * 删除数据
  91. *
  92. * @param id 主键
  93. * @return 删除是否成功
  94. */
  95. @DeleteMapping
  96. public Result deleteById(Integer id) {
  97. return this.orderService.deleteById(id);
  98. }
  99. }

  1. package cn.edu.jsu.zjj.running.user.controller;
  2. import cn.edu.jsu.zjj.running.order.entity.Order;
  3. import cn.edu.jsu.zjj.running.user.entity.User;
  4. import cn.edu.jsu.zjj.running.user.service.UserService;
  5. import cn.edu.jsu.zjj.running.utils.Encryption;
  6. import cn.edu.jsu.zjj.running.utils.MailSend;
  7. import cn.edu.jsu.zjj.running.utils.RandomUtil;
  8. import cn.edu.jsu.zjj.running.utils.Result;
  9. import org.springframework.data.domain.Page;
  10. import org.springframework.data.domain.PageRequest;
  11. import org.springframework.http.ResponseEntity;
  12. import org.springframework.web.bind.annotation.*;
  13. import org.springframework.web.multipart.MultipartFile;
  14. import javax.annotation.Resource;
  15. import java.io.IOException;
  16. /**
  17. * 用户表(User)表控制层
  18. *
  19. * @author makejava
  20. * @since 2022-10-26 11:01:13
  21. */
  22. @RestController
  23. @RequestMapping("user")
  24. public class UserController {
  25. /**
  26. * 服务对象
  27. */
  28. private UserService userService;
  29. private MailSend mailSend;
  30. public UserController(UserService userService, MailSend mailSend) {
  31. this.userService = userService;
  32. this.mailSend = mailSend;
  33. }
  34. /**
  35. * 分页查询
  36. *
  37. * @param user 筛选条件
  38. * @return 查询结果
  39. */
  40. @GetMapping
  41. public Result<ResponseEntity<Page<User>>> queryByPage(User user, Integer size,Integer page) {
  42. PageRequest pageRequest =PageRequest.of(page,size);
  43. Page<User> users = this.userService.queryByPage(user, pageRequest);
  44. return Result.success(ResponseEntity.ok(users));
  45. }
  46. /**
  47. * 通过主键查询单条数据
  48. *
  49. * @param id 主键
  50. * @return 单条数据
  51. */
  52. @GetMapping("{id}")
  53. public Result<User> queryById(@PathVariable("id") Integer id) {
  54. return this.userService.queryById(id);
  55. }
  56. /**
  57. * 新增数据
  58. *
  59. * @param user 实体
  60. * @return 新增结果
  61. */
  62. @PostMapping
  63. public Result add(User user) {
  64. return this.userService.insert(user);
  65. }
  66. /**
  67. * 编辑数据
  68. *
  69. * @param user 实体
  70. * @return 编辑结果
  71. */
  72. @PutMapping
  73. public Result edit(User user) {
  74. return this.userService.update(user);
  75. }
  76. @PostMapping("editImg")
  77. public Result editImg(MultipartFile uploadFIle,Integer uId , String uHeadImg) throws IOException {
  78. return this.userService.editImg(uploadFIle,uId,uHeadImg);
  79. }
  80. /**
  81. * 删除数据
  82. *
  83. * @param id 主键
  84. * @return 删除是否成功
  85. */
  86. @DeleteMapping
  87. public Result deleteById(Integer id) {
  88. return this.userService.deleteById(id);
  89. }
  90. @PostMapping("login")
  91. public Result login(String acc,String pwd){
  92. return userService.login(acc,pwd);
  93. }
  94. @PostMapping("register")
  95. public Result register(User user){
  96. return this.userService.register(user);
  97. }
  98. @PostMapping("verifyUser")
  99. public Result verifyUser(User user, String uPassword2,String verifyCodeData,String Token){
  100. if (user.getUEmail()==null||user.getUEmail().equals("")){
  101. return Result.error("邮箱不能为空");
  102. }
  103. if (!user.getUPassword().equals(uPassword2)){
  104. return Result.error("两次密码不一致");
  105. }
  106. PageRequest pageRequest = PageRequest.of(0, 1);
  107. Page<User> users = this.userService.queryByPage(user, pageRequest);
  108. if (users.getSize()>1) {
  109. return Result.error("该邮箱或者手机号已被注册");
  110. }
  111. //判断有没有验证码
  112. if (verifyCodeData!=null&&!verifyCodeData.equals("")&&Token!=null&&!Token.equals("")){
  113. if (Encryption.getSah256(Encryption.getSah256(verifyCodeData)).equals(Token)){
  114. userService.register(user);
  115. }else {
  116. return Result.error("验证码错误!");
  117. }
  118. }else {//没有验证码
  119. if (Token!=null&&!Token.equals("")){
  120. return Result.success("","请输入验证码");
  121. }
  122. String random = RandomUtil.random();
  123. mailSend.send(user.getUEmail(),random);
  124. return Result.success( Encryption.getSah256(Encryption.getSah256(random)),"没有验证码");
  125. }
  126. return Result.success("成功");
  127. }
  128. @PutMapping("updatePwd")
  129. public Result updatePwd(Integer uId,String oldPwd,String newPwd){
  130. return this.userService.updatePwd(uId,oldPwd,newPwd);
  131. }
  132. }

五,项目总结

过去在没有互联网+的时候,校内师生在校园生活工作的过程中总会存在些许不便或者碰到些许问题,比如需要打印一份东西但是打印店太远自己一时半会儿抽不开身又不太好意思去麻烦他人、或者是在宿舍想吃学校食堂的饭菜但苦于没有外卖平台能够配送、以及碰到文档处理的问题需要在各个教学楼之间来回跑动等。校内的同学老师都是靠着拜托他人或是自己亲力亲为来完成这样一个简单却又不得不花费时间精力来完成的小事上。

在跑腿系统的管理中,对于订单信息的管理是相当重要的,并且也是相当麻烦的,它是订单信息管理工作中一项常规性的工作。长期以来,这一类型的信息管理的工作量是相当巨大的,依靠人工来处理不仅仅浪费了大量的人力物力,而且由于人工管理存在着大量的不可预知性,因此实现跑腿订单信息的网络化势在必行。

本校内跑腿平台的开发定位于一个能够满足数据库管理软件,即具备一个数据库管理软件的基本功能,包括数据的增加,删除,修改,查询等,便于用户查看,操作,和查询订单信息。

此外,系统具有用户登录功能,不同用户有不同的权限,这样可以提高数据的安全性和可靠性。系统采用SSM设计模式与数据库相结合的手段进行开发,结构紧凑、运行速度快、操作简单,更因为拥有自己的源代码,所以保证了软件具有高度的保密、安全性。本系统就是为了解决校内跑题平台信息管理与广大校内师生需求信息量之间的不和谐,使订单信息管理向着规范化、简单化、高效化的方向发展。

网站建设定制开发 软件系统开发定制 定制软件开发 软件开发定制 定制app开发 app开发定制 app开发定制公司 电商商城定制开发 定制小程序开发 定制开发小程序 客户管理系统开发定制 定制网站 定制开发 crm开发定制 开发公司 小程序开发定制 定制软件 收款定制开发 企业网站定制开发 定制化开发 android系统定制开发 定制小程序开发费用 定制设计 专注app软件定制开发 软件开发定制定制 知名网站建设定制 软件定制开发供应商 应用系统定制开发 软件系统定制开发 企业管理系统定制开发 系统定制开发