【计算机毕业设计】疫情社区管理系统的设计与实现 (新增-健康打卡)
生活随笔
收集整理的這篇文章主要介紹了
【计算机毕业设计】疫情社区管理系统的设计与实现 (新增-健康打卡)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 介紹
- 🚀 軟件架構
- 🚀 開發環境
- 🚀 界面效果圖
- 🚀 項目結構
- 🚀 代碼實現:
- 🌟思維導圖
介紹
基于Java的疫情社區人員流動管理系統。
🚀 軟件架構
系統使用前后端分離,后端編寫接口,提供數據。前端調用接口獲取數據,根據要求在頁面上進行渲染。
由于使用前后端分離,就要解決跨域訪問的問題,所以用JWT進行數據的傳送。
用shiro框架進行權限的控制,根據用戶擁有的角色,分配角色對應的權限。
在用戶注冊時,會有注冊碼,注冊碼有兩種分類,一種是管理員,一種是超級管理員,根據注冊碼給用戶分配角色。
管理員有添加、查詢,刪除居民或者訪客信息的權限,也有查詢住戶地址權限。而超級管理員擁有系統所有的權限。
🚀 開發環境
1.系統用Java語言開發,前端用Vue,后端用Spring Boot框架;
2.開發工具:IDEA、Navicat Premium 15、Postman等;
3.技術:MySQL、Redis、Spring、Spring Boot、MyBatis、JWT(Shiro)、Vue等
🚀 界面效果圖
🚀 登錄:
🚀 首頁:(新增-健康打卡)
🌈 管理員:
🌈 用戶角色 (健康打卡數據分析、區域數據分析、社區人員分析)
🚀 健康打卡 (針對用戶角色)
🚀 個人信息(圖片上傳):
🚀 住戶管理:
🚀 訪客出入登記:
🚀 訪客出入信息管理:
🚀 文件管理:
🚀 垃圾箱(數據恢復):
🚀 項目結構
🚀 代碼實現:
🌈 登錄:
@RequestMapping("/user") @RestController public class LoginController {final UserService userService;final MenuService menuService;public LoginController(UserService userService, MenuService menuService){this.userService = userService;this.menuService = menuService;}@RequestMapping(value = "/login",method = RequestMethod.POST)public APIResult login(@RequestBody User user){Subject subject = SecurityUtils.getSubject();try {subject.login(new UsernamePasswordToken(user.getAccount(),user.getPassword()));// 獲取當前登錄用戶User loginuser = userService.findRolesByAccount(user.getAccount());List<Menu> menuByRoleName = menuService.findMenuByRoleName(loginuser.getRoleName());loginuser.setMenus(menuByRoleName);if (loginuser.getStatus() == ConstantsUtils.CODE_STATUS_1){return APIResult.notFound("該用戶已被禁用或者拉入黑名單,請聯系管理員");}loginuser.setPassword(null);loginuser.setCodeText(null);String token = TokenUtil.createToken(loginuser.getAccount());return new APIResult(ConstantsUtils.CODE_STATUS_200,token,1,loginuser);} catch (UnknownAccountException e) {e.printStackTrace();return APIResult.notFound("用戶名錯誤");} catch (IncorrectCredentialsException e) {e.printStackTrace();return APIResult.notFound("密碼錯誤");}}@RequestMapping(value = "/loginout",method = RequestMethod.POST)public APIResult loginout(@RequestBody String account){RedisTemplate redisTemplate = (RedisTemplate) ApplicationContextUtils.getBean("redisTemplate");redisTemplate.setKeySerializer(new StringRedisSerializer());redisTemplate.setHashKeySerializer(new StringRedisSerializer());redisTemplate.opsForHash().delete("authenticationCache",account);return new APIResult(ConstantsUtils.CODE_STATUS_200,null,ConstantsUtils.CODE_STATUS_1,"退出成功");}@RequestMapping(value = "/reg",method = RequestMethod.POST)public APIResult reg(@RequestBody User user){try {userService.reg(user);return APIResult.created(user);} catch (Exception e) {e.printStackTrace();return APIResult.notFound(e.getMessage());}} }🌈 圖表統計
@RequestMapping("/echarts") @RestController public class EchartsController {final ResidentService residentService;final VisitorService visitorService;final AddressService addressService;public EchartsController(ResidentService residentService, VisitorService visitorService, AddressService addressService) {this.residentService = residentService;this.visitorService = visitorService;this.addressService = addressService;}@GetMapping("/members")public APIResult members() {List<Resident> list = residentService.queryAll(null,null,null);int q1 = list.size(); // 正常List<Resident> residents = residentService.queryByresState();int q2 = residents.size();return new APIResult(ConstantsUtils.CODE_STATUS_200,null,list.size(),CollUtil.newArrayList(q1, q2));}@RequestMapping(value = "/vis",method = RequestMethod.GET)public APIResult getVis(){List<Visitor> list = visitorService.queryAll(null, null, null);int q1 = 0; // 第一季度int q2 = 0; // 第二季度int q3 = 0; // 第三季度int q4 = 0; // 第四季度for (Visitor visitor : list) {Date visTime = visitor.getVisTime();Quarter quarter = DateUtil.quarterEnum(visTime);switch (quarter) {case Q1: q1 += 1; break;case Q2: q2 += 1; break;case Q3: q3 += 1; break;case Q4: q4 += 1; break;default: break;}}return new APIResult(ConstantsUtils.CODE_STATUS_200,null,list.size(),CollUtil.newArrayList(q1, q2, q3, q4));}@RequestMapping(value = "/getFour",method = RequestMethod.GET)public APIResult getFour(){//住戶總體人數List<Resident> list1 = residentService.getAll();int number1=list1.size();//訪客數量List<Visitor> list2 = visitorService.getAll();int number2 =list2.size();//中高風險地區人數List<Resident> list3 = residentService.queryByresState();int number3 = list3.size();//房間數量List<Address> list4 = addressService.queryAll(null, null, null);int number4 = list4.size();return new APIResult(ConstantsUtils.CODE_STATUS_200,null,null,CollUtil.newArrayList(number1, number2, number3, number4));}}🌟思維導圖
后面的就不再列舉了,,
??源碼,看下面評論哦??
總結
以上是生活随笔為你收集整理的【计算机毕业设计】疫情社区管理系统的设计与实现 (新增-健康打卡)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《给产品经理讲技术》笔记之第三章:开发技
- 下一篇: xp系统打印服务器自动关闭,WinXP系