Scrum 冲刺-day2

Scrum冲刺-day2

这个作业属于哪个课程 班级链接
这个作业要求在哪里 作业链接
这个作业的目标 Scrum冲刺

1 站立会议

1.1 会议照片

1.2 会议内容

成员 昨日完成 今日计划 遇到的困难
张孟聪 学习了WebSocket服务器的搭建 继续学习WebSocket 对WebSocket的了解不多 资料也不多
郭炜彬 做准备工作,撰写博客 分配任务,撰写博客 燃尽图的使用
杨析睿 和同样负责后端的组长商谈分工,规范合作开发流程 完成包括登录过滤,验证码的模块开发 1.基于二人共同开发的代码规范问题;2.函数设计
黎梓洋 学习了解测试的工作 做好测试准备 单元测试导包出问题
刘霖笙 做好冲刺阶段的准备工作 确定前端框架 需要实现的功能太多
叶臻强 学习axios+登陆注册界面 继续学习axios+ 都是船新的知识

2 项目燃尽图

3 签入记录

3.1 代码/文档签入记录



3.2 Code Review 记录

接口文档

3.3 issue内容和链接

成员 issue内容和链接
张孟聪 系统后端模块框架搭建
杨析睿 完善登录过滤,验证码的模块开发
叶臻强 前端静态界面搭建

四、最新模块

package com.wechat.dao.impl; 
  import com.wechat.dao.PhotoDao; 
  import com.wechat.po.Photo; 
  import com.wechat.util.DbUtil; 
  
  import java.sql.ResultSet; 
  import java.sql.SQLException; 
  import java.util.ArrayList; 
  import java.util.List; 
  
   public class PhotoDaoImpl implements PhotoDao { 
   @Override 
   public List<Photo> getPhoto(int pages, int sizes) throws SQLException { 
   List<Photo> photos = new ArrayList<>(); 
   String sql = "select bg_name from db_background order by bg_id limit ?, ?"; 
   Object[] params = {(pages - 1) * sizes, sizes}; 
   ResultSet resultSet = DbUtil.executeQuery(sql, params); 
   while (resultSet.next()) { 
   Photo photo = new Photo(); 
   photo.setPhotoName(resultSet.getString("bg_name")); 
   photos.add(photo); 
   } 
   DbUtil.closeAll(resultSet, DbUtil.pstmt, DbUtil.connection); 
   return photos; 
   } 
  
    @Override 
   public int getPhotoNumber() throws SQLException { 
   String sql = "SELECT COUNT(*)FROM db_background"; 
   ResultSet resultSet = DbUtil.executeQuery(sql, null); 
   int result = -1; 
   while (resultSet.next()) { 
   result = resultSet.getInt("count(*)"); 
   } 
   DbUtil.closeAll(resultSet, DbUtil.pstmt, DbUtil.connection); 
   return result; 
   } 
  
    @Override 
   public boolean changeBg(String loginId, String photoUrl) { 
   String sql = "update db_user set background = ? where login_id = ?"; 
   Object[] params = {photoUrl, loginId}; 
   return DbUtil.executeUpdate(sql, params); 
   } 
  } 


package com.wechat.po;

public class Comment {
    /**
     * 评论内容
     */
    private String commentText;
    /**
     * 发送者
     */
    private int sendUser;
    private String sendUserName;
    private String sendTime;
    private int circleId;

    public String getCommentText() {
        return commentText;
    }

    public void setCommentText(String commentText) {
        this.commentText = commentText;
    }

    public int getSendUser() {
        return sendUser;
    }

    public void setSendUser(int sendUser) {
        this.sendUser = sendUser;
    }

    public String getSendTime() {
        return sendTime;
    }

    public void setSendTime(String sendTime) {
        this.sendTime = sendTime;
    }

    public int getCircleId() {
        return circleId;
    }

    public void setCircleId(int circleId) {
        this.circleId = circleId;
    }

    public String getSendUserName() {
        return sendUserName;
    }

    public void setSendUserName(String sendUserName) {
        this.sendUserName = sendUserName;
    }
}

    public static String getCurrentTime() {
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date date = new Date();
        String currentTime = dateFormat.format(date);
        return currentTime;
    }

    public String getPhotoUrl() {
        return photoUrl;
    }

    public void setPhotoUrl(String photoUrl) {
        this.photoUrl = photoUrl;
    }

    public List<Comment> getComments() {
        return comments;
    }

    public void setComments(List<Comment> comments) {
        this.comments = comments;
    }

    public String getSendUserName() {
        return sendUserName;
    }

    public void setSendUserName(String sendUserName) {
        this.sendUserName = sendUserName;
    }
}

验证码(VerifyCode.java)

private Color randomColor() {
        int red = random.nextInt(256);
        int green = random.nextInt(256);
        int blue = random.nextInt(256);
        return new Color(red, green, blue);
    }
/**
 * 在验证码图片中增加干扰线条
 *
 * @param image
 */
private void drawLine(BufferedImage image) {
    int num = 5;
    Graphics2D graphics = (Graphics2D) image.getGraphics();
    for (int i = 0; i < num; i++) {
        int x1 = random.nextInt(width);
        int y1 = random.nextInt(height);
        int x2 = random.nextInt(width);
        int y2 = random.nextInt(height);
        graphics.setStroke(new BasicStroke(1.5F));
        graphics.setColor(Color.BLUE);
        graphics.drawLine(x1, y1, x2, y2);
    }
}

private BufferedImage createImage() {
    BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
    Graphics2D g2 = (Graphics2D) image.getGraphics();
    g2.setColor(this.backgroundColor);
    g2.fillRect(0, 0, width, height);
    return image;
}

public BufferedImage getImage() {
    BufferedImage image = createImage();
    Graphics2D graphics = (Graphics2D) image.getGraphics();
    StringBuilder stringBuilder = new StringBuilder();
    // 向图片中画4个字符
    for (int i = 0; i < Constant.CODESIZE; i++) {
        String rand = String.valueOf(random.nextInt(10));
        stringBuilder.append(rand);
        float x = i * 1.0F * width / 4;
        graphics.setFont(new Font("Times New Roman", Font.PLAIN, 20));
        graphics.setColor(randomColor());
        graphics.drawString(rand, x, height / 2);
    }
    this.code = stringBuilder.toString();
    drawLine(image);
    return image;
}

public String getText() {
    return code;
}

public static void output(BufferedImage image, OutputStream out)
        throws IOException {
    ImageIO.write(image, "JPEG", out);
}

登录过滤(LoginFilter.java)

@Override
    public void init(FilterConfig filterConfig) throws ServletException {
        
    }

@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
    HttpServletRequest request = (HttpServletRequest) servletRequest;
    HttpServletResponse response = (HttpServletResponse) servletResponse;
    if (request.getSession().getAttribute("user") == null) {
        response.sendRedirect("../login.jsp");
    } else {
        filterChain.doFilter(request, response);
    }
}

五、总结

成员 感想
张孟聪 救命!
郭炜彬 要跟成员交流清楚需求,并且设置好截止日期
杨析睿 这是团队敏捷开发的第二天,个人正式冲刺的第一天,可以说任务量安排还是很满当的,接下来一周应该会特别充实。今天主要是熟悉了Github合作开发的流程,例如fork, pull requests。对于自己开发的模块,打代码前一定要和组友规范代码。如果一开始没沟通好,后面对接和互相使用可能会产生不少误解。
黎梓洋 在学了
刘霖笙 要学会切割,将大模块切割成小模块
叶臻强 裂开

注:18号我们开始准备,20号才开始,因为19号我们的团队成员都是事,没办法凑齐开会。

posted @ 2021-11-20 16:44  Beamice  阅读(38)  评论(0编辑  收藏  举报