热门推荐
(分享源码)计算机毕业设计必看必学 原创定制程序 java、PHP、python、小程序、文案全套、毕设成品等 springboot基于微信小程序的安全教育平台面向大学85871
2024-10-06 15:27

基于微信小程序的安全教育平台面向大学生的详细设计与实现主要是根据前面的基于微信小程序的安全教育平台面向大学生的需求分析和基于微信小程序的安全教育平台面向大学生的总体设计来设计页面并实现业务逻辑。主要从基于微信小程序的安全教育平台面向大学生界面实现、业务逻辑实现这两部分进行介绍。

4.1用户功能模块

4.1.1 首页界面

当进入基于微信小程序的安全教育平台面向大学生的时候,系统以上中下的布局进行展示,首先映入眼帘的是系统的导航栏,再往下是各种各样的系统信息,其主界面展示如下图4-1所示。

图4-1?首页界面图

4.1.2 用户注册界面

不是基于微信小程序的安全教育平台面向大学生中正式用户的是可以在线进行注册的,当用户右上角“注册”按钮的时候,当填写上自己的账号+密码+确认密码+昵称+邮箱+手机号等信息后再点击“注册”按钮后将会先验证输入的有没有空数据,再次验证密码和确认密码是否是一样的,最后验证输入的账户名和数据库表中已经注册的账户名是否重复,只有都验证没问题后即可用户注册成功。其用用户注册界面展示如下图4-2所示。

图4-2?前台用户注册界面图

用户注册的关键代码如下。

????@PostMapping("register")

????public Map<String, Object> signUp(@RequestBody User user) {

????????// 查询用户

????????Map<String, String> query = new HashMap<>();

????????query.put("username",user.getUsername());

????????List list = service.select(query, new HashMap<>()).getResultList();

????????if (list.size()>0){

????????????return error(30000, "用户已存在");

????????}

????????user.setUserId(null);

????????user.setPassword(service.encryption(user.getPassword()));

????????service.save(user);

????????return success(1);

}

????@Id

????@GeneratedValue(strategy = GenerationType.IDENTITY)

????@Column(name = "user_id")

????private Integer userId;

????

????@Basic

????@Column(name = "state")

????private Integer state;

????

????@Basic

????@Column(name = "user_group")

????private String userGroup;

????

????@Basic

????@Column(name = "login_time")

????private Timestamp loginTime;

????

????@Basic

????@Column(name = "phone")

????private String phone;

????

????@Basic

????@Column(name = "phone_state")

????private Integer phoneState;

????

????@Basic

????@Column(name = "username")

????private String username;

????

????@Basic

????@Column(name = "nickname")

????private String nickname;

????

????@Basic

????@Column(name = "password")

????private String password;

????

????@Basic

????@Column(name = "email")

????private String email;

????

????@Basic

????@Column(name = "email_state")

????private Integer emailState;

????

????@Basic

????@Column(name = "avatar")

????private String avatar;

????

????@Basic

????@Column(name = "create_time")

????@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")

????private Timestamp createTime;

????@Basic

????@Transient

????private String code;

}

4.1.3 用户登录界面

基于微信小程序的安全教育平台面向大学生中的前台上注册后的用户是可以通过自己的账户名和密码进行登录的,当用户输入完整的自己的账户名和密码信息并点击“登录”按钮后,将会首先验证输入的有没有空数据,再次验证输入的账户名+密码和数据库中当前保存的用户信息是否一致,只有在一致后将会登录成功并自动跳转到基于微信小程序的安全教育平台面向大学生的首页中;否则将会提示相应错误信息,用户登录界面如下图4-3所示。

????????????????????????

图4-3用户登录界面图

用户登录的关键代码如下。

????@PostMapping("login")

????public Map<String, Object> login(@RequestBody Map<String, String> data, HttpServletRequest httpServletRequest) {

????????log.info("[执行登录接口]");

????????String username = data.get("username");

????????String email = data.get("email");

????????String phone = data.get("phone");

????????String password = data.get("password");

????????List resultList = null;

????????Map<String, String> map = new HashMap<>();

????????if(username != null && "".equals(username) == false){

????????????map.put("username", username);

????????????resultList = service.select(map, new HashMap<>()).getResultList();

????????}

????????else if(email != null && "".equals(email) == false){

????????????map.put("email", email);

????????????resultList = service.select(map, new HashMap<>()).getResultList();

????????}

????????else if(phone != null && "".equals(phone) == false){

????????????map.put("phone", phone);

????????????resultList = service.select(map, new HashMap<>()).getResultList();

????????}else{

????????????return error(30000, "账号或密码不能为空");

????????}

????????if (resultList == null || password == null) {

????????????return error(30000, "账号或密码不能为空");

????????}

????????//判断是否有这个用户

????????if (resultList.size()<=0){

????????????return error(30000,"用户不存在");

????????}

????????User byUsername = (User) resultList.get(0)

4.1.4安全知识界面

当点击导航栏上的“安全知识”的时候,就会进入对应的安全知识详情界面,可以进行安全知识视频的学习。安全知识界面如下图4-4所示。

图4-4安全知识界面图

安全知识的关键代码如下。

?@PostMapping("/add")

????@Transactional

????public Map<String, Object> add(HttpServletRequest request) throws IOException {

????????service.insert(service.readBody(request.getReader()));

????????return success(1);

????}

????@Transactional

????public Map<String, Object> addMap(Map<String,Object> map){

????????service.insert(map);

????????return success(1);

}

4.1.5?安全测试界面

当用户点击基于微信小程序的安全教育平台面向大学生中导航栏上的“安全测试”后将会进入到安全测试题界面,然后进行测试答题,安全测试界面如下图4-5所示。

图4-5安全测试界面图

安全测试的关键代码如下。

?@RequestMapping(value = {"/count_group", "/count"})

????public Map<String, Object> count(HttpServletRequest request) {

????????Query count = service.count(service.readQuery(request), service.readConfig(request));

????????return success(count.getResultList());

}

4.1.6?兑换中心界面

当用户点击“兑换中心”后就可以进行兑换中心物品查看了解,兑换中心详情页面如图4-6所示。

??????????????????

图4-6?兑换中心详情界面图

兑换中心关键代码:

?@RequestMapping("/get_list")

????public Map<String, Object> getList(HttpServletRequest request) {

????????Map<String, Object> map = service.selectToPage(service.readQuery(request), service.readConfig(request));

????????return success(map);

}

4.1.7?我的积分界面

当用户点击“我的积分”链接后就进入我的积分详情界面,可以进行积分信息的了解,并且可以进行积分兑换操作。我的积分界面如下图4-7所示。

图4-7?我的积分界面图

我的积分界面关键代码?

@RequestMapping(value = {"/count_group", "/count"})

????public Map<String, Object> count(HttpServletRequest request) {

????????Query count = service.count(service.readQuery(request), service.readConfig(request));

????????return success(count.getResultList());

}

4.1.8兑换记录界面

用户可以查看兑换记录信息,兑换记录界面如下图4-8所示。

?????????????????????

图4-8?兑换记录界面图

兑换记录的关键代码如下。

@RequestMapping("/get_obj")

????public Map<String, Object> obj(HttpServletRequest request) {

????????Query select = service.select(service.readQuery(request), service.readConfig(request));

????????List resultList = select.getResultList();

????????if (resultList.size() > 0) {

????????????JSonObject jsonObject = new JSonObject();

????????????jsonObject.put("obj",resultList.get(0));

????????????return success(jsonObject);

????????} else {

????????????return success(null);

????????}

}

?public Query select(Map<String,String> query,Map<String,String> config){

????????StringBuffer sql = new StringBuffer("select ");

????????sql.append(config.get(FindConfig.FIELD) == null || "".equals(config.get(FindConfig.FIELD)) ? "*" : config.get(FindConfig.FIELD)).append(" ");

????????sql.append("from ").append("`").append(table).append("`").append(toWhereSql(query, "0".equals(config.get(FindConfig.LIKE))));

????????if (config.get(FindConfig.GROUP_BY) != null && !"".equals(config.get(FindConfig.GROUP_BY))){

????????????sql.append("group by ").append(config.get(FindConfig.GROUP_BY)).append(" ");

????????}

????????if (config.get(FindConfig.ORDER_BY) != null && !"".equals(config.get(FindConfig.ORDER_BY))){

????????????sql.append("order by ").append(config.get(FindConfig.ORDER_BY)).append(" ");

????????}

????????if (config.get(FindConfig.PAGE) != null && !"".equals(config.get(FindConfig.PAGE))){

????????????int page = config.get(FindConfig.PAGE) != null && !"".equals(config.get(FindConfig.PAGE)) ? Integer.parseInt(config.get(FindConfig.PAGE)) : 1;

????????????int limit = config.get(FindConfig.SIZE) != null && !"".equals(config.get(FindConfig.SIZE)) ? Integer.parseInt(config.get(FindConfig.SIZE)) : 10;

????????????sql.append(" limit ").append( (page-1)*limit ).append(" , ").append(limit);

????????}

????????log.info("[{}] - 查询操作,sql: {}",table,sql);

????????return runEntitySql(sql.toString());

????}

4.2管理员功能模块

4.2.1 用户管理界面

基于微信小程序的安全教育平台面向大学生中的管理人员在“用户管理”这一菜单中是可以对用户信息进行管控。界面如下图4-9所示。

图4-9用户管理界面图

用户管理的关键代码如下。

@PostMapping("/set")

@Transactional

????public Map<String, Object> set(HttpServletRequest request) throws IOException {

????????service.update(service.readQuery(request), service.readConfig(request), service.readBody(request.getReader()));

????????return success(1);

}

????public Map<String,String> readConfig(HttpServletRequest request){

????????Map<String,String> map = new HashMap<>();

????????map.put(FindConfig.PAGE,request.getParameter(FindConfig.PAGE));

????????map.put(FindConfig.SIZE,request.getParameter(FindConfig.SIZE));

????????map.put(FindConfig.LIKE,request.getParameter(FindConfig.LIKE));

????????map.put(FindConfig.ORDER_BY,request.getParameter(FindConfig.ORDER_BY));

????????map.put(FindConfig.FIELD,request.getParameter(FindConfig.FIELD));

????????map.put(FindConfig.GROUP_BY,request.getParameter(FindConfig.GROUP_BY));

????????map.put(FindConfig.MAX_,request.getParameter(FindConfig.MAX_));

????????map.put(FindConfig.MIN_,request.getParameter(FindConfig.MIN_));

????????return map;

}

????public Map<String,String> readQuery(HttpServletRequest request){

????????String queryString = request.getQueryString();

????????if (queryString != null && !"".equals(queryString)) {

????????????String[] querys = queryString.split("&");

????????????Map<String, String> map = new HashMap<>();

????????????for (String query : querys) {

????????????????String[] q = query.split("=");

????????????????map.put(q[0], q[1]);

????????????}

????????????map.remove(FindConfig.PAGE);

????????????map.remove(FindConfig.SIZE);

????????????map.remove(FindConfig.LIKE);

????????????map.remove(FindConfig.ORDER_BY);

????????????map.remove(FindConfig.FIELD);

????????????map.remove(FindConfig.GROUP_BY);

????????????map.remove(FindConfig.MAX_);

????????????map.remove(FindConfig.MIN_);

????????????return map;

????????}else {

????????????return new HashMap<>();

????????}

}

????@Transactional

????public void update(Map<String,String> query,Map<String,String> config,Map<String,Object> body){

????????StringBuffer sql = new StringBuffer("UPDATE ").append("`").append(table).append("`").append(" SET ");

????????for (Map.Entry<String,Object> entry:body.entrySet()){

????????????Object value = entry.getValue();

????????????if (value instanceof String){

????????????????sql.append("`"+humpToLine(entry.getKey())+"`").append("=").append("'").append(value).append("'").append(",");

????????????}else {

????????????????sql.append("`"+humpToLine(entry.getKey())+"`").append("=").append(value).append(",");

????????????}

4.2.2?资源管理界面

基于微信小程序的安全教育平台面向大学生中的管理人员在“资源管理”这一菜单是中可以对新闻列表、新闻分类以及安全知识进行增删改查设置。资源管理界面如下图4-10所示。

图4-10资源管理界面图

资源管理关键代码

@RequestMapping(value = "/del")

????@Transactional

????public Map<String, Object> del(HttpServletRequest request) {

????????service.delete(service.readQuery(request), service.readConfig(request));

????????return success(1);

}

????@Transactional

????public void delete(Map<String,String> query,Map<String,String> config){

????????StringBuffer sql = new StringBuffer("DELETE FROM ").append("`").append(table).append("`").append(" ");

????????sql.append(toWhereSql(query, "0".equals(config.get(FindConfig.GROUP_BY))));

????????log.info("[{}] - 删除操作:{}",table,sql);

????????Query query1 = runCountSql(sql.toString());

????????query1.executeUpdate();

????}

4.2.3 系统公告管理界面

基于微信小程序的安全教育平台面向大学生中的管理人员在“系统公告管理”这一菜单中是可以对基于微信小程序的安全教育平台面向大学生内的公告信息进行维护和管理的,界面如下图4-11所示。

图4-11系统公告管理界面图

系统公告管理关键代码

@PostMapping("/add")

????@Transactional

????public Map<String, Object> add(HttpServletRequest request) throws IOException {

????????service.insert(service.readBody(request.getReader()));

????????return success(1);

????}

????@Transactional

????public Map<String, Object> addMap(Map<String,Object> map){

????????service.insert(map);

????????return success(1);

}

????public Map<String,Object> readBody(BufferedReader reader){

????????BufferedReader br = null;

????????StringBuilder sb = new StringBuilder("");

????????try{

????????????br = reader;

????????????String str;

????????????while ((str = br.readLine()) != null){

????????????????sb.append(str);

????????????}

????????????br.close();

????????????String json = sb.toString();

????????????return JSONObject.parseObject(json, Map.class);

????????}catch (IOException e){

????????????e.printStackTrace();

????????}finally{

????????????if (null != br){

????????????????try{

????????????????????br.close();

????????????????}catch (IOException e){

????????????????????e.printStackTrace();

????????????????}

????????????}

????????}

????????return null;

}

????public void insert(Map<String,Object> body){

????????StringBuffer sql = new StringBuffer("INSERT INTO ");

????????sql.append("`").append(table).append("`").append(" (");

????????for (Map.Entry<String,Object> entry:body.entrySet()){

????????????sql.append("`"+humpToLine(entry.getKey())+"`").append(",");

????????}

????????sql.deleteCharAt(sql.length()-1);

????????sql.append(") VALUES (");

????????for (Map.Entry<String,Object> entry:body.entrySet()){

????????????Object value = entry.getValue();

????????????if (value instanceof String){

????????????????sql.append("'").append(entry.getValue()).append("'").append(",");

????????????}else {

????????????????sql.append(entry.getValue()).append(",");

????????????}

????????}

????????sql.deleteCharAt(sql.length() - 1);

????????sql.append(")");

????????log.info("[{}] - 插入操作:{}",table,sql);

????????Query query = runCountSql(sql.toString());

????????query.executeUpdate();

????}

4.2.4模块管理界面

基于微信小程序的安全教育平台面向大学生中的管理人员在“模块管理”这一菜单下主要包括:安全知识、安全测试、知识分类、签到信息、积分兑换、兑换记录管理等,其界面如下图4-11所示。

图4-11模块管理界面图

模块管理关键代码

??@RequestMapping("/get_obj")

????public Map<String, Object> obj(HttpServletRequest request) {

????????Query select = service.select(service.readQuery(request), service.readConfig(request));

????????List resultList = select.getResultList();

????????if (resultList.size() > 0) {

????????????JSonObject jsonObject = new JSonObject();

????????????jsonObject.put("obj",resultList.get(0));

????????????return success(jsonObject);

????????} else {

????????????return success(null);

????????}

}

?public Query select(Map<String,String> query,Map<String,String> config){

????????StringBuffer sql = new StringBuffer("select ");

????????sql.append(config.get(FindConfig.FIELD) == null || "".equals(config.get(FindConfig.FIELD)) ? "*" : config.get(FindConfig.FIELD)).append(" ");

????????sql.append("from ").append("`").append(table).append("`").append(toWhereSql(query, "0".equals(config.get(FindConfig.LIKE))));

????????if (config.get(FindConfig.GROUP_BY) != null && !"".equals(config.get(FindConfig.GROUP_BY))){

????????????sql.append("group by ").append(config.get(FindConfig.GROUP_BY)).append(" ");

????????}

????????if (config.get(FindConfig.ORDER_BY) != null && !"".equals(config.get(FindConfig.ORDER_BY))){

????????????sql.append("order by ").append(config.get(FindConfig.ORDER_BY)).append(" ");

????????}

????????if (config.get(FindConfig.PAGE) != null && !"".equals(config.get(FindConfig.PAGE))){

????????????int page = config.get(FindConfig.PAGE) != null && !"".equals(config.get(FindConfig.PAGE)) ? Integer.parseInt(config.get(FindConfig.PAGE)) : 1;

????????????int limit = config.get(FindConfig.SIZE) != null && !"".equals(config.get(FindConfig.SIZE)) ? Integer.parseInt(config.get(FindConfig.SIZE)) : 10;

????????????sql.append(" limit ").append( (page-1)*limit ).append(" , ").append(limit);

????????}

????????log.info("[{}] - 查询操作,sql: {}",table,sql);

????????return runEntitySql(sql.toString());

????}

    以上就是本篇文章【(分享源码)计算机毕业设计必看必学 原创定制程序 java、PHP、python、小程序、文案全套、毕设成品等 springboot基于微信小程序的安全教育平台面向大学85871】的全部内容了,欢迎阅览 ! 文章地址:http://www.riyuangf.com/quote/12982.html 
     行业      资讯      企业新闻      行情      企业黄页      同类资讯      网站地图      返回首页 迅易阁资讯移动站 http://qyn41e.riyuangf.com/ , 查看更多