前面描述了该项目 自媒体端。app端的应用,也描述了管理平台的网关和登录,现在讲下管理平台的频道的增删查改,
管理频道还是一个新的模块,由admin-gateway路由,然后再通过feign调用子媒体频道功能,实现频道增删查改,关于feign的调用,感兴趣的小伙伴可以去看看我前面的内容
所以在这个地方,就又有了服务提供者和消费者的概念,那么自媒体的频道板块就是服务的提供者,而管理服务模块就成了服务消费者,然后,网关用上篇文章提到的admin-gateway
下面按照秩序给出代码
首先是服务提供者的代码,即子媒体频道服务
这里先要新建一个feign,然后实现频道的增删查改,当然,此时,实现的接口爆红,后面会补充
@RestController
@AllArgsConstructor
public class WmChannelFeign implements IChannelClient {
private WmChannelService wmChannelService;
private WmNewsService wmNewsService;
@Override
@PostMapping("/api/v1/channel/list")
public ResponseResult pageList(WmChanPageReqDto dto) {
return wmChannelService.pageList(dto);
}
@Override
@PostMapping("/api/v1/channel/save")
public ResponseResult save(AdChanSaveDto dto) {
WmChannel channel = wmChannelService.getOne(Wrappers.<WmChannel>lambdaQuery().eq(WmChannel::getName, dto.getName()));
if (channel==null){
WmChannel wmChannel = new WmChannel();
BeanUtils.copyProperties(dto,wmChannel);
wmChannel.setCreatedTime(new Date());
return ResponseResult.okResult(wmChannelService.save(wmChannel));
}
return ResponseResult.okResult(AppHttpCodeEnum.DATA_EXIST);
}
@Override
@PostMapping("/api/v1/channel/update")
public ResponseResult update(AdChanSaveDto dto) {
WmChannel wmChannel = new WmChannel();
BeanUtils.copyProperties(dto,wmChannel);
wmChannel.setCreatedTime(new Date());
List<WmNews> list = wmNewsService.list(Wrappers.<WmNews>lambdaQuery().eq(WmNews::getChannelId, dto.getId()));
if (list!=null&&list.size()>0){
if (dto.getStatus()==false){
return ResponseResult.errorResult(AppHttpCodeEnum.CHANNEL_REFERENCE);
}
}
return ResponseResult.okResult(wmChannelService.updateById(wmChannel));
}
@Override
@PostMapping("/api/v1/channel/del/{id}")
public ResponseResult del(Integer id) {
WmChannel wmChannel = wmChannelService.getById(id);
if (wmChannel!=null&&wmChannel.getStatus()==false){
return ResponseResult.errorResult(AppHttpCodeEnum.CHANNEL_BANNED);
}
return ResponseResult.okResult(wmChannelService.removeById(id));
}
}
服务提供者子媒体频道分页查询实现代码
@Override
public ResponseResult pageList(WmChanPageReqDto dto) {
//1.检查参数
if (dto == null){
return ResponseResult.errorResult(AppHttpCodeEnum.PARAM_INVALID);
}
//分页参数检查
dto.checkParam();
//获取当前登录人信息
// AdUser user = AdminThreadLocalUtil.getUser();
// if (user == null){
// return ResponseResult.errorResult(AppHttpCodeEnum.NEED_LOGIN);
// }
//2.分页条件查询
IPage page = new Page(dto.getPage(), dto.getSize());
LambdaQueryWrapper<WmChannel> lambdaQueryWrapper = new LambdaQueryWrapper<>();
//频道名称模糊查询
if (dto.getName()!=null){
lambdaQueryWrapper.like(WmChannel::getName,dto.getName());
}
//发布时间倒序查询
lambdaQueryWrapper.orderByDesc(WmChannel::getCreatedTime);
page = page(page, lambdaQueryWrapper);
//3.结果返回
PageResponseResult pageResponseResult = new PageResponseResult(dto.getPage(), dto.getSize(), (int) page.getTotal());
pageResponseResult.setData(page.getRecords());
return pageResponseResult;
}
然后接下来就是feign接口的定义,当前是定义在一个相当于插件服务中
@FeignClient("leadnews-wemedia")
public interface IChannelClient {
@PostMapping("/api/v1/channel/list")
public ResponseResult pageList(@RequestBody WmChanPageReqDto dto);
@PostMapping("/api/v1/channel/save")
public ResponseResult save(@RequestBody AdChanSaveDto dto);
@PostMapping("/api/v1/channel/update")
public ResponseResult update(@RequestBody AdChanSaveDto dto);
@PostMapping("/api/v1/channel/del/{id}")
public ResponseResult del(@PathVariable Integer id);
}
然后就是服务消费者,定义在管理模块中
@RestController
@AllArgsConstructor
@RequestMapping("/api/v1/channel")
public class AdChannelController {
private AdChannlService adChannlService;
private IChannelClient channelClient;
@PostMapping("/list")
public ResponseResult list(@RequestBody WmChanPageReqDto dto){
return channelClient.pageList(dto);
}
@PostMapping("/save")
public ResponseResult save(@RequestBody AdChanSaveDto dto){
return channelClient.save(dto);
}
@PostMapping("/update")
public ResponseResult update(@RequestBody AdChanSaveDto dto){
return channelClient.update(dto);
}
@GetMapping("/del/{id}")
public ResponseResult del(@PathVariable Integer id){
return channelClient.del(id);
}
}
当前就是整个管理平台频道的增删查改,更加具体的内容可以在评论区留言,我会一一解答,记得一键三连哟,您的鼓励是我更新的动力,谢谢