springboot/ssm个人博客系统Java代码编写web在线博客相册管理项目

news/2024/12/26 3:49:44 标签: java, spring boot, 开发语言

springboot/ssm个人博客系统Java代码编写web在线博客相册管理项目

基于springboot(可改ssm)+vue项目

开发语言:Java

框架:springboot/可改ssm + vue

JDK版本:JDK1.8(或11)

服务器:tomcat

数据库:mysql 5.7(或8.0)

数据库工具:Navicat/sqlyog

开发软件:eclipse/idea

依赖管理包:Maven

代码+数据库保证完整可用,免费修改项目名以及数据库时间!

可提供¥远程调试并指导运行服务~

可提供¥讲解以及修改服务,比如界面、功能、框架等等...

千套代码,欢迎带题目咨询哦~~

java">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();
    }
}


http://www.niftyadmin.cn/n/5799759.html

相关文章

如何在防火墙上指定ip访问服务器上任何端口呢

在 Linux 系统中&#xff0c;ufw&#xff08;Uncomplicated Firewall&#xff09;是一个常用的防火墙管理工具&#xff0c;它通过命令行来配置和管理防火墙规则。如果你想要为指定的 IP 添加规则&#xff0c;可以按照以下步骤操作。 1. 确认 ufw 是否已启用 首先&#xff0c;…

Electron -- 预加载脚本preload.js(三)

preload.js 是一个在渲染进程加载之前执行的脚本&#xff0c;它有权访问渲染器全局&#xff08;例如 window 和 document&#xff09;和 Node.js 环境&#xff08;主进程&#xff09;。这个脚本在网页内容加载之前执行&#xff0c;它具有比普通渲染器更高的权限&#xff0c;可以…

解决shallow update not allowed错误

在将外网代码推送到内网的时候&#xff0c;出现shallow update not allowed的错误。 发现只要在manifest中带了clone-depth"1"的仓均会如此。这里是因为没有完整clone导致push失败。 错误如下图 解决办法&#xff1a; git filter-branch -- --all 执行命令后&…

ABAP - SAP历史变动数据

问题&#xff1a;查询凭证的变动历史&#xff0c;如要查询销售订单抬头的修改历史数据效果如图1.1所示 图 1.1 方法&#xff1a;事务代码&#xff08;SE38&#xff09;&#xff1a;RSSCD100 查询对象类的方法&#xff0c;SE16N查询TCDOB表

浅谈算法交易

本文想基于我的简单理解说说什么是算法交易&#xff0c;或者说是量化交易。 原文地址请访问&#xff1a;浅谈算法交易 什么是算法交易&#xff1f; 刚开始接触算法交易的时候&#xff0c;对它的理解&#xff0c;它就是把我平时的交易规则搬进计算机里自动执行。这个理解也没…

如何在 Ubuntu 22.04 上安装 Ansible 教程

简介 Ansible 对于系统管理员和 DevOps 专家来说是一个非常有价值的工具&#xff0c;他们希望有效地自动化他们的 IT 工作流程。 无论是处理单个服务器的自动化还是庞大的网络&#xff0c;Ansible 的能力都非常出色。 本文提供了关于如何在 Ubuntu 22.04 上安装 Ansible 的详细…

VSCode 插件开发实战(七):插件支持了哪些事件,以及如何利用和监听这些事件

前言 VSCode 作为现代开发者的首选编辑器之一&#xff0c;其核心优势在于其高度可扩展性。通过自定义插件&#xff0c;开发者可以根据自己的需求对编辑器进行功能扩展和优化。在这些插件开发过程中&#xff0c;事件处理和监听机制尤为重要&#xff0c;它们允许插件在特定事件发…

构建一个rust生产应用读书笔记7-确认邮件2

共享测试辅助 当每个集成测试文件都是一个独立的可执行文件时&#xff0c;共享测试辅助函数的一种常见方法是创建一个单独的模块&#xff0c;该模块可以被所有测试文件导入和使用。这个模块通常包含所有测试需要共用的辅助函数、常量、配置和其他资源。如果遵循这种做法&#…