Scrum冲刺-day6

Scrum冲刺-day6

这个作业属于哪个课程 班级链接
这个作业要求在哪里 作业链接
这个作业的目标 Scrum冲刺

1 站立会议

1.1 会议照片

1.2 会议内容

成员 昨日完成 今日计划 遇到的困难
张孟聪 完善用户单聊的功能 新增朋友圈的功能 和前端对接时一些接口报出莫名其妙的错
郭炜彬 完成博客和任务分配 撰写博客,商量测试和发布 暂无
杨析睿 1.朋友圈服务模块的接口和实现,2.群聊模块实体设计代码 1.在群聊模块实体基础上,完成群聊服务模块的接口和实现;2.聊天模块实体设计代码;3.聊天模块连接数据库相关代码。 今天还好,遇到的困难之前已经经历过。有两个细节值得记忆:1.添加群聊时,传入的一组用户字符串需要编写对其的切割代码,获取对应的用户;2.设置群聊中的权限,进行操作时需要进行权限核实。
黎梓洋 测试已发布的前端 对API进行安全测试 不同系统显示界面有所区别
刘霖笙 部分前后端交互 继续学习并完善前后端交互 暂无,渐入佳境
叶臻强 继续完成基础逻辑 对着更新的接口文档进行修改 不够熟练,拖延症

2 项目燃尽图

3 签入记录

3.1 代码/文档签入记录

3.2 Code Review 记录

接口文档

3.3 issue内容和链接

成员 issue内容和链接
张孟聪 实现朋友圈服务接口设计,并构造群聊实体
杨析睿 完成聊天模块连接数据库相关代码
叶臻强 更新+明确接口内容

四、最新模块

群组实现(GroupImpl.java)

public class GroupImpl implements GroupService {

    private static GroupDao groupDao = new GroupDaoImpl();

    @Override
    public void deleteMember(int userId, int groupId) {
        groupDao.deleteMember(userId, groupId);
    }

    @Override
    public boolean judgePrivilege(int userId, int deleteId, List<User> userList) {
        /**
         * 获取发送请求者的权限
         */
        int privilegeUser = -1;
        /**
         * 获取被操作者的权限
         */
        int privilegeDelete = -1;
        for (User user : userList) {
            if (user.getUserId() == userId) {
                privilegeUser = user.getStatus();
            }
            if (user.getUserId() == deleteId) {
                privilegeDelete = user.getStatus();
            }
        }
        /**
         * 对权限进行判断,当出现操作者的权限低于被操作者
         * 则不可进行操作
         */
        if (privilegeUser > privilegeDelete) {
            return true;
        } else {
            return false;
        }
    }

    @Override
    public boolean judgePrivilege(int userId, List<User> userList, int groupId) {
        int status = -1;
        for (User user :
                userList) {
            if (userId == user.getUserId()) {
                status = user.getStatus();
            }
        }
        if (status > 0) {
            return true;
        } else {
            return false;
        }
    }

    @Override
    public boolean addMember(int userId, int groupId, int status) {
        return groupDao.addMember(userId, groupId, status);
    }

    @Override
    public List<User> getFriends(String loginId) {
        int userId = DbUtil.getUserId(loginId);
        try {
            return groupDao.getFriends(userId);
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return null;
    }

    @Override
    public void addMember(String users, int group) {
        /**
         * users为前端传送的一组用户字符串
         * 通过对其进行切割而获取对应的用户
         * 主要用户与后端的信息传递
         */
        String[] user = users.split("and");
        for (String userString :
                user) {
            int userId = Integer.parseInt(userString);
            if (!judgeIsExist(userId, group)) {
                addMember(userId, group, 0);
            }
        }
    }

    @Override
    public boolean judgeIsExist(int userId, int groupId) {
        try {
            return groupDao.judgeIsExist(userId, groupId);
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return false;
    }

    @Override
    public boolean addGroup(int userId, String group, String users) {
        groupDao.addGroup(userId, group);
        /**
         * users为前端传送的一组用户字符串
         * 通过对其进行切割而获取对应的用户
         * 主要用户与后端的信息传递
         */
        String[] user = users.split("and");
        for (String userString :
                user) {
            int memberId = Integer.parseInt(userString);
            if (memberId == userId) {
                groupDao.addMember(userId, 2);
            } else {
                groupDao.addMember(memberId, 0);
            }
        }
        return true;
    }

    @Override
    public boolean updateRight(int userId, int groupId, List<User> userList) {
        int status;
        /**
         * 更新用户权限
         * 1. 更新的用户已经是管理员或群主,则无需更新
         * 2. 操作者本身并没有发起提升权限的权限,返回false
         * 3. 操作者本身是管理员,被操作者是普通成员,则返回true
         */
        for (User user :
                userList) {
            if (userId == user.getUserId()) {
                status = user.getStatus();
                if (status > 0) {
                    return false;
                }
            }
            if (Constant.user.getUserId() == user.getUserId()) {
                if (user.getStatus() == 0) {
                    return false;
                }
            }
        }
        return groupDao.updateRight(userId, groupId);
    }

    @Override
    public List<Message> getMessage(int sendId, int receiverId) {
        try {
            return groupDao.getMessages(sendId, receiverId);
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return null;
    }

    @Override
    public List<Message> getGroupMsg(int groupId, int receiverId) {
        try {
            return groupDao.getGroupMsg(groupId, receiverId);
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return null;
    }
}

五、总结

成员 感想
张孟聪 积攒经验 下次不踩同样的坑
郭炜彬 加油!我的好兄弟们!最近都很辛苦!
杨析睿 今天感觉已经完全熟悉流程,进入状态,因此开发效率再度提高,即对昨天工作进行了完善,也接触了又一个模块。
黎梓洋 多场景测试
刘霖笙 学习要投入,不然自己的进度会拖累整个进度
叶臻强 快要结束了,冲冲冲
posted @ 2021-11-24 11:32  Beamice  阅读(49)  评论(0编辑  收藏  举报