code发

65 阅读1分钟
在leadnews-wemedia中的pom.xml添加依赖
<!-- kafkfa -->
<dependency>
    <groupId>org.springframework.kafka</groupId>
    <artifactId>spring-kafka</artifactId>
</dependency>
<dependency>
    <groupId>org.apache.kafka</groupId>
    <artifactId>kafka-clients</artifactId>
</dependency>
leadnews-wemedia的application.yml加入kafka的配置
spring:
  application:
    name: leadnews-wemedia
  kafka:
    bootstrap-servers: 192.168.137.136:9092
    producer:
      retries: 10
      key-serializer: org.apache.kafka.common.serialization.StringSerializer
      value-serializer: org.apache.kafka.common.serialization.StringSerializer
在heima-leadnews-wemedia工程下的WmNewsController新增方法
@PostMapping("/api/v1/news/down_or_up")
public ResponseResult downOrUp(@RequestBody WmNewsDto dto){
    wmNewsService.downOrUp(dto);
    return ResponseResult.ok();
} 
在WmNewsService新增方法
WM_NEWS_UP_OR_DOWN_TOPIC
  public void downOrUp(WmNewsDto dto);   
    @Autowired
    private KafkaTemplate<String,String> kafkaTemplate;

    @Override
    public void downOrUp(WmNewsDto dto) {
//        获取用户的登录信息
        Integer userId = UserThreadLocalUtils.getUserId();
//        获取自媒体文章id
        Integer wmNewsId = dto.getId();
//        获取文章数据
        WmNews wmNews1 = getById(wmNewsId);
        //intValue()包装类型转化
        if(wmNews1.getWmUserId().intValue() != userId.intValue()){
            log.error("没有权限操作文章上下架");
            throw new LeadException(AppHttpCodeEnum.NO_OPERATOR_AUTH);
        }
        if(wmNews1.getStatus() != 9){
            log.error("文章状态不是发布");
            throw new LeadException(AppHttpCodeEnum.NO_OPERATOR_AUTH);
        }
        Long articleId = wmNews1.getArticleId();
        if(articleId == null){
            log.error("没有articleid,无法执行上下架");
            throw new LeadException(AppHttpCodeEnum.NO_OPERATOR_AUTH);
        }
        WmNews wmNews = new WmNews();
        wmNews.setId(dto.getId());
        wmNews.setEnable(dto.getEnable());
//        修改自媒体上下架
        boolean b = updateById(wmNews);

//        key - articleId  key-enable  value 1-上架  0- 下架
        Map<String,Long> map = new HashMap<>();
        map.put("articleId",articleId);
        map.put("enable",dto.getEnable()?1L:0L);
        String msg = JsonUtils.toString(map);
//        发送消息
        kafkaTemplate.send(WM_NEWS_UP_OR_DOWN_TOPIC,msg);
    }