用户信息管理
后台管理系统可以对所有注册用户进行统一管理。如查看用户列表,用户详情,用户发布的视频/动态等
一、分页查询用户列表(就是查询所有的用户信息)
1.ManageController
| |
| |
| |
| |
| |
| |
| |
| |
| @GetMapping("/users") |
| public ResponseEntity queryAllUserInfo(@RequestParam(defaultValue = "1") Integer page, |
| @RequestParam(defaultValue = "10") Integer pagesize){ |
| PageResult pageResult = manageService.queryAllUserInfo(page,pagesize); |
| return ResponseEntity.ok(pageResult); |
| } |
| |
2.ManageService
| public ResponseEntity queryUserInfoByPage(Integer page, Integer pagesize) { |
| |
| IPage<UserInfo> iPage = userInfoApi.findAll(page,pagesize); |
| |
| PageResult result = new PageResult(page, pagesize, iPage.getTotal(), iPage.getRecords()); |
| |
| return ResponseEntity.ok(result); |
| } |
3.UserInfoApiImpl
| |
| |
| |
| |
| |
| |
| public IPage queryUserInfoByPage(Integer page, Integer pagesize) { |
| |
| Page<UserInfo> iPage = new Page<>(page,pagesize); |
| Page<UserInfo> infoIPage = userInfoMapper.selectPage(iPage, null); |
| return infoIPage; |
| } |
| |
二、根据id查看用户详情(UserInfo)
1.ManageController
| |
| /** |
| * 根据id查看用户详情 |
| * 请求路径:/manage/users/:userID |
| * 请求方式:get |
| * 请求参数: 路径参数 Long userID(用户id) |
| * 响应数据: UserInfo |
| */ |
| @GetMapping("/users/{userID}") |
| public ResponseEntity queryUserInfoById(@PathVariable("userID") Long userId){ |
| |
| UserInfo userInfo = manageService.queryUserInfoById(userId); |
| return ResponseEntity.ok(userInfo); |
| } |
2.ManageService
| |
| public ResponseEntity findById(Long userId) { |
| UserInfo info = userInfoApi.findById(userId); |
| return ResponseEntity.ok(info); |
| } |
三、根据用户id查询视频记录翻页列表
1.ManageController
| |
| |
| |
| |
| |
| |
| |
| |
| @GetMapping("/videos") |
| public ResponseEntity queryVideosById(@RequestParam(defaultValue = "1") Integer page, |
| @RequestParam(defaultValue = "10") Integer pagesize, |
| Long uid){ |
| |
| PageResult pageResult = manageService.queryVideosById(page,pagesize,uid); |
| |
| return ResponseEntity.ok(pageResult); |
| } |
2.ManageService
| |
| |
| |
| |
| |
| |
| |
| |
| public PageResult queryVideosById(Integer page, Integer pagesize, Long uid) { |
| |
| PageResult pageResult =videoApi.queryVideosById(page,pagesize,uid); |
| |
| return pageResult; |
| } |
3.VideoApiImpl
| |
| |
| |
| |
| |
| |
| |
| |
| public PageResult queryVideosById(Integer page, Integer pagesize, Long userId) { |
| |
| Criteria criteria = Criteria.where("userId").in(userId); |
| Query query = Query.query(criteria); |
| |
| query.skip((page - 1) * pagesize).limit(pagesize).with(Sort.by(Sort.Order.desc("created"))); |
| |
| |
| long count = mongoTemplate.count(query, Video.class); |
| |
| List<Video> videos = mongoTemplate.find(query, Video.class); |
| |
| |
| PageResult pageResult = new PageResult(page,pagesize,count,videos); |
| |
| return pageResult; |
| } |
四、根据用户id分页查询动态记录
1.ManageController
| |
| |
| |
| |
| |
| |
| |
| |
| @GetMapping("/messages") |
| public ResponseEntity queryMoments(@RequestParam(defaultValue = "1") Integer page, |
| @RequestParam(defaultValue = "10") Integer pagesize, |
| Long uid,Integer state){ |
| PageResult pageResult = manageService.queryMoments(page,pagesize,uid,state); |
| return ResponseEntity.ok(pageResult); |
| |
| } |
2.ManageService
| |
| |
| |
| |
| |
| |
| |
| |
| public PageResult queryMoments(Integer page, Integer pagesize, Long userId, Integer state) { |
| |
| |
| PageResult pageResult = movementsApi.queryMoments(page,pagesize,userId,state); |
| |
| List<Movement> movements = (List<Movement>) pageResult.getItems(); |
| |
| |
| if(StringUtils.isEmpty(movements)){ |
| return new PageResult(); |
| } |
| |
| List<Long> userIds = CollUtil.getFieldValues(movements, "userId", Long.class); |
| Map<Long, UserInfo> userInfoMap = userInfoApi.batchQueryUserInfo(userIds, null); |
| |
| |
| List<MovementsVo> vos = new ArrayList<>(); |
| for (Movement movement : movements) { |
| UserInfo userInfo = userInfoMap.get(movement.getUserId()); |
| if(userInfo != null){ |
| MovementsVo vo = MovementsVo.init(userInfo, movement); |
| vos.add(vo); |
| } |
| } |
| |
| pageResult.setItems(vos); |
| return pageResult; |
| } |
3.MovementsApiImpl
| |
| |
| |
| |
| |
| |
| |
| |
| public PageResult queryMoments(Integer page, Integer pagesize, Long userId, Integer state) { |
| |
| |
| Query query = new Query(); |
| |
| if(userId != null){ |
| query.addCriteria(Criteria.where("userId").is(userId)); |
| } |
| |
| if(state != null){ |
| query.addCriteria(Criteria.where("state").is(state)); |
| } |
| |
| long count = mongoTemplate.count(query, Movement.class); |
| |
| |
| |
| query.skip((page-1) * pagesize ).limit(pagesize).with(Sort.by(Sort.Order.desc("created"))); |
| List<Movement> movements = mongoTemplate.find(query, Movement.class); |
| |
| PageResult pageResult = new PageResult(page,pagesize,count,movements); |
| return pageResult; |
| } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决
· 提示词工程——AI应用必不可少的技术