1、数据库字段 时间是int(10) 把秒数直接给安卓就可以了,他不用转换,但是我们用着需要转换
因为当前用户主要来自安卓
2、单独把id拿出来了,是为了自增,自增和添加时间
只要把主键生成,之后的功能,都可以放到多线程里面
多线程就是用生产者和消费者模式
线程池执行对象
ThreadPoolTaskExecutor bean = SpringContextUtil.getBean(ThreadPoolTaskExecutor.class);
bean.execute(runnable);
3、声明式事务
4、 登录的时候,用户名密码是明文传输的
用https 发送的时候 用公钥加密
我的服务器有专门的秘钥解密
5、rocketmq 是发送消息的 springcloud 是调用controller层 方法的
6、把内部调用频繁的模块放在一起
功能一样的微服务放在一起
7、多态,比如我做一个付款
给一个接口,就可以写支付宝付款接口
微信付款接口之类的
要不然只能用 结构化编程
付款对象
接口
实现类
aop是辅助类型
8、多线程和消息队列的区别
9、原来送礼物就是用socket 发送消息到聊天室吗??
送礼物 是 想聊天服务器发送 消息队列 送礼成功
聊天服务器,发送到其他用户客户端
10、想让礼物列表更快,放到内存里面
11、因为用户的礼物很多,所以redis里面存的是hash
礼物:uid :礼物id:礼物数量
12、如果道具数量是0
就去redis里面吧map里面的 对应的key删掉
12-1、代码优化,先写完了,逻辑缕清了再优化
13、账户礼物不足检查余额
通过nocas发
14、rocketmq 是发送消息通知的
nocas是调用服务接口的
项目出的错 1、我跟负责用户的同事要一个接口,他说做了非空校验了,然后我一运行有几率空指针,最后我自己又加了一层,就是不要相信他们说的,就算看了代码,他们写的也可能有错
记住了,发送消息,比如发个邮件啥的,用消息队列是
如果是想让别的调用别的模块的接口 用nocas
15、余额不足直接返回自定义异常,余额足的话,扣完款,记得把数字塞回redis,多线程写到数据库里面
从redis里面取数据 修改 改完了塞回去 ,消息队列修改数据库
数据库设计
todo
总
用户
用户id 带个登录时间字段
用户基本信息 注册手机号 城市 注册渠道
用户账户 余额之类
账单表
主播信息
提现信息
重置信息
账单数据库设计
安卓的数据库
用户日志
礼物
分为礼物活动
礼物动画数据库
礼物配置
经验值配置
连续签到有经验值加成
任务表
支付设置
充值账单
支付状态 =0生成支付单 =1以到支付平台等待支付 =2已支付 =3取消
体现
家族
家族信息
用户表(id和添加时间)
id自增维护表
主播表
用户账户
第三方用户表示 好像是给qq互通发邮件
oX2h6wNlwChbEpyeCw4dQIQ75MR8weixin
28C6B5B2B036ABD2435AE4B25680A95Eqq
主播认证
封号原因
项目启动初始化数据
configuration在项目启动的时候会被调用
去数据库拿东西 放到redis里面
直播推流
是阿里云推流的
配置推流和播流
m3u8 是索引文件,用来按顺序播放ts文件的
所以我们可以知道,索引文件非常重要,索引文件里面存储着ts文件的网络url链接,网站需要拿到索引文件,去按照url链接下载在http服务器中的ts文件,类似于爬虫。
拿到了ts文件之后,本身这些ts文件就是原视频中的一小段视频,所有ts文件下载顺序播放,就完成了整个视频的播放。
而索引文件就是m3u8文件。
现在大部分视频网站传输都是采用这种方法,所以,也就是说,如果你在观看网页视频的时候,能够弄到加载该视频的m3u8文件,那么再配合一些工具,就能下载该视频了。
该工具的作用就类似于视频网站,能够根据索引文件去下载ts文件。
下面就给大家介绍如何拿到视频的m3u8文件和下载m3u8文件的工具。
axure 用来画网页的
业务是什么
需要比业务员还清楚才能写的出来程序
bug管理工具 (项目管理工具) (和版本管理工具不一样)
面试的时候,问bug管理工具,就说是禅道,别的不知道
登录-指派给我的bug
测试的提bug功能
最基本的系统
原来我以前认为的mysql 写复杂的是没用的,白担心了
有一个用户分析的网页有点难
难的是 统计活跃设备 活跃账号
活跃设备 按 日 周 月 统计
要说五人日还是七人日,不能说一周这样
按模块来分
sql一天
接口一天
调bug一天
这是顺利的情况下 不顺利一个bug调整一天
这个要一周,一周写不出来可能就要被开了
大额礼物的佣金不一样,1000块的礼物 和 1000多一元的话,拿的佣金不一样
额,这个数据分析系统,我写两个月能写完吗…写不出来就被开了
如果用户第一次登录,跳转到注册,或者手机验证码直接注册
随机分配头像,昵称
校验用户信息是否合法,可能是被封号的用户,不能让他登录
因为用户登录要做一系列操作,而且要是注册的话会更慢,所以怎么优化
多线程 放在多线程里面执行的东西,你可以认为主线程不需要的东西,你把它删了,主线程也能执行业务的东西
是否第一次登录,去数据库里面查手机号,或微信号 微博号之类的
直接去redis里面查,如果redis里面没有就认为他没有注册
redis是非关系型数据库,记住他也是数据库,可以吧用户信息存一份到redis里面
文件上传,我到现在都没有写!!!
推流 拉流
点播和实时收费不一样
送礼物
HTTP/S的请求是一次请求,一次响应,就是说要浏览器发送请求给我,我才能给他响应
我用消息队列发给聊天服务器
记得充钱成功,是支付宝告诉服务器,充钱成功了
原来往支付宝发送的消息是干这个的
而且1 可能被抓包修改,所以业务服务器要 判断充值虚拟金额的比例
要返回给他一个成功,不然支付宝会以为我们这里 服务器宕机了,会发第二次第三次
因为支付宝 微信 还有别的都需要对接,所以有聚合支付,这样可以使用聚合支付,但是可能会跑路
ISO充值也不一样了
苹果的佣金是30%
支付宝想调用我的接口,要有外网ip
可以模拟一下
签到
因为签到一周是一样的,先从redis里面把签到奖励拿出来
再查一下,这个人哪天签到了,对比一下,就有了
一条sql就行了
一个??功能??对应一个实体类 24:30之前 等会去听一下 13
实体类和实体类直接的相互转换
gateWay 配合nocas 和 负载均衡 做了用户权限检查把
后台管理系统的vue 是我来写的
手机验证码 是外置服务
提供验证码模板
发送什么模板直接调用服务
需要消息队列来支持
要是不连接redis 就要全局变量验证码le
怎么做第三方法登录
1、去对应的平台注册账号 QQ互联 实名认证 成为开发者
、
2、创建应用审核
3、新建工程
4、下载sdk
5、 放置图标 复制那个前端代码
6、通过回调参数获得
微信是在腾讯开放平台
步骤一模一样
扫码登录
扫码用到的技术
长连接 推送
二维码,是服务器生成过来的 库:zxing 二维码生成 二维码里面保存的是字符串
二维码包含的东西:两个内容 1、过期时间 比如判断时间戳 2、手机端本地缓存了用户名和密码 拼接到接口链接
java端 使用 推送 告诉 电脑端成功了
socket 长连接 服务器 通知 客户端 (就是网页)
不同项目 都有评论模块
最难的表设计 谁评论了谁