基于SSM的大学生家教预约平台-老师满意

本文详细描述了一个大学生家教平台的系统设计,包括管理员和用户、家教的结构,数据库设计原则和E-R图的运用,以及Java后端的登录、注册、用户管理等关键模块的实现。涉及数据库表设计、角色权限和功能操作流程。
摘要由CSDN通过智能技术生成

  博主介绍:👉全网个人号和企业号粉丝40W+,每年辅导几千名大学生较好的完成毕业设计,专注计算机软件领域的项目研发,不断的进行新技术的项目实战👈
⭐️热门专栏推荐订阅⭐️ 订阅收藏起来,防止下次找不到

🔎千套JAVA项目实战持续更新中~

🔎百套小程序APP项目实战持续更新中~

🔎百套Python实战项目持续更新中~
有需求的各位可以先收藏起来,还有大家在毕设选题,开题报告有疑惑的都可以找我,给你参考意见,需要开题模板的可以私信留言告诉我

❤️文末获取源码联系❤️        ⚠️一定要先收藏⚠️

 

4 系统设计

4.1系统结构图

“众优”大学生家教平台分为三个部分,即管理员和用户、家教。该系统是根据用户的实际需求开发的,贴近生活。从管理员处获得的指定账号和密码可用于进入系统和使用相关的系统应用程序。管理员拥有最大的权限,其次是家教,最后是用户。管理员一般负责整个系统的运行维护和总体协调,系统结构如图4-1所示。

图4-1系统结构图

4.2数据库设计

所有的网站设计但凡有数据都离不开数据库,数据库是所有项目想实现如数据获取,数据传输等功能的基石。只有合理化的数据库设计才能满足商业化的要求,数据库的主键外键连接方式特别的重要,尽量避免多对多的复杂性,字段名命合理规范,且通俗易懂等,字段应根据业务进行设定,不允许操作多字段而对系统产生占用多余的内存。

4.2.1数据库设计原则

设计原则自然就是要符合范式的要求,多表之间的关系要合理,理应符合系统的实际情况。

4.2.2数据库的概念设计

概念设计是将整体分为在地面上表达出来的单个个体。E-R图形象的连接了实体模型和概念模型。因此,E-R图需要根据数据库表和表字段进行合理设计,表达的概念知识点用图形描述,可以直观地让相应人员清楚,并分解整个E-R图。我们通常表达不清晰没有概念的东西。但是通过E-R之间的联系,E-R模型法是对这种模糊概念的事务最简单、最常用的设计方法。 

4.2.3数据库表设计

数据库表的设计通常是根据业务逻辑设置的。数据库模型在数据库中设计,并根据模型创建数据库表。

表4-1:家教评论表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

refid

bigint

关联表id

userid

bigint

用户id

avatarurl

longtext

4294967295

头像

nickname

varchar

200

用户名

content

longtext

4294967295

评论内容

reply

longtext

4294967295

回复内容

表4-2:用户表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

username

varchar

100

用户名

password

varchar

100

密码

role

varchar

100

角色

管理员

addtime

timestamp

新增时间

CURRENT_TIMESTAMP

表4-3:配置文件

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

name

varchar

100

配置参数名称

value

varchar

100

配置参数值

表4-4:token表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

userid

bigint

用户id

username

varchar

100

用户名

tablename

varchar

100

表名

role

varchar

100

角色

token

varchar

200

密码

addtime

timestamp

新增时间

CURRENT_TIMESTAMP

expiratedtime

timestamp

过期时间

CURRENT_TIMESTAMP

表4-5:家教

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

jiajiaozhanghao

varchar

200

家教账号

mima

varchar

200

密码

jiajiaoxingming

varchar

200

家教姓名

xingbie

varchar

200

性别

nianling

int

年龄

xueli

varchar

200

学历

biyeyuanxiao

varchar

200

毕业院校

shanzhangkemu

varchar

200

擅长科目

lianxidianhua

varchar

200

联系电话

fuwuquyu

varchar

200

服务区域

jiajiaojingyan

longtext

4294967295

家教经验

touxiang

longtext

4294967295

头像

thumbsupnum

int

0

crazilynum

int

0

clicktime

datetime

最近点击时间

clicknum

int

点击次数

0

表4-6:用户

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

shoujihao

varchar

200

手机号

mima

varchar

200

密码

xingming

varchar

200

姓名

xingbie

varchar

200

性别

jiatingzhuzhi

varchar

200

家庭住址

touxiang

longtext

4294967295

头像

表4-7:支付押金

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

shoujihao

varchar

200

手机号

xingming

varchar

200

姓名

zhifuyajin

int

支付押金

zhifushijian

datetime

支付时间

jiajiaozhanghao

varchar

200

家教账号

jiajiaoxingming

varchar

200

家教姓名

ispay

varchar

200

是否支付

未支付

表4-8:收藏表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

userid

bigint

用户id

refid

bigint

商品id

tablename

varchar

200

表名

name

varchar

200

名称

picture

longtext

4294967295

图片

type

varchar

200

类型(1:收藏,21:赞,22:踩,31:竞拍参与,41:关注)

1

inteltype

varchar

200

推荐类型

remark

varchar

200

备注

表4-9:擅长科目

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

shanzhangkemu

varchar

200

擅长科目

表4-10:公告信息

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

title

varchar

200

标题

introduction

longtext

4294967295

简介

picture

longtext

4294967295

图片

content

longtext

4294967295

内容

表4-11:留言板

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

userid

bigint

留言人id

username

varchar

200

用户名

avatarurl

longtext

4294967295

头像

content

longtext

4294967295

留言内容

cpicture

longtext

4294967295

留言图片

reply

longtext

4294967295

回复内容

rpicture

longtext

4294967295

回复图片

表4-12:家教预约

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

jiajiaozhanghao

varchar

200

家教账号

jiajiaoxingming

varchar

200

家教姓名

yuyueshijian

datetime

预约时间

yuyuetianshu

varchar

200

预约天数

yuyueshuoming

varchar

200

预约说明

shoujihao

varchar

200

手机号

xingming

varchar

200

姓名

sfsh

varchar

200

是否审核

待审核

shhf

longtext

4294967295

审核回复

表4-13:家教需求

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

xuqiubiaoti

varchar

200

需求标题

xuqiukemu

varchar

200

需求科目

xuqiudizhi

varchar

200

需求地址

xuqiujingyan

varchar

200

需求经验

xuqiumiaoshu

longtext

4294967295

需求描述

xuqiushijian

datetime

需求时间

xuqiutupian

longtext

4294967295

需求图片

shoujihao

varchar

200

手机号

xingming

varchar

200

姓名

表4-14:家教申请

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

xuqiubiaoti

varchar

200

需求标题

xuqiukemu

varchar

200

需求科目

shenqingshijian

datetime

申请时间

shenqingshuoming

varchar

200

申请说明

shenqingcailiao

longtext

4294967295

申请材料

shoujihao

varchar

200

手机号

xingming

varchar

200

姓名

jiajiaozhanghao

varchar

200

家教账号

jiajiaoxingming

varchar

200

家教姓名

sfsh

varchar

200

是否审核

待审核

shhf

longtext

4294967295

审核回复

表4-15:支付尾款

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

shoujihao

varchar

200

手机号

xingming

varchar

200

姓名

yingfufeiyong

int

应付费用

zhifuyajin

int

已付押金

yingfuweikuan

float

应付尾款

jiajiaozhanghao

varchar

200

家教账号

jiajiaoxingming

varchar

200

家教姓名

ispay

varchar

200

是否支付

未支付

5系统的实现

5.1管理员模块实现

管理员登录,在登录页面选择需要登录的角色,在正确输入用户名和密码后,点击登录操作;如图5-1所示。                               

图5-1 管理员登录界面

管理员进入主页面,主要功能包括对首页、个人中心、用户管理、家教管理、家教预约管理、家教需求管理、家教申请管理、支付押金管理、支付尾款管理、擅长科目管理、留言板管理、系统管理等进行操作。管理员主页面如图5-2所示:

图5-2管理员主界面

管理员点击用户管理,在用户管理页面输入手机号、姓名、性别、家庭住址、头像等信息,可以查询,添加或删除用户信息等操作。如图5-3所示:

图5-3用户管理界面

管理员点击家教管理,在家教管理页面输入家教账号、家教姓名、性别、年龄、学历、毕业院校、擅长科目、联系电话、服务区域、家教经验、头像等信息,可以查询,添加或删除家教信息等操作。如图5-4所示:

图5-4家教管理界面

5.4前台系统模块实现

当游客打开系统的网址后,首先看到的就是首页界面。在这里,游客能够看到“众优”大学生家教平台的导航条显示首页、家教、公告信息、留言板、个人中心、后台管理等。系统首页界面如图5-17所示:

图5-17系统首页界面

在系统首页点击注册/登录按钮,在注册、登录界面填写信息完成后,单击注册或者登录操作,如图5-18  5-19所示:

图5-18用户注册界面

图5-19 用户登录界面

用户点击家教,在家教页面的搜索栏输入家教姓名、擅长科目服务区域、,进行查询,还可以查看家教账号、家教姓名、性别、年龄、学历、毕业院校、擅长科目、联系电话、服务区域、家教经验、头像等信息,如有需要可以家教预约或者收藏、评论等操作,如图5-20所示。

图5-20家教界面图

JAVA后端代码实现

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.MD5Util;
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();
    }
}

源码获取

大家点赞、收藏、关注 ,让更多需要的同学看到

不同开发语言专栏推荐订阅

 🔎千套JAVA项目实战持续更新中~

🔎百套小程序APP项目实战持续更新中~

🔎百套Python实战项目持续更新中~

👇下方有我的微信名片👇

  • 40
    点赞
  • 47
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
毕业设计论文 引 言 1 第1章 绪 论 2 1.1 背景 2 1.2 系统开发的意义 2 第2章 系统开发环境简介 3 2.1 环境配置 3 2.2 使用工具介绍 3 2.2.1 使用工具简述 3 2.2.2 B/S结构介绍 3 2.2.3 Struts+Spring+Hibernate框架介绍 3 2.2.4 JSP简介 6 2.2.5 MySQL数据库介绍 6 2.2.6 MyEclipse 集成开发环境介绍 6 第3章 系统需求分析 8 3.1 任务概述 8 3.1.1需求概述 8 3.1.2 系统目标 8 3.1.3 运行环境 8 3.2业务需求 9 3.2.1 系统用例图 9 3.2.2 系统角色 9 3.2.3 用例分析 9 3.3系统顶层架构 12 3.4 领域概念模型 12 3.5性能需求 13 3.6 运行需求 14 3.6.1 界面需求 14 3.6.2 硬件接口需求 14 3.6.3 软件接口需求 14 第4章 家教信息管理系统设计 15 4.1系统设计概述 15 4.2 系统体系结构设计 15 4.2.1系统的总体结构设计遵循原则 15 4.2.2体系结构 15 4.3 系统用例设计 16 4.3.1前端用户子系统 16 4.3.2后端管理员子系统 16 4.3.3 系统用例详细设计 16 4.4 数据库结构设计 19 4.4.1数据E-R图设计 19 4.4.2数据库表的设计 19 4.4.3 数据库的连接 22 4.5 界面设计 22 4.5.1客户端界面设计 22 4.5.2服务端界面设计 26 4.5.3客户端界面目录结构 27 4.6 系统实体Bean的抽象 28 第5章 编码与测试 29 5.1 编码概述 29 5.2 编码规范 29 5.2.1 命名规范 29 5.2.2 注释规范 30 5.3 软件编码 31 5.4 测试概述 34 5.5 软件测试 35 5.5.1测试要点 35 5.5.2测试内容 35 5.5.3单元测试 35 5.5.4测试用例设计 36 结论与展望 39 致 谢 40 参 考 文 献 41 附 录 42 附录A 外文文献及其译文 42 附录B:主要参考文献的题录及摘要 46
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值