阳光沙滩博客系统-管理中心轮播图管理

# 轮播图模块

轮播图也是一个简单的模块功能,

对数据的CRUD,增删改查

# 添加轮播图

添加轮播图前,要上传图片,然后返回访问的ID,然后拼接成url

这样子创建轮播图的bean,就可以提交了。

接口:

@PreAuthorize("@permission.admin()")
@PostMapping
public ResponseResult addLoop(@RequestBody Looper looper) {
    return loopService.addLoop(looper);
}
1
2
3
4
5
@Override
public ResponseResult addLoop(Looper looper) {
    //检查数据
    String title = looper.getTitle();
    if (TextUtils.isEmpty(title)) {
        return ResponseResult.FAILED("标题不可以为空.");
    }
    String imageUrl = looper.getImageUrl();
    if (TextUtils.isEmpty(imageUrl)) {
        return ResponseResult.FAILED("图片不可以为空.");
    }
    String targetUrl = looper.getTargetUrl();
    if (TextUtils.isEmpty(targetUrl)) {
        return ResponseResult.FAILED("跳转链接不可以为空.");
    }
    //补充数据
    looper.setId(idWorker.nextId() + "");
    looper.setCreateTime(new Date());
    looper.setUpdateTime(new Date());
    //保存数据
    loopDao.save(looper);
    //返回结果
    return ResponseResult.SUCCESS("轮播图添加成功.");
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
  • 对于增删改查的套路就是:
  • 权限有没有
  • 不能为空的数据进行检查
  • 数据格式进行检查
  • 补充数据
  • 保存数据
  • 返回结果

# 更新轮播图

接口:

@PreAuthorize("@permission.admin()")
@PutMapping("/{loopId}")
public ResponseResult updateLoop(@PathVariable("loopId") String loopId, @RequestBody Looper looper) {
    return loopService.updateLoop(loopId,looper);
}
1
2
3
4
5

实现:

@Override
public ResponseResult updateLoop(String loopId, Looper looper) {
    //找出来
    Looper loopFromDb = loopDao.findOneById(loopId);
    if (loopFromDb == null) {
        return ResponseResult.FAILED("轮播图不存在.");
    }
    //不可以为空的,要判空
    String title = looper.getTitle();
    if (!TextUtils.isEmpty(title)) {
        loopFromDb.setTitle(title);
    }
    String targetUrl = looper.getTargetUrl();
    if (!TextUtils.isEmpty(targetUrl)) {
        loopFromDb.setTargetUrl(targetUrl);
    }
    String imageUrl = looper.getImageUrl();
    if (!TextUtils.isEmpty(imageUrl)) {
        loopFromDb.setImageUrl(imageUrl);
    }
    if (!TextUtils.isEmpty(looper.getState())) {
        loopFromDb.setState(looper.getState());
    }
    loopFromDb.setOrder(looper.getOrder());
    loopFromDb.setUpdateTime(new Date());
    //可以为空的直接设置
    //保存回去
    loopDao.save(loopFromDb);
    return ResponseResult.SUCCESS("轮播图更新成功.");
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30

更新的思想,可以通过update语句

有些课程可能会直接保存对象,这样子是不安全的

我们需要对数据不可以为空的字段进行检查,可以为空的直接设置也没关系。

# 删除轮播图

删除轮播图接口:

@PreAuthorize("@permission.admin()")
@DeleteMapping("/{loopId}")
public ResponseResult deleteLoop(@PathVariable("loopId") String loopId) {
    return loopService.deleteLoop(loopId);
}
1
2
3
4
5

接口实现

话不多说,直接删除,前端可以弹窗警告

@Override
public ResponseResult deleteLoop(String loopId) {
    loopDao.deleteById(loopId);
    return ResponseResult.SUCCESS("删除成功.");
}
1
2
3
4
5

# 获取轮播图列表

除了前端,后台也是要获取轮播图列表的,因为我们要管理它呀

@PreAuthorize("@permission.admin()")
@GetMapping("/list")
public ResponseResult listLoops() {
    return loopService.listLoops();
}
1
2
3
4
5

接口实现

@Override
public ResponseResult listLoops() {
    Sort sort = new Sort(Sort.Direction.DESC, "createTime");
    SobUser sobUser = userService.checkSobUser();
    List<Looper> all;
    if (sobUser == null || !Constants.User.ROLE_ADMIN.equals(sobUser.getRoles())) {
        //只能获取到正常的category
        all = loopDao.listLoopByState("1");
    } else {
        //查询
        all = loopDao.findAll(sort);
    }
    return ResponseResult.SUCCESS("获取轮播图列表成功.").setData(all);
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14

如果是前端,只能获取到状态正常的轮播图

管理员则可以获取到所有的轮播图

# 获取轮播图

获取轮播图,这个是获取单个

其实,有没有都可以的

使用场景就是获取完轮播图列表,如果你要更新轮播图,你可以调用此接口获取到它的内容。

如果不获取也可以,直接从列表里获取,因为我们的列表内容是全的。

接口:

@PreAuthorize("@permission.admin()")
@GetMapping("/{loopId}")
public ResponseResult getLoop(@PathVariable("loopId") String loopId) {
    return loopService.getLoop(loopId);
}
1
2
3
4
5

接口实现:

@Override
public ResponseResult getLoop(String loopId) {
    Looper loop = loopDao.findOneById(loopId);
    if (loop == null) {
        return ResponseResult.FAILED("轮播图不存在.");
    }
    return ResponseResult.SUCCESS("轮播图获取成功.").setData(loop);
}
1
2
3
4
5
6
7
8
上次更新: 2022/03/28, 23:04:38