当前位置: 首页 > news >正文

基于springboot+vue的游戏交流论坛系统 elementui

随着时代的发展,人们对手机和电脑的依赖越来越严重。很多时候人们会在下班之后或者下课之后和寝室以及朋友们来一盘游戏。以度过这些空闲时间。但是对于更多的人来说,他们可能是在孤军奋战,并没有更多的朋友和同学去进行交流,这个时候就需要到专业的游戏分享网站和交流系统上来获取更多的资讯,以及获取更多的游戏好友。为此我们开发了基于springboot+vue的游戏交流论坛系统
请添加图片描述
系统权限按管理员和用户两类涉及用户划分。
;1;管理员功能需求
管理员登陆后,主要包括首页、个人中心、用户管理、游戏类型管理、游戏文章管理、交流论坛、系统管理等功能
;2;用户功能需求
用户登陆后,主要包括首页、个人中心、游戏文章管理、我的收藏管理等功能
这个系统的功能结构设计如图所示。
请添加图片描述
游戏分享的需求和管理上的不断提升,游戏分享管理的潜力将无限扩大,游戏分享网站在业界被广泛关注,本系统及对此进行总体分析,将游戏分享信息管理的发展提供参考。游戏分享网站对游戏分享有着明显的带动效应,尤其对管理者的管理帮助更大。
本系统主要包括管理员和用户两个角色组成:主要包括首页、个人中心、用户管理、游戏类型管理、游戏文章管理、交流论坛、系统管理等功能的管理系统。

请添加图片描述
环境需要
1.运行环境:最好是java jdk 1.8,这是目前最稳定的JDK也是被使用最多的JDK版本。
2.IDE环境:IDEA,Eclipse都可以。推荐IDEA;
3.tomcat环境:Tomcat7/Tomcat8/Tomcat9版本均可
4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS;
5.数据库:MySql 5.7版本;
6.是否Maven项目:是;

技术栈

  1. 后端:Spring+SpringMVC+Mybatis
  2. 前端:vue+CSS+JavaScript+jQuery

请添加图片描述


/**
 * 登录相关
 */
@RequestMapping("users")
@RestController
public class UserController{
	
	@Autowired
	private UserService userService;
	
	@Autowired
	private TokenService tokenService;

	/**
	 * 登录
	 */
	@IgnoreAuth
	@PostMapping(value = "/login")
	public R login(String username, String password, String captcha, HttpServletRequest request) {
		UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
		if(user==null || !user.getPassword().equals(password)) {
			return R.error("账号或密码不正确");
		}
		String token = tokenService.generateToken(user.getId(),username, "users", user.getRole());
		return R.ok().put("token", token);
	}
	
	/**
	 * 注册
	 */
	@IgnoreAuth
	@PostMapping(value = "/register")
	public R register(@RequestBody UserEntity user){
//    	ValidatorUtils.validateEntity(user);
    	if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
    		return R.error("用户已存在");
    	}
        userService.insert(user);
        return R.ok();
    }

	/**
	 * 退出
	 */
	@GetMapping(value = "logout")
	public R logout(HttpServletRequest request) {
		request.getSession().invalidate();
		return R.ok("退出成功");
	}
	
	/**
     * 密码重置
     */
    @IgnoreAuth
	@RequestMapping(value = "/resetPass")
    public R resetPass(String username, HttpServletRequest request){
    	UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
    	if(user==null) {
    		return R.error("账号不存在");
    	}
    	user.setPassword("123456");
        userService.update(user,null);
        return R.ok("密码已重置为:123456");
    }
	
	/**
     * 列表
     */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params,UserEntity user){
        EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
    	PageUtils page = userService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.allLike(ew, user), params), params));
        return R.ok().put("data", page);
    }

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

    /**
     * 信息
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") String id){
        UserEntity user = userService.selectById(id);
        return R.ok().put("data", user);
    }
    
    /**
     * 获取用户的session用户信息
     */
    @RequestMapping("/session")
    public R getCurrUser(HttpServletRequest request){
    	Long id = (Long)request.getSession().getAttribute("userId");
        UserEntity user = userService.selectById(id);
        return R.ok().put("data", user);
    }

    /**
     * 保存
     */
    @PostMapping("/save")
    public R save(@RequestBody UserEntity user){
//    	ValidatorUtils.validateEntity(user);
    	if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
    		return R.error("用户已存在");
    	}
        userService.insert(user);
        return R.ok();
    }

    /**
     * 修改
     */
    @RequestMapping("/update")
    public R update(@RequestBody UserEntity user){
//        ValidatorUtils.validateEntity(user);
        userService.updateById(user);//全部更新
        return R.ok();
    }

    /**
     * 删除
     */
    @RequestMapping("/delete")
    public R delete(@RequestBody Long[] ids){
        userService.deleteBatchIds(Arrays.asList(ids));
        return R.ok();
    }
}

请添加图片描述
请添加图片描述
目录
1 绪论 1
1.1课题背景 1
1.2课题研究现状 1
1.3初步设计方法与实施方案 2
1.4本文研究内容 2
2 系统开发环境 4
2.1 使用工具简介 4
2.2 环境配置 4
2.3 B/S结构简介 4
2.4 MySQL数据库 5
2.5 框架介绍 5
3 系统分析 6
3.1系统可行性分析 6
3.1.1经济可行性 6
3.1.2技术可行性 6
3.1.3运行可行性 6
3.2系统现状分析 6
3.3功能需求分析 7
3.4系统设计规则与运行环境 8
3.5系统流程分析 8
3.5.1操作流程 8
3.5.2添加信息流程 9
3.5.3删除信息流程 10
4 系统设计 11
4.1系统设计主要功能 11
4.2数据库设计 11
4.2.1数据库设计规范 11
4.2.2 E/R图 11
4.2.3数据表 12
5 系统实现 25
5.1系统功能模块 25
5.2后台模块 27
5.2.1管理员功能模块 27
5.2.2用户功能模块 30
6 系统测试 33
6.1功能测试 33
6.2可用性测试 33
6.3性能测试 34
6.4测试结果分析 34
7结 论 35
参考文献 36
致 谢 37

相关文章:

  • 【目标检测算法】YOLO-V1~V3原理梳理
  • 【Kafka】Docker安装kafka、搭建kafka集群
  • 4.【Linux虚拟机】创建自己的docker image并提供后端服务
  • 基于STFT和卷积神经网络的时序数据分类 代码+数据 可直接运行
  • 神经网络建模的适用范围,神经网络建模流程详解
  • 实名核验类API推荐
  • cmakelist.txt , cmake, makefile, make 【超快区分理解】
  • 【去雾论文阅读】Saturation Based Iterative Approach for Single Image Dehazing
  • 机器学习:详细推导序列最小优化SMO算法+Python实现
  • Flask 学习-20. route 路由中的 endpoint 参数
  • bp神经网络反向传播推导,bp神经网络的传递函数
  • Flask 学习-21. 项目配置通过.env环境变量启动开发/生产环境
  • 图像识别和机器视觉区别,比较两幅图像的相似度
  • Jetson Orin平台Jetpack5.0.2 VIFALC_TDSTATE问题调试
  • Elastic search的日期问题
  • 【跃迁之路】【477天】刻意练习系列236(2018.05.28)
  • Android Volley源码解析
  • Angular js 常用指令ng-if、ng-class、ng-option、ng-value、ng-click是如何使用的?
  • javascript 哈希表
  • Laravel核心解读--Facades
  • seaborn 安装成功 + ImportError: DLL load failed: 找不到指定的模块 问题解决
  • Swift 中的尾递归和蹦床
  • Vue 重置组件到初始状态
  • 笨办法学C 练习34:动态数组
  • 订阅Forge Viewer所有的事件
  • 分享一个自己写的基于canvas的原生js图片爆炸插件
  • 海量大数据大屏分析展示一步到位:DataWorks数据服务+MaxCompute Lightning对接DataV最佳实践...
  • 今年的LC3大会没了?
  • 前端面试题总结
  • 如何优雅地使用 Sublime Text
  • 如何抓住下一波零售风口?看RPA玩转零售自动化
  • 入口文件开始,分析Vue源码实现
  • 使用agvtool更改app version/build
  • 通过npm或yarn自动生成vue组件
  • 一起来学SpringBoot | 第十篇:使用Spring Cache集成Redis
  • 在weex里面使用chart图表
  • d²y/dx²; 偏导数问题 请问f1 f2是什么意思
  • 【云吞铺子】性能抖动剖析(二)
  • # Swust 12th acm 邀请赛# [ A ] A+B problem [题解]
  • %check_box% in rails :coditions={:has_many , :through}
  • (16)UiBot:智能化软件机器人(以头歌抓取课程数据为例)
  • (八)Flask之app.route装饰器函数的参数
  • (笔试题)合法字符串
  • (附源码)spring boot校园健康监测管理系统 毕业设计 151047
  • (附源码)springboot 基于HTML5的个人网页的网站设计与实现 毕业设计 031623
  • (附源码)ssm高校升本考试管理系统 毕业设计 201631
  • (机器学习-深度学习快速入门)第一章第一节:Python环境和数据分析
  • (牛客腾讯思维编程题)编码编码分组打印下标题目分析
  • (三)Honghu Cloud云架构一定时调度平台
  • (四)linux文件内容查看
  • (转)IIS6 ASP 0251超过响应缓冲区限制错误的解决方法
  • (转)编辑寄语:因为爱心,所以美丽
  • *2 echo、printf、mkdir命令的应用
  • .htaccess 强制https 单独排除某个目录
  • /etc/fstab和/etc/mtab的区别