基于java+ssm+vue的学院学生论坛

项目介绍

网络的覆盖,电脑手机的普及使得人们的交流上升到网络信息化的层面上来,论坛系统就是在这样的环境下就诞生了,而且深受用户喜爱。

本学院学生论坛系统应用Java技术,MYSQL数据库存储数据,基于SSM+Vue框架开发。在网站的整个开发过程中,首先对系统进行了需求分析,设计出系统的主要功能模块,其次对网站进行总体规划和详细设计,最后对学院学生论坛系统进行了系统测试,包括测试定义,测试方法,测试方案等,并对测试结果进行了分析和总结,进而得出系统的不足及需要改进的地方,为以后的系统维护和扩展提供了方便。

本系统布局合理、色彩搭配和谐、框架结构设计清晰,具有操作简单,界面清晰,管理方便,功能完善等优势,有很高的使用价值。

在这里插入图片描述

开发环境

编程语言:Java
数据库 :Mysql
系统架构:B/S
后端框架:SSM
编译工具:idea或者eclipse,jdk1.8,maven
支持定做:java/php/python/android/小程序ue/爬虫/c#/asp.net

系统实现

5.1.1系统主界面
用户进入本系统可查看系统信息,主要包括首页,校园论坛以及系统公告等,系统主界面展示如图5.1所示。
在这里插入图片描述

图5.1网站主界面

5.1.2留言反馈界面
用户登录后可进行留言反馈操作,留言反馈界面展示如图5.2所示。
在这里插入图片描述

图5.2 留言反馈界面

5.1.3用户注册界面
未有账号的用户可进入注册界面进行注册操作,用户注册界面展示如图5.3所示。
在这里插入图片描述

图5.3用户注册界面

5.1.4用户登录界面
用户在登录界面可输入正确的登录信息,点击提交按钮进行登录操作,用户登录界面展示如图5.4所示。
在这里插入图片描述

图5.4用户登录界面

5.1.5校园论坛界面
用户在校园论坛界面可查看已有帖子信息,并可查看详情,登录后可进行发帖、评论等,校园论坛界面展示如图5.5所示,发帖界面展示如图5.6所示。
在这里插入图片描述

图5.5校园论坛界面
在这里插入图片描述

图5.6 发帖界面

5.2 管理员功能模块的实现
5.2.1用户管理界面
管理员可查看、添加、修改和删除用户信息,用户管理界面展示如图5.7所示。
在这里插入图片描述

图5.7 用户管理界面

5.2.2留言板管理界面
管理员可查看留言板信息,并可进行回复、修改和删除操作,留言板管理界面展示如图5.8所示,回复界面展示如图5.9所示。
在这里插入图片描述

图5.8 留言板管理界面
在这里插入图片描述

图5.9 回复信息界面

5.2.3系统公告管理界面
管理员可添加、修改和删除系统公告信息,系统公告管理界面展示如图5.10所示。
在这里插入图片描述

图5.10 系统公告管理界面

5.2.4校园论坛管理界面
管理员可管理校园论坛信息,校园论坛管理界面展示如图5.11所示。
在这里插入图片描述

图5.11 校园论坛管理界面

核心代码

package com.controller;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Map;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Date;
import java.util.List;
import javax.servlet.http.HttpServletRequest;

import com.utils.ValidatorUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.format.annotation.DateTimeFormat;
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 com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.annotation.IgnoreAuth;

import com.entity.MessagesEntity;
import com.entity.view.MessagesView;

import com.service.MessagesService;
import com.service.TokenService;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.MD5Util;
import com.utils.MPUtil;
import com.utils.CommonUtil;


/**
 * 留言板
 * 后端接口
 * @author 
 * @email 
 * @date 
 */
@RestController
@RequestMapping("/messages")
public class MessagesController {
    @Autowired
    private MessagesService messagesService;
    


    /**
     * 后端列表
     */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params,MessagesEntity messages, 
		HttpServletRequest request){
    	if(!request.getSession().getAttribute("role").toString().equals("管理员")) {
    		messages.setUserid((Long)request.getSession().getAttribute("userId"));
    	}

        EntityWrapper<MessagesEntity> ew = new EntityWrapper<MessagesEntity>();
		PageUtils page = messagesService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, messages), params), params));
        return R.ok().put("data", page);
    }
    
    /**
     * 前端列表
     */
    @RequestMapping("/list")
    public R list(@RequestParam Map<String, Object> params,MessagesEntity messages, HttpServletRequest request){
    	if(!request.getSession().getAttribute("role").toString().equals("管理员")) {
    		messages.setUserid((Long)request.getSession().getAttribute("userId"));
    	}

        EntityWrapper<MessagesEntity> ew = new EntityWrapper<MessagesEntity>();
		PageUtils page = messagesService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, messages), params), params));
        return R.ok().put("data", page);
    }

	/**
     * 列表
     */
    @RequestMapping("/lists")
    public R list( MessagesEntity messages){
       	EntityWrapper<MessagesEntity> ew = new EntityWrapper<MessagesEntity>();
      	ew.allEq(MPUtil.allEQMapPre( messages, "messages")); 
        return R.ok().put("data", messagesService.selectListView(ew));
    }

	 /**
     * 查询
     */
    @RequestMapping("/query")
    public R query(MessagesEntity messages){
        EntityWrapper< MessagesEntity> ew = new EntityWrapper< MessagesEntity>();
 		ew.allEq(MPUtil.allEQMapPre( messages, "messages")); 
		MessagesView messagesView =  messagesService.selectView(ew);
		return R.ok("查询留言板成功").put("data", messagesView);
    }
	
    /**
     * 后端详情
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") Long id){
        MessagesEntity messages = messagesService.selectById(id);
        return R.ok().put("data", messages);
    }

    /**
     * 前端详情
     */
    @RequestMapping("/detail/{id}")
    public R detail(@PathVariable("id") Long id){
        MessagesEntity messages = messagesService.selectById(id);
        return R.ok().put("data", messages);
    }
    



    /**
     * 后端保存
     */
    @RequestMapping("/save")
    public R save(@RequestBody MessagesEntity messages, HttpServletRequest request){
    	messages.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    	//ValidatorUtils.validateEntity(messages);

        messagesService.insert(messages);
        return R.ok();
    }
    
    /**
     * 前端保存
     */
    @RequestMapping("/add")
    public R add(@RequestBody MessagesEntity messages, HttpServletRequest request){
    	messages.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    	//ValidatorUtils.validateEntity(messages);
    	messages.setUserid((Long)request.getSession().getAttribute("userId"));

        messagesService.insert(messages);
        return R.ok();
    }

    /**
     * 修改
     */
    @RequestMapping("/update")
    public R update(@RequestBody MessagesEntity messages, HttpServletRequest request){
        //ValidatorUtils.validateEntity(messages);
        messagesService.updateById(messages);//全部更新
        return R.ok();
    }
    

    /**
     * 删除
     */
    @RequestMapping("/delete")
    public R delete(@RequestBody Long[] ids){
        messagesService.deleteBatchIds(Arrays.asList(ids));
        return R.ok();
    }
    
    /**
     * 提醒接口
     */
	@RequestMapping("/remind/{columnName}/{type}")
	public R remindCount(@PathVariable("columnName") String columnName, HttpServletRequest request, 
						 @PathVariable("type") String type,@RequestParam Map<String, Object> map) {
		map.put("column", columnName);
		map.put("type", type);
		
		if(type.equals("2")) {
			SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
			Calendar c = Calendar.getInstance();
			Date remindStartDate = null;
			Date remindEndDate = null;
			if(map.get("remindstart")!=null) {
				Integer remindStart = Integer.parseInt(map.get("remindstart").toString());
				c.setTime(new Date()); 
				c.add(Calendar.DAY_OF_MONTH,remindStart);
				remindStartDate = c.getTime();
				map.put("remindstart", sdf.format(remindStartDate));
			}
			if(map.get("remindend")!=null) {
				Integer remindEnd = Integer.parseInt(map.get("remindend").toString());
				c.setTime(new Date());
				c.add(Calendar.DAY_OF_MONTH,remindEnd);
				remindEndDate = c.getTime();
				map.put("remindend", sdf.format(remindEndDate));
			}
		}
		
		Wrapper<MessagesEntity> wrapper = new EntityWrapper<MessagesEntity>();
		if(map.get("remindstart")!=null) {
			wrapper.ge(columnName, map.get("remindstart"));
		}
		if(map.get("remindend")!=null) {
			wrapper.le(columnName, map.get("remindend"));
		}


		int count = messagesService.selectCount(wrapper);
		return R.ok().put("count", count);
	}
	


}

论文参考

在这里插入图片描述
目 录
摘 要 I
Abstract II
第一章 绪论 1
1.1研究背景 1
1.2 研究现状 1
1.3 研究目标 1
第二章 相关技术介绍 3
2.1Java技术 3
2.2Vue框架 3
2.3MYSQL数据库 4
2.4 B/S结构 4
2.5 SSM框架 5
第三章 系统分析 6
3.1 可行性分析 6
3.1.1技术可行性 6
3.1.2经济可行性 6
3.1.3操作可行性 6
3.1.4时间可行性 7
3.2系统性能分析 7
3.2.1 系统安全性 7
3.2.2 数据完整性 7
3.2.3系统可扩展性 8
3.3系统流程分析 8
3.3.1注册流程 8
3.3.2登录流程 9
3.4.3论坛发帖流程 9
3.4系统功能分析 10
3.4.1用户功能分析 10
3.4.2管理员功能分析 11
第四章 系统设计 12
4.1系统概要设计 12
4.2 系统结构设计 12
4.3 数据库设计 13
4.3.1数据库E-R图设计 13
4.3.2数据库表设计 15
第五章 系统的实现 17
5.1 用户功能模块的实现 17
5.1.1系统主界面 17
5.1.2留言反馈界面 17
5.1.3用户注册界面 18
5.1.4用户登录界面 18
5.1.5校园论坛界面 19
5.2 管理员功能模块的实现 20
5.2.1用户管理界面 20
5.2.2留言板管理界面 21
5.2.3系统公告管理界面 21
5.2.4校园论坛管理界面 22
第六章 系统测试 23
6.1测试定义 23
6.2测试方法 23
6.3测试方案计划 24
6.4测试结论 24
结束语 26
致 谢 27
参考文献 28

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值