From f60d385f575266364267dc14a54f4db67eeaf4a8 Mon Sep 17 00:00:00 2001 From: FreeeBird <1032796097@qq.com> Date: Thu, 28 Nov 2019 21:16:56 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E9=83=A8=E5=88=86=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 28 ++++---- .../hotel/config/GlobalCrosConfig.java | 6 ++ .../hotel/controller/OperatorController.java | 55 ---------------- ...ntroller.java => OpCheckInController.java} | 2 +- ...Controller.java => OpOrderController.java} | 2 +- ...roller.java => OpOrderTypeController.java} | 22 ++++--- ...mController.java => OpRoomController.java} | 17 ++--- ...troller.java => OpRoomTypeController.java} | 16 ++--- .../controller/worker/OpUserController.java | 13 +++- .../controller/worker/OperatorController.java | 64 +++++++++++++++++++ .../cn/mafangui/hotel/response/MsgType.java | 9 +-- .../mafangui/hotel/response/ResponseTool.java | 7 +- .../mafangui/hotel/tool/AdminInterceptor.java | 51 +++++++++++++++ .../cn/mafangui/hotel/tool/OpInterceptor.java | 52 +++++++++++++++ .../hotel/tool/SessionInterceptor.java | 2 +- .../mafangui/hotel/tool/UserInterceptor.java | 29 --------- 16 files changed, 241 insertions(+), 134 deletions(-) delete mode 100644 src/main/java/cn/mafangui/hotel/controller/OperatorController.java rename src/main/java/cn/mafangui/hotel/controller/worker/{CheckInController.java => OpCheckInController.java} (98%) rename src/main/java/cn/mafangui/hotel/controller/worker/{OrderController.java => OpOrderController.java} (99%) rename src/main/java/cn/mafangui/hotel/controller/worker/{OrderTypeController.java => OpOrderTypeController.java} (61%) rename src/main/java/cn/mafangui/hotel/controller/worker/{RoomController.java => OpRoomController.java} (79%) rename src/main/java/cn/mafangui/hotel/controller/worker/{WorkerRoomTypeController.java => OpRoomTypeController.java} (85%) create mode 100644 src/main/java/cn/mafangui/hotel/controller/worker/OperatorController.java create mode 100644 src/main/java/cn/mafangui/hotel/tool/AdminInterceptor.java create mode 100644 src/main/java/cn/mafangui/hotel/tool/OpInterceptor.java delete mode 100644 src/main/java/cn/mafangui/hotel/tool/UserInterceptor.java diff --git a/README.md b/README.md index 3225280..0c9bc07 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,11 @@ -# 酒店管理系统API +# 酒店管理系统 API Demo: [不可用] -前端页面项目(vue): +##前端页面项目(vue): https://github.com/FreeeBird/hotel_app -后台管理项目(vue-admin): +##后台管理项目(vue-admin): https://github.com/FreeeBird/hotel-manager ## 1 背景说明 @@ -19,22 +19,22 @@ https://github.com/FreeeBird/hotel-manager ## 2 项目功能 >酒店管理系统后台,供管理员管理系统之用 -- 客房类型设置 -- 客房设置 -- 操作员设置 +- 客房类型设置✔ +- 客房设置✔ +- 操作员设置✔ >酒店管理系统系统供酒店所有工作人员使用前台 - 入住登记: - - 登记信息 - - 客人信息 - - 费用信息 + - 登记信息✔ + - 客人信息✔ + - 费用信息✔ - 结账: - 通过房间号码进行退房结账 -- 预订信息管理 -- 客户管理 +- 预订信息管理✔ +- 客户管理✔ - 业务统计 >酒店管理系统系统供酒店客户使用前台 -- 浏览酒店信息 -- 用户管理 -- 预订客房 +- 浏览酒店信息✔ +- 用户管理✔ +- 预订客房✔ diff --git a/src/main/java/cn/mafangui/hotel/config/GlobalCrosConfig.java b/src/main/java/cn/mafangui/hotel/config/GlobalCrosConfig.java index 4bf4b4b..2d5cd4f 100644 --- a/src/main/java/cn/mafangui/hotel/config/GlobalCrosConfig.java +++ b/src/main/java/cn/mafangui/hotel/config/GlobalCrosConfig.java @@ -1,5 +1,7 @@ package cn.mafangui.hotel.config; +import cn.mafangui.hotel.tool.AdminInterceptor; +import cn.mafangui.hotel.tool.OpInterceptor; import cn.mafangui.hotel.tool.SessionInterceptor; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -39,6 +41,10 @@ public class GlobalCrosConfig { .excludePathPatterns("/hotel/**") .excludePathPatterns("/login/**") .excludePathPatterns("/register/**"); + registry.addInterceptor(new OpInterceptor()) + .addPathPatterns("/op/**"); + registry.addInterceptor(new AdminInterceptor()) + .addPathPatterns("/admin/**"); } }; } diff --git a/src/main/java/cn/mafangui/hotel/controller/OperatorController.java b/src/main/java/cn/mafangui/hotel/controller/OperatorController.java deleted file mode 100644 index a1a9206..0000000 --- a/src/main/java/cn/mafangui/hotel/controller/OperatorController.java +++ /dev/null @@ -1,55 +0,0 @@ -package cn.mafangui.hotel.controller; - -import cn.mafangui.hotel.entity.Worker; -import cn.mafangui.hotel.enums.Role; -import cn.mafangui.hotel.service.WorkerService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RestController; - -import java.util.List; - -@RestController -@RequestMapping(value = "/operator") -public class OperatorController { - @Autowired - private WorkerService workerService; - - - @RequestMapping(method = RequestMethod.POST,value = "/delete") - public int deleteOperator(int workerId){ - return workerService.delete(workerId); - } - - @RequestMapping(value = "/all") - public List getAllOperator(){ - return workerService.selectByRole(Role.OPERATOR.getValue()); - } - - @RequestMapping(method = RequestMethod.POST,value = "/withId") - public Worker getOperator(int workerId){ - return workerService.selectById(workerId); - } - - @RequestMapping(method = RequestMethod.POST,value = "/add") - public int addOperator(String username,String password,String name,String gender,String phone,String email,String address){ - Worker worker = new Worker(username,password,name,gender,phone,email,address); - worker.setRole(Role.OPERATOR.getValue()); - return workerService.insert(worker); - } - - - @RequestMapping(method = RequestMethod.POST,value = "/update") - public int updateOperator(int workerId,String name,String gender,String phone,String email,String address){ - Worker worker = new Worker(); - worker.setWorkerId(workerId); - worker.setName(name); - worker.setGender(gender); - worker.setPhone(phone); - worker.setEmail(email); - worker.setAddress(address); - return workerService.updateById(worker); - } - -} diff --git a/src/main/java/cn/mafangui/hotel/controller/worker/CheckInController.java b/src/main/java/cn/mafangui/hotel/controller/worker/OpCheckInController.java similarity index 98% rename from src/main/java/cn/mafangui/hotel/controller/worker/CheckInController.java rename to src/main/java/cn/mafangui/hotel/controller/worker/OpCheckInController.java index a21d16a..58ceba2 100644 --- a/src/main/java/cn/mafangui/hotel/controller/worker/CheckInController.java +++ b/src/main/java/cn/mafangui/hotel/controller/worker/OpCheckInController.java @@ -11,7 +11,7 @@ import org.springframework.web.bind.annotation.RestController; @RestController @RequestMapping(value = "/op/check-in") -public class CheckInController { +public class OpCheckInController { @Autowired private CheckInService checkInService; diff --git a/src/main/java/cn/mafangui/hotel/controller/worker/OrderController.java b/src/main/java/cn/mafangui/hotel/controller/worker/OpOrderController.java similarity index 99% rename from src/main/java/cn/mafangui/hotel/controller/worker/OrderController.java rename to src/main/java/cn/mafangui/hotel/controller/worker/OpOrderController.java index 93b198f..b1013d9 100644 --- a/src/main/java/cn/mafangui/hotel/controller/worker/OrderController.java +++ b/src/main/java/cn/mafangui/hotel/controller/worker/OpOrderController.java @@ -21,7 +21,7 @@ import java.util.List; */ @RestController @RequestMapping(value = "/op/order") -public class OrderController { +public class OpOrderController { @Autowired private OrderService orderService; diff --git a/src/main/java/cn/mafangui/hotel/controller/worker/OrderTypeController.java b/src/main/java/cn/mafangui/hotel/controller/worker/OpOrderTypeController.java similarity index 61% rename from src/main/java/cn/mafangui/hotel/controller/worker/OrderTypeController.java rename to src/main/java/cn/mafangui/hotel/controller/worker/OpOrderTypeController.java index 396acba..a78792d 100644 --- a/src/main/java/cn/mafangui/hotel/controller/worker/OrderTypeController.java +++ b/src/main/java/cn/mafangui/hotel/controller/worker/OpOrderTypeController.java @@ -13,26 +13,32 @@ import java.util.List; @RestController @RequestMapping(value = "/op/order-type") -public class OrderTypeController { +public class OpOrderTypeController { @Autowired private OrderTypeService orderTypeService; @RequestMapping(value = "/add") - public int addOrderType(String type,String remark){ + public AjaxResult addOrderType(String type,String remark){ OrderType orderType = new OrderType(type,remark); - return orderTypeService.insertOrderType(orderType); + int re = orderTypeService.insertOrderType(orderType); + if(re!=1) return ResponseTool.failed(); + return ResponseTool.success(); } - @RequestMapping(value = "/delete") - public int deleteOrderType(Integer typeId){ - return orderTypeService.deleteOrderType(typeId); + @RequestMapping(value = "/delete/{typeId}") + public AjaxResult deleteOrderType(@PathVariable Integer typeId){ + int re= orderTypeService.deleteOrderType(typeId); + if(re!=1) return ResponseTool.failed(); + return ResponseTool.success(); } @RequestMapping(value = "/update") - public int updateOrderType(Integer typeId,String type,String remark){ + public AjaxResult updateOrderType(Integer typeId,String type,String remark){ OrderType orderType = new OrderType(type,remark); orderType.setTypeId(typeId); - return orderTypeService.updateOrderType(orderType); + int re = orderTypeService.updateOrderType(orderType); + if(re!=1) return ResponseTool.failed(); + return ResponseTool.success(); } @RequestMapping(value = "/{typeId}") diff --git a/src/main/java/cn/mafangui/hotel/controller/worker/RoomController.java b/src/main/java/cn/mafangui/hotel/controller/worker/OpRoomController.java similarity index 79% rename from src/main/java/cn/mafangui/hotel/controller/worker/RoomController.java rename to src/main/java/cn/mafangui/hotel/controller/worker/OpRoomController.java index 2c7f2b6..dcbd7c4 100644 --- a/src/main/java/cn/mafangui/hotel/controller/worker/RoomController.java +++ b/src/main/java/cn/mafangui/hotel/controller/worker/OpRoomController.java @@ -13,7 +13,7 @@ import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; @RestController @RequestMapping(value = "/op/room") -public class RoomController { +public class OpRoomController { @Autowired private RoomService roomService; @@ -21,7 +21,8 @@ public class RoomController { private RoomTypeService roomTypeService; @RequestMapping(value = "/add") - public AjaxResult addRoom(String roomNumber, int typeId, String roomType, double roomPrice, double roomDiscount, int roomStatus, String remark){ + public AjaxResult addRoom(String roomNumber, Integer typeId, String roomType, double roomPrice, double roomDiscount, int roomStatus, String remark){ + if(roomService.selectByNumber(roomNumber)!=null) return ResponseTool.failed("房间号码重复"); Room room = new Room(roomNumber,typeId,roomType,roomPrice,roomDiscount,roomStatus,remark); RoomType rt = new RoomType(); if (roomService.insert(room) == 1){ @@ -32,14 +33,14 @@ public class RoomController { return ResponseTool.success("添加成功"); } - @RequestMapping(method = RequestMethod.POST,value = "/delete") - public AjaxResult deleteRoom(int roomId){ + @RequestMapping(method = RequestMethod.POST,value = "/delete/{roomId}") + public AjaxResult deleteRoom(@PathVariable Integer roomId){ if(roomService.delete(roomId)!=1) return ResponseTool.failed("删除失败"); return ResponseTool.success("删除成功"); } @RequestMapping(value = "/update") - public AjaxResult updateRoom(int roomId,String roomNumber,int typeId, + public AjaxResult updateRoom(Integer roomId,String roomNumber,Integer typeId, String roomType,double roomPrice,double roomDiscount,int roomStatus,String remark){ Room room = new Room(roomNumber,typeId,roomType,roomPrice,roomDiscount,roomStatus,remark); room.setRoomId(roomId); @@ -48,17 +49,17 @@ public class RoomController { } @RequestMapping(value = "/{id}") - public AjaxResult getById(@PathVariable int id){ + public AjaxResult getById(@PathVariable Integer id){ return ResponseTool.success(roomService.selectById(id)); } @RequestMapping(value = "/type/{typeId}") - public AjaxResult getByType(@PathVariable int typeId){ + public AjaxResult getByType(@PathVariable Integer typeId){ return ResponseTool.success(roomService.selectByType(typeId)); } @RequestMapping(value = "/status/{statusId}") - public AjaxResult getByStatus(@PathVariable int statusId){ + public AjaxResult getByStatus(@PathVariable Integer statusId){ return ResponseTool.success(roomService.selectByStatus(statusId)); } diff --git a/src/main/java/cn/mafangui/hotel/controller/worker/WorkerRoomTypeController.java b/src/main/java/cn/mafangui/hotel/controller/worker/OpRoomTypeController.java similarity index 85% rename from src/main/java/cn/mafangui/hotel/controller/worker/WorkerRoomTypeController.java rename to src/main/java/cn/mafangui/hotel/controller/worker/OpRoomTypeController.java index 9b1bee2..5330e52 100644 --- a/src/main/java/cn/mafangui/hotel/controller/worker/WorkerRoomTypeController.java +++ b/src/main/java/cn/mafangui/hotel/controller/worker/OpRoomTypeController.java @@ -13,8 +13,8 @@ import org.springframework.web.bind.annotation.RestController; import java.util.List; @RestController -@RequestMapping(value = "/admin/room_type") -public class WorkerRoomTypeController { +@RequestMapping(value = "/op/room-type") +public class OpRoomTypeController { @Autowired private RoomTypeService roomTypeService; @@ -63,8 +63,8 @@ public class WorkerRoomTypeController { * @return */ @RequestMapping(method = RequestMethod.POST,value = "/add") - public AjaxResult addRoomType(String roomType,Double price,Double discount,int area, - int bedNum,String bedSize,int window,String remark,int rest){ + public AjaxResult addRoomType(String roomType,Double price,Double discount,Integer area, + Integer bedNum,String bedSize,Integer window,String remark,Integer rest){ RoomType rt = new RoomType(roomType,remark,price,discount,area,bedNum,bedSize,window); rt.setRest(rest); int result = roomTypeService.insert(rt); @@ -87,8 +87,8 @@ public class WorkerRoomTypeController { * @return */ @RequestMapping(method = RequestMethod.POST,value = "/update") - public AjaxResult updateRoomType(int typeId,String roomType,Double price,Double discount,int area, - int bedNum,String bedSize,int window,int rest,String remark){ + public AjaxResult updateRoomType(Integer typeId,String roomType,Double price,Double discount,Integer area, + Integer bedNum,String bedSize,Integer window,Integer rest,String remark){ RoomType rt = new RoomType(roomType,remark,price,discount,area,bedNum,bedSize,window); rt.setTypeId(typeId); rt.setRest(rest); @@ -102,8 +102,8 @@ public class WorkerRoomTypeController { * @param typeId * @return */ - @RequestMapping(method = RequestMethod.POST,value = "/delete") - public AjaxResult deleteRoomType(int typeId){ + @RequestMapping(method = RequestMethod.POST,value = "/delete/{typeId}") + public AjaxResult deleteRoomType(@PathVariable Integer typeId){ int result = roomTypeService.delete(typeId); if(result!=1) return ResponseTool.failed("删除失败"); return ResponseTool.success("删除成功"); diff --git a/src/main/java/cn/mafangui/hotel/controller/worker/OpUserController.java b/src/main/java/cn/mafangui/hotel/controller/worker/OpUserController.java index f84d108..2c10d65 100644 --- a/src/main/java/cn/mafangui/hotel/controller/worker/OpUserController.java +++ b/src/main/java/cn/mafangui/hotel/controller/worker/OpUserController.java @@ -31,10 +31,19 @@ public class OpUserController { return ResponseTool.success(userService.getUserCount()); } + @RequestMapping(value = "/delete/{userId}") + public AjaxResult deleteUser(@PathVariable Integer userId){ + int re = userService.deleteUser(userId); + if(re!=1) return ResponseTool.failed(); + return ResponseTool.success(); + } + @RequestMapping(method = RequestMethod.POST,value = "/add") - public int userAdd(String username,String password,String name,String gender,String phone,String email,String address,String idcard){ + public AjaxResult userAdd(String username,String password,String name,String gender,String phone,String email,String address,String idcard){ User user = new User(username,password,name,gender,phone,email,address,idcard); - return userService.addUser(user); + int re = userService.addUser(user); + if(re!=1) return ResponseTool.failed(); + return ResponseTool.success(); } @RequestMapping(method = RequestMethod.POST,value = "/update") diff --git a/src/main/java/cn/mafangui/hotel/controller/worker/OperatorController.java b/src/main/java/cn/mafangui/hotel/controller/worker/OperatorController.java new file mode 100644 index 0000000..6ba5897 --- /dev/null +++ b/src/main/java/cn/mafangui/hotel/controller/worker/OperatorController.java @@ -0,0 +1,64 @@ +package cn.mafangui.hotel.controller.worker; + +import cn.mafangui.hotel.entity.Worker; +import cn.mafangui.hotel.enums.Role; +import cn.mafangui.hotel.response.AjaxResult; +import cn.mafangui.hotel.response.ResponseTool; +import cn.mafangui.hotel.service.WorkerService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +@RestController +@RequestMapping(value = "/admin/operator") +public class OperatorController { + @Autowired + private WorkerService workerService; + + + @RequestMapping(method = RequestMethod.POST,value = "/delete/{workerId}") + public AjaxResult deleteOperator(@PathVariable Integer workerId){ + int re = workerService.delete(workerId); + if(re!=1) ResponseTool.failed(); + return ResponseTool.success("删除成功"); + } + + @RequestMapping(value = "") + public AjaxResult getAllOperator(){ + return ResponseTool.success(workerService.selectByRole(Role.OPERATOR.getValue())); + } + + @RequestMapping(method = RequestMethod.POST,value = "/{workerId}") + public AjaxResult getOperator(@PathVariable Integer workerId){ + return ResponseTool.success(workerService.selectById(workerId)); + } + + @RequestMapping(method = RequestMethod.POST,value = "/add") + public AjaxResult addOperator(String username,String password,String name,String gender,String phone,String email,String address){ + Worker worker = new Worker(username,password,name,gender,phone,email,address); + worker.setRole(Role.OPERATOR.getValue()); + int re = workerService.insert(worker); + if(re!=1) return ResponseTool.failed(); + return ResponseTool.success("添加成功"); + } + + + @RequestMapping(method = RequestMethod.POST,value = "/update") + public AjaxResult updateOperator(int workerId,String name,String gender,String phone,String email,String address){ + Worker worker = new Worker(); + worker.setWorkerId(workerId); + worker.setName(name); + worker.setGender(gender); + worker.setPhone(phone); + worker.setEmail(email); + worker.setAddress(address); + int re = workerService.updateById(worker); + if(re!=1) return ResponseTool.failed(); + return ResponseTool.success("更新成功"); + } + +} diff --git a/src/main/java/cn/mafangui/hotel/response/MsgType.java b/src/main/java/cn/mafangui/hotel/response/MsgType.java index afb06f3..8f1136b 100644 --- a/src/main/java/cn/mafangui/hotel/response/MsgType.java +++ b/src/main/java/cn/mafangui/hotel/response/MsgType.java @@ -5,11 +5,12 @@ package cn.mafangui.hotel.response; * 消息类型描述 */ public enum MsgType { - SUCCESS(1000,"success"), - FAILED(1001,"failure"), + SUCCESS(1000,"SUCCESS"), + FAILED(1001,"FAILURE"), - PARAM_IS_INVALID(1001,"参数非法"), - PERMISSION_DENIED(1002,"权限不足"), + PARAM_IS_INVALID(1001,"PARAM_IS_INVALID"), + PERMISSION_DENIED(1002,"PERMISSION_DENIED"), + NOT_LOGIN(1100,"NOT LOGIN"); ; private Integer code; diff --git a/src/main/java/cn/mafangui/hotel/response/ResponseTool.java b/src/main/java/cn/mafangui/hotel/response/ResponseTool.java index 5846cd5..1dab06c 100644 --- a/src/main/java/cn/mafangui/hotel/response/ResponseTool.java +++ b/src/main/java/cn/mafangui/hotel/response/ResponseTool.java @@ -1,8 +1,5 @@ package cn.mafangui.hotel.response; -import cn.mafangui.hotel.response.AjaxResult; -import cn.mafangui.hotel.response.MsgType; - /** * 接口数据返回工具类 * 成功则调用success @@ -19,6 +16,10 @@ public class ResponseTool { return new AjaxResult<>(object); } + public static AjaxResult success(){ + return new AjaxResult(MsgType.SUCCESS.getCode(),MsgType.SUCCESS.getMessage()); + } + /** * 请求失败 * @param msgType 消息描述 diff --git a/src/main/java/cn/mafangui/hotel/tool/AdminInterceptor.java b/src/main/java/cn/mafangui/hotel/tool/AdminInterceptor.java new file mode 100644 index 0000000..63f865a --- /dev/null +++ b/src/main/java/cn/mafangui/hotel/tool/AdminInterceptor.java @@ -0,0 +1,51 @@ +package cn.mafangui.hotel.tool; + +import cn.mafangui.hotel.enums.Role; +import cn.mafangui.hotel.response.AjaxResult; +import cn.mafangui.hotel.response.MsgType; +import cn.mafangui.hotel.response.ResponseTool; +import com.fasterxml.jackson.databind.ObjectMapper; +import org.springframework.web.servlet.HandlerInterceptor; +import org.springframework.web.servlet.ModelAndView; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.HttpSession; +import java.io.PrintWriter; + +public class AdminInterceptor implements HandlerInterceptor { + + @Override + public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { + HttpSession session = request.getSession(); + if(session.getAttribute("role").equals(Role.ADMIN.getValue())){ + return true; + }else { + setCorsMappings(request, response); + PrintWriter writer = response.getWriter(); + AjaxResult result = ResponseTool.failed(MsgType.PERMISSION_DENIED); + ObjectMapper mapper = new ObjectMapper(); + writer.write(mapper.writeValueAsString(result)); + return false; + } + } + + private void setCorsMappings(HttpServletRequest request, HttpServletResponse response){ + String origin = request.getHeader("Origin"); + response.setHeader("Access-Control-Allow-Origin", origin); + response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE"); + response.setHeader("Access-Control-Max-Age", "3600"); + response.setHeader("Access-Control-Allow-Headers", "x-requested-with,Authorization"); + response.setHeader("Access-Control-Allow-Credentials", "true"); + } + + + @Override + public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { + + } + + @Override + public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { + } +} diff --git a/src/main/java/cn/mafangui/hotel/tool/OpInterceptor.java b/src/main/java/cn/mafangui/hotel/tool/OpInterceptor.java new file mode 100644 index 0000000..6f33e4c --- /dev/null +++ b/src/main/java/cn/mafangui/hotel/tool/OpInterceptor.java @@ -0,0 +1,52 @@ +package cn.mafangui.hotel.tool; + +import cn.mafangui.hotel.enums.Role; +import cn.mafangui.hotel.response.AjaxResult; +import cn.mafangui.hotel.response.MsgType; +import cn.mafangui.hotel.response.ResponseTool; +import com.fasterxml.jackson.databind.ObjectMapper; +import org.springframework.web.servlet.HandlerInterceptor; +import org.springframework.web.servlet.ModelAndView; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.HttpSession; +import java.io.PrintWriter; + +public class OpInterceptor implements HandlerInterceptor { + + @Override + public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { + HttpSession session = request.getSession(); + if(session.getAttribute("role").equals(Role.OPERATOR.getValue()) || + session.getAttribute("role").equals(Role.ADMIN.getValue())){ + return true; + }else { + setCorsMappings(request, response); + PrintWriter writer = response.getWriter(); + AjaxResult result = ResponseTool.failed(MsgType.PERMISSION_DENIED); + ObjectMapper mapper = new ObjectMapper(); + writer.write(mapper.writeValueAsString(result)); + return false; + } + } + + private void setCorsMappings(HttpServletRequest request, HttpServletResponse response){ + String origin = request.getHeader("Origin"); + response.setHeader("Access-Control-Allow-Origin", origin); + response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE"); + response.setHeader("Access-Control-Max-Age", "3600"); + response.setHeader("Access-Control-Allow-Headers", "x-requested-with,Authorization"); + response.setHeader("Access-Control-Allow-Credentials", "true"); + } + + + @Override + public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { + + } + + @Override + public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { + } +} diff --git a/src/main/java/cn/mafangui/hotel/tool/SessionInterceptor.java b/src/main/java/cn/mafangui/hotel/tool/SessionInterceptor.java index 91fca5a..e6c54cb 100644 --- a/src/main/java/cn/mafangui/hotel/tool/SessionInterceptor.java +++ b/src/main/java/cn/mafangui/hotel/tool/SessionInterceptor.java @@ -22,7 +22,7 @@ public class SessionInterceptor implements HandlerInterceptor { }else { setCorsMappings(request, response); PrintWriter writer = response.getWriter(); - AjaxResult result = ResponseTool.failed("NOT LOGIN"); + AjaxResult result = ResponseTool.failed(MsgType.NOT_LOGIN); ObjectMapper mapper = new ObjectMapper(); writer.write(mapper.writeValueAsString(result)); return false; diff --git a/src/main/java/cn/mafangui/hotel/tool/UserInterceptor.java b/src/main/java/cn/mafangui/hotel/tool/UserInterceptor.java deleted file mode 100644 index 6db3c1b..0000000 --- a/src/main/java/cn/mafangui/hotel/tool/UserInterceptor.java +++ /dev/null @@ -1,29 +0,0 @@ -package cn.mafangui.hotel.tool; - -import cn.mafangui.hotel.response.AjaxResult; -import cn.mafangui.hotel.response.MsgType; -import cn.mafangui.hotel.response.ResponseTool; -import com.fasterxml.jackson.databind.ObjectMapper; -import org.springframework.web.servlet.HandlerInterceptor; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; -import java.io.PrintWriter; - - -public class UserInterceptor implements HandlerInterceptor { - @Override - public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { - HttpSession session = request.getSession(); - if(session.getAttribute("userId") != null){ - return true; - }else { - PrintWriter writer = response.getWriter(); - AjaxResult result = ResponseTool.failed(MsgType.PERMISSION_DENIED); - ObjectMapper mapper = new ObjectMapper(); - writer.write(mapper.writeValueAsString(result)); - return false; - } - } -}