逐梦校友圈——β冲刺day1
这个作业属于哪个课程 | <福州大学2021春软件工程实践S班> |
---|---|
这个作业要求在哪里 | 团队作业六——beta冲刺+事后诸葛亮 |
团队名称 | 逐梦校友圈 |
这个作业的目标 | β每日冲刺文档 |
SCRUM
成员描述
成员 | 昨日成就 | 存在问题 | 问题解决方案或描述 | 明日安排 |
---|---|---|---|---|
语涵104 | 完成社区规范界面的实现 (1.2h) | 排版 | 因为有大量的字,字体排版方面要做的符合用户阅读习惯 | 社区规范优化 |
建斌209 | 服务器数据恢复,后端转前端内容适应 | 数据 | 数据没有备份 , 导致修复环境难度大 | 学习小程序 |
茂基222 | 发帖界面帖子类型的选择 (1h) | 代码阅读 | 之前这部分代码是另一个同学所写,看代码效率低 | 发帖界面分页获取数据 |
炜华230 | 今日对显示内容做了一些调整,且对alpha冲刺未完成的拉黑列表进行补充(1h/1.2h) | 数据库调整 | 前端连接数据库出现问题,导致数据丢失,调整本地数据库连接花费较长时间 | 完成拉黑列表部分,并对头像设置的bug进行修复 |
伟峰432 | 修改新增组局部分样式;熟悉前后端数据传递(1h) | 开发模式适应 | 前后端开发模式和使用云开发有很大不同,还不能很熟练地开发 | 完成前端发送修改组局请求 |
亮亮215 | 1.发布帖子 修复发帖人不正确 2.首页帖文展示 优化持久层帖文多表关联查询(1h) | 映射 | 修改持久层的结果映射会导致其他复用该映射的查询不可用 | 配置内容审核功能的基本环境 |
海翔321 | 获取用户私聊列表接口对应代码(1h) | 如何获取相同值的一条记录 | 使用分组查询,group by | 完成清空列表service、controller层代码 |
小螃蟹411 | 修改发布新建组局部分的问题:如果用一个没有注册的用户新建组局时,参与者表插入一个 不存在的用户,那么每当要获取所有组局的时候或者是获取组局详情的时候就会出现“500”的错误,所以要增加判断用户是否存在的逻辑(1h/2h) | bug寻找 | 由于是一个很小的细节所以很难发觉问题出现在哪 | 继续测试,发现新的bug |
丫比125 | 代码验收,博客园撰写(1h) | 时间安排 | 上交时间比较零散,时间就会比较碎片化 | 验收任务,督促代码 |
内容展示
- 语涵104
<style>
.h1{
margin-left: 5%;
margin-top: 3%;
font-size: 18px;
font-weight:bold;
}
.h2{
color:#505050;
margin-left: 5%;
margin-right: 5%;
margin-top: 2%;
font-size: 14px;
}
</style>
<view class="h1">逐梦校友圈社区规范说明</view>
<view class="h2">逐梦校友圈致力于为用户提供一一个温暖、可信、友善、和谐的线上社区。为了维护社区秩序,保持良好氛围,逐梦校友圈团队将依据本规范中的条款对使用逐梦校友圈的用户和发布与逐梦校友圈上的内容进行管理。在收到用户举报或巡查发现违规行为时,逐梦校友圈团队将会根据对社区氛围破坏的程度,使用删除发布内容、暂停用户部分权限乃至终止用户使用逐梦校友圈的权利等措施进行管理。</view>
</view>
</view>
<van-divider
contentPosition="center"
customStyle="color: #f2774d; border-color: #f2774d; font-size: 14px;"
>END
</van-divider>
</van-tab>
...
- 茂基222
publishPost:function(e)
{
if(this.data.postContent=="")
{
Dialog.alert({
message: '发布内容不能为空',
}).then(() => {
// on close
});
}
else{
let _this=this;
const file = _this.data.fileList;
let promiseArr=[];
let imgServerUrls=new Array();
console.log(_this.data.fileList);
file.forEach(function (e) {
var FSM = wx.getFileSystemManager();
let imageType=getApp().getImageType(e.url);
promiseArr.push(//顺序上传照片请求
new Promise(function (resolve,reject) {
FSM.readFile({
filePath: e.url,
encoding: "base64",
success: function (data) {
wx.request({
url: app.globalData.baseUrl+'/api/posts/imgupload',
method: "POST",
data: {
base64Str: imageType + data.data,
filename: "111"
},
success: function (res) {
console.log(res);
console.log("上传图片成功");
if(res.data.code==200)
{
return resolve(res);
}
else{
return reject(res.data.message);
}
},
fail: function (e) {
console.log(e);
console.log("上传图片失败");
return reject(e)
},
complete: function (complete) {
return complete;
}
})
}
});
})
)
})
Promise.all(promiseArr).then(function (values) {
console.log(values);
values.forEach(function (e) {
console.log(e);
imgServerUrls.push(e.data.data)
})
// console.log(imgServerUrls);
_this.setData({
imgUrls:imgServerUrls
})
console.log(_this.data.imgUrls)
wx.request({//创建组局请求
url: app.globalData.baseUrl+'/api/posts/publish',
method:'POST',
data:{
userId:123456,
postTheme:1,
message:_this.data.postContent,
imgUrls:_this.data.imgUrls.join(";")
},
success:function(res)
{
console.log(_this.data.imgUrls)
console.log(res);
Dialog.alert({
message: '发布成功',
}).then(() => {
// on close
wx.switchTab({
url: '../index/index',
})
});
}
})
}).catch(
reason=>{
console.log(reason)
}
)
}
},
- 炜华230
getBlackList() {
let that = this;
let baseUrl = app.globalData.baseUrl;
request({
url: baseUrl + '/api/userackst',
method: 'GET',
success(res) {
console.log(res);
that.setData({
blackList: res.data.data.reverse(),
})
}
})
},
- 伟峰432
if (_this.data.buttonOperationValue == 1) {
request({
url: app.globalData.baseUrl + '/api/party/insert',
method: "POST",
data: {
userId: _this.data.userId,
description: _this.data.partyDetailContent.toString(),
images: _this.data.imgUrls,
peopleCnt: _this.data.memNum,
partyTypeID: 0
},
success(res) {
console.log(res);
if (res.data.code == 200) {
Dialog.alert({
message: '发布成功',
}).then(() => {
// on close
wx.switchTab({
url: '../index/index',
})
});
}
else {
Dialog.alert({
message: '发布失败',
}).then(() => {
// on close
});
}
},
fail: function (res) {
console.log(res);
}
})
}
- 亮亮215
Long postTheme = postThemeNumber.longValue();
String message = (String) requestMap.get("message");
String imgUrls = (String) requestMap.get("imgUrls");
Number userIdNum = (Number) requestMap.get("userId");
Long userId = userIdNum.longValue();
Long userId = user.getId();
ExceptionInfo exceptionInfo;
<resultMap id="postToShow" type="com.team.backend.model.Post">
<id column="id" property="id"/>
<result property="publisherId" column="publisher_id"/>
<result property="status" column="status"/>
<result property="postTypeId" column="post_type_id"/>
<result property="message" column="message"/>
<result property="imageUrls" column="image_urls"/>
<result property="gmtCreate" column="gmt_create"/>
<result property="gmtModified" column="gmt_modified"/>
<result property="deleted" column="deleted"/>
<result property="currentUserId" column="currentUserId"/>
<association property="publisherName" javaType="string" column="publisher_id" select="selectUserNameById"/>
- 海翔321
User user = null;
@Autowired
PrivateChatServiceImpl privateChatService;
@PostMapping("/list")
public Result<List<Map<String, Object>>> listChat() {
if (user == null) {
Result<List<Map<String, Object>>> result = new Result<>();
result.setCode(ExceptionInfo.valueOf("USER_NOT_LOGIN").getCode());
result.setMessage(ExceptionInfo.valueOf("USER_NOT_LOGIN").getMessage());
return result;
}
return privateChatService.listChat(user.getId());
}
// 获取用户私聊列表
public Result<List<Map<String, Object>>> listChat(Long id) {
Result<List<Map<String, Object>>> result = new Result<>();
List<Map<String, Object>> chatList = new LinkedList<>();
QueryWrapper<PrivateChat> wrapper = new QueryWrapper<>();
wrapper.select("to_id")
.eq("from_id", id)
.groupBy("to_id");
List<Map<String, Object>> maps = privateChatMapper.selectMaps(wrapper);
for (Map<String, Object> objectMap : maps) {
Long toId = (Long) objectMap.get("to_id");
Map<String, Object> map = new HashMap<>();
map.put("dialogUserId", toId);
User user = userMapper.selectById(toId);
map.put("dialogUserName", user.getUsername());
map.put("iconUrl", user.getUserIconUrl());
QueryWrapper<PrivateChat> chatWrapper = new QueryWrapper<>();
chatWrapper.eq("from_id", id)
.eq("to_id", toId)
.orderByDesc("gmt_create");
List<PrivateChat> privateChatList = privateChatMapper.selectList(chatWrapper);
PrivateChat privateChat = privateChatList.get(0);
map.put("latestTime", privateChat.getGmtCreate());
map.put("latestMessage", privateChat.getMessage());
chatList.add(map);
}
result.setCode(ExceptionInfo.valueOf("OK").getCode());
result.setMessage(ExceptionInfo.valueOf("OK").getMessage());
result.setData(chatList);
return result;
}
- 小螃蟹411
if (userMapper.selectById(id) == null) {//新建组局是看userId是否已注册(即数据库user表是否存在改userId)
result = ExceptionInfo.USER_NOT_EXISTED;
return result;
}
Party party = new Party();
party.setPublisherId(id);
party.setDescription(description);
- 丫比
- 验收项:社区规范
验收截图
会议图片
PM报告
工作总结
- 预期工作量:4/67 issue
- 目前已完成工作量:4 issue
- 剩余共工作量:63 issue
项目燃尽图
(注:由于燃尽图必须要把所有的issu放在同一个milestone下,所以会燃尽图会有断层)
任务总量变化
- 数量未变,按照计划issue数执行