黑马头条day3总结

1、运行WemediaApplication报错

运行时报错Caused by: java.lang.NoClassDefFoundError: com/heima/model/wemedia/dtos/WmLoginDto。

解决:maven中clean然后compile。不知道为什么我每次写完一个接口,运行应用类之前都几乎需要重新clean和compile,不然就会报错。

2、niginx配置

nginx配置的这个地址一定要与你放的前端代码位置相同。

3、管理端登录异常

重新clean,然后compile就行了

4、上传图片503

才发现是因为引入service没加@Autowired注解。

5、作业

参考:

WmMaterialController

    /**
     * 图片删除
     * @param id
     * @return
     */
    @GetMapping("/del_picture/{id}")
    public ResponseResult delPicture(@PathVariable Integer id){
        return wmMaterialService.delPicture(id);
    }

    /**
     * 取消收藏
     * @param id
     * @return
     */
    @GetMapping("/cancel_collect/{id}")
    public ResponseResult cancelCollectPicture(@PathVariable Integer id){
        return wmMaterialService.cancelCollectPicture(id);
    }
    /**
     * 收藏
     * @param id
     * @return
     */
    @GetMapping("/collect/{id}")
    public ResponseResult collectPicture(@PathVariable Integer id){
        return wmMaterialService.collectPicture(id);
    }
WmMaterialServiceImpl
 /**
     * 图片删除
     *
     * @param id
     * @return
     */
    @Override
    public ResponseResult delPicture(Integer id) {
        //1、检查参数
        if(id==null){
            return ResponseResult.errorResult(AppHttpCodeEnum.PARAM_INVALID);
        }

        WmMaterial wmMaterial=getById(id);
        //检查素材是否存在
        if (wmMaterial == null) {
            return ResponseResult.errorResult(AppHttpCodeEnum.DATA_NOT_EXIST);
        }
        //2、检查是否被引用
        //根据material的id获取newmaterial的关系,用mybitisPlus方法
        LambdaQueryWrapper<WmNewsMaterial> lambdaQueryWrapper=new LambdaQueryWrapper<>();
        lambdaQueryWrapper.eq(WmNewsMaterial::getMaterialId,id);
        //一个素材可能对应多个文章
        List<WmNewsMaterial> wmNewsMaterials = wmNewsMaterialMapper.selectList(lambdaQueryWrapper);
        if (wmNewsMaterials.size()>0){
            return ResponseResult.errorResult(AppHttpCodeEnum.MATERIAL_IS_REFERENCE);
        }
        //3.1删除minio中的数据
        fileStorageService.delete(wmMaterial.getUrl());
        //3.2删除数据库中的数据
        removeById(id);
        return ResponseResult.okResult(AppHttpCodeEnum.SUCCESS);
    }

    /**
     * 取消收藏
     *
     * @param id
     * @return
     */
    @Override
    public ResponseResult cancelCollectPicture(Integer id) {
        //1、检查参数
        if(id==null){
            return ResponseResult.errorResult(AppHttpCodeEnum.PARAM_INVALID);
        }
        //2、设置是否收藏
        WmMaterial wmMaterial = getById(id);
        wmMaterial.setIsCollection(WemediaConstants.CANCEL_COLLECT_MATERIAL);
        updateById(wmMaterial);

        return ResponseResult.okResult(AppHttpCodeEnum.SUCCESS);
    }

    /**
     * 收藏
     *
     * @param id
     * @return
     */
    @Override
    public ResponseResult collectPicture(Integer id) {
        //1、检查参数
        if(id==null){
            return ResponseResult.errorResult(AppHttpCodeEnum.PARAM_INVALID);
        }
        //2、设置是否收藏
        WmMaterial wmMaterial = getById(id);
        wmMaterial.setIsCollection(WemediaConstants.COLLECT_MATERIAL);
        updateById(wmMaterial);

        return ResponseResult.okResult(AppHttpCodeEnum.SUCCESS);
    }
WmNewsController
    /**
     * 查看详情
     * @param id
     * @return
     */
    @GetMapping("/one/{id}")
    public ResponseResult selectNewsById(@PathVariable Integer id){
        return wmNewsService.selectNewsById(id);
    }

    /**
     * 删除文章
     * @param id
     * @return
     */
    @GetMapping("/del_news/{id}")
    public ResponseResult deleteNewsById(@PathVariable Integer id){
        return wmNewsService.deleteNewsById(id);
    }

    /**
     * 文章上下架
     * @param dto
     * @return
     */
    @PostMapping("/down_or_up")
    public ResponseResult newsDownOrUp(@RequestBody WmNewsDownOrUpDto dto){
        return wmNewsService.newsDownOrUp(dto);
    }
WmNewsServiceImpl

    /**
     * 查看详情
     *
     * @param id
     * @return
     */
    @Override
    public ResponseResult selectNewsById(Integer id) {
        //检查参数
        if (id==null){
            return ResponseResult.errorResult(AppHttpCodeEnum.PARAM_INVALID);
        }
        WmNews wmNews = getById(id);
        return ResponseResult.okResult(wmNews);
    }

    /**
     * 删除文章
     * @param id
     * @return
     */
    @Override
    public ResponseResult deleteNewsById(Integer id) {
        //1、检查参数
        if (id==null){
            return ResponseResult.errorResult(AppHttpCodeEnum.PARAM_INVALID);
        }
        //2、检查文章是否存在
        WmNews wmNews = getById(id);
        if (wmNews==null){
            return ResponseResult.errorResult(AppHttpCodeEnum.DATA_NOT_EXIST);
        }
        //3、检查文章是否发布
        if (wmNews.getStatus().equals(WmNews.Status.PUBLISHED)){
            //已经发布,不能删除
            return ResponseResult.errorResult(AppHttpCodeEnum.MATERIAL_IS_PUBLISHED);
        }
        //未发布
        //删除wm_news数据库
        removeById(id);
        //删除wm_news_material数据库
        LambdaQueryWrapper<WmNewsMaterial> wmMaterialLambdaQueryWrapper=new LambdaQueryWrapper<>();
        wmMaterialLambdaQueryWrapper.eq(WmNewsMaterial::getNewsId,id);
        wmNewsMaterialMapper.delete(wmMaterialLambdaQueryWrapper);
        return ResponseResult.okResult(AppHttpCodeEnum.SUCCESS);
    }

    /**
     * 文章上下架
     * @param dto
     * @return
     */
    @Override
    public ResponseResult newsDownOrUp(WmNewsDownOrUpDto dto) {
        //1、检查参数
        if (dto==null){
            return ResponseResult.errorResult(AppHttpCodeEnum.PARAM_INVALID);
        }
        //2、检查文章是否存在
        WmNews wmNews = getById(dto.getId());
        if (wmNews==null){
            return ResponseResult.errorResult(AppHttpCodeEnum.DATA_NOT_EXIST);
        }
        //3、检查是否处于发布状态
        if(wmNews.getStatus().equals(WmNews.Status.PUBLISHED)){
            //发布状态不能下架
            return ResponseResult.errorResult(AppHttpCodeEnum.MATERIAL_IS_PUBLISHED);
        }
        //4、未发布 修改上下架状态,修改数据库
        wmNews.setEnable(dto.getEnable());
        updateById(wmNews);
        return ResponseResult.okResult(AppHttpCodeEnum.SUCCESS);
    }

黑马头条项目学习--Day3: 自媒体文章发布_heima-leadnews-wemedia-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值