From 76d72568ffe162448a26487fa563a9b4e3d20f0e Mon Sep 17 00:00:00 2001 From: huanghong Date: Tue, 14 Apr 2026 12:48:05 +0800 Subject: [PATCH] no message --- .../admin/AdminHouseAuditController.java | 76 -------- .../admin/AdminHouseController.java | 68 ------- .../admin/AdminHouseOfflineController.java | 69 -------- .../admin/AdminHouseOnlineController.java | 69 -------- .../admin/AdminOrderController.java | 61 ------- .../admin/AdminStatisticsController.java | 74 -------- .../controller/admin/AdminUserController.java | 94 ---------- .../admin/AdminUserDeleteController.java | 77 -------- .../admin/AdminUserStatusController.java | 74 -------- .../landlord/HouseAddController.java | 152 ---------------- .../landlord/HouseDeleteController.java | 111 ------------ .../landlord/HouseEditController.java | 138 --------------- .../landlord/HouseListController.java | 63 ------- .../landlord/OrderConfirmController.java | 79 --------- .../landlord/OrderManageController.java | 61 ------- .../landlord/ReservationHandleController.java | 76 -------- .../landlord/ReservationManageController.java | 63 ------- .../user/CollectionAddController.java | 89 ---------- .../user/CollectionDeleteController.java | 127 -------------- .../user/CollectionListController.java | 65 ------- .../user/HouseDetailController.java | 73 -------- .../controller/user/HouseListController.java | 74 -------- .../hrs/controller/user/LoginController.java | 120 ------------- .../hrs/controller/user/LogoutController.java | 50 ------ .../user/OrderCancelController.java | 84 --------- .../user/OrderCreateController.java | 166 ------------------ .../controller/user/OrderListController.java | 61 ------- .../controller/user/OrderPayController.java | 78 -------- .../controller/user/RegisterController.java | 84 --------- .../user/ReservationAddController.java | 150 ---------------- .../user/ReservationCancelController.java | 70 -------- .../user/ReservationListController.java | 63 ------- 32 files changed, 2759 deletions(-) delete mode 100644 HRS/src/com/hrs/controller/admin/AdminHouseAuditController.java delete mode 100644 HRS/src/com/hrs/controller/admin/AdminHouseController.java delete mode 100644 HRS/src/com/hrs/controller/admin/AdminHouseOfflineController.java delete mode 100644 HRS/src/com/hrs/controller/admin/AdminHouseOnlineController.java delete mode 100644 HRS/src/com/hrs/controller/admin/AdminOrderController.java delete mode 100644 HRS/src/com/hrs/controller/admin/AdminStatisticsController.java delete mode 100644 HRS/src/com/hrs/controller/admin/AdminUserController.java delete mode 100644 HRS/src/com/hrs/controller/admin/AdminUserDeleteController.java delete mode 100644 HRS/src/com/hrs/controller/admin/AdminUserStatusController.java delete mode 100644 HRS/src/com/hrs/controller/landlord/HouseAddController.java delete mode 100644 HRS/src/com/hrs/controller/landlord/HouseDeleteController.java delete mode 100644 HRS/src/com/hrs/controller/landlord/HouseEditController.java delete mode 100644 HRS/src/com/hrs/controller/landlord/HouseListController.java delete mode 100644 HRS/src/com/hrs/controller/landlord/OrderConfirmController.java delete mode 100644 HRS/src/com/hrs/controller/landlord/OrderManageController.java delete mode 100644 HRS/src/com/hrs/controller/landlord/ReservationHandleController.java delete mode 100644 HRS/src/com/hrs/controller/landlord/ReservationManageController.java delete mode 100644 HRS/src/com/hrs/controller/user/CollectionAddController.java delete mode 100644 HRS/src/com/hrs/controller/user/CollectionDeleteController.java delete mode 100644 HRS/src/com/hrs/controller/user/CollectionListController.java delete mode 100644 HRS/src/com/hrs/controller/user/HouseDetailController.java delete mode 100644 HRS/src/com/hrs/controller/user/HouseListController.java delete mode 100644 HRS/src/com/hrs/controller/user/LoginController.java delete mode 100644 HRS/src/com/hrs/controller/user/LogoutController.java delete mode 100644 HRS/src/com/hrs/controller/user/OrderCancelController.java delete mode 100644 HRS/src/com/hrs/controller/user/OrderCreateController.java delete mode 100644 HRS/src/com/hrs/controller/user/OrderListController.java delete mode 100644 HRS/src/com/hrs/controller/user/OrderPayController.java delete mode 100644 HRS/src/com/hrs/controller/user/RegisterController.java delete mode 100644 HRS/src/com/hrs/controller/user/ReservationAddController.java delete mode 100644 HRS/src/com/hrs/controller/user/ReservationCancelController.java delete mode 100644 HRS/src/com/hrs/controller/user/ReservationListController.java diff --git a/HRS/src/com/hrs/controller/admin/AdminHouseAuditController.java b/HRS/src/com/hrs/controller/admin/AdminHouseAuditController.java deleted file mode 100644 index b67eb4a..0000000 --- a/HRS/src/com/hrs/controller/admin/AdminHouseAuditController.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.hrs.controller.admin; - -import com.hrs.dao.HouseDao; -import com.hrs.dao.impl.HouseDaoImpl; -import com.hrs.model.entity.User; - -import javax.servlet.ServletException; -import javax.servlet.annotation.WebServlet; -import javax.servlet.http.HttpServlet; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; -import java.io.IOException; -import java.net.URLEncoder; - - - -/** -* Copyright: Copyright (c) 2026 chinasofti -* -* @ClassName: AdminHouseAuditController.java -* @Description: 管理员房源审核操作控制器 -* -* @version: v1.0.0 -* @author: 李鑫 -* @date: 2026年4月13日 上午8:48:49 -* -* Modification History: -* Date Author Version Description -*---------------------------------------------------------* -* 2026年4月13日 李鑫 v1.0.0 新建文件 -*/ - -@WebServlet("/admin/house/audit") -public class AdminHouseAuditController extends HttpServlet { - - private HouseDao houseDao = new HouseDaoImpl(); - - @Override - protected void doGet(HttpServletRequest request, HttpServletResponse response) - throws ServletException, IOException { - - HttpSession session = request.getSession(false); - if (session == null) { - response.sendRedirect(request.getContextPath() + "/user/login"); - return; - } - - User loginUser = (User) session.getAttribute("loginUser"); - if (loginUser == null || !"2".equals(loginUser.getRoleType())) { - response.sendRedirect(request.getContextPath() + "/user/login"); - return; - } - - String houseIdStr = request.getParameter("id"); - String action = request.getParameter("action"); - - if (houseIdStr == null || action == null) { - response.sendRedirect(request.getContextPath() + "/admin/house/list"); - return; - } - Long houseId = Long.parseLong(houseIdStr); - String status = "approve".equals(action) ? "1" : "3"; // 1-已上架,3-违规/拒绝 - - boolean success = houseDao.updateStatus(houseId, status); - - if (success) { - String msg = "approve".equals(action) ? "房源审核通过,已上架" : "房源审核拒绝"; - String encodedMsg = URLEncoder.encode(msg, "UTF-8"); - response.sendRedirect(request.getContextPath() + "/admin/house/list?msg=" + encodedMsg); - } else { - String encodedError = URLEncoder.encode("操作失败", "UTF-8"); - response.sendRedirect(request.getContextPath() + "/admin/house/list?error=" + encodedError); - } - } -} \ No newline at end of file diff --git a/HRS/src/com/hrs/controller/admin/AdminHouseController.java b/HRS/src/com/hrs/controller/admin/AdminHouseController.java deleted file mode 100644 index bdd3960..0000000 --- a/HRS/src/com/hrs/controller/admin/AdminHouseController.java +++ /dev/null @@ -1,68 +0,0 @@ -package com.hrs.controller.admin; - -import com.hrs.dao.HouseDao; -import com.hrs.dao.impl.HouseDaoImpl; -import com.hrs.model.entity.House; -import com.hrs.model.entity.User; - -import javax.servlet.ServletException; -import javax.servlet.annotation.WebServlet; -import javax.servlet.http.HttpServlet; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; -import java.io.IOException; -import java.util.List; - -/** -* Copyright: Copyright (c) 2026 chinasofti -* -* @ClassName: AdminHouseController.java -* @Description: 管理员房源审核控制器 -* -* @version: v1.0.0 -* @author: 李鑫 -* @date: 2026年4月13日 上午8:51:26 -* -* Modification History: -* Date Author Version Description -*---------------------------------------------------------* -* 2026年4月13日 李鑫 v1.0.0 新建文件 -*/ -@WebServlet("/admin/house/list") -public class AdminHouseController extends HttpServlet { - - private HouseDao houseDao = new HouseDaoImpl(); - - @Override - protected void doGet(HttpServletRequest request, HttpServletResponse response) - throws ServletException, IOException { - - HttpSession session = request.getSession(false); - if (session == null) { - response.sendRedirect(request.getContextPath() + "/user/login"); - return; - } - - User loginUser = (User) session.getAttribute("loginUser"); - if (loginUser == null || !"2".equals(loginUser.getRoleType())) { - response.sendRedirect(request.getContextPath() + "/user/login"); - return; - } - - // 获取不同状态的房源 - List pendingList = houseDao.findPendingHouses(); - List publishedList = houseDao.findPublishedHousesForAdmin(); - List offlineList = houseDao.findOfflineHouses(); - - request.setAttribute("pendingList", pendingList); - request.setAttribute("publishedList", publishedList); - request.setAttribute("offlineList", offlineList); - request.setAttribute("pendingCount", pendingList.size()); - request.setAttribute("publishedCount", publishedList.size()); - request.setAttribute("offlineCount", offlineList.size()); - request.setAttribute("loginUser", loginUser); - - request.getRequestDispatcher("/jsp/admin/house_list.jsp").forward(request, response); - } -} \ No newline at end of file diff --git a/HRS/src/com/hrs/controller/admin/AdminHouseOfflineController.java b/HRS/src/com/hrs/controller/admin/AdminHouseOfflineController.java deleted file mode 100644 index 9d6ec9b..0000000 --- a/HRS/src/com/hrs/controller/admin/AdminHouseOfflineController.java +++ /dev/null @@ -1,69 +0,0 @@ -package com.hrs.controller.admin; - -import com.hrs.dao.HouseDao; -import com.hrs.dao.impl.HouseDaoImpl; -import com.hrs.model.entity.User; - -import javax.servlet.ServletException; -import javax.servlet.annotation.WebServlet; -import javax.servlet.http.HttpServlet; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; -import java.io.IOException; -import java.net.URLEncoder; - -/** -* Copyright: Copyright (c) 2026 chinasofti -* -* @ClassName: AdminHouseOfflineController.java -* @Description: 管理员下架房源控制器 -* -* @version: v1.0.0 -* @author: 李鑫 -* @date: 2026年4月13日 上午8:52:08 -* -* Modification History: -* Date Author Version Description -*---------------------------------------------------------* -* 2026年4月13日 李鑫 v1.0.0 新建文件 -*/ -@WebServlet("/admin/house/offline") -public class AdminHouseOfflineController extends HttpServlet { - - private HouseDao houseDao = new HouseDaoImpl(); - - @Override - protected void doGet(HttpServletRequest request, HttpServletResponse response) - throws ServletException, IOException { - - HttpSession session = request.getSession(false); - if (session == null) { - response.sendRedirect(request.getContextPath() + "/user/login"); - return; - } - - User loginUser = (User) session.getAttribute("loginUser"); - if (loginUser == null || !"2".equals(loginUser.getRoleType())) { - response.sendRedirect(request.getContextPath() + "/user/login"); - return; - } - - String houseIdStr = request.getParameter("id"); - if (houseIdStr == null) { - response.sendRedirect(request.getContextPath() + "/admin/house/list"); - return; - } - - Long houseId = Long.parseLong(houseIdStr); - boolean success = houseDao.updateStatus(houseId, "2"); // 2-已下架 - - if (success) { - String encodedMsg = URLEncoder.encode("房源已下架", "UTF-8"); - response.sendRedirect(request.getContextPath() + "/admin/house/list?msg=" + encodedMsg); - } else { - String encodedError = URLEncoder.encode("操作失败", "UTF-8"); - response.sendRedirect(request.getContextPath() + "/admin/house/list?error=" + encodedError); - } - } -} \ No newline at end of file diff --git a/HRS/src/com/hrs/controller/admin/AdminHouseOnlineController.java b/HRS/src/com/hrs/controller/admin/AdminHouseOnlineController.java deleted file mode 100644 index bd1278b..0000000 --- a/HRS/src/com/hrs/controller/admin/AdminHouseOnlineController.java +++ /dev/null @@ -1,69 +0,0 @@ -package com.hrs.controller.admin; - -import com.hrs.dao.HouseDao; -import com.hrs.dao.impl.HouseDaoImpl; -import com.hrs.model.entity.User; - -import javax.servlet.ServletException; -import javax.servlet.annotation.WebServlet; -import javax.servlet.http.HttpServlet; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; -import java.io.IOException; -import java.net.URLEncoder; - -/** -* Copyright: Copyright (c) 2026 chinasofti -* -* @ClassName: AdminHouseOnlineController.java -* @Description: 管理员重新上架房源控制器 -* -* @version: v1.0.0 -* @author: 李鑫 -* @date: 2026年4月13日 上午8:53:08 -* -* Modification History: -* Date Author Version Description -*---------------------------------------------------------* -* 2026年4月13日 李鑫 v1.0.0 新建文件 -*/ -@WebServlet("/admin/house/online") -public class AdminHouseOnlineController extends HttpServlet { - - private HouseDao houseDao = new HouseDaoImpl(); - - @Override - protected void doGet(HttpServletRequest request, HttpServletResponse response) - throws ServletException, IOException { - - HttpSession session = request.getSession(false); - if (session == null) { - response.sendRedirect(request.getContextPath() + "/user/login"); - return; - } - - User loginUser = (User) session.getAttribute("loginUser"); - if (loginUser == null || !"2".equals(loginUser.getRoleType())) { - response.sendRedirect(request.getContextPath() + "/user/login"); - return; - } - - String houseIdStr = request.getParameter("id"); - if (houseIdStr == null) { - response.sendRedirect(request.getContextPath() + "/admin/house/list"); - return; - } - - Long houseId = Long.parseLong(houseIdStr); - boolean success = houseDao.updateStatus(houseId, "1"); // 1-已上架 - - if (success) { - String encodedMsg = URLEncoder.encode("房源已重新上架", "UTF-8"); - response.sendRedirect(request.getContextPath() + "/admin/house/list?msg=" + encodedMsg); - } else { - String encodedError = URLEncoder.encode("操作失败", "UTF-8"); - response.sendRedirect(request.getContextPath() + "/admin/house/list?error=" + encodedError); - } - } -} \ No newline at end of file diff --git a/HRS/src/com/hrs/controller/admin/AdminOrderController.java b/HRS/src/com/hrs/controller/admin/AdminOrderController.java deleted file mode 100644 index a4ed878..0000000 --- a/HRS/src/com/hrs/controller/admin/AdminOrderController.java +++ /dev/null @@ -1,61 +0,0 @@ -package com.hrs.controller.admin; - -import com.hrs.dao.OrderDao; -import com.hrs.dao.impl.OrderDaoImpl; -import com.hrs.model.entity.Order; -import com.hrs.model.entity.User; - -import javax.servlet.ServletException; -import javax.servlet.annotation.WebServlet; -import javax.servlet.http.HttpServlet; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; -import java.io.IOException; -import java.util.List; - -/** -* Copyright: Copyright (c) 2026 chinasofti -* -* @ClassName: AdminOrderController.java -* @Description: 管理员订单管理控制器 -* -* @version: v1.0.0 -* @author: 李鑫 -* @date: 2026年4月13日 上午8:53:35 -* -* Modification History: -* Date Author Version Description -*---------------------------------------------------------* -* 2026年4月13日 李鑫 v1.0.0 新建文件 -*/ -@WebServlet("/admin/order/list") -public class AdminOrderController extends HttpServlet { - - private OrderDao orderDao = new OrderDaoImpl(); - - @Override - protected void doGet(HttpServletRequest request, HttpServletResponse response) - throws ServletException, IOException { - - HttpSession session = request.getSession(false); - if (session == null) { - response.sendRedirect(request.getContextPath() + "/user/login"); - return; - } - - User loginUser = (User) session.getAttribute("loginUser"); - if (loginUser == null || !"2".equals(loginUser.getRoleType())) { - response.sendRedirect(request.getContextPath() + "/user/login"); - return; - } - - List orderList = orderDao.findAll(); - - request.setAttribute("orderList", orderList); - request.setAttribute("totalCount", orderList.size()); - request.setAttribute("loginUser", loginUser); - - request.getRequestDispatcher("/jsp/admin/order_list.jsp").forward(request, response); - } -} \ No newline at end of file diff --git a/HRS/src/com/hrs/controller/admin/AdminStatisticsController.java b/HRS/src/com/hrs/controller/admin/AdminStatisticsController.java deleted file mode 100644 index 1a376ab..0000000 --- a/HRS/src/com/hrs/controller/admin/AdminStatisticsController.java +++ /dev/null @@ -1,74 +0,0 @@ -package com.hrs.controller.admin; - -import com.hrs.dao.HouseDao; -import com.hrs.dao.impl.HouseDaoImpl; -import com.hrs.dao.OrderDao; -import com.hrs.dao.impl.OrderDaoImpl; -import com.hrs.dao.UserDao; -import com.hrs.dao.impl.UserDaoImpl; -import com.hrs.model.entity.User; - -import javax.servlet.ServletException; -import javax.servlet.annotation.WebServlet; -import javax.servlet.http.HttpServlet; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; -import java.io.IOException; -import java.io.PrintWriter; - -/** -* Copyright: Copyright (c) 2026 chinasofti -* -* @ClassName: AdminStatisticsController.java -* @Description: 管理员统计数据AP -* -* @version: v1.0.0 -* @author: 李鑫 -* @date: 2026年4月13日 上午8:53:55 -* -* Modification History: -* Date Author Version Description -*---------------------------------------------------------* -* 2026年4月13日 李鑫 v1.0.0 新建文件 -*/ -@WebServlet("/admin/statistics") -public class AdminStatisticsController extends HttpServlet { - - private UserDao userDao = new UserDaoImpl(); - private HouseDao houseDao = new HouseDaoImpl(); - private OrderDao orderDao = new OrderDaoImpl(); - - @Override - protected void doGet(HttpServletRequest request, HttpServletResponse response) - throws ServletException, IOException { - - HttpSession session = request.getSession(false); - if (session == null) { - response.setStatus(401); - return; - } - - User loginUser = (User) session.getAttribute("loginUser"); - if (loginUser == null || !"2".equals(loginUser.getRoleType())) { - response.setStatus(403); - return; - } - - // 获取统计数据 - int userCount = userDao.count(); - int houseCount = houseDao.countAll(); - int orderCount = orderDao.countAll(); - int pendingCount = houseDao.findPendingHouses().size(); - - // 返回JSON - response.setContentType("application/json;charset=UTF-8"); - PrintWriter out = response.getWriter(); - out.print("{"); - out.print("\"userCount\":" + userCount + ","); - out.print("\"houseCount\":" + houseCount + ","); - out.print("\"orderCount\":" + orderCount + ","); - out.print("\"pendingCount\":" + pendingCount); - out.print("}"); - } -} diff --git a/HRS/src/com/hrs/controller/admin/AdminUserController.java b/HRS/src/com/hrs/controller/admin/AdminUserController.java deleted file mode 100644 index dd05655..0000000 --- a/HRS/src/com/hrs/controller/admin/AdminUserController.java +++ /dev/null @@ -1,94 +0,0 @@ -package com.hrs.controller.admin; - -import com.hrs.dao.UserDao; -import com.hrs.dao.impl.UserDaoImpl; -import com.hrs.model.entity.User; - -import javax.servlet.ServletException; -import javax.servlet.annotation.WebServlet; -import javax.servlet.http.HttpServlet; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; -import java.io.IOException; -import java.util.List; - -/** -* Copyright: Copyright (c) 2026 chinasofti -* -* @ClassName: AdminUserController.java -* @Description: 管理员用户管理控制器 -* -* @version: v1.0.0 -* @author: 李鑫 -* @date: 2026年4月13日 上午8:54:18 -* -* Modification History: -* Date Author Version Description -*---------------------------------------------------------* -* 2026年4月13日 李鑫 v1.0.0 新建文件 -*/ -@WebServlet("/admin/user/list") -public class AdminUserController extends HttpServlet { - - private UserDao userDao = new UserDaoImpl(); - - @Override - protected void doGet(HttpServletRequest request, HttpServletResponse response) - throws ServletException, IOException { - - // 检查登录状态和管理员权限 - HttpSession session = request.getSession(false); - if (session == null) { - response.sendRedirect(request.getContextPath() + "/user/login"); - return; - } - - User loginUser = (User) session.getAttribute("loginUser"); - if (loginUser == null || !"2".equals(loginUser.getRoleType())) { - response.sendRedirect(request.getContextPath() + "/user/login"); - return; - } - - // 获取所有用户 - List allUsers = getAllUsers(); - - // 分离不同角色 - List tenants = new java.util.ArrayList<>(); - List landlords = new java.util.ArrayList<>(); - List admins = new java.util.ArrayList<>(); - - for (User user : allUsers) { - if ("0".equals(user.getRoleType())) { - tenants.add(user); - } else if ("1".equals(user.getRoleType())) { - landlords.add(user); - } else if ("2".equals(user.getRoleType())) { - admins.add(user); - } - } - - request.setAttribute("tenants", tenants); - request.setAttribute("landlords", landlords); - request.setAttribute("admins", admins); - request.setAttribute("totalCount", allUsers.size()); - request.setAttribute("loginUser", loginUser); - - request.getRequestDispatcher("/jsp/admin/user_list.jsp").forward(request, response); - } - - private List getAllUsers() { - // 通过DAO获取所有用户 - // 注意:UserDAO中没有findAll方法,需要添加 - // 这里先用查询所有租客和房东的方式 - List allUsers = new java.util.ArrayList<>(); - allUsers.addAll(userDao.findAllTenants()); - allUsers.addAll(userDao.findAllLandlords()); - // 手动添加管理员(管理员数量少,可以从数据库查) - User admin = userDao.findByUsername("admin"); - if (admin != null) { - allUsers.add(admin); - } - return allUsers; - } -} \ No newline at end of file diff --git a/HRS/src/com/hrs/controller/admin/AdminUserDeleteController.java b/HRS/src/com/hrs/controller/admin/AdminUserDeleteController.java deleted file mode 100644 index a7ed1ce..0000000 --- a/HRS/src/com/hrs/controller/admin/AdminUserDeleteController.java +++ /dev/null @@ -1,77 +0,0 @@ -package com.hrs.controller.admin; - -import com.hrs.dao.UserDao; -import com.hrs.dao.impl.UserDaoImpl; -import com.hrs.model.entity.User; - -import javax.servlet.ServletException; -import javax.servlet.annotation.WebServlet; -import javax.servlet.http.HttpServlet; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; -import java.io.IOException; -import java.net.URLEncoder; - -/** -* Copyright: Copyright (c) 2026 chinasofti -* -* @ClassName: AdminUserDeleteController.java -* @Description: 管理员删除用户控制器 -* -* @version: v1.0.0 -* @author: 李鑫 -* @date: 2026年4月13日 上午8:54:34 -* -* Modification History: -* Date Author Version Description -*---------------------------------------------------------* -* 2026年4月13日 李鑫 v1.0.0 新建文件 -*/ -@WebServlet("/admin/user/delete") -public class AdminUserDeleteController extends HttpServlet { - - private UserDao userDao = new UserDaoImpl(); - - @Override - protected void doGet(HttpServletRequest request, HttpServletResponse response) - throws ServletException, IOException { - - HttpSession session = request.getSession(false); - if (session == null) { - response.sendRedirect(request.getContextPath() + "/user/login"); - return; - } - - User loginUser = (User) session.getAttribute("loginUser"); - if (loginUser == null || !"2".equals(loginUser.getRoleType())) { - response.sendRedirect(request.getContextPath() + "/user/login"); - return; - } - - String userIdStr = request.getParameter("id"); - if (userIdStr == null) { - response.sendRedirect(request.getContextPath() + "/admin/user/list"); - return; - } - - Long userId = Long.parseLong(userIdStr); - - // 不能删除自己 - if (userId.equals(loginUser.getId())) { - String encodedError = URLEncoder.encode("不能删除自己", "UTF-8"); - response.sendRedirect(request.getContextPath() + "/admin/user/list?error=" + encodedError); - return; - } - - boolean success = userDao.delete(userId); - - if (success) { - String encodedMsg = URLEncoder.encode("删除成功", "UTF-8"); - response.sendRedirect(request.getContextPath() + "/admin/user/list?msg=" + encodedMsg); - } else { - String encodedError = URLEncoder.encode("删除失败", "UTF-8"); - response.sendRedirect(request.getContextPath() + "/admin/user/list?error=" + encodedError); - } - } -} \ No newline at end of file diff --git a/HRS/src/com/hrs/controller/admin/AdminUserStatusController.java b/HRS/src/com/hrs/controller/admin/AdminUserStatusController.java deleted file mode 100644 index 0ef6e64..0000000 --- a/HRS/src/com/hrs/controller/admin/AdminUserStatusController.java +++ /dev/null @@ -1,74 +0,0 @@ -package com.hrs.controller.admin; - -import com.hrs.dao.UserDao; -import com.hrs.dao.impl.UserDaoImpl; -import com.hrs.model.entity.User; - -import javax.servlet.ServletException; -import javax.servlet.annotation.WebServlet; -import javax.servlet.http.HttpServlet; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; -import java.io.IOException; -import java.net.URLEncoder; - -/** -* Copyright: Copyright (c) 2026 chinasofti -* -* @ClassName: AdminUserStatusController.java -* @Description: 管理员操作用户状态控制器(启用/禁用) -* -* @version: v1.0.0 -* @author: 李鑫 -* @date: 2026年4月13日 上午8:54:49 -* -* Modification History: -* Date Author Version Description -*---------------------------------------------------------* -* 2026年4月13日 李鑫 v1.0.0 新建文件 -*/ -@WebServlet("/admin/user/status") -public class AdminUserStatusController extends HttpServlet { - - private UserDao userDao = new UserDaoImpl(); - - @Override - protected void doGet(HttpServletRequest request, HttpServletResponse response) - throws ServletException, IOException { - - HttpSession session = request.getSession(false); - if (session == null) { - response.sendRedirect(request.getContextPath() + "/user/login"); - return; - } - - User loginUser = (User) session.getAttribute("loginUser"); - if (loginUser == null || !"2".equals(loginUser.getRoleType())) { - response.sendRedirect(request.getContextPath() + "/user/login"); - return; - } - - String userIdStr = request.getParameter("id"); - String action = request.getParameter("action"); // enable 或 disable - - if (userIdStr == null || action == null) { - response.sendRedirect(request.getContextPath() + "/admin/user/list"); - return; - } - - Long userId = Long.parseLong(userIdStr); - String status = "enable".equals(action) ? "1" : "2"; - - boolean success = userDao.updateStatus(userId, status); - - if (success) { - String msg = "enable".equals(action) ? "用户已启用" : "用户已禁用"; - String encodedMsg = URLEncoder.encode(msg, "UTF-8"); - response.sendRedirect(request.getContextPath() + "/admin/user/list?msg=" + encodedMsg); - } else { - String encodedError = URLEncoder.encode("操作失败", "UTF-8"); - response.sendRedirect(request.getContextPath() + "/admin/user/list?error=" + encodedError); - } - } -} \ No newline at end of file diff --git a/HRS/src/com/hrs/controller/landlord/HouseAddController.java b/HRS/src/com/hrs/controller/landlord/HouseAddController.java deleted file mode 100644 index c5c3ece..0000000 --- a/HRS/src/com/hrs/controller/landlord/HouseAddController.java +++ /dev/null @@ -1,152 +0,0 @@ -package com.hrs.controller.landlord; - -import com.hrs.model.entity.House; -import com.hrs.model.entity.User; -import com.hrs.service.HouseService; -import com.hrs.service.impl.HouseServiceImpl; -import com.hrs.util.ImageUploadUtil; - -import javax.servlet.ServletException; -import javax.servlet.annotation.MultipartConfig; -import javax.servlet.annotation.WebServlet; -import javax.servlet.http.HttpServlet; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; -import javax.servlet.http.Part; -import java.io.IOException; -import java.math.BigDecimal; -import java.net.URLEncoder; -import java.text.SimpleDateFormat; -import java.util.Collection; -import java.util.Date; - - -/** -* Copyright: Copyright (c) 2026 chinasofti -* -* @ClassName: HouseAddController.java -* @Description: 添加房源控制器 -* -* @version: v1.0.0 -* @author: 李鑫 -* @date: 2026年4月13日 上午8:55:45 -* -* Modification History: -* Date Author Version Description -*---------------------------------------------------------* -* 2026年4月13日 李鑫 v1.0.0 新建文件 -*/ -@WebServlet("/landlord/house/add") -@MultipartConfig( - maxFileSize = 5 * 1024 * 1024, - maxRequestSize = 25 * 1024 * 1024 -) -public class HouseAddController extends HttpServlet { - - @Override - protected void doGet(HttpServletRequest request, HttpServletResponse response) - throws ServletException, IOException { - - // 获取登录用户 - HttpSession session = request.getSession(false); - if (session == null) { - response.sendRedirect(request.getContextPath() + "/user/login"); - return; - } - - User loginUser = (User) session.getAttribute("loginUser"); - if (loginUser == null || !"1".equals(loginUser.getRoleType())) { - response.sendRedirect(request.getContextPath() + "/user/login"); - return; - } - - request.setAttribute("loginUser", loginUser); - request.getRequestDispatcher("/jsp/landlord/house_add.jsp").forward(request, response); - } - - @Override - protected void doPost(HttpServletRequest request, HttpServletResponse response) - throws ServletException, IOException { - - request.setCharacterEncoding("UTF-8"); - - // 获取登录用户 - HttpSession session = request.getSession(false); - if (session == null) { - response.sendRedirect(request.getContextPath() + "/user/login"); - return; - } - - User loginUser = (User) session.getAttribute("loginUser"); - if (loginUser == null || !"1".equals(loginUser.getRoleType())) { - response.sendRedirect(request.getContextPath() + "/user/login"); - return; - } - - // 获取表单参数 - String title = request.getParameter("title"); - String area = request.getParameter("area"); - String address = request.getParameter("address"); - String houseType = request.getParameter("houseType"); - String rentPriceStr = request.getParameter("rentPrice"); - String rentType = request.getParameter("rentType"); - String facility = request.getParameter("facility"); - String description = request.getParameter("description"); - - // 验证必填项 - if (title == null || title.trim().isEmpty()) { - request.setAttribute("error", "房源标题不能为空"); - doGet(request, response); - return; - } - - if (rentPriceStr == null || rentPriceStr.trim().isEmpty()) { - request.setAttribute("error", "租金不能为空"); - doGet(request, response); - return; - } - - // 处理图片上传 - Collection parts = request.getParts(); - String imgUrl = ImageUploadUtil.saveMultipleImages(parts, request); - - // 生成房源编号 - String houseNo = generateHouseNo(); - - // 创建房源对象 - House house = new House(); - house.setLandlordId(loginUser.getId()); - house.setHouseNo(houseNo); - house.setTitle(title); - house.setArea(area); - house.setAddress(address); - house.setHouseType(houseType); - house.setRentPrice(new BigDecimal(rentPriceStr)); - house.setRentType(rentType); - house.setFacility(facility); - house.setDescription(description); - house.setImgUrl(imgUrl); - house.setStatus("0"); // 默认待审核状态 - - // 使用Service层添加房源 - HouseService houseService = new HouseServiceImpl(); - HouseService.AddHouseResult result = houseService.addHouse(house); - - if (result.isSuccess()) { - String encodedMsg = URLEncoder.encode(result.getMessage(), "UTF-8"); - response.sendRedirect(request.getContextPath() + "/landlord/house/list?msg=" + encodedMsg); - } else { - request.setAttribute("error", result.getMessage()); - doGet(request, response); - } - } - - /** - * 生成房源编号 - */ - private String generateHouseNo() { - SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss"); - return "H" + sdf.format(new Date()); - } -} \ No newline at end of file diff --git a/HRS/src/com/hrs/controller/landlord/HouseDeleteController.java b/HRS/src/com/hrs/controller/landlord/HouseDeleteController.java deleted file mode 100644 index c736592..0000000 --- a/HRS/src/com/hrs/controller/landlord/HouseDeleteController.java +++ /dev/null @@ -1,111 +0,0 @@ -package com.hrs.controller.landlord; - -import com.hrs.dao.HouseDao; -import com.hrs.dao.impl.HouseDaoImpl; -import com.hrs.dao.OrderDao; -import com.hrs.dao.impl.OrderDaoImpl; -import com.hrs.dao.ReservationDao; -import com.hrs.dao.impl.ReservationDaoImpl; -import com.hrs.model.entity.House; -import com.hrs.model.entity.User; -import com.hrs.util.ImageUploadUtil; - -import javax.servlet.ServletException; -import javax.servlet.annotation.WebServlet; -import javax.servlet.http.HttpServlet; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; -import java.io.IOException; -import java.net.URLEncoder; - -/** -* Copyright: Copyright (c) 2026 chinasofti -* -* @ClassName: HouseDeleteController.java -* @Description: 删除房源控制器 -* -* @version: v1.0.0 -* @author: 李鑫 -* @date: 2026年4月13日 上午8:56:09 -* -* Modification History: -* Date Author Version Description -*---------------------------------------------------------* -* 2026年4月13日 李鑫 v1.0.0 新建文件 -*/ -@WebServlet("/landlord/house/delete") -public class HouseDeleteController extends HttpServlet { - - private HouseDao houseDao = new HouseDaoImpl(); - private OrderDao orderDao = new OrderDaoImpl(); - private ReservationDao reservationDao = new ReservationDaoImpl(); - - @Override - protected void doGet(HttpServletRequest request, HttpServletResponse response) - throws ServletException, IOException { - - // 获取登录用户 - HttpSession session = request.getSession(false); - if (session == null) { - response.sendRedirect(request.getContextPath() + "/user/login"); - return; - } - - User loginUser = (User) session.getAttribute("loginUser"); - if (loginUser == null || !"1".equals(loginUser.getRoleType())) { - response.sendRedirect(request.getContextPath() + "/user/login"); - return; - } - - // 获取房源ID - String idStr = request.getParameter("id"); - if (idStr == null || idStr.trim().isEmpty()) { - response.sendRedirect(request.getContextPath() + "/landlord/house/list"); - return; - } - - Long houseId = Long.parseLong(idStr); - - // 先获取房源信息(为了删除图片) - House house = houseDao.findById(houseId); - - if (house == null) { - String encodedError = URLEncoder.encode("房源不存在", "UTF-8"); - response.sendRedirect(request.getContextPath() + "/landlord/house/list?error=" + encodedError); - return; - } - - // 检查是否有关联的订单 - boolean hasOrders = orderDao.existsByHouseId(houseId); - if (hasOrders) { - String encodedError = URLEncoder.encode("该房源存在关联订单,无法删除", "UTF-8"); - response.sendRedirect(request.getContextPath() + "/landlord/house/list?error=" + encodedError); - return; - } - - // 检查是否有关联的预约 - boolean hasReservations = reservationDao.existsByHouseId(houseId); - if (hasReservations) { - String encodedError = URLEncoder.encode("该房源存在关联预约,无法删除", "UTF-8"); - response.sendRedirect(request.getContextPath() + "/landlord/house/list?error=" + encodedError); - return; - } - - // 删除数据库记录 - boolean success = houseDao.delete(houseId); - - if (success && house != null && house.getImgUrl() != null) { - // 删除图片文件 - ImageUploadUtil.deleteImages(house.getImgUrl(), request); - String encodedMsg = URLEncoder.encode("删除成功", "UTF-8"); - response.sendRedirect(request.getContextPath() + "/landlord/house/list?msg=" + encodedMsg); - } else if (success) { - String encodedMsg = URLEncoder.encode("删除成功", "UTF-8"); - response.sendRedirect(request.getContextPath() + "/landlord/house/list?msg=" + encodedMsg); - } else { - String encodedError = URLEncoder.encode("删除失败", "UTF-8"); - response.sendRedirect(request.getContextPath() + "/landlord/house/list?error=" + encodedError); - } - } -} diff --git a/HRS/src/com/hrs/controller/landlord/HouseEditController.java b/HRS/src/com/hrs/controller/landlord/HouseEditController.java deleted file mode 100644 index ae37bea..0000000 --- a/HRS/src/com/hrs/controller/landlord/HouseEditController.java +++ /dev/null @@ -1,138 +0,0 @@ -package com.hrs.controller.landlord; - -import com.hrs.dao.HouseDao; -import com.hrs.dao.impl.HouseDaoImpl; -import com.hrs.model.entity.House; -import com.hrs.model.entity.User; - -import javax.servlet.ServletException; -import javax.servlet.annotation.WebServlet; -import javax.servlet.http.HttpServlet; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; -import java.io.IOException; -import java.math.BigDecimal; -import java.net.URLEncoder; - - -/** -* Copyright: Copyright (c) 2026 chinasofti -* -* @ClassName: HouseEditController.java -* @Description: 编辑房源控制器 -* -* @version: v1.0.0 -* @author: 李鑫 -* @date: 2026年4月13日 上午8:56:25 -* -* Modification History: -* Date Author Version Description -*---------------------------------------------------------* -* 2026年4月13日 李鑫 v1.0.0 新建文件 -*/ -@WebServlet("/landlord/house/edit") -public class HouseEditController extends HttpServlet { - - private HouseDao houseDao = new HouseDaoImpl(); - - @Override - protected void doGet(HttpServletRequest request, HttpServletResponse response) - throws ServletException, IOException { - - // 获取登录用户 - HttpSession session = request.getSession(false); - if (session == null) { - response.sendRedirect(request.getContextPath() + "/user/login"); - return; - } - - User loginUser = (User) session.getAttribute("loginUser"); - if (loginUser == null || !"1".equals(loginUser.getRoleType())) { - response.sendRedirect(request.getContextPath() + "/user/login"); - return; - } - - // 获取房源ID - String idStr = request.getParameter("id"); - if (idStr == null || idStr.trim().isEmpty()) { - response.sendRedirect(request.getContextPath() + "/landlord/house/list"); - return; - } - - Long houseId = Long.parseLong(idStr); - House house = houseDao.findById(houseId); - - // 验证是否是自己的房源 - if (house == null || !house.getLandlordId().equals(loginUser.getId())) { - response.sendRedirect(request.getContextPath() + "/landlord/house/list"); - return; - } - - request.setAttribute("house", house); - request.setAttribute("loginUser", loginUser); - request.getRequestDispatcher("/jsp/landlord/house_edit.jsp").forward(request, response); - } - - @Override - protected void doPost(HttpServletRequest request, HttpServletResponse response) - throws ServletException, IOException { - - request.setCharacterEncoding("UTF-8"); - - // 获取登录用户 - HttpSession session = request.getSession(false); - if (session == null) { - response.sendRedirect(request.getContextPath() + "/user/login"); - return; - } - - User loginUser = (User) session.getAttribute("loginUser"); - if (loginUser == null || !"1".equals(loginUser.getRoleType())) { - response.sendRedirect(request.getContextPath() + "/user/login"); - return; - } - - // 获取表单参数 - String idStr = request.getParameter("id"); - String title = request.getParameter("title"); - String area = request.getParameter("area"); - String address = request.getParameter("address"); - String houseType = request.getParameter("houseType"); - String rentPriceStr = request.getParameter("rentPrice"); - String rentType = request.getParameter("rentType"); - String facility = request.getParameter("facility"); - String description = request.getParameter("description"); - String imgUrl = request.getParameter("imgUrl"); - - if (idStr == null || title == null || rentPriceStr == null) { - response.sendRedirect(request.getContextPath() + "/landlord/house/list"); - return; - } - - Long houseId = Long.parseLong(idStr); - - // 创建房源对象 - House house = new House(); - house.setId(houseId); - house.setTitle(title); - house.setArea(area); - house.setAddress(address); - house.setHouseType(houseType); - house.setRentPrice(new BigDecimal(rentPriceStr)); - house.setRentType(rentType); - house.setFacility(facility); - house.setDescription(description); - house.setImgUrl(imgUrl); - - boolean success = houseDao.update(house); - - if (success) { - String encodedMsg = URLEncoder.encode("房源修改成功", "UTF-8"); - response.sendRedirect(request.getContextPath() + "/landlord/house/list?msg=" + encodedMsg); - } else { - request.setAttribute("error", "修改失败,请稍后重试"); - doGet(request, response); - } - } -} \ No newline at end of file diff --git a/HRS/src/com/hrs/controller/landlord/HouseListController.java b/HRS/src/com/hrs/controller/landlord/HouseListController.java deleted file mode 100644 index 43dba57..0000000 --- a/HRS/src/com/hrs/controller/landlord/HouseListController.java +++ /dev/null @@ -1,63 +0,0 @@ -package com.hrs.controller.landlord; - -import com.hrs.dao.HouseDao; -import com.hrs.dao.impl.HouseDaoImpl; -import com.hrs.model.entity.House; -import com.hrs.model.entity.User; - -import javax.servlet.ServletException; -import javax.servlet.annotation.WebServlet; -import javax.servlet.http.HttpServlet; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; -import java.io.IOException; -import java.util.List; - -/** -* Copyright: Copyright (c) 2026 chinasofti -* -* @ClassName: HouseListController.java -* @Description: 房东房源列表控制器 -* -* @version: v1.0.0 -* @author: 李鑫 -* @date: 2026年4月13日 上午8:56:39 -* -* Modification History: -* Date Author Version Description -*---------------------------------------------------------* -* 2026年4月13日 李鑫 v1.0.0 新建文件 -*/ -@WebServlet("/landlord/house/list") -public class HouseListController extends HttpServlet { - - private HouseDao houseDao = new HouseDaoImpl(); - - @Override - protected void doGet(HttpServletRequest request, HttpServletResponse response) - throws ServletException, IOException { - - // 获取登录用户 - HttpSession session = request.getSession(false); - if (session == null) { - response.sendRedirect(request.getContextPath() + "/user/login"); - return; - } - - User loginUser = (User) session.getAttribute("loginUser"); - if (loginUser == null || !"1".equals(loginUser.getRoleType())) { - response.sendRedirect(request.getContextPath() + "/user/login"); - return; - } - - // 查询房东自己的房源 - List houseList = houseDao.findByLandlordId(loginUser.getId()); - - request.setAttribute("houseList", houseList); - request.setAttribute("totalCount", houseList.size()); - request.setAttribute("loginUser", loginUser); - - request.getRequestDispatcher("/jsp/landlord/house_list.jsp").forward(request, response); - } -} \ No newline at end of file diff --git a/HRS/src/com/hrs/controller/landlord/OrderConfirmController.java b/HRS/src/com/hrs/controller/landlord/OrderConfirmController.java deleted file mode 100644 index af6babf..0000000 --- a/HRS/src/com/hrs/controller/landlord/OrderConfirmController.java +++ /dev/null @@ -1,79 +0,0 @@ -package com.hrs.controller.landlord; - -import com.hrs.dao.OrderDao; -import com.hrs.dao.impl.OrderDaoImpl; -import com.hrs.model.entity.Order; -import com.hrs.model.entity.User; - -import javax.servlet.ServletException; -import javax.servlet.annotation.WebServlet; -import javax.servlet.http.HttpServlet; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; -import java.io.IOException; -import java.net.URLEncoder; - -/** -* Copyright: Copyright (c) 2026 chinasofti -* -* @ClassName: OrderConfirmController.java -* @Description: 房东确认签约控制器 -* -* @version: v1.0.0 -* @author: 李鑫 -* @date: 2026年4月13日 上午8:56:51 -* -* Modification History: -* Date Author Version Description -*---------------------------------------------------------* -* 2026年4月13日 李鑫 v1.0.0 新建文件 -*/ -@WebServlet("/landlord/order/confirm") -public class OrderConfirmController extends HttpServlet { - - private OrderDao orderDao = new OrderDaoImpl(); - - @Override - protected void doGet(HttpServletRequest request, HttpServletResponse response) - throws ServletException, IOException { - - HttpSession session = request.getSession(false); - if (session == null) { - response.sendRedirect(request.getContextPath() + "/user/login"); - return; - } - - User loginUser = (User) session.getAttribute("loginUser"); - if (loginUser == null || !"1".equals(loginUser.getRoleType())) { - response.sendRedirect(request.getContextPath() + "/user/login"); - return; - } - - String orderIdStr = request.getParameter("id"); - if (orderIdStr == null) { - response.sendRedirect(request.getContextPath() + "/landlord/order/list"); - return; - } - - Long orderId = Long.parseLong(orderIdStr); - Order order = orderDao.findById(orderId); - - // 验证订单是否属于该房东的房源 - if (order == null) { - String encodedError = URLEncoder.encode("订单不存在", "UTF-8"); - response.sendRedirect(request.getContextPath() + "/landlord/order/list?error=" + encodedError); - return; - } - - boolean success = orderDao.updateStatus(orderId, "1"); // 1-已签约 - - if (success) { - String encodedMsg = URLEncoder.encode("已确认签约", "UTF-8"); - response.sendRedirect(request.getContextPath() + "/landlord/order/list?msg=" + encodedMsg); - } else { - String encodedError = URLEncoder.encode("操作失败", "UTF-8"); - response.sendRedirect(request.getContextPath() + "/landlord/order/list?error=" + encodedError); - } - } -} \ No newline at end of file diff --git a/HRS/src/com/hrs/controller/landlord/OrderManageController.java b/HRS/src/com/hrs/controller/landlord/OrderManageController.java deleted file mode 100644 index 6a1f919..0000000 --- a/HRS/src/com/hrs/controller/landlord/OrderManageController.java +++ /dev/null @@ -1,61 +0,0 @@ -package com.hrs.controller.landlord; - -import com.hrs.dao.OrderDao; -import com.hrs.dao.impl.OrderDaoImpl; -import com.hrs.model.entity.Order; -import com.hrs.model.entity.User; - -import javax.servlet.ServletException; -import javax.servlet.annotation.WebServlet; -import javax.servlet.http.HttpServlet; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; -import java.io.IOException; -import java.util.List; - -/** -* Copyright: Copyright (c) 2026 chinasofti -* -* @ClassName: OrderManageController.java -* @Description: 房东订单管理控制器 -* -* @version: v1.0.0 -* @author: 李鑫 -* @date: 2026年4月13日 上午9:01:28 -* -* Modification History: -* Date Author Version Description -*---------------------------------------------------------* -* 2026年4月13日 李鑫 v1.0.0 新建文件 -*/ -@WebServlet("/landlord/order/list") -public class OrderManageController extends HttpServlet { - - private OrderDao orderDao = new OrderDaoImpl(); - - @Override - protected void doGet(HttpServletRequest request, HttpServletResponse response) - throws ServletException, IOException { - - HttpSession session = request.getSession(false); - if (session == null) { - response.sendRedirect(request.getContextPath() + "/user/login"); - return; - } - - User loginUser = (User) session.getAttribute("loginUser"); - if (loginUser == null || !"1".equals(loginUser.getRoleType())) { - response.sendRedirect(request.getContextPath() + "/user/login"); - return; - } - - List orderList = orderDao.findByLandlordId(loginUser.getId()); - - request.setAttribute("orderList", orderList); - request.setAttribute("totalCount", orderList.size()); - request.setAttribute("loginUser", loginUser); - - request.getRequestDispatcher("/jsp/landlord/order_list.jsp").forward(request, response); - } -} \ No newline at end of file diff --git a/HRS/src/com/hrs/controller/landlord/ReservationHandleController.java b/HRS/src/com/hrs/controller/landlord/ReservationHandleController.java deleted file mode 100644 index bcec474..0000000 --- a/HRS/src/com/hrs/controller/landlord/ReservationHandleController.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.hrs.controller.landlord; - -import com.hrs.dao.ReservationDao; -import com.hrs.dao.impl.ReservationDaoImpl; -import com.hrs.model.entity.User; - -import javax.servlet.ServletException; -import javax.servlet.annotation.WebServlet; -import javax.servlet.http.HttpServlet; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; -import java.io.IOException; -import java.net.URLEncoder; - -/** -* Copyright: Copyright (c) 2026 chinasofti -* -* @ClassName: ReservationHandleController.java -* @Description: 房东处理预约控制器 -* -* @version: v1.0.0 -* @author: 李鑫 -* @date: 2026年4月13日 上午9:01:42 -* -* Modification History: -* Date Author Version Description -*---------------------------------------------------------* -* 2026年4月13日 李鑫 v1.0.0 新建文件 -*/ -@WebServlet("/landlord/reservation/handle") -public class ReservationHandleController extends HttpServlet { - - private ReservationDao reservationDao = new ReservationDaoImpl(); - - @Override - protected void doGet(HttpServletRequest request, HttpServletResponse response) - throws ServletException, IOException { - - // 获取登录用户 - HttpSession session = request.getSession(false); - if (session == null) { - response.sendRedirect(request.getContextPath() + "/user/login"); - return; - } - - User loginUser = (User) session.getAttribute("loginUser"); - if (loginUser == null || !"1".equals(loginUser.getRoleType())) { - response.sendRedirect(request.getContextPath() + "/user/login"); - return; - } - - // 获取参数 - String idStr = request.getParameter("id"); - String action = request.getParameter("action"); // confirm 或 reject - - if (idStr == null || action == null) { - response.sendRedirect(request.getContextPath() + "/landlord/reservation/list"); - return; - } - - Long id = Long.parseLong(idStr); - String status = "confirm".equals(action) ? "1" : "2"; - - boolean success = reservationDao.updateStatus(id, status); - - if (success) { - String msg = "confirm".equals(action) ? "已确认预约" : "已拒绝预约"; - String encodedMsg = URLEncoder.encode(msg, "UTF-8"); - response.sendRedirect(request.getContextPath() + "/landlord/reservation/list?msg=" + encodedMsg); - } else { - String encodedError = URLEncoder.encode("操作失败", "UTF-8"); - response.sendRedirect(request.getContextPath() + "/landlord/reservation/list?error=" + encodedError); - } - } -} \ No newline at end of file diff --git a/HRS/src/com/hrs/controller/landlord/ReservationManageController.java b/HRS/src/com/hrs/controller/landlord/ReservationManageController.java deleted file mode 100644 index 5435470..0000000 --- a/HRS/src/com/hrs/controller/landlord/ReservationManageController.java +++ /dev/null @@ -1,63 +0,0 @@ -package com.hrs.controller.landlord; - -import com.hrs.dao.ReservationDao; -import com.hrs.dao.impl.ReservationDaoImpl; -import com.hrs.model.entity.Reservation; -import com.hrs.model.entity.User; - -import javax.servlet.ServletException; -import javax.servlet.annotation.WebServlet; -import javax.servlet.http.HttpServlet; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; -import java.io.IOException; -import java.util.List; - -/** -* Copyright: Copyright (c) 2026 chinasofti -* -* @ClassName: ReservationManageController.java -* @Description: 房东预约管理控制器 -* -* @version: v1.0.0 -* @author: 李鑫 -* @date: 2026年4月13日 上午9:02:01 -* -* Modification History: -* Date Author Version Description -*---------------------------------------------------------* -* 2026年4月13日 李鑫 v1.0.0 新建文件 -*/ -@WebServlet("/landlord/reservation/list") -public class ReservationManageController extends HttpServlet { - - private ReservationDao reservationDao = new ReservationDaoImpl(); - - @Override - protected void doGet(HttpServletRequest request, HttpServletResponse response) - throws ServletException, IOException { - - // 获取登录用户 - HttpSession session = request.getSession(false); - if (session == null) { - response.sendRedirect(request.getContextPath() + "/user/login"); - return; - } - - User loginUser = (User) session.getAttribute("loginUser"); - if (loginUser == null || !"1".equals(loginUser.getRoleType())) { - response.sendRedirect(request.getContextPath() + "/user/login"); - return; - } - - // 查询收到的预约 - List reservationList = reservationDao.findByLandlordId(loginUser.getId()); - - request.setAttribute("reservationList", reservationList); - request.setAttribute("totalCount", reservationList.size()); - request.setAttribute("loginUser", loginUser); - - request.getRequestDispatcher("/jsp/landlord/reservation_list.jsp").forward(request, response); - } -} \ No newline at end of file diff --git a/HRS/src/com/hrs/controller/user/CollectionAddController.java b/HRS/src/com/hrs/controller/user/CollectionAddController.java deleted file mode 100644 index d72dd5f..0000000 --- a/HRS/src/com/hrs/controller/user/CollectionAddController.java +++ /dev/null @@ -1,89 +0,0 @@ -package com.hrs.controller.user; - -import com.hrs.model.entity.User; -import com.hrs.service.CollectionService; -import com.hrs.service.impl.CollectionServiceImpl; - -import javax.servlet.ServletException; -import javax.servlet.annotation.WebServlet; -import javax.servlet.http.HttpServlet; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; -import java.io.IOException; -import java.io.PrintWriter; - -/** -* Copyright: Copyright (c) 2026 chinasofti -* -* @ClassName: CollectionAddController.java -* @Description: 添加收藏控制器/AJAX请求,返回文本结果 -* -* @version: v1.0.0 -* @author: 李鑫 -* @date: 2026年4月13日 上午9:02:40 -* -* Modification History: -* Date Author Version Description -*---------------------------------------------------------* -* 2026年4月13日 李鑫 v1.0.0 新建文件 -*/ -@WebServlet("/user/collection/add") -public class CollectionAddController extends HttpServlet { - - @Override - protected void doPost(HttpServletRequest request, HttpServletResponse response) - throws ServletException, IOException { - - response.setContentType("text/plain;charset=UTF-8"); - PrintWriter out = response.getWriter(); - - // 1. 检查登录状态 - HttpSession session = request.getSession(false); - if (session == null) { - out.print("not_login"); - return; - } - - User loginUser = (User) session.getAttribute("loginUser"); - if (loginUser == null || !"0".equals(loginUser.getRoleType())) { - out.print("not_login"); - return; - } - - // 2. 获取房源ID - String houseIdStr = request.getParameter("houseId"); - if (houseIdStr == null || houseIdStr.trim().isEmpty()) { - out.print("error"); - return; - } - - Long houseId = null; - try { - houseId = Long.parseLong(houseIdStr); - } catch (NumberFormatException e) { - out.print("error"); - return; - } - - // 原来的代码 - // boolean exists = collectionDao.isCollected(loginUser.getId(), houseId); - // if (exists) { - // out.print("exists"); - // return; - // } - // boolean success = collectionDao.add(collection); - - // 修改为 - CollectionService collectionService = new CollectionServiceImpl(); - CollectionService.CollectionResult result = collectionService.addCollection(loginUser.getId(), houseId); - - if (result.isExists()) { - out.print("exists"); - } else if (result.isSuccess()) { - out.print("success"); - } else { - out.print("error"); - } - } -} \ No newline at end of file diff --git a/HRS/src/com/hrs/controller/user/CollectionDeleteController.java b/HRS/src/com/hrs/controller/user/CollectionDeleteController.java deleted file mode 100644 index 19edde5..0000000 --- a/HRS/src/com/hrs/controller/user/CollectionDeleteController.java +++ /dev/null @@ -1,127 +0,0 @@ -package com.hrs.controller.user; - -import com.hrs.dao.CollectionDao; -import com.hrs.dao.impl.CollectionDaoImpl; -import com.hrs.model.entity.User; - -import javax.servlet.ServletException; -import javax.servlet.annotation.WebServlet; -import javax.servlet.http.HttpServlet; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; -import java.io.IOException; -import java.io.PrintWriter; -import java.net.URLEncoder; - -/** -* Copyright: Copyright (c) 2026 chinasofti -* -* @ClassName: CollectionDeleteController.java -* @Description: 取消收藏控制器/支持两种删除方式: -* -* @version: v1.0.0 -* @author: 李鑫 -* @date: 2026年4月13日 上午9:03:05 -* -* Modification History: -* Date Author Version Description -*---------------------------------------------------------* -* 2026年4月13日 李鑫 v1.0.0 新建文件 -*/ -@WebServlet("/user/collection/delete") -public class CollectionDeleteController extends HttpServlet { - - private CollectionDao collectionDao = new CollectionDaoImpl(); - - @Override - protected void doGet(HttpServletRequest request, HttpServletResponse response) - throws ServletException, IOException { - - // 获取来源参数 - String from = request.getParameter("from"); - String idStr = request.getParameter("id"); - String houseIdStr = request.getParameter("houseId"); - - // 判断是否是AJAX请求 - String ajax = request.getParameter("ajax"); - - // 1. 获取登录用户 - HttpSession session = request.getSession(false); - if (session == null) { - if ("true".equals(ajax)) { - response.setContentType("application/json;charset=UTF-8"); - PrintWriter out = response.getWriter(); - out.print("{\"success\":false,\"msg\":\"未登录\"}"); - return; - } else { - response.sendRedirect(request.getContextPath() + "/user/login"); - return; - } - } - - User loginUser = (User) session.getAttribute("loginUser"); - if (loginUser == null || !"0".equals(loginUser.getRoleType())) { - if ("true".equals(ajax)) { - response.setContentType("application/json;charset=UTF-8"); - PrintWriter out = response.getWriter(); - out.print("{\"success\":false,\"msg\":\"未登录\"}"); - return; - } else { - response.sendRedirect(request.getContextPath() + "/user/login"); - return; - } - } - - boolean success = false; - - // 2. 根据ID删除(从收藏列表删除) - if (idStr != null && !idStr.trim().isEmpty()) { - Long id = Long.parseLong(idStr); - success = collectionDao.deleteById(id); - } - // 3. 根据房源ID删除(从详情页删除) - else if (houseIdStr != null && !houseIdStr.trim().isEmpty()) { - Long houseId = Long.parseLong(houseIdStr); - success = collectionDao.delete(loginUser.getId(), houseId); - } - - // 4. 处理返回结果 - if ("true".equals(ajax)) { - // AJAX请求:返回JSON - response.setContentType("application/json;charset=UTF-8"); - PrintWriter out = response.getWriter(); - if (success) { - out.print("{\"success\":true,\"msg\":\"取消收藏成功\"}"); - } else { - out.print("{\"success\":false,\"msg\":\"取消收藏失败\"}"); - } - } else { - // 普通请求:页面跳转 - if (success) { - // 根据来源参数决定跳转位置 - if ("detail".equals(from) && houseIdStr != null) { - // 从详情页删除,跳回详情页 - String encodedMsg = URLEncoder.encode("取消收藏成功", "UTF-8"); - response.sendRedirect(request.getContextPath() + "/user/house/detail?id=" + houseIdStr + "&msg=" + encodedMsg); - } else if ("list".equals(from)) { - // 从收藏列表删除,跳回收藏列表 - String encodedMsg = URLEncoder.encode("取消收藏成功", "UTF-8"); - response.sendRedirect(request.getContextPath() + "/user/collection/list?msg=" + encodedMsg); - } else { - // 默认跳回收藏列表 - String encodedMsg = URLEncoder.encode("取消收藏成功", "UTF-8"); - response.sendRedirect(request.getContextPath() + "/user/collection/list?msg=" + encodedMsg); - } - } else { - if ("detail".equals(from) && houseIdStr != null) { - String encodedError = URLEncoder.encode("取消收藏失败", "UTF-8"); - response.sendRedirect(request.getContextPath() + "/user/house/detail?id=" + houseIdStr + "&error=" + encodedError); - } else { - String encodedError = URLEncoder.encode("取消收藏失败", "UTF-8"); - response.sendRedirect(request.getContextPath() + "/user/collection/list?error=" + encodedError); - } - } - } - } -} \ No newline at end of file diff --git a/HRS/src/com/hrs/controller/user/CollectionListController.java b/HRS/src/com/hrs/controller/user/CollectionListController.java deleted file mode 100644 index ad0390f..0000000 --- a/HRS/src/com/hrs/controller/user/CollectionListController.java +++ /dev/null @@ -1,65 +0,0 @@ -package com.hrs.controller.user; - -import com.hrs.dao.CollectionDao; -import com.hrs.dao.impl.CollectionDaoImpl; -import com.hrs.model.entity.Collection; -import com.hrs.model.entity.User; - -import javax.servlet.ServletException; -import javax.servlet.annotation.WebServlet; -import javax.servlet.http.HttpServlet; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; -import java.io.IOException; -import java.util.List; - -/** -* Copyright: Copyright (c) 2026 chinasofti -* -* @ClassName: CollectionListController.java -* @Description: 我的收藏列表控制器 -* -* @version: v1.0.0 -* @author: 李鑫 -* @date: 2026年4月13日 上午9:03:32 -* -* Modification History: -* Date Author Version Description -*---------------------------------------------------------* -* 2026年4月13日 李鑫 v1.0.0 新建文件 -*/ -@WebServlet("/user/collection/list") -public class CollectionListController extends HttpServlet { - - private CollectionDao collectionDao = new CollectionDaoImpl(); - - @Override - protected void doGet(HttpServletRequest request, HttpServletResponse response) - throws ServletException, IOException { - - // 1. 获取登录用户 - HttpSession session = request.getSession(false); - if (session == null) { - response.sendRedirect(request.getContextPath() + "/user/login"); - return; - } - - User loginUser = (User) session.getAttribute("loginUser"); - if (loginUser == null || !"0".equals(loginUser.getRoleType())) { - response.sendRedirect(request.getContextPath() + "/user/login"); - return; - } - - // 2. 查询收藏列表 - List collectionList = collectionDao.findByTenantId(loginUser.getId()); - - // 3. 存入request - request.setAttribute("collectionList", collectionList); - request.setAttribute("totalCount", collectionList.size()); - request.setAttribute("loginUser", loginUser); - - // 4. 转发到JSP - request.getRequestDispatcher("/jsp/user/collection_list.jsp").forward(request, response); - } -} \ No newline at end of file diff --git a/HRS/src/com/hrs/controller/user/HouseDetailController.java b/HRS/src/com/hrs/controller/user/HouseDetailController.java deleted file mode 100644 index 727f755..0000000 --- a/HRS/src/com/hrs/controller/user/HouseDetailController.java +++ /dev/null @@ -1,73 +0,0 @@ -package com.hrs.controller.user; - -import com.hrs.dao.HouseDao; -import com.hrs.dao.impl.HouseDaoImpl; -import com.hrs.model.entity.House; -import com.hrs.model.entity.User; - -import javax.servlet.ServletException; -import javax.servlet.annotation.WebServlet; -import javax.servlet.http.HttpServlet; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; -import java.io.IOException; - -/** -* Copyright: Copyright (c) 2026 chinasofti -* -* @ClassName: HouseDetailController.java -* @Description: 房源详情控制器 -* -* @version: v1.0.0 -* @author: 李鑫 -* @date: 2026年4月13日 上午9:04:08 -* -* Modification History: -* Date Author Version Description -*---------------------------------------------------------* -* 2026年4月13日 李鑫 v1.0.0 新建文件 -*/ -@WebServlet("/user/house/detail") -public class HouseDetailController extends HttpServlet { - - private HouseDao houseDao = new HouseDaoImpl(); - - @Override - protected void doGet(HttpServletRequest request, HttpServletResponse response) - throws ServletException, IOException { - - // 1. 获取房源ID - String idStr = request.getParameter("id"); - if (idStr == null || idStr.trim().isEmpty()) { - response.sendRedirect(request.getContextPath() + "/user/house/list"); - return; - } - - Long houseId = null; - try { - houseId = Long.parseLong(idStr); - } catch (NumberFormatException e) { - response.sendRedirect(request.getContextPath() + "/user/house/list"); - return; - } - - // 2. 查询房源详情 - House house = houseDao.findById(houseId); - if (house == null) { - response.sendRedirect(request.getContextPath() + "/user/house/list"); - return; - } - - // 3. 获取当前登录用户 - HttpSession session = request.getSession(false); - User loginUser = (User) session.getAttribute("loginUser"); - - // 4. 将数据存入request - request.setAttribute("house", house); - request.setAttribute("loginUser", loginUser); - - // 5. 转发到详情页面 - request.getRequestDispatcher("/jsp/user/house_detail.jsp").forward(request, response); - } -} \ No newline at end of file diff --git a/HRS/src/com/hrs/controller/user/HouseListController.java b/HRS/src/com/hrs/controller/user/HouseListController.java deleted file mode 100644 index 110776f..0000000 --- a/HRS/src/com/hrs/controller/user/HouseListController.java +++ /dev/null @@ -1,74 +0,0 @@ -package com.hrs.controller.user; - -import com.hrs.dao.HouseDao; -import com.hrs.dao.impl.HouseDaoImpl; -import com.hrs.model.entity.House; -import com.hrs.model.entity.User; - -import javax.servlet.ServletException; -import javax.servlet.annotation.WebServlet; -import javax.servlet.http.HttpServlet; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; -import java.io.IOException; -import java.util.List; - -/** -* Copyright: Copyright (c) 2026 chinasofti -* -* @ClassName: HouseListController.java -* @Description: 房源列表控制器 -* -* @version: v1.0.0 -* @author: 李鑫 -* @date: 2026年4月13日 上午9:04:41 -* -* Modification History: -* Date Author Version Description -*---------------------------------------------------------* -* 2026年4月13日 李鑫 v1.0.0 新建文件 -*/ -@WebServlet("/user/house/list") -public class HouseListController extends HttpServlet { - - private HouseDao houseDao = new HouseDaoImpl(); - - @Override - protected void doGet(HttpServletRequest request, HttpServletResponse response) - throws ServletException, IOException { - - // 获取请求参数 - String area = request.getParameter("area"); - String minPriceStr = request.getParameter("minPrice"); - String maxPriceStr = request.getParameter("maxPrice"); - - List houseList; - - // 根据条件查询 - if (area != null && !area.trim().isEmpty()) { - houseList = houseDao.findHousesByArea(area); - request.setAttribute("searchArea", area); - } else if (minPriceStr != null && maxPriceStr != null && !minPriceStr.isEmpty() && !maxPriceStr.isEmpty()) { - int minPrice = Integer.parseInt(minPriceStr); - int maxPrice = Integer.parseInt(maxPriceStr); - houseList = houseDao.findHousesByPrice(minPrice, maxPrice); - request.setAttribute("minPrice", minPrice); - request.setAttribute("maxPrice", maxPrice); - } else { - houseList = houseDao.findPublishedHouses(); - } - - // 获取当前登录用户(用于判断是否已收藏) - HttpSession session = request.getSession(false); - User loginUser = (User) session.getAttribute("loginUser"); - - // 将数据存入request - request.setAttribute("houseList", houseList); - request.setAttribute("totalCount", houseList.size()); - request.setAttribute("loginUser", loginUser); - - // 转发到JSP页面 - request.getRequestDispatcher("/jsp/user/house_list.jsp").forward(request, response); - } -} \ No newline at end of file diff --git a/HRS/src/com/hrs/controller/user/LoginController.java b/HRS/src/com/hrs/controller/user/LoginController.java deleted file mode 100644 index 01b0c47..0000000 --- a/HRS/src/com/hrs/controller/user/LoginController.java +++ /dev/null @@ -1,120 +0,0 @@ -package com.hrs.controller.user; - -import com.hrs.dao.UserDao; -import com.hrs.dao.impl.UserDaoImpl; -import com.hrs.service.UserService; -import com.hrs.service.impl.UserServiceImpl; -import com.hrs.model.entity.User; -import com.hrs.util.MD5Util; - -import javax.servlet.ServletException; -import javax.servlet.annotation.WebServlet; -import javax.servlet.http.HttpServlet; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; -import java.io.IOException; - -/** -* Copyright: Copyright (c) 2026 chinasofti -* -* @ClassName: LoginController.java -* @Description: 登录控制器 -* -* @version: v1.0.0 -* @author: 李鑫 -* @date: 2026年4月13日 上午9:05:32 -* -* Modification History: -* Date Author Version Description -*---------------------------------------------------------* -* 2026年4月13日 李鑫 v1.0.0 新建文件 -*/ -@WebServlet("/user/login") -public class LoginController extends HttpServlet { - - private UserDao userDao = new UserDaoImpl(); - - @Override - protected void doGet(HttpServletRequest request, HttpServletResponse response) - throws ServletException, IOException { - // GET请求:显示登录页面 - // 如果有消息(如注册成功),传递给页面 - String message = request.getParameter("message"); - if (message != null) { - request.setAttribute("message", message); - } - request.getRequestDispatcher("/jsp/user/login.jsp").forward(request, response); - } - - @Override - protected void doPost(HttpServletRequest request, HttpServletResponse response) - throws ServletException, IOException { - // POST请求:处理登录表单提交 - request.setCharacterEncoding("UTF-8"); - - // 1. 获取表单参数 - String username = request.getParameter("username"); - String password = request.getParameter("password"); - String roleType = request.getParameter("roleType"); // 前端传:0-租客 1-房东 2-管理员 - - // 2. 基础验证 - if (username == null || username.trim().isEmpty() || - password == null || password.trim().isEmpty()) { - request.setAttribute("error", "用户名和密码不能为空"); - request.getRequestDispatcher("/jsp/user/login.jsp").forward(request, response); - return; - } - - // 3. 密码MD5加密(因为数据库里存的是MD5) - String encryptedPassword = MD5Util.md5(password); - - // 4. 调用Service查询用户 - UserService userService = new UserServiceImpl(); - User user = userService.login(username, password, roleType); - - // 5. 验证结果 - if (user == null) { - // 登录失败 - request.setAttribute("error", "用户名或密码错误"); - request.getRequestDispatcher("/jsp/user/login.jsp").forward(request, response); - return; - } - - // 6. 验证角色是否匹配 - if (!user.getRoleType().equals(roleType)) { - request.setAttribute("error", "角色类型不匹配"); - request.getRequestDispatcher("/jsp/user/login.jsp").forward(request, response); - return; - } - - // 7. 验证账号状态 - if ("2".equals(user.getStatus())) { - request.setAttribute("error", "账号已被禁用,请联系管理员"); - request.getRequestDispatcher("/jsp/user/login.jsp").forward(request, response); - return; - } - - // 8. 登录成功,保存用户信息到Session - HttpSession session = request.getSession(); - session.setAttribute("loginUser", user); - session.setAttribute("userRole", user.getRoleType()); - session.setMaxInactiveInterval(30 * 60); // 30分钟超时 - - // 9. 根据角色跳转到不同首页 - String redirectUrl = "/HRS/"; - switch (user.getRoleType()) { - case "0": // 租客 - redirectUrl = "/HRS/jsp/user/index.jsp"; - break; - case "1": // 房东 - redirectUrl = "/HRS/jsp/landlord/index.jsp"; - break; - case "2": // 管理员 - redirectUrl = "/HRS/jsp/admin/index.jsp"; - break; - } - - response.sendRedirect(redirectUrl); - } -} \ No newline at end of file diff --git a/HRS/src/com/hrs/controller/user/LogoutController.java b/HRS/src/com/hrs/controller/user/LogoutController.java deleted file mode 100644 index 431f93d..0000000 --- a/HRS/src/com/hrs/controller/user/LogoutController.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.hrs.controller.user; - -import javax.servlet.ServletException; -import javax.servlet.annotation.WebServlet; -import javax.servlet.http.HttpServlet; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; -import java.io.IOException; - -/** -* Copyright: Copyright (c) 2026 chinasofti -* -* @ClassName: LogoutController.java -* @Description: 退出登录控制器 -* -* @version: v1.0.0 -* @author: 李鑫 -* @date: 2026年4月13日 上午9:06:00 -* -* Modification History: -* Date Author Version Description -*---------------------------------------------------------* -* 2026年4月13日 李鑫 v1.0.0 新建文件 -*/ -@WebServlet("/user/logout") -public class LogoutController extends HttpServlet { - - @Override - protected void doGet(HttpServletRequest request, HttpServletResponse response) - throws ServletException, IOException { - - // 1. 获取Session - HttpSession session = request.getSession(false); - - // 2. 如果Session存在,销毁它 - if (session != null) { - session.invalidate(); - } - - // 3. 跳转到登录页面 - response.sendRedirect(request.getContextPath() + "/user/login"); - } - - @Override - protected void doPost(HttpServletRequest request, HttpServletResponse response) - throws ServletException, IOException { - doGet(request, response); - } -} \ No newline at end of file diff --git a/HRS/src/com/hrs/controller/user/OrderCancelController.java b/HRS/src/com/hrs/controller/user/OrderCancelController.java deleted file mode 100644 index b1b8ecd..0000000 --- a/HRS/src/com/hrs/controller/user/OrderCancelController.java +++ /dev/null @@ -1,84 +0,0 @@ -package com.hrs.controller.user; - -import com.hrs.dao.OrderDao; -import com.hrs.dao.impl.OrderDaoImpl; -import com.hrs.model.entity.Order; -import com.hrs.model.entity.User; - -import javax.servlet.ServletException; -import javax.servlet.annotation.WebServlet; -import javax.servlet.http.HttpServlet; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; -import java.io.IOException; -import java.net.URLEncoder; - -/** -* Copyright: Copyright (c) 2026 chinasofti -* -* @ClassName: OrderCancelController.java -* @Description: 取消订单控制器 -* -* @version: v1.0.0 -* @author: 李鑫 -* @date: 2026年4月13日 上午9:06:23 -* -* Modification History: -* Date Author Version Description -*---------------------------------------------------------* -* 2026年4月13日 李鑫 v1.0.0 新建文件 -*/ -@WebServlet("/user/order/cancel") -public class OrderCancelController extends HttpServlet { - - private OrderDao orderDao = new OrderDaoImpl(); - - @Override - protected void doGet(HttpServletRequest request, HttpServletResponse response) - throws ServletException, IOException { - - HttpSession session = request.getSession(false); - if (session == null) { - response.sendRedirect(request.getContextPath() + "/user/login"); - return; - } - - User loginUser = (User) session.getAttribute("loginUser"); - if (loginUser == null || !"0".equals(loginUser.getRoleType())) { - response.sendRedirect(request.getContextPath() + "/user/login"); - return; - } - - String orderIdStr = request.getParameter("id"); - if (orderIdStr == null) { - response.sendRedirect(request.getContextPath() + "/user/order/list"); - return; - } - - Long orderId = Long.parseLong(orderIdStr); - Order order = orderDao.findById(orderId); - - if (order == null || !order.getTenantId().equals(loginUser.getId())) { - response.sendRedirect(request.getContextPath() + "/user/order/list"); - return; - } - - // 只有待支付的订单可以取消 - if (!"0".equals(order.getPayStatus())) { - String encodedError = URLEncoder.encode("该订单无法取消", "UTF-8"); - response.sendRedirect(request.getContextPath() + "/user/order/list?error=" + encodedError); - return; - } - - boolean success = orderDao.updateStatus(orderId, "3"); // 3-已取消 - - if (success) { - String encodedMsg = URLEncoder.encode("订单已取消", "UTF-8"); - response.sendRedirect(request.getContextPath() + "/user/order/list?msg=" + encodedMsg); - } else { - String encodedError = URLEncoder.encode("取消失败", "UTF-8"); - response.sendRedirect(request.getContextPath() + "/user/order/list?error=" + encodedError); - } - } -} diff --git a/HRS/src/com/hrs/controller/user/OrderCreateController.java b/HRS/src/com/hrs/controller/user/OrderCreateController.java deleted file mode 100644 index 01822cb..0000000 --- a/HRS/src/com/hrs/controller/user/OrderCreateController.java +++ /dev/null @@ -1,166 +0,0 @@ -package com.hrs.controller.user; - -import com.hrs.dao.HouseDao; -import com.hrs.dao.impl.HouseDaoImpl; -import com.hrs.model.entity.House; -import com.hrs.model.entity.User; -import com.hrs.service.OrderService; -import com.hrs.service.impl.OrderServiceImpl; - -import javax.servlet.ServletException; -import javax.servlet.annotation.WebServlet; -import javax.servlet.http.HttpServlet; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; -import java.io.IOException; -import java.net.URLEncoder; -import java.text.ParseException; -import java.text.SimpleDateFormat; -import java.util.Date; -import java.util.concurrent.TimeUnit; - -/** -* Copyright: Copyright (c) 2026 chinasofti -* -* @ClassName: OrderCreateController.java -* @Description: 创建订单控制器 -* -* @version: v1.0.0 -* @author: 李鑫 -* @date: 2026年4月13日 上午9:06:38 -* -* Modification History: -* Date Author Version Description -*---------------------------------------------------------* -* 2026年4月13日 李鑫 v1.0.0 新建文件 -*/ -@WebServlet("/user/order/create") -public class OrderCreateController extends HttpServlet { - - private HouseDao houseDao = new HouseDaoImpl(); - - @Override - protected void doGet(HttpServletRequest request, HttpServletResponse response) - throws ServletException, IOException { - - // 获取房源ID - String houseIdStr = request.getParameter("houseId"); - if (houseIdStr == null || houseIdStr.trim().isEmpty()) { - response.sendRedirect(request.getContextPath() + "/user/house/list"); - return; - } - - Long houseId = Long.parseLong(houseIdStr); - House house = houseDao.findById(houseId); - - if (house == null || !"1".equals(house.getStatus())) { - response.sendRedirect(request.getContextPath() + "/user/house/list"); - return; - } - - HttpSession session = request.getSession(false); - if (session == null) { - response.sendRedirect(request.getContextPath() + "/user/login"); - return; - } - - User loginUser = (User) session.getAttribute("loginUser"); - if (loginUser == null || !"0".equals(loginUser.getRoleType())) { - response.sendRedirect(request.getContextPath() + "/user/login"); - return; - } - - request.setAttribute("house", house); - request.setAttribute("loginUser", loginUser); - request.getRequestDispatcher("/jsp/user/order_create.jsp").forward(request, response); - } - - @Override - protected void doPost(HttpServletRequest request, HttpServletResponse response) - throws ServletException, IOException { - - request.setCharacterEncoding("UTF-8"); - - HttpSession session = request.getSession(false); - if (session == null) { - response.sendRedirect(request.getContextPath() + "/user/login"); - return; - } - - User loginUser = (User) session.getAttribute("loginUser"); - if (loginUser == null || !"0".equals(loginUser.getRoleType())) { - response.sendRedirect(request.getContextPath() + "/user/login"); - return; - } - - String houseIdStr = request.getParameter("houseId"); - String startDateStr = request.getParameter("startDate"); - String endDateStr = request.getParameter("endDate"); - - if (houseIdStr == null || startDateStr == null || endDateStr == null) { - response.sendRedirect(request.getContextPath() + "/user/house/list"); - return; - } - - Long houseId = Long.parseLong(houseIdStr); - House house = houseDao.findById(houseId); - - if (house == null || !"1".equals(house.getStatus())) { - response.sendRedirect(request.getContextPath() + "/user/house/list"); - return; - } - - // 解析日期 - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); - Date startDate, endDate; - try { - startDate = sdf.parse(startDateStr); - endDate = sdf.parse(endDateStr); - } catch (ParseException e) { - request.setAttribute("error", "日期格式错误"); - request.setAttribute("house", house); - request.getRequestDispatcher("/jsp/user/order_create.jsp").forward(request, response); - return; - } - - // 验证日期 - if (startDate.before(new Date())) { - request.setAttribute("error", "租赁开始日期不能早于今天"); - request.setAttribute("house", house); - request.getRequestDispatcher("/jsp/user/order_create.jsp").forward(request, response); - return; - } - - if (endDate.before(startDate)) { - request.setAttribute("error", "结束日期不能早于开始日期"); - request.setAttribute("house", house); - request.getRequestDispatcher("/jsp/user/order_create.jsp").forward(request, response); - return; - } - - // 修改为 - OrderService orderService = new OrderServiceImpl(); - OrderService.CreateOrderResult result = orderService.createOrder( - loginUser.getId(), houseId, startDate, endDate - ); - - if (result.isSuccess()) { - // 对中文消息进行 URL 编码 - String encodedMsg = URLEncoder.encode(result.getMessage(), "UTF-8"); - response.sendRedirect(request.getContextPath() + "/user/order/list?msg=" + encodedMsg); - } else { - request.setAttribute("error", result.getMessage()); - request.setAttribute("house", house); - request.getRequestDispatcher("/jsp/user/order_create.jsp").forward(request, response); - } - } - - /** - * 生成订单编号 - */ - private String generateOrderNo() { - SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS"); - return "ORD" + sdf.format(new Date()); - } -} \ No newline at end of file diff --git a/HRS/src/com/hrs/controller/user/OrderListController.java b/HRS/src/com/hrs/controller/user/OrderListController.java deleted file mode 100644 index 90c2f47..0000000 --- a/HRS/src/com/hrs/controller/user/OrderListController.java +++ /dev/null @@ -1,61 +0,0 @@ -package com.hrs.controller.user; - -import com.hrs.dao.OrderDao; -import com.hrs.dao.impl.OrderDaoImpl; -import com.hrs.model.entity.Order; -import com.hrs.model.entity.User; - -import javax.servlet.ServletException; -import javax.servlet.annotation.WebServlet; -import javax.servlet.http.HttpServlet; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; -import java.io.IOException; -import java.util.List; - -/** -* Copyright: Copyright (c) 2026 chinasofti -* -* @ClassName: OrderListController.java -* @Description: 我的订单列表控制器(租客端) -* -* @version: v1.0.0 -* @author: 李鑫 -* @date: 2026年4月13日 上午9:07:07 -* -* Modification History: -* Date Author Version Description -*---------------------------------------------------------* -* 2026年4月13日 李鑫 v1.0.0 新建文件 -*/ -@WebServlet("/user/order/list") -public class OrderListController extends HttpServlet { - - private OrderDao orderDao = new OrderDaoImpl(); - - @Override - protected void doGet(HttpServletRequest request, HttpServletResponse response) - throws ServletException, IOException { - - HttpSession session = request.getSession(false); - if (session == null) { - response.sendRedirect(request.getContextPath() + "/user/login"); - return; - } - - User loginUser = (User) session.getAttribute("loginUser"); - if (loginUser == null || !"0".equals(loginUser.getRoleType())) { - response.sendRedirect(request.getContextPath() + "/user/login"); - return; - } - - List orderList = orderDao.findByTenantId(loginUser.getId()); - - request.setAttribute("orderList", orderList); - request.setAttribute("totalCount", orderList.size()); - request.setAttribute("loginUser", loginUser); - - request.getRequestDispatcher("/jsp/user/order_list.jsp").forward(request, response); - } -} \ No newline at end of file diff --git a/HRS/src/com/hrs/controller/user/OrderPayController.java b/HRS/src/com/hrs/controller/user/OrderPayController.java deleted file mode 100644 index a06cf7f..0000000 --- a/HRS/src/com/hrs/controller/user/OrderPayController.java +++ /dev/null @@ -1,78 +0,0 @@ -package com.hrs.controller.user; - -import com.hrs.dao.OrderDao; -import com.hrs.dao.impl.OrderDaoImpl; -import com.hrs.model.entity.Order; -import com.hrs.model.entity.User; - -import javax.servlet.ServletException; -import javax.servlet.annotation.WebServlet; -import javax.servlet.http.HttpServlet; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; -import java.io.IOException; -import java.net.URLEncoder; - -/** -* Copyright: Copyright (c) 2026 chinasofti -* -* @ClassName: OrderPayController.java -* @Description: 订单支付控制器(模拟支付) -* -* @version: v1.0.0 -* @author: 李鑫 -* @date: 2026年4月13日 上午9:07:43 -* -* Modification History: -* Date Author Version Description -*---------------------------------------------------------* -* 2026年4月13日 李鑫 v1.0.0 新建文件 -*/ -@WebServlet("/user/order/pay") -public class OrderPayController extends HttpServlet { - - private OrderDao orderDao = new OrderDaoImpl(); - - @Override - protected void doGet(HttpServletRequest request, HttpServletResponse response) - throws ServletException, IOException { - - HttpSession session = request.getSession(false); - if (session == null) { - response.sendRedirect(request.getContextPath() + "/user/login"); - return; - } - - User loginUser = (User) session.getAttribute("loginUser"); - if (loginUser == null || !"0".equals(loginUser.getRoleType())) { - response.sendRedirect(request.getContextPath() + "/user/login"); - return; - } - - String orderIdStr = request.getParameter("id"); - if (orderIdStr == null) { - response.sendRedirect(request.getContextPath() + "/user/order/list"); - return; - } - - Long orderId = Long.parseLong(orderIdStr); - Order order = orderDao.findById(orderId); - - if (order == null || !order.getTenantId().equals(loginUser.getId())) { - response.sendRedirect(request.getContextPath() + "/user/order/list"); - return; - } - - // 模拟支付:更新支付状态为已支付 - boolean success = orderDao.updatePayStatus(orderId, "1"); - - if (success) { - String encodedMsg = URLEncoder.encode("支付成功", "UTF-8"); - response.sendRedirect(request.getContextPath() + "/user/order/list?msg=" + encodedMsg); - } else { - String encodedError = URLEncoder.encode("支付失败", "UTF-8"); - response.sendRedirect(request.getContextPath() + "/user/order/list?error=" + encodedError); - } - } -} \ No newline at end of file diff --git a/HRS/src/com/hrs/controller/user/RegisterController.java b/HRS/src/com/hrs/controller/user/RegisterController.java deleted file mode 100644 index 0628f2d..0000000 --- a/HRS/src/com/hrs/controller/user/RegisterController.java +++ /dev/null @@ -1,84 +0,0 @@ -package com.hrs.controller.user; - -import com.hrs.dao.UserDao; -import com.hrs.dao.impl.UserDaoImpl; -import com.hrs.model.entity.User; -import com.hrs.service.UserService; -import com.hrs.service.impl.UserServiceImpl; -import com.hrs.util.MD5Util; - -import javax.servlet.ServletException; -import javax.servlet.annotation.WebServlet; -import javax.servlet.http.HttpServlet; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.io.IOException; -import java.net.URLEncoder; - -/** -* Copyright: Copyright (c) 2026 chinasofti -* -* @ClassName: RegisterController.java -* @Description: 注册控制器 -* -* @version: v1.0.0 -* @author: 李鑫 -* @date: 2026年4月13日 上午9:08:06 -* -* Modification History: -* Date Author Version Description -*---------------------------------------------------------* -* 2026年4月13日 李鑫 v1.0.0 新建文件 -*/ -@WebServlet("/user/register") -public class RegisterController extends HttpServlet { - - private UserDao userDao = new UserDaoImpl(); - private UserService userService = new UserServiceImpl(); - - @Override - protected void doGet(HttpServletRequest request, HttpServletResponse response) - throws ServletException, IOException { - // GET请求:显示注册页面 - request.getRequestDispatcher("/jsp/user/register.jsp").forward(request, response); - } - - @Override - protected void doPost(HttpServletRequest request, HttpServletResponse response) - throws ServletException, IOException { - // POST请求:处理注册表单提交 - request.setCharacterEncoding("UTF-8"); - - // 1. 获取表单参数 - String username = request.getParameter("username"); - String password = request.getParameter("password"); - String confirmPassword = request.getParameter("confirmPassword"); - String realName = request.getParameter("realName"); - String phone = request.getParameter("phone"); - String idCard = request.getParameter("idCard"); - String roleType = request.getParameter("roleType"); - - // 2. 创建用户对象 - User user = new User(); - user.setUserName(username); - user.setPassword(password); // 密码将在Service层加密 - user.setRealName(realName); - user.setPhone(phone); - user.setIdCard(idCard); - user.setRoleType(roleType); // 0-租客 1-房东 - user.setStatus("0"); // 默认未认证状态 - - // 3. 调用UserService进行注册验证和保存 - UserService.RegisterResult result = userService.register(user, confirmPassword); - - if (result.isSuccess()) { - // 注册成功,跳转到登录页面(使用重定向避免表单重复提交) - String encodedMsg = URLEncoder.encode(result.getMessage(), "UTF-8"); - response.sendRedirect(request.getContextPath() + "/user/login?message=" + encodedMsg); - } else { - // 注册失败,留在注册页面显示错误 - request.setAttribute("error", result.getMessage()); - request.getRequestDispatcher("/jsp/user/register.jsp").forward(request, response); - } - } -} \ No newline at end of file diff --git a/HRS/src/com/hrs/controller/user/ReservationAddController.java b/HRS/src/com/hrs/controller/user/ReservationAddController.java deleted file mode 100644 index 018cd90..0000000 --- a/HRS/src/com/hrs/controller/user/ReservationAddController.java +++ /dev/null @@ -1,150 +0,0 @@ -package com.hrs.controller.user; - -import com.hrs.dao.HouseDao; -import com.hrs.dao.impl.HouseDaoImpl; -import com.hrs.model.entity.House; -import com.hrs.model.entity.User; -import com.hrs.service.ReservationService; -import com.hrs.service.impl.ReservationServiceImpl; - -import javax.servlet.ServletException; -import javax.servlet.annotation.WebServlet; -import javax.servlet.http.HttpServlet; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; -import java.io.IOException; -import java.net.URLEncoder; -import java.text.SimpleDateFormat; -import java.util.Date; - -/** -* Copyright: Copyright (c) 2026 chinasofti -* -* @ClassName: ReservationAddController.java -* @Description: 添加预约控制器 -* -* @version: v1.0.0 -* @author: 李鑫 -* @date: 2026年4月13日 上午9:11:10 -* -* Modification History: -* Date Author Version Description -*---------------------------------------------------------* -* 2026年4月13日 李鑫 v1.0.0 新建文件 -*/ -@WebServlet("/user/reservation/add") -public class ReservationAddController extends HttpServlet { - - private HouseDao houseDao = new HouseDaoImpl(); - - @Override - protected void doGet(HttpServletRequest request, HttpServletResponse response) - throws ServletException, IOException { - - String houseIdStr = request.getParameter("houseId"); - if (houseIdStr == null || houseIdStr.trim().isEmpty()) { - response.sendRedirect(request.getContextPath() + "/user/house/list"); - return; // ← 必须加return - } - - Long houseId = Long.parseLong(houseIdStr); - House house = houseDao.findById(houseId); - - if (house == null) { - response.sendRedirect(request.getContextPath() + "/user/house/list"); - return; // ← 必须加return - } - - HttpSession session = request.getSession(false); - User loginUser = (User) session.getAttribute("loginUser"); - - request.setAttribute("house", house); - request.setAttribute("loginUser", loginUser); - request.getRequestDispatcher("/jsp/user/reservation_add.jsp").forward(request, response); - // forward后不需要return,因为这是最后一行 - } - - @Override - protected void doPost(HttpServletRequest request, HttpServletResponse response) - throws ServletException, IOException { - - request.setCharacterEncoding("UTF-8"); - - HttpSession session = request.getSession(false); - if (session == null) { - response.sendRedirect(request.getContextPath() + "/user/login"); - return; // ← 必须加return - } - - User loginUser = (User) session.getAttribute("loginUser"); - if (loginUser == null || !"0".equals(loginUser.getRoleType())) { - response.sendRedirect(request.getContextPath() + "/user/login"); - return; // ← 必须加return - } - - String houseIdStr = request.getParameter("houseId"); - String reserveDate = request.getParameter("reserveDate"); - String reserveTime = request.getParameter("reserveTime"); - String remark = request.getParameter("remark"); - - // 验证参数 - if (houseIdStr == null || reserveDate == null || reserveTime == null) { - // 错误时回到预约表单页 - request.setAttribute("error", "请填写完整信息"); - doGet(request, response); - return; // ← 必须加return - } - - Long houseId = Long.parseLong(houseIdStr); - House house = houseDao.findById(houseId); - - if (house == null) { - request.setAttribute("error", "房源不存在"); - doGet(request, response); - return; // ← 必须加return - } - - // 组合时间 - String datetimeStr = reserveDate + " " + reserveTime + ":00"; - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - Date reserveDateTime; - try { - reserveDateTime = sdf.parse(datetimeStr); - } catch (Exception e) { - request.setAttribute("error", "时间格式错误"); - doGet(request, response); - return; // ← 必须加return - } - - if (reserveDateTime.before(new Date())) { - request.setAttribute("error", "预约时间不能早于当前时间"); - doGet(request, response); - return; // ← 必须加return - } - - // 原来的代码 - // Reservation reservation = new Reservation(); - // reservation.setTenantId(loginUser.getId()); - // reservation.setHouseId(houseId); - // reservation.setLandlordId(house.getLandlordId()); - // reservation.setReserveTime(reserveDateTime); - // reservation.setRemark(remark); - // boolean success = reservationDao.add(reservation); - - // 修改为 - ReservationService reservationService = new ReservationServiceImpl(); - ReservationService.ReservationResult result = reservationService.createReservation( - loginUser.getId(), houseId, reserveDateTime, remark - ); - - if (result.isSuccess()) { - // 对中文消息进行 URL 编码 - String encodedMsg = URLEncoder.encode(result.getMessage(), "UTF-8"); - response.sendRedirect(request.getContextPath() + "/user/reservation/list?msg=" + encodedMsg); - } else { - request.setAttribute("error", result.getMessage()); - doGet(request, response); - } - } -} \ No newline at end of file diff --git a/HRS/src/com/hrs/controller/user/ReservationCancelController.java b/HRS/src/com/hrs/controller/user/ReservationCancelController.java deleted file mode 100644 index dda6ce6..0000000 --- a/HRS/src/com/hrs/controller/user/ReservationCancelController.java +++ /dev/null @@ -1,70 +0,0 @@ -package com.hrs.controller.user; - -import com.hrs.dao.ReservationDao; -import com.hrs.dao.impl.ReservationDaoImpl; -import com.hrs.model.entity.User; - -import javax.servlet.ServletException; -import javax.servlet.annotation.WebServlet; -import javax.servlet.http.HttpServlet; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; -import java.io.IOException; -import java.net.URLEncoder; -/** -* Copyright: Copyright (c) 2026 chinasofti -* -* @ClassName: ReservationCancelController.java -* @Description: 取消预约控制器 -* -* @version: v1.0.0 -* @author: 李鑫 -* @date: 2026年4月13日 上午9:12:10 -* -* Modification History: -* Date Author Version Description -*---------------------------------------------------------* -* 2026年4月13日 李鑫 v1.0.0 新建文件 -*/ -@WebServlet("/user/reservation/cancel") -public class ReservationCancelController extends HttpServlet { - - private ReservationDao reservationDao = new ReservationDaoImpl(); - - @Override - protected void doGet(HttpServletRequest request, HttpServletResponse response) - throws ServletException, IOException { - - HttpSession session = request.getSession(false); - if (session == null) { - response.sendRedirect(request.getContextPath() + "/user/login"); - return; // ← 必须加return - } - - User loginUser = (User) session.getAttribute("loginUser"); - if (loginUser == null || !"0".equals(loginUser.getRoleType())) { - response.sendRedirect(request.getContextPath() + "/user/login"); - return; // ← 必须加return - } - - String idStr = request.getParameter("id"); - if (idStr == null || idStr.trim().isEmpty()) { - response.sendRedirect(request.getContextPath() + "/user/reservation/list"); - return; // ← 必须加return - } - - Long id = Long.parseLong(idStr); - boolean success = reservationDao.cancel(id, loginUser.getId()); - - if (success) { - // ✅ 成功:重定向到预约列表,带成功消息 - String encodedMsg = URLEncoder.encode("取消预约成功", "UTF-8"); - response.sendRedirect(request.getContextPath() + "/user/reservation/list?msg=" + encodedMsg); - } else { - // ❌ 失败:重定向到预约列表,带错误消息 - String encodedError = URLEncoder.encode("取消预约失败", "UTF-8"); - response.sendRedirect(request.getContextPath() + "/user/reservation/list?error=" + encodedError); - } - } -} \ No newline at end of file diff --git a/HRS/src/com/hrs/controller/user/ReservationListController.java b/HRS/src/com/hrs/controller/user/ReservationListController.java deleted file mode 100644 index 58739d8..0000000 --- a/HRS/src/com/hrs/controller/user/ReservationListController.java +++ /dev/null @@ -1,63 +0,0 @@ -package com.hrs.controller.user; - -import com.hrs.dao.ReservationDao; -import com.hrs.dao.impl.ReservationDaoImpl; -import com.hrs.model.entity.Reservation; -import com.hrs.model.entity.User; - -import javax.servlet.ServletException; -import javax.servlet.annotation.WebServlet; -import javax.servlet.http.HttpServlet; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; -import java.io.IOException; -import java.util.List; - -/** -* Copyright: Copyright (c) 2026 chinasofti -* -* @ClassName: ReservationListController.java -* @Description: 我的预约列表控制器(租客端) -* -* @version: v1.0.0 -* @author: 李鑫 -* @date: 2026年4月13日 上午9:12:43 -* -* Modification History: -* Date Author Version Description -*---------------------------------------------------------* -* 2026年4月13日 李鑫 v1.0.0 新建文件 -*/ -@WebServlet("/user/reservation/list") -public class ReservationListController extends HttpServlet { - - private ReservationDao reservationDao = new ReservationDaoImpl(); - - @Override - protected void doGet(HttpServletRequest request, HttpServletResponse response) - throws ServletException, IOException { - - // 获取登录用户 - HttpSession session = request.getSession(false); - if (session == null) { - response.sendRedirect(request.getContextPath() + "/user/login"); - return; - } - - User loginUser = (User) session.getAttribute("loginUser"); - if (loginUser == null || !"0".equals(loginUser.getRoleType())) { - response.sendRedirect(request.getContextPath() + "/user/login"); - return; - } - - // 查询预约列表 - List reservationList = reservationDao.findByTenantId(loginUser.getId()); - - request.setAttribute("reservationList", reservationList); - request.setAttribute("totalCount", reservationList.size()); - request.setAttribute("loginUser", loginUser); - - request.getRequestDispatcher("/jsp/user/reservation_list.jsp").forward(request, response); - } -} \ No newline at end of file