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. Java bean常见映射工具分析和比较

    1. 概述 日常Java开发项目中,我们经常需要将对象转换成其他形式的对象,因此我们需要编写映射代码将对象中的属性值从一种类型转换成另一种类型. 进行这种转换除了手动编写大量的get/set代码,还可 ...

  2. pandas_数据排序

    import pandas as pd # 设置列对齐 pd.set_option("display.unicode.ambiguous_as_wide",True) pd.set ...

  3. bzoj 3790 神奇项链 回文串 manacher|PAM

    LINK:神奇项链 存在两个操作:1. 一个操作可以生成所有形式的回文串 2.一个操作可以将两个串给合并起来 如果前缀和后缀相同还可以将其并起来. 多组询问 每次询问合成一个串所需最少多少次2操作. ...

  4. Linux的VMWare中Centos7文件查找(find-grep)和vim文本编辑器基操

    一.find文件查找 grep 匹配字段 文件名 ——筛选文件   find查找 语法参数示例 格式: find 查找范围 查找类型 参数   find / -name *.conf   按文件名查找 ...

  5. OpenVINO学习系列1

    OpenVINO介绍 OpenVINO是英特尔推出一套基于深度学习的计算机视觉加速优化框架,支持其它机器学习平台模型的压缩优化.加速计算等功能. 自发布以后就得到开发者的青睐,其强大的模型优化与压缩能 ...

  6. Flask 框架小记

    Flask 框架小记 Flask 实例 创建示例的代码 from flask import Flask # __name__ 是模块名, 用于反射导入模块 app = Flask(__name__, ...

  7. 安装Scrapy过程中遇到的几个问题总结

    安装Scrapy 1.https://www.lfd.uci.edu/~gohlke/pythonlibs/下载 Twisted 安装 Twisted-19.10.0-cp37-cp37m-win_a ...

  8. linux系统中SSH免密设置报错

    执行 ssh-add ~/.ssh/msi_rsa 时报下面错误 Could not open a connection to your authentication agent. 解决办法: 执行命 ...

  9. akka-typed(9) - 业务分片、整合,谈谈lagom, 需要吗?

    在讨论lagom之前,先从遇到的需求开始介绍:现代企业的it系统变得越来越多元化.复杂化了.线上.线下各种系统必须用某种方式集成在一起.从各种it系统的基本共性分析:最明显的特征应该是后台数据库的角色 ...

  10. Socket 模拟HTTP客户端请求

    import java.io.IOException; import java.io.InputStream; import java.io.OutputStreamWriter; import ja ...