管理平台频道增删查改

本文详细描述了一个项目中,通过Feign接口在管理平台中实现频道的增删查改操作,介绍了服务提供者(子媒体频道服务)和消费者(管理服务模块)的角色划分,以及如何通过`IChannelClient`进行跨服务通信。
摘要由CSDN通过智能技术生成

        前面描述了该项目        自媒体端。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);
	}
}

        当前就是整个管理平台频道的增删查改,更加具体的内容可以在评论区留言,我会一一解答,记得一键三连哟,您的鼓励是我更新的动力,谢谢

  • 21
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

唐三葬PLUS

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值