毕设帮助、开题指导、源码交流,联系方式见文末。
系统概述
在国外很多发达国家,软件产业早已得到全面普及,但我国经济已不断发展,不断引进国外信息化建设,使国内软件行业得以不断发展,在摸索中进步,最终也得到一些成果,我国的软件业迎来了高速的发展,使更多的软件系统得以开发出来,从此逐渐地改变人们的生活工作方式。但是,对于信息化的建设,与很多发达国家相比,由于信息化程度的落后以及经费的不足,我国的新冠疫苗预约小程序开发方面还是相对落后的,因此,要不断的努力探索,争取开发出一个实用的信息化的新冠疫苗预约小程序,来实现新冠疫苗预约管理的信息化。因此本课题以新冠疫苗预约为例,目的是开发一个实用的新冠疫苗预约小程序。
本新冠疫苗预约系统的开发运用JAVA语言的SSM框架结合微信小程序技术,MIS的总体思想,以及MYSQL等技术的支持下共同完成了该系统的开发,实现了新冠疫苗预约管理的信息化,使用户体验到更优秀的新冠疫苗预约管理,管理员管理操作将更加方便,系统文档齐全,适合作为微信小程序的毕业设计来参考和学习。
新冠疫苗预约的需求和管理上的不断提升,新冠疫苗预约管理的潜力将无限扩大,新冠疫苗预约小程序在业界被广泛关注,本网站及对此进行总体分析,将新冠疫苗预约信息管理的发展提供参考。新冠疫苗预约小程序对新冠疫苗预约有着明显的带动效应,尤其对管理者的管理帮助更大。
功能设计
本系统主要包括管理员和用户两个角色;其中用户注册和登陆系统,查看系统公告,在线预约疫苗,收藏疫苗信息,查看自己的预约信息和收藏信息等;管理员对用户信息,疫苗分类,疫苗信息,系统公告,预约信息等进行管理
为了更好的去理清本系统整体思路,对该系统以结构图的形式表达出来,设计实现该新冠疫苗预约小程序的功能结构图如下所示:

小程序端效果图:



后台管理端效果图:




部分源码
package com.interceptor;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.HashMap;
import java.util.Map;
import com.alibaba.fastjson.JSONObject;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.web.method.HandlerMethod;
import org.springframework.web.servlet.HandlerInterceptor;
import com.annotation.IgnoreAuth;
import com.entity.EIException;
import com.entity.TokenEntity;
import com.service.TokenService;
import com.utils.R;
/**
* 权限(Token)验证
*/
@Component
public class AuthorizationInterceptor implements HandlerInterceptor {
public static final String LOGIN_TOKEN_KEY = "Token";
@Autowired
private TokenService tokenService;
@Override
public 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"));
IgnoreAuth annotation;
if (handler instanceof HandlerMethod) {
annotation = ((HandlerMethod) handler).getMethodAnnotation(IgnoreAuth.class);
} else {
return true;
}
//从header中获取token
String 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; charset=utf-8");
try {
writer = response.getWriter();
writer.print(JSONObject.toJSONString(R.error(401, "请先登录")));
} finally {
if(writer != null){
writer.close();
}
}
// throw new EIException("请先登录", 401);
return false;
}
}
321

被折叠的 条评论
为什么被折叠?



