HTML-система управления информацией в тренажерном зале дипломного проекта

Предыстория проекта

В условиях быстрого развития науки и техники все сферы жизни стремятся интегрироваться с современными передовыми технологиями и улучшать свои собственные преимущества с помощью научных и технологических средств; конечно, нельзя исключать систему управления информацией в тренажерном зале.Поскольку сетевые технологии продолжают развиваться. , это привело к развитию спортивных залов.Информационная система управления полностью изменила традиционные методы управления в прошлом, не только упрощая управление услугами, но и повышая гибкость управления. В такой персонализированной платформе особое внимание уделяется взаимному сотрудничеству, координации взаимодействия и управлению, что стимулирует творческий подход и инициативу менеджеров, что очень полезно для системы управления информацией в тренажерном зале.
В этой системе используется база данных Mysql, разработанная с использованием инфраструктуры SSM. Операционная среда использует сервер Tomcat. ECLIPSE
является платформой разработки этой системы. В процессе проектирования системный код был полностью гарантирован хорошей читаемостью, практичностью, легкостью масштабируемости, универсальностью, легкостью последующего обслуживания, простотой эксплуатации и простой страницей.
Ключевые слова: система управления информацией в спортзале, база данных Mysql, структура SSM.

функциональный дизайн

Схема функционального модуля
Вариант использования администратора

После входа в систему администратор может выполнять домашнюю страницу, личный центр, управление пользователями, управление тренерами, управление членскими картами, управление покупками членства, управление типами курсов, управление информацией о курсах, управление покупками курсов, управление информацией о местах проведения, управление резервированием мест проведения и управление системой. .
Вставьте сюда описание изображения

Варианты использования пользователей

После регистрации и входа в систему пользователи могут управлять домашней страницей, личным центром, управлением покупками членства, управлением покупками курсов и управлением бронированием мест.
Вставьте сюда описание изображения

Схема структуры системы

Вставьте сюда описание изображения
Вставьте сюда описание изображения

Скриншот функции

пользовательский модуль

Пользователь нажимает, чтобы войти в интерфейс работы системы, и может получить доступ к домашней странице, личному центру, управлению покупками членства, управлению покупками курсов, управлению бронированием мест и другим функциональным модулям. Управление покупкой членства: через список вы можете получить номер
, имя, тип карты, цена, срок действия, имя пользователя, имя, мобильный телефон, оплата и другая информация и детали, удаление управления бронированием
Вставьте сюда описание изображения
места проведения операции: через список вы можете получить название тренажерного зала, номер работы, почасовую цену, количество людей, содержание бронирования, время бронирования, имя пользователя, имя, мобильный телефон, оплата, ответ на отзыв, статус просмотра и другая информация, выполнение подробных операций и удаление
Вставьте сюда описание изображения

Функциональный модуль администратора

После успешного входа в систему администратор войдет в интерфейс работы системы и сможет управлять домашней страницей, личным центром, управлением пользователями, управлением тренерами, управлением членскими картами, управлением покупками членства, управлением типами курсов, управлением информацией о курсах, управлением покупками курсов, местом проведения. управление информацией и резервирование мест.Управление, управление системой и другие функциональные модули выполняют соответствующие операции.
Управление пользователями: имя пользователя, имя, пол, аватар, возраст, удостоверение личности, мобильный телефон и другой контент можно получить через список, а также можно выполнить операции изменения или удаления.Управление членской картой: номер, имя, изображение, тип
Вставьте сюда описание изображения
Вставьте сюда описание изображения
карты , цену и т. д. можно получить через список. Срок действия и другую информацию можно детализировать, удалить или изменить.
Вставьте сюда описание изображения
Управление членством в покупке: через список вы можете получить такую ​​информацию, как номер, имя, тип карты, цена, время действия. , имя пользователя, имя, мобильный телефон, платить или нет, а также выполнять подробную, измененную или удаленную информацию.Операция Управление
Вставьте сюда описание изображения
типом курса: С помощью списка вы можете получить такую ​​информацию, как тип курса, изменить или удалить операцию.Информация о
Вставьте сюда описание изображения
курсе Управление: через список администратор может получить название курса, тип курса, изображения, видео курса, продолжительность занятий, номер сотрудника, время выпуска и тренера. Имя и другая информация может использоваться для получения подробной информации, изменения или удаления. Информация о месте проведения
Вставьте сюда описание изображения
. управление: администратор может получить название спортзала, фотографии места, часы работы, номер сотрудника, имя тренера, почасовую цену, количество людей, местоположение, есть ли бассейн и является ли это сетью через список и другую информацию , выполнять такие операции, как детализация, изменение или удаление.Управление
Вставьте сюда описание изображения
резервированием места проведения: администратор может получить название тренажерного зала, номер работы, почасовую цену, количество людей, содержимое бронирования, время резервирования, имя пользователя, имя, мобильный телефон, оплату или нет. и просмотрите ответ в списке. , просмотрите статус и другую информацию для выполнения дополнительных операций, изменения или удаления.
Вставьте сюда описание изображения

Функциональный модуль коучинга

Тренер нажимает кнопку, чтобы войти в интерфейс работы системы, и может получить доступ к домашней странице, личному центру, управлению информацией о курсе, управлению покупкой курсов, управлению информацией о месте проведения, управлению бронированием мест и другим функциональным модулям. Управление информацией о курсе: через список вы можете получить название курса, тип курса, изображения
, видео курса, продолжительность занятия, идентификатор сотрудника, время выпуска, имя тренера и другую информацию, а также выполнить подробные операции по изменению и удалению. Управление
Вставьте сюда описание изображенияинформацией о месте проведения: через список вы можете получить информацию о тренажерном зале название, фотографии объекта, часы работы, идентификатор сотрудника, имя тренера, почасовая цена, информацию о количестве человек, местоположении, есть ли бассейн, является ли он сетью и т. д., можно просмотреть подробно
Вставьте сюда описание изображения
. Управление: Через список вы можете получить название тренажерного зала, номер сотрудника, почасовую цену, количество людей, содержание бронирования, время бронирования, имя пользователя, имя, мобильный телефон, информацию об оплате, ответ на отзыв, статус обзора, обзор и другую информацию. , выполнять подробные операции и удалять
Вставьте сюда описание изображения

Функциональный модуль лицевой страницы

Система управления информацией о тренажерном зале, вы можете просмотреть домашнюю страницу, членскую карту, информацию о курсе, информацию о месте проведения, личный центр, управление серверной частью и другой контент на главной странице системы.Регистрация пользователя, вход в систему пользователя, вы можете ввести имя пользователя, пароль,
Вставьте сюда описание изображенияимя , возраст, удостоверение личности на странице регистрации. , мобильный телефон и другие данные для регистрации и входа в
Вставьте сюда описание изображения
Вставьте сюда описание изображения
личный центр. На странице личного центра заполните имя пользователя, пароль, имя, пол, аватар, возраст, удостоверение личности. , мобильный телефон и другую информацию для обновления информации. Выйдите из системы и проверьте номер на странице членской карты
. , имя, тип карты, цену, срок действия и другую информацию для операций покупки.
Вставьте сюда описание изображения
Вставьте сюда описание изображения

Связанный код

Конфигурация базы данных

# Tomcat
server:
    tomcat:
        uri-encoding: UTF-8
    port: 8080
    servlet:
        context-path: /springbootg4y26

spring:
    datasource:
        driverClassName: com.mysql.jdbc.Driver
        url: jdbc:mysql://127.0.0.1:3306/springbootg4y26?useUnicode=true&characterEncoding=utf-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8
        username: root
        password: 123456

#        driverClassName: com.microsoft.sqlserver.jdbc.SQLServerDriver
#        url: jdbc:sqlserver://127.0.0.1:1433;DatabaseName=springbootg4y26
#        username: sa
#        password: 123456

    servlet:
      multipart:
        max-file-size: 10MB
        max-request-size: 10MB
    resources:
      static-locations: classpath:static/,file:static/

#mybatis
mybatis-plus:
  mapper-locations: classpath*:mapper/*.xml
  #实体扫描,多个package用逗号或者分号分隔
  typeAliasesPackage: com.entity
  global-config:
    #主键类型  0:"数据库ID自增", 1:"用户输入ID",2:"全局唯一ID (数字类型唯一ID)", 3:"全局唯一ID UUID";
    id-type: 1
    #字段策略 0:"忽略判断",1:"非 NULL 判断"),2:"非空判断"
    field-strategy: 2
    #驼峰下划线转换
    db-column-underline: true
    #刷新mapper 调试神器
    refresh-mapper: true
    #逻辑删除配置
    logic-delete-value: -1
    logic-not-delete-value: 0
    #自定义SQL注入器
    sql-injector: com.baomidou.mybatisplus.mapper.LogicSqlInjector
  configuration:
    map-underscore-to-camel-case: true
    cache-enabled: false
    call-setters-on-nulls: true
    #springboot 项目mybatis plus 设置 jdbcTypeForNull (oracle数据库需配置JdbcType.NULL, 默认是Other)
    jdbc-type-for-null: 'null' 

Контроллер



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



Бизнес-уровень (Сервис)



    package com.service;
    
    import java.util.List;
    import java.util.Map;
    
    import org.apache.ibatis.annotations.Param;
    
    import com.baomidou.mybatisplus.mapper.Wrapper;
    import com.baomidou.mybatisplus.service.IService;
    import com.entity.UserEntity;
    import com.utils.PageUtils;



    /**
     * 系统用户
     */
    public interface UserService extends IService<UserEntity> {
    
    
     	PageUtils queryPage(Map<String, Object> params);
        
       	List<UserEntity> selectListView(Wrapper<UserEntity> wrapper);
       	
       	PageUtils queryPage(Map<String, Object> params,Wrapper<UserEntity> wrapper);
    	   	
    }



Уровень доступа к данным (Дао)

package com.dao;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.plugins.pagination.Pagination;
import com.entity.UserEntity;

/**
 * 用户
 */
public interface UserDao extends BaseMapper<UserEntity> {
    
    
	
	List<UserEntity> selectListView(@Param("ew") Wrapper<UserEntity> wrapper);

	List<UserEntity> selectListView(Pagination page,@Param("ew") Wrapper<UserEntity> wrapper);
	
}

Приобретение проекта:

https://gitee.com/sinonfin/L-javaWebSha/tree/master

рекомендация

отblog.csdn.net/WEB_DC/article/details/133486251
рекомендация