基于springboot+vue的家政服务系统(前后端分离)
博主主页:猫头鹰源码
博主简介:Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万+、专注Java技术领域和毕业设计项目实战
主要内容:毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询
文末联系获取
项目背景:?
本课题的选题目的就是通过各个功能模块的优化组合达到不同的管理细节,最大程度的实现管理的自动化与信息化,使家政服务信息管理更加清晰,透明,易于操作,便于管理,并且能够自动的检查人工操作的环节,降低家政服务管理平台的出错率。家政服务管理平台里最大特点就是信息管理,由于家政服务的信息量比较大,管理的功能种类多且复杂,比如:首页、个人中心、用户管理、服务人员管理、服务信息管理、服务类型管理、服务预约管理、服务取消管理、服务分配管理、服务进度管理、评价信息管理、留言反馈、系统管理等等。在过去传统的家政服务信息管理中,上述的各种管理工作处理起来是相当的繁琐和复杂。在处理信息的过程中还会出现信息的重复传递或者信息的漏传,因此家政服务管理有必要引入计算机来管理信息,从而提高管理的效率,提高服务质量。
功能介绍:
本系统主要是设计出家政服务管理平台,基于B/S构架,后台数据库采用了Mysql,可以使数据的查询和存储变得更加有效,可以确保家政服务管理的工作能够正常、高效的进行,从而提高工作的效率。总体的研究内容如下:
a)系统的界面简洁、明了,方便用户操作。系统大量的使用控件,大大的缩短了代码的长度。系统的大部分的功能能够通过控件来实现,用户可以非常方便的完成各类操作。
b)系统分前台和后台,可以同时达到管理员、用户和服务人员的不同需求。系统使用权限包括:管理员、用户和服务人员三个用户角色。主要功能包括首页、个人中心、用户管理、服务人员管理、服务信息管理、服务类型管理、服务预约管理、服务取消管理、服务分配管理、服务进度管理、评价信息管理、留言反馈、系统管理等等。
系统包含技术:
后端:springboot,mybatis
前端:element-ui、js、css等
开发工具:idea/vscode
数据库:mysql 5.7
JDK版本:jdk1.8
部分截图说明:
首页,展示公告信息,服务信息,培训体系介绍等
培训体系信息
服务信息
服务详情
公告信息
登录
用户管理,维护用户信息
服务信息管理
服务预约记录
留言反馈
部分代码:
/**
* 后端列表
*/
@RequestMapping("/page")
public R page(@RequestParam Map<String, Object> params,FuwujinduEntity fuwujindu,
HttpServletRequest request){
String tableName = request.getSession().getAttribute("tableName").toString();
if(tableName.equals("yonghu")) {
fuwujindu.setZhanghao((String)request.getSession().getAttribute("username"));
}
if(tableName.equals("fuwurenyuan")) {
fuwujindu.setGonghao((String)request.getSession().getAttribute("username"));
}
EntityWrapper<FuwujinduEntity> ew = new EntityWrapper<FuwujinduEntity>();
PageUtils page = fuwujinduService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, fuwujindu), params), params));
return R.ok().put("data", page);
}
/**
* 前端列表
*/
@IgnoreAuth
@RequestMapping("/list")
public R list(@RequestParam Map<String, Object> params,FuwujinduEntity fuwujindu,
HttpServletRequest request){
EntityWrapper<FuwujinduEntity> ew = new EntityWrapper<FuwujinduEntity>();
PageUtils page = fuwujinduService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, fuwujindu), params), params));
return R.ok().put("data", page);
}
/**
* 列表
*/
@RequestMapping("/lists")
public R list( FuwujinduEntity fuwujindu){
EntityWrapper<FuwujinduEntity> ew = new EntityWrapper<FuwujinduEntity>();
ew.allEq(MPUtil.allEQMapPre( fuwujindu, "fuwujindu"));
return R.ok().put("data", fuwujinduService.selectListView(ew));
}
/**
* 查询
*/
@RequestMapping("/query")
public R query(FuwujinduEntity fuwujindu){
EntityWrapper< FuwujinduEntity> ew = new EntityWrapper< FuwujinduEntity>();
ew.allEq(MPUtil.allEQMapPre( fuwujindu, "fuwujindu"));
FuwujinduView fuwujinduView = fuwujinduService.selectView(ew);
return R.ok("查询服务进度成功").put("data", fuwujinduView);
}
/**
* 后端详情
*/
@RequestMapping("/info/{id}")
public R info(@PathVariable("id") Long id){
FuwujinduEntity fuwujindu = fuwujinduService.selectById(id);
return R.ok().put("data", fuwujindu);
}
/**
* 前端详情
*/
@IgnoreAuth
@RequestMapping("/detail/{id}")
public R detail(@PathVariable("id") Long id){
FuwujinduEntity fuwujindu = fuwujinduService.selectById(id);
return R.ok().put("data", fuwujindu);
}
/**
* 后端保存
*/
@RequestMapping("/save")
public R save(@RequestBody FuwujinduEntity fuwujindu, HttpServletRequest request){
fuwujindu.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
//ValidatorUtils.validateEntity(fuwujindu);
fuwujinduService.insert(fuwujindu);
return R.ok();
}
/**
* 前端保存
*/
@RequestMapping("/add")
public R add(@RequestBody FuwujinduEntity fuwujindu, HttpServletRequest request){
fuwujindu.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
//ValidatorUtils.validateEntity(fuwujindu);
fuwujinduService.insert(fuwujindu);
return R.ok();
}
/**
* 修改
*/
@RequestMapping("/update")
public R update(@RequestBody FuwujinduEntity fuwujindu, HttpServletRequest request){
//ValidatorUtils.validateEntity(fuwujindu);
fuwujinduService.updateById(fuwujindu);//全部更新
return R.ok();
}
/**
* 删除
*/
@RequestMapping("/delete")
public R delete(@RequestBody Long[] ids){
fuwujinduService.deleteBatchIds(Arrays.asList(ids));
return R.ok();
}
/**
* 提醒接口
*/
@RequestMapping("/remind/{columnName}/{type}")
public R remindCount(@PathVariable("columnName") String columnName, HttpServletRequest request,
@PathVariable("type") String type,@RequestParam Map<String, Object> map) {
map.put("column", columnName);
map.put("type", type);
if(type.equals("2")) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Calendar c = Calendar.getInstance();
Date remindStartDate = null;
Date remindEndDate = null;
if(map.get("remindstart")!=null) {
Integer remindStart = Integer.parseInt(map.get("remindstart").toString());
c.setTime(new Date());
c.add(Calendar.DAY_OF_MONTH,remindStart);
remindStartDate = c.getTime();
map.put("remindstart", sdf.format(remindStartDate));
}
if(map.get("remindend")!=null) {
Integer remindEnd = Integer.parseInt(map.get("remindend").toString());
c.setTime(new Date());
c.add(Calendar.DAY_OF_MONTH,remindEnd);
remindEndDate = c.getTime();
map.put("remindend", sdf.format(remindEndDate));
}
}
Wrapper<FuwujinduEntity> wrapper = new EntityWrapper<FuwujinduEntity>();
if(map.get("remindstart")!=null) {
wrapper.ge(columnName, map.get("remindstart"));
}
if(map.get("remindend")!=null) {
wrapper.le(columnName, map.get("remindend"));
}
String tableName = request.getSession().getAttribute("tableName").toString();
if(tableName.equals("yonghu")) {
wrapper.eq("zhanghao", (String)request.getSession().getAttribute("username"));
}
if(tableName.equals("fuwurenyuan")) {
wrapper.eq("gonghao", (String)request.getSession().getAttribute("username"));
}
int count = fuwujinduService.selectCount(wrapper);
return R.ok().put("count", count);
}
以上就是部分功能展示,从整体上来看,本系统功能是十分完整的,界面设计简洁大方,交互友好,数据库设计也很合理,规模适中,代码工整,清晰,适合学习使用。
好了,今天就到这儿吧,小伙伴们点赞、收藏、评论,一键三连走起呀,下期见~~
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!