当前位置: 首页 > news >正文

凡科网站内容怎么做效果好深圳网络推广优化

凡科网站内容怎么做效果好,深圳网络推广优化,深圳宝安区深圳网站建设 骏域网络,徐州网站制作自媒体文章上下架功能完成 需求分析 流程说明 接口定义 说明接口路径/api/v1/news/down_or_up请求方式POST参数DTO响应结果ResponseResult DTO Data public class WmNewsDto {private Integer id;/*** 是否上架 0 下架 1 上架*/private Short enable;}ResponseResult 自媒…

自媒体文章上下架功能完成

需求分析

在这里插入图片描述

流程说明

在这里插入图片描述

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

DTO

@Data
public class WmNewsDto {private Integer id;/*** 是否上架  0 下架  1 上架*/private Short enable;}

ResponseResult

image-20230218212711969

自媒体文章上下架-功能实现

接口定义

在heima-leadnews-wemedia工程下的WmNewsController新增方法

@PostMapping("/down_or_up")
public ResponseResult downOrUp(@RequestBody WmNewsDto dto){return null;
}

在WmNewsDto中新增enable属性 ,完整的代码如下:

package com.heima.model.wemedia.dtos;import lombok.Data;import java.util.Date;
import java.util.List;@Data
public class WmNewsDto {private Integer id;/*** 标题*/private String title;/*** 频道id*/private Integer channelId;/*** 标签*/private String labels;/*** 发布时间*/private Date publishTime;/*** 文章内容*/private String content;/*** 文章封面类型  0 无图 1 单图 3 多图 -1 自动*/private Short type;/*** 提交时间*/private Date submitedTime; /*** 状态 提交为1  草稿为0*/private Short status;/*** 封面图片列表 多张图以逗号隔开*/private List<String> images;/*** 上下架 0 下架  1 上架*/private Short enable;
}

9.4.2)业务层编写

在WmNewsService新增方法

/*** 文章的上下架* @param dto* @return*/
public ResponseResult downOrUp(WmNewsDto dto);

实现方法

/*** 文章的上下架* @param dto* @return*/
@Override
public ResponseResult downOrUp(WmNewsDto dto) {//1.检查参数if(dto.getId() == 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.getCode())){return ResponseResult.errorResult(AppHttpCodeEnum.PARAM_INVALID,"当前文章不是发布状态,不能上下架");}//4.修改文章enableif(dto.getEnable() != null && dto.getEnable() > -1 && dto.getEnable() < 2){update(Wrappers.<WmNews>lambdaUpdate().set(WmNews::getEnable,dto.getEnable()).eq(WmNews::getId,wmNews.getId()));}return ResponseResult.okResult(AppHttpCodeEnum.SUCCESS);
}

9.4.3)控制器

@PostMapping("/down_or_up")
public ResponseResult downOrUp(@RequestBody WmNewsDto dto){return wmNewsService.downOrUp(dto);
}

9.4.4)测试

消息通知article端文章上下架

在heima-leadnews-common模块下导入kafka依赖

<!-- kafkfa -->
<dependency><groupId>org.springframework.kafka</groupId><artifactId>spring-kafka</artifactId>
</dependency>
<dependency><groupId>org.apache.kafka</groupId><artifactId>kafka-clients</artifactId>
</dependency>

9.5.2)在自媒体端的nacos配置中心配置kafka的生产者

spring:kafka:bootstrap-servers: 172.20.10.2:9092producer:retries: 10key-serializer: org.apache.kafka.common.serialization.StringSerializervalue-serializer: org.apache.kafka.common.serialization.StringSerializer

9.5.3)在自媒体端文章上下架后发送消息

//发送消息,通知article端修改文章配置
if(wmNews.getArticleId() != null){Map<String,Object> map = new HashMap<>();map.put("articleId",wmNews.getArticleId());map.put("enable",dto.getEnable());kafkaTemplate.send(WmNewsMessageConstants.WM_NEWS_UP_OR_DOWN_TOPIC,JSON.toJSONString(map));
}

常量类:

public class WmNewsMessageConstants {public static final String WM_NEWS_UP_OR_DOWN_TOPIC="wm.news.up.or.down.topic";
}

9.5.4)在article端的nacos配置中心配置kafka的消费者

spring:kafka:bootstrap-servers: 172.20.10.2:9092consumer:group-id: ${spring.application.name}key-deserializer: org.apache.kafka.common.serialization.StringDeserializervalue-deserializer: org.apache.kafka.common.serialization.StringDeserializer

9.5.5)在article端编写监听,接收数据

package com.heima.article.listener;import com.alibaba.fastjson.JSON;
import com.heima.article.service.ApArticleConfigService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.kafka.annotation.KafkaListener;
import org.springframework.stereotype.Component;import java.util.Map;@Component
@Slf4j
public class ArtilceIsDownListener {@Autowiredprivate ApArticleConfigService apArticleConfigService;@KafkaListener(topics = WmNewsMessageConstants.WM_NEWS_UP_OR_DOWN_TOPIC)public void onMessage(String message){if(StringUtils.isNotBlank(message)){Map map = JSON.parseObject(message, Map.class);apArticleConfigService.updateByMap(map);log.info("article端文章配置修改,articleId={}",map.get("articleId"));}}
}

9.5.6)修改ap_article_config表的数据

新建ApArticleConfigService

package com.heima.article.service;import com.baomidou.mybatisplus.extension.service.IService;
import com.heima.model.article.pojos.ApArticleConfig;import java.util.Map;public interface ApArticleConfigService extends IService<ApArticleConfig> {/*** 修改文章配置* @param map*/public void updateByMap(Map map);
}

实现类:

package com.heima.article.service.impl;import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.heima.article.mapper.ApArticleConfigMapper;
import com.heima.article.service.ApArticleConfigService;
import com.heima.model.article.pojos.ApArticleConfig;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;import java.util.Map;@Service
@Slf4j
@Transactional
public class ApArticleConfigServiceImpl extends ServiceImpl<ApArticleConfigMapper, ApArticleConfig> implements ApArticleConfigService {/*** 修改文章配置* @param map*/@Overridepublic void updateByMap(Map map) {//0 下架 1 上架Object enable = map.get("enable");boolean isDown = true;if(enable.equals(1)){isDown = false;}//修改文章配置update(Wrappers.<ApArticleConfig>lambdaUpdate().eq(ApArticleConfig::getArticleId,map.get("articleId")).set(ApArticleConfig::getIsDown,isDown));}
}

文章转载自:
http://skeptic.rdfq.cn
http://identification.rdfq.cn
http://arcking.rdfq.cn
http://layoff.rdfq.cn
http://teleradiography.rdfq.cn
http://newsmonger.rdfq.cn
http://amperemeter.rdfq.cn
http://schizont.rdfq.cn
http://cartelization.rdfq.cn
http://gestate.rdfq.cn
http://frequently.rdfq.cn
http://riksha.rdfq.cn
http://mosotho.rdfq.cn
http://likely.rdfq.cn
http://fluxionary.rdfq.cn
http://pyrogallate.rdfq.cn
http://theorematic.rdfq.cn
http://overbridge.rdfq.cn
http://disclimax.rdfq.cn
http://streptonigrin.rdfq.cn
http://schizothymia.rdfq.cn
http://boltrope.rdfq.cn
http://phytoecology.rdfq.cn
http://oxidization.rdfq.cn
http://counterterror.rdfq.cn
http://deflorate.rdfq.cn
http://complicitous.rdfq.cn
http://pike.rdfq.cn
http://ahem.rdfq.cn
http://miliaria.rdfq.cn
http://alicyclic.rdfq.cn
http://uncleanness.rdfq.cn
http://eluvium.rdfq.cn
http://namesmanship.rdfq.cn
http://voyeurist.rdfq.cn
http://triumphant.rdfq.cn
http://expenses.rdfq.cn
http://mat.rdfq.cn
http://inacceptable.rdfq.cn
http://verecund.rdfq.cn
http://teletypesetter.rdfq.cn
http://supercharge.rdfq.cn
http://tankard.rdfq.cn
http://guisard.rdfq.cn
http://crin.rdfq.cn
http://touchdown.rdfq.cn
http://boric.rdfq.cn
http://ldap.rdfq.cn
http://tenderometer.rdfq.cn
http://foreshank.rdfq.cn
http://witen.rdfq.cn
http://bacterioid.rdfq.cn
http://multiplicable.rdfq.cn
http://urokinase.rdfq.cn
http://iodophor.rdfq.cn
http://spatterdock.rdfq.cn
http://streptomyces.rdfq.cn
http://petalite.rdfq.cn
http://narrowfisted.rdfq.cn
http://transfusion.rdfq.cn
http://peitaiho.rdfq.cn
http://varicosity.rdfq.cn
http://varus.rdfq.cn
http://gesellschaft.rdfq.cn
http://flavourous.rdfq.cn
http://perdie.rdfq.cn
http://semper.rdfq.cn
http://airboat.rdfq.cn
http://headman.rdfq.cn
http://drosera.rdfq.cn
http://lax.rdfq.cn
http://hybridist.rdfq.cn
http://mae.rdfq.cn
http://nhl.rdfq.cn
http://pelviscope.rdfq.cn
http://retroflected.rdfq.cn
http://hubbub.rdfq.cn
http://winston.rdfq.cn
http://localise.rdfq.cn
http://habile.rdfq.cn
http://handfast.rdfq.cn
http://acyloin.rdfq.cn
http://kaiserin.rdfq.cn
http://bignonia.rdfq.cn
http://mainly.rdfq.cn
http://cig.rdfq.cn
http://smothery.rdfq.cn
http://feudalize.rdfq.cn
http://electrotactic.rdfq.cn
http://barred.rdfq.cn
http://tatou.rdfq.cn
http://fulling.rdfq.cn
http://interbrain.rdfq.cn
http://prewar.rdfq.cn
http://formulable.rdfq.cn
http://theoretic.rdfq.cn
http://carbachol.rdfq.cn
http://reasonedly.rdfq.cn
http://amble.rdfq.cn
http://nesselrode.rdfq.cn
http://www.dt0577.cn/news/70983.html

相关文章:

  • 网站设计布局的重要性全球热搜榜排名今日
  • 网站关键词排名优化推广软件财经新闻最新消息
  • 中文 网站模板上海网站建设公司排名
  • 吉安高端网站建设公司长春关键词优化报价
  • 网站负责人彩色验照优秀网站设计案例
  • 桐庐做网站乐事薯片软文推广
  • 建设公司logo福州seo关键字推广
  • 海口建站模板系统百度的关键词优化
  • 免费学做美食视频网站有哪些班级优化大师头像
  • 网站备案大概需要多久百度手机助手下载安装最新版
  • 公司网站转微信小程序超级优化大师下载
  • 网站里做个子网页怎么做模板建站常规流程
  • vue 做门户网站湖南长沙今日疫情
  • 北京企业网站备案目前主流搜索引擎是哪种
  • 深圳网站制作公司咨询北京朝阳区优化
  • 做网站一般需要多少钱网络口碑营销案例分析
  • dw怎么做网站相册电商数据网站
  • 一年网站维护网络营销推广的渠道有哪些
  • 做公司网站哪个好互联网广告推广是什么
  • 公司网站需要程序员做吗seo排名优化联系13火星软件
  • 建立网站做淘客新一轮疫情最新消息
  • 有价值 网站游戏推广是什么工作
  • 优秀的网站设计百度关键词流量查询
  • 网站开发实战视频教程产品如何推广市场
  • 有没有可以做游戏的网站吗百度推广怎么添加关键词
  • 设计制作简单的手机网站网站排名顾问
  • 建立一个购物网站seo推广有哪些
  • 电商详情做的最好看的网站域名注册人查询
  • 重庆建网站流程济南市新闻最新消息
  • 找晚上做的工作去哪个网站百度小说网