发表于: 2020-01-08 23:35:40
1 1304
今天完成的事:
7、课程收藏方案设计
需求描述:
作为一个前台用户,我想可以收藏课程, 以便查看。
验收标准:
1、在视频详情页可以收藏课程、取消收藏;
2、在我的收藏中展示收藏课程列表,显示课程相关信息。
解决方案:
1、收藏页根据用户id,通过collection收藏关系表,联表查询video表中部分数据,按照收藏时间倒序排列,分页展示,部分数据为标题、简介、视频url、收藏数;
2、收藏页需返回每个视频对应的老师信息,查询teacher表格;
3、点击视频,根据视频id查询video表中部分数据,部分数据为标题、简介、视频url、正文、收藏数、老师、更新时间;
4、点击收藏,该视频收藏总数加一,将用户id、视频id添加到收藏关系表中,以关系表中创建时间为收藏时间;
5、取消收藏,该视频收藏总数减一,将对应数据从收藏关系表中删除。
8、个人中心(用户绑定)方案设计
需求描述:
作为一个前台用户,我想看到个人信息, 且可进行修改。
验收标准:
1、微信首次登录,默认调用微信基本信息,显示名称、头像,年级、逆袭豆积分为空;
2、点击编辑,可修改名称、头像、年级;
3、点击绑定,可通过验证码验证,绑定手机号、邮箱,且限制验证次数、时间,首次绑定成功,逆袭豆积分增加20。
解决方案:
1、微信首次登录,调用用户微信基本信息,并显示;
2、编辑时,根据用户id回显相应数据,可设置名称、头像、年级,其中头像需调用通用上传接口进行上传,若编辑失败,或取消编辑,需调用通用删除接口删除已上传图片,提交时修改user表相应数据;
3、根据用户id进行绑定,手机验证码使用容联第三方接口,邮箱验证码使用sendcloud,限制一定时间内验证码发送次数,且多次发送后,间隔一定时间才能再次发送,首次绑定成功,逆袭豆积分增加20,相关数据保存user表中。
9、文件上传方案设计
需求描述:
作为一个用户,我想可以上传文件到云端,仅保存文件url。
验收标准:
1、可进行文件上传,并返回url。
解决方案:
1、使用阿里云oss进行文件存储,上传文件,并重组文件名,返回url。
2、若取消新增或编辑,需根据url将上传文件删除。
10、签到方案设计
需求描述:
作为一个前台用户,我想通过签到来增加逆袭豆积分,并查看相应的签到信息。
验收标准:
1、签到页面可查看用户名称、头像、逆袭豆积分、签到总数、历史最高连续签到天数,以及当月已签到日期;
2、若当天已签到,签到处显示已签到,若当前未签到,签到处可点击进行签到,签到成功,弹窗显示成功,且显示逆袭豆积分增加的积分;
3、首日签到积分加一,连续签到每天递增加一,连续签到五天,每日可加五,签到中断则重新计算;
4、签到后,逆袭豆积分、签到总数、历史最高连续签到天数,以及当月已签到日期进行相应增加,并显示。
解决方案:
方案一:
1、设置用户签到表,存储每个用户的所有签到时间戳记录,可查询每月签到数据,查询是否有昨天签到数据;
2、将签到总数、历史最高连续签到天数、现在最高连续签到天数的字段设置在user用户表中,签到时修改相应数据;
3、进入签到页面,获取当天零点的时间戳,查询签到表中是否存在与明天零点时间戳之间的签到记录,确定今天是否签到,返回前端相应数据;
4、进入签到页面,查询用户表中部分数据,签到表中当月签到时间戳,用户部分数据:名称、头像、逆袭豆积分、签到总数、历史最高连续签到天数,当月签到时间戳通过当月一日零点时间戳与当前时间戳范围查询获取;
5、签到时,获取当天零点的时间戳,查询签到表中是否存在与昨天零点时间戳之间的签到记录,确定昨天是否签到,签到成功,将签到数据插入签到表,修改用户表中相应连续签到数据;
缺点:
1、数据量存储较大;
2、因为需根据时间戳范围查询,数据返回较慢。
优点:
逻辑简单,方便理解,连续签到天数获取方便。
方案二:
1、设置用户签到表,存储每个用户的所有签到时间戳记录,每个时间戳都对应的有年、月、日字段,插入数据时,相应年月日数据也一同插入,可查询每月签到数据,查询是否有昨天签到数据;
2、将签到总数、历史最高连续签到天数、现在最高连续签到天数的字段设置在user用户表中,签到时修改相应数据;
3、进入签到页面,获取当前时间的年月日数据,查询签到表中是否存在相同数据的签到记录,确定今天是否签到,返回前端相应数据;
4、进入签到页面,查询用户表中部分数据,签到表中当月签到时间戳,用户部分数据:名称、头像、逆袭豆积分、签到总数、历史最高连续签到天数,当月签到时间戳通过当月月份查询签到表获取;
5、签到时,获取当前时间的年月日数据,查询签到表中是否存在昨天的签到记录,确定昨天是否签到,签到成功,将签到数据插入签到表,修改用户表中相应连续签到数据;
缺点:
1、数据量存储较大,每次插入签到记录都需转化其年月日数据;
2、每月第一天查询昨天的签到记录,较为麻烦。
优点:
连续签到天数获取方便,当月签到数据查询方便。
方案三:
11、微信登录方案设计
需求描述:
作为一个前台用户,我想直接通过微信授权登录,不需填写登录注册信息。
验收标准:
1、只能通过微信授权登录,再次登录无需授权,直到token失效,才需要再次授权。
2、登录后,可查看调用微信的基本信息,名称、头像等。
解决方案:
2、前端传送js_code,根据appId、appSecret、js_code调用接口来获取用户的唯一标识 openId 和会话密钥 session_key 。
调用auth.code2Session接口:https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code3、且前端还需传送encryptedData(用户敏感数据)、iv(加密算法的初始向量),后端使用session_key通过AES解密,获取用户敏感信息,保存到user用户表中。
4、自定义登录态,将其与 openId 和 session_key 关联起来,也就是token,用于后续业务逻辑中前后端交互时识别用户身份使用。并将用户信息、token返回前端。
明天计划的事:
1、准备方案评审;
2、微信小程序授权登录尝试;
3、后台账号权限前后端分离学习。
遇到的问题:
无
收获:
无
评论