作者主页:源码空间codegym
简介:Java领域优质创作者、Java项目、学习资料、技术互助
文中获取源码
项目介绍
家政服务网站,主要的模块包括查看
管理员;个人中心、用户管理、服务类型管理、家政类型管理、家政评价管理、家政资讯管理、家政服务管理、家政预约管理、系统管理,
用户;个人中心、家政评价管理、家政预约管理、
前台首页;首页、家政资讯、家政服务、我的、跳转到后台等功能。
系统中管理员主要是为了安全有效地存储和管理各类信息,还可以对系统进行管理与更新维护等操作,并且对后台有相应的操作权限。
环境要求
1.运行环境:最好是java jdk1.8,我们在这个平台上运行的。其他版本理论上也可以。
2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;
3.tomcat环境:Tomcat7.x,8.X,9.x版本均可
4.硬件环境:windows7/8/10 4G内存以上;或者Mac OS;
5.是否Maven项目:是;查看源码目录中是否包含pom.xml;若包含,则为maven项目,否则为非maven.项目
6.数据库:MySql5.7/8.0等版本均可;
技术栈
运行环境:jdk8 + tomcat9 + mysql5.7 + windows10
服务端技术:Java、Spring、SpringMVC、Mybatis,SSM
使用说明
1.使用Navicati或者其它工具,在mysql中创建对应sq文件名称的数据库,并导入项目的sql文件;
2.使用IDEA/Eclipse/MyEclipse导入项目,修改配置,运行项目;
3.将项目中config-propertiesi配置文件中的数据库配置改为自己的配置,然后运行;
运行指导
idea导入源码空间站顶目教程说明(Vindows版)-ssm篇:
http://mtw.so/5MHvZq
源码地址:http://codegym.top
运行截图
文档截图
管理员功能模块
管理员登录,管理员通过输入用户名、密码等信息进行系统登录,如图5-1所示。
图5-1管理员登录界面图
管理员登录进入家政服务网站可以查看个人中心、用户管理、服务类型管理、家政类型管理、家政评价管理、家政资讯管理、家政服务管理、家政预约管理、系统管理等内容,如图5-2所示。
图5-2管理员功能界面图
用户管理,在用户管理页面可以填写用户名、密码、用户姓名、性别、头像、用户手机等内容,并可根据需要对用户管理进行查看,修改或删除等操作,如图5-3所示。
图5-3用户管理界面图
服务类型管理,在服务类型管理页面可以填写服务类型等内容,并可根据需要对服务类型管理进行修改或删除等操作,如图5-4所示。
图5-4服务类型管理界面图
家政类型管理,在家政类型管理页面可以填写家政类型等进行添加、修改、删除内容等操作,如图5-5所示。
图5-5家政类型管理界面图
家政评价管理,在家政评价管理页面可以查看预约编号、家政姓名、服务类型、用户名、用户姓名、用户手机、满意度、评价内容等内容,并可根据需要对家政评价管理信息进行查看、修改,删除内容等操作,如图5-6所示。
图5-6家政评价管理界面图
家政资讯管理 ,在家政资讯管理页面可以查看资讯标题、封面图片、内容、发布时间、发布者、来源、资讯类型等内容,并可根据需要对家政资讯管理进行查看、修改、删除内容等操作,如图5-7所示。
图5-7家政资讯管理界面图
家政服务管理;在家政服务管理页面可以查看家政姓名、性别、年龄、服务类型、家政类型、服务费用、联系方式、工作年数、家政图片、个人简介、工作内容等内容,并可根据需要对家政服务管理进行查看、修改、删除内容等操作,如图5-8所示。
图5-8家政服务管理界面图
家政预约管理,在家政预约管理页面可以查看预约编号、家政姓名、家政图片、服务费用、服务类型、家政类型、用户名、用户姓名、用户手机、地址、预约手机、是否审核、审核回复、是否支付等内容,并可根据需要对家政预约管理进行审核、查看、修改,删除等操作,如图5-9所示。
图5-9家政预约管理界面图
用户功能模块
用户登录进入家政服务网站可以查看个人中心、家政评价管理、家政预约管理等内容,如图5-10所示。
图5-10用户功能界面图
个人中心,在个人中心页面通过填写用户名、密码、用户姓名、性别、头像、用户手机等内容并可根据需要对个人中心信息进行提交操作,如图5-11所示。
图5-11个人中心界面图
家政预约管理,在家政预约管理页面可以填写预约编号、家政姓名、家政图片、服务费用、服务类型、家政类型、用户名、用户姓名、用户手机、地址、预约手机、是否审核、审核回复、是否支付等内容,并可根据需要对家政预约管理进行家政评价、查看,删除等操作,如图5-12所示。
图5-12家政预约管理界面图
家政评价管理,在家政评价管理页面可以查看预约编号、家政姓名、服务类型、用户名、用户姓名、用户手机、满意度、评价内容等内容,并可根据需要对家政评价管理进行查看,修改、删除等操作,如图5-13所示。
图5-13家政评价管理界面图
用户注册,在用户注册页面通过填写用户名、密码、姓名、手机等信息进行注册,如图5-15所示。
图5-15用户注册界面图
用户登录,在用户登录页面可以填写账号、密码等内容,进行登录,如图5-16所示。
图5-16用户登录界面图
家政服务信息,在家政服务信息页面可以填写家政姓名、性别、年龄、服务类型、家政类型、服务费用、联系方式、工作年数、个人简介、工作内容等内容,并可根据需要对家政服务信息进行家政预约或点我收藏等操作,如图5-17所示。
代码
package com.controller;import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Map;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Date;
import java.util.List;
import javax.servlet.http.HttpServletRequest;import com.utils.ValidatorUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.annotation.IgnoreAuth;import com.entity.ForumEntity;
import com.entity.view.ForumView;import com.service.ForumService;
import com.service.TokenService;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.MD5Util;
import com.utils.MPUtil;
import com.utils.CommonUtil;/*** 论坛交流* 后端接口* @author * @email * @date 2021-04-02 08:48:56*/
@RestController
@RequestMapping("/forum")
public class ForumController {@Autowiredprivate ForumService forumService;/*** 后端列表*/@RequestMapping("/page")public R page(@RequestParam Map<String, Object> params,ForumEntity forum, HttpServletRequest request){if(!request.getSession().getAttribute("role").toString().equals("管理员")) {forum.setUserid((Long)request.getSession().getAttribute("userId"));}EntityWrapper<ForumEntity> ew = new EntityWrapper<ForumEntity>();PageUtils page = forumService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, forum), params), params));return R.ok().put("data", page);}/*** 前端列表*/@RequestMapping("/list")public R list(@RequestParam Map<String, Object> params,ForumEntity forum, HttpServletRequest request){if(!request.getSession().getAttribute("role").toString().equals("管理员")) {forum.setUserid((Long)request.getSession().getAttribute("userId"));}EntityWrapper<ForumEntity> ew = new EntityWrapper<ForumEntity>();PageUtils page = forumService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, forum), params), params));return R.ok().put("data", page);}/*** 列表*/@IgnoreAuth@RequestMapping("/flist")public R flist(@RequestParam Map<String, Object> params,ForumEntity forum, HttpServletRequest request){EntityWrapper<ForumEntity> ew = new EntityWrapper<ForumEntity>();PageUtils page = forumService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.allEq(ew, forum), params), params));return R.ok().put("data", page);}/*** 查询*/@RequestMapping("/query")public R query(ForumEntity forum){EntityWrapper< ForumEntity> ew = new EntityWrapper< ForumEntity>();ew.allEq(MPUtil.allEQMapPre( forum, "forum")); ForumView forumView = forumService.selectView(ew);return R.ok("查询论坛交流成功").put("data", forumView);}/*** 后端详情*/@RequestMapping("/info/{id}")public R info(@PathVariable("id") Long id){ForumEntity forum = forumService.selectById(id);return R.ok().put("data", forum);}/*** 前端详情*/@RequestMapping("/detail/{id}")public R detail(@PathVariable("id") Long id){ForumEntity forum = forumService.selectById(id);return R.ok().put("data", forum);}/*** 论坛详情*/@IgnoreAuth@RequestMapping("/list/{id}")public R list(@PathVariable("id") String id){ForumEntity forum = forumService.selectById(id);getChilds(forum);return R.ok().put("data", forum);}private ForumEntity getChilds(ForumEntity forum) {List<ForumEntity> childs = new ArrayList<ForumEntity>();childs = forumService.selectList(new EntityWrapper<ForumEntity>().eq("parentid", forum.getId()));if(childs == null || childs.size()==0) {return null;}forum.setChilds(childs);for(ForumEntity forumEntity : childs) {getChilds(forumEntity);}return forum;}/*** 后端保存*/@RequestMapping("/save")public R save(@RequestBody ForumEntity forum, HttpServletRequest request){forum.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());//ValidatorUtils.validateEntity(forum);forum.setUserid((Long)request.getSession().getAttribute("userId"));forumService.insert(forum);return R.ok();}/*** 前端保存*/@RequestMapping("/add")public R add(@RequestBody ForumEntity forum, HttpServletRequest request){forum.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());//ValidatorUtils.validateEntity(forum);forum.setUserid((Long)request.getSession().getAttribute("userId"));forumService.insert(forum);return R.ok();}/*** 修改*/@RequestMapping("/update")public R update(@RequestBody ForumEntity forum, HttpServletRequest request){//ValidatorUtils.validateEntity(forum);forumService.updateById(forum);//全部更新return R.ok();}/*** 删除*/@RequestMapping("/delete")public R delete(@RequestBody Long[] ids){forumService.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<ForumEntity> wrapper = new EntityWrapper<ForumEntity>();if(map.get("remindstart")!=null) {wrapper.ge(columnName, map.get("remindstart"));}if(map.get("remindend")!=null) {wrapper.le(columnName, map.get("remindend"));}int count = forumService.selectCount(wrapper);return R.ok().put("count", count);}}