轮播图模块
轮播图也是一个简单的模块功能,
对数据的CRUD,增删改查
添加轮播图
添加轮播图前,要上传图片,然后返回访问的ID,然后拼接成url
这样子创建轮播图的bean,就可以提交了。
接口:
@PreAuthorize("@permission.admin()")
@PostMapping
public ResponseResult addLoop(@RequestBody Looper looper) {
    return loopService.addLoop(looper);
}
@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("轮播图添加成功.");
}
- 对于增删改查的套路就是:
- 权限有没有
- 不能为空的数据进行检查
- 数据格式进行检查
- 补充数据
- 保存数据
- 返回结果
更新轮播图
接口:
@PreAuthorize("@permission.admin()")
@PutMapping("/{loopId}")
public ResponseResult updateLoop(@PathVariable("loopId") String loopId, @RequestBody Looper looper) {
    return loopService.updateLoop(loopId,looper);
}
实现:
@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("轮播图更新成功.");
}
更新的思想,可以通过update语句
有些课程可能会直接保存对象,这样子是不安全的
我们需要对数据不可以为空的字段进行检查,可以为空的直接设置也没关系。
删除轮播图
删除轮播图接口:
@PreAuthorize("@permission.admin()")
@DeleteMapping("/{loopId}")
public ResponseResult deleteLoop(@PathVariable("loopId") String loopId) {
    return loopService.deleteLoop(loopId);
}
接口实现
话不多说,直接删除,前端可以弹窗警告
@Override
public ResponseResult deleteLoop(String loopId) {
    loopDao.deleteById(loopId);
    return ResponseResult.SUCCESS("删除成功.");
}
获取轮播图列表
除了前端,后台也是要获取轮播图列表的,因为我们要管理它呀
@PreAuthorize("@permission.admin()")
@GetMapping("/list")
public ResponseResult listLoops() {
    return loopService.listLoops();
}
接口实现
@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);
}
如果是前端,只能获取到状态正常的轮播图
管理员则可以获取到所有的轮播图
获取轮播图
获取轮播图,这个是获取单个
其实,有没有都可以的
使用场景就是获取完轮播图列表,如果你要更新轮播图,你可以调用此接口获取到它的内容。
如果不获取也可以,直接从列表里获取,因为我们的列表内容是全的。
接口:
@PreAuthorize("@permission.admin()")
@GetMapping("/{loopId}")
public ResponseResult getLoop(@PathVariable("loopId") String loopId) {
    return loopService.getLoop(loopId);
}
接口实现:
@Override
public ResponseResult getLoop(String loopId) {
    Looper loop = loopDao.findOneById(loopId);
    if (loop == null) {
        return ResponseResult.FAILED("轮播图不存在.");
    }
    return ResponseResult.SUCCESS("轮播图获取成功.").setData(loop);
}



 拉大锯  回复 @断点-含光君
 拉大锯  回复 @断点-含光君 























