ssm+vue基于java的健身房管理系统源码和论文PPT

news2024/11/24 3:04:52

ssm+vue基于java的健身房管理系统源码和论文PPT015

开发工具:idea 

 数据库mysql5.7+(mysql5.7最佳)

 数据库链接工具:navcat,小海豚等

开发技术:java  ssm tomcat8.5

摘  要

现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本健身房管理系统就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据信息,使用这种软件工具可以帮助管理人员提高事务处理效率,达到事半功倍的效果。此健身房管理系统利用当下成熟完善的SSM框架,使用跨平台的可开发大型商业网站的Java语言,以及最受欢迎的RDBMS应用软件之一的Mysql数据库进行程序开发。实现了健身房基础数据的管理,员工的管理,公告信息的发布等功能。健身房管理系统的开发根据操作人员需要设计的界面简洁美观,在功能模块布局上跟同类型网站保持一致,程序在实现基本要求功能时,也为数据信息面临的安全问题提供了一些实用的解决方案。可以说该程序在帮助管理者高效率地处理工作事务的同时,也实现了数据信息的整体化,规范化与自动化。

关键词:健身房管理系统;SSM框架;Mysql;自动化

package com.controller;

import java.text.SimpleDateFormat;
import java.util.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;

import com.annotation.IgnoreAuth;
import com.entity.HuiyuankaleixingEntity;
import com.entity.HuiyuanxinxiEntity;
import com.entity.UserEntity;
import com.service.HuiyuankaleixingService;
import com.service.TokenService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;

import com.entity.HuiyuanxinxiEntity;

import com.service.HuiyuanxinxiService;
import com.utils.PageUtils;
import com.utils.R;

/**
 * 
 * 后端接口
 * @author
 * @email
 * @date 2021-01-26
*/
@RestController
@RequestMapping("/huiyuanxinxi")
public class HuiyuanxinxiController {
    private static final Logger logger = LoggerFactory.getLogger(HuiyuanxinxiController.class);

    @Autowired
    private HuiyuanxinxiService huiyuanxinxiService;

    @Autowired
    private HuiyuankaleixingService huiyuankaleixingService;

    @Autowired
    private TokenService tokenService;

    /**
     * 登录
     */
    @IgnoreAuth
    @PostMapping(value = "/login")
    public R login(String username, String password, String role, HttpServletRequest request) {
        HuiyuanxinxiEntity user = huiyuanxinxiService.selectOne(new EntityWrapper<HuiyuanxinxiEntity>().eq("account", username));
        if(user == null){
            return R.error("您没有此权限或账号或密码不正确");
        }
        if(!user.getRole().equals(role)){
            return R.error("您没有此权限");
        }
        if(user==null || !user.getPassword().equals(password)) {
            return R.error("账号或密码不正确");
        }
        String token = tokenService.generateToken(user.getId(),username, "huiyuanxinxi", user.getRole());
        return R.ok().put("token", token);
    }

    /**
     * 注册
     */
    @IgnoreAuth
    @PostMapping(value = "/register")
    public R register(@RequestBody HuiyuanxinxiEntity user){
//    	ValidatorUtils.validateEntity(user);
        if(huiyuanxinxiService.selectOne(new EntityWrapper<HuiyuanxinxiEntity>().eq("username", user.getHyname()).eq("role",user.getRole())) != null) {
            return R.error("用户已存在");
        }
        huiyuanxinxiService.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){
        HuiyuanxinxiEntity user = huiyuanxinxiService.selectOne(new EntityWrapper<HuiyuanxinxiEntity>().eq("username", username));
        if(user==null) {
            return R.error("账号不存在");
        }
        user.setPassword("123456");
        huiyuanxinxiService.update(user,null);
        return R.ok("密码已重置为:123456");
    }

    /**
     * 获取用户的session用户信息
     */
    @RequestMapping("/session")
    public R getCurrUser(HttpServletRequest request){
        Integer id = (Integer) request.getSession().getAttribute("userId");
        HuiyuanxinxiEntity user = huiyuanxinxiService.selectById(id);
        return R.ok().put("data", user);
    }

    /**
    * 后端列表
    */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params,HttpServletRequest request){
        logger.debug("Controller:"+this.getClass().getName()+",page方法");
        params.put("userId",request.getSession().getAttribute("userId"));
        params.put("role",request.getSession().getAttribute("role"));
        PageUtils page = huiyuanxinxiService.queryPage(params);
        return R.ok().put("data", page);
    }

    /**
    * 后端详情
    */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") Integer id){
        logger.debug("Controller:"+this.getClass().getName()+",info方法");
        HuiyuanxinxiEntity huiyuanxinxi = huiyuanxinxiService.selectById(id);
        if(huiyuanxinxi!=null){
            return R.ok().put("data", huiyuanxinxi);
        }else {
            return R.error(511,"查不到数据");
        }

    }

    /**
    * 后端保存
    */
    @RequestMapping("/save")
    public R save(@RequestBody HuiyuanxinxiEntity huiyuanxinxi, HttpServletRequest request){
        logger.debug("Controller:"+this.getClass().getName()+",save");
        Wrapper<HuiyuanxinxiEntity> queryWrapper = new EntityWrapper<HuiyuanxinxiEntity>()
            .eq("hyname", huiyuanxinxi.getHyname())
            .eq("account", huiyuanxinxi.getAccount());
        logger.info("sql语句:"+queryWrapper.getSqlSegment());
        huiyuanxinxi.setRole("会员");
        HuiyuanxinxiEntity huiyuanxinxiEntity = huiyuanxinxiService.selectOne(queryWrapper);
        if(huiyuanxinxiEntity==null){
            huiyuanxinxi.setId((int) (new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue()));
            huiyuanxinxiService.insert(huiyuanxinxi);
            return R.ok();
        }else {
            return R.error(511,"输入信息重复请重新输入");
        }
    }

    /**
    * 修改
    */
    @RequestMapping("/update")
    public R update(@RequestBody HuiyuanxinxiEntity huiyuanxinxi, HttpServletRequest request){
        logger.debug("Controller:"+this.getClass().getName()+",update");
        //根据字段查询是否有相同数据
        Wrapper<HuiyuanxinxiEntity> queryWrapper = new EntityWrapper<HuiyuanxinxiEntity>()
            .notIn("id",huiyuanxinxi.getId())
            .eq("hyname", huiyuanxinxi.getHyname())
            .eq("account", huiyuanxinxi.getAccount());
        logger.info("sql语句:"+queryWrapper.getSqlSegment());
        HuiyuanxinxiEntity huiyuanxinxiEntity = huiyuanxinxiService.selectOne(queryWrapper);
        //根据id获取数据库信息
        HuiyuanxinxiEntity huiyuanxinxiEntity1 = huiyuanxinxiService.selectById(huiyuanxinxi.getId());
        //判断用户选的值是否和原来的一样
        if(huiyuanxinxiEntity1.getHykTypes() != huiyuanxinxi.getHykTypes()){
            //根据用户选的值去查询
            HuiyuankaleixingEntity huiyuankaleixingEntity = huiyuankaleixingService.selectById(huiyuanxinxi.getHykTypes());
            if(huiyuanxinxi.getBalance() <= 0){
                return R.error(511,"金额不足,请充值");
            }
            //将查询出来的会员卡的金额减去用户的余额
            Double balance = huiyuanxinxi.getBalance()-huiyuankaleixingEntity.getCost();
            //判断减完后数字是否大于0
            if(balance >= 0){
                //将减完的数字进行覆盖
                huiyuanxinxi.setBalance(balance);
            }else{
                //如果余额不足返回前端
                return R.error(511,"金额不足不能修改会员卡类型,请充值");
            }
        }
        if(huiyuanxinxiEntity==null){
            //进行修改
            huiyuanxinxiService.updateById(huiyuanxinxi);//根据id更新
            return R.ok();
        }else {
            return R.error(511,"输入信息重复请重新输入");
        }
    }


    /**
    * 删除
    */
    @RequestMapping("/delete")
    public R delete(@RequestBody Long[] ids){
        logger.debug("Controller:"+this.getClass().getName()+",delete");
        huiyuanxinxiService.deleteBatchIds(Arrays.asList(ids));
        return R.ok();
    }
}

 

package com.controller;

import java.text.SimpleDateFormat;
import java.util.*;
import javax.servlet.http.HttpServletRequest;

import com.annotation.IgnoreAuth;
import com.entity.YonghuxinxiEntity;
import com.service.TokenService;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;

import com.entity.YonghuxinxiEntity;

import com.service.YonghuxinxiService;
import com.utils.PageUtils;
import com.utils.R;

/**
 * 员工信息
 * 后端接口
 * @author
 * @email
 * @date 2024-02-02
*/
@RestController
@Controller
@RequestMapping("/yonghuxinxi")
public class YonghuxinxiController {
    private static final Logger logger = LoggerFactory.getLogger(YonghuxinxiController.class);

    @Autowired
    private YonghuxinxiService yonghuxinxiService;

    @Autowired
    private TokenService tokenService;


    /**
     * 登录
     */
    @IgnoreAuth
    @PostMapping(value = "/login")
    public R login(String username, String password, String role, HttpServletRequest request) {
        YonghuxinxiEntity user = yonghuxinxiService.selectOne(new EntityWrapper<YonghuxinxiEntity>().eq("account", username));
        if(user != null){
            if(!user.getRole().equals(role)){
                return R.error("权限不正常");
            }
            if(user==null || !user.getPassword().equals(password)) {
                return R.error("账号或密码不正确");
            }
            String token = tokenService.generateToken(user.getId(),user.getName(), "users", user.getRole());
            return R.ok().put("token", token);
        }else{
            return R.error("账号或密码或权限不对");
        }
    }

    /**
     * 注册
     */
    @IgnoreAuth
    @PostMapping(value = "/register")
    public R register(@RequestBody YonghuxinxiEntity user){
//    	ValidatorUtils.validateEntity(user);
        if(yonghuxinxiService.selectOne(new EntityWrapper<YonghuxinxiEntity>().eq("username", user.getAccount())) !=null) {
            return R.error("用户已存在");
        }
        yonghuxinxiService.insert(user);
        return R.ok();
    }

    /**
     * 退出
     */
    @GetMapping(value = "logout")
    public R logout(HttpServletRequest request) {
        request.getSession().invalidate();
        return R.ok("退出成功");
    }
    
    /**
     * 获取用户的session用户信息
     */
    @RequestMapping("/session")
    public R getCurrUser(HttpServletRequest request){
        Integer id = (Integer)request.getSession().getAttribute("userId");
        YonghuxinxiEntity user = yonghuxinxiService.selectById(id);
        return R.ok().put("data", user);
    }

    /**
     * 密码重置
     */
    @IgnoreAuth
    @RequestMapping(value = "/resetPass")
    public R resetPass(String username, HttpServletRequest request){
        YonghuxinxiEntity user = yonghuxinxiService.selectOne(new EntityWrapper<YonghuxinxiEntity>().eq("username", username));
        if(user==null) {
            return R.error("账号不存在");
        }
        user.setPassword("123456");
        yonghuxinxiService.update(user,null);
        return R.ok("密码已重置为:123456");
    }

    /**
    * 后端列表
    */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params, HttpServletRequest request){
        logger.debug("Controller:"+this.getClass().getName()+",page方法");
        Object role = request.getSession().getAttribute("role");
        PageUtils page = null;
        if(role.equals("员工")){
            params.put("yh",request.getSession().getAttribute("userId"));
            page = yonghuxinxiService.queryPage(params);
        }else{
            page = yonghuxinxiService.queryPage(params);
        }
        return R.ok().put("data", page);
    }
    /**
    * 后端详情
    */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") Long id){
        logger.debug("Controller:"+this.getClass().getName()+",info方法");
        YonghuxinxiEntity yonghuxinxi = yonghuxinxiService.selectById(id);
        if(yonghuxinxi!=null){
            return R.ok().put("data", yonghuxinxi);
        }else {
            return R.error(511,"查不到数据");
        }

    }

    /**
    * 后端保存
    */
    @RequestMapping("/save")
    public R save(@RequestBody YonghuxinxiEntity yonghuxinxi, HttpServletRequest request){
        logger.debug("Controller:"+this.getClass().getName()+",save");
        Wrapper<YonghuxinxiEntity> queryWrapper = new EntityWrapper<YonghuxinxiEntity>()
            .eq("name", yonghuxinxi.getName())
            .in("account",yonghuxinxi.getAccount())
            ;
        logger.info("sql语句:"+queryWrapper.getSqlSegment());
        YonghuxinxiEntity yonghuxinxiEntity = yonghuxinxiService.selectOne(queryWrapper);
        if("".equals(yonghuxinxi.getImgPhoto()) || "null".equals(yonghuxinxi.getImgPhoto())){
            yonghuxinxi.setImgPhoto(null);
        }
        yonghuxinxi.setRole("员工");
        if(yonghuxinxiEntity==null){
            yonghuxinxiService.insert(yonghuxinxi);
            return R.ok();
        }else {
            return R.error(511,"表中有相同数据");
        }
    }

    /**
    * 修改
    */
    @RequestMapping("/update")
    public R update(@RequestBody YonghuxinxiEntity yonghuxinxi, HttpServletRequest request){
        logger.debug("Controller:"+this.getClass().getName()+",update");
        //根据字段查询是否有相同数据
        Wrapper<YonghuxinxiEntity> queryWrapper = new EntityWrapper<YonghuxinxiEntity>()
            .notIn("id",yonghuxinxi.getId())
            .in("name",yonghuxinxi.getName())
            .in("account",yonghuxinxi.getAccount())
            ;
        logger.info("sql语句:"+queryWrapper.getSqlSegment());
        YonghuxinxiEntity yonghuxinxiEntity = yonghuxinxiService.selectOne(queryWrapper);
        if("".equals(yonghuxinxi.getImgPhoto()) || "null".equals(yonghuxinxi.getImgPhoto())){
                yonghuxinxi.setImgPhoto(null);
        }
        if(yonghuxinxiEntity==null){
            yonghuxinxiService.updateById(yonghuxinxi);//根据id更新
            return R.ok();
        }else {
            return R.error(511,"表中有相同数据");
        }
    }


    /**
    * 删除
    */
    @RequestMapping("/delete")
    public R delete(@RequestBody Long[] ids){
        logger.debug("Controller:"+this.getClass().getName()+",delete");
        yonghuxinxiService.deleteBatchIds(Arrays.asList(ids));
        return R.ok();
    }
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/875093.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

(一)Unity开发Vision Pro介绍

1.介绍 1.1 介绍 VisionOS 可实现与现实世界无缝集成并与其他虚拟内容共存的 3D 多任务体验。这为个人生产力、生活方式和娱乐应用打开了一个充满新可能性的世界&#xff0c;并为开发人员打开了一个全新的市场。然而&#xff0c;它也带来了围绕多任务处理和与身体互动的新挑战…

运维监控学习笔记6

应用监控: 安装nginx的过程&#xff1a; yum install -y gcc gcc-c pcre-devel openssl-develcd /usr/local/src wget http://nginx.org/download/nginx-1.24.0.tar.gztar -zxvf nginx-1.22.1.tar.gzuseradd -s /sbin/nologin -M www./configure --prefix/usr/local/nginx-1.…

HCIP-OpenStack发放云主机

1、云中的概念 在云平台注册了一个账号&#xff0c;这个账号对于云平台来说&#xff0c;就是一个租户或者一个项目。 租户/项目&#xff08;tenant/project&#xff09;&#xff0c;是一个意思。主机聚合就是主机组的意思。 region&#xff08;区域&#xff09;&#xff0c;就…

发过来的pdf文件怎么编辑?了解一下这几种编辑方法

发过来的pdf文件怎么编辑&#xff1f;PDF适用于各种用途。但是&#xff0c;许多人可能需要对PDF文件进行编辑&#xff0c;以满足特定的需求和要求。例如&#xff0c;他们可能需要添加或删除某些元素&#xff0c;更改文本或图像&#xff0c;或者将PDF文件转换为其他格式。在这种…

实例037 没有标题栏可义改变大小的窗口

实例说明 隐藏Windows窗口的标题栏之后&#xff0c;窗口只剩下一个客户区域&#xff0c;有点像Panel控件在窗口中的样子&#xff0c;而这样的窗口通常是不能够改变大小的。因为屏蔽其标题栏之后&#xff0c;窗口默认将边框也去除了&#xff0c;本例将用特殊的方法建立一个没有…

Linux代理的设置与使用方法

在Linux平台上&#xff0c; 代理的设置使用方法更是让人头疼。本文将为你分享Linux上 代理的设置和使用方法&#xff0c;并提供一些实用的解决方案&#xff0c;方便实际操作。 我们先来了解一下常用的 代理软件 在Linux上&#xff0c;有许多 代理软件可供选择。以下是几种常用的…

【Elsevier旗下】1区SCI,5天见刊!稳定检索36年,大数据、人工智能、机器学习、语音、语言、会话、情绪识别等领域

近日国自然预计将在下周8月20日之前公布&#xff0c;想必申请过国自然基金作者都知道&#xff0c;需要有研究基础&#xff0c;说白了就是需要有文章支持。那么稿子写好了&#xff0c;选择一本靠谱优质期刊也是一门学问。 本期小编推荐2本Elsevier 旗下审稿快刊&#xff0c;各项…

Python实现SSA智能麻雀搜索算法优化循环神经网络分类模型(LSTM分类算法)项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档视频讲解&#xff09;&#xff0c;如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 麻雀搜索算法(Sparrow Search Algorithm, SSA)是一种新型的群智能优化算法&#xff0c;在2020年提出&a…

电商财务新时代:轻松自动对账,财务效率倍增

电商领域频繁的多平台财务对账常常令企业头痛不已。然而&#xff0c;随着轻易云数据集成平台的崭新解决方案&#xff0c;财务对账的痛点迎刃而解。本文通过引人入胜的实例&#xff0c;深入探讨电商财务对账的现状&#xff0c;突出轻易云数据集成平台在自动对账中的强大作用&…

微信小程序有哪几种变现途径?

纵观现在市面上的微信小程序&#xff0c;目前变现的途径主要有&#xff1a;广告变现、电商变现、游戏付费、服务付费等。 1.广告变现 广告变现是小游戏、工具类、资讯类小程序变现的主要方式。微信官方为游戏开发者提供的扶植政策&#xff0c;对于工具类、资讯类小程序&#…

自然语言处理实战项目15-四种文本纠错模型的对比与实践,解决大家写作问题

大家好,我是微学AI,进入给大家介绍一下自然语言处理实战项目15-四种文本纠错模型的对比与实践,解决大家写作问题。文本纠错模型是一个旨在解决大家写作问题的实践项目。它基于先进的自然语言处理技术,特别是文本纠错领域的模型和算法,能够帮助用户快速、准确地纠正文本中的…

最新 python 爱心代码?

python程序代码&#xff1a;heart.py from math import cos, pi import numpy as np import cv2 import os, globclass HeartSignal:def __init__(self, curve"heart", title"Love U", frame_num20, seed_points_num2000, seed_numNone, highlight_rate0.…

python——案例20:计算数字组合方式

案例20&#xff1a;计算数字组合方式 假设三个数字1、2、3任意排列&#xff0c;有几种组合方式&#xff0c;分别是什么&#xff1f; sum0 for a in range(1,4):for b in range(1,4):for c in range(1,4):if a!b and b!c and a!c:print(a,b,c)sum1print("答案为&#xff1a…

中小企业体育代言:探索费用策略与实际操作

随着体育市场的不断扩大和企业品牌的不断提升&#xff0c;中小型企业正逐渐将目光投向了体育明星代言&#xff0c;希望通过这一策略来提升品牌知名度、美誉度&#xff0c;进而吸引目标消费者的注意力并提升销售量。然而&#xff0c;中小型企业请体育明星代言的费用究竟是多少呢…

Python爬虫的应用场景与技术难点:如何提高数据抓取的效率与准确性

作为专业爬虫程序员&#xff0c;我们在数据抓取过程中常常面临效率低下和准确性不高的问题。但不用担心&#xff01;本文将与大家分享Python爬虫的应用场景与技术难点&#xff0c;并提供一些实际操作价值的解决方案。让我们一起来探索如何提高数据抓取的效率与准确性吧&#xf…

pytorch单机多卡后台运行

nohup sh ./train_chat.sh > train_chat20230814.log 2>1&参考资料 Pytorch单机多卡后台运行的解决办法

【产品设计】移动端表单设计

本文主要是根据项目的表单填写体验差被客户撤下线重新整改&#xff0c;而对此将表单进行了新的用户体验设计的一些构思。 一、现状 传统的PC端空间范围大&#xff0c;能够将表单的所有信息连同温馨提示语等平铺展示出来&#xff0c;但是一下子用户看到这么多内容会给用户带来压…

【Linux】创建普通用户以及Linux问题解决

创建普通用户 ❓可以看到我们现在是一个root用户&#xff0c;并不是一个普通用户&#xff0c;我们要如何创建普通用户呢&#xff1f; adduser 你的用户名passwd 你的用户名&#x1f525;注意这里passwd设置密码的时候&#xff0c;你输入密码电脑不会显示 删除普通用户 userd…

JpaUtils 工具类

JpaUtils 工具类 JpaUtils 封装了对 jpql &#xff0c; sql &#xff0c;存储过程等常用的操作方法&#xff0c;并结合前端列表的数据格式&#xff0c; 可以实现少量代码即完成一次查询&#xff0c;并且在业务发生修改时&#xff0c;相比 IDEV7 改动会更少。 JpaUtils …

Python实现竞争性自适应重加权采样法(CARS)进行特征变量选择并构建LightGBM回归模型(LGBMRegressor算法)项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档视频讲解&#xff09;&#xff0c;如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 竞争性自适应重加权采样法&#xff08;competitive adapative reweighted sampling&#xff0c; CARS&…