个人项目记录6- 11/21所完成内容

112 阅读3分钟

待办模块

后端

  • 1. todo memo的api
  • 2. 读取某月有未完成todo日期
  1. 报错

image.png

根本内容可以看出,是因为我把jpa中delete的语句的返回值写为了Todo,所以提示返回的int无法转化成todo。这里是我自己不清楚jpa删除语句是否能返回原todo。

image.png 2. 根据1修改相应内容后又报错: image.png 测试后是因为下面这部分中获取数目为null image.png 查找资料后发现jpa查询数量应该按照下面这样写

Integer countByUserIdAndDateAndDone(String userId, String date, boolean ifDone);

前端

    • addtodo对memo的处理
    • deltodo后对memo的处理
    • mark done todo后对memo的处理
    • 获取dates并显示在日历上
    • 修改loading时的占位文字

日记模块

前端

    • 添加日记和读取日记的测试
    • 当已经读取当日日记时,显示「返回聊天窗口」
    • 修改/删除当日日记的测试
    • 读取某年某月记录的测试
    • 修正返回聊天窗口时聊天对话会被重复提交的问题
    • 完成日记后button的禁用设置
    • 修改日记时,内容为空时禁止提交,关闭也不会提示内容有变化。

后端

    • 修改entity中造成错误的属性值
    • 聊天记录备份到后端(用一个dialogs表)
    • 获取某年某月有记录的日期 思路:本来打算跟todo一样创建一个memo表,后来改成直接从dialogs表中获取数据。把diaglog表中的ymd date字段拆分成3个,根据年和月去查找,然后把查找到的日期放入一个list中。

通知模块

前端

    • 修改loading时的效果显示

用户模块

前端

后端

  • 1.修正拦截器问题

问题:前端传递刚生成的token时,后端校验却不通过。 原因:自己用的verify方法如果参数前有Bearer前缀,是无法通过校验的

解决:后端从header拿到token后,用substring(7)把前面的Bearer前缀先去掉。

  • 2.设定校验时将token解密后的id与路径中的用户id进行比对,不匹配则无法通过拦截器。 拦截的思路很简单,数据中如果没有在有效期内、且内容和用户id都匹配的数据。则校验不通过。
Token tokenDb = repository.findByUserIdAndContent(userId, token);
if(tokenDb == null || tokenDb .getHasLogout()){
    result = false;
}

问题是如何从路径中获取用户id:

参考这篇文章解决了问题,在拦截器preHandle方法中可以直接获取pathVariable.

Map pathVariables = (Map) request.getAttribute(HandlerMapping.URI_TEMPLATE_VARIABLES_ATTRIBUTE);
String userId = (String)pathVariables.get("userId");

-[ ] 3.测试token 有效期问题

时间统计模块

前端

    • 修改没有数据库信息时,默认分类的显示问题;
    • 去掉默认分类的编辑按钮;
    • 改成不允许提交未选择分类的时间条目