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

Author:歪瑞古德小队

Project:海岛漂流

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

一、Daily Scrum Meeting

1.1 会议照片

image-20200524172811008

1.2 项目进展

团队成员 昨日完成任务 今日计划任务 遇到的困难
黄钰朝 #33统计用户写过的字数 #34统计用户发送的信件
数量,接收的信件数量
用excel画项目的燃尽图时纵坐标
没有值的点也被显示在折线中
黄煜淇 #35redis实现定时任务工具类 #37完成自定义任务的编写 redis序列化localdatetime时
出现错误,在时间的序列化上
需要进行处理
余圣源 #46完成我的邮票界面和功能 #47完成消息界面和功能 根据首字符拼音进行笔友排序
不容易实现
张文俊 #54完成草稿箱界面和功能 #55完成海岛列表界面和功能 不同分辨率屏幕的适配
丘丽珊 #61绘制邮票样式 #62绘制第二天站立会议照片 做UI的时候风格统一很
困难 要整体兼顾
陈宇 #68用户创建一个树洞 #70用户删除已经创建的树洞 创建树洞前要判断用户
拥有树洞的数量。

二、项目燃尽图

image-20200522171315232

三、签入记录

3.1 代码/文档签入记录

image-20200522120948942

3.2 Code Review 记录

image-20200522161136650

image-20200522161302408

3.3 issue内容和链接

团队成员 issue内容和链接
黄钰朝 #33统计用户写过的字数
黄煜淇 #35redis实现定时任务工具类
余圣源 #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 程序运行截图

image-20200522132710149image-20200522132948306

五、每日总结

团队成员 总结内容
黄钰朝 学习到燃尽图的含义和画法,以及规划了未来六天的任务,收获很多
黄煜淇 学习了redis实现定时任务并简单进行了实现
余圣源 学习并制作了菜单按钮旋转动画,增强了业务处理能力
张文俊 学习了less函数的各种花式操作
丘丽珊 巩固了Ai和Axure的用法,学会了Axure的触发控件的使用
陈宇 运用了curd进行业务处理
posted @ 2020-05-22 16:27  Yuchao_Huang  阅读(322)  评论(0编辑  收藏  举报