Author:歪瑞古德小队

Project:海岛漂流

集合贴:团队作业4:项目冲刺集合贴(歪瑞古德小队)

一、Daily Scrum Meeting

1.1 会议照片

1.2 项目进展

团队成员 昨日完成任务 今日计划任务 遇到的困难
黄钰朝 #38根据名称搜索海岛 #40根据id返回一个海岛 我不知道要交概率论
作业,我太难了
黄煜淇 #43查询用户信息时返回距离 #44根据id星标海岛 概率论作业有点难做,
看着答案都不懂
余圣源 #50完成树洞和时间胶囊功能接入 #51完成写信界面和功能接入 太多的任务,时间真的
不够用,设计的功能太多了
张文俊 #57完成帖子界面和功能 #58完成发布动态,评论功能的接入 布局设计
丘丽珊 #64绘制第四天站立会议照片 #65绘制第五天站立会议
照片,一张信纸样式
作业好多,时间不够用
陈宇 #72用户查看树洞内容 #73查看一个海岛的动态列表 需要同时兼顾操作系统实验

二、项目燃尽图

三、签入记录

3.1 代码/文档签入记录

3.2 Code Review 记录

3.3 issue内容和链接

团队成员 issue内容和链接
黄钰朝 #38根据名称搜索海岛
黄煜淇 #43查询用户信息时返回距离
余圣源 #50完成树洞和时间胶囊功能接入
张文俊 #57完成帖子界面和功能
丘丽珊 #64绘制第四天站立会议照片
陈宇 #72用户查看树洞内容

四、最新模块截图

4.1 最新模块代码

(1)搜索海岛

    /**
* 分页查询User
*
* @param page 当前页数
* @param pageSize 页的大小
* @param factor 搜索关键词
* @return 返回mybatis-plus的Page对象,其中records字段为符合条件的查询结果
* @author chaos
* @since 2020-05-04
*/
@Override
public Page<UserVo> searchUsersByPage(int page, int pageSize, String factor) {
log.info("正在执行分页查询user: page = {} pageSize = {} factor = {}", page, pageSize, factor);
QueryWrapper<User> queryWrapper = new QueryWrapper<User>().like("nickname", factor);
Page<User> result = super.page(new Page<>(page, pageSize), queryWrapper);
log.info("分页查询user完毕: 结果数 = {} ", result.getRecords().size()); // 查看自己的信息
User self = (User) SecurityUtils.getSubject().getPrincipal(); //转成vo类型
List<User> records = result.getRecords();
List<UserVo> voRecords = new LinkedList<>();
for (User user : records) {
UserVo userVo = new UserVo();
BeanUtils.copyProperties(user, userVo);
userVo.setDistance(locationUtils.getDistance(self.getCity(), user.getCity()));
voRecords.add(userVo);
} Page<UserVo> userVoPage = new Page<>();
BeanUtils.copyProperties(result, userVoPage);
userVoPage.setRecords(voRecords);
return userVoPage;
} @Scheduled(cron = "0 15 * * * ?")
public void cacheUsers() {
log.info("正在清空缓存的用户数据");
if (users != null) {
users.clear();
}
log.info("正在缓存用户");
users = super.list();
log.info("缓存成功:{}条用户数据", users.size());
}

(2)树洞模块

/**
* <p>
* 树洞
* 服务实现类
* </p>
*
* @author chaos
* @since 2020-05-21
*/
@Slf4j
@Service
public class TreeHoleServiceImpl extends ServiceImpl<TreeHoleMapper, TreeHole> implements TreeHoleService { @Resource
TreeHoleMapper treeHoleMapper; @Resource
MessageMapper messageMapper; @Override
public Page<TreeHole> listTreeHolesByPage(int page, int pageSize) {
log.info("正在执行分页查询treeHole: page = {} pageSize = {} ", page, pageSize);
//TODO 这里需要自定义用于匹配的字段,并把wrapper传入下面的page方法
Page<TreeHole> result = super.page(new Page<>(page, pageSize));
log.info("分页查询treeHole完毕: 结果数 = {} ", result.getRecords().size());
return result;
} @Override
public TreeHoleVo getTreeHoleById(int id) {
log.info("正在查询treeHole中id为{}的数据", id);
TreeHole treeHole = super.getById(id);
if(treeHole==null){
return null;
}
TreeHoleVo treeHoleVo=new TreeHoleVo();
treeHoleVo.setHole(treeHole);
Map<String,Object> map=new HashMap<>();
map.put("tree_hole_id",id);
treeHoleVo.setMessages(messageMapper.selectByMap(map));
log.info("查询id为{}的treeHole{}", id, (null == treeHole ? "无结果" : "成功"));
return treeHoleVo;
} @Override
public int insertTreeHole(TreeHole treeHole) {
log.info("正在插入treeHole");
treeHole.setCreateTime(LocalDateTime.now());
Integer userTreeNumber=treeHoleMapper.getUserTreeNumber(treeHole.getCreatorId());
if(userTreeNumber>=5){
log.error("插入treeHole失败,用户树洞超过五个");
throw new BizException("用户树洞已有5个,无法添加");
}
if (super.save(treeHole)) {
log.info("插入treeHole成功,id为{}", treeHole.getTreeHoleId());
return treeHole.getTreeHoleId();
} else {
log.error("插入treeHole失败");
throw new BizException("添加失败");
}
} @Override
public int deleteTreeHoleById(int id,Integer userId) {
log.info("正在删除id为{}的treeHole", id);
if(!userId.equals(treeHoleMapper.getUserIdByTreeId(id))){
log.error("更新id为{}的treeHole失败,登录用户与树洞拥有用户不同",id);
throw new BizException("登录用户与树洞拥有用户不同");
}
if (super.removeById(id)) {
log.info("删除id为{}的treeHole成功", id);
return id;
} else {
log.error("删除id为{}的treeHole失败", id);
throw new BizException("删除失败[id=" + id + "]");
}
} @Override
public int updateTreeHole(TreeHole treeHole) {
log.info("正在更新id为{}的treeHole", treeHole.getTreeHoleId());
Integer userId=treeHoleMapper.getUserIdByTreeId(treeHole.getTreeHoleId());
if(!userId.equals(treeHole.getCreatorId())){
log.error("更新id为{}的treeHole失败,登录用户与树洞拥有用户不同", treeHole.getTreeHoleId());
throw new BizException("登录用户与树洞拥有用户不同");
}
if (super.updateById(treeHole)) {
log.info("更新d为{}的treeHole成功", treeHole.getTreeHoleId());
return treeHole.getTreeHoleId();
} else {
log.error("更新id为{}的treeHole失败", treeHole.getTreeHoleId());
throw new BizException("更新失败[id=" + treeHole.getTreeHoleId() + "]");
}
} @Override
public List<TreeHole> getByUserId(Integer userId) {
log.info("正在查询用户id为{}的树洞",userId);
Map<String, Object> map=new HashMap<>();
map.put("creator_id",userId);
return treeHoleMapper.selectByMap(map);
} }

4.2 程序运行截图

五、每日总结

团队成员 总结内容
黄钰朝 开发进度比较顺利,就是作业太多
黄煜淇 今天一点代码工作都没有,早上进行了积极分子讨论会议,下午复习了操作系统。
余圣源 完善了树洞的功能,写了下fifo算法,发现与题目要求有偏差,重写,很不开心
张文俊 flex天下第一
丘丽珊 离终点又进步了一点点,开心!
陈宇 今天早上就完成任务,提高了效率

团队作业4:第五篇Scrum冲刺博客(歪瑞古德小队)的更多相关文章

  1. 团队作业4:第二篇Scrum冲刺博客(歪瑞古德小队)

    目录 一.Daily Scrum Meeting 1.1 会议照片 1.2 项目进展 二.项目燃尽图 三.签入记录 3.1 代码/文档签入记录 3.2 Code Review 记录 3.3 issue ...

  2. 团队作业4:第一篇Scrum冲刺博客(歪瑞古德小队)

    目录 一.Alpha阶段任务认领 二.明日任务安排 三.项目预期任务量 四.敏捷开发前的感想 五.团队期望 Author:歪瑞古德小队 Project:海岛漂流 集合贴:团队作业4:项目冲刺集合贴(歪 ...

  3. 第五篇Scrum冲刺博客--Interesting-Corps

    第五篇Scrum冲刺博客 站立式会议 1.会议照片 2.队友完成情况 团队成员 昨日完成 今日计划 鲍鱼铭 音乐详情页面跳转.设计及布局实现设计 搜索页面以及音乐详情页面数据导入及测试 叶学涛 编写分 ...

  4. 团队作业5:Alpha版本测试和发布(歪瑞古德小队)

    目录 一.项目文档和代码 二.Alpha版本测试报告 2.1 功能测试 2.1.1 功能列表 2.1.2 场景测试 2.1.3 测试结果 2.1.4 bug清单 2.2 兼容性测试 2.3 性能测试 ...

  5. Beta阶段——第五篇 Scrum 冲刺博客

    i. 提供当天站立式会议照片一张: ii. 每个人的工作 (有work item 的ID) (1) 昨天已完成的工作: 对宿舍权限的管理 (2) 今天计划完成的工作: 完善权限管理,进行舍员充值分明 ...

  6. 第五篇Scrum冲刺博客

    一.Daily Scrum Meeting照片 二.每个人的工作 成员 ItemID 已完成工作 明天计划完成的工作 遇到的困难 张鸿 o1 整合界面至游戏中 将其他剩余功能进行整合 游戏状态的切换 ...

  7. 第五篇 Scrum 冲刺博客

    一.站立式会议 1. 会议照片 2. 工作汇报 团队成员名称 昨日(26日)完成的工作 今天(27日)计划完成的工作 工作中遇到的困难 陈锐基 - 完成发布页面的布局- 完成发布动态的功能 - 优化当 ...

  8. Beta阶段第五篇Scrum冲刺博客-Day4

    1.站立式会议 提供当天站立式会议照片一张 2.每个人的工作 (有work item 的ID),并将其记录在码云项目管理中: 昨天已完成的工作. 张晨晨:目标增加单词收藏功能 郭琪容:学习收藏功能的实 ...

  9. 2020.5.25 第五篇 Scrum冲刺博客

    Team:银河超级无敌舰队 Project:招新通 项目冲刺集合贴:链接 目录 一.每日站立会议 1.1 会议照片 1.2 项目完成情况 二.项目燃尽图 三.签入记录 3.1 代码/文档签入记录 3. ...

随机推荐

  1. Dom运用2

    1.登录系统 <!--输入框创建--> 账号:<input class="ipt" type="text"><br> 密码: ...

  2. java 心跳机制

    心跳机制:就是每隔几分钟发送一个固定信息给服务端,服务端收到后回复一个固定信息如果服务端几分钟内没有收到客户端信息则视客户端断开. 心跳包 心跳包就是在客户端和服务器间定时通知对方自己状态的一个自己定 ...

  3. Python os.makedev() 方法

    概述 os.makedev() 方法用于以major和minor设备号组成一个原始设备号.高佣联盟 www.cgewang.com 语法 makedev()方法语法格式如下: os.makedev(m ...

  4. Skill Virtuoso IC6.1.7 的所有View Type

    https://www.cnblogs.com/yeungchie/ 可以用deGetAllViewTypes()来获取. "graphic" "layout" ...

  5. SpringBoot之Quartz基础

    前言:由于我们本项目选用的Springboot来整合Quartz,官方给我们提供了启动器所以很简单.在以前的版本我们想要使用Quartz需要引入的依赖如下: <dependency> &l ...

  6. Spring Security和Swagger2集成报错

    出现问题的项目算是一个新项目,但基本的脚手架代码是从另一个项目里迁过来的,原项目并没有报错,只有新项目才报异常.看报错内容,判断发生冲突的主要是spring-boot-starter-security ...

  7. async和await的使用总结 ~ 竟然一直用错了c#中的async和await的使用。。

    对于c#中的async和await的使用,没想到我一直竟然都有一个错误.. ..还是总结太少,这里记录下. 这里以做早餐为例 流程如下: 倒一杯咖啡. 加热平底锅,然后煎两个鸡蛋. 煎三片培根. 烤两 ...

  8. 笨办法学习python3练习代码:argv参数变量与文件操作

    ex15.py 完成ex15.py需要在ex15.py同文件夹目录下面准备一个txt文件(ex15_sample.txt) 执行ex15.py 如: python     ex15.py      e ...

  9. Spring Boot 数据缓存 - EhCache

    EhCache 集成 EhCache 是一个纯 Java 的进程内缓存框架,具有快速.精干等特点,是 Hibernate 中默认的 CacheProvider. 在 Spring Boot 中集成 E ...

  10. ConHost.exe机制