团队作业4:第二篇Scrum冲刺博客(歪瑞古德小队)
本文作者:@Yuchao Huang
版权声明:自由转载-非商用-知识共享署名4.0
目录
Author:歪瑞古德小队
Project:海岛漂流
一、Daily Scrum Meeting
1.1 会议照片
1.2 项目进展
团队成员 | 昨日完成任务 | 今日计划任务 | 遇到的困难 |
---|---|---|---|
黄钰朝 | #33 统计用户写过的字数 |
#34 统计用户发送的信件数量,接收的信件数量 |
用excel画项目的燃尽图时纵坐标 没有值的点也被显示在折线中 |
黄煜淇 | #35 redis实现定时任务工具类 |
#37 完成自定义任务的编写 |
redis序列化localdatetime时 出现错误,在时间的序列化上 需要进行处理 |
余圣源 | #46 完成我的邮票界面和功能 |
#47 完成消息界面和功能 |
根据首字符拼音进行笔友排序 不容易实现 |
张文俊 | #54 完成草稿箱界面和功能 |
#55 完成海岛列表界面和功能 |
不同分辨率屏幕的适配 |
丘丽珊 | #61 绘制邮票样式 |
#62 绘制第二天站立会议照片 |
做UI的时候风格统一很 困难 要整体兼顾 |
陈宇 | #68 用户创建一个树洞 |
#70 用户删除已经创建的树洞 |
创建树洞前要判断用户 拥有树洞的数量。 |
二、项目燃尽图
三、签入记录
3.1 代码/文档签入记录
3.2 Code Review 记录
3.3 issue内容和链接
团队成员 | issue内容和链接 |
---|---|
黄钰朝 | #33 统计用户写过的字数 |
黄煜淇 | #35 redis实现定时任务工具类 |
余圣源 | #46 完成我的邮票界面和功能 |
张文俊 | #54 完成草稿箱界面和功能 |
丘丽珊 | #61 绘制邮票样式 |
陈宇 | #68 用户创建一个树洞 |
四、最新模块截图
4.1 最新模块代码
信件模块
复制/**
* 创建发信任务
*
* @param letter 要发送的信件
* @name scheduleLetterSending
* @notice none
* @author <a href="mailto:kobe524348@gmail.com">黄钰朝</a>
* @date 2020-05-21
*/
private void scheduleLetterSending(Letter letter) {
log.info("正在创建发信任务");
//计算收信时间
User sender = userMapper.selectById(letter.getSenderId());
User receiver = userMapper.selectById(letter.getReceiverId());
if (sender == null || receiver == null) {
log.error("缺少寄件人或收件人,无法发信");
throw new BizException("发信失败,缺少寄件人或收件人");
}
if (sender.getCity() == null || receiver.getCity() == null) {
log.error("缺少位置信息,无法发信");
throw new BizException("发信失败,寄件人或收信人缺少位置信息");
}
long distance = locationUtils.getDistance(sender.getCity(), receiver.getCity());
log.info("计算出两者的距离为:{}米", distance);
//消耗邮票
if (letter.getSenderId() != null) {
Stamp stamp = stampMapper.selectById(letter.getStampId());
if (stamp == null || !stamp.getUserId().equals(sender.getUserId())) {
log.warn("id为{}的信件没有使用有效邮票,无法发信", letter.getLetterId());
throw new BizException("发信失败,缺少有效的邮票");
}
} else {
log.warn("id为{}的信件没有使用邮票", letter.getLetterId());
throw new BizException("请选择一张邮票进行发信!");
}
UpdateWrapper<Stamp> stampUpdateWrapper = new UpdateWrapper<>();
stampUpdateWrapper.eq("stamp_id", letter.getStampId())
//设置为null,既不属于发信人也不属于收信人
.set("user_id", null);
stampMapper.update(new Stamp(), stampUpdateWrapper);
//统计书写字数
if (letter.getContent() == null || letter.getContent().trim().isEmpty()) {
log.warn("不允许插入空的信件");
throw new BizException("无法发送空的信件");
}
sender.setWord(sender.getWord() + letter.getContent().trim().length());
userMapper.updateById(sender);
//启动定时任务
log.info("正在启动定时任务");
taskScheduler.schedule(new LetterSendingTask(letter, sender),
calculateDuration(distance));
}
树洞模块
复制/**
* <p>
* 树洞
* 服务类
* </p>
*
* @author chaos
* @since 2020-05-21
*/
public interface TreeHoleService {
/**
* 分页查询TreeHole
*
* @param page 当前页数
* @param pageSize 页的大小
* @param factor 搜索关键词
* @return 返回mybatis-plus的Page对象,其中records字段为符合条件的查询结果
* @author chaos
* @since 2020-05-21
*/
Page<TreeHole> listTreeHolesByPage(int page, int pageSize, String factor);
/**
* 根据id查询TreeHole
*
* @param id 需要查询的TreeHole的id
* @return 返回对应id的TreeHole对象
* @author chaos
* @since 2020-05-21
*/
TreeHole getTreeHoleById(int id);
/**
* 插入TreeHole
*
* @param treeHole 需要插入的TreeHole对象
* @return 返回插入成功之后TreeHole对象的id
* @author chaos
* @since 2020-05-21
*/
int insertTreeHole(TreeHole treeHole);
/**
* 根据id删除TreeHole
*
* @param id 需要删除的TreeHole对象的id
* @return 返回被删除的TreeHole对象的id
* @author chaos
* @since 2020-05-21
*/
int deleteTreeHoleById(int id, Integer userId);
/**
* 根据id更新TreeHole
*
* @param treeHole 需要更新的TreeHole对象
* @return 返回被更新的TreeHole对象的id
* @author chaos
* @since 2020-05-21
*/
int updateTreeHole(TreeHole treeHole);
}
4.2 程序运行截图
五、每日总结
团队成员 | 总结内容 |
---|---|
黄钰朝 | 学习到燃尽图的含义和画法,以及规划了未来六天的任务,收获很多 |
黄煜淇 | 学习了redis实现定时任务并简单进行了实现 |
余圣源 | 学习并制作了菜单按钮旋转动画,增强了业务处理能力 |
张文俊 | 学习了less函数的各种花式操作 |
丘丽珊 | 巩固了Ai和Axure的用法,学会了Axure的触发控件的使用 |
陈宇 | 运用了curd进行业务处理 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?