Risc-v学习平台-项目实训第八次总结-SDU

本文详述了一个基于Spring Boot的后台管理系统,实现了用户管理(查询、新增、修改、删除)和新闻管理(查询、批量导入、修改、删除)功能。通过Mybatis-Plus简化了数据库操作,例如分页查询、单个用户更新、用户删除、新增用户以及新闻的批量导入。代码逻辑清晰,便于后期数据维护。
摘要由CSDN通过智能技术生成

本次工作总结

后台管理系统:

用户后台数据管理:包括查询、新增、修改、删除

新闻后台数据管理:包括查询、批量导入、修改、删除

相关代码实现

所有用户

用户列表,用于后台管理数据的查看所有用户

Controller层:

@GetMapping("/userlist")
@ResponseBody
public ResultBean userlist(@RequestParam(defaultValue = "1") Integer page,
                       @RequestParam(defaultValue = "10") Integer limit){
    List<User> users = userService.getPaper(page,limit);
    int size = userService.getAllUsers().size();
    return new ResultBean(200,"查询成功",size,users);
}

Service层(分页查询所有用户):

@Override
public List<User> getPaper(int page, int limit) {
    PageParams pageParams = new PageParams(page,limit);
    List<User> users = userMapper.listUserByParams((pageParams.getPageNum()-1)*pageParams.getPageSize(), pageParams.getPageSize());
    int size = users.size();
    int count=0;
    int pageSize = pageParams.getPageSize();
    if(size%pageSize!=0){
        count=pageSize-size%pageSize;
    }
    for(int i=0;i<count;i++){
        users.add(new User());
    }
    return users;
}

Mapper查询语句:

<select id="listUserByParams" resultType="com.sanelysong.riscv.pojo.User">
    SELECT *
    FROM t_user
    limit #{pageStart},#{pageSize}
</select>
更新用户

更新某一个用户的信息

Controller层:

@GetMapping("/updateuser")
public Result updateuser(@Valid User user, HttpServletRequest request, HttpServletResponse response){
    return userService.updateUser(user);
}

Service层:

@Override
public Result updateUser(User user) {
    if(user != null){
        if(user.getSignature() == "" || user.getSignature() == null){
            user.setSignature("这个人很懒,什么都没写");
        }
        userMapper.updateById(user);
        return Result.success("修改用户信息成功");
    }else {
        return Result.fail(404,"修改失败");
    }
}

逻辑比较简单,就不赘述了。

删除用户

Controller层:

@GetMapping("deleteuser")
public Result deleteuser(@PathVariable("id") Long id){
    return userService.deleteuser(id);
}

Service层:

@Override
public Result deleteuser(Long id) {
    userMapper.deleteById(id);
    return Result.success("删除成功");
}
新增用户

Controller层:

@PostMapping("adduser")
public Result adduser(@Valid User user){
    return userService.addUser(user);
}

Service层:

@Override
public Result addUser(User user) {
    userMapper.insert(use    @Override
    public Result addUser(User user) {
        //判断邮箱是否已存在
        User user2 = userMapper.selectOne(new QueryWrapper<User>().eq("email",user.getEmail()));
        if(user == null || user2 != null){
            return Result.fail(404,"插入失败,请检查数据");
        }else {
            String password = user.getPassword();
            //密码加密
            user.setPassword(MD5Util.md5OneTime(password));
            userMapper.insert(user);
            return Result.success("插入成功");
        }
    }
r);
    return Result.success("插入成功");
}
批量导入新闻

因为新闻的增删改查和用户的增删改查逻辑相同,所以这了只写了新闻的批量导入

ExcelUtil工具类在前几篇博客已经写到过,这里就不再写了。

Controller层:

@PostMapping("/uplodaNews")
public Result uploadNews(@RequestParam("file") MultipartFile file) throws IOException {
    String fileName = file.getOriginalFilename(); // 获取文件名

    InputStream is = null;

    try{
        is = file.getInputStream();
        List<Map> paperList = newsService.getListByExcel(is,fileName);// 获取解析后的List集合
        System.out.println(paperList.toString());
        Boolean result = newsService.batchImportStuInfo(paperList); // 把数据插入数据库
        if (result){
            return Result.success("上传成功");
        }else {
            return  Result.fail(403,"上传失败");
        }
    }catch (Exception e){
        e.printStackTrace();
    } finally {
        is.close();
    }
    return Result.fail(403,"文件出错");
}

Service层:

@Override
public List<Map> getListByExcel(InputStream is, String fileName) {
    try{
        List<Map> newsList = new ExcelUtils(new News()).analysisExcel(is, fileName);
        return newsList;
    }catch (Exception e){
        e.printStackTrace();
    }
    return new ArrayList<>();
}

@Override
public Boolean batchImportStuInfo(List<Map> newslist) {
    Integer flag = newsMapper.batchImportInfo(newslist);
    if (flag > 0){
        return true;
    } else return false;
}

Mapper层:

<insert id="batchImportInfo" parameterType="java.util.List">
    insert into t_news values
    <foreach item="item" collection="list" separator=",">
        (#{item.id},#{item.title},#{item.content},#{item.time},#{item.link})
    </foreach>
</insert>

个人总结

因为项目使用到了Mybatis-plus,所以许多数据库查询语句使用起来都比较方便。

完成了后台管理的部分功能,这样以后更新数据会更加方便。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值