基于javaweb+mysql的ssm房屋租赁系统(java+ssm+layui+jsp+mysql)

基于javaweb+mysql的ssm房屋租赁系统(java+ssm+layui+jsp+mysql)

私信源码获取及调试交流

运行环境

Java≥8、MySQL≥5.7、Tomcat≥8

开发工具

eclipse/idea/myeclipse/sts等均可配置运行

适用

课程设计,大作业,毕业设计,项目练习,学习演示等

功能说明

基于javaweb的SSM房屋租赁系统(java+ssm+layui+jsp+mysql)

ssm房屋租赁系统

项目介绍

房屋租赁系统,基于 Spring5.x 的实战项目,此项目非Maven项目。

前台系统主要功能包括房源列表展示、房源详细信息展示、根据房源特征进行搜索,包括:房型、小区名;以及房源的预订功能。 后台管理: 用户信息管理 我的租房信息 修改我的密码 房源信息管理 发布房源信息 我发布的信息

多用户:普通用户与管理员各自都能发布房源信息

技术栈:

前端 Layui+JSP,后端 Spring SpringMVC MyBatis

环境要求

IDEA/Eclipse Mysql 5.7 Tomcat 9.x JDK 1.8

lombok

    public UserHouseData houseByUser(HttpServletRequest request, int page, int limit) {
        Page p = new Page();
        User u = (User) request.getSession().getAttribute("loginUser");
        String publisher = u.getUserNickName();
        p.setPublisher(publisher);
        p.setLimit(limit);
        p.setPage((page - 1) * limit);
        List<House> list = service.findHouseByUser(p);
        System.out.println(list);
        return new UserHouseData(0, "200", list.size(), list);
    }

    /**
     * 删除用户发布的房源信息
     *
     * @param houseId 房源 ID
     * @return res
     */
    @PostMapping("/deleteUserHouse")
    @ResponseBody
    public String deleteUserHouse(String houseId) {
        int n = service.deleteUserHouse(Integer.parseInt(houseId));
        if (n > 0) {
            return "OK";
        }
        return "FAIL";
    }

    /**
     * 更新房源信息
     *
     * @param house 房源数据
     * @return res
     */
    @PostMapping("/updateHouse")
    @ResponseBody
    public String updateHouse(House house) {
        int n = service.updateHouse(house);
        if (n > 0) {
            return "OK";
        }
        return "FAIL";
    }
}

/**
 * 普通用户登录
 *
 */
@Controller
@RequestMapping("/user")
public class LoginController {

    @Autowired
    private IUserService mapper;

    /**
     * 登录
     *
     * @param userName     用户名
     * @param userPassword 密码
     * @param req          req
     * @return res
     */
    @PostMapping("/login")
    @ResponseBody
    public String toCustomerPage(String userName, String userPassword, HttpServletRequest req) {
        User user = new User();
        user.setUserName(userName);
        user.setUserPassword(userPassword);
        User loginUser = mapper.login(user);
        if (loginUser != null) {
            req.getSession().setAttribute("loginUser", loginUser);
            return "OK";
        }
        return "FAIL";
    }

    /**
     * 退出登录
     *
     * @param session session
     * @return view
     */
    @GetMapping("/logout")
    public String logout(HttpSession session) {
        session.invalidate();
        return "redirect:/index.html";
    }

    @PostMapping("/register")
     */
    @RequestMapping("/deleteHouse")
    public String deleteHouse(int houseId) {
        int deleteHouse = service.deleteHouse(houseId);
        if (deleteHouse > 0) {
            return "OK";
        }
        return "FAIL";
    }

    /**
     * 管理员删除用户
     */
    @PostMapping("/deleteUser")
    public String deleteUser(Integer userId) {
        int n = service.deleteUser(userId);
        if (n > 0) {
            return "OK";
        }
        return "FAIL";
    }

    /**
     * 修改管理员登录密码
     *
     * @param request     req
     * @param oldPwd      旧密码
     * @param newPwd      新密码
     * @param confirmPwd 确认密码
     * @return res
     */
    @PostMapping("/changePassword")
    public String changePassword(HttpServletRequest request, String oldPwd, String newPwd, String confirmPwd) {
        Admin checkAdmin = new Admin();
        Admin adminSession = (Admin) request.getSession().getAttribute("Admin");
        checkAdmin.setId(adminSession.getId());
        checkAdmin.setUserPassword(oldPwd);
        // 拿到当前登录的账户密码
        Admin checkAdminPwd = service.checkAdminPwd(checkAdmin);
        if (checkAdminPwd == null) {
            return "ERROR";
        }
        if (!newPwd.equals(confirmPwd)) {
            return "FAIL";
        }
        Admin admin = new Admin();
        admin.setId(adminSession.getId());
        admin.setUserPassword(newPwd);
    public String logout(HttpServletRequest request) {
        request.getSession().invalidate();
        return "redirect:/index.html";
    }

    /**
     * 管理员首页
     *
     * @return view
     */
    @GetMapping("/home.html")
    public String toAdminHomePage() {
        return "/admin/home.jsp";
    }

    /**
     * 修改密码页
     *
     * @return view
     */
    @GetMapping("/changePassword.html")
    public String changePasswordPage() {
        return "/admin/changePassword.jsp";
    }

    /**
     * 查询所有用户页
     *
     * @return view
     */
    @GetMapping("/allUser.html")
    public String toAllUserPage() {
        return "/admin/allUser.jsp";
    }

    /**
     * 所有房源数据页
     *
     * @return view
     */
    @GetMapping("/houseList.html")
    public UserOrderData findAllOrder(int page, int limit, HttpServletRequest request) {
        Page pageObj = new Page();
        pageObj.setPage((page - 1) * limit);
        pageObj.setLimit(limit);
        User user = (User) request.getSession().getAttribute("loginUser");
        pageObj.setUserId(user.getUserId());
        UserOrderData uod = new UserOrderData();
        List<UserOrder> order = service.findAllOrder(pageObj);
        uod.setCode(0);
        uod.setCount(service.getOrderCount(user.getUserId()));
        uod.setData(order);
        uod.setMsg("200");
        return uod;
    }

    /**
     * 删除收藏的房源信息
     *
     * @param orderId 单号
     * @return res
     */
    @PostMapping("/deleteOrder")
    @ResponseBody
    public String deleteOrder(int orderId) {
        int n = service.deleteOrder(orderId);
        if (n > 0) {
            return "OK";
        }
        return "FAIL";
    }
}

     * 查询所有用户页
     *
     * @return view
     */
    @GetMapping("/allUser.html")
    public String toAllUserPage() {
        return "/admin/allUser.jsp";
    }

    /**
     * 所有房源数据页
     *
     * @return view
     */
    @GetMapping("/houseList.html")
    public String toAllHousePage() {
        return "/admin/houseList.jsp";
    }

    /**
     * 传入id,跳转到修改用户界面
     *
     * @return view
     */
    @GetMapping("/editUser.html")
    public String toEditUserPage(int userId, HttpServletRequest req) {
        User findUserById = service.findUserById(userId);
        req.getSession().setAttribute("User", findUserById);
        return "/admin/editUser.jsp";
    }

    /**
     * 跳转到管理员更新房源界面
     *
     * @param houseId 房源ID
     * @param request req
     * @return view
     */
    @RequestMapping("/updateHouse.html")
    public String toUpdatePage(int houseId, HttpServletRequest request) {
        House house = dao.findHouseDetailsById(houseId);
        request.getSession().setAttribute("House", house);
        return "/admin/updateHouse.jsp";
    }
}

    @PostMapping("/editUser")
    public String editUser(User user) {
        int n = service.updateUser(user);
        if (n > 0) {
            return "OK";
        }
        return "FAIL";
    }

    /**
     * 查询所有房源
     *
     * @param page  page
     * @param limit limit
     * @return res
     */
    @RequestMapping("/houseList")
    public UserHouseData findAllHouse(int page, int limit) {
        Page p = new Page();
        p.setLimit(limit);
        p.setPage((page - 1) * limit);
        List<House> findAllHouse = service.findAllHouse(p);
        UserHouseData data = new UserHouseData();
        data.setCode(0);
        data.setCount(findAllHouse.size());
        data.setData(findAllHouse);
        data.setMsg("OK");
        return data;
    }

    /**
     * 删除房源
     *
     * @param houseId 房源id
     * @return res
     */
    @RequestMapping("/deleteHouse")
    public String deleteHouse(int houseId) {
        int deleteHouse = service.deleteHouse(houseId);
        if (deleteHouse > 0) {
            return "OK";
        }
        if (adminAccess != null) {
            return "OK";
        }
        return "FAIL";
    }

    /**
     * 查询所有用户
     *
     * @return res
     */
    @GetMapping("/allUser")
    public UserData findAllUser() {
        List<User> findAllUser = service.findAllUser();
        UserData userData = new UserData();
        userData.setCode(0);
        userData.setCount(findAllUser.size());
        userData.setData(findAllUser);
        userData.setMsg("OK");
        return userData;
    }

    /**
     * 更新用户信息
     *
     * @param user user
     * @return res
     */
    @PostMapping("/editUser")
    public String editUser(User user) {
        int n = service.updateUser(user);
        if (n > 0) {
            return "OK";
        }
        return "FAIL";
    }

    /**
     * 查询所有房源
     *
     * @param page  page
     * @param limit limit
     * @return res
     */
    @RequestMapping("/houseList")
    public UserHouseData findAllHouse(int page, int limit) {
        Page p = new Page();
        p.setLimit(limit);

/**
 * 管理员控制器
 *
 */
@RestController
@RequestMapping("/admin")
public class AdminController {

    @Autowired
    private IAdminService service;

    /**
     * 登录请求
     *
     * @param userName     用户名
     * @param userPassword 密码
     * @param req          req
     * @return res
     */
    @PostMapping("/adminAccess")
    public String adminAccess(String userName, String userPassword, HttpServletRequest req) {
        Admin admin = new Admin(0, userName, userPassword);
        Admin adminAccess = service.adminAccess(admin);
        req.getSession().setAttribute("Admin", adminAccess);
        if (adminAccess != null) {
            return "OK";
        }
        return "FAIL";
    }

    /**
     * @param confirmPwd 确认密码
     * @return res
     */
    @PostMapping("/changePassword")
    public String changePassword(HttpServletRequest request, String oldPwd, String newPwd, String confirmPwd) {
        Admin checkAdmin = new Admin();
        Admin adminSession = (Admin) request.getSession().getAttribute("Admin");
        checkAdmin.setId(adminSession.getId());
        checkAdmin.setUserPassword(oldPwd);
        // 拿到当前登录的账户密码
        Admin checkAdminPwd = service.checkAdminPwd(checkAdmin);
        if (checkAdminPwd == null) {
            return "ERROR";
        }
        if (!newPwd.equals(confirmPwd)) {
            return "FAIL";
        }
        Admin admin = new Admin();
        admin.setId(adminSession.getId());
        admin.setUserPassword(newPwd);
        int n = service.changePassword(admin);
        if (n > 0) {
            return "OK";
        }
        return "FAIL";
    }
}

/**
 * 收藏控制类
 *
 */
@Controller
@RequestMapping("/order")
    }

    /**
     * 所有房源数据页
     *
     * @return view
     */
    @GetMapping("/houseList.html")
    public String toAllHousePage() {
        return "/admin/houseList.jsp";
    }

    /**
     * 传入id,跳转到修改用户界面
     *
     * @return view
     */
    @GetMapping("/editUser.html")
    public String toEditUserPage(int userId, HttpServletRequest req) {
        User findUserById = service.findUserById(userId);
        req.getSession().setAttribute("User", findUserById);
        return "/admin/editUser.jsp";
    }

    /**
     * 跳转到管理员更新房源界面
     *
     * @param houseId 房源ID
     * @param request req
     * @return view
     */
    @RequestMapping("/updateHouse.html")
    public String toUpdatePage(int houseId, HttpServletRequest request) {
        House house = dao.findHouseDetailsById(houseId);
        request.getSession().setAttribute("House", house);
        return "/admin/updateHouse.jsp";
    }
}


    /**
     * 登录
     *
     * @param userName     用户名
     * @param userPassword 密码
     * @param req          req
     * @return res
     */
    @PostMapping("/login")
    @ResponseBody
    public String toCustomerPage(String userName, String userPassword, HttpServletRequest req) {
        User user = new User();
        user.setUserName(userName);
        user.setUserPassword(userPassword);
        User loginUser = mapper.login(user);
        if (loginUser != null) {
            req.getSession().setAttribute("loginUser", loginUser);
            return "OK";
        }
        return "FAIL";
    }

    /**
     * 退出登录
     *
     * @param session session
     * @return view
     */
    @GetMapping("/logout")
    public String logout(HttpSession session) {
        session.invalidate();
        return "redirect:/index.html";
    }

    @PostMapping("/register")
    @ResponseBody
    public String register(User user) {
        int register;
        try {
            register = mapper.register(user);
            if (register > 0) {
                return "OK";
            }
            }
        } catch (Exception e) {
            return "FAIL";
        }
        return "FAIL";
    }

}

/**
 */
public class UserInterceptor implements HandlerInterceptor {

    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
        throws Exception {

        response.setCharacterEncoding("utf-8");
        String requestUrl = request.getRequestURL().toString();

        // 检查 session
        HttpSession session = request.getSession();
        User user = (User) session.getAttribute("loginUser");
        Admin admin = (Admin) session.getAttribute("Admin");
        if (user != null || admin != null) {
            return true;
        }

        List<String> filterUserList = Arrays.asList("/index.html", "/user/login", "/user/register", "/detail.html",
            "/fuzzy", "/priceAsc", "/priceDesc", "/admin/", "/admin/index.html", "/admin/adminAccess");
        for (String url : filterUserList) {
            if (requestUrl.contains(url)) {
                return true;
    }
}

/**
 * 管理员界面视图跳转
 *
 */
@Controller
@RequestMapping("/admin")
public class AdminViewController {

    @Autowired
    private IAdminService service;

    @Autowired
    private IHouseService dao;

    /**
     * 登录页
     *
     * @return view
     */
    @GetMapping({"/", "/index.html"})
    public String toAdminLogin() {
        return "/admin/login.jsp";
    }

    /**
     * 注销登录
     *
        request.getSession().setAttribute("House", house);
        return "/admin/updateHouse.jsp";
    }

    /**
     * 更新用户密码
     *
     * @param id     id
     * @param newPwd new password
     * @param oldPwd old password
     * @return res
     */
    @PostMapping("/updateUserPwd")
    @ResponseBody
    public String updateUserPwd(String id, String newPwd, String oldPwd) {
        User oldUser = new User();
        oldUser.setUserId(Integer.parseInt(id));
        oldUser.setUserPassword(oldPwd);
        User checkUser = service.checkOldPwd(oldUser);
        if (checkUser != null) {
            User newUser = new User();
            newUser.setUserId(Integer.parseInt(id));
            newUser.setUserPassword(newPwd);
            int n = service.updateUserPwd(newUser);
            if (n > 0) {
                return "OK";
            }
        }
        return "FAIL";
    }
}

/**
 * 管理员界面视图跳转
 *

/**
 * 收藏控制类
 *
 */
@Controller
@RequestMapping("/order")
public class OrderController {

    @Autowired
    private IOrderService service;

    /**
     * 用户的收藏房源界面
     *
     * @return view
     */
    @GetMapping("/myOrder.html")
    public String toOrderPage() {
        return "/user/myOrder.jsp";
    }

    /**
     * 添加订单
     *
     * @param id      房源id
     * @param request req
     * @return res
     */
    @PostMapping("/addOrder")
    @ResponseBody
    public String addOrder(String id, HttpServletRequest request) {
        User user = (User) request.getSession().getAttribute("loginUser");
        try {

    /**
     * 用户修改密码界面
     *
     * @return view
     */
    @GetMapping("/updatePassword.html")
    public String updatePassword() {
        return "/user/updatePassword.jsp";
    }

    /**
     * 后台第一个欢迎界面
     *
     * @return view
     */
    @GetMapping("/welcome.html")
    public String toWelcomePage() {
        return "welcome.jsp";
    }

    /**
     * 用户发布的租房信息
     * @return view
     */
    @GetMapping("/userRental.html")
    public String toUserRentalPage() {
        return "/user/myRental.jsp";
    }

    /**
     * 用户更新房源信息
     * 使用的也是管理员的界面
     *
     * @param houseId 房源ID
     * @param request req
     * @return view
     */
    @GetMapping("/updateHouse.html")
    public String toUpdatePage(int houseId, HttpServletRequest request) {
        House house = dao.findHouseDetailsById(houseId);
        request.getSession().setAttribute("House", house);
        return "/admin/updateHouse.jsp";
    }

    /**
     * 更新用户密码
     *
     * @param id     id
     * @param newPwd new password
     * @param oldPwd old password
     * @return res
     */
    public String toAllHousePage() {
        return "/admin/houseList.jsp";
    }

    /**
     * 传入id,跳转到修改用户界面
     *
     * @return view
     */
    @GetMapping("/editUser.html")
    public String toEditUserPage(int userId, HttpServletRequest req) {
        User findUserById = service.findUserById(userId);
        req.getSession().setAttribute("User", findUserById);
        return "/admin/editUser.jsp";
    }

    /**
     * 跳转到管理员更新房源界面
     *
     * @param houseId 房源ID
     * @param request req
     * @return view
     */
    @RequestMapping("/updateHouse.html")
    public String toUpdatePage(int houseId, HttpServletRequest request) {
        House house = dao.findHouseDetailsById(houseId);
        request.getSession().setAttribute("House", house);
        return "/admin/updateHouse.jsp";
    }
}

/**
 * 首页控制类
 *
 */

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值