基于php的考研互助交流

🍅 作者主页:Selina .a

🍅 简介:Java领域优质创作者🏆、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行交流合作。

主要内容:SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app、大数据、物联网、机器学习等设计与开发。

🍅文末获取源码联系🍅  

目录

课题的提出

数据库设计

系统功能设计

关键代码

 专栏推荐

推荐项目

源码获取


课题的提出

随着社会的发展,大学生考研的管理形势越来越严峻。越来越多的用户利用互联网获得信息,但考研信息鱼龙混杂,信息真假难以辨别。为了方便用户更好的获得本考研信息,因此,设计一种安全高效的考研互助交流系统极为重要。

为设计一个安全便捷,并且使用户更好获取本考研信息,本文主要有安全、简洁为理念,实现用户快捷寻找考研信息,从而解决考研信息复杂难辨的问题。该系统采用PHP语言和mysql数据库进行开发设计,通过对考研互助交流管理流程的分析,分析了其功能性和非功能性需求,设计了考研互助交流系统,该平台包括管理员和用户两部分。同时还能为用户提供一个方便实用的考研互助交流系统,使得用户能够及时地找到合适自己的考研信息。管理员在使用本系统时,可以通过后台管理员界面管理用户的信息,也可以发布系统公告,让用户及时了解考研信息。这样,用户就可以安全高效地找到考研信息。


数据库设计

数据表是用来保存多种数据的表,它是所有数据库的核心对象,且对于软件开发有着不可替代的作用。其相关数据表如下:

表4-1 复试调剂

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

title

varchar

200

标题

introduction

longtext

4294967295

简介

picture

longtext

4294967295

图片

content

longtext

4294967295

内容

表4-2:历年真题

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

biaoti

varchar

200

标题

fengmian

longtext

4294967295

封面

nianfen

varchar

200

年份

timuleibie

varchar

200

题目类别

neirong

longtext

4294967295

内容

表4-3:课程资料

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

kechengmingcheng

varchar

200

课程名称

kechengfenlei

varchar

200

课程分类

kechengfengmian

longtext

4294967295

课程封面

kechengshipin

longtext

4294967295

课程视频

kaikeshijian

date

开课时间

jiaoshixingming

varchar

200

教师姓名

kechengneirong

longtext

4294967295

课程内容

clicktime

datetime

最近点击时间

clicknum

int

点击次数

0


系统功能设计

当人们打开系统的网址后,首先看到的就是首页界面。在这里,人们能够看到系统的导航条,通过导航条导航进入各功能展示页面进行操作。系统首页界面如图5-1所示。

 在用户注册页面的输入用户注册信息进行注册操作,用户注册页面如图5-2所示:

 在院校信息页面的输入栏中输入院校名称和院校专业进行查询,进入院校信息页面可以查看院校信息详细信息,并进行收藏操作;院校信息页面如图5-3所示:

 在备考经验页面的输入栏中输入标题进行查询,进入备考经验页面可以查看到备考经验详细信息,并进行收藏操作,页面如图5-4所示:

 在历年真题页面的输入栏中输入标题和题目类别进行查询,进入历年真题页面可以查看到历年真题详细信息,并进行收藏操作;页面如图5-5所示:

 在测评信息页面的输入栏中输入标题进行查询,进入测评信息页面可以查看到测评信息详细信息,并进行测评和收藏操作;页面如图5-6所示:

 在个人中心页面输入个人信息可以进行更新操作,还可以对我的发布和我的收藏页面进行详细操作;如图5-7所示:

 后台用户登录,在登录页面选择需要登录的角色,在正确输入用户名和密码后,进入系统进行操作,如图5-8所示。

 管理员登录系统后可以查看到系统首页、个人中心、用户管理、院校信息管理、备考经验管理、考研政策管理、课程资料管理、历年真题管理、考研倒计时管理、测评信息管理、在线测评管理、打卡信息管理、交流论坛、系统管理等功能进行详细操作,如图5-9所示。

 用户管理;在用户页面输入用户账号和用户姓名进行查询,新增或删除用户列表,并对用户详细信息进行详情、修改或删除操作;如图5-10所示。

 院校信息管理;在院校信息页面输入院校名称和院校专业进行查询,新增或删除院校信息列表,并对院校信息详细信息进行详情、修改或删除操作;如图5-11所示。

 备考经验管理;在备考经验页面输入标题进行查询,新增或删除备考经验列表,并对备考经验详细信息进行详情、修改或删除操作;如图5-12所示。

 考研政策管理;在考研政策页面输入标题进行查询,新增或删除考研政策列表,并对考研政策详细信息进行详情、修改或删除操作;如图5-13所示。

 课程资料管理;在课程资料页面输入课程名称进行查询,新增或删除课程资料列表,并对课程资料详细信息进行详情、修改或删除操作;如图5-14所示。

 历年真题管理;在历年真题页面输入标题和题目类别进行查询,新增或删除历年真题列表,并对历年真题详细信息进行详情、修改或删除操作;如图5-15所示。

 考研倒计时管理;在考研倒计时页面输入标题进行查询,新增或删除考研倒计时列表,并对考研倒计时详细信息进行详情、修改或删除操作;如图5-16所示。

 测评信息管理;在测评信息页面输入标题进行查询,新增或删除测评信息列表,并对测评信息详细信息进行详情、修改或删除操作;如图5-17所示。

 在线测评管理;在在线测评页面输入标题、测试结果和选择是否提高审核进行查询或删除在线测评列表,并对在线测评详细信息进行详情、、审核、修改或删除操作;如图5-18所示。

 打卡信息管理;在打卡信息页面输入标题和用户姓名进行查询或删除打卡信息列表,并对打卡信息详细信息进行详情、修改或删除操作;如图5-19所示。

 交流论坛管理;在交流论坛页面输入帖子标题进行查询或删除交流论坛列表,并对交流论坛详细信息进行详情、修改、查看评论或删除操作;如图5-20所示。

 系统管理管理;在系统简介页面输入标题进行查询系统简介列表,并对系统简介详细信息进行详情或修改操作,还可以对轮播图和关于我们进行详细操作;如图5-21所示。

 用户登录进入系统后可以查看到系统首页、个人中心、在线测评管理、打卡信息管理等功能进行详细操作,如图5-22所示。

 


关键代码


package com.controller;


import java.util.Arrays;
import java.util.Calendar;
import java.util.Date;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
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.ResponseBody;
import org.springframework.web.bind.annotation.RestController;

import com.annotation.IgnoreAuth;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.entity.TokenEntity;
import com.entity.UserEntity;
import com.service.TokenService;
import com.service.UserService;
import com.utils.CommonUtil;
import com.utils.MPUtil;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.ValidatorUtils;

/**
 * 登录相关
 */
@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);
    	UserEntity u = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername()));
    	if(u!=null && u.getId()!=user.getId() && u.getUsername().equals(user.getUsername())) {
    		return R.error("用户名已存在。");
    	}
        userService.updateById(user);//全部更新
        return R.ok();
    }

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

 专栏推荐

Spring Boot+Vue+CSS+JavaScript+HTML等技术项目专栏推荐

项目汇总专栏推荐


推荐项目

基于Node.js+Vue+MySQL的小型企业工资管理系统

基于SSM+Android+MySQL的校园考研论坛 

基于Spring Boot+Android+MySQL的记录生活管理系统 

基于微信小程序的农业电商服务管理系统 

基于微信小程序的智慧物流小程序的设计与实现 


源码获取

 大家点赞、收藏、关注、评论啦 、查看👇🏻获取联系方式👇🏻