一、前言
之前我完善了所有的和用户、登录相关的地方, 接下来我要开始最简单的重复性代码开发工作了, 一些简单的不用动脑的我最喜欢的增删改查
二、增删改查详情
访客记录-列表查询
访客记录实际上是还未完善的,以为按照我的想法是搞个aop之类的去获取每一次请求的用户ip,然后访问代表访客+1, 使用redis记录一天或者8小时内,这个ip再次访问访客不增加,超过时间再次访问访客增加。
或者是直接简单粗暴的在首页接口搞一下,访问首页某个接口自动增加
所以目前暂时只做了列表功能,增加功能应该会放在后续开发,列表还是之前说的,为了统计访客所在地区,所以新增了两个字段,经纬度,后续还会对接百度或者高德的接口,来获取ip相对应的坐标
@PostMapping("list") @ApiOperation("查看列表") public ResultVo getList(PageVo page){ LambdaQueryWrapper<AccessIp> wrapper = new LambdaQueryWrapper<>(); // 可以根据来访时间查询 wrapper.between(page.getStartTime()!= null && page.getEndTime() != null, AccessIp::getCreateTime, page.getStartTime(), page.getEndTime()); List<AccessIp> list = accessIpService.list(wrapper); return new ResultVo(list); } 复制代码
归档表-列表、删除
归档对我来说只有列表和新增功能,删除和修改很没必要,上线出bug了就在下次更新的时候干掉就好了
@Resource private IArchiveService archiveService; @PostMapping("list") @ApiOperation("查看列表") public ResultVo getList(PageVo page){ List<Archive> list = archiveService.list(); return new ResultVo(list); } @PostMapping @ApiOperation("新增") public ResultVo insert(Archive archive){ archiveService.save(archive); return new ResultVo(); } 复制代码
文章分类增删改查
分类的增删改查主要注意点是分类名称不可重复
@PostMapping("list") @ApiOperation("查看列表") public ResultVo getList(){ List<CategoryListVo> list = categoryService.getList(); return new ResultVo(list); } @PostMapping @ApiOperation("新增") public ResultVo insert(Category category){ categoryService.nameIsOnly(category.getTypeName(), null); Category catrgoryModel = Category.builder() .typeName(category.getTypeName()) .createTime(LocalDateTime.now()) .status("0") .parentId(category.getParentId()).build(); categoryService.save(catrgoryModel); return new ResultVo(); } @PutMapping @ApiOperation("修改") public ResultVo update(Category dto){ categoryService.nameIsOnly(dto.getTypeName(), dto.getBlid()); Category build = Category.builder() .blid(dto.getBlid()) .typeName(dto.getTypeName()) .updateTime(LocalDateTime.now()) .build(); categoryService.updateById(build); return new ResultVo(); } @DeleteMapping @ApiOperation("删除") public ResultVo delete(Long id){ Category byId = categoryService.getById(id); if (byId.getNum() > 0){ return new ResultVo().error("该分类下有文章, 不可删除"); } return new ResultVo(); } 复制代码
下面是在service层的:判断分类名称是否重复方法
@Override public boolean nameIsOnly(String name,Long id) { LambdaQueryWrapper<Category> wrapper = new LambdaQueryWrapper<>(); wrapper.eq(Category::getTypeName, name) .ne(id != null,Category::getBlid, id); Category one = this.getOne(wrapper); // 判断该分类名称是否存在 if (one != null){ throw new BlogException(ErrorEnum.CATEGORY_EXIST_ERROR); } return true; } 复制代码
友链增删改查
因为友链不是很重要,而且懒得很,所以入参出参都没做判断
@PostMapping("list") @ApiOperation("查看列表") public ResultVo getList(PageVo dto){ Page<FriendLink> page = new Page<>(dto.getPage(),dto.getSize()); Page<FriendLink> list = friendLinkService.page(page); return new ResultVo(list); } @PostMapping @ApiOperation("新增") public ResultVo insert(FriendLink friendLink){ friendLinkService.save(friendLink); return new ResultVo(); } @PutMapping @ApiOperation("修改") public ResultVo update(FriendLink friendLink){ friendLinkService.updateById(friendLink); return new ResultVo(); } @DeleteMapping @ApiOperation("删除") public ResultVo delete(Long id ){ friendLinkService.removeById(id); return new ResultVo(); } 复制代码
标签增删改查
标签和分类一样的,名称不可重复
@PostMapping("list") @ApiOperation("查看列表") public ResultVo getList(){ List<Label> list = labelService.list(); return new ResultVo(list); } @PostMapping @ApiOperation("新增") public ResultVo insert(Label label){ labelService.nameIsOnly(label.getTagName(), null); label.setCreateTime(LocalDateTime.now()); labelService.save(label); return new ResultVo(); } @PutMapping @ApiOperation("修改") public ResultVo update(Label label){ labelService.nameIsOnly(label.getTagName(),label.getBlid()); label.setUpdateTime(LocalDateTime.now()); labelService.updateById(label); return new ResultVo(); } @DeleteMapping @ApiOperation("删除") public ResultVo delete(Long id){ Label byId = labelService.getById(id); if (byId.getNum() > 0){ return new ResultVo().error("该标签下有文章, 不可删除"); } labelService.removeById(id); return new ResultVo(); } 复制代码
判断名称是否重复Service层方法
@Override public boolean nameIsOnly(String name, Long id) { LambdaQueryWrapper<Label> wrapper = new LambdaQueryWrapper<>(); wrapper.eq(Label::getTagName, name) .ne(id != null, Label::getBlid, id); Label one = this.getOne(wrapper); if(one != null){ throw new BlogException(ErrorEnum.LABEL_EXIST_ERROR); } return false; } 复制代码
删除Controller
删除ArticleInfoController,文章详情等功能具体实现在ArticleController 删除CityController,城市具体信息都是在数据库存储的
网络异常,图片无法展示
|
三、总结
这章大概是最爽的了吧,全是最基础的增删改查,有难度的一个没写,哈哈哈