Skip to content

Anxiu0101/VideoStation

Repository files navigation

VideoStation

West2 Assignment 4

Postman auto doc

project address

Project Structure

VideoStation

用户模块 (user)

用户结构体

  • username 用户名
  • password 密码
  • avatars 头像
  • 个人资料
    • 性别 gender
    • 年龄 age
    • 邮箱 email
  • 状态(是否封号) state
  • 收藏列表

方法

  • 用户登录
  • 用户注册
  • 修改密码
  • 获取用户资料
  • 修改用户资料
  • 获取收藏列表
  • 拉黑用户

视频模块 (video)

视频结构体

  • 视频文件主体

  • 状态

    • 待审核
    • 已审核
    • 草稿
  • 弹幕列表

  • 点赞列表

  • 评论列表

  • 转发数

  • 收藏数

弹幕结构体

  • 发送用户ID
  • 弹幕内容
  • 弹幕位置(在视频时间线的位置)

评论结构体

  • 发送用户ID
  • 评论内容
  • 回复对象ID
    • 置零为不回复,为视频评论

收藏结构体

  • 用户ID UID
  • 视频ID VID
  • 收藏组

方法

  • 用户上传视频

  • 用户点赞

  • 用户评论

    设定了一个默认用户,id为0,当用户评论视频时,receiver id 就是0。若用户回复某位用户的评论时,receiver id 就是被回复的用户

  • 用户收藏

  • 用户转发

  • 用户发送弹幕

管理员模块 (admin)

管理员结构体

  • adminName 管理员名
  • adminPassword 管理员密码
  • adminImg 管理员头像

方法

  • 获取待审核视频列表
  • 审核视频通过
  • 封禁用户账号

Problems

  • 部分接口获取用户ID需要参数,而没有从 token 中解析

  • 文件上传未处理

    • 文件重名问题
  • favorite 功能不依赖 Interactive 结构体而是有自己的结构体,未并入

    现已并入

  • Upload 不能解析 introduction 字段,问题未排查,从传入时就有问题。

  • Like and Favorite 数据收集是,gorm count 返回的类型是 int64,被我强转了,这个问题需要解决

  • 在统一类型上遇到了很多问题,id的类型是uint,但是传入的数字类型一般都是int,在数据库操作时,gorm的部分函数返回格式又是int64

  • 到底什么时候需要错误处理?

接口思路

Show Video

Show video 这个接口可以分为两个部分,

  • Video info 包含视频标题,视频介绍,用户等,从 mysql 中获取数据
  • Video data 包含点击量,收藏关系,点赞关系,从 redis 中获取数据

现在的问题是,interactive 表创建失效,需要寻找几个模型的关系,但是这个问题只要关注 gorm 语句和模型的代码即可。

主要依赖

$ go get github.com/robfig/cron/v3@v3.0.0

=======

问题已找到,gorm 的自动迁移函数会创建外键,而由于外键数据类型和字段名不统一导致外键创建失败。根据阿里的Java开发手册,不在数据库层面创建外键,所以更改了数据库启动时的配置,禁用 gorm 生成外键的功能即可。 gin 的结构体中声明的 `json=""` 配置不是字段接受名,区分好 `json` 和 `form` 的作用。

About

West2 Assignment 4

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published