You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
banban/src/main/java/com/service/IMovieService.java

137 lines
12 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

package com.service;
import java.util.List;
import com.entity.Movie;
/**
* IMovieService接口用于定义一系列针对电影Movie相关业务逻辑操作的方法规范。
* 该接口规定了如查询电影详情、添加、删除、更新电影信息,以及对电影的评论数量、票房等相关属性进行操作,还有按照不同条件(如名称、类型、上映时间、评分等)筛选和排序电影等功能的抽象方法,通常会由具体的实现类来实现这些方法的具体业务逻辑,实现类一般会与数据持久层交互来完成相应的数据操作,为项目中涉及电影相关业务的各个模块提供统一的服务调用接口。
*/
public interface IMovieService {
/**
* 根据电影的唯一标识ID查询对应的电影信息的方法签名。
* 具体实现类需要编写逻辑通常是调用数据持久层相关方法与数据库交互依据传入的电影ID从数据库中查找对应的电影记录并将其转换为`Movie`实体对象返回,方便获取特定电影的详细情况,例如电影名称、类型、导演、主演、上映时间等信息。
* @param movie_id 要查询的电影的唯一标识(通常是一个具有特定格式的数字)
* @return 返回一个`Movie`对象,代表查询到的电影信息,如果未找到对应的电影则返回`null`(具体取决于实现逻辑)
*/
Movie findMovieById(long movie_id);
/**
* 根据电影的中文名称查询对应的电影信息的方法签名。
* 实现类需编写相应逻辑,按照传入的电影中文名称,在数据库中查找匹配的电影记录,并将其转换为`Movie`实体对象返回,方便通过电影名称来获取其详细信息,便于用户在知道电影名称的情况下查找特定电影,例如用户搜索想看的电影时使用。
* @param movie_cn_name 要查询的电影的中文名称,用于在数据库中筛选对应的电影记录
* @return 返回一个`Movie`对象,代表查询到的电影信息,如果未找到对应的电影则返回`null`(具体取决于实现逻辑)
*/
Movie findMovieByName(String movie_cn_name);
/**
* 向数据库中插入一条新的电影记录的方法签名。
* 对应的实现类需要实现将传入的包含电影信息的`Movie`对象包含电影的各种属性如名称、类型、导演、主演、上映时间等插入到数据库的电影表中的逻辑并且根据插入操作的结果返回受影响的行数通常插入成功返回1失败返回0等具体依数据库执行情况而定以此判断电影信息插入是否成功。
* @param movie 包含要插入的电影信息的`Movie`对象
* @return 返回一个`Integer`类型的值,表示插入操作影响的行数,可用于判断插入是否成功
*/
Integer addMovie(Movie movie);
/**
* 根据电影的唯一标识ID从数据库中删除对应的电影记录的方法签名。
* 具体实现类需编写逻辑调用相应的数据持久层方法将指定ID的电影记录从数据库表中移除然后返回受影响的行数来表明删除操作是否成功执行一般成功删除返回1不存在对应记录返回0等情况用于确认电影记录删除操作的结果。
* @param movie_id 要删除的电影的唯一标识
* @return 返回一个`Integer`类型的值,表示删除操作影响的行数,可用于判断删除是否成功
*/
Integer deleteMovie(long movie_id);
/**
* 根据传入的`Movie`对象信息更新数据库中对应的电影记录的方法签名。
* 实现类要编写代码逻辑,依据传入的`Movie`对象中的属性值(例如电影名称、类型、导演等属性发生变化时)来更新数据库里对应电影记录的相应字段,然后返回受影响的行数,用于判断电影记录更新是否成功执行。
* @param movie 包含更新后电影信息的`Movie`对象
* @return 返回一个`Integer`类型的值,表示更新操作影响的行数,可用于判断更新是否成功
*/
Integer updateMovie(Movie movie);
/**
* 根据电影的唯一标识ID减少该电影的评论数量的方法签名。
* 实现类需要编写相应逻辑例如在数据库中找到对应电影记录对其评论数量字段进行减1等相应减少操作具体减少的数值及实现方式依业务需求而定然后返回受影响的行数用于判断评论数量减少操作是否成功执行可能用于如删除评论等相关业务场景导致评论数量变化时调用。
* @param movie_id 要减少评论数量的电影的唯一标识
* @return 返回一个`Integer`类型的值,表示操作影响的行数,可用于判断操作是否成功
*/
Integer delCommentCount(long movie_id);
/**
* 根据传入的价格值更新电影的票房数据的方法签名。
* 实现类需编写逻辑按照传入的价格通常表示票房的增加量等具体含义依业务定义以及电影ID在数据库中找到对应的电影记录对其票房字段进行相应更新例如增加传入的价格数值等操作然后返回受影响的行数用于判断票房数据更新操作是否成功执行可用于记录电影票房变化情况如购票成功后增加票房等业务场景。
* @param price 用于更新票房的价格数值,一般表示票房的变化量(增加或减少量,具体依业务而定)
* @param movie_id 要更新票房数据的电影的唯一标识
* @return 返回一个`Integer`类型的值,表示操作影响的行数,可用于判断操作是否成功
*/
Integer changeMovieBoxOffice(float price, long movie_id);
/**
* 根据电影的唯一标识ID增加该电影的评论数量的方法签名。
* 实现类要编写逻辑在数据库中找到对应电影记录对其评论数量字段进行加1等相应增加操作具体增加的数值及实现方式依业务需求而定然后返回受影响的行数用于判断评论数量增加操作是否成功执行可能用于如新增评论等相关业务场景导致评论数量变化时调用。
* @param movie_id 要增加评论数量的电影的唯一标识
* @return 返回一个`Integer`类型的值,表示操作影响的行数,可用于判断操作是否成功
*/
Integer addCommentCount(long movie_id);
/**
* 根据电影状态查询所有符合该状态的电影信息的方法签名。
* 实现类需要编写逻辑依据传入的电影状态值通常是一个整数表示不同状态例如1表示上映中0表示下架等具体依业务定义而定在数据库中筛选出处于该状态的所有电影记录
* 并将每条记录转换为`Movie`实体对象,最后以`List<Movie>`集合的形式返回这些电影信息列表,便于按状态查看电影情况,例如展示正在上映的电影列表等业务场景。
* @param movie_state 表示电影状态的整数,用于筛选符合该状态的电影记录
* @return 返回一个包含符合条件的`Movie`对象的`List`集合,每个对象代表一条符合该状态的电影记录信息,可能为空集合(如果没有符合该状态的电影)
*/
List<Movie> findAllMovies(int movie_state);
/**
* 根据电影名称进行模糊查询,获取符合模糊条件的电影信息列表的方法签名。
* 实现类需要编写逻辑,依据传入的电影名称(可以是部分名称等模糊条件),在数据库中查找名称符合模糊匹配条件的电影记录,
* 并将每条记录转换为`Movie`实体对象,最后以`List<Movie>`集合的形式返回这些电影信息列表,方便用户根据部分名称等模糊信息查找感兴趣的电影,例如在搜索功能中使用。
* @param name 要进行模糊查询的电影名称,用于筛选符合条件的电影记录
* @return 返回一个包含符合模糊查询条件的`Movie`对象的`List`集合,可能为空集合(如果没有找到符合条件的电影)
*/
List<Movie> findMoviesLikeName(String name);
/**
* 根据电影类型进行模糊查询,获取符合模糊条件的电影信息列表的方法签名。
* 实现类需要编写逻辑,依据传入的电影类型(可以是部分类型关键词等模糊条件),在数据库中查找类型符合模糊匹配条件的电影记录,
* 并将每条记录转换为`Movie`实体对象,最后以`List<Movie>`集合的形式返回这些电影信息列表,方便用户根据电影类型的模糊信息查找感兴趣的电影,例如用户想查找某类题材的电影时使用。
* @param type 要进行模糊查询的电影类型,用于筛选符合条件的电影记录
* @return 返回一个包含符合模糊查询条件的`Movie`对象的`List`集合,可能为空集合(如果没有找到符合条件的电影)
*/
List<Movie> findMoviesLikeType(String type);
/**
* 根据电影的上映时间对电影进行排序,并返回排序后的电影信息列表的方法签名。
* 实现类需要编写相应的排序逻辑(通常涉及从数据库中获取电影记录并按照上映时间字段进行排序操作,例如使用数据库的排序语句或者在代码中对获取到的列表进行排序处理等),
* 最后以`List<Movie>`集合的形式返回排序后的电影信息列表,方便按照上映时间先后展示电影,例如展示近期上映的电影列表等业务场景。
* 这里的排序顺序(升序或降序)依业务需求而定,一般可以是按时间从早到晚或者从晚到早排序,具体实现中会明确排序规则。
* @return 返回一个包含`Movie`对象的`List`集合,代表排序后的电影记录信息,列表顺序依据上映时间排序规则确定
*/
List<Movie> sortMovieByDate();
/**
* 根据电影的参评人数对电影进行排序,并返回排序后的电影信息列表的方法签名。
* 实现类要编写排序逻辑,从数据库中获取电影记录并按照参评人数字段进行排序(升序或降序依业务需求而定,例如按参评人数从多到少或者从少到多排序),
* 最后以`List<Movie>`集合的形式返回排序后的电影信息列表,便于按照参评人数展示电影情况,例如展示热门程度(参评人数多可视为较热门)不同的电影列表等业务场景。
* @return 返回一个包含`Movie`对象的`List`集合,代表排序后的电影记录信息,列表顺序依据参评人数排序规则确定
*/
List<Movie> sortMovieByCount();
/**
* 根据电影的评分对电影进行排序,并返回排序后的电影信息列表的方法签名。
* 实现类需编写排序逻辑,获取电影记录并按照评分字段进行排序(通常可以是按评分从高到低或者从低到高排序,具体依业务需求而定),
* 最后以`List<Movie>`集合的形式返回排序后的电影信息列表,方便按照评分高低展示电影情况,例如推荐高分电影等业务场景。
* @return 返回一个包含`Movie`对象的`List`集合,代表排序后的电影记录信息,列表顺序依据评分排序规则确定
*/
List<Movie> sortMovieByScore();
/**
* 根据电影的票房数据对电影进行排序,并返回排序后的电影信息列表的方法签名。
* 实现类需要编写排序逻辑,依据电影的票房字段对获取到的电影记录进行排序(可以是按票房从高到低或者从低到高排序,具体依业务需求而定),
* 最后以`List<Movie>`集合的形式返回排序后的电影信息列表,便于按照票房高低展示电影情况,例如展示热门票房电影等业务场景。
* @return 返回一个包含`Movie`对象的`List`集合,代表排序后的电影记录信息,列表顺序依据票房排序规则确定
*/
List<Movie> sortMovieByBoxOffice();
}