代码编织梦想

项目介绍

在社会快速发展的影响下,使线上教学平台的管理和运营比过去十年更加理性化。依照这一现实为基础,设计一个快捷而又方便的网上线上教学平台系统是一项十分重要并且有价值的事情。对于传统的线上教学平台控制模型来说,网上线上教学平台系统具有许多不可比拟的优势,首先是快速更新线上教学平台的信息,其次是大量信息的管理,最后是高度安全,以及使用简单等特性,这使得线上教学平台系统的管理和运营非常方便。进入21世纪,因为科技和经济的迅速发展,人民群众对非物质层面的精神需求正变得越来越多元化。本系统是为了实现这些目标而提出来的。

开发环境

开发语言:Java
数据库 :MySQL
系统架构:B/S
后端框架:SpringBoot
前端框架:Vue
开发工具:IDEA或者Eclipse,JDK1.8,Maven

系统截图

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

部分代码

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();
    }
}
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_3306428634/article/details/127990661

老夫花了 3 天时间整理了一份史上最强 Java 学习路线图,送给有缘人!-爱代码爱编程

高考结束,已经有同学开始在知乎的私信里咨询我大一的 Java 学习路线了,我天呐,这觉悟,这么早就开始卷了吗? 趁热打铁,二哥就来给需要的同学准备一份新鲜出炉的 Java 学习路线图吧,送给有缘人。 第一部分:Java 基础篇 这个阶段就是编程入门,掌握 Java 这门编程语言的基本语法,为后面的修行之路打好基础。 包括的知识点有:

怒肝 Java 学习路线一条龙!-爱代码爱编程

文章为转载   请关注鱼皮好友  持续获取 有效学习知识 现在网上的编程资料实在太多了,而且人人肯定都说自己的最好,那就导致大家又不知道怎么选了。大部分的博主推荐资源,也就是把播放量高的视频说一遍,水一期视频,没有一条很清晰的学习路线。 所以今天我的这个 Java 学习路线就做做减法,给大家来个一条龙服务,Java 要学的知识点、对应的最佳学习资源和预

Springboot+Vue-爱代码爱编程

文章目录 Springboot+Vue博客项目总结 1.工程搭建 1.1 新建maven工程1.2 application.properties配置1.3 配置分页插件1.4 配置解决跨域1.5 添加启动类2.统一异常处理3.登录功能实现 3.1 接口说明3.2 JWT3.3 Controller3

Java 学习路线一条龙版-爱代码爱编程

Java 学习路线一条龙版 Java 学习路线一条龙版 by 程序员鱼皮 💂 + 💻 = 👴🏽 学习路线来源于:程序员鱼皮,大家可以去b站看看他的视频。 视频导读:https://www.bilibili.com/video/BV1Qf4y1K7ff/ 大纲 路线特点 最新,完整一条龙的大厂 Java 学习路线,从入门到入土同时适

人类高质量 Java 学习路线【一条龙版】-爱代码爱编程

大家好,我是张讨嫌。现在网上的编程资料实在太多了,而且人人肯定都说自己的最好,那就导致大家又不知道怎么选了。大部分的博主推荐资源,也就是把播放量高的视频说一遍,水一期视频,没有一条很清晰的学习路线。 所以今天我的这个 Java 学习路线就做做减法,给大家来个一条龙服务,Java 要学的知识点、对应的最佳学习资源和预计要花费的时间,都安排的明明白白的,不用

乔戈里推荐的新版Java学习路线,开源!-爱代码爱编程

Java 学习路线一条龙版 by 程序员鱼皮 所以我又抽空做了新版的 Java 学习路线一条龙,补充了很多内容(比如面试题、常用 Java 类库、常用软件等),让整个路线 字数翻倍 。同时区分了各知识点的学习必要性,使得无论是急着找工作还是想花更多时间进大厂的同学,都可以跟着这份路线进行学习。 路线较长,建议阅读前先看导读视频:http

java学习路线-爱代码爱编程

Java 学习路线 Java 学习路线一条龙版 by 程序员鱼皮 💂 + 💻 = 👴🏽 建议先观看视频导读:https://www.bilibili.com/video/BV1Qf4y1K7ff/ 大纲 路线特点 最新,完整一条龙的大厂 Java 学习路线,从入门到入土同时适用于想全面学习 / 快速求职的同学,可以根据符号来定制自

java 学习路线_是浅栀吖的博客-爱代码爱编程

大纲 前言 首先呢,我们要了解 Java 的应用场景和就业方向,看看和自己的学习目的是否一致,目前,Java 的岗位需求多,是后台开发的主流编程语言,功能强大,还是很值得学习的。 那大家可以看我的视频了解:https://www.bilibili.com/video/BV1y3411r7pX/ 阶段 1:Java 入门 目标 培养兴趣、快速

计控实验(一)—— 数字滤波实验_阿健也会编程的博客-爱代码爱编程

太原理工大学计算机控制技术实验之数字滤波实验 数字滤波实验 实验原理实验内容实验线路图设计参考流程图 实验步骤及结果采样周期设计运行结果 思考题 实验原理 一般现场环境比较恶劣,干扰源比较多,消除和抑

springboot总结_e_nanxu的博客-爱代码爱编程

总结 一、Spring Ioc容器 就是将对象的创建放在Ioc容器中,从而可以随处调用 ​ 1.1 主要的接口,用于解析配置文件 ​ ① BeanFactory接口 ​ ② ApplicationContext

java语言的核心特点、特性&核心机制_超级西红柿鸡蛋面的博客-爱代码爱编程

Java语言的主要特点 1.跨平台性:所谓的跨平台性,是指软件可以不受计算机硬件和操作系统的约束而在任意计算机环境下正常运行。这是软件发展的趋势和编程人员追求的目标。之所以这样说,是因为计算机硬件的种类繁多,操作系统也各不相

为什么我的视频播放量上不去?_大 周 网 络的博客-爱代码爱编程

正在做自媒体视频的你有没有这个疑问:自己视频的播放量为什么一直上不去? 其实除了内容本身的质量外,还有很多外在因素,这些因素也很容易被新手们忽略,导致播放量一直上不去,收益自然也不会很高。 今天这期内容就来跟粉丝们分享一

【第四部分 | javascript 基础】1:js概述、变量及输入输出_graskli的博客-爱代码爱编程

目录 | 概述 | JS的书写位置 | 输入输出 | 变量 命名规范 基本使用 通过输入语句prompt把信息赋值给变量 | 数据类型 JS数据类型的特别 简单数据类型 简介 简单数据类型 Number 简单数据类型 String 简单数据类型 Boolean、Undefined、Null 获取类型 类型转换 |

行业分析| 智慧消防对讲_可视对讲行业分析-爱代码爱编程

消防工程关系国计民生,关系到每个公民的人身和财产安全,在每个场所的建设中,消防工程建设是必不可少的一个板块,包括消防应急通道建设和应急设备建设两个方面。其中消防系统设备建设主要分为九大系统的建设:消防水系统、火灾自动报警系统

app测试面试题汇总(基础篇、进阶篇)_云管理app 测试面试-爱代码爱编程

一、基础篇 1、请介绍一下,APP测试流程? APP测试流程与web测试流程类似,分为如下七个阶段: 1.根据需求说明书编写测试计划; 2.制定测试方案,主要是测试任务、测试人员和测试时间的分配; 3.测试准备,包

maven了解-爱代码爱编程

maven是基于java平台的项目构建,依赖管理和项目信息管理的一个工具。 maven能为我们解决什么问题? ①添加第三方jar包 按照最原始的做法,我们是手动复制jar包到项目WEB-INF/lib下,每个项目都会有一份,造成大量重复文件。而Maven将jar包放在本地仓库中统一管理,需要jar包只需要用坐标的方式引用即可。 ②jar包之间的依赖关

小学生python游戏编程arcade-爱代码爱编程

小学生python游戏编程arcade----碰撞精灵消失问题 前言碰撞精灵消失问题1、多余的精灵不能及时消失1.1 问题1.2 失败代码1.3 记录备忘1.4 代码实现 2、放置位置2.1 代码放在