🍊作者:计算机编程-吉哥
🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。
🍊心愿:点赞 👍 收藏 ⭐评论 📝
🍅 文末获取源码联系👇🏻 精彩专栏推荐订阅 👇🏻 不然下次找不到哟~
Java毕业设计项目~热门选题推荐《1000套》
技术选型
springboot、mybatisplus、vue、elementui、html、css、js、mysql、jdk1.8
数据库表结构
13张
开发工具
idea、navicat
⭐功能
【角色】
管理员、雇主、雇员
【前台功能模块】
- 登录注册
- 服务项目
- 需求信息
- 网站公告
- 留言板
- 个人中心
- 后台管理
【后台功能模块】
- 登录
- 个人中心
- 雇主管理
- 雇员管理
- 资料认证管理
- 项目类型管理
- 服务项目管理
- 需求信息管理
- 服务预约管理
- 申请预约管理
- 签订合同管理
- 雇主评价管理
- 留言板管理
- 系统管理
🏆项目演示截图
1、首页
2、前台登录
3、前台注册
4、前台个人中心
5、前台留言板
6、前台服务项目
7、前台服务项目预约
8、前台需求信息
9、后台资料认证管理
10、后台资料认证管理
11、后台雇员管理
12、后台服务项目管理
系统核心主要逻辑
雇主(普通用户):进入系统点击服务项目,可以根据项目类型和其他条件查询,然后点击具体服务项目进行预约,然后提交预约单,进行支付操作。
雇员(服务人员):注册个人信息,登录系统进行个人信息完善,添加资料认证信息,然后交给管理员审核。雇员可以查询服务预约单信息、签订合同信息。
管理员:可以对雇主和雇员信息管理,审核雇员的资料,保证服务人员资质合格。然后需要维护项目类型基础数据,根据项目类型添加服务项目。然后对服务预约管理模块信息进行管理,可以导出服务预约单和统计报表(echarts柱状图展示当日营业额),与雇主之间签订合同信息,最后对系统前端展示轮播图、网站公告进行管理操作。
核心功能代码实现
package com.controller;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Date;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
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.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import com.annotation.IgnoreAuth;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.entity.TokenEntity;
import com.entity.UserEntity;
import com.service.TokenService;
import com.service.UserService;
import com.utils.CommonUtil;
import com.utils.MPUtil;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.ValidatorUtils;
/**
* 管理员用户
*/
@RequestMapping("users")
@RestController
public class UserController{
@Autowired
private UserService userService;
@Autowired
private TokenService tokenService;
/**
* 登录
*/
@IgnoreAuth
@PostMapping(value = "/login")
public R login(String username, String password, String captcha, HttpServletRequest request) {
UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
if(user==null || !user.getPassword().equals(password)) {
return R.error("账号或密码不正确");
}
String token = tokenService.generateToken(user.getId(),username, "users", user.getRole());
return R.ok().put("token", token);
}
/**
* 注册
*/
@IgnoreAuth
@PostMapping(value = "/register")
public R register(@RequestBody UserEntity user){
// ValidatorUtils.validateEntity(user);
if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
return R.error("用户已存在");
}
userService.insert(user);
return R.ok();
}
/**
* 退出
*/
@GetMapping(value = "logout")
public R logout(HttpServletRequest request) {
request.getSession().invalidate();
return R.ok("退出成功");
}
/**
* 密码重置
*/
@IgnoreAuth
@RequestMapping(value = "/resetPass")
public R resetPass(String username, HttpServletRequest request){
UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
if(user==null) {
return R.error("账号不存在");
}
user.setPassword("123456");
userService.update(user,null);
return R.ok("密码已重置为:123456");
}
/**
* 列表
*/
@RequestMapping("/page")
public R page(@RequestParam Map<String, Object> params,UserEntity user){
EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
PageUtils page = userService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.allLike(ew, user), params), params));
return R.ok().put("data", page);
}
/**
* 列表
*/
@RequestMapping("/list")
public R list( UserEntity user){
EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
ew.allEq(MPUtil.allEQMapPre( user, "user"));
return R.ok().put("data", userService.selectListView(ew));
}
/**
* 信息
*/
@RequestMapping("/info/{id}")
public R info(@PathVariable("id") String id){
UserEntity user = userService.selectById(id);
return R.ok().put("data", user);
}
/**
* 获取用户的session用户信息
*/
@RequestMapping("/session")
public R getCurrUser(HttpServletRequest request){
Long id = (Long)request.getSession().getAttribute("userId");
UserEntity user = userService.selectById(id);
return R.ok().put("data", user);
}
/**
* 保存
*/
@PostMapping("/save")
public R save(@RequestBody UserEntity user){
// ValidatorUtils.validateEntity(user);
if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
return R.error("用户已存在");
}
userService.insert(user);
return R.ok();
}
/**
* 修改
*/
@RequestMapping("/update")
public R update(@RequestBody UserEntity user){
// ValidatorUtils.validateEntity(user);
UserEntity u = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername()));
if(u!=null && u.getId()!=user.getId() && u.getUsername().equals(user.getUsername())) {
return R.error("用户名已存在。");
}
userService.updateById(user);//全部更新
return R.ok();
}
/**
* 删除
*/
@RequestMapping("/delete")
public R delete(@RequestBody Long[] ids){
userService.deleteBatchIds(Arrays.asList(ids));
return R.ok();
}
}
数据库代码
-- ----------------------------
-- Table structure for config
-- ----------------------------
DROP TABLE IF EXISTS `config`;
CREATE TABLE `config` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`name` varchar(100) NOT NULL COMMENT '配置参数名称',
`value` varchar(100) DEFAULT NULL COMMENT '配置参数值',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COMMENT='配置文件';
-- ----------------------------
-- Records of config
-- ----------------------------
INSERT INTO `config` VALUES ('1', 'picture1', 'upload/picture1.jpg');
INSERT INTO `config` VALUES ('2', 'picture2', 'upload/picture2.jpg');
INSERT INTO `config` VALUES ('3', 'picture3', 'upload/picture3.jpg');
-- ----------------------------
-- Table structure for discussfuwuxiangmu
-- ----------------------------
DROP TABLE IF EXISTS `discussfuwuxiangmu`;
CREATE TABLE `discussfuwuxiangmu` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`refid` bigint(20) NOT NULL COMMENT '关联表id',
`userid` bigint(20) NOT NULL COMMENT '用户id',
`nickname` varchar(200) DEFAULT NULL COMMENT '用户名',
`content` longtext NOT NULL COMMENT '评论内容',
`reply` longtext COMMENT '回复内容',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=177 DEFAULT CHARSET=utf8 COMMENT='服务项目评论表';
-- ----------------------------
-- Table structure for fuwuxiangmu
-- ----------------------------
DROP TABLE IF EXISTS `fuwuxiangmu`;
CREATE TABLE `fuwuxiangmu` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`xiangmumingcheng` varchar(200) DEFAULT NULL COMMENT '项目名称',
`xiangmuleixing` varchar(200) DEFAULT NULL COMMENT '项目类型',
`jiage` float DEFAULT NULL COMMENT '价格',
`fengmian` varchar(200) DEFAULT NULL COMMENT '封面',
`zhuangtai` varchar(200) DEFAULT NULL COMMENT '状态',
`xiangxijieshao` longtext COMMENT '详细介绍',
`guyuanzhanghao` varchar(200) DEFAULT NULL COMMENT '雇员账号',
`guyuanxingming` varchar(200) DEFAULT NULL COMMENT '雇员姓名',
`lianxidianhua` varchar(200) DEFAULT NULL COMMENT '联系电话',
`sfsh` varchar(200) DEFAULT '否' COMMENT '是否审核',
`shhf` longtext COMMENT '审核回复',
`thumbsupnum` int(11) DEFAULT '0' COMMENT '赞',
`crazilynum` int(11) DEFAULT '0' COMMENT '踩',
`clicktime` datetime DEFAULT NULL COMMENT '最近点击时间',
`clicknum` int(11) DEFAULT '0' COMMENT '点击次数',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=57 DEFAULT CHARSET=utf8 COMMENT='服务项目';
-- ----------------------------
-- Table structure for fuwuyuyue
-- ----------------------------
DROP TABLE IF EXISTS `fuwuyuyue`;
CREATE TABLE `fuwuyuyue` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`yuyuebianhao` varchar(200) DEFAULT NULL COMMENT '预约编号',
`xiangmumingcheng` varchar(200) DEFAULT NULL COMMENT '项目名称',
`jiage` float DEFAULT NULL COMMENT '价格',
`yuyueshijian` datetime DEFAULT NULL COMMENT '预约时间',
`yuyuebeizhu` longtext COMMENT '预约备注',
`zhanghao` varchar(200) DEFAULT NULL COMMENT '账号',
`xingming` varchar(200) DEFAULT NULL COMMENT '姓名',
`shouji` varchar(200) DEFAULT NULL COMMENT '手机',
`guyuanzhanghao` varchar(200) DEFAULT NULL COMMENT '雇员账号',
`guyuanxingming` varchar(200) DEFAULT NULL COMMENT '雇员姓名',
`lianxidianhua` varchar(200) DEFAULT NULL COMMENT '联系电话',
`sfsh` varchar(200) DEFAULT '否' COMMENT '是否审核',
`shhf` longtext COMMENT '审核回复',
`ispay` varchar(200) DEFAULT '未支付' COMMENT '是否支付',
PRIMARY KEY (`id`),
UNIQUE KEY `yuyuebianhao` (`yuyuebianhao`)
) ENGINE=InnoDB AUTO_INCREMENT=1681470975317 DEFAULT CHARSET=utf8 COMMENT='服务预约';
-- ----------------------------
-- Table structure for guyuan
-- ----------------------------
DROP TABLE IF EXISTS `guyuan`;
CREATE TABLE `guyuan` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`guyuanzhanghao` varchar(200) NOT NULL COMMENT '雇员账号',
`mima` varchar(200) NOT NULL COMMENT '密码',
`guyuanxingming` varchar(200) NOT NULL COMMENT '雇员姓名',
`nianling` int(11) DEFAULT NULL COMMENT '年龄',
`xingbie` varchar(200) DEFAULT NULL COMMENT '性别',
`lianxidianhua` varchar(200) DEFAULT NULL COMMENT '联系电话',
`shenfenzheng` varchar(200) DEFAULT NULL COMMENT '身份证',
`zhaopian` varchar(200) DEFAULT NULL COMMENT '照片',
PRIMARY KEY (`id`),
UNIQUE KEY `guyuanzhanghao` (`guyuanzhanghao`)
) ENGINE=InnoDB AUTO_INCREMENT=27 DEFAULT CHARSET=utf8 COMMENT='雇员';
-- ----------------------------
-- Table structure for guzhu
-- ----------------------------
DROP TABLE IF EXISTS `guzhu`;
CREATE TABLE `guzhu` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`zhanghao` varchar(200) NOT NULL COMMENT '账号',
`mima` varchar(200) NOT NULL COMMENT '密码',
`xingming` varchar(200) NOT NULL COMMENT '姓名',
`nianling` int(11) DEFAULT NULL COMMENT '年龄',
`xingbie` varchar(200) DEFAULT NULL COMMENT '性别',
`shouji` varchar(200) DEFAULT NULL COMMENT '手机',
`zhaopian` varchar(200) DEFAULT NULL COMMENT '照片',
PRIMARY KEY (`id`),
UNIQUE KEY `zhanghao` (`zhanghao`)
) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=utf8 COMMENT='雇主';
-- ----------------------------
-- Table structure for news
-- ----------------------------
DROP TABLE IF EXISTS `news`;
CREATE TABLE `news` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`title` varchar(200) NOT NULL COMMENT '标题',
`introduction` longtext COMMENT '简介',
`picture` varchar(200) NOT NULL COMMENT '图片',
`content` longtext NOT NULL COMMENT '内容',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=157 DEFAULT CHARSET=utf8 COMMENT='网站公告';
-- ----------------------------
-- Table structure for qiandinghetong
-- ----------------------------
DROP TABLE IF EXISTS `qiandinghetong`;
CREATE TABLE `qiandinghetong` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`xiangmumingcheng` varchar(200) DEFAULT NULL COMMENT '项目名称',
`neirong` longtext COMMENT '内容',
`wenjian` varchar(200) DEFAULT NULL COMMENT '文件',
`qiandingriqi` date DEFAULT NULL COMMENT '签订日期',
`youxiaoqi` varchar(200) DEFAULT NULL COMMENT '有效期',
`zhanghao` varchar(200) DEFAULT NULL COMMENT '账号',
`xingming` varchar(200) DEFAULT NULL COMMENT '姓名',
`shouji` varchar(200) DEFAULT NULL COMMENT '手机',
`guyuanzhanghao` varchar(200) DEFAULT NULL COMMENT '雇员账号',
`guyuanxingming` varchar(200) DEFAULT NULL COMMENT '雇员姓名',
`lianxidianhua` varchar(200) DEFAULT NULL COMMENT '联系电话',
`sfsh` varchar(200) DEFAULT '否' COMMENT '是否审核',
`shhf` longtext COMMENT '审核回复',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=97 DEFAULT CHARSET=utf8 COMMENT='签订合同';
-- ----------------------------
-- Table structure for storeup
-- ----------------------------
DROP TABLE IF EXISTS `storeup`;
CREATE TABLE `storeup` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`userid` bigint(20) NOT NULL COMMENT '用户id',
`refid` bigint(20) DEFAULT NULL COMMENT '收藏id',
`tablename` varchar(200) DEFAULT NULL COMMENT '表名',
`name` varchar(200) NOT NULL COMMENT '收藏名称',
`picture` varchar(200) NOT NULL COMMENT '收藏图片',
`type` varchar(200) DEFAULT '1' COMMENT '类型(1:收藏,21:赞,22:踩)',
`inteltype` varchar(200) DEFAULT NULL COMMENT '推荐类型',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='收藏表';
-- ----------------------------
-- Records of storeup
-- ----------------------------
-- ----------------------------
-- Table structure for token
-- ----------------------------
DROP TABLE IF EXISTS `token`;
CREATE TABLE `token` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`userid` bigint(20) NOT NULL COMMENT '用户id',
`username` varchar(100) NOT NULL COMMENT '用户名',
`tablename` varchar(100) DEFAULT NULL COMMENT '表名',
`role` varchar(100) DEFAULT NULL COMMENT '角色',
`token` varchar(200) NOT NULL COMMENT '密码',
`addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '新增时间',
`expiratedtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '过期时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8 COMMENT='token表';
-- ----------------------------
-- Table structure for users
-- ----------------------------
DROP TABLE IF EXISTS `users`;
CREATE TABLE `users` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`username` varchar(100) NOT NULL COMMENT '用户名',
`password` varchar(100) NOT NULL COMMENT '密码',
`role` varchar(100) DEFAULT '管理员' COMMENT '角色',
`addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '新增时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COMMENT='用户表';
-- ----------------------------
-- Table structure for xiangmuleixing
-- ----------------------------
DROP TABLE IF EXISTS `xiangmuleixing`;
CREATE TABLE `xiangmuleixing` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`xiangmuleixing` varchar(200) DEFAULT NULL COMMENT '项目类型',
PRIMARY KEY (`id`),
UNIQUE KEY `xiangmuleixing` (`xiangmuleixing`)
) ENGINE=InnoDB AUTO_INCREMENT=47 DEFAULT CHARSET=utf8 COMMENT='项目类型';
-- ----------------------------
-- Table structure for ziliaorenzheng
-- ----------------------------
DROP TABLE IF EXISTS `ziliaorenzheng`;
CREATE TABLE `ziliaorenzheng` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`guyuanzhanghao` varchar(200) DEFAULT NULL COMMENT '雇员账号',
`guyuanxingming` varchar(200) DEFAULT NULL COMMENT '雇员姓名',
`lianxidianhua` varchar(200) DEFAULT NULL COMMENT '联系电话',
`shenfenzheng` varchar(200) DEFAULT NULL COMMENT '身份证',
`zigezhengshu` varchar(200) DEFAULT NULL COMMENT '资格证书',
`shenqingziliao` varchar(200) DEFAULT NULL COMMENT '申请资料',
`shenqingyuanyin` longtext COMMENT '申请原因',
`shenqingshijian` datetime DEFAULT NULL COMMENT '申请时间',
`sfsh` varchar(200) DEFAULT '否' COMMENT '是否审核',
`shhf` longtext COMMENT '审核回复',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=37 DEFAULT CHARSET=utf8 COMMENT='资料认证';
论文参考
更多项目推荐:计算机毕业设计项目
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓如果大家有任何疑虑,请在下方位置详细咨询。