首页 > 作文

基于Java SpringBoot的前后端分离信息管理系统的设计和实现

更新时间:2023-04-03 23:04:28 阅读: 评论:0

目录
前言视频演示主要功能说明功能截图主要代码实现主要数据表设计

前言

当今社会,随着科学技术的发展,以及市场经济的多元化,使人才的流动速度大大增加,因此也对党建工作的管理层面工作带来了空前且复杂的挑战, 从而使得如何高效的开展管理党建工作成为了亟待解决的问题。为此将高速发展的信息科学技术引入到党建工作管理的应用中,力求合理有效的提升全面各项工作的进展,实现以人为本的科学发展思想和意识,是一种高效可实现的方法。 java作为一种面向对象的、可以撰写跨平台应用软件的程序设计语言,其技术具有卓越的通用性、高效性、平台移植性以及安全性,如今已广泛应用于 pc、数据中心、游戏控制台、科学超级计算机、移动电话和互联网等方面,大大方便了人们的生活、工作和娱乐。 而基于java技术的党建工作管理平台,结合了java技术,从而可起到规范党群业务流程,提高党群工作管理效率,对于党群工作定期提醒,以及完 成情况后的及时反馈,有效地提升党群工作管理的标准化程度的作用;进而实现党群工作的网上信息交流和交互办公,图片资料保存与共享等功能。

视频演示

基于java-springboot+vue的前后端分离信息管理系统.mp4

主要功能说明

用户登录、修改密码、首页介绍、数据可视化树状图展示、用户管理、菜单管理、权限控制、角色管理、部门管理、角色管理、组织架构管理、系统sql监控、日志管理、通知公告管理、要闻管理、组织风采管理、资料管理、查看、上传富文本等、和查看下载附件信息。组织发展管理、考试管理以及退出等

功能截图

登陆:根据用户角色权限进行登录、用户角色灵活控制。

系统主页:

用户管理:用户的模糊查询、添加、选择部门、角色和职位等信息、以及修改和删除等

职位管理:职位的模糊查询、添加、权限控制以及修改和删除等

菜单管理:菜单通过角色权限灵活控制、具体到按钮级别

sql监控:

切面日志管理:

组织架构: 组织架构的模糊查询、添加、权限控制以及修改和删除等

通知公告模块:通知公告的模糊查询、添加、权限控制以及修改和删除等。和富文本笔记内容

新闻模块:

组织风采模块:

资料管理模块:

组织发展模块:

在线考试模块:

修改密码模块

主要代码实现

用户登录验证

/** * 登录相关 * * @author lyy *  */@restcontrollerpublic class syslogincontroller extends abstractcontroller {@autowiredprivate sysurrvice sysurrvice;@autowiredprivate sysurtokenrvice sysurtokenrvice;@autowiredprivate syscaptcharvice syscaptcharvice; /** * 验证码 */@getmapping("captcha.jpg")public void captcha(httprvletrespon respon, string uuid)throws ioexception {respon.theader("cache-control", "no-store, no-cache");respon.tcontenttype("image/jpeg"); //获取图片验证码bufferedimage image = syscaptcharvice.getcaptcha(uuid); rvletoutputstream out = respon.getoutputstream();imageio.write(image, "jpg", out);ioutils.cloquietly(out);} /** * 登录 */@postmapping("/sys/login")public map<string, object> login(@requestbody sysloginform form)throws ioexception {boolean captcha = syscaptcharvice.validate(form.getuuid(), form.getcaptcha());//if(!captcha){//return r.error("验证码不正确");//} //用户信息sysurentity ur = sysurrvice.querybyurname(form.geturname()); //账号不存在、密码错误if(ur == null || !ur.getpassword().equals(new sha256hash(form.getpassword(), ur.getsalt()).tohex())) {return r.error("账号或密码不正确");} //账号锁定if(ur.getstatus() == 0){return r.error("账号已被锁定,请联系管理员");} //生成token,并保存到数据库r r = sysurtokenrvice.createtoken(ur.geturid());return r;}  /** * 退出 */@postmapping("/sys/logout")public r logout() {sysurtokenrvice.logout(geturid());return r.ok();}

shiro权限拦截放行:

/** * shiro配置 * * @author lyy */@configurationpublic class shiroconfig {     @bean("curitymanager")    public curitymanager curitymanager(oauth2realm oauth2realm) {        defaultwebcuritymanager curitymanager = new defaultwebcuritymanager();        curitymanager.trealm(oauth2realm);        curitymanager.tremembermemanager(null);        return curitymanager;    }     @bean("shirofilter")    public shirofilterfactorybean shirofilter(curitymanager curitymanager) {        shirofilterfactorybean shirofilter = new shirofilterfactorybean();        shirofilter.tcuritymanager(curitymanager);         //oauth过滤        map<string, filter> filters = new hashmap<>();        filters.put("oauth2", new oauth2filter());        shirofilter.tfilters(filters);         map<string, string> filtermap = new linkedhashmap<>();        filtermap.put("/webjars/**", "anon");        filtermap.put("/druid/**", "anon");        filtermap.put("/app/**", "anon");        filtermap.put("/sys/login", "anon");        filtermap.put("/swagger/**", "anon");        filtermap.put("/v2/api-docs", "anon");        filtermap.put("/swagger-ui.html", "anon");        filtermap.put("/swagger-resources/**", "anon");        filtermap.put("/captcha.jpg", "anon");        filtermap.put("/aaa.txt", "anon");        filtermap.put("/virtuel/**", "anon");        filtermap.put("/image/**", "anon");         filtermap.put("/**", "oauth2");        shirofilter.tfilterchaindefinitionmap(filtermap);         return shirofilter;    }     @bean("lifecyclebeanpostprocessor")    public lifecyclebeanpostprocessor lifecyclebeanpostprocessor() {        return new lifecyclebeanpostprocessor();    }     @bean    public authorizationattributesourceadvisor authorizationattributesourceadvisor(curitymanager curitymanager) {        authorizationattributesourceadvisor advisor = new authorizationattributesourceadvisor();        advisor.tcuritymanager(curitymanager);        return advisor;    }

前端vue element登录:

<template>  <div class="site-wrapper site-page--login">    <div class="site-content__wrapper">      <div class="site-content">        <div class="brand-info">          <h1 class="brand-info__text">信息管理系统</h1>        </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="urname">              <el-input v-model="dataform.urname" 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="danger" @click="dataformsubmit()">登录</el-button>            </el-form-item>          </el-form>        </div>      </div>    </div>  </div></template> <script>  import { getuuid } from '@/utils'  export default {    data () {      return {        dataform: {          urname: '',          password: '',          uuid: '',          captcha: ''        },        datarule: {          urname: [            { 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({                'urname': this.dataform.urname,                'password': this.dataform.password,                'uuid': this.dataform.uuid,                'captcha': this.dataform.captcha              })            }).then(({data}) => {              if (data && data.code === 0) {                this.$cookie.t('token', data.token)                this.$router.replace({ name: 'home' })              } el {                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(~@/asts/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 100px 220px 200px;      font-size: 100px;      font-weight: 400;      text-transform : upperca;    }    .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>

主要数据表设计

数据库表结构文档

数据库名:renren-dangyuan

文档版本:v1.0.0

文档描述:数据库表设计描述

表dj_news

表exam

表 file

表inform

表sys_captcha (系统验证码)

表sys_config (系统配置信息表)

表sys_dept (部门管理)

表sys_log (系统日志)

表sys_menu (菜单管理)

表sys_oss (文件上传)

表sys_role (角色)

表sys_role_dept (角色与部门对应关系)

表sys_role_menu (角色与菜单对应关系)

表sys_ur (系统用户)

表sys_ur_role (用户与角色对应关系)

表sys_ur_token (系统个人短期借贷用户token)

表tb_ur (用户)

以上就是基于java springboot的前后端分离信息管理系统的设计和实现的详细内容,更多关于java springboot 信息管理系统的资料请关注www.887551.com其它相关文章!

本文发布于:2023-04-03 23:04:26,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/039980f55b2f97067450a4b4ef1e3805.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:基于Java SpringBoot的前后端分离信息管理系统的设计和实现.doc

本文 PDF 下载地址:基于Java SpringBoot的前后端分离信息管理系统的设计和实现.pdf

标签:角色   验证码   党群   用户
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图