我和群众站一队-alpha冲刺第8日

我和群众站一队 2024-11-09 23:02:09

冲刺日记八:

这个作业属于哪个课程https://bbs.csdn.net/forums/2401_CS_SE_FZU
这个作业要求在哪里https://bbs.csdn.net/topics/619397949
这个作业的目标CodeArt团队实战总结
其他参考文献CSDN,博客园

目录

  • 冲刺日记八:
  • 一、项目进展
  • 二、存在的问题/遇到的困难及接下来的安排
  • 三、站立式会议照片
  • 四、今日完成度相关照片
  • 五、心得体会

一、项目进展

222200315张俊腾
优化排行榜接口,增加分页功能

- ```
  public Response<List<LeaderboardEntry>> getRescueLeaderboard(Long userId, int page, int size) {
          Pageable pageable = PageRequest.of(page, size);
          List<Object[]> results = rescueInfoRepository.findRescueCountsByUid(pageable);
          List<LeaderboardEntry> leaderboard = new ArrayList<>();
  
          int rank = page * size + 1;
          for (Object[] row : results) {
              Long uid = (Long) row[0];
              Long rescueCount = (Long) row[1];
              Optional<User> optionalUser = userRepository.findById(uid);
              if (optionalUser.isPresent()) {
                  String username = optionalUser.get().getUsername();
                  LeaderboardEntry entry = new LeaderboardEntry(rank, username, rescueCount);
                  leaderboard.add(entry);
                  rank++;
              }
          }
  
          return new Response<>(200, "success", leaderboard);
      }
  ```

222200309孙阳
进展一:测试获取用户奖牌功能,获取用户消息功能

img

img

222200304卢君豪
进展一:“完成/取消求助”controller的实现

@PostMapping("/accomplish")
        public Response<Null> accomplishHelpRequest(@RequestParam Long helpRequestID, @RequestParam Integer status) {
            Authentication authentication = SecurityContextHolder.getContext().getAuthentication();

            if (authentication == null || !authentication.isAuthenticated()) {
                return new Response<>(403, "未认证的用户没有权限执行此操作", null);
            }

            return helpRequestService.accomplishHelpRequest(helpRequestID, status);
        }        

进展二:“完成/取消求助”的service的实现

        public Response<Null> accomplishHelpRequest(Long helpRequestID, Integer status) {
            HelpRequest helpRequest = helpRequestRepository.findById(helpRequestID).orElse(null);
            if (helpRequest == null) {
                return new Response<>(401, "求助信息不存在", null);
            }
            if (status != 2 && status != 3) {
                return new Response<>(401, "状态无效", null);
            }
            if (helpRequest.getStatus() != 1) {
                return new Response<>(401, "求助已结束,", null);
            }
            helpRequest.setStatus(status);
            helpRequestRepository.save(helpRequest);
            return new Response<>(200, "success", null);
        }

222200310李怡涵
进展一:获取时间的修复

 DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss");
        LocalDateTime localDateTime = LocalDateTime.parse(userUploadRequest.getExpiryAt(), formatter);
        OffsetDateTime offsetDateTime = localDateTime.atOffset(ZoneOffset.UTC);
        LocalDateTime expiryTime = offsetDateTime.toLocalDateTime();
        liveInfo.setExpiryAt(expiryTime);

进展二:token的各种错误的测试

img

img

img

img

222200311李梓玄
进展一:实现地图控件添加覆盖物(实况信息和求助信息)

img

222200328夏振
进展一:新增管理员审核求助请求接口
222200401丁昌彪
进展一:实现完成求助和取消求助功能
222200312杨年申
进展一:完成UserController.deleteUserInfo的搭建

            @DeleteMapping("/delete_user")
            public Response deleteUserInfo(
                    @RequestParam("uid") Long uid,
                    @RequestHeader("Authorization") String token
            ) {
                return userService.deleteUserInfo(uid,token);
            }            

进展二:完善deleteUserInfo的Service和Repository

            public Response<Null> deleteUserInfo(long uid, String token) {

            //检查令牌
            Claims claims;
            try {
                claims = JwtUtil.extractClaims(token);
            } catch (MalformedJwtException e) {
                return new Response<>(400, "无效的令牌格式", null);
            } catch (ExpiredJwtException e) {
                return new Response<>(401, "令牌已过期", null);
            } catch (IllegalArgumentException e) {
                return new Response<>(400, "令牌不能为空", null);
            } catch (JwtException e) {
                return new Response<>(401, "无效的令牌", null);
            } catch (Exception e) {
                return new Response<>(500, "服务器内部错误", null);
            }

            long userId = Long.parseLong(claims.getSubject());

            // 查找用户角色
            Integer role = userRepository.findRoleById(userId);
            if (role == null)
            {
                return new Response<>(400, "用户不存在",null);
            } else if (role == 2) { // 如果是管理员
                // 软删除 uid 匹配的用户
                userRepository.softDeleteUserById(uid);
            } else if (role == 1) { // 如果是普通用户
                // 软删除 token 中解析出来的用户 ID
                userRepository.softDeleteUserById(userId);
            }

            return new Response<>(200, "success",null);
        }            
            @Modifying
            @Transactional
            @Query("UPDATE User u SET u.deletedAt = CURRENT_TIMESTAMP WHERE u.id = :uid")
            void softDeleteUserById(Long uid);

222200230梁蕴潆
进展一:编写冲刺日记
进展二:完善了主页和捐赠部分插件的代码

二、存在的问题/遇到的困难及接下来的安排

成员存在的问题/遇到的困难接下来的安排
222200315张俊腾- 遇到的问题: - 在优化acceptHelpRequest方法时,如何有效地减少数据库查询次数.- 解答:- 通过调整检查顺序,首先检查用户是否已接取过该求助,避免不必要的类型检查和查询。继续完善RescueService.java中的业务逻辑,确保接取求助功能在各种场景下都能稳定运行。
222200309孙阳打算测试“新增用户消息功能,”开始编写“更新用户奖牌”的接口代码
222200304卢君豪问题、困难1,不知道怎么用经纬度计算距离 - 解答,经查询资料所得,可以用哈弗辛公式计算进行测试,排查bug
222200310李怡涵- 继续修复已知的Bug,进行更完善的测试
222200311李梓玄困难:地图覆盖物点击后无法自动隐藏,无法进行更近一步的操作 解决:需要继续学习地图控件,使用可以自定义信息窗的 MarkerInfoWindowContent继续学习地图控件,主要是自定义信息窗 MarkerInfoWindowContent - 完善上传实况和上传求助的字段检查
222200328夏振暂时没有遇到问题接下来还是把我剩下没完成的功能设计实现,并总结今天完成的内容
222200401丁昌彪问题:不知道在特殊情况下如何实现等待后端的请求解决办法:暂未解决完成更换手机号,完成注销账号
222200312杨年申- 问题、困难1- 需要确保用户只有在特定权限下才能删除其他用户的信息,普通用户只能删除自己的信息。- 解答- 在 Service 层中,根据请求者的角色和用户标识进行权限检查。- 问题、困难2 - 需要实现软删除功能,而不是直接从数据库中删除用户记录。- 解答 - 在用户实体中添加一个 deleted_at 字段,标识用户是否被删除。在删除操作中,将该字段更新,而不是直接执行删除。安排实现updateToken接口
222200230梁蕴潆总结今日的工作,初步实现下一项任务。

三、站立式会议照片

img

四、今日完成度相关照片

成员相关图片
222200315张俊腾

img

222200309孙阳

img

222200304卢君豪

img

222200310李怡涵

img

222200311李梓玄

img

222200328夏振

img

222200401丁昌彪

img

222200312杨年申

img

222200230梁蕴潆

img

五、心得体会

成员心得体会
222200315张俊腾做项目时既要确保系统既满足业务需求,又要保持数据的完整性和一致性。
222200309孙阳代码编写要专心,否则只会永远debug
222200304卢君豪非常好的学习,使我“完成/取消求助”
222200310李怡涵后端编写代码时需要多加考虑前端用户的传入的数据
222200311李梓玄感觉每天做一点点,工作量瞬间就下来了,非常爽
222200328夏振感谢项目使我获得提升,谢谢
222200401丁昌彪计划赶不上变化。
222200312杨年申良好的代码结构:将修改逻辑拆分成多个步骤,不仅提升了代码的可读性,也便于将来进行维护和扩展。合理的代码结构可以提高团队协作效率。
222200230梁蕴潆参与项目让我获得提升,学到很多新知识。
...全文
112 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

113

社区成员

发帖
与我相关
我的任务
社区描述
202401_CS_SE_FZU
软件工程 高校
社区管理员
  • FZU_SE_TeacherL
  • 助教_林日臻
  • 防震水泥
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧