第七篇Scrum冲刺博客
一、站立式会议
1.1 会议照片
1.2 工作安排
成员 | 昨日完成工作 | issue链接 | 今日计划工作 | issue链接 |
---|---|---|---|---|
叶杞豪 | 文章美化功能 | A1 | 各界面功能检验和调试 | A2 |
刘宇杰 | 忘记密码 | B1 | 代码优化 | B2 |
李泽强 | 已发表文章管理 | C1 | 屏蔽某个用户的文章 | C2 |
唐振凯 | 好友管理 | D1 | 用户权限管理 | D2 |
李鹏举 | 改进项目漏洞 | E1 | 编写测试文档 | E2 |
潘新坤 | 个人主页代码优化 | F1 | 冲刺阶段总结反思 | F2 |
1.3 工作中遇到的困难
成员 | 遇到的困难 |
---|---|
李泽强 | 有些功能由于技术和时间原因没能完成 |
潘新坤 | 项目开发时间比预期长,大家的实力还需要提升 |
叶杞豪 | 部分页面布局有BUG,搞了挺久 |
唐振凯 | 之前没有考虑管理员操作,导致后期想对用户权限进行控制时难度较大 |
李鹏举 | 测试时发现的问题不好分类,无法写出很好的测试文档 |
二、项目燃尽图
三、代码签入
四、模块程序及运行截图
用户注册登录
/**
* 用户登录
*/
public void login(HttpServletRequest request, HttpServletResponse response) throws Exception {
HttpSession session = request.getSession();
//获取验证码
String code = request.getParameter("code");
//从session中获取验证码
String checkCode = (String) session.getAttribute("CHECKCODE_SERVER");
session.removeAttribute("CHECKABLE_SERVER");
//比较
if (!checkCode.equalsIgnoreCase(code)||checkCode==null) {
//验证码错误
ResultInfo info = new ResultInfo();
info.setFlag(false);
info.setMsg("验证码错误,请再次刷新验证码后登录!");
//讲对象序列化位json然后响应客户端
writeValue(info, response);
return;
}
//获取用户名和密码
Map<String, String[]> map = request.getParameterMap();
User _user = new User();
//封装成对象
BeanUtils.populate(_user, map);
//从共享域中先获取是否有用户对象
User sessionUser = (User) request.getSession().getAttribute("user");
//调用业务层
User user = service.userLogin(_user, sessionUser);
ResultInfo info = new ResultInfo();
if (user != null) {
//判断用户账户是否已经激活!
if ("N".equals(user.getStatus())) {
info.setFlag(false);
info.setMsg("用户账号还未激活!请前往注册邮箱进行激活!");
} else {
info.setFlag(true);
}
//判断用户的状态
if("封号中".equals(user.getUserChecked())){
Timestamp ts = new Timestamp(new Date().getTime());
Timestamp tt = user.getUserDate();
if(tt.before(ts)){
//进行解封
service.userCheckedOk(user.getId());
}else{
info.setFlag(false);
System.out.println(user.getUserDate());
info.setMsg("您的账号被用户举报,管理员以进行封号处理,解封时间:"+
user.getUserDate().toString().substring(0,user.getUserDate().toString().indexOf(".")));
}
}
} else {
info.setFlag(false);
info.setMsg("登录失败,用户名或密码错误!");
}
//将用户信息存进共享域
request.getSession().setAttribute("user", user);
writeValue(info, response);
}
/**
* 用户注册
*/
public void register(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException, InvocationTargetException, IllegalAccessException {
HttpSession session = request.getSession();
//获取验证码
String code = request.getParameter("code");
//从session中获取验证码
String checkCode = (String)session.getAttribute("CHECKCODE_SERVER");
session.removeAttribute("CHECKCODE_SERVER");
//比较
if (!checkCode.equalsIgnoreCase(code)) {
//验证码错误
ResultInfo info = new ResultInfo();
//注册失败
info.setFlag(false);
info.setMsg("验证码错误");
writeValue(info, response);return;
}
//获取参数
Map<String, String[]> map = request.getParameterMap();
User user = new User();
//将参数进行封装
BeanUtils.populate(user, map);
//调用业务层
boolean flag = service.userRegister(user,request.getContextPath());
ResultInfo info = new ResultInfo();
if (flag) {
info.setMsg("用户名已被注册");
info.setFlag(flag);
} else {
info.setFlag(flag);
}
writeValue(info, response);
}
/**
* 激活账号功能
*/
public void active(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//1.获取激活码
String code = request.getParameter("code");
if (code != null) {
//2.调用service完成激活
boolean flag = service.active(code);
//3.判断标记
String msg = null;
if (flag) {
//激活成功
msg = "激活成功,回到<a href='http://localhost:8080"+request.getContextPath()+"/index.jsp'>主页</a>进行登录";
} else {
//激活失败
msg = "激活失败,由于网络问题或验证码已被更改!";
}
response.setContentType("text/html;charset=utf-8");
response.getWriter().write(msg);
}
}
/**
* 退出登录
*/
public void exit(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//移除session中的user
request.getSession().removeAttribute("user");
ResultInfo info = new ResultInfo(true);
writeValue(info, response);
}
密码修改、找回
/**
* 找回密码
*/
public void findPassword(HttpServletRequest request, HttpServletResponse response) throws Exception {
//移除session中的user
String username = request.getParameter("username");
String email = request.getParameter("email");
//调用业务层
ResultInfo info = service.userFindPassword(username,email);
writeValue(info, response);
}
/**
* 修改密码
*/
public void updatePassword(HttpServletRequest request, HttpServletResponse response) throws Exception {
//获取用户的id
User user = (User) request.getSession().getAttribute("user");
//获取参数
String passwordOld = request.getParameter("passwordOld");
String passwordNew = request.getParameter("passwordNew");
String passwordNewAgain = request.getParameter("passwordNewAgain");
//调用业务层
ResultInfo info = service.updatePassword(user.getId(),passwordOld,passwordNew,passwordNewAgain);
writeValue(info, response);
}
管理员操作
/**
* 查找用户
*/
public void findUser(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//获取用户名
String username = request.getParameter("username");
List<UserNums> list = service.findUser(username);
writeValue(list,response);
}
/**
* 判断用户是否处于封号状态
*/
public void findUserSeal(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String userId = request.getParameter("userId");
//调用业务层
ResultInfo info = service.findUserSeal(userId);
writeValue(info,response);
}
/**
* 用户账号封号处理
*/
public void sealUser(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String userId = request.getParameter("userId");
String number = request.getParameter("number");
//调用业务层
service.sealUser(userId,number);
writeValue(null,response);
}
/**
* 用户解封处理
*/
public void sealUserOK(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String userId = request.getParameter("userId");
//调用业务层
ResultInfo info = service.sealUserOK(userId);
writeValue(info,response);
}
/**
* 用户举报信息查询
*/
public void appealDisplay(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//调用业务层
List<AppealDisplay> list = service.appealDisplay();
writeValue(list,response);
}
/**
* 删除举报信息
*/
public void deleteAppeal(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//获取id
String appealId = request.getParameter("appealId");
ResultInfo info = service.deleteAppeal(appealId);
writeValue(info,response);
}
五、每日每人总结
成员 | 总结 |
---|---|
叶杞豪 | 今天是最后一天冲刺,虽然一些页面布局比较粗糙,但大体上还是完成了相应的任务 |
李泽强 | 今天整理了一下整个系统的数据源流动,从多方面排查了上线后的一些可能出现的运行异常并做了相应的预处理。 |
刘宇杰 | 今天做了用户忘记密码后的页面和数据库修改语句,对数据库的修改和更新有了新的认识。 |
唐振凯 | 管理员端的实现需要对用户的功能进行全方位的了解,查阅相关资料后 |
李鹏举 | 虽然在这次测试中遇到了很多困难,但通过请教同学和上网找资料顺利解决了大部分难题,使我受益匪浅 |
潘新坤 | 整个项目大体完成,这几天大家都非常的辛苦 |