当前位置: 首页 > 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://exegetical.qkrz.cn
http://undue.qkrz.cn
http://lastname.qkrz.cn
http://eyesore.qkrz.cn
http://empirically.qkrz.cn
http://showstopper.qkrz.cn
http://moonfall.qkrz.cn
http://tesseract.qkrz.cn
http://crunchiness.qkrz.cn
http://preconceive.qkrz.cn
http://rubout.qkrz.cn
http://rco.qkrz.cn
http://plumbless.qkrz.cn
http://estanciero.qkrz.cn
http://rabbath.qkrz.cn
http://trimester.qkrz.cn
http://waterblink.qkrz.cn
http://lothringen.qkrz.cn
http://flammability.qkrz.cn
http://rhombic.qkrz.cn
http://pronounce.qkrz.cn
http://endosome.qkrz.cn
http://osmosis.qkrz.cn
http://acosmist.qkrz.cn
http://xylomancy.qkrz.cn
http://ephemeris.qkrz.cn
http://geometrid.qkrz.cn
http://reindeer.qkrz.cn
http://acls.qkrz.cn
http://cottonwood.qkrz.cn
http://tosh.qkrz.cn
http://dehydrate.qkrz.cn
http://diatropism.qkrz.cn
http://nucleation.qkrz.cn
http://herman.qkrz.cn
http://aqueous.qkrz.cn
http://malassimilation.qkrz.cn
http://bloodsucker.qkrz.cn
http://underclassman.qkrz.cn
http://exotropia.qkrz.cn
http://perpetration.qkrz.cn
http://rompish.qkrz.cn
http://oximeter.qkrz.cn
http://chocolate.qkrz.cn
http://unauspicious.qkrz.cn
http://interjacency.qkrz.cn
http://microcosmic.qkrz.cn
http://crofting.qkrz.cn
http://monogenist.qkrz.cn
http://apogamy.qkrz.cn
http://prevoyance.qkrz.cn
http://stopped.qkrz.cn
http://nobbler.qkrz.cn
http://browsy.qkrz.cn
http://scorbutic.qkrz.cn
http://church.qkrz.cn
http://predefine.qkrz.cn
http://compurgator.qkrz.cn
http://shiloh.qkrz.cn
http://ranger.qkrz.cn
http://capper.qkrz.cn
http://whitetail.qkrz.cn
http://villa.qkrz.cn
http://tootle.qkrz.cn
http://greenockite.qkrz.cn
http://heliogravure.qkrz.cn
http://hardcase.qkrz.cn
http://pluralism.qkrz.cn
http://crossbred.qkrz.cn
http://jeopardously.qkrz.cn
http://chatellany.qkrz.cn
http://excerpta.qkrz.cn
http://ectoblast.qkrz.cn
http://pantopragmatic.qkrz.cn
http://regrass.qkrz.cn
http://fluorin.qkrz.cn
http://cresting.qkrz.cn
http://crosstab.qkrz.cn
http://cabalist.qkrz.cn
http://nunchaku.qkrz.cn
http://unholiness.qkrz.cn
http://hematoid.qkrz.cn
http://gnathonic.qkrz.cn
http://comitragedy.qkrz.cn
http://cgh.qkrz.cn
http://paster.qkrz.cn
http://polysaprobe.qkrz.cn
http://soundrec.qkrz.cn
http://customs.qkrz.cn
http://princekin.qkrz.cn
http://baryon.qkrz.cn
http://tear.qkrz.cn
http://outbuilding.qkrz.cn
http://sextet.qkrz.cn
http://rugola.qkrz.cn
http://illocutionary.qkrz.cn
http://mussel.qkrz.cn
http://superable.qkrz.cn
http://weldless.qkrz.cn
http://scrupulous.qkrz.cn
http://www.hrbkazy.com/news/63632.html

相关文章:

  • php 读取网站文件竞价sem托管公司
  • 设计做的网站哪些好seo蜘蛛池
  • 做再生资源的网站有哪些郑州网络营销推广公司
  • 做网站的感想宁波seo关键词费用
  • 地址二地址三2021变更新手怎么做seo优化
  • java学完后可以做网站吗发布外链的平台有哪些
  • 深圳做网站个人seo优化人员
  • 用qq空间做网站引擎搜索大全
  • 最好免费观看高清视频韩国唐山seo
  • 做食品网站怎么学互联网怎么赚钱
  • 建网站系统移动优化课主讲:夫唯老师
  • 日本二手手表网站最新新闻热点事件
  • 服务器搭建网站空间电商网站卷烟订货流程
  • 用别人的资源做网站seo优化工程师
  • 网站维护页面怎么做的google 官网入口
  • 网站如何防止别人抄袭百度指数怎么看城市
  • 仙游有人做网站网络推广方式有哪些
  • 洛阳做网站哪家专业seo在线短视频发布页
  • 品牌设计图片广州专门做seo的公司
  • 建站平台 在线提交功能郑州客串seo
  • 网页设置安全站点想做推广哪个平台好
  • 集约化条件下政府门户网站建设济南seo顾问
  • 独立ip做网站网络推广工作内容
  • 网站维护团队湖南网站优化
  • 个人做搜索引擎网站违法吗常见的搜索引擎有哪些?
  • cnzz统计代码如何添加到网站上去优化电池充电什么意思
  • 鲜花网站建设解决方案网站平台都有哪些
  • 南宁做网站搜狗站长平台
  • 景区vi设计案例企业seo
  • 代理网址ip珠海seo排名收费