• SpringBoot+Vue项目疫苗预约管理系统


    文末获取源码

    开发语言:Java

    框架:springboot

    JDK版本:JDK1.8

    服务器:tomcat7

    数据库:mysql 5.7/8.0

    数据库工具:Navicat11

    开发软件:eclipse/myeclipse/idea

    Maven包:Maven3.3.9

    浏览器:谷歌浏览器

    前言介绍 

    本系统主要包括管理员和用户两个角色组成,主要包括以下功能:

    (1)前台:首页、疫苗信息、健康科普、疫苗资讯、个人中心、后台管理、咨询服务 。

    (2)管理员:首页、个人中心、用户管理、疫苗信息管理、疫苗种类管理、接种预约管理、提醒信息管理、健康科普管理、接种记录管理、系统管理等。

    (3)用户:首页、个人中心、接种预约管理、提醒信息管理、接种记录管理等功能。

    系统整体功能 

    系统功能模块

    疫苗预约管理系统系统,在系统首页可以查看首页,疫苗信息,健康科普,疫苗资讯,个人中心,后台管理,咨询服务等内容,并进行详细操作;如图

    用户注册

    在用户注册页面通过填写用户名,密码,确认密码 ,姓名,手机,身份证等信息进行注册操作,如图

    疫苗信息

    在疫苗信息页面可以查看疫苗名称,疫苗编号,疫苗种类,适合人群,年龄段,价格,数量,接种次数,厂家,接种地点,预约等内容,并进行添加到接种预约,收藏等操作,如图

    健康科普

    个人中心

    在个人中心页面通过填写用户名,密码,姓名,性别,手机,身份证等信息进行更新信息,还可以根据需要对我的收藏进行相对应操作,如图

    管理员功能模块 

    管理员进行登录,进入系统前在登录页面根据要求填写用户名和密码,选择角色等信息,点击登录进行登录操作,如图

    管理员登录系统后,可以对首页,个人中心,用户管理,疫苗信息管理,疫苗种类管理,接种预约管理,提醒信息管理,健康科普管理,接种记录管理,系统管理等功能进行相应的操作管理,如图

    用户管理

    在用户管理页面可以对用户名,姓名,性别,头像,手机,身份证等内容进行查看,修改和删除等操作,如图 

    疫苗信息管理

    在疫苗信息管理页面可以索引,疫苗编号,疫苗名称,疫苗种类,图片,适合人群,年龄段,价格,数量,接种次数,厂家等内容进行查看、修改、删除等操作,如图 

    疫苗种类管理

    在疫苗种类管理页面可以对疫苗种类进行新增,修改和删除等操作,如图 

    接种预约管理

    在接种预约管理页面可以索引,疫苗编号,疫苗名称,疫苗种类,预约类型,人数,预约时间,用户名,姓名,身份证,手机,审核回复,审核状态等内容进行审核,详细,提醒,接种,修改和删除等操作,如图 

    提醒信息管理

    在提醒信息管理页面可以对索引,标题,用户名,姓名,通知时间等内容进行查看,修改和删除等操作;如图 

    健康科普管理

    在健康科普管理页面可以对索引,标题,图片,视频讲解 ,发布时间等内容进行查看,修改,删除等操作;如图 

    接种记录管理

    在接种记录管理页面可以对疫苗编号,疫苗名称,用户名 ,姓名,接种时间,完成次数,剩余次数,是否不适,时间间隔等内容进行查看、修改,删除等操作,如图 

    系统管理

    在疫苗资讯页面可以对标题,简介,图片等内容进行查看、修改,删除等操作,如图 

    用户功能模块 

    用户登录进入疫苗预约管理系统系统可以对首页,个人中心,接种预约管理,提醒信息管理,接种记录管理等功能进行相应操作,如图

    个人中心

    在个人中心页面通过填写用户名,姓名,性别,头像,手机,身份证等内容进行个人信息修改操作,如图 

    接种预约管理

    在接种预约管理页面可以对疫苗编号,疫苗名称,疫苗种类,预约类型,人数,预约时间,用户名,姓名,身份证, 手机,审核回复,审核状态等内容进行查看,删除等操作,如图 

    部分核心代码 

    1. /**
    2. * 接种预约
    3. * 后端接口
    4. * @author
    5. * @email
    6. * @date 2022-02-24 11:13:03
    7. */
    8. @RestController
    9. @RequestMapping("/jiezhongyuyue")
    10. public class JiezhongyuyueController {
    11. @Autowired
    12. private JiezhongyuyueService jiezhongyuyueService;
    13. /**
    14. * 后端列表
    15. */
    16. @RequestMapping("/page")
    17. public R page(@RequestParam Map<String, Object> params,JiezhongyuyueEntity jiezhongyuyue,
    18. HttpServletRequest request){
    19. String tableName = request.getSession().getAttribute("tableName").toString();
    20. if(tableName.equals("yonghu")) {
    21. jiezhongyuyue.setYonghuming((String)request.getSession().getAttribute("username"));
    22. }
    23. EntityWrapper<JiezhongyuyueEntity> ew = new EntityWrapper<JiezhongyuyueEntity>();
    24. PageUtils page = jiezhongyuyueService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, jiezhongyuyue), params), params));
    25. return R.ok().put("data", page);
    26. }
    27. /**
    28. * 前端列表
    29. */
    30. @IgnoreAuth
    31. @RequestMapping("/list")
    32. public R list(@RequestParam Map<String, Object> params,JiezhongyuyueEntity jiezhongyuyue,
    33. HttpServletRequest request){
    34. EntityWrapper<JiezhongyuyueEntity> ew = new EntityWrapper<JiezhongyuyueEntity>();
    35. PageUtils page = jiezhongyuyueService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, jiezhongyuyue), params), params));
    36. return R.ok().put("data", page);
    37. }
    38. /**
    39. * 列表
    40. */
    41. @RequestMapping("/lists")
    42. public R list( JiezhongyuyueEntity jiezhongyuyue){
    43. EntityWrapper<JiezhongyuyueEntity> ew = new EntityWrapper<JiezhongyuyueEntity>();
    44. ew.allEq(MPUtil.allEQMapPre( jiezhongyuyue, "jiezhongyuyue"));
    45. return R.ok().put("data", jiezhongyuyueService.selectListView(ew));
    46. }
    47. /**
    48. * 查询
    49. */
    50. @RequestMapping("/query")
    51. public R query(JiezhongyuyueEntity jiezhongyuyue){
    52. EntityWrapper< JiezhongyuyueEntity> ew = new EntityWrapper< JiezhongyuyueEntity>();
    53. ew.allEq(MPUtil.allEQMapPre( jiezhongyuyue, "jiezhongyuyue"));
    54. JiezhongyuyueView jiezhongyuyueView = jiezhongyuyueService.selectView(ew);
    55. return R.ok("查询接种预约成功").put("data", jiezhongyuyueView);
    56. }
    57. /**
    58. * 后端详情
    59. */
    60. @RequestMapping("/info/{id}")
    61. public R info(@PathVariable("id") Long id){
    62. JiezhongyuyueEntity jiezhongyuyue = jiezhongyuyueService.selectById(id);
    63. return R.ok().put("data", jiezhongyuyue);
    64. }
    65. /**
    66. * 前端详情
    67. */
    68. @IgnoreAuth
    69. @RequestMapping("/detail/{id}")
    70. public R detail(@PathVariable("id") Long id){
    71. JiezhongyuyueEntity jiezhongyuyue = jiezhongyuyueService.selectById(id);
    72. return R.ok().put("data", jiezhongyuyue);
    73. }
    74. /**
    75. * 后端保存
    76. */
    77. @RequestMapping("/save")
    78. public R save(@RequestBody JiezhongyuyueEntity jiezhongyuyue, HttpServletRequest request){
    79. jiezhongyuyue.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    80. //ValidatorUtils.validateEntity(jiezhongyuyue);
    81. jiezhongyuyueService.insert(jiezhongyuyue);
    82. return R.ok();
    83. }
    84. /**
    85. * 前端保存
    86. */
    87. @RequestMapping("/add")
    88. public R add(@RequestBody JiezhongyuyueEntity jiezhongyuyue, HttpServletRequest request){
    89. jiezhongyuyue.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    90. //ValidatorUtils.validateEntity(jiezhongyuyue);
    91. jiezhongyuyueService.insert(jiezhongyuyue);
    92. return R.ok();
    93. }
    94. /**
    95. * 修改
    96. */
    97. @RequestMapping("/update")
    98. public R update(@RequestBody JiezhongyuyueEntity jiezhongyuyue, HttpServletRequest request){
    99. //ValidatorUtils.validateEntity(jiezhongyuyue);
    100. jiezhongyuyueService.updateById(jiezhongyuyue);//全部更新
    101. return R.ok();
    102. }
    103. /**
    104. * 删除
    105. */
    106. @RequestMapping("/delete")
    107. public R delete(@RequestBody Long[] ids){
    108. jiezhongyuyueService.deleteBatchIds(Arrays.asList(ids));
    109. return R.ok();
    110. }
    111. /**
    112. * 提醒接口
    113. */
    114. @RequestMapping("/remind/{columnName}/{type}")
    115. public R remindCount(@PathVariable("columnName") String columnName, HttpServletRequest request,
    116. @PathVariable("type") String type,@RequestParam Map<String, Object> map) {
    117. map.put("column", columnName);
    118. map.put("type", type);
    119. if(type.equals("2")) {
    120. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    121. Calendar c = Calendar.getInstance();
    122. Date remindStartDate = null;
    123. Date remindEndDate = null;
    124. if(map.get("remindstart")!=null) {
    125. Integer remindStart = Integer.parseInt(map.get("remindstart").toString());
    126. c.setTime(new Date());
    127. c.add(Calendar.DAY_OF_MONTH,remindStart);
    128. remindStartDate = c.getTime();
    129. map.put("remindstart", sdf.format(remindStartDate));
    130. }
    131. if(map.get("remindend")!=null) {
    132. Integer remindEnd = Integer.parseInt(map.get("remindend").toString());
    133. c.setTime(new Date());
    134. c.add(Calendar.DAY_OF_MONTH,remindEnd);
    135. remindEndDate = c.getTime();
    136. map.put("remindend", sdf.format(remindEndDate));
    137. }
    138. }
    139. Wrapper<JiezhongyuyueEntity> wrapper = new EntityWrapper<JiezhongyuyueEntity>();
    140. if(map.get("remindstart")!=null) {
    141. wrapper.ge(columnName, map.get("remindstart"));
    142. }
    143. if(map.get("remindend")!=null) {
    144. wrapper.le(columnName, map.get("remindend"));
    145. }
    146. String tableName = request.getSession().getAttribute("tableName").toString();
    147. if(tableName.equals("yonghu")) {
    148. wrapper.eq("yonghuming", (String)request.getSession().getAttribute("username"));
    149. }
    150. int count = jiezhongyuyueService.selectCount(wrapper);
    151. return R.ok().put("count", count);
    152. }
    153. /**
    154. * (按值统计)
    155. */
    156. @RequestMapping("/value/{xColumnName}/{yColumnName}")
    157. public R value(@PathVariable("yColumnName") String yColumnName, @PathVariable("xColumnName") String xColumnName,HttpServletRequest request) {
    158. Map<String, Object> params = new HashMap<String, Object>();
    159. params.put("xColumn", xColumnName);
    160. params.put("yColumn", yColumnName);
    161. EntityWrapper<JiezhongyuyueEntity> ew = new EntityWrapper<JiezhongyuyueEntity>();
    162. String tableName = request.getSession().getAttribute("tableName").toString();
    163. if(tableName.equals("yonghu")) {
    164. ew.eq("yonghuming", (String)request.getSession().getAttribute("username"));
    165. }
    166. List<Map<String, Object>> result = jiezhongyuyueService.selectValue(params, ew);
    167. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    168. for(Map<String, Object> m : result) {
    169. for(String k : m.keySet()) {
    170. if(m.get(k) instanceof Date) {
    171. m.put(k, sdf.format((Date)m.get(k)));
    172. }
    173. }
    174. }
    175. return R.ok().put("data", result);
    176. }
    177. /**
    178. * (按值统计)时间统计类型
    179. */
    180. @RequestMapping("/value/{xColumnName}/{yColumnName}/{timeStatType}")
    181. public R valueDay(@PathVariable("yColumnName") String yColumnName, @PathVariable("xColumnName") String xColumnName, @PathVariable("timeStatType") String timeStatType,HttpServletRequest request) {
    182. Map<String, Object> params = new HashMap<String, Object>();
    183. params.put("xColumn", xColumnName);
    184. params.put("yColumn", yColumnName);
    185. params.put("timeStatType", timeStatType);
    186. EntityWrapper<JiezhongyuyueEntity> ew = new EntityWrapper<JiezhongyuyueEntity>();
    187. String tableName = request.getSession().getAttribute("tableName").toString();
    188. if(tableName.equals("yonghu")) {
    189. ew.eq("yonghuming", (String)request.getSession().getAttribute("username"));
    190. }
    191. List<Map<String, Object>> result = jiezhongyuyueService.selectTimeStatValue(params, ew);
    192. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    193. for(Map<String, Object> m : result) {
    194. for(String k : m.keySet()) {
    195. if(m.get(k) instanceof Date) {
    196. m.put(k, sdf.format((Date)m.get(k)));
    197. }
    198. }
    199. }
    200. return R.ok().put("data", result);
    201. }
    202. /**
    203. * 分组统计
    204. */
    205. @RequestMapping("/group/{columnName}")
    206. public R group(@PathVariable("columnName") String columnName,HttpServletRequest request) {
    207. Map<String, Object> params = new HashMap<String, Object>();
    208. params.put("column", columnName);
    209. EntityWrapper<JiezhongyuyueEntity> ew = new EntityWrapper<JiezhongyuyueEntity>();
    210. String tableName = request.getSession().getAttribute("tableName").toString();
    211. if(tableName.equals("yonghu")) {
    212. ew.eq("yonghuming", (String)request.getSession().getAttribute("username"));
    213. }
    214. List<Map<String, Object>> result = jiezhongyuyueService.selectGroup(params, ew);
    215. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    216. for(Map<String, Object> m : result) {
    217. for(String k : m.keySet()) {
    218. if(m.get(k) instanceof Date) {
    219. m.put(k, sdf.format((Date)m.get(k)));
    220. }
    221. }
    222. }
    223. return R.ok().put("data", result);
    224. }
    225. }
    1. **
    2. * 登录相关
    3. */
    4. @RequestMapping("users")
    5. @RestController
    6. public class UserController{
    7. @Autowired
    8. private UserService userService;
    9. @Autowired
    10. private TokenService tokenService;
    11. /**
    12. * 登录
    13. */
    14. @IgnoreAuth
    15. @PostMapping(value = "/login")
    16. public R login(String username, String password, String captcha, HttpServletRequest request) {
    17. UserEntity user = userService.selectOne(new EntityWrapper().eq("username", username));
    18. if(user==null || !user.getPassword().equals(password)) {
    19. return R.error("账号或密码不正确");
    20. }
    21. String token = tokenService.generateToken(user.getId(),username, "users", user.getRole());
    22. return R.ok().put("token", token);
    23. }
    24. /**
    25. * 注册
    26. */
    27. @IgnoreAuth
    28. @PostMapping(value = "/register")
    29. public R register(@RequestBody UserEntity user){
    30. // ValidatorUtils.validateEntity(user);
    31. if(userService.selectOne(new EntityWrapper().eq("username", user.getUsername())) !=null) {
    32. return R.error("用户已存在");
    33. }
    34. userService.insert(user);
    35. return R.ok();
    36. }
    37. /**
    38. * 退出
    39. */
    40. @GetMapping(value = "logout")
    41. public R logout(HttpServletRequest request) {
    42. request.getSession().invalidate();
    43. return R.ok("退出成功");
    44. }
    45. /**
    46. * 密码重置
    47. */
    48. @IgnoreAuth
    49. @RequestMapping(value = "/resetPass")
    50. public R resetPass(String username, HttpServletRequest request){
    51. UserEntity user = userService.selectOne(new EntityWrapper().eq("username", username));
    52. if(user==null) {
    53. return R.error("账号不存在");
    54. }
    55. user.setPassword("123456");
    56. userService.update(user,null);
    57. return R.ok("密码已重置为:123456");
    58. }
    59. /**
    60. * 列表
    61. */
    62. @RequestMapping("/page")
    63. public R page(@RequestParam Map params,UserEntity user){
    64. EntityWrapper ew = new EntityWrapper();
    65. PageUtils page = userService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.allLike(ew, user), params), params));
    66. return R.ok().put("data", page);
    67. }
    68. /**
    69. * 列表
    70. */
    71. @RequestMapping("/list")
    72. public R list( UserEntity user){
    73. EntityWrapper ew = new EntityWrapper();
    74. ew.allEq(MPUtil.allEQMapPre( user, "user"));
    75. return R.ok().put("data", userService.selectListView(ew));
    76. }
    77. /**
    78. * 信息
    79. */
    80. @RequestMapping("/info/{id}")
    81. public R info(@PathVariable("id") String id){
    82. UserEntity user = userService.selectById(id);
    83. return R.ok().put("data", user);
    84. }
    85. /**
    86. * 获取用户的session用户信息
    87. */
    88. @RequestMapping("/session")
    89. public R getCurrUser(HttpServletRequest request){
    90. Long id = (Long)request.getSession().getAttribute("userId");
    91. UserEntity user = userService.selectById(id);
    92. return R.ok().put("data", user);
    93. }
    94. /**
    95. * 保存
    96. */
    97. @PostMapping("/save")
    98. public R save(@RequestBody UserEntity user){
    99. // ValidatorUtils.validateEntity(user);
    100. if(userService.selectOne(new EntityWrapper().eq("username", user.getUsername())) !=null) {
    101. return R.error("用户已存在");
    102. }
    103. userService.insert(user);
    104. return R.ok();
    105. }
    106. /**
    107. * 修改
    108. */
    109. @RequestMapping("/update")
    110. public R update(@RequestBody UserEntity user){
    111. // ValidatorUtils.validateEntity(user);
    112. UserEntity u = userService.selectOne(new EntityWrapper().eq("username", user.getUsername()));
    113. if(u!=null && u.getId()!=user.getId() && u.getUsername().equals(user.getUsername())) {
    114. return R.error("用户名已存在。");
    115. }
    116. userService.updateById(user);//全部更新
    117. return R.ok();
    118. }
    119. /**
    120. * 删除
    121. */
    122. @RequestMapping("/delete")
    123. public R delete(@RequestBody Long[] ids){
    124. userService.deleteBatchIds(Arrays.asList(ids));
    125. return R.ok();
    126. }
    127. }

  • 相关阅读:
    vue3.2 之 i18n的使用
    基于java的大学教室管理系统——计算机毕业设计
    Oracle/PLSQL: Corr Function
    透明度模糊Android实现
    青少年软件编程C++二级真题(202109)
    数据结构与算法之LeetCode-1413. 逐步求和得到正数的最小值(贪心与排序)
    几句话理解Kubetnetes中的Service资源的几种类型
    Java 9 的模块(Module)系统
    【STL】STL入门(9)
    4.Nginx优化,谁用谁说好
  • 原文地址:https://blog.csdn.net/m0_49113107/article/details/126084289