大家好,我是java1234_小鋒老師,看到一個不錯的微信小程序(圖書館)自習室座位預約管理系統(SpringBoot后端+Vue管理端)(高級版),分享下哈。
項目視頻演示
【免費】微信小程序(圖書館)自習室座位預約管理系統(SpringBoot后端+Vue管理端)(高級版) Java畢業設計_嗶哩嗶哩_bilibili
項目介紹
本文介紹了一種基于Java語言開發的座位預約管理系統。該系統通過借助互聯網和物聯網技術,實現了座位預定、空間管理、數據分析等多種功能,為學生提供了便捷、高效、智能的學習環境。
系統使用前后端分離技術進行開發,服務器端接口使用SpringBoot開發框架實現,Vue前端框架,整合了Mybatis-plus持久層框架進行數據持久化,使用MySQL數據庫存儲數據。系統分為學生和管理員兩個角色。學生可以進行登錄注冊、管理個人信息、瀏覽座位信息、預約選座、管理預約信息等功能。管理員可以管理所有用戶信息、座位信息、時刻信息、預約選座等功能。
經過測試,該系統能夠滿足需求并穩定運行。測試驗證表明,該系統具有操作簡單、功能齊全、性能穩定等特點,可以有效提高學生的學習效率和教學質量。
未來,該系統可以進一步優化和拓展,例如加強數據可視化和智能推薦功能,以滿足不同學科、不同層次的學生學習需求,為學校的數字化校園建設和現代化教育改革提供更優質、智能、便捷的支持和服務。
系統展示
部分代碼
package com.selfstudy.modules.bas.controller;import cn.hutool.core.bean.BeanUtil;
import com.selfstudy.common.utils.PageUtils;
import com.selfstudy.common.utils.R;
import com.selfstudy.config.MessageProperties;
import com.selfstudy.modules.bas.dto.save.BasNoticeSaveDTO;
import com.selfstudy.modules.bas.dto.update.BasNoticeUpdateDTO;
import com.selfstudy.modules.bas.entity.BasNoticeEntity;
import com.selfstudy.modules.bas.service.BasNoticeService;
import com.selfstudy.modules.sys.controller.AbstractController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;import java.util.Arrays;
import java.util.Map;/*** 公告表*/
@RestController
@RequestMapping("/notice")
@Api(tags = "后臺公告")
public class BasNoticeController extends AbstractController {@Autowiredprivate BasNoticeService basNoticeService;@Autowiredprivate MessageProperties messageProperties;/*** 列表*/@GetMapping("/list")@ApiOperation("列表(noticeState,noticeTitle)")public R list(@RequestParam Map<String, Object> params){PageUtils page = basNoticeService.queryPage(params);return R.ok().put("data", page);}/*** 詳情*/@GetMapping("/info/{noticeId}")@ApiOperation("詳情")public R info(@ApiParam(value = "noticeId") @PathVariable("noticeId") Long noticeId){BasNoticeEntity basNotice = basNoticeService.getById(noticeId);return R.ok().put("data", basNotice);}/*** 保存*/@PostMapping("/save")@ApiOperation("保存")public R save(@RequestBody BasNoticeSaveDTO basNotice){BasNoticeEntity basNoticeEntity = BeanUtil.copyProperties(basNotice, BasNoticeEntity.class);basNoticeEntity.setCreateUserId(getUserId());boolean save = basNoticeService.save(basNoticeEntity);if(save){return R.ok();}return R.error(messageProperties.getFormSaveError());}/*** 修改*/@PostMapping("/update")@ApiOperation("修改")public R update(@RequestBody BasNoticeUpdateDTO basNotice){BasNoticeEntity basNoticeEntity = BeanUtil.copyProperties(basNotice, BasNoticeEntity.class);boolean update = basNoticeService.updateById(basNoticeEntity);if (update){return R.ok();}return R.error(messageProperties.getFormUpdateError());}/*** 發布狀態* @param id* @return*/@PostMapping("/updateStateOn")@ApiOperation("發布狀態")public R updateStateOn(@ApiParam(value = "id") Long id){boolean update = basNoticeService.lambdaUpdate().eq(BasNoticeEntity::getNoticeId, id).set(BasNoticeEntity::getNoticeState, 0).update();if (update){return R.ok();}return R.error(messageProperties.getFormUpdateError());}/*** 取消發布狀態* @param id* @return*/@PostMapping("/updateStateOff")@ApiOperation("取消發布狀態")public R updateStateOff(@ApiParam(value = "id") Long id){boolean update = basNoticeService.lambdaUpdate().eq(BasNoticeEntity::getNoticeId, id).set(BasNoticeEntity::getNoticeState, 1).update();if (update){return R.ok();}return R.error(messageProperties.getFormUpdateError());}/*** 刪除*/@DeleteMapping("/delete")@ApiOperation("刪除")public R delete(@RequestBody Long[] noticeIds){boolean b = basNoticeService.removeByIds(Arrays.asList(noticeIds));if (b){return R.ok();}return R.error(messageProperties.getFormDeleteError());}}
<template><div class="site-wrapper site-page--login"><div class="site-content__wrapper"><div class="site-content"><div class="brand-info"><h2 class="brand-info__text">自習室座位管理系統</h2></div><div class="login-main"><h3 class="login-title">管理員登錄</h3><el-form :model="dataForm" :rules="dataRule" ref="dataForm" @keyup.enter.native="dataFormSubmit()" status-icon><el-form-item prop="userName"><el-input v-model="dataForm.userName" placeholder="帳號"></el-input></el-form-item><el-form-item prop="password"><el-input v-model="dataForm.password" type="password" placeholder="密碼"></el-input></el-form-item><el-form-item prop="captcha"><el-row :gutter="20"><el-col :span="14"><el-input v-model="dataForm.captcha" placeholder="驗證碼"></el-input></el-col><el-col :span="10" class="login-captcha"><img :src="captchaPath" @click="getCaptcha()" alt=""></el-col></el-row></el-form-item><el-form-item><el-button class="login-btn-submit" type="primary" @click="dataFormSubmit()">登錄</el-button></el-form-item></el-form></div></div></div></div>
</template><script>import { getUUID } from '@/utils'export default {data () {return {dataForm: {userName: '',password: '',uuid: '',captcha: ''},dataRule: {userName: [{ required: true, message: '帳號不能為空', trigger: 'blur' }],password: [{ required: true, message: '密碼不能為空', trigger: 'blur' }],captcha: [{ required: true, message: '驗證碼不能為空', trigger: 'blur' }]},captchaPath: ''}},created () {this.getCaptcha()},methods: {// 提交表單dataFormSubmit () {this.$refs['dataForm'].validate((valid) => {if (valid) {this.$http({url: this.$http.adornUrl('/sys/login'),method: 'post',data: this.$http.adornData({'username': this.dataForm.userName,'password': this.dataForm.password,'uuid': this.dataForm.uuid,'captcha': this.dataForm.captcha})}).then(({data}) => {if (data && data.code === 0) {console.log(data)this.$cookie.set('token', data.token)this.$router.replace({ name: 'home' })} else {this.getCaptcha()this.$message.error(data.msg)}})}})},// 獲取驗證碼getCaptcha () {this.dataForm.uuid = getUUID()this.captchaPath = this.$http.adornUrl(`/captcha.jpg?uuid=${this.dataForm.uuid}`)}}}
</script><style lang="scss">.site-wrapper.site-page--login {position: absolute;top: 0;right: 0;bottom: 0;left: 0;background-color: rgba(38, 50, 56, .6);overflow: hidden;&:before {position: fixed;top: 0;left: 0;z-index: -1;width: 100%;height: 100%;content: "";background-image: url(~@/assets/img/login_bg.jpg);background-size: cover;}.site-content__wrapper {position: absolute;top: 0;right: 0;bottom: 0;left: 0;padding: 0;margin: 0;overflow-x: hidden;overflow-y: auto;background-color: transparent;}.site-content {min-height: 100%;padding: 30px 500px 30px 30px;}.brand-info {margin: 220px 100px 0 90px;color: #fff;}.brand-info__text {margin: 0 0 22px 0;font-size: 48px;font-weight: 400;text-transform : uppercase;}.brand-info__intro {margin: 10px 0;font-size: 16px;line-height: 1.58;opacity: .6;}.login-main {position: absolute;top: 0;right: 0;padding: 150px 60px 180px;width: 470px;min-height: 100%;background-color: #fff;}.login-title {font-size: 16px;}.login-captcha {overflow: hidden;> img {width: 100%;cursor: pointer;}}.login-btn-submit {width: 100%;margin-top: 38px;}}
</style>
源碼下載
鏈接:https://pan.baidu.com/s/1cfJC2_8jAT2MkSnuXnbOGQ
提取碼:1234