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内容和链接
四、最新模块
群组实现(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;
}
}
五、总结
成员 |
感想 |
张孟聪 |
积攒经验 下次不踩同样的坑 |
郭炜彬 |
加油!我的好兄弟们!最近都很辛苦! |
杨析睿 |
今天感觉已经完全熟悉流程,进入状态,因此开发效率再度提高,即对昨天工作进行了完善,也接触了又一个模块。 |
黎梓洋 |
多场景测试 |
刘霖笙 |
学习要投入,不然自己的进度会拖累整个进度 |
叶臻强 |
快要结束了,冲冲冲 |