SCRUM
任务总览
前端
任务 |
完成情况 |
个人信息上传 |
未完成进行中33% |
帖文搜索 |
未完成 |
修复头像bug |
未完成进行中40% |
组局权限判断 |
已完成 |
头像bug |
已完成 |
任务 |
分派人员 |
scroll-view下拉刷新出现的bug问题 |
茂基 |
个人信息上传 |
语涵 |
帖文详情界面 |
炜华 |
组局bug修复 |
伟峰 |
后端
任务 |
完成情况 |
内容审核工具类实现 |
已完成 |
完成删除私聊列表中的某一项service、controller层代码 |
已完成 |
修改组局接口 |
未完成进行中80% |
任务 |
分派人员 |
在发帖功能、评论功能使用内容审核功能 |
亮亮 |
完成用户接收消息service、controller层代码 |
海翔 |
修改组局接口 |
小螃蟹 |
成员描述
成员 |
昨日成就 |
存在问题 |
问题解决方案或描述 |
明日安排 |
语涵104 |
个人信息上传完成10% (1h/3h) |
首次接触 |
这部分之前没有接触过,所以要学着弄 |
个人信息上传 |
建斌209 |
编写获取聊天列表及界面(1h) |
无 |
无 |
获取聊天界面逻辑 |
茂基222 |
修复bug问题(2/6h) |
过度刷新 |
微信小程序scroll-view下拉刷新被触发多次。发帖抽风,出现500报错。 |
bug修复 |
炜华230 |
对贴文界面的components进行熟悉,着手写贴文详情界面。 (2h/8h) |
代码阅读 |
由于这部分是另一个同学写的,发现有很多没有用过的用法,且组件之间有嵌套,在熟悉代码上花费很多时间 |
继续完成贴文详情界面 |
伟峰432 |
修复部分组局前端的bug (7h/9h) |
图片存入 |
还没有搞懂图片是怎么存入服务器的,中间有个转换的过程,还需要去熟悉 |
继续解决bug;完成图片显示 |
亮亮215 |
实现内容审核工具类(1h) |
工具类的异常需要由谁来处理? |
根据场景,需要调用者知晓异常出现的,需要交由调用者处理;调用者并不关心异常信息,则由工具类处理。 |
在发帖功能、评论功能使用内容审核功能 |
海翔321 |
完成用户发送消息service、controller层代码(40min) |
无 |
无 |
完成用户接收消息service、controller层代码 |
小螃蟹411 |
改善了获取组局发现的新bug(没有登陆时应该是无法获取任何组局的),解决返回获得列表无返回头像的问题(1.5/2.5h) |
无 |
无 |
“修改组局”接口 |
丫比125 |
项目督促,博客园撰写(1h) |
无 |
成员积极性调动需要再加把劲 |
督促开发,博客园撰写 |
内容展示
console.log(event.target.dataset.id);
let id = event.target.dataset.id;
let that = this;
let baseUrl = app.globalData.baseUrl;
let jsonStr = '{"postId":' + id + '}';
let jsonValue = JSON.parse(jsonStr);
console.log(jsonValue);
request({
url: baseUrl + '/api/alumnicycle/posts/collect',
method:'POST',
Headers: {
'content-type': 'application/json'
},
data: jsonValue,
success:function(res)
{
console.log(res);
let newEyeOnNum = that.data.eyeOnNum + 1;
that.setData({
isEyeOn: 1,
eyeOnNum: newEyeOnNum
});
},
if(partyList != null){
for(let i = 0; i < partyList.length; i++){
partyList[i].gmtCreate = timeago.format(new Date(partyList[i].gmtCreate),'zh_CN');
if(partyList[i].username.length > 6){
partyList[i].username = partyList[i].username.substr(0, 6) + "...";
}
if(partyList[i].description.length > 35){
partyList[i].description = partyList[i].description.substr(0, 35) + "...";
}
}
if(partyList.length == 0)
that.setData({show: true});
else
that.setData({show: false});
}
完成issue
public class ContentFilterUtil {
private static final AisAccess service;
private static final String uri;
static {
/*初始化service*/
uri = "/v1.0/moderation/text";
}
public static boolean isContentLegal(String content) throws IOException {
boolean result = false;
try {
JSONObject json = new JSONObject();
json.put("categories", new String[] {"porn","politics", "ad", "abuse", "contraband", "flood"});
JSONObject text = new JSONObject();
text.put("text", content);
text.put("type", "content");
JSONArray items = new JSONArray();
items.add(text);
json.put("items", items);
public class ResponseProcessUtils {
private static final Logger logger = LoggerFactory.getLogger(ResponseProcessUtils.class);
public static void processResponseStatus(HttpResponse response) {
System.out.println(response.getStatusLine().getStatusCode());
}
public static boolean isRespondedOK(HttpResponse response) {
int statusCode = response.getStatusLine().getStatusCode();
System.out.println(statusCode);
return HttpStatus.SC_OK == statusCode;
}
@PostMapping("/send")
public Result<Integer> sendMessage(@RequestBody Map<String, Object> map) {
if (user == null) {
Result<Integer> result = new Result<>();
result.setCode(ExceptionInfo.valueOf("USER_NOT_LOGIN").getCode());
result.setMessage(ExceptionInfo.valueOf("USER_NOT_LOGIN").getMessage());
return result;
}
Long userIdTo = (Long) map.get("userIdTo");
String content = map.get("content").toString();
return privateChatService.sendMessage(user.getId(), userIdTo, content);
}
// 用户发送消息
public Result<Integer> sendMessage(Long id, Long userIdTo, String content) {
Result<Integer> result = new Result<>();
if (userIdTo == null) {
result.setCode(ExceptionInfo.valueOf("USER_DIALOG_ID_NULL").getCode());
result.setMessage(ExceptionInfo.valueOf("USER_DIALOG_ID_NULL").getMessage());
return result;
}
if (content == null || content == "") {
result.setCode(ExceptionInfo.valueOf("USER_SEND_MESSAGE_NULL").getCode());
result.setMessage(ExceptionInfo.valueOf("USER_SEND_MESSAGE_NULL").getMessage());
return result;
}
PrivateChat privateChat = new PrivateChat();
privateChat.setFromId(id);
privateChat.setToId(userIdTo);
privateChat.setMessage(content);
result.setCode(ExceptionInfo.valueOf("OK").getCode());
result.setMessage(ExceptionInfo.valueOf("OK").getMessage());
result.setData(privateChatMapper.insert(privateChat));
return result;
}
完成issue
@GetMapping("/myparty")
public Result<List<Map<String, Object>>> getMyparty() {
System.out.println(user.toString());
if (user == null) {
Result<List<Map<String, Object>>> result = new Result<>();
result.setCode(ExceptionInfo.valueOf("USER_NOT_LOGIN").getCode());
@GetMapping("/partymes")
public Result<Map<String, Object>> getPartymes(Long partyId) {
public Result<Map<String, Object>> getPartymes(@RequestParam Number partyId) {
return partyService.getPartymes(partyId);
Long partyIdLong = partyId.longValue();
return partyService.getPartymes(partyIdLong);
}
会议图片
![img](https://cdn.nlark.com/yuque/0/2021/png/21479501/1623552488460-b1722d47-2526-4a41-a358-07f66b91087f.png)
PM报告
工作总结
项目燃尽图
![img](https://cdn.nlark.com/yuque/0/2021/png/21479501/1623552269891-61145f1f-67a9-48eb-bdf5-68ae51e2d321.png)
任务总量变化
变化日期 |
变化数量 |
变化描述 |
预计处理时间 |
2021/06/12 |
+67 |
β冲刺整体issue总览 |
7days |
2021/06/14 |
+1 |
bug微信小程序scroll-view下拉刷新被触发多次,导致发帖页面不明缘由抽风,开始持续出现500错误 |
2days |
最新项目截图
![img](https://cdn.nlark.com/yuque/0/2021/png/21479501/1623675458197-f01fe4b7-6926-44a6-b4a2-2859be345f6a.png)
![img](https://cdn.nlark.com/yuque/0/2021/png/21479501/1623675477551-db6d53b2-580b-48d1-beff-7390b67ec541.png)
![img](https://cdn.nlark.com/yuque/0/2021/png/21479501/1623675492731-8d860a06-a9dd-41ba-b654-84fcf43133f6.png)
![img](https://cdn.nlark.com/yuque/0/2021/png/21479501/1623675615183-45d86f8c-81bb-4be1-a64d-9d10cde9c64d.png)