逐梦校友圈——β冲刺day7
这个作业属于哪个课程 | <福州大学2021春软件工程实践S班> |
---|---|
这个作业要求在哪里 | 团队作业六——beta冲刺+事后诸葛亮 |
团队名称 | 逐梦校友圈 |
这个作业的目标 | β每日冲刺文档 |
SCRUM
任务总览
前端
- 昨日安排
任务 | 完成情况 |
---|---|
完成图片上传界面和功能 | 已完成 |
完成组局详情页的评论部分 | 已完成 |
校友圈评论内容 | 已完成 |
拉黑界面调用 | 已完成 |
后端
- 昨日安排
任务 | 完成情况 |
---|---|
校友圈接口测试 | 已完成 |
组局接口测试 | 已完成 |
私聊接口测试 | 已完成 |
成员描述
成员 | 昨日成就 |
---|---|
语涵104 | 完成图片上传界面和功能 花费1.5h |
建斌209 | 拉黑界面复用(1h) |
茂基222 | 测试私聊界面显示(界面已放到pm报告中) |
炜华230 | 完成了帖子评论显示及发送评论;修复了个人设置界面收藏、黑名单、评论等界面的时间与图像显示bug;添加个人界面跳转至对应详情页 |
伟峰432 | 完成组局详情页的评论部分 (7h) |
亮亮215 | 测试代码(40min) |
海翔321 | 完成剩余接口测试(30min) |
小螃蟹411 | 对组局部分整体查漏补缺、完善细节;用postman测试几个之前有问题的接口(3.5h) |
丫比125 | 项目督促,博客园撰写,询问详细版本信息,制订接下来的计划(1.5h) |
内容展示
//使用链式调用保证下一个异步操作前已经获得到数据
new Promise(function(resolve, reject) {
request({
url: app.globalData.baseUrl+'/api/party/partymes',
method: 'GET',
data: {
partyId: parseInt(_this.data.partyID)
},
success: function (res) {}
}).then((images) => {// then
console.log('publisherID--------', this.data.partyPublisherID)
// 取到图片后缀,处理后缀存到imageUrlArr中
this.setData({
imageUrlsArr: processSuffix(images)
})
// 获取创建者的信息,包括年龄、头像url的后缀、昵称等
let promise = this.getPublisherMessage()
return promise
}).then(() => {
// 获取当前用户Id
return this.getUserId()
}).then(() => {
// 判断是否已经加入过,是否为局长
let {partyParticipantsId} = this.data
partyParticipantsId.forEach((item) => {
if(item == this.data.userId) {
this.setData({
hasjoined: true,
buttonContent: '退出拼局'
})
if(item == this.data.partyPublisherID) {
this.setData({
isPublisher: true
})
}
}
})
// 处理partyParticipantsId,获得membersInfoArr
this.getMembersInfoArr()
}).then(() => {
wx.hideLoading({
success: (res) => {},
})
})
- 亮亮215
- 完成issue
根据ID查询单个帖子详情
@PostMapping("/getById")
public Result selectPostById(@RequestBody Map<String,Number> queryMap) {
Result result;
Long userId = user.getId();
Long postId = queryMap.get("postId").longValue();
result = Result.success(postService.selectPostById(postId,userId));
return result;
}
List<Post> selectPostByIdWithUserId(Map<String,Long> query);
}
List<Map<String,Object>> selectPostById(Long postId,Long currentUserId);
@Override
public List<Map<String, Object>> selectPostById(Long postId, Long currentUserId) {
Map<String,Long> queryMap = new HashMap<>();
queryMap.put("currentUserId",currentUserId);
queryMap.put("postId",postId);
return pack(postMapper.selectPostByIdWithUserId(queryMap));
}
//测试代码
@Test
public void publishPost2() {
ExceptionInfo exceptionInfo = postService.publishPost(123456L, null, "danyuanceshi", "");//缺少帖子类别id
Assertions.assertEquals(exceptionInfo,ExceptionInfo.POST_PUBLISH_INFO_LOST);//返回信息提示发帖信息缺失
}
@Test
void likePost1() {
PostLike postLike = new PostLike();
postLike.setIdFrom(123456L);
postLike.setPostId(10L);
Assertions.assertFalse(postLikeService.likePost(postLike));//点赞成功
}
@Test
void likePost2() {
PostLike postLike = new PostLike();
postLike.setIdFrom(123456L);
// postLike.setPostId(10L);//缺少点赞帖子的id
Assertions.assertFalse(postLikeService.likePost(postLike));//点赞失败
}
- 海翔321
- 完成issue
// 发送消息service代码测试
@Test
void sendMessageTest() {
Result<Integer> result = new Result<>();
result.setCode(ExceptionInfo.valueOf("USER_DIALOG_ID_NULL").getCode());
result.setMessage(ExceptionInfo.valueOf("USER_DIALOG_ID_NULL").getMessage());
Assertions.assertEquals(result, privateChatService.sendMessage(123456L, null, ""));
result.setCode(ExceptionInfo.valueOf("USER_SEND_MESSAGE_NULL").getCode());
result.setMessage(ExceptionInfo.valueOf("USER_SEND_MESSAGE_NULL").getMessage());
Assertions.assertEquals(result, privateChatService.sendMessage(123456L, 3L, null));
result.setCode(ExceptionInfo.valueOf("USER_SEND_MESSAGE_NULL").getCode());
result.setMessage(ExceptionInfo.valueOf("USER_SEND_MESSAGE_NULL").getMessage());
Assertions.assertEquals(result, privateChatService.sendMessage(123456L, 3L, ""));
result.setCode(ExceptionInfo.valueOf("OK").getCode());
result.setMessage(ExceptionInfo.valueOf("OK").getMessage());
result.setData(1);
Assertions.assertEquals(result, privateChatService.sendMessage(123456L, 3L, "你好世界"));
}
// 接收消息service代码测试
@Test
void receiveMessageTest() {
Result<List<Map<String, Object>>> result = new Result<>();
result.setCode(ExceptionInfo.valueOf("USER_DIALOG_ID_NULL").getCode());
result.setMessage(ExceptionInfo.valueOf("USER_DIALOG_ID_NULL").getMessage());
Assertions.assertEquals(result, privateChatService.receiveMessage(123456L, null, 1, 1));
result.setCode(ExceptionInfo.valueOf("USER_PAGE_NUM_NULL").getCode());
result.setMessage(ExceptionInfo.valueOf("USER_PAGE_NUM_NULL").getMessage());
Assertions.assertEquals(result, privateChatService.receiveMessage(123456L, 3L, null, 1));
result.setCode(ExceptionInfo.valueOf("USER_PAGE_NUM_BELOW0").getCode());
result.setMessage(ExceptionInfo.valueOf("USER_PAGE_NUM_BELOW0").getMessage());
Assertions.assertEquals(result, privateChatService.receiveMessage(123456L, 3L, -2, 1));
result.setCode(ExceptionInfo.valueOf("USER_PAGE_SIZE_NULL").getCode());
result.setMessage(ExceptionInfo.valueOf("USER_PAGE_SIZE_NULL").getMessage());
Assertions.assertEquals(result, privateChatService.receiveMessage(123456L, 3L, 1, null));
result.setCode(ExceptionInfo.valueOf("USER_PAGE_SIZE_BELOW0").getCode());
result.setMessage(ExceptionInfo.valueOf("USER_PAGE_SIZE_BELOW0").getMessage());
Assertions.assertEquals(result, privateChatService.receiveMessage(123456L, 3L, 1, -1));
result = privateChatService.receiveMessage(123456L, 3L, 1, 2);
System.out.println(result);
}
-
小螃蟹411
-
修改组局接口
-
评论组局接口
-
获取组局列表接口
-
模糊搜索
-
丫比
<view id="no-list" wx:if="{{history_list.length==0}}">还没有私聊内容哦</view>
<view id='clear-record' wx:else bind:tap="clearAllRecord">清空聊天记录</view>
//清空聊天记录
clearAllRecord:function(e){
let that = this
wx.showModal({
title: '提示',
content: '您确定要清空所有聊天记录吗',
success (res) {
if (res.confirm) {
request({
url : app.globalData.baseUrl + "/api/message/chat/clearlist",
method : "POST",
success : function(res){
wx.showToast({
title: '已清除聊天记录',
icon:'success',
duration:1000
})
that.setData({
history_list : []
})
},
fail : function(res){
wx.showToast({
title: '清楚聊天记录失败,请稍后重试',
icon:'warn',
duration : 1000
})
}
})
} else if (res.cancel) {
console.log('用户点击取消')
}
}
})
},
会议图片
PM报告
工作总结
-
预期工作量:63 /65(-3)issue
-
目前已完成工作量:63 issue
-
今日完成工作量:16 issu
-
前端
-
后端
-
剩余共工作量 2 issue
-
剩余issue描述:属于服务器崩坏状态报错500,并未允许关闭issue
项目燃尽图
(由于一个仓库里的燃尽图在导入时候必须放到同一个milestone当中,所以是α和β冲刺的结合燃尽图,请从Jun六月开始查看)
任务总量变化
变化日期 | 变化数量 | 变化描述 | 预计处理时间 |
---|---|---|---|
2021/06/12 | +67 | β冲刺整体issue总览 | 7days |
2021/06/14 | +1 | bug微信小程序scroll-view下拉刷新被触发多次,导致发帖页面不明缘由抽风,开始持续出现500错误 | 2days |
2021/06/15 | +1 | 新加添加测试,便于调试 | 1day |
2021/06/17 | -3 | 减少错误重复issue | 0 |
错误重复issue
最新项目截图
头像私聊框
用户拉黑
我的->拉黑列表
发起私聊
私聊界面
(没人和我私聊就一个人自娱自乐)
私聊(消息)列表
清空聊天内容
搜索校友圈内容
搜索组局内容
组局详情
组员移除
加入组局
评论组局
嵌套评论
上传个人校园信息(随便拿了一张图片上传)