房地产销售|基于springBoot的房地产销售管理系统设计与实现(附项目源码+论文+数据库)

 私信或留言即免费送开题报告和任务书(可指定任意题目)

目录

一、摘要

二、相关技术

三、系统设计

四、数据库设计  

五、核心代码   

六、论文参考

七、源码获取  


一、摘要

社会和科技的不断进步带来更便利的生活,计算机技术也越来越平民化。二十一世纪是数据时代,各种信息经过统计分析都可以得到想要的结果,所以也可以更好的为人们工作、生活服务。房屋是生活条件的一部分,所以需求量非常大。把计算机技术和房地产销售相结合可以更符合现代、用户的要求,实现更为方便的销售房屋的方式。

本基于JAVA的房地产销售管理系统采用JAVA语言和Vue技术,框架采用Springboot,搭配Mysql数据库,运行在Idea里。本基于JAVA的房地产销售管理系统提供管理员、客户、销售经理三种角色的服务。总的功能包括房产的查询、预约、评价、购买和论坛管理等。本系统可以帮助管理员、销售经理更新房产信息和管理预约、购买信息,帮助客户实现在线的预约方式,并可以实现购买。本系统采用成熟技术开发可以完成房地产销售管理的相关工作。

关键词:在线预约;购置房产;JAVA语言;Mysql数据库;论坛管理

二、相关技术

java、tomcat、mysql、spring、springBoot、mybatis、query、vue

三、系统设计

3.1 整体功能设计图

系统的功能结构是采用树形图来绘制功能设计。根据分析所得,本系统的功能设计为管理员、客户、销售经理三部分。管理员为房产管理、预约看房管理、论坛管理、购置房产管理、客户打分管理、公告信息管理、客户管理、销售经理管理等,客户的功能为查询房产,在线预约、购置房产、管理个人信息、打分信息等。客户可以注册进行登录。销售经理为审核客户的预约、管理购置房产信息、客户打分信息等。本基于JAVA的房地产销售管理系统的功能结构设计图如下图3-1所示:  

 3.2 功能具体细节设计   

(1)用户登录功能的详细实现

用户登录界面起到验证身份的作用,本界面采用风景图片背景进行设计。在用户登录界面里设置了程序的名称和用户、密码、客户注册的文本框。在文本框下是登录按钮。用户在信息输入完成后可以使用登录按钮进行相对应的操作,还加入了登录安全的简单文字提醒。用户登录功能的实现界面如下图4-1所示:

(2)客户信息管理功能的详细实现

管理员负责客户信息的录入和管理,客户的地址、联系方式等都可以由管理员在此功能里看到。管理员查询客户信息的功能实现如下图4-2所示:

(3)房产管理功能的详细实现 

管理员可以对房产的信息进行管理、审核。本功能可以实现房产的定时更新和审核管理。管理员查询房产信息的实现界面如下图4-3所示:

(4)预约看房功能的详细实现 

本功能包括查询已有的所有预约看房信息和删除预约看房信息。预约看房查询功能的实现详情如下图4-4所示:

(5)论坛管理功能的详细实现

管理员可以查询论坛和审核管理客户发布的帖子。论坛管理功能的实现界面如下图4-5所示:

(6)购置房产管理功能的详细实现

管理员可以管理客户的购置房产信息,也可以查询和删除购置房产内容。购置房产管理功能的实现界面如下图4-6所示:

四、数据库设计  

(1)管理员的ER图中的属性有账号、密码、权限。管理员ER图如下图3-2所示:

(2)客户的ER图里的属性有性别、姓名、编号等,客户的ER图如下图3-3所示:

(3)房产的ER图里的属性有房产编号、面积、户型图、价格等,房产的ER图如下图3-4所示:

(4)预约的ER图里的属性有预约人、编号、预约时间、房产等,预约ER图如下图3-5所示:

五、核心代码   

    /**
    * 后端详情
    */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") Long id, HttpServletRequest request){
        logger.debug("info方法:,,Controller:{},,id:{}",this.getClass().getName(),id);
        ShigudengjiEntity shigudengji = shigudengjiService.selectById(id);
        if(shigudengji !=null){
            //entity转view
            ShigudengjiView view = new ShigudengjiView();
            BeanUtils.copyProperties( shigudengji , view );//把实体数据重构到view中

                //级联表
                YonghuEntity yonghu = yonghuService.selectById(shigudengji.getYonghuId());
                if(yonghu != null){
                    BeanUtils.copyProperties( yonghu , view ,new String[]{ "id", "createTime", "insertTime", "updateTime"});//把级联的数据添加到view中,并排除id和创建时间字段
                    view.setYonghuId(yonghu.getId());
                }
                //级联表
                YuangongEntity yuangong = yuangongService.selectById(shigudengji.getYuangongId());
                if(yuangong != null){
                    BeanUtils.copyProperties( yuangong , view ,new String[]{ "id", "createTime", "insertTime", "updateTime"});//把级联的数据添加到view中,并排除id和创建时间字段
                    view.setYuangongId(yuangong.getId());
                }
            //修改对应字典表字段
            dictionaryService.dictionaryConvert(view, request);
            return R.ok().put("data", view);
        }else {
            return R.error(511,"查不到数据");
        }

    }

    /**
    * 后端保存
    */
    @RequestMapping("/save")
    public R save(@RequestBody ShigudengjiEntity shigudengji, HttpServletRequest request){
        logger.debug("save方法:,,Controller:{},,shigudengji:{}",this.getClass().getName(),shigudengji.toString());

        String role = String.valueOf(request.getSession().getAttribute("role"));
        if(StringUtil.isEmpty(role))
            return R.error(511,"权限为空");
        else if("员工".equals(role))
            shigudengji.setYuangongId(Integer.valueOf(String.valueOf(request.getSession().getAttribute("userId"))));

        Wrapper<ShigudengjiEntity> queryWrapper = new EntityWrapper<ShigudengjiEntity>()
            .eq("yonghu_id", shigudengji.getYonghuId())
            .eq("yuangong_id", shigudengji.getYuangongId())
            .eq("shigudengji_uuid_number", shigudengji.getShigudengjiUuidNumber())
            .eq("shigudengji_name", shigudengji.getShigudengjiName())
            .eq("shigudengji_types", shigudengji.getShigudengjiTypes())
            .eq("zeren_types", shigudengji.getZerenTypes())
            ;

        logger.info("sql语句:"+queryWrapper.getSqlSegment());
        ShigudengjiEntity shigudengjiEntity = shigudengjiService.selectOne(queryWrapper);
        if(shigudengjiEntity==null){
            shigudengji.setInsertTime(new Date());
            shigudengji.setCreateTime(new Date());
            shigudengjiService.insert(shigudengji);
            return R.ok();
        }else {
            return R.error(511,"表中有相同数据");
        }
    }

六、论文参考

七、源码获取  

点赞、收藏、关注、评论啦。

联系即送开题报告和任务书,欢迎咨询

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值