您的位置:首页 > 健康 > 美食 > 在线设计平台的销售_洛阳市洛龙区最新疫情_今日热搜榜官网_广州优化营商环境条例

在线设计平台的销售_洛阳市洛龙区最新疫情_今日热搜榜官网_广州优化营商环境条例

2024/10/5 17:27:16 来源:https://blog.csdn.net/m0_48362854/article/details/142526605  浏览:    关键词:在线设计平台的销售_洛阳市洛龙区最新疫情_今日热搜榜官网_广州优化营商环境条例
在线设计平台的销售_洛阳市洛龙区最新疫情_今日热搜榜官网_广州优化营商环境条例

黑马头条day3-3自媒体接口作业

1)素材管理

1.1)图片删除

接口描述

说明
接口路径/api/v1/material/del_picture/{id}
请求方式GET
参数Integer id
响应结果ResponseResult

返回结果实例:

image-20210719002352845

实现思路

image-20240923224510868

感觉删除比较难写 因为需要判断图片是不是和文章挂钩了

gpt帮了很多 有四种情况需要处理 其中 只是自己的理解

1 数据不存在 就是库里边没有

2 参数失效就是 有链接但url不存在

3 删除失败是已经在其他文章里边引用了 (等删除掉所有相关的文章之后 这个图片才可以删除

4 最后就是操作成功

红框的就是在一个mapper里边去引用另外的表格的mapper的写法

这个程序写的很杂 有mp 还有xml

具体实现

Controller(注意一定要加@PathVariable(“id”)注解 不然传过来id为null)

@GetMapping("/del_picture/{id}")public ResponseResult delPicture(@PathVariable("id") Integer id){return wmMaterialService.delPicture(id);}

mapper

无 不用改

业务层:新增这一个代码

public ResponseResult delPicture(Integer id);

业务层实现类:

  @Overridepublic ResponseResult delPicture(Integer id) {System.out.println(id);WmMaterial wmMaterial = getById(id);if(wmMaterial == null){return ResponseResult.errorResult(AppHttpCodeEnum.DATA_NOT_EXIST);}//判断是否被引用
//        if(wmMaterial.getIsCollection() == 1){
//            return ResponseResult.errorResult(AppHttpCodeEnum.MATERIAL_REFERENCE);
//        }if(wmMaterial.getUrl() == null){return ResponseResult.errorResult(AppHttpCodeEnum.PARAM_INVALID);}WmNewsMaterial wmNewsMaterial = new WmNewsMaterial();wmNewsMaterial.setMaterialId(id);//查询wm_news_material表里边是否有包含该id// 创建查询条件QueryWrapper<WmNewsMaterial> queryWrapper = new QueryWrapper<>();// 假设你想根据某个字段进行过滤queryWrapper.eq("material_id", id);// 调用 selectCount 方法int count = wmNewsMaterialMapper.selectCount(queryWrapper);if(count > 0){return ResponseResult.errorResult(501,"文件删除失败" );}fileStorageService.delete(wmMaterial.getUrl());removeById(id);return ResponseResult.okResult(200,"操作成功");}

测试

启动自媒体微服务和自媒体网关,使用前端项目进行测试

1.2)收藏与取消

接口描述

取消收藏

说明
接口路径/api/v1/material/cancel_collect/{id}
请求方式GET
参数Integer id
响应结果ResponseResult

收藏

说明
接口路径/api/v1/material/collect/{id}
请求方式GET
参数Integer id
响应结果ResponseResult

返回结果实例:

image-20210719002621046

具体实现

Controller(注意一定要加@PathVariable(“id”)注解 不然传过来id为null)

       @GetMapping("/cancel_collect/{id}")public ResponseResult cancelCollect(@PathVariable("id") Integer id){return wmMaterialService.cancelCollect(id);}@GetMapping("/collect/{id}")public ResponseResult collect1(@PathVariable("id") Integer id){return wmMaterialService.collect1(id);}

mapper

无 不用改

业务层:新增这一个代码

ResponseResult cancelCollect(Integer id);ResponseResult collect1(Integer id);

业务层实现类:(注意修改完vmMaterial 之后不要忘记加上update数据库)

 @Overridepublic ResponseResult cancelCollect(Integer id) {WmMaterial wmMaterial = getById(id);if(wmMaterial.getIsCollection() == 0){return ResponseResult.errorResult(AppHttpCodeEnum.PARAM_INVALID);}wmMaterial.setIsCollection((short)0);updateById(wmMaterial);return ResponseResult.okResult(200,"操作成功");}@Overridepublic ResponseResult collect1(Integer id) {System.out.println(id);WmMaterial wmMaterial = getById(id);if(wmMaterial.getIsCollection() == 1){return ResponseResult.errorResult(AppHttpCodeEnum.PARAM_INVALID);}wmMaterial.setIsCollection((short)1);updateById(wmMaterial);return ResponseResult.okResult(200,"操作成功");}

测试

启动自媒体微服务和自媒体网关,使用前端项目进行测试

2)文章管理

2.1)查看详情

接口描述

说明
接口路径/api/v1/news/one/{id}
请求方式GET
参数文章id
响应结果ResponseResult

返回结果实例:

image-20210719002805621

实现思路

其实就是点击编辑之后 文章内容能够在编辑页面回显

image-20240925152353293
具体实现

controller

@GetMapping("/one/{id}")public ResponseResult findOne(@PathVariable("id") Integer id){return  wmNewsService.findOne(id);}

service和impl

 ResponseResult findOne(Integer id);@Overridepublic ResponseResult findOne(Integer id) {WmNews wmNews = getById(id);if(wmNews != null){return ResponseResult.okResult(wmNews);}log.info("文章不存在,id:{}",id);return ResponseResult.errorResult(AppHttpCodeEnum.DATA_NOT_EXIST);}

2.2)文章删除

接口描述

说明
接口路径/api/v1/news/del_news/{id}
请求方式GET
参数文章id
响应结果ResponseResult

返回结果实例

image-20210719002907886

2.3)文章上下架

接口描述

说明
接口路径/api/v1/news/down_or_up
请求方式POST
参数WmNewsDto
响应结果ResponseResult

WmNewsDto

image-20210719003029361

返回结果实例

image-20210719003114332

实现思路(删除和上下架)

状态码情况考虑的不全 也没有涉及后边的异步

同时感觉提交的时候有个bug 存为草稿的话 直接提交成功

但是如果想要把草稿编辑上架的话 就一直卡在这个循环了 目前没解决

image-20240925160448771

删除的话就是根据id 然后四个情况判断就好了 同时注意要删除掉关联表的信息 至于minio里边的要不要删除没涉及 不太清楚

上架下架也是需要考虑文章的状态 然后更改数据库的状态就可以了

具体实现

controller
@GetMapping("/del_news/{id}")public ResponseResult delNews(@PathVariable("id") Integer id){return  wmNewsService.delNews(id);}@PostMapping("/down_or_up")public ResponseResult downOrUp(@RequestBody WmNewsDto dto){return  wmNewsService.downOrUp(dto);}
service和impl
  ResponseResult delNews(Integer id);ResponseResult downOrUp(WmNewsDto dto);@Overridepublic ResponseResult delNews(Integer id) {WmNews wmNews = getById(id);if(wmNews == null){return ResponseResult.errorResult(AppHttpCodeEnum.DATA_NOT_EXIST,"文章不存在");}if(wmNews.getStatus().equals(WmNews.Status.SUBMIT.getCode())){//删除文章removeById(id);wmNewsMaterialMapper.delete(Wrappers.<WmNewsMaterial>lambdaQuery().eq(WmNewsMaterial::getNewsId, id));return ResponseResult.okResult(AppHttpCodeEnum.SUCCESS);}else{return ResponseResult.errorResult(AppHttpCodeEnum.PARAM_INVALID,"删除失败");}}@Overridepublic ResponseResult downOrUp(WmNewsDto dto) {WmNews wmNews = getById(dto.getId());if(wmNews == null){return ResponseResult.errorResult(AppHttpCodeEnum.DATA_NOT_EXIST,"文章不存在");}if(wmNews.getStatus().equals(WmNews.Status.PUBLISHED.getCode())){wmNews.setStatus(WmNews.Status.NORMAL.getCode());}else if(wmNews.getStatus().equals(WmNews.Status.NORMAL.getCode())){wmNews.setStatus(WmNews.Status.SUBMIT.getCode());}updateById(wmNews);return ResponseResult.okResult(wmNews);}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com