基于springboot+vue2的博客信息管理系统

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

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
实现代码:

package com.example.blog.controller;

import com.example.blog.entity.Result;
import com.example.blog.entity.ResultGenerator;
import com.example.blog.entity.User;
import com.example.blog.mapper.UserMapper;
import com.example.blog.util.RedisUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.web.bind.annotation.*;

import java.util.HashMap;
import java.util.List;

@RestController  //后面返回的数据是json格式
public class userController {
    @Autowired //注册bean
    private UserMapper userMapper;
    @Autowired
    private RedisUtil redisUtil;

    /**
     * 用户登录接口
     * @param userphone
     * @param userpass
     * @return result
     */
    @GetMapping("/user/login")
    public Result login(@RequestParam("userphone") String userphone, @RequestParam("userpass") String userpass){
        Result result=new Result<>();
        List<User> list = userMapper.login(userphone,userpass);
        if(list.size() >0){
        result=ResultGenerator.getSuccessResult("登录成功",list);
        }
        else {
            result=ResultGenerator.getFailResult("登录失败,请注册",list);
        }
        return result;
    }

    /**
     * 用户注册接口
     * @param user
     * @return result
     */
    @PostMapping("/user/register")
    public Result register(@RequestBody User user){
        //先检查手机号是否存在
        int count=0;
        //初始化结果集
        Result result=new Result<>();
        count=userMapper.finduserByPhone(user.getUserphone());
        if(count>0) {
            result=ResultGenerator.getFailResult("重复注册",user);
        }

        else {
            userMapper.addUser(user);
            result=ResultGenerator.getSuccessResult("注册成功",user);
            //删除全部缓存
            redisUtil.cleanAll();
        }
        return result;


    }


    /**
     * 用户修改的接口
     * @param user
     * @return result
     */
    @PostMapping("/user/update")
    public  Result updateUser(@RequestBody User user){
        //初始化结果集
        Result result=new Result<>();
        Integer count = userMapper.updateUser(user);
        if(count >0){
            result=ResultGenerator.getSuccessResult("修改成功",user);
            redisUtil.cleanAll();
        }
        else{
            result=ResultGenerator.getFailResult("修改失败",user);
        }

        return result;
    }

    /**
     * 用户删除的接口
     * @param id
     * @return result
     */
    @GetMapping("/user/delete")
    public Result deleteUser(@RequestParam("id") Integer id){
        //初始化结果集
        Result result=new Result<>();
        Integer count = userMapper.deleteUser(id);
        if(count >0){
            result=ResultGenerator.getSuccessResult("删除成功",count);
            redisUtil.cleanAll();
        }
        else{
            result=ResultGenerator.getFailResult("删除失败",count);
        }

        return result;
    }


    /**
     * 用户数据分页的接口
     * @param pageNum
     * @param pageSize
     * @return result
     */
    @GetMapping("/user/pagin")
    public Result userPagin(@RequestParam("pageNum") Integer pageNum,@RequestParam("pageSize") Integer pageSize){
        //初始化结果集
        Result result=new Result<>();
        HashMap<String,Object> hashmap=new HashMap<>();
        Integer index=(pageNum-1)*pageSize;  //数据库数据的下标
        List<User> users=userMapper.userPagin(index,pageSize);
        Integer count=userMapper.getAllUsersNum();  //数据库里的所有数据总数
        hashmap.put("users",users);
        hashmap.put("count",users.size()); //获取得到的页面的数据数量
        if (users.size()>0){

            result=ResultGenerator.getSuccessResult("得到第"+pageNum+"页",hashmap);

        }
        else{
            result=ResultGenerator.getFailResult("一共"+count+"条数据,不足以得到该页",hashmap);
        }
        return result;
    }


    /**
     * 用户数据分页接口,结合用户名字进行模糊查询,并使用redis缓存key:user_paginCache,user_paginCountCache
     * @param username
     * @param pageNum
     * @param pageSize
     * @return result
     */
    @GetMapping("/user/pagin_select")
    public  Result paginUser(@RequestParam("username")String username,@RequestParam("pageNum") Integer pageNum,@RequestParam("pageSize") Integer pageSize)
    {
        //初始化结果集
        Result result=new Result<>();
        HashMap<String,Object> hashmap = new HashMap();
        //利用条件创建redis缓存的key
        String cacheName= redisUtil.getCacheName("tb_users","paginUser","username",username,
                "pageNum",pageNum.toString(),"pageSize",pageSize.toString());
        //先在redis缓存中找数据,如果没有数据,再去数据库查询
        List<User> user_paginCache = (List<User>) redisUtil.getCache(cacheName);
        if(user_paginCache==null){

        //拿到总条数
        Integer count = userMapper.usersTotalCount(username);
        //分页查询
        // 将pageNum进行转换:pageNum:第几页,但是数据库limit需要的是开始查询的位置
        Integer index=(pageNum-1)*pageSize;  //数据库数据的下标
        List<User> users = userMapper.paginUsers(username,index,pageSize);
        //可以使用HashMap来保存总条数以及查询结果一起发送给前端
        hashmap.put("users",users);
        hashmap.put("count",users.size()); //获取得到的页面的数据数量
        if (users.size()>0){
           result= ResultGenerator.getSuccessResult("得到第"+pageNum+"页",hashmap);
           //将数据加入redis缓存
            redisUtil.setCache(cacheName,users);
           System.out.println("使用数据库查询分页数据,现在将数据加入redis缓存");
        }
        else{
            result=ResultGenerator.getFailResult("一共"+count+"条数据,不足以得到该页",hashmap);
        }
        }
        else {
            System.out.println("使用redis分页缓存数据");
            hashmap.put("users",user_paginCache);
            hashmap.put("count",user_paginCache.size()); //获取得到的页面的数据数量
            result=ResultGenerator.getSuccessResult("得到第"+pageNum+"页",hashmap);

        }
        return result;
    }



}

完整代码文件压缩包请自行下载使用:
链接: https://pan.baidu.com/s/1eQecBHj0KFwhTGOAarZfbQ?pwd=dpcs 提取码: dpcs

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

就是木子呀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值