Browse Source

增加远程调用分页的例子,解决mybatis-plus传递IPage反序列化报错的bug

test
smallchill 6 years ago
parent
commit
9ace334d24
  1. 9
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/feign/INoticeClient.java
  2. 17
      blade-service/blade-desk/src/main/java/org/springblade/desk/controller/NoticeController.java
  3. 19
      blade-service/blade-desk/src/main/java/org/springblade/desk/feign/NoticeClient.java

9
blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/feign/INoticeClient.java

@ -17,14 +17,12 @@
package org.springblade.desk.feign;
import org.springblade.core.launch.constant.AppConstant;
import org.springblade.core.tool.api.R;
import org.springblade.core.mp.support.BladePage;
import org.springblade.desk.entity.Notice;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
/**
* Notice Feign接口类
*
@ -41,10 +39,11 @@ public interface INoticeClient {
/**
* 获取notice列表
*
* @param number
* @param current
* @param size
* @return
*/
@GetMapping(TOP)
R<List<Notice>> top(@RequestParam("number") Integer number);
BladePage<Notice> top(@RequestParam("current") Integer current, @RequestParam("size") Integer size);
}

17
blade-service/blade-desk/src/main/java/org/springblade/desk/controller/NoticeController.java

@ -21,11 +21,14 @@ import io.swagger.annotations.*;
import lombok.AllArgsConstructor;
import org.springblade.common.cache.CacheNames;
import org.springblade.core.boot.ctrl.BladeController;
import org.springblade.core.mp.support.BladePage;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springblade.core.secure.annotation.PreAuth;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.Func;
import org.springblade.desk.entity.Notice;
import org.springblade.desk.feign.INoticeClient;
import org.springblade.desk.service.INoticeService;
import org.springblade.desk.vo.NoticeVO;
import org.springblade.desk.wrapper.NoticeWrapper;
@ -47,9 +50,12 @@ public class NoticeController extends BladeController implements CacheNames {
private INoticeService noticeService;
private INoticeClient noticeClient;
/**
* 详情
*/
@PreAuth("hasPermission('desk:notice:detail')")
@GetMapping("/detail")
@ApiOperationSupport(order = 1)
@ApiOperation(value = "详情", notes = "传入notice")
@ -129,4 +135,15 @@ public class NoticeController extends BladeController implements CacheNames {
return R.status(temp);
}
/**
* 远程调用分页接口
*/
@GetMapping("/top")
@ApiOperationSupport(order = 8)
@ApiOperation(value = "分页远程调用", notes = "传入current,size")
public R<BladePage<Notice>> top(@ApiParam(value = "当前页") @RequestParam Integer current, @ApiParam(value = "每页显示条数") @RequestParam Integer size) {
BladePage<Notice> page = noticeClient.top(current, size);
return R.data(page);
}
}

19
blade-service/blade-desk/src/main/java/org/springblade/desk/feign/NoticeClient.java

@ -16,16 +16,17 @@
*/
package org.springblade.desk.feign;
import com.baomidou.mybatisplus.core.metadata.IPage;
import lombok.AllArgsConstructor;
import org.springblade.core.tool.api.R;
import org.springblade.desk.mapper.NoticeMapper;
import org.springblade.core.mp.support.BladePage;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springblade.desk.entity.Notice;
import org.springblade.desk.service.INoticeService;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import springfox.documentation.annotations.ApiIgnore;
import java.util.List;
/**
* Notice Feign
*
@ -36,12 +37,16 @@ import java.util.List;
@AllArgsConstructor
public class NoticeClient implements INoticeClient {
NoticeMapper mapper;
private INoticeService service;
@Override
@GetMapping(TOP)
public R<List<Notice>> top(Integer number) {
return R.data(mapper.topList(number));
public BladePage<Notice> top(Integer current, Integer size) {
Query query = new Query();
query.setCurrent(current);
query.setSize(size);
IPage<Notice> page = service.page(Condition.getPage(query));
return BladePage.of(page);
}
}

Loading…
Cancel
Save