基于SSM的物业管理系统的设计与实现 (含源码+sql+视频导入教程)

👉文末查看项目功能视频演示+获取源码+sql脚本+视频导入教程视频

1 、功能描述

  基于SSM的物业管理系统拥有两种角色

  管理员:用户管理、用户缴费、车位管理、车位分配、新闻管理、公告管理、投诉处理等

  业主:个人车位、投诉、缴费、查看新闻公告等

2、项目技术

后端框架:SSM(Spring、SpringMVC、Mybatis)

前端技术:Layui、jsp、css、JavaScript、JQuery

2.1 SSM

  SSM(Spring+SpringMVC+MyBatis)是目前比较主流的Java EE企业级框架,适用于搭建各种大型的企业级应用系统。其中,Spring就像是整个项目中的粘合剂,负责装配bean并管理其生命周期,实现控制反转(IoC)的功能。SpringMVC负责拦截用户请求,通过DispatcherServlet将请求匹配到相应的Controller并执行。而MyBatis则是对JDBC的封装,让数据库底层操作变得透明,通过配置文件关联到各实体类的Mapper文件,实现了SQL语句映射。

2.2 mysql

  MySQL是一款Relational Database Management System,直译过来的意思就是关系型数据库管理系统,MySQL有着它独特的特点,这些特点使他成为目前最流行的RDBMS之一,MySQL想比与其他数据库如ORACLE、DB2等,它属于一款体积小、速度快的数据库,重点是它符合本次毕业设计的真实租赁环境,拥有成本低,开发源码这些特点,这也是选择它的主要原因。

3、开发环境

  • JAVA版本:JDK1.8
  • IDE类型:IDEA、Eclipse都可运行
  • tomcat版本:Tomcat 7-10版本均可
  • 数据库类型:MySql(5.x和8.x版本都可)
  • maven项目:否
  • 硬件环境:Windows 或者 Mac OS

4、功能截图+视频演示+文档目录

4.1 登录

登录

4.2 管理员模块

管理员-用户管理

管理员-用户缴费

管理员-车位管理

管理员-车位分配

管理员-新闻管理

管理员-公告管理

管理员-投诉处理

4.3 业主模块

用户-个人车位

用户-个人投诉

用户-费用单

用户-查看新闻和公告

5 、核心代码实现

5.1 配置代码

hibernate.dialect=org.hibernate.dialect.MySQLDialect
driverClassName=com.mysql.cj.jdbc.Driver
validationQuery=SELECT 1
jdbc_url=jdbc:mysql://localhost:3306/estate_manage_sys?characterEncoding=utf8&useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=true
jdbc_username=root
jdbc_password=root

5.2 登录+注册+其它代码



@Controller
@RequestMapping("/commonapi")
public class LoginController {
    SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd");
    SimpleDateFormat sdf3 = new SimpleDateFormat("yyyyMMddHHmmss");
    @Autowired
    UserInfoMapper userInfoMapper;
    @Autowired
    AdminInfoMapper adminInfoMapper;

    /**
      系统进入登录页面接口
    */
    @RequestMapping(value = "sys_login")
    public String sys_login(ModelMap modelMap, String msg) {
        modelMap.addAttribute("msg", msg);

        return "sys_login";
    }

    /**
      系统退出接口
    */
    @RequestMapping(value = "sys_logout")
    public String sys_logout(ModelMap modelMap, String msg,
        HttpServletRequest request) {
        request.getSession().removeAttribute(CommonVal.sessionName);

        return "redirect:/commonapi/sys_login";
    }

    /**
      系统提交登录验证信息接口
    */
    @RequestMapping("sysSubmit")
    @ResponseBody
    public Object sysSubmit(LoginModel user, String imgCode, ModelMap modelMap,
        HttpServletRequest request, HttpServletResponse response) {
        HttpSession session = request.getSession();
        Map<String, Object> rs = new HashMap<String, Object>();

        //图片验证码验证,从session中查询验证码并校验
        if ((imgCode != null) &&
                !imgCode.toLowerCase()
                            .equals(request.getSession()
                                               .getAttribute(CommonVal.code)
                                               .toString().toLowerCase())) {
            rs.put("code", 0);
            rs.put("msg",
                "图片验证码错误");

            return rs;
        }

        if (user.getLoginType() == null) {
            rs.put("code", 0);
            rs.put("msg",
                "请选择登录角色");

            return rs;
        }

        if ((user.getName() == null) || user.getName().equals("")) {
            rs.put("code", 0);
            rs.put("msg",
                "请输入登录名");

            return rs;
        }

        if ((user.getPassword() == null) || user.getPassword().equals("")) {
            rs.put("code", 0);
            rs.put("msg",
                "请输入密码");

            return rs;
        }

        if (user.getLoginType() == 1) {
            AdminInfoExample te = new AdminInfoExample(); //验证管理员账号密码
            AdminInfoExample.Criteria tc = te.createCriteria();
            tc.andNameEqualTo(user.getName());
            tc.andPassWordEqualTo(user.getPassword());

            List<AdminInfo> tl = adminInfoMapper.selectByExample(te);

            if (tl.size() == 0) { //从数据库中查询不到账号
                rs.put("code", 0);
                rs.put("msg",
                    "登录名或密码错误");

                return rs;
            } else {
                LoginModel login = new LoginModel();
                login.setId(tl.get(0).getId());
                login.setLoginType(1);
                login.setName(user.getName());
                request.getSession().setAttribute(CommonVal.sessionName, login); //设置登录session,保持会话
                rs.put("code", 1);
                rs.put("msg",
                    "登录成功");

                return rs;
            }
        }

        if (user.getLoginType() == 2) {
            UserInfoExample te = new UserInfoExample(); //验证用户账号密码
            UserInfoExample.Criteria tc = te.createCriteria();
            tc.andNameEqualTo(user.getName());
            tc.andPassWordEqualTo(user.getPassword());

            List<UserInfo> tl = userInfoMapper.selectByExample(te);

            if (tl.size() == 0) { //从数据库中查询不到账号
                rs.put("code", 0);
                rs.put("msg",
                    "登录名或密码错误");

                return rs;
            } else {
                LoginModel login = new LoginModel();
                login.setId(tl.get(0).getId());
                login.setLoginType(2);
                login.setName(user.getName());
                request.getSession().setAttribute(CommonVal.sessionName, login); //设置登录session,保持会话
                rs.put("code", 1);
                rs.put("msg",
                    "登录成功");

                return rs;
            }
        }

        rs.put("code", 0);
        rs.put("msg",
            "系统出错");

        return rs;

6 、 获取方式+功能视频演示

👇 大家点赞、收藏、关注、评论啦 👇🏻获取联系方式,后台回复关键词:物业👇🏻

在这里插入图片描述

  • 18
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
本项目使用IDEA作为IDE,bootstrap(HTML5 CSS JS)做前端,springMVC做后端,mySQL做数据库。 UI请使用蓝色和白色为主色调。不用做得太华丽,做得像一个正常的毕设就行。 首先是登录,分为业主和管理员两种身份。不同的身份看到的模块数量和内容不一样。 系统管理模块,我设想的是每个人对自己这个账户的基本信息的修改。这一部分我不太确定,可以适当自由添加一点功能。 楼盘管理,业主只能看到自己的住房信息。管理员这边,可以显示这个小区有哪些大楼,选择大楼可以看到大楼内部有哪些房间,还可以显示这些房间与哪些业主相关联(即被谁买下),可以查找指定业主的住房。管理员可以添加、删除、更新业主和房屋的关联(表示入住或者搬离)。 收费管理,初步想法是管理员向业主发出收费通知(物业、水电等),可以向所有业主群发,也可以向指定业主发送。业主的界面会收到通知,业主线下缴费后线上确认,然后管理员确认即可完成缴费全过程。 停车管理,业主只能看到自己的车位信息。管理员界面显示小区内所有车位,以及这些车位的状态,无人归属或者归谁所有,可以查找指定业主的车位,或者指定车位的业主。可以添加、更新和删除业主和车位的关联(表示购买车位、车位转让、车位到期等)。 业主管理,业主看不到这个模块。业主注册时向管理员发出信号,管理员批准后业主注册正式完成。该模块可以显示有哪些业主,业主的基本信息。管理员也可以删除业主的账号(表示业主已经搬离该小区,与小区没有关联了)。 保修和投诉两个模块是类似的,业主在自己这里发出具体的请求,管理员界面可以看到这些请求。管理员可以接受请求,等待线下任务完成后,业主确认完成后,管理员确认完成,即正式完成,本次保修、投诉结束。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员王不二buer

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值