目录
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进行业务处理 |