家政服务|基于springBoot的家政服务平台设计与实现(附项目源码+论文+数据库)

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

目录

一、摘要

二、相关技术

三、系统设计

四、数据库设计

五、核心代码

六、论文参考

七、源码获取


一、摘要

现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本家政服务平台就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据信息,使用这种软件工具可以帮助管理人员提高事务处理效率,达到事半功倍的效果。此家政服务平台利用当下成熟完善的Spring Boot框架,使用跨平台的可开发大型商业网站的Java语言,以及最受欢迎的RDBMS应用软件之一的MySQL数据库进行程序开发。家政服务平台有管理员,雇主,雇员三个角色。管理员功能有个人中心,雇主管理,雇员管理,资料认证管理,项目类型管理,服务项目管理,需求信息管理,服务预约管理,申请预约管理,签订合同管理,雇主评价管理,留言板管理,系统管理。雇主可以发布需求,雇员可以申请预约,雇主支付报酬,雇主和雇员可以签订合同,雇主可以对雇员进行评价。家政服务平台的开发根据操作人员需要设计的界面简洁美观,在功能模块布局上跟同类型网站保持一致,程序在实现基本要求功能时,也为数据信息面临的安全问题提供了一些实用的解决方案。可以说该程序在帮助管理者高效率地处理工作事务的同时,也实现了数据信息的整体化,规范化与自动化。

关键词:家政服务平台;Spring Boot框架;MySQL;自动化

二、相关技术

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

三、系统设计

3.1 整体功能设计图

3.2 功能具体细节设计

(1)雇主管理

如图5.1显示的就是雇主管理页面,此页面提供给管理员的功能有:对雇主信息进行查询,添加,删除以及批量删除操作。

(2)雇员管理

如图5.2显示的就是雇员管理页面,管理员可以对雇员信息进行添加,修改,删除,查询操作。

(3)资料认证管理

如图5.3显示的就是资料认证管理页面,雇员注册后需要点击后台进行资料认证,在资料认证里添加自己的资料信息,然后管理员可以审核。

(4)项目类型管理

如图5.4显示的就是项目类型管理页面,管理员可以对项目类型进行添加修改删除查询操作。

(5)需求信息管理

如图5.4显示的就是需求信息管理页面,雇主可以对需求信息进行添加修改删除查询操作。

(6)服务项目管理管理

如图5.6显示的就是服务项目管理页面,雇员可以对服务项目信息进行查询操作。

四、数据库设计

这个部分的设计需要使用到E-R图绘制工具,常用的工具就是Visio工具来绘制E-R模型图,这款工具不仅可以快速创建需要的E-R模型图,而且该工具提供的操作界面很简单,可以短时间内修改绘图界面的图形或者是文字的属性。在绘制E-R模型图时,要分清楚各个图形代表的含义,以免绘制出错,E-R模型图由长方形(实体),椭圆形(属性),菱形(关系)这三部分图形符号组成,绘制期间要区分开来,用准确的图形符号代表相应的数据元素。

(1)管理员实体属性图见图4.4。

(2)雇主实体属性图见图4.5。

(3)项目类型实体属性图见图4.6。

五、核心代码

    /**
    * 后端详情
    */
    @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,"表中有相同数据");
        }
    }

六、论文参考

七、源码获取

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

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

相关推荐
不去幼儿园15 分钟前
【MARL】深入理解多智能体近端策略优化(MAPPO)算法与调参
人工智能·python·算法·机器学习·强化学习
Ajiang28247353041 小时前
对于C++中stack和queue的认识以及priority_queue的模拟实现
开发语言·c++
幽兰的天空1 小时前
Python 中的模式匹配:深入了解 match 语句
开发语言·python
Theodore_10224 小时前
4 设计模式原则之接口隔离原则
java·开发语言·设计模式·java-ee·接口隔离原则·javaee
网易独家音乐人Mike Zhou5 小时前
【卡尔曼滤波】数据预测Prediction观测器的理论推导及应用 C语言、Python实现(Kalman Filter)
c语言·python·单片机·物联网·算法·嵌入式·iot
安静读书5 小时前
Python解析视频FPS(帧率)、分辨率信息
python·opencv·音视频
----云烟----6 小时前
QT中QString类的各种使用
开发语言·qt
lsx2024066 小时前
SQL SELECT 语句:基础与进阶应用
开发语言
小二·6 小时前
java基础面试题笔记(基础篇)
java·笔记·python
开心工作室_kaic7 小时前
ssm161基于web的资源共享平台的共享与开发+jsp(论文+源码)_kaic
java·开发语言·前端