第 4 篇 Scrum 冲刺博客

发布时间 2023-11-23 21:47:03作者: awsdl

作业概述

这个作业属于哪个课程 软件工程
这个作业要求在哪里 作业链接
这个作业的目标 1、站立式会议 2、项目燃尽图 3、代码/文档签入记录 4、项目程序/模块的最新(运行)截图 5、每日每人总结
作业所属团队 就吃西兰花?队
团队成员 李嘉鹏、田小古、李境豪、詹炜昊、黄俊强、陈梓杨

会议

会议照片

昨天已完成的工作/今天计划完成的工作

已完成

完善个人主页界面的编写和ui设计
初步设计完成评论功能
测试视频上传和推荐

计划完成

初步设计点赞功能
加快评论功能的实现,完善
测试个人主页界面功能

工作中遇到的困难

  • 前端代码模块暂时遇到困难,需学习些新知识

  • 项目进度较为缓慢

项目燃尽图

代码/文档签入记录

issue截图

项目程序/模块的最新(运行)截图

最新模块的代码

点击查看代码
public class RedisUtil {

    @Resource
    private RedisTemplate<Object, Object> redisTemplate;

    /**
     * 设置过期时间
     *
     * @param key      键
     * @param time     过期时间
     * @param timeUnit 时间单位
     * @return 成功与否
     */
    public boolean expire(String key, long time, TimeUnit timeUnit) {
        try {
            if (time > 0) {
                redisTemplate.expire(key, time, timeUnit);
            }
        } catch (Exception e) {
            log.error(e.getMessage(), e);
            return false;
        }
        return true;
    }

    /**
     * 根据 key 获取过期时间
     *
     * @param key 键
     * @return 时间(秒)
     */
    public long getExpire(Object key) {
        return redisTemplate.getExpire(key, TimeUnit.SECONDS);
    }

    /**
     * key是否存在
     *
     * @param key key
     * @return T/F
     */
    public boolean hasKey(String key) {
        try {
            return redisTemplate.hasKey(key);
        } catch (Exception e) {
            log.error(e.getMessage(), e);
            return false;
        }
    }

点击查看代码
public class UserDetailServiceImpl implements UserDetailsService {
    @Autowired
    private UserMapper userMapper;
    @Autowired
    private MenuMapper menuMapper;
    @Resource
    private PasswordEncoder passwordEncoder;
    @Resource
    private RoleMapper roleMapper;
    @Resource
    private RedisUtil redisUtil;

    @Override
    public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
        LambdaQueryWrapper<User> queryWrapper = new LambdaQueryWrapper<>();
        queryWrapper.eq(User::getUsername, username);
        User user = userMapper.selectOne(queryWrapper);
        if (user == null) {
            throw new BusinessException(ResultConstant.USER_NULL, "用户信息不存在");
        }
        List<Object> roles = redisUtil.lGet(RedisConstants.ROLE + username);
        if (roles==null||roles.size()==0){
           roles = roleMapper.selectRoleByUid(user.getId());
           redisUtil.lSet(RedisConstants.ROLE + username, roles);
        }
        redisUtil.delete(RedisConstants.MENU + username);
        List<Object> menus=redisUtil.lGet(RedisConstants.MENU + username, 0, -1);
        if (menus == null || menus.size() == 0) {
            menus = menuMapper.selectMenuByUid(user.getId());
            redisUtil.lSet(RedisConstants.MENU + username, menus);
        }
        List<GrantedAuthority> authorities =  AuthorityUtils.commaSeparatedStringToAuthorityList(getAuth(menus));
        return new JwtUserDto(user, user.getUsername(), passwordEncoder.encode(user.getPassword()), roles, authorities);
    }

    public static String getAuth(List<Object> permission) {
        String list = permission.toString();
        return list.substring(1, list.length() - 1);
    }
}

运行结果截图

每日每人总结

成员 总结
李嘉鹏 今天又是没有大问题的一天
田小古 美美完成一个功能
陈梓杨 发现了几个BUG,并且改掉了,防止软件上线的时候耽误用户体验
詹炜昊 一杯茶,一台电脑,从早到晚搞代码
黄俊强 美好的一天从打开电脑开始
李境豪 代码测试工作 进展20%