推电影列表模块开发设计文档
[推评分]电影推荐和下载指南 11-23/第1期
2
2
1.功能点
第一期虽然名义上是电影列举模块,但是对于分类等作为整个项目基本参数的枚举和服务在本期需要体现出来
本期主要功能就是电影列表的服务和分页接口的定义
接口设计:
1.电影地区服务(暂基于枚举)
MovieRegionEnum {
All(0,"所有分类"),
China(1,"华语"),
HK(2,"香港"),
TW(3,"台湾"),
Japan(4,"日本"),
HanGuo(5,"韩国"),
India(6,"印度"),
Tailand(7,"泰国"),
America(8,"美国"),
Else(9,"其它");
(1)通过id得到活动项
MovieRegionEnum getById(int id)
(2)返回所有分类
List<MovieRegionEnum> getAllCatagorys()
(3)通过组合type,返回对应的id集合,以,连接; (主要处理类似港台、日韩)
String getRegionIdsByType(int type) //91港台,92日韩,93东南亚
2.电影类型枚举
MovieTypeEnum {
XiJu(11,"喜剧"),
AiQing(21,"爱情"),
DongZuo(31,"动作"),
KongBu(41,"恐怖"),
DongHua(51,"动画"),
Else(6,"其它");
(1)通过id得到类型
MovieTypeEnum getById
(2)获取所有类型枚举
List<MovieTypeEnum> getAllType()
3.观看地址形式枚举
MovieWatchModeEnum {
All(0,"不限形式"),
CanWatch(1,"可跳转观看"),
CanBT(2,"有下载链接"),
NoDownLoad(3,"仅推荐"),
4.排序状态枚举
MovieSortEnum {
IDDesc(1,"入库时间从新降序"),
TuiScore(2,"推评分从高到低"),
CollectTimes(3,"喜欢数从高到低"),
MovieTime(4, "上映时间从新降序")
5、MovieService
(1) List<Movie> loadMovieByPage(MovieSortEnum sort, int regionId, MovieTypeEnum type, ovieWatchModeEnum mode, int movieDate, int page)
//逻辑要点
1、注意regionId,和movieDate,不是枚举里的值,需要转化为真正的数据字段,建议直接在Enum里返回用,分割的String。
2、如果为空,则返回Null
3、mysql内动态查询,“全部”状态不需要查询
6. ajax接口服务
电影列表分页接口(接口返回见接口文档)
ResponseDO loadList(int sortType, int regionId, int type, int movieDate, int watchType,
int page)
逻辑:
1、查询size固定为10
2、如果查询结果为空,则返回null
•主要接口