实习笔记-RPC
一、dj_admin/Controller层 在controller中写list方法,展示黑名单中所有用户:
1 2 3 4 5 6 7 @RequestMapping("list") public Object list (String userId, String phone, String startTime, String endTime, @RequestParam(defaultValue = "1") Integer page, @RequestParam(defaultValue = "10") Integer size) { PageResponseBean<ExtractAudit> pageResponseBean = extractBlacklistService.list(userId, phone, startTime, endTime, page, size); return new ResponseResult <>(pageResponseBean); }
传入userId、phone、startTime、endTime和分页参数page、size;
调用Service层extractBlacklistService中的list方法进行查询;
返回分页结果;
二、dj_admin/Service层 定义IExtractBlacklistService接口,以及list方法:
1 2 3 4 5 public interface IExtractBlacklistService { void black (String id, String operator) ; PageResponseBean<ExtractAudit> list (String userId, String phone, String startTime, String endTime, Integer page, Integer size) ; }
实现这个接口,并在list中书写具体的业务逻辑:
1 2 3 4 5 6 7 8 9 10 11 12 @Override public PageResponseBean<ExtractAudit> list (String userId, String phone, String startTime, String endTime, Integer page, Integer size) { PageResponseBean<ExtractAudit> pageBean = vcService.pageBlackList(userId, startTime, endTime, page, size); return pageBean; }
调用vcServic的pageBlackList方法处理分页;
后面就是具体的业务逻辑,处理分页返回结果;
三、dj_admin/RPC层 1 2 3 4 5 6 7 8 9 10 public PageResponseBean<ExtractAudit> pageBlackList (String userId, String startTime, String endTime, Integer page, Integer size) { String res = HttpUtils.doGet(vcConfig.getExtractBlacklistPageUrl(), params, HttpConstant.DEFAULT_CHARSET, null , HttpConstant.DEFAULT_OUT_TIME, null ); }
通过HttpUtils.doGet ()方法发送请求到dj_vc项目处理;
四、dj_vc/Controller层 接收到请求,调用blackListService的pageInfo方法处理分页请求。
1 2 3 4 5 6 7 @RequestMapping("page") public Object page (String user, Long startTime, Long endTime, String status, @RequestParam(required = false, defaultValue = "1") int page, @RequestParam(required = false, defaultValue = "10") int size) { PageResponseBean<BlackList> pageResponseBean = blackListService.pageInfo(user, startTime, endTime, status, page, size); return new ResponseResult <>(pageResponseBean); }
五、dj_vc/Service层 调用持久层blackListDao的pageInfo方法。
1 2 3 4 public PageResponseBean<BlackList> pageInfo (String user, Long startTime, Long endTime, String status, int page, int size) { IPage<BlackList> blackListIPage = blackListDao.pageInfo(user, startTime, endTime, status, page, size); return new PageResponseBean <>(blackListIPage.getRecords(), (int ) blackListIPage.getTotal(), page, size); }
六、dj_vc/Dao层 利用MybatisPlus构建查询条件,查询MySQL数据库,并返回结果
1 2 3 4 5 6 public IPage<BlackList> pageInfo (String user, Long startTime, Long endTime, String status, int page, int size) { return blackListMapper.selectPage(new Page <>(page, size), wrapper); }
七、返回结果 沿着上述路径返回结果给dj_admin,展示黑名单页面。