【计算机毕业设计】疫情社区管理系统的设计与实现
文章目錄
- 介紹
- 軟件架構(gòu)
- 開發(fā)環(huán)境
- 界面效果圖
- 項目結(jié)構(gòu)
- 代碼實現(xiàn):
- 🌟思維導(dǎo)圖
介紹
基于Java的疫情社區(qū)人員流動管理系統(tǒng)。
軟件架構(gòu)
系統(tǒng)使用前后端分離,后端編寫接口,提供數(shù)據(jù)。前端調(diào)用接口獲取數(shù)據(jù),根據(jù)要求在頁面上進(jìn)行渲染。
由于使用前后端分離,就要解決跨域訪問的問題,所以用JWT進(jìn)行數(shù)據(jù)的傳送。
用shiro框架進(jìn)行權(quán)限的控制,根據(jù)用戶擁有的角色,分配角色對應(yīng)的權(quán)限。
在用戶注冊時,會有注冊碼,注冊碼有兩種分類,一種是管理員,一種是超級管理員,根據(jù)注冊碼給用戶分配角色。
管理員有添加、查詢,刪除居民或者訪客信息的權(quán)限,也有查詢住戶地址權(quán)限。而超級管理員擁有系統(tǒng)所有的權(quán)限。
開發(fā)環(huán)境
1.系統(tǒng)用Java語言開發(fā),前端用Vue,后端用Spring Boot框架;
2.開發(fā)工具:IDEA、Navicat Premium 15、Postman等;
3.技術(shù):MySQL、Redis、Spring、Spring Boot、MyBatis、JWT(Shiro)、Vue等
界面效果圖
登錄:
首頁:
用戶個人信息(圖片上傳):
住戶管理:
訪客出入登記:
訪客出入信息管理:
文件管理:
垃圾箱(數(shù)據(jù)恢復(fù)):
項目結(jié)構(gòu)
代碼實現(xiàn):
登錄:
@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()));// 獲取當(dāng)前登錄用戶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("該用戶已被禁用或者拉入黑名單,請聯(lián)系管理員");}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());}} }圖表統(tǒng)計
@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(){//住戶總體人數(shù)List<Resident> list1 = residentService.getAll();int number1=list1.size();//訪客數(shù)量List<Visitor> list2 = visitorService.getAll();int number2 =list2.size();//中高風(fēng)險地區(qū)人數(shù)List<Resident> list3 = residentService.queryByresState();int number3 = list3.size();//房間數(shù)量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));}}🌟思維導(dǎo)圖
后面的就不再列舉了,,
??源碼,看下面評論哦??
總結(jié)
以上是生活随笔為你收集整理的【计算机毕业设计】疫情社区管理系统的设计与实现的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: windows配置solr5.5.2(不
- 下一篇: 汇编环境搭建 Windows10 VS2