——————————DescriptionStart——————————
运行环境
Java≥8、MySQL≥5.7、Node.js≥14
开发工具
后端:eclipse/idea/myeclipse/sts等均可配置运行
前端:WebStorm/VSCode/HBuilderX等均可
❗没学过node.js的不要搞前后端分离项目
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明






基于javaweb的SpringBootoa办公管理系统oa管理系统(java+springboot+vue+maven+mybatis+mysql)
用户分为:经理(管理员)、主管、员工
一、项目运行 环境配置:
Jdk1.8 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。
项目技术:
Spring + SpringBoot+ mybatis + Maven + Vue 等等组成,B/S模式 + Maven管理等等。
——————————CodeStart——————————
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| PrintWriter out = response.getWriter(); out.write("{\"status\":\"error\",\"message\":\"授权已过期,请重新登录。\"}"); out.flush(); out.close(); }) .accessDeniedHandler((request, response, exception) -> { response.setContentType("application/json;charset=utf-8"); response.setStatus(HttpServletResponse.SC_FORBIDDEN); PrintWriter out = response.getWriter(); out.write("{\"status\":\"error\",\"message\":\"您没有权限进行此操作!\"}"); out.flush(); out.close(); }) .and().logout() .logoutUrl("/api/logout") .logoutSuccessHandler((request, response, authentication) -> { response.setContentType("application/json;charset=utf-8"); PrintWriter out = response.getWriter(); out.write("{\"status\":\"success\",\"message\":\"注销成功!\"}"); out.flush(); out.close(); }) .and().userDetailsService(userService) .csrf().disable(); } } package cn.linter.oasys.controller;
@RestController @RequestMapping("/api") public class UserController {
private final UserService userService;
public UserController(UserService userService) { this.userService = userService; }
@GetMapping("/auth") public Response<User> getAuthentication(@AuthenticationPrincipal User user) {
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| int result = userService.updateUser(user); if (result == -1) { return Response.error("用户名已存在!"); } return Response.success("更新成功!"); }
@PreAuthorize("hasRole('经理')") @PostMapping("/addUser") public Response<?> addUser(@RequestBody User user) {
int result = userService.addUser(user); if (result == -1) { return Response.error("用户名已存在!"); } return Response.success("添加成功!"); }
@PreAuthorize("hasRole('经理')") @PostMapping("/deleteUser") public Response<?> deleteUser(@RequestBody Integer[] ids) { userService.deleteUser(ids); return Response.success("删除成功!"); }
@PostMapping("/updatePassword") public Response<?> updatePassword(@RequestBody User user) {
System.out.println("执行了..."); int result = userService.updatePassword(user); return Response.success("修改密码成功!"); }
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
|
@RestController @RequestMapping("/api") public class AttendanceController { private final AttendanceService attendanceService;
public AttendanceController(AttendanceService attendanceService) { this.attendanceService = attendanceService; }
@GetMapping("/getAttendanceTime") public Response<List<String>> getAttendanceTime() { Map<String, String> map = attendanceService.getAttendanceTime(); List<String> list = new ArrayList<>(); list.add(map.get("begin")); list.add(map.get("end")); return Response.success("获取成功!", list); }
@GetMapping("/setAttendanceTime") @PreAuthorize("hasAnyRole('主管','经理')") public Response<?> setAttendanceTime(@RequestParam("begin") String begin, @RequestParam("end") String end) { attendanceService.setAttendanceTime(begin, end); return Response.success("设置成功!"); }
@GetMapping("/getAttendance") public Response<Attendance> getAttendance(@AuthenticationPrincipal User user) { Attendance attendance = attendanceService.getAttendance(user.getId()); return Response.success("获取成功!", attendance); }
@GetMapping("/getAttendances") public Response<List<String>> getAttendances(@AuthenticationPrincipal User user) { List<String> attendances = attendanceService.getAttendances(user.getId()); return Response.success("获取成功!", attendances); }
@GetMapping("/signIn") public Response<?> signIn(@AuthenticationPrincipal User user) throws ParseException { Map<String, String> map = attendanceService.getAttendanceTime(); LocalTime beginTime = LocalTime.parse(map.get("begin"));
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| @PostMapping("askLeave") public Response<?> askLeave(@AuthenticationPrincipal User user, @RequestBody Leave leave) { leave.setUser(user); leaveService.askLeave(leave); return Response.success("提交成功!"); }
@PostMapping("checkLeave") @PreAuthorize("hasRole('经理')") public Response<?> checkLeave(@RequestBody Leave leave) { leaveService.checkLeave(leave); return Response.success("提交成功!"); }
@GetMapping("getLeaves") public Response<PageInfo<Leave>> getLeaves(@RequestParam(value = "pageNumber", defaultValue = "1") int pageNumber, @RequestParam(value = "pageSize", defaultValue = "10") int pageSize) { PageInfo<Leave> pageInfo = leaveService.getLeaves(pageNumber, pageSize); return Response.success("获取成功!", pageInfo); } } package cn.linter.oasys.controller;
@RestController @RequestMapping("/api") public class NoticeController {
private final NoticeService noticeService;
public NoticeController(NoticeService noticeService) {
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
| public Response<User> getAuthentication(@AuthenticationPrincipal User user) { user.setPassword(null); return Response.success("获取成功!", user); }
@GetMapping("/user/{id}") public Response<User> getUser(@PathVariable("id") int id) { User user = userService.getUserById(id); if (user.getId() == 0) { return Response.error("此用户不存在!"); } return Response.success("获取成功!", user); }
@PreAuthorize("hasRole('经理')") @GetMapping("/getUsers") public Response<PageInfo<User>> getUsers(@RequestParam(value = "pageNumber", defaultValue = "1") int pageNumber, @RequestParam(value = "pageSize", defaultValue = "8") int pageSize) {
System.out.println("执行了..."); System.out.println("跳转到这个页数"+pageNumber);
PageInfo<User> pageInfo = userService.getUsers(pageNumber, pageSize); return Response.success("获取成功!", pageInfo); }
@PreAuthorize("hasRole('经理')") @PostMapping("/updateUser") public Response<?> updateUser(@RequestBody User user) {
int result = userService.updateUser(user); if (result == -1) { return Response.error("用户名已存在!"); } return Response.success("更新成功!"); }
@PreAuthorize("hasRole('经理')") @PostMapping("/addUser") public Response<?> addUser(@RequestBody User user) {
int result = userService.addUser(user); if (result == -1) { return Response.error("用户名已存在!"); } return Response.success("添加成功!");
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
|
@RestController @RequestMapping("/api") public class AttendanceController { private final AttendanceService attendanceService;
public AttendanceController(AttendanceService attendanceService) { this.attendanceService = attendanceService; }
@GetMapping("/getAttendanceTime") public Response<List<String>> getAttendanceTime() { Map<String, String> map = attendanceService.getAttendanceTime(); List<String> list = new ArrayList<>(); list.add(map.get("begin")); list.add(map.get("end")); return Response.success("获取成功!", list); }
@GetMapping("/setAttendanceTime") @PreAuthorize("hasAnyRole('主管','经理')") public Response<?> setAttendanceTime(@RequestParam("begin") String begin, @RequestParam("end") String end) { attendanceService.setAttendanceTime(begin, end); return Response.success("设置成功!"); }
@GetMapping("/getAttendance")
|
——————————PayStart——————————
项目链接:
https://javayms.github.io?id=371122512008200mv
https://javayms.pages.dev?id=371122512008200mv