基于springboot的健身馆俱乐部课程教练预约网站java+vue-论文、毕设源码、开题报告

本文详细介绍了力炫健身馆网站的软件功能模块设计,包括数据库概念模型、数据表设计以及前后台系统功能模块实现,涉及用户管理、管理员权限等功能,并展示了部分关键表的字段和结构。
摘要由CSDN通过智能技术生成

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

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

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

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

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

  4 软件功能模块设计

“力炫”健身馆网站采用了结构化开发的方法。这种开发方法的优点是控制性比较强,开发过程中采用了结构化和模块化的设计思想,自顶向下,从总体到部分,合理划分系统的结构和模块[11]。结构化开发时使用模块式开发,各模块之间互不影响,方便系统的开发与管理。 网站总体功能如下图所示:

图 4-1 “力炫”健身馆网站总体功能模块图

4.1 数据库设计与实现

在每一个系统中数据库有着非常重要的作用,数据库的设计得好将会增加系统的效率以及系统各逻辑功能的实现。所以数据库的设计我们要从系统的实际需要出发,才能使其更为完美的符合系统功能的实现。

4.1.1 概念模型设计

概念模型是对现实中的问题出现的事物的进行描述,ER图是由实体及其关系构成的图,通过E-R图可以清楚地描述系统涉及到的实体之间的相互关系。

4.2 系统数据表设计

根据E-R得出数据库包涵了以下几张数据表来实现了对数据库的存储、

调用。

4-1健身教练

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

gonghao

varchar

200

工号

mima

varchar

200

密码

jiaolianxingming

varchar

200

姓名

xingbie

varchar

200

性别

touxiang

longtext

4294967295

头像

nianling

varchar

200

年龄

dengji

varchar

200

等级

dianhua

varchar

200

电话

jianjie

longtext

4294967295

简介

money

float

余额

0

4-2收藏表

字段名称

类型

长度

字段说明

主键

默认值

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-3健身商品评论表

字段名称

类型

长度

字段说明

主键

默认值

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-4商品类型

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

shangpinleixing

varchar

200

商品类型

4-5健身器材评论表

字段名称

类型

长度

字段说明

主键

默认值

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-6器材租借

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

qicaimingcheng

varchar

200

器材名称

qicaileixing

varchar

200

器材类型

zujieshuliang

int

租借数量

zulinshijian

datetime

租赁时间

zulinshuoming

varchar

200

租赁说明

zujieren

varchar

200

租借人

shouji

varchar

200

手机

zhuangtai

varchar

200

状态

4-7健身课程评论表

字段名称

类型

长度

字段说明

主键

默认值

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-8评分信息

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

gonghao

varchar

200

工号

jiaolianxingming

varchar

200

教练姓名

gerenpingjia

longtext

4294967295

个人评价

pingfen

int

评分

pingfenshijian

datetime

评分时间

yonghuming

varchar

200

用户名

crossuserid

bigint

跨表用户id

crossrefid

bigint

跨表主键id

4-9健身教练评论表

字段名称

类型

长度

字段说明

主键

默认值

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-10订单

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

orderid

varchar

200

订单编号

tablename

varchar

200

商品表名

jianshenshangpin

userid

bigint

用户id

goodid

bigint

商品id

goodname

varchar

200

商品名称

picture

longtext

4294967295

商品图片

buynumber

int

购买数量

price

float

价格

0

discountprice

float

折扣价格

0

total

float

总价格

0

discounttotal

float

折扣总价格

0

type

int

支付类型

1

status

varchar

200

状态

address

varchar

200

地址

tel

varchar

200

电话

consignee

varchar

200

收货人

remark

varchar

200

备注

logistics

longtext

4294967295

物流

4-11在线留言

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

gonghao

varchar

200

工号

jiaolianxingming

varchar

200

教练姓名

liuyanneirong

longtext

4294967295

留言内容

liuyanshijian

datetime

留言时间

yonghuming

varchar

200

用户名

xingming

varchar

200

姓名

shhf

longtext

4294967295

回复内容

4-12调课申请

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

kechengmingcheng

varchar

200

课程名称

kechengleixing

varchar

200

课程类型

shenqingshuoming

longtext

4294967295

申请说明

shenqingshijian

datetime

申请时间

gonghao

varchar

200

工号

jiaolianxingming

varchar

200

教练姓名

sfsh

varchar

200

是否审核

待审核

shhf

longtext

4294967295

审核回复

4-13健身资讯

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

title

varchar

200

标题

introduction

longtext

4294967295

简介

picture

longtext

4294967295

图片

content

longtext

4294967295

内容

4-14预约取消

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

gonghao

varchar

200

工号

jiaolianxingming

varchar

200

教练姓名

changdimingcheng

varchar

200

场地名称

quxiaoshuoming

varchar

200

取消说明

quxiaoshijian

datetime

取消时间

yonghuming

varchar

200

用户名

xingming

varchar

200

姓名

shouji

varchar

200

手机

crossuserid

bigint

跨表用户id

crossrefid

bigint

跨表主键id

4-15配置文件

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

name

varchar

100

配置参数名称

value

varchar

100

配置参数值

4-16教练预约

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

gonghao

varchar

200

工号

jiaolianxingming

varchar

200

教练姓名

changdimingcheng

varchar

200

场地名称

yuyueshuoming

longtext

4294967295

预约说明

yuyueshijian

datetime

预约时间

yonghuming

varchar

200

用户名

xingming

varchar

200

姓名

shouji

varchar

200

手机

4-17用户

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

yonghuming

varchar

200

用户名

mima

varchar

200

密码

xingming

varchar

200

姓名

touxiang

longtext

4294967295

头像

xingbie

varchar

200

性别

nianling

varchar

200

年龄

youxiang

varchar

200

邮箱

shouji

varchar

200

手机

money

float

余额

0

vip

varchar

200

是否会员

4-18购物车表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

tablename

varchar

200

商品表名

jianshenshangpin

userid

bigint

用户id

goodid

bigint

商品id

goodname

varchar

200

商品名称

picture

longtext

4294967295

图片

buynumber

int

购买数量

price

float

单价

discountprice

float

会员价

4-19健身商品

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

shangpinmingcheng

varchar

200

商品名称

shangpinleixing

varchar

200

商品类型

tupian

longtext

4294967295

图片

shangpinjieshao

longtext

4294967295

商品介绍

faburiqi

datetime

发布日期

onelimittimes

int

单限

alllimittimes

int

库存

price

float

价格

vipprice

float

会员价

-1

4-20选课信息

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

dingdanbianhao

varchar

200

订单编号

kechengmingcheng

varchar

200

课程名称

kechengleixing

varchar

200

课程类型

gonghao

varchar

200

工号

jiaolianxingming

varchar

200

教练姓名

jiage

int

价格

xiadanshijian

date

下单时间

yonghuming

varchar

200

用户名

xingming

varchar

200

姓名

shouji

varchar

200

手机

crossuserid

bigint

跨表用户id

crossrefid

bigint

跨表主键id

ispay

varchar

200

是否支付

未支付

4-21地址

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

userid

bigint

用户id

address

varchar

200

地址

name

varchar

200

收货人

phone

varchar

200

电话

isdefault

varchar

200

是否默认地址[是/否]

4-22用户表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

username

varchar

100

用户名

password

varchar

100

密码

role

varchar

100

角色

管理员

addtime

timestamp

新增时间

CURRENT_TIMESTAMP

4-23健身器材

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

qicaibianhao

varchar

200

器材编号

qicaimingcheng

varchar

200

器材名称

qicaileixing

varchar

200

器材类型

tupian

longtext

4294967295

图片

qicaijieshao

longtext

4294967295

器材介绍

onelimittimes

int

单限

alllimittimes

int

库存

price

float

价格

vipprice

float

会员价

-1

4-24token表

字段名称

类型

长度

字段说明

主键

默认值

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-25健身课程

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

kechengmingcheng

varchar

200

课程名称

kechengleixing

varchar

200

课程类型

tupian

longtext

4294967295

图片

shangkeshijian

date

上课时间

jiage

int

价格

gonghao

varchar

200

工号

jiaolianxingming

varchar

200

教练姓名

fabushijian

datetime

发布时间

kechengjieshao

longtext

4294967295

课程介绍

5 系统详细设计

5.1前台系统功能模块实现

游客打开系统的网址后,首先看到的就是首页界面在这里,游客能够看到“力炫”健身馆网站导航条显示首页、健身教练、健身器材、健身课程、健身商品、健身资讯、后台管理、购物车、个人中心等。系统首页界面如5-1所示

5-1系统首页界面

用户进入前台系统进行相关操作前必须进行注册登录用户注册、用户登录界面如5-2所示

5-2 用户注册、用户登录界面

用户点击健身教练;在健身教练页面搜索栏输入工号、姓名、等级,进行查询然后可以查看工号、姓名、性别、头像、年龄、等级、电话信息,可以进行预约、评分、留言或者收藏评论等操作;如图5-3所示。

5-3健身教练界面图

5.2管理员功能模块实现

管理员登录,管理员通过登录页面输入用户名、密码角色,并点击登录操作,如图5-6所示。

图5-6管理员登录界面图

管理员登录系统后,可以对首页、个人中心、用户管理、健身教练管理、在线留言管理、评分信息管理、健身器材管理、器材租借管理、健身课程管理、选课信息管理、教练预约管理、预约取消管理 调课申请管理、商品类型管理、健身商品管理、系统管理、订单管理等功能进行相应操作,如图5-7所示。

图5-7管理员功能界图面

代码实现

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实战项目持续更新中~

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

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

👇下方有我的微信名片👇

  • 22
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值