# amovie
**Repository Path**: sggg/amovie
## Basic Information
- **Project Name**: amovie
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: GPL-3.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2020-04-14
- **Last Updated**: 2020-12-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 基于spring boot的电影订票网站
***项目介绍:*** 该项目是实现网上购票为主的电影网站,主要功能有购买电影票,电影的展示,排行,推荐,评分及评论等。后台包括了电影,资讯,类别,场次等一系列实体的操作,增删改查实现管理。
# 部分功能动图如下
### 登录

### 订票

### 排行榜

### 评分

### 添加到播放列表

# Moive后台接口文档
合理使用以下类:
- org.springframework.http.ResponseEntity
- org.springframework.http.HttpStatus
使用POST/PUT发送JSON数据时,反序列化成对象需要在参数上加@RequestBody注解。
在浏览器上使用PUT/DELETE时会遇见跨域问题,原因在于浏览器遵循同源策略,具体信息见链接[https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Access_control_CORS](https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Access_control_CORS),使用Postman不会遇见此类问题,但需引起重视。
Postman的Header请设置成Content-Type: application/json,但凡请求数据为以下格式的,都需在Postman的Body下的raw下发送:
```json
{
"name": ""
}
```
## 类别
### 获取类别列表(分页)
请求方式:GET
请求地址:/categories
请求参数:
| 参数值 | 参数类型 | 是否必须 | 说明 |
| --- | --- | --- | --- |
| page | int | 否,默认1 | 页码 |
| size | int | 否,默认20 | 每页大小 |
-----返回结构
HTTP状态码:200 -- 数据
### 获取所有类别列表(不分页)
请求方式:GET
请求地址:/categories/all
请求参数:无
返回数据格式:
```json
[
{
"id": 1,
"name": "动作"
},
{
"id": 2,
"name": "爱情"
}
]
```
| 参数值 | 参数类型 | 是否必须 | 说明 |
| --- | --- | --- | --- |
| id | int | 是 | 类别id |
| name | String | 是 | 类别名称 |
###
### 获取类别
请求方式:GET
请求地址:/categories/{id}
路径参数:
| 参数值 | 参数类型 | 是否必须 | 说明 |
| --- | --- | --- | --- |
| id | int | 是 | id |
-----返回结构
HTTP状态码:200 -- 数据
HTTP状态码:404 -- 资源未找到
### 创建类别
请求方式:POST
请求头:Content-Type: application/json;charset=utf-8
请求地址:/categories
请求数据:
```json
{
"name": "value"
}
```
| 参数值 | 参数类型 | 是否必须 | 说明 |
| --- | --- | --- | --- |
| name | String | 是 | 类别名称 |
-----返回结构
HTTP状态码:200 -- 成功
HTTP状态码:400 -- 创建失败
### 修改类别
请求方式:PUT
请求头:Content-Type: application/json;charset=utf-8
请求地址:/categories/{id}
路径参数:
| 参数值 | 参数类型 | 是否必须 | 说明 |
| --- | --- | --- | --- |
| id | int | 是 | 类别id |
请求数据:
```json
{
"name": "value"
}
```
| 参数值 | 参数类型 | 是否必须 | 说明 |
| --- | --- | --- | --- |
| name | String | 是 | 类别名称 |
-----返回结构
HTTP状态码:200 -- 成功
HTTP状态码:400 -- 修改失败
HTTP状态码:404 -- 资源未找到
### 删除类别
请求方式:DELETE
请求头:Content-Type: application/json;charset=utf-8
请求地址:/categories/{id}
路径参数:
| 参数值 | 参数类型 | 是否必须 | 说明 |
| --- | --- | --- | --- |
| id | int | 是 | 类别id |
HTTP状态码:200 -- 成功
HTTP状态码:400 -- 删除失败
HTTP状态码:404 -- 资源未找到
## 资讯
### 获取资讯列表
请求方式:GET
请求地址:/news
请求参数:
| 参数值 | 参数类型 | 是否必须 | 说明 |
| --- | --- | --- | --- |
| page | int | 否,默认1 | 页码 |
| size | int | 否,默认20 | 每页大小 |
HTTP状态码:200 -- 数据
### 获取资讯
请求方式:GET
请求地址:/news/{id}
路径参数:
| 参数值 | 参数类型 | 是否必须 | 说明 |
| --- | --- | --- | --- |
| id | int | 是 | id |
-----返回结构
HTTP状态码:200 -- 数据
HTTP状态码:404 -- 资源未找到
### 创建资讯
请求方式:POST
请求头:Content-Type: application/json;charset=utf-8
请求地址:/news
请求数据:
```json
{
"content": "value"
}
```
| 参数值 | 参数类型 | 是否必须 | 说明 |
| --- | --- | --- | --- |
| content | String | 是 | 资讯 |
-----返回结构
HTTP状态码:200 -- 成功
HTTP状态码:400 -- 创建失败
### 修改资讯
请求方式:PUT
请求头:Content-Type: application/json;charset=utf-8
请求地址:/news/{id}
请求数据:
```json
{
"content": "value"
}
```
| 参数值 | 参数类型 | 是否必须 | 说明 |
| --- | --- | --- | --- |
| content | String | 是 | 资讯 |
-----返回结构
HTTP状态码:200 -- 成功
HTTP状态码:400 -- 修改失败
HTTP状态码:404 -- 资源未找到
### 删除资讯
请求方式:DELETE
请求头:Content-Type: application/json;charset=utf-8
请求地址:/news/{id}
路径参数:
| 参数值 | 参数类型 | 是否必须 | 说明 |
| --- | --- | --- | --- |
| id | String | 是 | id |
-----返回结构
HTTP状态码:200 -- 成功
HTTP状态码:400 -- 删除失败
HTTP状态码:404 -- 资源未找到
## 电影
### 获取电影列表
请求方式:GET
请求地址:/movies
请求参数:
| 参数值 | 参数类型 | 是否必须 | 说明 |
| --- | --- | --- | --- |
| page | int | 否,默认1 | 页码 |
| size | int | 否,默认20 | 每页大小 |
HTTP状态码:200 -- 数据
### 获取电影
请求方式:GET
请求地址:/movies/{id}
路径参数:
| 参数值 | 参数类型 | 是否必须 | 说明 |
| --- | --- | --- | --- |
| id | int | 是 | id |
-----返回结构
HTTP状态码:200 -- 数据
HTTP状态码:404 -- 资源未找到
### 根据类别获取电影列表
请求方式:GET
请求地址:/movies
请求参数:
| 参数值 | 参数类型 | 是否必须 | 说明 |
| --- | --- | --- | --- |
| categoryIds | int[] | 是 | 类型id |
| page | int | 否 | 页数 |
| size | int | 否 | 每页大小 |
-----返回结构
HTTP状态码:200 -- 数据
### 创建电影
请求方式:POST
请求头:Content-Type: application/json;charset=utf-8
请求地址:/movies
请求数据:
```json
{
"name": "name",
"duration": 123,
"directors": "",
"actors": "",
"releaseDate": "",
"categoryIds": [1,2],
"status": "",
"plot": "",
"poster": "",
"country": ""
}
```
| 参数值 | 参数类型 | 是否必须 | 说明 |
| --- | --- | --- | --- |
| name | String | 是 | 电影名称 |
| duration | int | 是 | 时长 |
| directors | String | 是 | 导演 |
| actors | String | 是 | 演员 |
| releaseDate | Date/String | 是 | 上映日期 |
| categoryIds | int[] | 是 | 类别id,多个类别 |
| status | int/String | 否 | 上映状态,默认未上映 |
| plot | String | 是 | 剧情 |
| poster | String | 是 | 电影海报链接 |
| country | String | 是 | 国家 |
-----返回结构
HTTP状态码:200 -- 成功
HTTP状态码:400 -- 创建失败
### 修改电影
请求方式:PUT
请求头:Content-Type: application/json;charset=utf-8
请求地址:/movies/{id}
请求数据:
```json
{
"name": "name",
"duration": 120,
"directors": "",
"actors": "",
"releaseDate": "",
"categoryIds": [1],
"status": "",
"plot": "",
"poster": "",
"country": ""
}
```
| 参数值 | 参数类型 | 是否必须 | 说明 |
| --- | --- | --- | --- |
| id | int | 是 | id |
| name | String | 否 | 电影名称 |
| duration | int | 否 | 时长 |
| directors | String | 否 | 导演 |
| actors | String | 否 | 演员 |
| releaseDate | Date/String | 否 | 上映日期 |
| categoryIds | int[] | 否 | 类别id |
| status | int/String | 否 | 上映状态,默认未上映 |
| plot | String | 否 | 剧情 |
| poster | String | 否 | 电影海报链接 |
| country | String | 否 | 国家 |
-----返回结构
HTTP状态码:200 -- 成功
HTTP状态码:400 -- 更新失败
HTTP状态码:404 -- 资源未找到
**备注:该对象更新时并非全部字段更新,仅向后端传输需要更新的字段。例如:
PUT /movies/1**
```json
{
"name": "乘风破浪",
"directors": "韩寒",
"actors": "邓超,彭于晏,赵丽颖,董子健,高华阳,张本煜,李荣浩"
}
```
### 删除电影
请求方式:DELETE
请求头:Content-Type: application/json;charset=utf-8
请求地址:/movies/{id}
路径参数:
| 参数值 | 参数类型 | 是否必须 | 说明 |
| --- | --- | --- | --- |
| id | String | 是 | id |
-----返回结构
HTTP状态码:200 -- 成功
HTTP状态码:400 -- 删除失败
HTTP状态码:404 -- 资源未找到
## 场次
### 获取场次列表
请求方式:GET
请求地址:/scenes
请求参数:
| 参数值 | 参数类型 | 是否必须 | 说明 |
| --- | --- | --- | --- |
| page | int | 否,默认1 | 页码 |
| size | int | 否,默认20 | 每页大小 |
HTTP状态码:200 -- 数据
### 获取场次
请求方式:GET
请求地址:/scenes/{id}
路径参数:
| 参数值 | 参数类型 | 是否必须 | 说明 |
| --- | --- | --- | --- |
| id | int | 是 | id |
-----返回结构
HTTP状态码:200 -- 数据
HTTP状态码:404 -- 资源未找到
### 获取电影下的场次
请求方式:GET
请求地址:/movies/{id}/scenes
路径参数:
| 参数值 | 参数类型 | 是否必须 | 说明 |
| --- | --- | --- | --- |
| id | int | 是 | 电影id |
-----返回结构
HTTP状态码:200 -- 数据
**备注:某个电影下没有场次或者有多个场次,没有场次也应该返回HTTP状态码200。**
**
### 创建场次
请求方式:POST
请求头:Content-Type: application/json;charset=utf-8
请求地址:/scenes
请求数据:
```json
{
"movieId": "",
"movieName": "",
"price": 20,
"seatNum": 166,
"showtime": "12:10",
"bookedSeat": ["A2", "B3"]
}
```
| 参数值 | 参数类型 | 是否必须 | 说明 |
| --- | --- | --- | --- |
| movieId | int | 是 | 电影id |
| movieName | String | 是 | 电影名称 |
| price | int | 是 | 该场次的价格 |
| seatNum | int | 否 | 座位数,默认数 |
| showtime | String/Date | 是 | 播放时间 |
| bookedSeat | String[] | 否 | 已预定的座位 |
-----返回结构
HTTP状态码:200 -- 成功
HTTP状态码:400 -- 创建失败
### 修改场次
请求方式:PUT
请求头:Content-Type: application/json;charset=utf-8
请求地址:/scenes/{id}
路径参数:
| 参数值 | 参数类型 | 是否必须 | 说明 |
| --- | --- | --- | --- |
| id | int | 是 | id |
请求数据:
```json
{
"movieId": "",
"movieName": "",
"price": 20,
"seatNum": 166,
"showtime": "12:10",
"bookedSeat": ["A2", "B3"]
}
```
| 参数值 | 参数类型 | 是否必须 | 说明 |
| --- | --- | --- | --- |
| movieId | int | 否 | 电影id |
| movieName | String | 否 | 电影名称 |
| price | int | 否 | 该场次的价格 |
| seatNum | int | 否 | 座位数,默认数 |
| showtime | String/Date | 否 | 播放时间 |
| bookedSeat | String[] | 否 | 已预定的座位 |
-----返回结构
HTTP状态码:200 -- 成功
HTTP状态码:400 -- 修改失败
HTTP状态码:404 -- 资源未找到
### 删除场次
请求方式:DELETE
请求头:Content-Type: application/json;charset=utf-8
请求地址:/scenes/{id}
路径参数:
| 参数值 | 参数类型 | 是否必须 | 说明 |
| --- | --- | --- | --- |
| id | String | 是 | id |
-----返回结构
HTTP状态码:200 -- 成功
HTTP状态码:400 -- 删除失败
HTTP状态码:404 -- 资源未找到
## 评分
### 获取某部电影的评分
请求方式:GET
请求地址:/movies/{id}/ranks
路径参数:
| 参数值 | 参数类型 | 是否必须 | 说明 |
| --- | --- | --- | --- |
| id | int | 是 | 电影id |
HTTP状态码:200 -- 数据
HTTP状态码:404 -- 资源未找到
### 创建评分
请求方式:POST
请求头:Content-Type: application/json;charset=utf-8
请求地址:/ranks
请求数据:
```json
{
"userId": 7,
"movieId": 2,
"score": 1
}
```
| 参数值 | 参数类型 | 是否必须 | 说明 |
| --- | --- | --- | --- |
| movieId | int | 是 | 电影id |
| userId | int | 是 | 用户id |
| score | int | 是 | 评分 |
-----返回结构
HTTP状态码:200 -- 成功
HTTP状态码:400 -- 创建失败
**备注**:评分的范围在1-5之间,整数。
### 更新评分
请求方式:PUT
请求头:Content-Type: application/json;charset=utf-8
请求地址:/movies/{id}
请求数据:
```json
{
"userId": 7,
"movieId": 2,
"score": 1
}
```
| 参数值 | 参数类型 | 是否必须 | 说明 |
| --- | --- | --- | --- |
| movieId | int | 是 | 电影id |
| userId | int | 是 | 用户id |
| score | int | 是 | 评分 |
-----返回结构
HTTP状态码:200 -- 成功
HTTP状态码:400 -- 更新失败
HTTP状态码:404 -- 资源未找到