发表于: 2019-11-12 23:51:34
0 915
一、今天完成的事情:
主要完成 树洞模块
二、明天计划的事情:
主要开始消息中心模块
三、遇到的问题:
1. like在数据库中用于模糊查询,如果like作为字段,要加上键盘左上角的英文 ` 。
解决方法:数据库字段命名不合要求,把sql的关键字也命名为字段名。。。这就很尴尬了。
resultMap不变:
sql语句中的like,改为`like`
四、收获:
1.动态修改用户点赞的sql
likeFlag字段不是String类型,必须toString()方法转换后才能 生效
<!--动态修改 踩/赞的数量-->
<update id="updateLikeDislikeNumById" parameterType="com.happynewyear.admin.pojo.Treehole">
update treehole
set
<if test=" likeFlag.toString() == 1 ">
`like` = `like`+1,
</if>
<if test="likeFlag.toString() == 0 ">
dislike = dislike+1,
</if>
update_by = #{updateBy,jdbcType=BIGINT},
update_at = #{updateAt,jdbcType=BIGINT}
where id = #{id,jdbcType=BIGINT}
</update>
2.用户对树洞点赞的请求逻辑:
有两张表:treehole表:记录树洞内容和赞、踩的个数。user_treehole表:记录用户对树洞是赞还是踩。
只有用户的态度发生变化,才向后端发送请求。
用户给树洞点赞(likeFlag=0/1),取消(likeFlag=null)
如果likeFlag=null--删除user_treehole中该用户对改树洞的记录,修改treehole表中赞、踩的个数:赞或踩个数-1。
如果likeFlag=0/1
如果是第一次点赞/踩,新增user_treehole中该用户对改树洞的记录,修改treehole表中赞、踩的个数:赞或踩个数+1。
如果不是,修改user_treehole中该用户对改树洞的记录,修改treehole表中赞、踩的个数:赞-1,踩+1 或 赞+1,踩-1。
如何判断是否是用户第一次点赞/踩:
在向前台发送15条树洞信息时,就要查询每条信息该用户是否有点点赞/踩,把有过记录的树洞id,存到一个set集合中。
当likeFlag=0/1时,set中的树洞id就要和返回的树洞id做比较,没有则是第一次点赞。有则为修改点赞和踩。
评论