深圳住房和城乡建设厅网站,学wordpress,做空视频文件的网站,北京网站搜索优化#x1f34a;作者#xff1a;计算机编程-吉哥 #x1f34a;简介#xff1a;专业从事JavaWeb程序开发#xff0c;微信小程序开发#xff0c;定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事#xff0c;生活就是快乐的。 #x1f34a;心愿#xff1a;点… 作者计算机编程-吉哥 简介专业从事JavaWeb程序开发微信小程序开发定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事生活就是快乐的。 心愿点赞 收藏 ⭐评论 文末获取源码联系 精彩专栏推荐订阅 不然下次找不到哟~Java毕业设计项目~热门选题推荐《1000套》 目录
1.技术选型
2.开发工具
3.功能
3.1【角色】
3.2【前端功能模块】
3.3【后端功能模块】
4.项目演示截图
4.1 登录
4.2 公告展示
4.3 招生计划
4.4 招生政策
4.5 客服聊天管理
4.6 基础数据管理
4.7 物资管理
4.8 招生人员管理
5.核心代码
5.1拦截器
5.2分页工具类
5.3文件上传下载
5.4前端请求
6.LW文档大纲参考 背景意义介绍 在教育信息化的大背景下招生宣传管理系统作为一种创新的教育信息服务工具对于高校提升招生效率、优化招生宣传策略、增强与潜在学生的互动交流具有重要意义。 本文介绍的招生宣传管理系统采用Java作为后端开发语言结合SpringBoot框架简化了服务端应用的搭建和部署同时利用Vue.js技术构建了响应式和用户友好的前端界面。系统服务于管理员和用户两种角色提供了全面的服务和管理功能。用户可以通过登录注册访问首页、查看专业介绍、师资力量、校训校徽、公告等信息同时享有招生计划、信息公开、招生政策的查询服务以及个人中心和在线咨询功能。 后端管理模块为管理员提供了强大的管理工具包括用户管理、招生人员管理、公告管理、招生计划管理、单页数据管理、物资管理、信息公开管理和招生政策管理等。这些功能的实现不仅提高了招生宣传的组织和执行效率也为潜在学生提供了丰富的信息资源和便捷的咨询服务。 招生宣传管理系统的开发有助于高校更好地展示自身特色和优势吸引优秀生源。同时系统的数据分析和客服聊天功能为招生决策者提供了有力的数据支持和即时的沟通渠道。总之该系统对于促进教育信息公开、提高招生宣传效果、加强与学生的互动具有重要的现实意义。 1.技术选型
springboot、mybatisplus、vue、elementui、html、css、js、mysql、jdk1.8
2.开发工具
idea、navicat
3.功能
3.1【角色】
管理员、用户
3.2【前端功能模块】
登录注册首页专业介绍师资力量联系方式校训校徽公告招生计划信息公开招生政策个人中心在线咨询
3.3【后端功能模块】
登录首页个人中心管理员管理客服聊天管理基础数据管理公告管理招生计划管理单页数据管理物资管理信息公开管理用户管理招生人员管理招生政策管理咨询记录管理轮播图信息
4.项目演示截图
4.1 登录 4.2 公告展示 4.3 招生计划 4.4 招生政策 4.5 客服聊天管理 4.6 基础数据管理 4.7 物资管理 4.8 招生人员管理 5.核心代码
5.1拦截器
package com.interceptor;import com.alibaba.fastjson.JSONObject;
import com.annotation.IgnoreAuth;
import com.entity.TokenEntity;
import com.service.TokenService;
import com.utils.R;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.method.HandlerMethod;
import org.springframework.web.servlet.HandlerInterceptor;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.PrintWriter;/*** 权限(Token)验证*/
Component
public class AuthorizationInterceptor implements HandlerInterceptor {public static final String LOGIN_TOKEN_KEY Token;Autowiredprivate TokenService tokenService;Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {//支持跨域请求response.setHeader(Access-Control-Allow-Methods, POST, GET, OPTIONS, DELETE);response.setHeader(Access-Control-Max-Age, 3600);response.setHeader(Access-Control-Allow-Credentials, true);response.setHeader(Access-Control-Allow-Headers, x-requested-with,request-source,Token, Origin,imgType, Content-Type, cache-control,postman-token,Cookie, Accept,authorization);response.setHeader(Access-Control-Allow-Origin, request.getHeader(Origin));// 跨域时会首先发送一个OPTIONS请求这里我们给OPTIONS请求直接返回正常状态if (request.getMethod().equals(RequestMethod.OPTIONS.name())) {response.setStatus(HttpStatus.OK.value());return false;}IgnoreAuth annotation;if (handler instanceof HandlerMethod) {annotation ((HandlerMethod) handler).getMethodAnnotation(IgnoreAuth.class);} else {return true;}//从header中获取tokenString token request.getHeader(LOGIN_TOKEN_KEY);/*** 不需要验证权限的方法直接放过*/if(annotation!null) {return true;}TokenEntity tokenEntity null;if(StringUtils.isNotBlank(token)) {tokenEntity tokenService.getTokenEntity(token);}if(tokenEntity ! null) {request.getSession().setAttribute(userId, tokenEntity.getUserid());request.getSession().setAttribute(role, tokenEntity.getRole());request.getSession().setAttribute(tableName, tokenEntity.getTablename());request.getSession().setAttribute(username, tokenEntity.getUsername());return true;}PrintWriter writer null;response.setCharacterEncoding(UTF-8);response.setContentType(application/json; charsetutf-8);try {writer response.getWriter();writer.print(JSONObject.toJSONString(R.error(401, 请先登录)));} finally {if(writer ! null){writer.close();}}return false;}
}
5.2分页工具类 package com.utils;import java.io.Serializable;
import java.util.List;
import java.util.Map;import com.baomidou.mybatisplus.plugins.Page;/*** 分页工具类*/
public class PageUtils implements Serializable {private static final long serialVersionUID 1L;//总记录数private long total;//每页记录数private int pageSize;//总页数private long totalPage;//当前页数private int currPage;//列表数据private List? list;/*** 分页* param list 列表数据* param totalCount 总记录数* param pageSize 每页记录数* param currPage 当前页数*/public PageUtils(List? list, int totalCount, int pageSize, int currPage) {this.list list;this.total totalCount;this.pageSize pageSize;this.currPage currPage;this.totalPage (int)Math.ceil((double)totalCount/pageSize);}/*** 分页*/public PageUtils(Page? page) {this.list page.getRecords();this.total page.getTotal();this.pageSize page.getSize();this.currPage page.getCurrent();this.totalPage page.getPages();}/** 空数据的分页*/public PageUtils(MapString, Object params) {Page page new Query(params).getPage();new PageUtils(page);}public int getPageSize() {return pageSize;}public void setPageSize(int pageSize) {this.pageSize pageSize;}public int getCurrPage() {return currPage;}public void setCurrPage(int currPage) {this.currPage currPage;}public List? getList() {return list;}public void setList(List? list) {this.list list;}public long getTotalPage() {return totalPage;}public void setTotalPage(long totalPage) {this.totalPage totalPage;}public long getTotal() {return total;}public void setTotal(long total) {this.total total;}}
5.3文件上传下载
package com.controller;import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Arrays;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Random;
import java.util.UUID;import org.apache.commons.io.FileUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.util.ResourceUtils;
import org.springframework.web.bind.annotation.PathVariable;
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.RestController;
import org.springframework.web.multipart.MultipartFile;import com.annotation.IgnoreAuth;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.entity.ConfigEntity;
import com.entity.EIException;
import com.service.ConfigService;
import com.utils.R;/*** 上传文件映射表*/
RestController
RequestMapping(file)
SuppressWarnings({unchecked,rawtypes})
public class FileController{Autowiredprivate ConfigService configService;/*** 上传文件*/RequestMapping(/upload)IgnoreAuthpublic R upload(RequestParam(file) MultipartFile file,String type) throws Exception {if (file.isEmpty()) {throw new EIException(上传文件不能为空);}String fileExt file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(.)1);File path new File(ResourceUtils.getURL(classpath:static).getPath());if(!path.exists()) {path new File();}File upload new File(path.getAbsolutePath(),/upload/);if(!upload.exists()) {upload.mkdirs();}String fileName new Date().getTime().fileExt;File dest new File(upload.getAbsolutePath()/fileName);file.transferTo(dest);if(StringUtils.isNotBlank(type) type.equals(1)) {ConfigEntity configEntity configService.selectOne(new EntityWrapperConfigEntity().eq(name, faceFile));if(configEntitynull) {configEntity new ConfigEntity();configEntity.setName(faceFile);configEntity.setValue(fileName);} else {configEntity.setValue(fileName);}configService.insertOrUpdate(configEntity);}return R.ok().put(file, fileName);}/*** 下载文件*/IgnoreAuthRequestMapping(/download)public ResponseEntitybyte[] download(RequestParam String fileName) {try {File path new File(ResourceUtils.getURL(classpath:static).getPath());if(!path.exists()) {path new File();}File upload new File(path.getAbsolutePath(),/upload/);if(!upload.exists()) {upload.mkdirs();}File file new File(upload.getAbsolutePath()/fileName);if(file.exists()){HttpHeaders headers new HttpHeaders();headers.setContentType(MediaType.APPLICATION_OCTET_STREAM); headers.setContentDispositionFormData(attachment, fileName); return new ResponseEntitybyte[](FileUtils.readFileToByteArray(file),headers, HttpStatus.CREATED);}} catch (IOException e) {e.printStackTrace();}return new ResponseEntitybyte[](HttpStatus.INTERNAL_SERVER_ERROR);}}
5.4前端请求
import axios from axios
import router from /router/router-static
import storage from /utils/storageconst http axios.create({timeout: 1000 * 86400,withCredentials: true,baseURL: /furniture,headers: {Content-Type: application/json; charsetutf-8}
})
// 请求拦截
http.interceptors.request.use(config {config.headers[Token] storage.get(Token) // 请求头带上tokenreturn config
}, error {return Promise.reject(error)
})
// 响应拦截
http.interceptors.response.use(response {if (response.data response.data.code 401) { // 401, token失效router.push({ name: login })}return response
}, error {return Promise.reject(error)
})
export default http
6.LW文档大纲参考 具体LW如何写法可以咨询博主耐心分享 你可能还有感兴趣的项目 更多项目推荐:计算机毕业设计项目 如果大家有任何疑虑请在下方咨询或评论
文章转载自: http://www.morning.ykbgs.cn.gov.cn.ykbgs.cn http://www.morning.yfwygl.cn.gov.cn.yfwygl.cn http://www.morning.mprtj.cn.gov.cn.mprtj.cn http://www.morning.hcsnk.cn.gov.cn.hcsnk.cn http://www.morning.hptbp.cn.gov.cn.hptbp.cn http://www.morning.njstzsh.com.gov.cn.njstzsh.com http://www.morning.wjlbb.cn.gov.cn.wjlbb.cn http://www.morning.sgnjg.cn.gov.cn.sgnjg.cn http://www.morning.rqlbp.cn.gov.cn.rqlbp.cn http://www.morning.fpkdd.cn.gov.cn.fpkdd.cn http://www.morning.srbfz.cn.gov.cn.srbfz.cn http://www.morning.zzgkk.cn.gov.cn.zzgkk.cn http://www.morning.xnqwk.cn.gov.cn.xnqwk.cn http://www.morning.fpkdd.cn.gov.cn.fpkdd.cn http://www.morning.nrtpb.cn.gov.cn.nrtpb.cn http://www.morning.ychoise.com.gov.cn.ychoise.com http://www.morning.dwkfx.cn.gov.cn.dwkfx.cn http://www.morning.mjctt.cn.gov.cn.mjctt.cn http://www.morning.lyhry.cn.gov.cn.lyhry.cn http://www.morning.bpmnx.cn.gov.cn.bpmnx.cn http://www.morning.tnyanzou.com.gov.cn.tnyanzou.com http://www.morning.fbxdp.cn.gov.cn.fbxdp.cn http://www.morning.zwhtr.cn.gov.cn.zwhtr.cn http://www.morning.hhskr.cn.gov.cn.hhskr.cn http://www.morning.hyfrd.cn.gov.cn.hyfrd.cn http://www.morning.kqpq.cn.gov.cn.kqpq.cn http://www.morning.wpqcj.cn.gov.cn.wpqcj.cn http://www.morning.rqqlp.cn.gov.cn.rqqlp.cn http://www.morning.lokext.com.gov.cn.lokext.com http://www.morning.jkzq.cn.gov.cn.jkzq.cn http://www.morning.rbqlw.cn.gov.cn.rbqlw.cn http://www.morning.mgtrc.cn.gov.cn.mgtrc.cn http://www.morning.xqgh.cn.gov.cn.xqgh.cn http://www.morning.ccjhr.cn.gov.cn.ccjhr.cn http://www.morning.ppdr.cn.gov.cn.ppdr.cn http://www.morning.wsnjn.cn.gov.cn.wsnjn.cn http://www.morning.prgyd.cn.gov.cn.prgyd.cn http://www.morning.pzdxg.cn.gov.cn.pzdxg.cn http://www.morning.dtrz.cn.gov.cn.dtrz.cn http://www.morning.khyqt.cn.gov.cn.khyqt.cn http://www.morning.mjtgt.cn.gov.cn.mjtgt.cn http://www.morning.wlddq.cn.gov.cn.wlddq.cn http://www.morning.pdkht.cn.gov.cn.pdkht.cn http://www.morning.lrplh.cn.gov.cn.lrplh.cn http://www.morning.qfrmy.cn.gov.cn.qfrmy.cn http://www.morning.dqgbx.cn.gov.cn.dqgbx.cn http://www.morning.ppzgr.cn.gov.cn.ppzgr.cn http://www.morning.fkcjs.cn.gov.cn.fkcjs.cn http://www.morning.jjzxn.cn.gov.cn.jjzxn.cn http://www.morning.yhgbd.cn.gov.cn.yhgbd.cn http://www.morning.mehrim.com.gov.cn.mehrim.com http://www.morning.huarma.com.gov.cn.huarma.com http://www.morning.cwtrl.cn.gov.cn.cwtrl.cn http://www.morning.djpps.cn.gov.cn.djpps.cn http://www.morning.lmfmd.cn.gov.cn.lmfmd.cn http://www.morning.ltspm.cn.gov.cn.ltspm.cn http://www.morning.jwwfk.cn.gov.cn.jwwfk.cn http://www.morning.nqxdg.cn.gov.cn.nqxdg.cn http://www.morning.ysskn.cn.gov.cn.ysskn.cn http://www.morning.qdxtj.cn.gov.cn.qdxtj.cn http://www.morning.ywxln.cn.gov.cn.ywxln.cn http://www.morning.dtpqw.cn.gov.cn.dtpqw.cn http://www.morning.dnycx.cn.gov.cn.dnycx.cn http://www.morning.kcdts.cn.gov.cn.kcdts.cn http://www.morning.krdxz.cn.gov.cn.krdxz.cn http://www.morning.ckrnq.cn.gov.cn.ckrnq.cn http://www.morning.jkdtz.cn.gov.cn.jkdtz.cn http://www.morning.zgpgl.cn.gov.cn.zgpgl.cn http://www.morning.0dirty.cn.gov.cn.0dirty.cn http://www.morning.zntf.cn.gov.cn.zntf.cn http://www.morning.hhzdj.cn.gov.cn.hhzdj.cn http://www.morning.kjlia.com.gov.cn.kjlia.com http://www.morning.sqqdy.cn.gov.cn.sqqdy.cn http://www.morning.bwgrd.cn.gov.cn.bwgrd.cn http://www.morning.rlnm.cn.gov.cn.rlnm.cn http://www.morning.hhpbj.cn.gov.cn.hhpbj.cn http://www.morning.ndcjq.cn.gov.cn.ndcjq.cn http://www.morning.ldfcb.cn.gov.cn.ldfcb.cn http://www.morning.ynwdk.cn.gov.cn.ynwdk.cn http://www.morning.gwkwt.cn.gov.cn.gwkwt.cn