数据库设计:
共5张表: comment(回帖表),discuss_post(帖子详情表),message(私信表),login_ticket(登录凭证表),user(用户表)
常量接口: communityConstant
1.开发登录注册页面
使用mybatis进行操作数据库增删查改,添加基本CRUD操作
构建UserService层,进行一些业务判断
register注册模块:进行判断前端值是否异常,如果没有异常,进行用户的注册,通过nowcoder的img路径,随机赋予用户头像,注册成功会发送一封邮件给用户,用户通过邮件可以激活账号,并且在激活成功后修改用户的Status属性
login登录模块: 登录成功会生成登录凭证返回到Controller层,并在controller层存入到Cookie中,并增加拦截器,在登陆时进行验证ticket,并且生成token令牌,并将本次用户放入ThreadLocal中,在postHadle返回user对象给前端页面。
登陆时kaptcha生成验证码,刷新验证码时,通过javascript生成一个随机数作为请求参数,防止路径不变,刷新失败。
2.开发首页
首页展示项目的帖子,并且进行分页
构建分页对象entity: page ,添加到参数列表,Spring自动装配page对象,通过limit分页查询进行遍历
3.开发私信模块
私信首页(分为用户和系统):复用分页page对象,通过登录用户id进行查询私信,并且通过status状态查询未读信息个数返回到前端。
用户私信详情页通过conversationid进行获取私信详情页面进行查看,并在点击时将status改为已读。
私信都是通过异步ajax进行传递。系统是通过kafka进行发布。
4.用户信息修改模块
修改密码和上传头像:上传头像首先通过MultipartFile存储到本地,然后修改用户访问路径并更新到数据库,并通过restful动态传入文件名,使用流进行加载用户头像,response设置ContentType。
通过注解进行拦截操作,会在进入用户修改信息界面时判断有无登录,无登录则进行重定向。
待更