Compare commits

...

71 Commits
main ... cw

Author SHA1 Message Date
pf6xyk43p 48ac716987 Update Schedule.java
1 year ago
pf6xyk43p 5f018810b9 Update Order.java
1 year ago
pf6xyk43p 1985aabed7 Update Movie.java
1 year ago
pf6xyk43p 2a75312441 Update Hall.java
1 year ago
pf6xyk43p fc2d55ce60 Update Comment.java
1 year ago
pf6xyk43p aca32067b9 Update Cinema.java
1 year ago
pf6xyk43p 6e20f2f8cc Update UserController.java
1 year ago
pf6xyk43p a064758569 Update ScheduleController.java
1 year ago
pf6xyk43p b33832ab16 Update OrderController.java
1 year ago
pf6xyk43p 26b489f14d Update MovieController.java
1 year ago
pf6xyk43p 523619435c Update CommentController.java
1 year ago
CW 37348f325a Merge branch 'cw' of https://bdgit.educoder.net/pxv6y92jf/banban
1 year ago
CW 4e9e4cf7e8 Merge branch 'cw' of https://bdgit.educoder.net/pxv6y92jf/banban
1 year ago
CW 1d001f0802 Merge branch 'cw' of https://bdgit.educoder.net/pxv6y92jf/banban
1 year ago
CW 6e75a7010f Merge branch 'cw' of https://bdgit.educoder.net/pxv6y92jf/banban
1 year ago
CW 93fe199339 Merge branch 'cw' of https://bdgit.educoder.net/pxv6y92jf/banban
1 year ago
CW 7a992ff099 Merge branch 'cw' of https://bdgit.educoder.net/pxv6y92jf/banban
1 year ago
CW 97b9ad0ccb Merge branch 'cw' of https://bdgit.educoder.net/pxv6y92jf/banban
1 year ago
CW 815206c8cb Merge branch 'cw' of https://bdgit.educoder.net/pxv6y92jf/banban
1 year ago
CW ade9e2e296 Merge branch 'cw' of https://bdgit.educoder.net/pxv6y92jf/banban
1 year ago
CW 2b95aefe5a Merge branch 'cw' of https://bdgit.educoder.net/pxv6y92jf/banban
1 year ago
CW 7ee5af245a Merge branch 'cw' of https://bdgit.educoder.net/pxv6y92jf/banban
1 year ago
CW df6f2bedcf Merge branch 'cw' of https://bdgit.educoder.net/pxv6y92jf/banban
1 year ago
CW 7f7d0b39eb Merge branch 'cw' of https://bdgit.educoder.net/pxv6y92jf/banban
1 year ago
CW 086f506d56 Merge branch 'cw' of https://bdgit.educoder.net/pxv6y92jf/banban
1 year ago
CW 89f4ba7a82 Merge branch 'cw' of https://bdgit.educoder.net/pxv6y92jf/banban
1 year ago
CW c76a5ef966 Merge branch 'cw' of https://bdgit.educoder.net/pxv6y92jf/banban
1 year ago
CW f64a90c355 Merge branch 'cw' of https://bdgit.educoder.net/pxv6y92jf/banban
1 year ago
CW e8de702e06 Merge branch 'cw' of https://bdgit.educoder.net/pxv6y92jf/banban
1 year ago
CW 1287cc04f2 Merge branch 'cw' of https://bdgit.educoder.net/pxv6y92jf/banban
1 year ago
CW de2500dfdd Merge branch 'cw' of https://bdgit.educoder.net/pxv6y92jf/banban
1 year ago
CW 8c58c19f33 Merge branch 'cw' of https://bdgit.educoder.net/pxv6y92jf/banban
1 year ago
CW 333b5ced5c Merge branch 'cw' of https://bdgit.educoder.net/pxv6y92jf/banban
1 year ago
CW 6372ca60f3 Merge branch 'cw' of https://bdgit.educoder.net/pxv6y92jf/banban
1 year ago
CW b0f8101ddb Merge branch 'cw' of https://bdgit.educoder.net/pxv6y92jf/banban
1 year ago
CW 8b0ffaf149 Merge branch 'cw' of https://bdgit.educoder.net/pxv6y92jf/banban
1 year ago
CW 80c82cf476 Merge branch 'cw' of https://bdgit.educoder.net/pxv6y92jf/banban
1 year ago
CW c09a279a04 Merge branch 'cw' of https://bdgit.educoder.net/pxv6y92jf/banban
1 year ago
CW aa35720828 Merge branch 'cw' of https://bdgit.educoder.net/pxv6y92jf/banban
1 year ago
CW 54558cb945 Merge branch 'cw' of https://bdgit.educoder.net/pxv6y92jf/banban
1 year ago
CW c25bea62c0 Merge branch 'cw' of https://bdgit.educoder.net/pxv6y92jf/banban
1 year ago
CW 4438bbe85b Merge branch 'cw' of https://bdgit.educoder.net/pxv6y92jf/banban
1 year ago
CW e4b5a0f45d Merge branch 'cw' of https://bdgit.educoder.net/pxv6y92jf/banban
1 year ago
CW c197df1de5 Merge branch 'cw' of https://bdgit.educoder.net/pxv6y92jf/banban
1 year ago
CW 6b06f81d61 Merge branch 'cw' of https://bdgit.educoder.net/pxv6y92jf/banban
1 year ago
CW 007a0d547e Merge branch 'cw' of https://bdgit.educoder.net/pxv6y92jf/banban
1 year ago
CW 8a55466027 Merge branch 'cw' of https://bdgit.educoder.net/pxv6y92jf/banban
1 year ago
CW 0dd0a87f44 Merge branch 'cw' of https://bdgit.educoder.net/pxv6y92jf/banban
1 year ago
CW 305f725977 Merge branch 'cw' of https://bdgit.educoder.net/pxv6y92jf/banban
1 year ago
CW 42b6392519 Merge branch 'cw' of https://bdgit.educoder.net/pxv6y92jf/banban
1 year ago
CW df28dd198b Merge branch 'cw' of https://bdgit.educoder.net/pxv6y92jf/banban
1 year ago
CW 4aee1e206e Merge branch 'cw' of https://bdgit.educoder.net/pxv6y92jf/banban
1 year ago
CW 2e4302bf23 Merge branch 'cw' of https://bdgit.educoder.net/pxv6y92jf/banban
1 year ago
CW d30b105079 Merge branch 'cw' of https://bdgit.educoder.net/pxv6y92jf/banban
1 year ago
CW 90bbb36435 Merge branch 'cw' of https://bdgit.educoder.net/pxv6y92jf/banban
1 year ago
CW ae35a0346c Merge branch 'cw' of https://bdgit.educoder.net/pxv6y92jf/banban
1 year ago
CW 90b440f94f Merge branch 'cw' of https://bdgit.educoder.net/pxv6y92jf/banban
1 year ago
CW 3e1a55ebef Merge branch 'cw' of https://bdgit.educoder.net/pxv6y92jf/banban
1 year ago
CW 417c379cdf Merge branch 'cw' of https://bdgit.educoder.net/pxv6y92jf/banban
1 year ago
CW b56e522882 Merge branch 'cw' of https://bdgit.educoder.net/pxv6y92jf/banban
1 year ago
CW 44ab759e40 Merge branch 'cw' of https://bdgit.educoder.net/pxv6y92jf/banban
1 year ago
CW fce524a1ac Merge branch 'cw' of https://bdgit.educoder.net/pxv6y92jf/banban
1 year ago
CW 2225062d90 Merge branch 'cw' of https://bdgit.educoder.net/pxv6y92jf/banban
1 year ago
CW bbc2355c40 Merge branch 'cw' of https://bdgit.educoder.net/pxv6y92jf/banban
1 year ago
CW bbdb507493 Merge branch 'cw' of https://bdgit.educoder.net/pxv6y92jf/banban
1 year ago
CW 0d72c7ba49 Merge branch 'cw' of https://bdgit.educoder.net/pxv6y92jf/banban
1 year ago
CW 19aacb73c2 Merge branch 'cw' of https://bdgit.educoder.net/pxv6y92jf/banban
1 year ago
CW 0b26e3bfc3 Merge branch 'cw' of https://bdgit.educoder.net/pxv6y92jf/banban
1 year ago
CW 6db5cb600e Merge branch 'main' of https://bdgit.educoder.net/pxv6y92jf/banban
1 year ago
CW 9c6d59b7c3 Merge branch 'main' of https://bdgit.educoder.net/pxv6y92jf/banban
1 year ago
pxv6y92jf 57515e1fc4 Delete '新建 文本文档.txt'
1 year ago

@ -19,43 +19,64 @@ import com.service.IMovieService;
import com.service.IUserService;
/**
*
*
*
* @author Wxj
*/
@Controller
@RequestMapping("/comment")
public class CommentController {
// 注入评论服务层接口,用于调用评论相关的业务逻辑方法
@Resource
private ICommentService commentService;
// 注入用户服务层接口,用于获取用户相关信息等操作
@Resource
private IUserService userService;
// 注入电影服务层接口,可能用于和评论关联的电影相关操作,比如更新电影的评论数量等
@Resource
private IMovieService movieService;
//用户: 修改评论、增加评论
//管理员x 删除评论、 修改评论
//x查询用户的评论
/**
*
* JSON
* JSON
* @return JSONObject JSON
*/
@RequestMapping("findAllComments")
@ResponseBody
public JSONObject findAllComments() {
JSONObject obj = new JSONObject();
// 调用评论服务层的方法获取所有评论列表
List<Comment> list = commentService.findAllComments();
for(Comment comment: list) {
// 遍历评论列表为每条评论设置对应的评论用户信息通过用户ID从用户服务层获取用户对象
for (Comment comment : list) {
comment.setComment_user(userService.findUserById(comment.getUser_id()));
}
obj.put("code", 0);
obj.put("msg","");
obj.put("msg", "");
obj.put("count", list.size());
obj.put("data", list);
return obj;
}
//测试 info.getTotal
/**
*
*
* JSON
* @param page 1
* @param limit 10
* @param keyword
* @return JSONObject JSON
*/
@RequestMapping("findAllCommentsPage")
@ResponseBody
public JSONObject findAllCommentsPage(@RequestParam(value="page",defaultValue="1")Integer page,@RequestParam(value="limit",defaultValue="10")Integer limit,String keyword) {
public JSONObject findAllCommentsPage(@RequestParam(value = "page", defaultValue = "1") Integer page,
@RequestParam(value = "pageSize", defaultValue = "10") Integer limit,
String keyword) {
PageInfo<Comment> info = commentService.findAllCommentsBySplitPage(page, limit, keyword);
//System.out.println(info);
for(Comment comment : info.getList()) {
// 遍历当前页的评论列表,为每条评论设置对应的评论用户信息
for (Comment comment : info.getList()) {
comment.setComment_user(userService.findUserById(comment.getUser_id()));
}
JSONObject obj = new JSONObject();
@ -65,79 +86,121 @@ public class CommentController {
obj.put("data", info.getList());
return obj;
}
/**
*
* IDHttpServletRequest
* JSON
* @param movie_id ID
* @param comment_content
* @param request HttpServletRequest
* @return JSONObject JSON
*/
@RequestMapping("addCommentByUser")
@ResponseBody
public JSONObject addCommentByUser(@RequestParam("movie_id")long movie_id,@RequestParam("comment_content")String comment_content,HttpServletRequest request) {
User user = (User)request.getSession().getAttribute("user");
public JSONObject addCommentByUser(@RequestParam("movie_id") long movie_id,
@RequestParam("comment_content") String comment_content,
HttpServletRequest request) {
User user = (User) request.getSession().getAttribute("user");
JSONObject obj = new JSONObject();
if(user == null) {
obj.put("code",200);
if (user == null) {
// 如果用户未登录,设置相应的状态码和提示信息
obj.put("code", 200);
obj.put("msg", "您未登录,登录之后才可评论~");
}else {
} else {
Comment comment = new Comment();
comment.setComment_content(comment_content);
comment.setMovie_id(movie_id);
comment.setUser_id(user.getUser_id());
comment.setComment_time(new Date());
// 调用评论服务层方法添加评论,返回受影响的行数
Integer rs = commentService.addComemnt(comment);
if(rs > 0) {
if (rs > 0) {
// 如果评论添加成功,尝试更新对应电影的评论数量
Integer rs2 = movieService.addCommentCount(comment.getMovie_id());
if(rs2 > 0) {
if (rs2 > 0) {
obj.put("code", 0);
obj.put("msg", "评论成功~");
}else {
obj.put("code",200);
} else {
obj.put("code", 200);
obj.put("msg", "评论失败2~");
}
}else {
obj.put("code",200);
} else {
obj.put("code", 200);
obj.put("msg", "评论失败~");
}
}
return obj;
}
/**
*
* ID
* JSON
* @param comment_id ID
* @param comment_content
* @return JSONObject JSON
*/
@RequestMapping("updateComment")
@ResponseBody
public JSONObject updateComment(@RequestParam("comment_id")long comment_id,@RequestParam("comment_content")String comment_content) {
public JSONObject updateComment(@RequestParam("comment_id") long comment_id,
@RequestParam("comment_content") String comment_content) {
JSONObject obj = new JSONObject();
Comment comment = this.commentService.findCommentById(comment_id);
comment.setComment_time(new Date());
comment.setComment_content(comment_content);
Integer rs = commentService.updateComment(comment);
if(rs > 0) {
if (rs > 0) {
obj.put("code", 0);
obj.put("msg", "修改成功~");
}else {
obj.put("code",200);
} else {
obj.put("code", 200);
obj.put("msg", "修改失败~");
}
return obj;
}
/**
*
* ID
* JSON
* @param comment_id ID
* @return JSONObject JSON
*/
@RequestMapping("deleteComemnt")
@ResponseBody
public JSONObject deleteComment(@RequestParam("comment_id")long comment_id) {
public JSONObject deleteComment(@RequestParam("comment_id") long comment_id) {
JSONObject obj = new JSONObject();
// 先获取要删除评论对应的电影ID然后调用电影服务层方法减少该电影的评论数量
Integer rs2 = movieService.delCommentCount(commentService.findCommentById(comment_id).getMovie_id());
Integer rs = commentService.deleteComment(comment_id);
if(rs > 0) {
if (rs > 0) {
obj.put("code", 0);
obj.put("msg", "删除成功~");
}else {
} else {
obj.put("code", 200);
obj.put("msg", "删除失败~");
}
return obj;
}
/**
*
*
* JSON
* @param page 1
* @param limit 10
* @param user_name
* @return JSONObject JSON
*/
@RequestMapping("findCommentsByUserName")
@ResponseBody
public JSONObject findCommentsByUserName(@RequestParam(value="page",defaultValue="1")Integer page,@RequestParam(value="limit",defaultValue="10")Integer limit,@RequestParam("user_name")String user_name) {
public JSONObject findCommentsByUserName(@RequestParam(value = "page", defaultValue = "1") Integer page,
@RequestParam(value = "limit", defaultValue = "10") Integer limit,
@RequestParam("user_name") String user_name) {
PageInfo<Comment> info = commentService.findCommentsByUserName(page, limit, user_name);
//System.out.println(info);
for(Comment comment : info.getList()) {
// 遍历当前页的评论列表,为每条评论设置对应的评论用户信息
for (Comment comment : info.getList()) {
comment.setComment_user(userService.findUserById(comment.getUser_id()));
}
JSONObject obj = new JSONObject();
@ -147,4 +210,4 @@ public class CommentController {
obj.put("data", info.getList());
return obj;
}
}
}

@ -27,60 +27,88 @@ import com.util.UUIDUtil;
/**
*
*
* @author Wxj
*/
@Controller
@RequestMapping("/movie")
public class MovieController {
// 注入电影服务层接口,用于调用电影相关的业务逻辑方法
@Resource
private IMovieService movieService;
// 注入影院服务层接口,可能用于获取与电影相关的影院信息等操作
@Resource
private ICinemaService cinemaService;
//1.电影详情页 findid
//2.首页电影列表 + name搜索 + type搜素 + 时间、参评人数、评分排序
//3.增加、删除、修改
/**
* ID
* IDJSON
* @param movie_id ID
* @return JSONObject JSON
*/
@RequestMapping("findMovieById")
@ResponseBody
public JSONObject findMovieById(@RequestParam("movie_id")long movie_id) {
public JSONObject findMovieById(@RequestParam("movie_id") long movie_id) {
JSONObject obj = new JSONObject();
// 调用电影服务层方法根据ID获取电影对象
Movie movie = movieService.findMovieById(movie_id);
// 调用影院服务层方法获取播放该电影的影院列表
List<Cinema> list = this.cinemaService.findCinemasByMovieId(movie_id);
obj.put("code", 0);
obj.put("data", movie);
obj.put("cinemaList",list);
obj.put("cinemaCount",list.size());
obj.put("cinemaList", list);
obj.put("cinemaCount", list.size());
return obj;
}
/**
*
* JSON
* @return JSONObject JSON
*/
@RequestMapping("findAllMovies")
@ResponseBody
public JSONObject findAllMovies() {
JSONObject obj = new JSONObject();
// 获取正在上映的电影列表此处传入参数1可能表示正在上映的标识具体需看服务层实现逻辑
List<Movie> list = movieService.findAllMovies(1);
// 获取即将上映的电影列表传入参数0可能表示即将上映的标识
List<Movie> upcomingList = movieService.findAllMovies(0);
// 获取按票房排序的电影列表
List<Movie> offList = movieService.sortMovieByBoxOffice();
String type[] = {"喜剧","动作","爱情","动画","科幻","惊悚","冒险","犯罪","悬疑"};
String type[] = {"喜剧", "动作", "爱情", "动画", "科幻", "惊悚", "冒险", "犯罪", "悬疑"};
ArrayList<Object> typeArr = new ArrayList<Object>();
for(int i = 0;i < type.length;i++) {
for (int i = 0; i < type.length; i++) {
// 根据电影类型获取对应类型的电影列表
List<Movie> movieList = this.movieService.findMoviesLikeType(type[i]);
float boxOffice = 0;
for(int j = 0; j < movieList.size();j++) {
for (int j = 0; j < movieList.size(); j++) {
// 累加该类型电影的票房
boxOffice += movieList.get(j).getMovie_boxOffice();
}
JSONObject typeJson = new JSONObject();
typeJson.put(type[i], boxOffice);
typeArr.add(typeJson);
}
obj.put("code", 0);
obj.put("count", list.size());
obj.put("upcomingCount",upcomingList.size());
obj.put("upcomingCount", upcomingList.size());
obj.put("data", list);
obj.put("data1", upcomingList);
obj.put("sort", offList);
obj.put("type", typeArr);
return obj;
}
/**
*
* JSON
* @param name
* @return JSONObject JSON
*/
@RequestMapping("findMoviesByName")
@ResponseBody
public JSONObject findMoviesByName(@RequestParam("name") String name) {
@ -91,7 +119,13 @@ public class MovieController {
obj.put("data", list);
return obj;
}
/**
*
* JSON
* @param type
* @return JSONObject JSON
*/
@RequestMapping("findMoviesByType")
@ResponseBody
public JSONObject findMoviesByType(@RequestParam("type") String type) {
@ -102,7 +136,13 @@ public class MovieController {
obj.put("data", list);
return obj;
}
/**
*
* JSON
* @param order "热门""时间""评价"
* @return JSONObject JSON
*/
@RequestMapping("sortAllMovies")
@ResponseBody
public JSONObject sortAllMovies(@RequestParam("order") String order) {
@ -119,65 +159,103 @@ public class MovieController {
list = movieService.sortMovieByScore();
break;
}
obj.put("code",0);
obj.put("code", 0);
obj.put("count", list.size());
obj.put("data", list);
return obj;
}
/**
*
* IDJSON
* @param movie_id ID
* @return JSONObject JSON
*/
@RequestMapping("deleteMovie")
@ResponseBody
public JSONObject deleteMovie(@RequestParam("movie_id") long movie_id) {
JSONObject obj = new JSONObject();
Integer rs = movieService.deleteMovie(movie_id);
if(rs > 0) {
obj.put("code",0);
obj.put("msg","下架成功~");
}else {
if (rs > 0) {
obj.put("code", 0);
obj.put("msg", "下架成功~");
} else {
obj.put("code", 200);
obj.put("msg", "下架失败~");
}
return obj;
}
/**
*
*
* JSON
* @param file
* @param movie Movie
* @param request HttpServletRequest
* @return JSONObject JSON
* @throws IOException IO
*/
@RequestMapping("addMovie")
@ResponseBody
public JSONObject addMovie(@RequestParam(value="file",required=false) MultipartFile file,Movie movie,HttpServletRequest request) throws IOException {
public JSONObject addMovie(@RequestParam(value = "file", required = false) MultipartFile file, Movie movie,
HttpServletRequest request) throws IOException {
// 获取上传文件的原始文件名
String str = file.getOriginalFilename();
System.out.println("file:" + str);
// 生成唯一的文件名使用UUIDUtil工具类生成UUID并结合原文件名的后缀
String name = UUIDUtil.getUUID() + str.substring(str.lastIndexOf("."));
System.out.println("name:" + name);
// 获取文件保存的绝对路径(服务器端的路径)
String path = request.getServletContext().getRealPath("/upload/movies") + "/" + name;
System.out.println("path:" + path);
// 设置相对路径,用于保存到数据库等操作(相对路径格式,具体需根据前端展示要求等情况确定是否合适)
String filePath = "../upload/movies/" + name;
movie.setMovie_picture(filePath);
Date date = new Date();
// 将util.Date类型转换为sql.Date类型此处代码可能存在问题建议使用Calendar来准确设置日期因为getYear、getMonth、getDay的返回值不符合常规预期
java.sql.Date releaseDate = new java.sql.Date(date.getYear(), date.getMonth(), date.getDay());
//SimpleDateFormat dateFormat = new SimpleDateFormat("YYYY-MM-dd");
// 随机生成一个5到9之间的评分包含5不包含9并格式化为保留一位小数的字符串
float random = 5 + (new Random().nextFloat() * 4);
DecimalFormat fnum = new DecimalFormat("##0.0");
DecimalFormat fnum = new DecimalFormat("##0.0");
String score = fnum.format(random);
movie.setMovie_score(Float.parseFloat(score));
movie.setReleaseDate(releaseDate);
Integer rs = movieService.addMovie(movie);
JSONObject obj = new JSONObject();
if(rs > 0) {
if (rs > 0) {
// 将文件保存到指定的服务器路径
file.transferTo(new File(path));
System.out.println("文件写入成功,Path:" + path);
obj.put("code", 0);
obj.put("msg", "添加成功~");
}else {
} else {
obj.put("code", 200);
obj.put("msg", "添加失败~");
}
return obj;
}
/**
*
* 沿
* JSON
* @param file
* @param movie Movie
* @param request HttpServletRequest
* @return JSONObject JSON
* @throws IOException IO
*/
@RequestMapping("updateMovie")
@ResponseBody
public JSONObject updateMovie(@RequestParam(value="file",required=false)MultipartFile file,Movie movie,HttpServletRequest request) throws IOException{
public JSONObject updateMovie(@RequestParam(value = "file", required = false) MultipartFile file, Movie movie,
HttpServletRequest request) throws IOException {
JSONObject obj = new JSONObject();
if(file != null) {
if (file!= null) {
String str = file.getOriginalFilename();
System.out.println("file:" + str);
String name = UUIDUtil.getUUID() + str.substring(str.lastIndexOf("."));
@ -188,19 +266,19 @@ public class MovieController {
file.transferTo(new File(path));
System.out.println("文件写入成功,Path:" + path);
movie.setMovie_picture(filePath);
}else {
} else {
// 如果没有上传新的海报文件,则获取原电影的海报信息设置给要修改的电影对象
Movie oldMovie = this.movieService.findMovieById(movie.getMovie_id());
movie.setMovie_picture(oldMovie.getMovie_picture());
}
Integer rs = movieService.updateMovie(movie);
if(rs > 0) {
if (rs > 0) {
obj.put("code", 0);
obj.put("msg", "修改成功~");
}else {
} else {
obj.put("code", 200);
obj.put("msg", "修改失败~");
}
return obj;
}
}
}

@ -24,188 +24,279 @@ import com.service.IScheduleService;
@Controller
@RequestMapping("/order")
public class OrderController {
@Resource
private IOrderService orderService;
@Resource
private IScheduleService scheduleService; //支付、退票成功 座位+-
@Resource
private IMovieService movieService; //支付、退票成功 票房+-
//查看订单是否 是支付的(返回给前端的数据)
@RequestMapping("findOrderById")
@ResponseBody
public JSONObject findOrderById(@RequestParam("order_id")String order_id) {
JSONObject obj = new JSONObject();
Order order = orderService.findOrderById(order_id);
List<Order> list = new ArrayList<Order>();
list.add(order);
obj.put("code", 0);
obj.put("msg", "");
obj.put("count", list.size());
obj.put("data",list);
return obj;
}
@RequestMapping("findOrderByUserName")
@ResponseBody
public JSONObject findOrderByUserName(@RequestParam(value="page",defaultValue="1")Integer page,@RequestParam(value="limit",defaultValue="10")Integer limit,@RequestParam("user_name")String user_name) {
PageInfo<Order> info = orderService.findOrdersByUserName(page, limit, user_name);
JSONObject obj = new JSONObject();
obj.put("code", 0);
obj.put("msg", "");
obj.put("count", info.getTotal());
obj.put("data", info.getList());
return obj;
}
@RequestMapping("findRefundOrderByUser")
@ResponseBody
public JSONObject findRefundOrderByUser(@RequestParam("user_name")String user_name) {
JSONObject obj = new JSONObject();
List<Order> list = this.orderService.findRefundOrderByUserName(user_name);
obj.put("code", 0);
obj.put("msg", "");
obj.put("count", list.size());
obj.put("data", list);
return obj;
}
@RequestMapping("findAllOrders")
@ResponseBody
public JSONObject findAllOrders() {
JSONObject obj = new JSONObject();
List<Order> list = orderService.findAllOrders();
obj.put("code", 0);
obj.put("msg", "");
obj.put("count", list.size());
obj.put("data", list);
return obj;
}
@RequestMapping("findAllOrdersPage")
@ResponseBody
public JSONObject findAllOrdersPage(@RequestParam(value="page",defaultValue="1")Integer page,@RequestParam(value="limit",defaultValue="10")Integer limit,String keyword) {
PageInfo<Order> info = orderService.findAllOrdersBySplitPage(page, limit, keyword);
JSONObject obj = new JSONObject();
obj.put("code", 0);
obj.put("msg", "");
obj.put("count", info.getTotal());
obj.put("data", info.getList());
return obj;
}
@RequestMapping("findAllRefundOrder")
@ResponseBody
public JSONObject findAllRefundOrder(@RequestParam(value="page",defaultValue="1")Integer page,@RequestParam(value="limit",defaultValue="10")Integer limit) {
JSONObject obj = new JSONObject();
PageInfo<Order> info = orderService.findOrdersByState(page, limit, 0);
obj.put("code", 0);
obj.put("msg", "");
obj.put("count", info.getTotal());
obj.put("data", info.getList());
return obj;
}
@RequestMapping("buyTickets")
@ResponseBody
public JSONObject buyTickets(@RequestParam("schedule_id")long schedule_id,@RequestParam("position[]")String[] position,@RequestParam("price")int price,HttpServletRequest request) {
User user = (User)request.getSession().getAttribute("user");
JSONObject obj = new JSONObject();
if(user == null) {
obj.put("code",200);
obj.put("msg", "您未登录,登录之后才可购票~");
}else {
int done = 0;
int order_price = price / position.length;
String user_id = "";
switch(String.valueOf(user.getUser_id()).length()) {
case 1: user_id = "000" + String.valueOf(user.getUser_id()); break;
case 2: user_id = "00" + String.valueOf(user.getUser_id()); break;
case 3: user_id = "0" + String.valueOf(user.getUser_id()); break;
case 4: user_id = String.valueOf(user.getUser_id()); break;
}
for(int i = 0;i < position.length;i++) {
Order order = new Order();
String order_id = "";
Date date = new Date();
SimpleDateFormat dateFormat = new SimpleDateFormat("YYYYMMdd");
order_id += dateFormat.format(date);
order_id += user_id;
String index = "";
switch(position[i].length()) {
case 4:
index = "0" + position[i].replaceAll("排", "0");
index = index.replaceAll("座", "");
break;
case 5:
if(position[i].charAt(2) >= 48 && position[i].charAt(2) <= 57) {
index = "0" + position[i].replaceAll("排", "");
index = index.replaceAll("座", "");
}else {
index = position[i].replaceAll("排", "0");
index = index.replaceAll("座", "");
}
break;
case 6:
index = position[i].replaceAll("排", "");
index = index.replaceAll("座", "");
break;
}
order_id += index;
order.setOrder_id(order_id);
order.setOrder_position(position[i]);
order.setSchedule_id(schedule_id);
order.setUser_id(user.getUser_id());
order.setOrder_price(order_price);
order.setOrder_time(new Date());
Integer rs = this.orderService.addOrder(order);
Integer rs1 = this.scheduleService.delScheduleRemain(schedule_id);
done++;
}
if(done == position.length) {
float sum = (float)price/10000;
Integer rs2 = this.movieService.changeMovieBoxOffice(sum, this.scheduleService.findScheduleById(schedule_id).getMovie_id());
obj.put("code",0);
obj.put("msg", "购票成功~");
}else {
obj.put("code",200);
obj.put("msg", "购票失败~");
}
}
return obj;
}
@RequestMapping("applyForRefund")
@ResponseBody
public JSONObject applyForRefund(@RequestParam("order_id")String order_id) {
JSONObject obj = new JSONObject();
Integer rs = orderService.updateOrderStateToRefund(order_id);
if(rs > 0) {
obj.put("code", 0);
obj.put("msg", "退票申请已发送~");
}else {
obj.put("code", 200);
obj.put("msg", "操作失败~");
}
return obj;
}
@RequestMapping("agreeForRefund")
@ResponseBody
public JSONObject agreeForRefund(@RequestParam("order_id")String order_id) {
JSONObject obj = new JSONObject();
Integer rs = this.orderService.updateOrderStateToRefunded(order_id);
if(rs > 0) {
Order order = this.orderService.findOrderById(order_id);
int price = order.getOrder_price();
long movie_id = order.getOrder_schedule().getMovie_id();
Integer rs2 = this.movieService.changeMovieBoxOffice((float)price/10000, movie_id);
obj.put("code", 0);
obj.put("msg", "退票成功");
}else {
obj.put("code", 200);
obj.put("msg", "退票失败");
}
return obj;
}
}
// 注入订单服务层接口,用于调用订单相关的业务逻辑方法
@Resource
private IOrderService orderService;
// 注入排片服务层接口,用于处理与排片相关的操作,比如座位数量增减等(在支付、退票成功时涉及)
@Resource
private IScheduleService scheduleService;
// 注入电影服务层接口,用于处理与电影相关的操作,比如票房增减等(在支付、退票成功时涉及)
@Resource
private IMovieService movieService;
/**
* ID
* IDJSON
* @param order_id ID
* @return JSONObject JSON
*/
@RequestMapping("findOrderById")
@ResponseBody
public JSONObject findOrderById(@RequestParam("order_id") String order_id) {
JSONObject obj = new JSONObject();
Order order = orderService.findOrderById(order_id);
List<Order> list = new ArrayList<Order>();
list.add(order);
obj.put("code", 0);
obj.put("msg", "");
obj.put("count", list.size());
obj.put("data", list);
return obj;
}
/**
*
* JSON
* @param page 1
* @param limit 10
* @param user_name
* @return JSONObject JSON
*/
@RequestMapping("findOrderByUserName")
@ResponseBody
public JSONObject findOrderByUserName(@RequestParam(value = "page", defaultValue = "1") Integer page,
@RequestParam(value = "limit", defaultValue = "10") Integer limit,
@RequestParam("user_name") String user_name) {
PageInfo<Order> info = orderService.findOrdersByUserName(page, limit, user_name);
JSONObject obj = new JSONObject();
obj.put("code", 0);
obj.put("msg", "");
obj.put("count", info.getTotal());
obj.put("data", info.getList());
return obj;
}
/**
* 退
* 退退退JSON
* @param user_name
* @return JSONObject 退JSON
*/
@RequestMapping("findRefundOrderByUser")
@ResponseBody
public JSONObject findRefundOrderByUser(@RequestParam("user_name") String user_name) {
JSONObject obj = new JSONObject();
List<Order> list = this.orderService.findRefundOrderByUserName(user_name);
obj.put("code", 0);
obj.put("msg", "");
obj.put("count", list.size());
obj.put("data", list);
return obj;
}
/**
*
* JSON
* @return JSONObject JSON
*/
@RequestMapping("findAllOrders")
@ResponseBody
public JSONObject findAllOrders() {
JSONObject obj = new JSONObject();
List<Order> list = orderService.findAllOrders();
obj.put("code", 0);
obj.put("msg", "");
obj.put("count", list.size());
obj.put("data", list);
return obj;
}
/**
*
* JSON
* @param page 1
* @param limit 10
* @param keyword
* @return JSONObject JSON
*/
@RequestMapping("findAllOrdersPage")
@ResponseBody
public JSONObject findAllOrdersPage(@RequestParam(value = "page", defaultValue = "1") Integer page,
@RequestParam(value = "limit", defaultValue = "10") Integer limit,
String keyword) {
PageInfo<Order> info = orderService.findAllOrdersBySplitPage(page, limit, keyword);
JSONObject obj = new JSONObject();
obj.put("code", 0);
obj.put("msg", "");
obj.put("count", info.getTotal());
obj.put("data", info.getList());
return obj;
}
/**
* 退
* 0退退退退JSON
* @param page 1
* @param limit 10
* @return JSONObject 退JSON
*/
@RequestMapping("findAllRefundOrder")
@ResponseBody
public JSONObject findAllRefundOrder(@RequestParam(value = "page", defaultValue = "1") Integer page,
@RequestParam(value = "limit", defaultValue = "10") Integer limit) {
JSONObject obj = new JSONObject();
PageInfo<Order> info = orderService.findOrdersByState(page, limit, 0);
obj.put("code", 0);
obj.put("msg", "");
obj.put("count", info.getTotal());
obj.put("data", info.getList());
return obj;
}
/**
*
* IDHttpServletRequest
* JSON
* @param schedule_id ID
* @param position[]
* @param price
* @param request HttpServletRequest
* @return JSONObject JSON
*/
@RequestMapping("buyTickets")
@ResponseBody
public JSONObject buyTickets(@RequestParam("schedule_id") long schedule_id,
@RequestParam("position[]") String[] position,
@RequestParam("price") int price,
HttpServletRequest request) {
User user = (User) request.getSession().getAttribute("user");
JSONObject obj = new JSONObject();
if (user == null) {
// 如果用户未登录,设置相应的状态码和提示信息
obj.put("code", 200);
obj.put("msg", "您未登录,登录之后才可购票~");
} else {
int done = 0;
// 计算每个座位的单价(总票价除以座位数量)
int order_price = price / position.length;
String user_id = "";
// 根据用户ID的长度进行格式化补0使其达到固定长度可能是为了生成订单ID等操作的格式统一需求
switch (String.valueOf(user.getUser_id()).length()) {
case 1:
user_id = "000" + String.valueOf(user.getUser_id());
break;
case 2:
user_id = "00" + String.valueOf(user.getUser_id());
break;
case 3:
user_id = "0" + String.valueOf(user.getUser_id());
break;
case 4:
user_id = String.valueOf(user.getUser_id());
break;
}
for (int i = 0; i < position.length; i++) {
Order order = new Order();
String order_id = "";
Date date = new Date();
SimpleDateFormat dateFormat = new SimpleDateFormat("YYYYMMdd");
// 生成订单ID的一部分使用当前日期格式化后的字符串
order_id += dateFormat.format(date);
order_id += user_id;
String index = "";
// 根据座位位置信息的长度不同,进行格式处理,去除"排"、"座"等文字并可能补0生成订单ID的另一部分
switch (position[i].length()) {
case 4:
index = "0" + position[i].replaceAll("排", "0");
index = index.replaceAll("座", "");
break;
case 5:
if (position[i].charAt(2) >= 48 && position[i].charAt(2) <= 57) {
index = "0" + position[i].replaceAll("排", "");
index = index.replaceAll("座", "");
} else {
index = position[i].replaceAll("排", "0");
index = index.replaceAll("座", "");
}
break;
case 6:
index = position[i].replaceAll("排", "");
index = index.replaceAll("座", "");
break;
}
order_id += index;
order.setOrder_id(order_id);
order.setOrder_position(position[i]);
order.setSchedule_id(schedule_id);
order.setUser_id(user.getUser_id());
order.setOrder_price(order_price);
order.setOrder_time(new Date());
// 调用订单服务层方法添加订单,返回受影响的行数
Integer rs = this.orderService.addOrder(order);
// 调用排片服务层方法减少对应排片的剩余座位数量
Integer rs1 = this.scheduleService.delScheduleRemain(schedule_id);
done++;
}
if (done == position.length) {
// 将票价转换为以万为单位的浮点数(可能是票房统计的单位要求)
float sum = (float) price / 10000;
// 调用电影服务层方法更新对应电影的票房(根据订单总价调整票房数值)
Integer rs2 = this.movieService.changeMovieBoxOffice(sum, this.scheduleService.findScheduleById(schedule_id).getMovie_id());
obj.put("code", 0);
obj.put("msg", "购票成功~");
} else {
obj.put("code", 200);
obj.put("msg", "购票失败~");
}
}
return obj;
}
/**
* 退
* ID退JSON
* @param order_id 退ID
* @return JSONObject 退JSON
*/
@RequestMapping("applyForRefund")
@ResponseBody
public JSONObject applyForRefund(@RequestParam("order_id") String order_id) {
JSONObject obj = new JSONObject();
Integer rs = orderService.updateOrderStateToRefund(order_id);
if (rs > 0) {
obj.put("code", 0);
obj.put("msg", "退票申请已发送~");
} else {
obj.put("code", 200);
obj.put("msg", "操作失败~");
}
return obj;
}
/**
* 退
* ID退JSON
* @param order_id 退ID
* @return JSONObject 退JSON
*/
@RequestMapping("agreeForRefund")
@ResponseBody
public JSONObject agreeForRefund(@RequestParam("order_id") String order_id) {
JSONObject obj = new JSONObject();
Integer rs = this.orderService.updateOrderStateToRefunded(order_id);
if (rs > 0) {
Order order = this.orderService.findOrderById(order_id);
int price = order.getOrder_price();
long movie_id = order.getOrder_schedule().getMovie_id();
// 将票价转换为以万为单位的浮点数(与票房统计的单位要求对应),并更新对应电影的票房
Integer rs2 = this.movieService.changeMovieBoxOffice((float) price / 10000, movie_id);
obj.put("code", 0);
obj.put("msg", "退票成功");
} else {
obj.put("code", 200);
obj.put("msg", "退票失败");
}
return obj;
}
}

@ -26,222 +26,310 @@ import com.service.IScheduleService;
@Controller
@RequestMapping("/schedule")
public class ScheduleController {
@Resource
private IScheduleService scheduleService;
@Resource
private IMovieService movieService;
@Resource
private ICinemaService cinemaService;
@Resource
private IHallService hallService;
@RequestMapping("findScheduleById")
@ResponseBody
public JSONObject findScheduleById(@RequestParam("schedule_id")long schedule_id) {
JSONObject obj = new JSONObject();
Schedule schedule = scheduleService.findScheduleById(schedule_id);
obj.put("code", 0);
obj.put("data",schedule);
return obj;
}
@RequestMapping("findAllScheduleByState")
@ResponseBody
public JSONObject findAllScheduleByState(@RequestParam(value="page",defaultValue="1")Integer page,@RequestParam(value="limit",defaultValue="10")Integer limit,@RequestParam("schedule_state")int schedule_state) {
JSONObject obj = new JSONObject();
PageInfo<Schedule> info = scheduleService.findAllScheduleByState(page, limit, schedule_state);
ArrayList<Integer> incomeArr = new ArrayList<Integer>();
for(int j = 0;j < info.getList().size();j++) {
List<Order> orderList = info.getList().get(j).getOrderList();
int income = 0;
for(int i = 0;i < orderList.size();i++) {
income += orderList.get(i).getOrder_price();
}
incomeArr.add(income);
}
obj.put("code", 0);
obj.put("count", info.getTotal());
obj.put("data", info.getList());
obj.put("income", incomeArr);
return obj;
}
@RequestMapping("findAllSchedule")
@ResponseBody
public JSONObject findAllSchedule(@RequestParam(value="page",defaultValue="1")Integer page,@RequestParam(value="limit",defaultValue="10")Integer limit) {
JSONObject obj = new JSONObject();
PageInfo<Schedule> info = scheduleService.findAllSchedule(page, limit);
List<Movie> movieList = movieService.findAllMovies(1);
List<Cinema> cinemaList = cinemaService.findAllCinemas();
ArrayList<String> movieArr = new ArrayList<String>();
ArrayList<Integer> incomeArr = new ArrayList<Integer>();
for(int j = 0;j < info.getList().size();j++) {
List<Order> orderList = info.getList().get(j).getOrderList();
int income = 0;
for(int i = 0;i < orderList.size();i++) {
income += orderList.get(i).getOrder_price();
}
incomeArr.add(income);
}
for(int i = 0;i < movieList.size();i++) {
movieArr.add(movieList.get(i).getMovie_cn_name());
}
ArrayList<Object> cinema = new ArrayList<>();
for(int i = 0;i < cinemaList.size();i++) {
JSONObject cinemaObj = new JSONObject();
List<Hall> hallList = hallService.findHallByCinemaId(cinemaList.get(i).getCinema_id());
ArrayList<String> hallArr = new ArrayList<String>();
for(int j = 0;j < hallList.size();j++) {
hallArr.add(hallList.get(j).getHall_name());
}
cinemaObj.put(cinemaList.get(i).getCinema_name(), hallList);
cinema.add(cinemaObj);
}
obj.put("code", 0);
obj.put("count", info.getTotal());
obj.put("data", info.getList());
obj.put("movieName", movieArr);
obj.put("cinema", cinema);
obj.put("income", incomeArr);
return obj;
}
@RequestMapping("findScheduleByMovieName")
@ResponseBody
public JSONObject findScheduleByMovieName(@RequestParam(value="page",defaultValue="1")Integer page,@RequestParam(value="limit",defaultValue="10")Integer limit,@RequestParam("movie_name")String movie_name) {
JSONObject obj = new JSONObject();
PageInfo<Schedule> info = scheduleService.findScheduleByMovieName(page,limit,movie_name);
ArrayList<Integer> incomeArr = new ArrayList<Integer>();
for(int j = 0;j < info.getList().size();j++) {
List<Order> orderList = info.getList().get(j).getOrderList();
int income = 0;
for(int i = 0;i < orderList.size();i++) {
income += orderList.get(i).getOrder_price();
}
incomeArr.add(income);
}
obj.put("code", 0);
obj.put("count", info.getTotal());
obj.put("data", info.getList());
obj.put("income", incomeArr);
return obj;
}
@RequestMapping("findOffScheduleByMovieName")
@ResponseBody
public JSONObject findOffScheduleByMovieName(@RequestParam(value="page",defaultValue="1")Integer page,@RequestParam(value="limit",defaultValue="10")Integer limit,@RequestParam("movie_name")String movie_name) {
JSONObject obj = new JSONObject();
PageInfo<Schedule> info = scheduleService.findOffScheduleByMovieName(page, limit, movie_name);
ArrayList<Integer> incomeArr = new ArrayList<Integer>();
for(int j = 0;j < info.getList().size();j++) {
List<Order> orderList = info.getList().get(j).getOrderList();
int income = 0;
for(int i = 0;i < orderList.size();i++) {
income += orderList.get(i).getOrder_price();
}
incomeArr.add(income);
}
obj.put("code", 0);
obj.put("count", info.getTotal());
obj.put("data", info.getList());
obj.put("income", incomeArr);
return obj;
}
@RequestMapping("findScheduleByCinemaAndMovie")
@ResponseBody
public JSONObject findScheduleByCinemaAndMovie(@RequestParam("cinema_id")long cinema_id,@RequestParam("movie_id")long movie_id) {
JSONObject obj = new JSONObject();
List<Schedule> list = scheduleService.findScheduleByCineamIdAndMovieId(cinema_id, movie_id);
obj.put("code",0);
obj.put("count",list.size());
obj.put("data", list);
return obj;
}
@RequestMapping("addSchedule")
@ResponseBody
public JSONObject addSchedule(@RequestParam("movie_name")String movie_name,@RequestParam("hall_name")String hall_name,@RequestParam("cinema_name")String cinema_name,
@RequestParam("schedule_price")int schedule_price,@RequestParam("schedule_startTime")String schedule_startTime) {
JSONObject obj = new JSONObject();
Schedule schedule = new Schedule();
Hall hall = this.hallService.findHallByCinemaAndHallName(cinema_name, hall_name);
schedule.setMovie_id(this.movieService.findMovieByName(movie_name).getMovie_id());
schedule.setHall_id(hall.getHall_id());
schedule.setSchedule_price(schedule_price);
schedule.setSchedule_startTime(schedule_startTime);
schedule.setSchedule_remain(hall.getHall_capacity());
Integer rs = this.scheduleService.addSchedule(schedule);
if(rs > 0) {
obj.put("code", 0);
obj.put("mgs", "增加成功~");
}else {
obj.put("code", 200);
obj.put("mgs", "增加失败~");
}
return obj;
}
@RequestMapping("updateSchedulePrice")
@ResponseBody
public JSONObject updateSchedulePrice(@RequestParam("schedule_id")long schedule_id,@RequestParam("schedule_price")int schedule_price) {
JSONObject obj = new JSONObject();
Schedule schedule = new Schedule();
schedule.setSchedule_id(schedule_id);
schedule.setSchedule_price(schedule_price);
Integer rs = this.scheduleService.updateSchedule(schedule);
if(rs > 0) {
obj.put("code", 0);
obj.put("mgs", "修改成功~");
}else {
obj.put("code", 200);
obj.put("mgs", "修改失败~");
}
return obj;
}
@RequestMapping("offlineSchedule")
@ResponseBody
public JSONObject offlineSchedule(@RequestParam("schedule_id")long schedule_id) {
JSONObject obj = new JSONObject();
Integer rs = this.scheduleService.deleteSchedule(schedule_id);
if(rs > 0) {
obj.put("code", 0);
obj.put("mgs", "下架成功~");
}else {
obj.put("code", 200);
obj.put("mgs", "下架失败~");
}
return obj;
}
/**
* Api id
* @param movie_id
* @return
*/
@RequestMapping("findCinemasByMovieId")
@ResponseBody
public JSONObject findCinemasByMovieId(@RequestParam("movie_id")long movie_id) {
JSONObject obj = new JSONObject();
List<Cinema> list = this.cinemaService.findCinemasByMovieId(movie_id);
obj.put("code", 0);
obj.put("count", list.size());
obj.put("data", list);
return obj;
}
/**
* api
*/
@RequestMapping("testHall")
@ResponseBody
public JSONObject testHall(@RequestParam("hall_name")String hall_name,@RequestParam("cinema_name")String cinema_name) {
Hall hall = this.hallService.findHallByCinemaAndHallName(cinema_name, hall_name);
JSONObject obj = new JSONObject();
obj.put("data", hall);
return obj;
}
}
// 注入排片服务层接口,用于调用排片相关的业务逻辑方法
@Resource
private IScheduleService scheduleService;
// 注入电影服务层接口可能用于获取电影相关信息等操作比如根据电影名称查找电影ID等
@Resource
private IMovieService movieService;
// 注入影院服务层接口,用于获取影院相关信息(如查找影院列表、根据电影查找放映该电影的影院等)
@Resource
private ICinemaService cinemaService;
// 注入影厅服务层接口用于获取影厅相关信息如根据影院和影厅名称查找影厅、根据影院ID查找影厅列表等
@Resource
private IHallService hallService;
/**
* ID
* IDJSON
* @param schedule_id ID
* @return JSONObject JSON
*/
@RequestMapping("findScheduleById")
@ResponseBody
public JSONObject findScheduleById(@RequestParam("schedule_id") long schedule_id) {
JSONObject obj = new JSONObject();
Schedule schedule = scheduleService.findScheduleById(schedule_id);
obj.put("code", 0);
obj.put("data", schedule);
return obj;
}
/**
*
*
* JSON
* @param page 1
* @param limit 10
* @param schedule_state
* @return JSONObject JSON
*/
@RequestMapping("findAllScheduleByState")
@ResponseBody
public JSONObject findAllScheduleByState(@RequestParam(value = "page", defaultValue = "1") Integer page,
@RequestParam(value = "limit", defaultValue = "10") Integer limit,
@RequestParam("schedule_state") int schedule_state) {
JSONObject obj = new JSONObject();
PageInfo<Schedule> info = scheduleService.findAllScheduleByState(page, limit, schedule_state);
ArrayList<Integer> incomeArr = new ArrayList<Integer>();
for (int j = 0; j < info.getList().size(); j++) {
List<Order> orderList = info.getList().get(j).getOrderList();
int income = 0;
for (int i = 0; i < orderList.size(); i++) {
income += orderList.get(i).getOrder_price();
}
incomeArr.add(income);
}
obj.put("code", 0);
obj.put("count", info.getTotal());
obj.put("data", info.getList());
obj.put("income", incomeArr);
return obj;
}
/**
*
*
*
* JSON
* @param page 1
* @param limit 10
* @return JSONObject JSON
*/
@RequestMapping("findAllSchedule")
@ResponseBody
public JSONObject findAllSchedule(@RequestParam(value = "page", defaultValue = "1") Integer page,
@RequestParam(value = "limit", defaultValue = "10") Integer limit) {
JSONObject obj = new JSONObject();
PageInfo<Schedule> info = scheduleService.findAllSchedule(page, limit);
List<Movie> movieList = movieService.findAllMovies(1);
List<Cinema> cinemaList = cinemaService.findAllCinemas();
ArrayList<String> movieArr = new ArrayList<String>();
ArrayList<Integer> incomeArr = new ArrayList<Integer>();
for (int j = 0; j < info.getList().size(); j++) {
List<Order> orderList = info.getList().get(j).getOrderList();
int income = 0;
for (int i = 0; i < orderList.size(); i++) {
income += orderList.get(i).getOrder_price();
}
incomeArr.add(income);
}
for (int i = 0; i < movieList.size(); i++) {
movieArr.add(movieList.get(i).getMovie_cn_name());
}
ArrayList<Object> cinema = new ArrayList<>();
for (int i = 0; i < cinemaList.size(); i++) {
JSONObject cinemaObj = new JSONObject();
List<Hall> hallList = hallService.findHallByCinemaId(cinemaList.get(i).getCinema_id());
ArrayList<String> hallArr = new ArrayList<String>();
for (int j = 0; j < hallList.size(); j++) {
hallArr.add(hallList.get(j).getHall_name());
}
cinemaObj.put(cinemaList.get(i).getCinema_name(), hallList);
cinema.add(cinemaObj);
}
obj.put("code", 0);
obj.put("count", info.getTotal());
obj.put("data", info.getList());
obj.put("movieName", movieArr);
obj.put("cinema", cinema);
obj.put("income", incomeArr);
return obj;
}
/**
*
*
* JSON
* @param page 1
* @param limit 10
* @param movie_name
* @return JSONObject JSON
*/
@RequestMapping("findScheduleByMovieName")
@ResponseBody
public JSONObject findScheduleByMovieName(@RequestParam(value = "page", defaultValue = "1") Integer page,
@RequestParam(value = "limit", defaultValue = "10") Integer limit,
@RequestParam("movie_name") String movie_name) {
JSONObject obj = new JSONObject();
PageInfo<Schedule> info = scheduleService.findScheduleByMovieName(page, limit, movie_name);
ArrayList<Integer> incomeArr = new ArrayList<Integer>();
for (int j = 0; j < info.getList().size(); j++) {
List<Order> orderList = info.getList().get(j).getOrderList();
int income = 0;
for (int i = 0; i < orderList.size(); i++) {
income += orderList.get(i).getOrder_price();
}
incomeArr.add(income);
}
obj.put("code", 0);
obj.put("count", info.getTotal());
obj.put("data", info.getList());
obj.put("income", incomeArr);
return obj;
}
/**
*
*
* JSON
* @param page 1
* @param limit defaultValue="10") Integer limit,
@RequestParam("movie_name") String movie_name) {
JSONObject obj = new JSONObject();
PageInfo<Schedule> info = scheduleService.findOffScheduleByMovieName(page, limit, movie_name);
ArrayList<Integer> incomeArr = new ArrayList<Integer>();
for (int j = 0; j < info.getList().size(); j++) {
List<Order> orderList = info.getList().get(j).getOrderList();
int income = 0;
for (int i = 0; i < orderList.size(); i++) {
income += orderList.get(i).getOrder_price();
}
incomeArr.add(income);
}
obj.put("code", 0);
obj.put("count", info.getTotal());
obj.put("data", info.getList());
obj.put("income", incomeArr);
return obj;
}
/**
* IDID
* IDIDJSON
* @param cinema_id ID
* @param movie_id ID
* @return JSONObject JSON
*/
@RequestMapping("findScheduleByCinemaAndMovie")
@ResponseBody
public JSONObject findScheduleByCinemaAndMovie(@RequestParam("cinema_id") long cinema_id,
@RequestParam("movie_id") long movie_id) {
JSONObject obj = new JSONObject();
List<Schedule> list = scheduleService.findScheduleByCineamIdAndMovieId(cinema_id, movie_id);
obj.put("code", 0);
obj.put("count", list.size());
obj.put("data", list);
return obj;
}
/**
*
* IDID
* JSON
* @param movie_name ID
* @param hall_name ID
* @param cinema_name
* @param schedule_price
* @param schedule_startTime
* @return JSONObject JSON
*/
@RequestMapping("addSchedule")
@ResponseBody
public JSONObject addSchedule(@RequestParam("movie_name") String movie_name,
@RequestParam("hall_name") String hall_name,
@RequestParam("cinema_name") String cinema_name,
@RequestParam("schedule_price") int schedule_price,
@RequestParam("schedule_startTime") String schedule_startTime) {
JSONObject obj = new JSONObject();
Schedule schedule = new Schedule();
Hall hall = this.hallService.findHallByCinemaAndHallName(cinema_name, hall_name);
schedule.setMovie_id(this.movieService.findMovieByName(movie_name).getMovie_id());
schedule.setHall_id(hall.getHall_id());
schedule.setSchedule_price(schedule_price);
schedule.setSchedule_startTime(schedule_startTime);
schedule.setSchedule_remain(hall.getHall_capacity());
Integer rs = this.scheduleService.addSchedule(schedule);
if (rs > 0) {
obj.put("code", 0);
obj.put("mgs", "增加成功~");
} else {
obj.put("code", 200);
obj.put("mgs", "增加失败~");
}
return obj;
}
/**
*
* ID
* JSON
* @param schedule_id ID
* @param schedule_price
* @return JSONObject JSON
*/
@RequestMapping("updateSchedulePrice")
@ResponseBody
public JSONObject updateSchedulePrice(@RequestParam("schedule_id") long schedule_id,
@RequestParam("schedule_price") int schedule_price) {
JSONObject obj = new JSONObject();
Schedule schedule = new Schedule();
schedule.setSchedule_id(schedule_id);
schedule.setSchedule_price(schedule_price);
Integer rs = this.scheduleService.updateSchedule(schedule);
if (rs > 0) {
obj.put("code", 0);
obj.put("mgs", "修改成功~");
} else {
obj.put("code", 200);
obj.put("mgs", "修改失败~");
}
return obj;
}
/**
*
* IDJSON
* @param schedule_id ID
* @return JSONObject JSON
*/
@RequestMapping("offlineSchedule")
@ResponseBody
public JSONObject offlineSchedule(@RequestParam("schedule_id") long schedule_id) {
JSONObject obj = new JSONObject();
Integer rs = this.scheduleService.deleteSchedule(schedule_id);
if (rs > 0) {
obj.put("code", 0);
obj.put("mgs", "下架成功~");
} else {
obj.put("code", 200);
obj.put("mgs", "下架失败~");
}
return obj;
}
/**
* Api id
* IDJSON
* @param movie_id ID
* @return JSONObject JSON
*/
@RequestMapping("findCinemasByMovieId")
@ResponseBody
public JSONObject findCinemasByMovieId(@RequestParam("movie_id") long movie_id) {
JSONObject obj = new JSONObject();
List<Cinema> list = this.cinemaService.findCinemasByMovieId(movie_id);
obj.put("code", 0);
obj.put("count", list.size());
obj.put("data", list);
return obj;
}
/**
* api
* JSON
* @param hall_name
* @param cinema_name
* @return JSONObject JSON
*/
@RequestMapping("testHall")
@ResponseBody
public JSONObject testHall(@RequestParam("hall_name") String hall_name,
@RequestParam("cinema_name") String cinema_name) {
Hall hall = this.hallService.findHallByCinemaAndHallName(cinema_name, hall_name);
JSONObject obj = new JSONObject();
obj.put("data", hall);
return obj;
}
}

@ -24,189 +24,269 @@ import com.entity.User;
import com.github.pagehelper.PageInfo;
import com.service.IUserService;
import com.util.UUIDUtil;
/**
*
* update: 20197917:18:50
*
*
* update: 20197917:18:50
* @author Wxj
*/
@Controller
@RequestMapping("/user")
public class UserController {
//@Autowired
@Resource
private IUserService userService;
@RequestMapping("login")
@ResponseBody
public JSONObject login(String user_name,String user_pwd,HttpServletRequest request) {
JSONObject obj = new JSONObject();
User user = userService.login(user_name, user_pwd);
if(user != null) {
HttpSession session = request.getSession();
session.setAttribute("user", user);
if(user.getUser_role() == 0) {
obj.put("msg", "usersuccess");
obj.put("data", user);
return obj;
}else {
obj.put("msg", "adminsuccess");
obj.put("data", user);
return obj;
}
}
obj.put("msg", "fail");
return obj;
}
@RequestMapping("logout")
@ResponseBody
public String logout(HttpServletRequest request) {
HttpSession session = request.getSession();
session.removeAttribute("user");
return "index";
}
@RequestMapping("register")
@ResponseBody
public String register(User user) {
List<User> list = userService.findUserByName(user.getUser_name());
if(list.size() > 0) {
return "fail";
}else {
Integer rs = userService.addUser(user);
if(rs > 0) {
return "success";
}else {
return "fail";
}
}
}
@RequestMapping("updateUser")
@ResponseBody
public String updateUser(User user) {
Integer rs = userService.updateUserInfo(user);
if(rs > 0) {
return "success";
}else {
return "fail";
}
}
@RequestMapping("modifyUserPwd")
@ResponseBody
public String modifyUserPwd(@RequestParam("oldPwd")String oldPwd,@RequestParam("newPwd")String newPwd,HttpServletRequest request) {
HttpSession session = request.getSession();
User user = (User)session.getAttribute("user");
if(user.getUser_pwd().equals(oldPwd)) {
user.setUser_pwd(newPwd);
userService.updateUserInfo(user);
session.removeAttribute("user");
return "success";
}else {
return "fail";
}
}
@RequestMapping("findAllUser")
@ResponseBody
public JSONObject findAllUser(@RequestParam(value="page",defaultValue="1")Integer page,@RequestParam(value="limit",defaultValue="10")Integer limit,String keyword) {
PageInfo<User> info = userService.findAllUserBySplitPage(page, limit, keyword);
JSONObject obj = new JSONObject();
obj.put("msg", "");
obj.put("code", 0);
obj.put("count", info.getTotal());
obj.put("data", info.getList());
return obj;
}
@RequestMapping("findAllUserInfos")
@ResponseBody
public JSONObject findAllUserInfos() {
JSONObject obj = new JSONObject();
List<User> list = userService.findAllUserInfos();
obj.put("msg","");
obj.put("code",0);
obj.put("count",list.size());
obj.put("data", list);
return obj;
}
@RequestMapping("findUserInfosByName")
@ResponseBody
public JSONObject findUserInfosByName(@RequestParam("user_name")String user_name) {
JSONObject obj = new JSONObject();
List<User> list = userService.findUserLikeName(user_name);
obj.put("msg","");
obj.put("code",0);
obj.put("count",list.size());
obj.put("data", list);
return obj;
}
@RequestMapping("/uploadHeadImg")
@ResponseBody
public JSONObject uploadHeadImg(@RequestParam(value="file",required=false) MultipartFile file,User user,HttpServletRequest request) throws IOException {
JSONObject obj = new JSONObject();
if(file != null) {
String str = file.getOriginalFilename();
System.out.println("file:"+str);
String name = UUIDUtil.getUUID() + str.substring(str.lastIndexOf("."));
System.out.println("name:"+name);
String path = request.getServletContext().getRealPath("/upload/head") + "/" + name;
System.out.println("path:"+path);
String filePath = "../upload/head/" + name;
user.setUser_headImg(filePath);
file.transferTo(new File(path));
System.out.println("文件写入成功,Path:" + path);
}else {
user.setUser_headImg(this.userService.findUserById(user.getUser_id()).getUser_headImg());
user.setUser_pwd(this.userService.findUserById(user.getUser_id()).getUser_pwd());
}
Integer rs = userService.updateUserInfo(user);
if(rs > 0) {
obj.put("code", 0);
obj.put("msg", "");
obj.put("data",user);
}else {
obj.put("code", 200);
obj.put("msg", "");
}
return obj;
}
/**
* Api
* @param file
* @param user_name
* @param request
* @return
*/
@RequestMapping("test")
@ResponseBody
public JSONObject uploadImg(@RequestParam(value="file",required=false) MultipartFile file,@RequestParam("user_name")String user_name,HttpServletRequest request) {
System.out.println(file);
JSONObject obj = new JSONObject();
if(file == null) {
System.out.println("null");
}else {
String str = file.getOriginalFilename();
System.out.println("file:"+str);
String name = UUIDUtil.getUUID() + str.substring(str.lastIndexOf("."));
System.out.println("name:"+name);
String path = request.getServletContext().getRealPath("/upload/head") + "/" + name;
System.out.println("path:"+path);
String filePath = "upload/head/" + name;
System.out.println(filePath);
try {
file.transferTo(new File(path));
System.out.println("文件写入成功,Path:" + path);
}catch(IOException ex) {
ex.printStackTrace();
}
obj.put("file", name);
obj.put("user_name",user_name);
}
return obj;
}
}
// 注入用户服务层接口,用于调用用户相关的业务逻辑方法
// 此处原本使用了 @Autowired 注解,后改为 @Resource 注解,用于实现依赖注入
// @Resource 注解默认按照名称进行装配如果没有指定名称则按照属性名进行匹配查找对应的Bean
@Resource
private IUserService userService;
/**
*
*
* Session
*
* @param user_name
* @param user_pwd
* @param request HttpServletRequest
* @return JSONObject JSON
*/
@RequestMapping("login")
@ResponseBody
public JSONObject login(String user_name, String user_pwd, HttpServletRequest request) {
JSONObject obj = new JSONObject();
User user = userService.login(user_name, user_pwd);
if (user!= null) {
HttpSession session = request.getSession();
session.setAttribute("user", user);
if (user.getUser_role() == 0) {
obj.put("msg", "usersuccess");
obj.put("data", user);
return obj;
} else {
obj.put("msg", "adminsuccess");
obj.put("data", user);
return obj;
}
}
obj.put("msg", "fail");
return obj;
}
/**
*
* HttpServletRequestSession "index"
* @param request HttpServletRequest
* @return String "index"
*/
@RequestMapping("logout")
@ResponseBody
public String logout(HttpServletRequest request) {
HttpSession session = request.getSession();
session.removeAttribute("user");
return "index";
}
/**
*
*
* 0 "fail"
* 0 "success" "fail"
* @param user User
* @return String "success" "fail"
*/
@RequestMapping("register")
@ResponseBody
public String register(User user) {
List<User> list = userService.findUserByName(user.getUser_name());
if (list.size() > 0) {
return "fail";
} else {
Integer rs = userService.addUser(user);
if (rs > 0) {
return "success";
} else {
return "fail";
}
}
}
/**
*
*
* 0 "success" "fail"
* @param user User
* @return String "success" "fail"
*/
@RequestMapping("updateUser")
@ResponseBody
public String updateUser(User user) {
Integer rs = userService.updateUserInfo(user);
if (rs > 0) {
return "success";
} else {
return "fail";
}
}
/**
*
* HttpServletRequest
* "success"
* "fail"
* @param oldPwd
* @param newPwd
* @param request HttpServletRequest
* @return String "success" "fail"
*/
@RequestMapping("modifyUserPwd")
@ResponseBody
public String modifyUserPwd(@RequestParam("oldPwd") String oldPwd, @RequestParam("oldPwd") String newPwd, HttpServletRequest request) {
HttpSession session = request.getSession();
User user = (User) session.getAttribute("user");
if (user.getUser_pwd().equals(oldPwd)) {
user.setUser_pwd(newPwd);
userService.updateUserInfo(user);
session.removeAttribute("user");
return "success";
} else {
return "fail";
}
}
/**
*
* JSON
* @param page 1
* @param limit 10
* @param keyword
* @return JSONObject JSON
*/
@RequestMapping("findAllUser")
@ResponseBody
public JSONObject findAllUser(@RequestParam(value = "page", defaultValue = "1") Integer page,
@RequestParam(value = "limit", defaultValue = "10") Integer pageSize,
String keyword) {
PageInfo<User> info = userService.findAllUserBySplitPage(page, limit, keyword);
JSONObject obj = new JSONObject();
obj.put("msg", "");
obj.put("code", 0);
obj.put("count", info.getTotal());
obj.put("data", info.getList());
return obj;
}
/**
*
* JSON
* @return JSONObject JSON
*/
@RequestMapping("findAllUserInfos")
@ResponseBody
public JSONObject findAllUserInfos() {
JSONObject obj = new JSONObject();
List<User> list = userService.findAllUserInfos();
obj.put("msg", "");
obj.put("code", 0);
obj.put("count", list.size());
obj.put("data", list);
return obj;
}
/**
*
* JSON
* @param user_name
* @return JSONObject JSON
*/
@RequestMapping("findUserInfosByName")
@ResponseBody
public JSONObject findUserInfosByName(@RequestParam("user_name") String user_name) {
JSONObject obj = new JSONObject();
List<User> list = userService.findUserLikeName(user_name);
obj.put("msg", "");
obj.put("code", 0);
obj.put("count", list.size());
obj.put("data", list);
return obj;
}
/**
*
*
* 使
* 0JSON
* @param file
* @param user IDUser
* @param request HttpServletRequest
* @return JSONObject JSON
* @throws IOException IO
*/
@RequestMapping("/uploadHeadImg")
@ResponseBody
public JSONObject uploadHeadImg(@RequestParam(value = "file", required = false) MultipartFile file, User user, HttpServletRequest request) throws IOException {
JSONObject obj = new JSONObject();
if (file!= null) {
String str = file.getOriginalFilename();
System.out.println("file:" + str);
String name = UUIDUtil.getUUID() + str.substring(str.lastIndexOf("."));
System.out.println("name:" + name);
String path = request.getServletContext().getRealPath("/upload/head") + "/" + name;
System.out.println("path:" + path);
String filePath = "../upload/head/" + name;
user.setUser_headImg(filePath);
file.transferTo(new File(path));
System.out.println("文件写入成功,Path:" + path);
} else {
user.setUser_headImg(this.userService.findUserById(user.getUser_id()).getUser_headImg());
user.setUser_pwd(this.userService.findUserById(user.getUser_id()).getUser_pwd());
}
Integer rs = userService.updateUserInfo(user);
if (rs > 0) {
obj.put("code", 0);
obj.put("msg", "");
obj.put("data", user);
} else {
obj.put("code", 200);
obj.put("msg", "");
}
return obj;
}
/**
* Api
* JSON
* "null"
* @param file
* @param user_name
* @param request HttpServletRequest
* @return JSONObject JSON
*/
@RequestMapping("test")
@ResponseBody
public JSONObject uploadImg(@RequestParam(value = "file", required = false) MultipartFile file, @RequestParam("user_name") String user_name, HttpServletRequest request) {
System.out.println(file);
JSONObject obj = new JSONObject();
if (file == null) {
System.out.println("null");
} else {
String str = file.getOriginalFilename();
System.out.println("file:" + str);
String name = UUIDUtil.getUUID() + str.substring(str.lastIndexOf("."));
System.out.println("name:" + name);
String path = request.getServletContext().getRealPath("/upload/head") + "/" + name;
System.out.println("path:" + path);
String filePath = "upload/head/" + name;
System.out.println(filePath);
try {
file.transferTo(new File(path));
System.out.println("文件写入成功,Path:" + path);
} catch (IOException ex) {
ex.printStackTrace();
}
obj.put("file", name);
obj.put("user_name", user_name);
}
return obj;
}
}

@ -4,38 +4,84 @@ import java.util.List;
/**
*
*
* @author Wxj
*/
public class Cinema {
private long cinema_id;
private String cinema_name; //影院名称
private String cinema_address; //影院地址
private List<Hall> hallList; //所有的放映厅集合
public long getCinema_id() {
return cinema_id;
}
public void setCinema_id(long cinema_id) {
this.cinema_id = cinema_id;
}
public String getCinema_name() {
return cinema_name;
}
public void setCinema_name(String cinema_name) {
this.cinema_name = cinema_name;
}
public String getCinema_address() {
return cinema_address;
}
public void setCinema_address(String cinema_address) {
this.cinema_address = cinema_address;
}
public List<Hall> getHallList() {
return hallList;
}
public void setHallList(List<Hall> hallList) {
this.hallList = hallList;
}
}
// 电影院在数据库中的唯一标识,用于区分不同的电影院记录
private long cinema_id;
// 用于存储电影院的名称,展示给用户查看或用于其他业务逻辑中对影院的识别等操作
private String cinema_name; //影院名称
// 用于存储电影院的具体地址信息,方便用户查找影院位置等相关功能使用
private String cinema_address; //影院地址
// 用于存储该电影院下所有放映厅的集合,通过这个属性可以关联获取该影院包含的各个放映厅的详细信息,比如厅名、座位数等
private List<Hall> hallList; //所有的放映厅集合
/**
* ID
* @return long cinema_idID
*/
public long getCinema_id() {
return cinema_id;
}
/**
* ID
* @param cinema_id long ID
*/
public void setCinema_id(long cinema_id) {
this.cinema_id = cinema_id;
}
/**
*
* @return String cinema_name
*/
public String getCinema_name() {
return cinema_name;
}
/**
*
* @param cinema_name String
*/
public void setCinema_name(String cinema_name) {
this.cinema_name = cinema_name;
}
/**
*
* @return String cinema_address
*/
public String getCinema_address() {
return cinema_address;
}
/**
*
* @param cinema_address String
*/
public void setCinema_address(String cinema_address) {
this.cinema_address = cinema_address;
}
/**
*
* @return List<Hall> hallList
*/
public List<Hall> getHallList() {
return hallList;
}
/**
*
* @param hallList List<Hall>
*/
public void setHallList(List<Hall> hallList) {
this.hallList = hallList;
}
}

@ -1,53 +1,123 @@
package com.entity;
/**
*
*
* @author Wxj
*/
public class Comment {
import java.util.Date;
// 评论在数据库中的唯一标识,用于区分不同的评论记录
private long comment_id;
public class Comment {
private long comment_id;
private long user_id; //所属用户编号
private String comment_content; //评论内容
private long movie_id; //所属电影编号
private Date comment_time; //评论时间
private User comment_user; //所属用户
public long getComment_id() {
return comment_id;
}
public void setComment_id(long comment_id) {
this.comment_id = comment_id;
}
public long getUser_id() {
return user_id;
}
public void setUser_id(long user_id) {
this.user_id = user_id;
}
public String getComment_content() {
return comment_content;
}
public void setComment_content(String comment_content) {
this.comment_content = comment_content;
}
public long getMovie_id() {
return movie_id;
}
public void setMovie_id(long movie_id) {
this.movie_id = movie_id;
}
public Date getComment_time() {
return comment_time;
}
public void setComment_time(Date comment_time) {
this.comment_time = comment_time;
}
public User getComment_user() {
return comment_user;
}
public void setComment_user(User comment_user) {
this.comment_user = comment_user;
}
}
// 用于存储发表该评论的用户在用户表中的编号,通过这个编号可以关联到具体是哪个用户发表的评论,方便查询用户相关信息等操作
private long user_id; //所属用户编号
// 用于存储评论的具体文本内容,也就是用户实际输入发表的对某事物(此处通常关联电影)的看法、评价等文字信息
private String comment_content; //评论内容
// 用于存储该评论所属电影在电影表中的编号,通过这个编号可以关联到具体是针对哪部电影发表的评论,便于后续按电影查看评论等功能实现
private long movie_id; //所属电影编号
// 用于存储评论发表的时间,以 Date 类型记录具体的时间点,可用于排序、筛选不同时间段的评论等业务逻辑操作
private Date comment_time; //评论时间
// 用于存储发表该评论的用户对象,通过关联用户实体类,可以更方便地获取发表评论用户的详细信息(如用户名、头像等),不过这可能涉及到对象关联加载等额外操作,具体取决于业务场景和数据获取方式
private User comment_user; //所属用户
/**
* ID
* @return long comment_idID
*/
public long getComment_id() {
return comment_id;
}
/**
* ID
* @param comment_id long ID
*/
public void setComment_id(long comment_id) {
this.comment_id = comment_id;
}
/**
*
* @return long user_id
*/
public long getUser_id() {
return user_id;
}
/**
*
* @param user_id long
*/
public void setUser_id(long user_id) {
this.user_id = user_id;
}
/**
*
* @return String comment_content
*/
public String getComment_content() {
return comment_content;
}
/**
*
* @param comment_content String
*/
public void setComment_content(String comment_content) {
this.comment_content = comment_content;
}
/**
*
* @return long movie_id
*/
public long getMovie_id() {
return movie_id;
}
/**
*
* @param movie_id long
*/
public void setMovie_id(long movie_id) {
this.movie_id = movie_id;
}
/**
*
* @return Date comment_time
*/
public Date getComment_time() {
return comment_time;
}
/**
*
* @param comment_time Date
*/
public void setComment_time(Date comment_time) {
this.comment_time = comment_time;
}
/**
*
* @return User comment_user
*/
public User getComment_user() {
return comment_user;
}
/**
*
* @param comment_user User
*/
public void setComment_user(User comment_user) {
this.comment_user = comment_user;
}
}

@ -4,51 +4,122 @@ import java.util.List;
/**
*
*
* @author Wxj
*/
public class Hall {
private long hall_id;
private String hall_name; //放映厅名称
private int hall_capacity; //放映厅容量
private long cinema_id; //所属影院编号
private Cinema hall_cinema; //所属影院
private List<Schedule> ScheduleList; //所有的电影场次集合
public long getHall_id() {
return hall_id;
}
public void setHall_id(long hall_id) {
this.hall_id = hall_id;
}
public List<Schedule> getScheduleList() {
return ScheduleList;
}
public void setScheduleList(List<Schedule> scheduleList) {
ScheduleList = scheduleList;
}
public Cinema getHall_cinema() {
return hall_cinema;
}
public void setHall_cinema(Cinema hall_cinema) {
this.hall_cinema = hall_cinema;
}
public String getHall_name() {
return hall_name;
}
public void setHall_name(String hall_name) {
this.hall_name = hall_name;
}
public int getHall_capacity() {
return hall_capacity;
}
public void setHall_capacity(int hall_capacity) {
this.hall_capacity = hall_capacity;
}
public long getCinema_id() {
return cinema_id;
}
public void setCinema_id(long cinema_id) {
this.cinema_id = cinema_id;
}
}
// 放映厅在数据库中的唯一标识,用于区分不同的放映厅记录,方便在系统中对各个放映厅进行唯一的指代和操作
private long hall_id;
// 用于存储放映厅的名称,方便用户识别和选择不同的放映厅,通常会展示给用户查看场次信息等时使用
private String hall_name; //放映厅名称
// 用于存储放映厅能够容纳的观众人数,这个属性可以用于判断座位是否已满、统计可售票数等业务逻辑中
private int hall_capacity; //放映厅容量
// 用于存储该放映厅所属影院在影院表中的编号,通过这个编号可以关联到具体的影院信息,建立放映厅与影院之间的所属关系
private long cinema_id; //所属影院编号
// 用于存储该放映厅所属的影院对象,通过关联影院实体类,可以更方便地获取所属影院的详细信息(如影院名称、地址等),便于进行相关业务操作和信息展示
private Cinema hall_cinema; //所属影院
// 用于存储该放映厅安排的所有电影场次的集合,通过这个属性可以获取该放映厅在不同时间放映的电影情况,方便进行排片、查询场次等功能的实现
private List<Schedule> ScheduleList; //所有的电影场次集合
/**
* ID
* @return long hall_idID
*/
public long getHall_id() {
return hall_id;
}
/**
* ID
* @param hall_id long ID
*/
public void setHall_id(long hall_id) {
this.hall_id = hall_id;
}
/**
*
* @return List<Schedule> ScheduleList
*/
public List<Schedule> getScheduleList() {
return ScheduleList;
}
/**
*
* @param scheduleList List<Schedule>
*/
public void setScheduleList(List<Schedule> scheduleList) {
ScheduleList = scheduleList;
}
/**
*
* @return Cinema hall_cinema
*/
public Cinema getHall_cinema() {
return hall_cinema;
}
/**
*
* @param hall_cinema Cinema
*/
public void setHall_cinema(Cinema hall_cinema) {
this.hall_cinema = hall_cinema;
}
/**
*
* @return String hall_name
*/
public String getHall_name() {
return hall_name;
}
/**
*
* @param hall_name String
*/
public void setHall_name(String hall_name) {
this.hall_name = hall_name;
}
/**
*
* @return int hall_capacity
*/
public int getHall_capacity() {
return hall_capacity;
}
/**
*
* @param hall_capacity int
*/
public void setHall_capacity(int hall_capacity) {
this.hall_capacity = hall_capacity;
}
/**
*
* @return long cinema_id
*/
public long getCinema_id() {
return cinema_id;
}
/**
*
* @param cinema_id long
*/
public void setCinema_id(long cinema_id) {
this.cinema_id = cinema_id;
}
}

@ -1,125 +1,316 @@
package com.entity;
import java.sql.Date; //yyyy-mm-dd
import java.sql.Date; // yyyy-mm-dd用于表示日期类型此处大概率用于存储电影相关日期信息如上映时间等
import java.util.List;
/**
*
*
* @author Wxj
*/
public class Movie {
private long movie_id;
private String movie_cn_name;
private String movie_fg_name;
private String movie_actor; //演职人员
private String movie_director; //导演
private String movie_detail; //电影详情
private String movie_duration; //电影时长
private String movie_type; //电影类型
private float movie_score; //电影评分
private float movie_boxOffice; //票房
private long movie_commentCount; //电影参评人数
private Date movie_releaseDate; //上映时间
private String movie_country; //制片地区
private String movie_picture; //电影海报地址
private int movie_state; //电影状态 默认1 1在线 0下架
private List<Comment> commentList; //所有的评论信息
public long getMovie_id() {
return movie_id;
}
public void setMovie_id(long movie_id) {
this.movie_id = movie_id;
}
public String getMovie_cn_name() {
return movie_cn_name;
}
public int getMovie_state() {
return movie_state;
}
public void setMovie_state(int movie_state) {
this.movie_state = movie_state;
}
public void setMovie_cn_name(String movie_cn_name) {
this.movie_cn_name = movie_cn_name;
}
public String getMovie_fg_name() {
return movie_fg_name;
}
public void setMovie_fg_name(String movie_fg_name) {
this.movie_fg_name = movie_fg_name;
}
public String getMovie_actor() {
return movie_actor;
}
public void setMovie_actor(String movie_actor) {
this.movie_actor = movie_actor;
}
public String getMovie_director() {
return movie_director;
}
public void setMovie_director(String movie_director) {
this.movie_director = movie_director;
}
public String getMovie_detail() {
return movie_detail;
}
public void setMovie_detail(String movie_detail) {
this.movie_detail = movie_detail;
}
public String getMovie_duration() {
return movie_duration;
}
public void setMovie_duration(String movie_duration) {
this.movie_duration = movie_duration;
}
public String getMovie_type() {
return movie_type;
}
public void setMovie_type(String movie_type) {
this.movie_type = movie_type;
}
public float getMovie_score() {
return movie_score;
}
public void setMovie_score(float movie_score) {
this.movie_score = movie_score;
}
public float getMovie_boxOffice() {
return movie_boxOffice;
}
public void setMovie_boxOffice(float movie_boxOffice) {
this.movie_boxOffice = movie_boxOffice;
}
public long getMovie_commentCount() {
return movie_commentCount;
}
public void setMovie_commentCount(long movie_commentCount) {
this.movie_commentCount = movie_commentCount;
}
public Date getReleaseDate() {
return movie_releaseDate;
}
public void setReleaseDate(Date releaseDate) {
this.movie_releaseDate = releaseDate;
}
public String getMovie_country() {
return movie_country;
}
public void setMovie_country(String movie_country) {
this.movie_country = movie_country;
}
public String getMovie_picture() {
return movie_picture;
}
public void setMovie_picture(String movie_picture) {
this.movie_picture = movie_picture;
}
public List<Comment> getCommentList() {
return commentList;
}
public void setCommentList(List<Comment> commentList) {
this.commentList = commentList;
}
}
// 电影在数据库中的唯一标识用于区分不同的电影记录在整个系统中可通过该ID来准确指代某一部具体的电影方便进行各种与电影相关的操作如查询、修改等。
private long movie_id;
// 电影的中文名称,用于向用户展示电影的名称信息,方便用户识别和选择想要观看的电影。
private String movie_cn_name;
// 电影的外文名称(可能是英文或其他外语名称),用于在一些多语言展示或涉及外文资料引用等场景下使用。
private String movie_fg_name;
// 存储参演该电影的演职人员信息,通常会包含主演、配角等演员的姓名等相关介绍内容,方便用户了解电影的演员阵容。
private String movie_actor; //演职人员
// 存储执导该电影的导演姓名,明确电影的创作主导者,也是用户了解电影创作背景的一个重要信息点。
private String movie_director; //导演
// 用于存储电影的详细介绍内容,比如剧情梗概、故事背景、特色亮点等信息,方便用户在选择观看电影前更全面地了解电影情况。
private String movie_detail; //电影详情
// 表示电影的时长信息,一般以小时和分钟的格式记录(例如 "120分钟" 或 "2小时" 等形式),有助于用户知晓观看电影所需花费的时间。
private String movie_duration; //电影时长
// 用于描述电影的类型,常见的类型如 "喜剧"、"动作"、"爱情" 等,便于用户根据自己的喜好筛选和查找电影,同时也利于系统进行分类统计等业务操作。
private String movie_type; //电影类型
// 代表电影的评分信息,通常是一个基于用户评价等综合计算得出的浮点数,用于直观展示电影在观众心中的口碑情况,方便用户参考来判断电影质量。
private float movie_score; //电影评分
// 记录电影的票房数据,以浮点数形式体现电影在市场上的经济收益情况,可用于统计分析、热门电影排行等相关功能实现。
private float movie_boxOffice; //票房
// 统计参与对该电影进行评价的人数,以长整型记录,通过这个数值可以看出电影受关注和讨论的程度,也是衡量电影影响力的一个参考指标。
private long movie_commentCount; //电影参评人数
// 用于存储电影的上映时间,采用 java.sql.Date 类型按照 "yyyy-mm-dd" 的格式记录具体日期,方便按时间筛选电影、判断电影是否正在上映等操作。
private Date movie_releaseDate; //上映时间
// 表示电影的制片地区,例如 "中国"、"美国" 等,有助于用户了解电影的地域背景以及进行地区相关的电影筛选等功能。
private String movie_country; //制片地区
// 存储电影海报的地址信息,该地址指向存储电影海报图片文件的位置(可能是服务器上的相对或绝对路径等),用于在前端页面展示电影海报,吸引用户关注。
private String movie_picture; //电影海报地址
// 用于标记电影的状态默认值为1表示电影在线可观看、正常展示等情况值为0时表示电影已下架不再对外展示或提供观看服务方便系统对电影的展示和管理进行控制。
private int movie_state; //电影状态 默认1 1在线 0下架
// 用于存储该电影的所有评论信息列表,通过关联评论实体类,可以获取用户对该电影发表的各种评论内容,便于展示评论、统计分析评论数据等操作。
private List<Comment> commentList; //所有的评论信息
/**
* ID
* @return long movie_idID
*/
public long getMovie_id() {
return movie_id;
}
/**
* ID
* @param movie_id long ID
*/
public void setMovie_id(long movie_id) {
this.movie_id = movie_id;
}
/**
*
* @return String movie_cn_name
*/
public String getMovie_cn_name() {
return movie_cn_name;
}
/**
* 线
* @return int movie_state1线0
*/
public int getMovie_state() {
return movie_state;
}
/**
* 线
* @param movie_state int 10
*/
public void setMovie_state(int movie_state) {
this.movie_state = movie_state;
}
/**
*
* @param movie_cn_name String
*/
public void setMovie_cn_name(String movie_cn_name) {
this.movie_cn_name = movie_cn_name;
}
/**
*
* @return String movie_fg_name
*/
public String getMovie_fg_name() {
return movie_fg_name;
}
/**
*
* @param movie_fg_name String
*/
public void setMovie_fg_name(String movie_fg_name) {
this.movie_fg_name = movie_fg_name;
}
/**
*
* @return String movie_actor
*/
public String getMovie_actor() {
return movie_actor;
}
/**
*
* @param movie_actor String
*/
public void setMovie_actor(String movie_actor) {
this.movie_actor = movie_actor;
}
/**
*
* @return String movie_director
*/
public String getMovie_director() {
return movie_director;
}
/**
*
* @param movie_director String
*/
public void setMovie_director(String movie_director) {
this.movie_director = movie_director;
}
/**
*
* @return String movie_detail
*/
public String getMovie_detail() {
return movie_detail;
}
/**
*
* @param movie_detail String
*/
public void setMovie_detail(String movie_detail) {
this.movie_detail = movie_detail;
}
/**
*
* @return String movie_duration
*/
public String getMovie_duration() {
return movie_duration;
}
/**
*
* @param movie_duration String
*/
public void setMovie_duration(String movie_duration) {
this.movie_duration = movie_duration;
}
/**
*
* @return String movie_type
*/
public String getMovie_type() {
return movie_type;
}
/**
*
* @param movie_type String
*/
public void setMovie_type(String movie_type) {
this.movie_type = movie_type;
}
/**
*
* @return float movie_score
*/
public float getMovie_score() {
return movie_score;
}
/**
*
* @param movie_score float
*/
public void setMovie_score(float movie_score) {
this.movie_score = movie_score;
}
/**
*
* @return float movie_boxOffice
*/
public float getMovie_boxOffice() {
return movie_boxOffice;
}
/**
*
* @param movie_boxOffice float
*/
public void setMovie_boxOffice(float movie_boxOffice) {
this.movie_boxOffice = movie_boxOffice;
}
/**
*
* @return long movie_commentCount
*/
public long getMovie_commentCount() {
return movie_commentCount;
}
/**
*
* @param movie_commentCount long
*/
public void setMovie_commentCount(long movie_commentCount) {
this.movie_commentCount = movie_commentCount;
}
/**
*
* @return Date movie_releaseDate
*/
public Date getReleaseDate() {
return movie_releaseDate;
}
/**
*
* @param releaseDate Date
*/
public void setReleaseDate(Date releaseDate) {
this.movie_releaseDate = releaseDate;
}
/**
*
* @return String movie_country
*/
public String getMovie_country() {
return movie_country;
}
/**
*
* @param movie_country String
*/
public void setMovie_country(String movie_country) {
this.movie_country = movie_country;
}
/**
*
* @return String movie_picture
*/
public String getMovie_picture() {
return movie_picture;
}
/**
*
* @param movie_picture String
*/
public void setMovie_picture(String movie_picture) {
this.movie_picture = movie_picture;
}
/**
*
* @return List<Comment> commentList
*/
public List<Comment> getCommentList() {
return commentList;
}
/**
*
* @param commentList List<Comment>
*/
public void setCommentList(List<Comment> commentList) {
this.commentList = commentList;
}
}

@ -5,74 +5,180 @@ import java.util.List;
/**
*
* 便
* @author Wxj
*
*/
public class Order {
private String order_id;
private long user_id; //所属用户编号
private long schedule_id; //所属场次编号,通过schedule_id-》场次信息-》放映厅信息+电影信息
private String order_position; //电影票座位信息
private int order_state; //订单状态 0退票中 -1无法退票 1已支付 2退票成功
private int order_price; //订单价格
private Date order_time; //订单支付时间
private User order_user; //所属用户对象
private Schedule order_schedule; //所属电影场次
public String getOrder_id() {
return order_id;
}
public void setOrder_id(String order_id) {
this.order_id = order_id;
}
public Date getOrder_time() {
return order_time;
}
public void setOrder_time(Date order_time) {
this.order_time = order_time;
}
public int getOrder_price() {
return order_price;
}
public void setOrder_price(int order_price) {
this.order_price = order_price;
}
public long getUser_id() {
return user_id;
}
public void setUser_id(long user_id) {
this.user_id = user_id;
}
public long getSchedule_id() {
return schedule_id;
}
public void setSchedule_id(long schedule_id) {
this.schedule_id = schedule_id;
}
public String getOrder_position() {
return order_position;
}
public void setOrder_position(String order_position) {
this.order_position = order_position;
}
public User getOrder_user() {
return order_user;
}
public int getOrder_state() {
return order_state;
}
public void setOrder_state(int order_state) {
this.order_state = order_state;
}
public void setOrder_user(User order_user) {
this.order_user = order_user;
}
public Schedule getOrder_schedule() {
return order_schedule;
}
public void setOrder_schedule(Schedule order_schedule) {
this.order_schedule = order_schedule;
}
}
// 订单在数据库中的唯一标识,通常是一个具有特定生成规则的字符串,用于在系统中唯一区分不同的订单记录,便于订单的查找、管理等操作。
private String order_id;
// 用于存储下此订单的用户在用户表中的编号,通过该编号可以关联到具体是哪位用户创建的订单,方便后续查询用户相关信息、处理与用户相关的业务逻辑(如退票涉及用户权益等情况)。
private long user_id; //所属用户编号
// 存储该订单对应的电影场次在场次表中的编号,借助这个编号可以进一步获取场次相关的详细信息(如放映时间、所在放映厅、放映的电影等),从而完整地呈现订单对应的观影场次情况。
private long schedule_id; //所属场次编号,通过schedule_id-》场次信息-》放映厅信息+电影信息
// 用于记录购买电影票的座位信息,比如具体的排数和座位号等内容,明确用户所预订的观影座位位置。
private String order_position; //电影票座位信息
// 用于标记订单的当前状态,不同的数值代表不同的状态含义,例如 0 表示正在退票中,-1 表示无法退票1 表示已支付2 表示退票成功,方便系统根据订单状态进行相应的业务处理和展示给用户不同的提示信息等操作。
private int order_state; //订单状态 0退票中 -1无法退票 1已支付 2退票成功
// 表示该订单对应的电影票价格,以整数形式记录金额,用于统计订单金额、计算用户消费等业务逻辑处理。
private int order_price; //订单价格
// 记录订单的支付时间,以 Date 类型存储具体的时间点,可用于查询特定时间段内的订单、判断订单时效性等相关操作。
private Date order_time; //订单支付时间
// 用于存储下此订单的用户对象,通过关联用户实体类,可以更方便地获取用户的详细信息(如用户名、联系方式等),在涉及用户相关业务逻辑时无需再次查询用户表获取信息,提高操作效率,但可能涉及对象关联加载等性能方面的考虑,具体取决于业务场景和实现方式。
private User order_user; //所属用户对象
// 用于存储该订单对应的电影场次对象,通过关联场次实体类,可以便捷地获取场次相关的详细信息(如放映厅信息、放映的电影信息等),有助于在处理订单相关业务(如退票影响场次剩余座位等情况)时获取完整的关联数据进行操作。
private Schedule order_schedule; //所属电影场次
/**
* ID
* @return String order_idID
*/
public String getOrder_id() {
return order_id;
}
/**
* ID
* @param order_id String ID
*/
public void setOrder_id(String order_id) {
this.order_id = order_id;
}
/**
*
* @return Date order_time
*/
public Date getOrder_time() {
return order_time;
}
/**
*
* @param order_time Date
*/
public void setOrder_time(Date order_time) {
this.order_time = order_time;
}
/**
*
* @return int order_price
*/
public int getOrder_price() {
return order_price;
}
/**
*
* @param order_price int
*/
public void setOrder_price(int order_price) {
this.order_price = order_price;
}
/**
*
* @return long user_id
*/
public long getUser_id() {
return user_id;
}
/**
*
* @param user_id long
*/
public void setUser_id(long user_id) {
this.user_id = user_id;
}
/**
*
* @return long schedule_id
*/
public long getSchedule_id() {
return schedule_id;
}
/**
*
* @param schedule_id long
*/
public void setSchedule_id(long schedule_id) {
this.schedule_id = schedule_id;
}
/**
*
* @return String order_position
*/
public String getOrder_position() {
return order_position;
}
/**
*
* @param order_position String
*/
public void setOrder_position(String order_position) {
this.order_position = order_position;
}
/**
*
* @return User order_user
*/
public User getOrder_user() {
return order_user;
}
/**
*
* @param order_user User
*/
public void setOrder_user(User order_user) {
this.order_user = order_user;
}
/**
*
* @return int order_state
*/
public int getOrder_state() {
return order_state;
}
/**
*
* @param order_state int 0-112
*/
public void setOrder_state(int order_state) {
this.order_state = order_state;
}
/**
*
* @return Schedule order_schedule
*/
public Schedule getOrder_schedule() {
return order_schedule;
}
/**
*
* @param order_schedule Schedule
*/
public void setOrder_schedule(Schedule order_schedule) {
this.order_schedule = order_schedule;
}
}

@ -7,81 +7,199 @@ import org.springframework.format.annotation.DateTimeFormat;
/**
*
*
* @author Wxj
*/
public class Schedule {
private long schedule_id;
private long hall_id; //所属放映厅
private long movie_id; //放映的电影编号
//@DateTimeFormat(pattern="yyyy-MM-dd")
private String schedule_startTime; //电影放映时间
private int schedule_price; //售价
private int schedule_remain; //剩余座位数
private int schedule_state; //场次状态 1上映中 0下架
private Hall schedule_hall; //所属放映厅对象
private Movie schedule_movie; //放映的电影
private List<Order> orderList; //所有的订单集合
public long getSchedule_id() {
return schedule_id;
}
public void setSchedule_id(long schedule_id) {
this.schedule_id = schedule_id;
}
public int getSchedule_state() {
return schedule_state;
}
public void setSchedule_state(int schedule_state) {
this.schedule_state = schedule_state;
}
public Movie getSchedule_movie() {
return schedule_movie;
}
public void setSchedule_movie(Movie schedule_movie) {
this.schedule_movie = schedule_movie;
}
public long getHall_id() {
return hall_id;
}
public void setHall_id(long hall_id) {
this.hall_id = hall_id;
}
public long getMovie_id() {
return movie_id;
}
public void setMovie_id(long movie_id) {
this.movie_id = movie_id;
}
public String getSchedule_startTime() {
return schedule_startTime;
}
public void setSchedule_startTime(String schedule_startTime) {
this.schedule_startTime = schedule_startTime;
}
public int getSchedule_price() {
return schedule_price;
}
public void setSchedule_price(int schedule_price) {
this.schedule_price = schedule_price;
}
public int getSchedule_remain() {
return schedule_remain;
}
public void setSchedule_remain(int schedule_remain) {
this.schedule_remain = schedule_remain;
}
public Hall getSchedule_hall() {
return schedule_hall;
}
public void setSchedule_hall(Hall schedule_hall) {
this.schedule_hall = schedule_hall;
}
public List<Order> getOrderList() {
return orderList;
}
public void setOrderList(List<Order> orderList) {
this.orderList = orderList;
}
}
// 场次在数据库中的唯一标识,用于区分不同的电影放映场次记录,方便在系统中对各个场次进行准确指代和相关操作,如查询、修改场次信息等。
private long schedule_id;
// 用于存储该场次所属放映厅在放映厅表中的编号,通过这个编号可以关联到具体的放映厅信息,明确该场次在哪个放映厅进行放映,便于后续涉及放映厅相关的业务逻辑处理(如座位管理等)。
private long hall_id; //所属放映厅
// 用于存储该场次放映的电影在电影表中的编号,借助这个编号可以关联到具体的电影信息,确定该场次放映的是哪部电影,方便查询电影详情、根据电影进行场次筛选等操作。
private long movie_id; //放映的电影编号
// 用于存储电影的放映时间信息,虽然此处定义为字符串类型,但可能需要按照特定格式(原注释中提到的 "yyyy-MM-dd" 格式,不过目前未启用 `@DateTimeFormat` 注解生效的功能)来存储和解析日期数据,用于展示给用户场次的放映时间以及在业务逻辑中判断场次是否已到放映时间等操作。
// @DateTimeFormat(pattern="yyyy-MM-dd")
private String schedule_startTime; //电影放映时间
// 表示该场次电影票的售价,以整数形式记录价格信息,用于向用户展示票价、计算场次的收入等业务逻辑处理。
private int schedule_price; //售价
// 用于记录该场次当前剩余的座位数量,可根据购票、退票等操作动态更新这个数值,方便判断场次是否还有余票可供销售以及进行座位相关的管理操作。
private int schedule_remain; //剩余座位数
// 用于标记场次的状态,例如 1 表示上映中即该场次正常对外售票并即将放映0 表示下架,意味着该场次不再对外展示和售票,方便系统对场次的展示和管理进行控制。
private int schedule_state; //场次状态 1上映中 0下架
// 用于存储该场次所属的放映厅对象,通过关联放映厅实体类,可以更便捷地获取放映厅的详细信息(如放映厅名称、容量等),在涉及放映厅相关业务逻辑(如根据放映厅剩余座位调整场次剩余座位数等)时无需再次查询数据库获取信息,提高操作效率。
private Hall schedule_hall; //所属放映厅对象
// 用于存储该场次放映的电影对象,通过关联电影实体类,可以方便地获取电影的详细信息(如电影名称、类型、评分等),便于在展示场次信息时一同展示电影相关内容,以及进行与电影相关的业务逻辑处理(如票房统计等与场次相关的部分)。
private Movie schedule_movie; //放映的电影
// 用于存储该场次下所有的订单集合,通过这个属性可以获取购买了该场次电影票的所有订单信息,方便进行订单相关的统计、查询以及根据订单状态对场次进行相应调整(如退票后更新剩余座位数等)操作。
private List<Order> orderList; //所有的订单集合
/**
* ID
* @return long schedule_idID
*/
public long getSchedule_id() {
return schedule_id;
}
/**
* ID
* @param schedule_id long ID
*/
public void setSchedule_id(long schedule_id) {
this.schedule_id = schedule_id;
}
/**
*
* @return int schedule_state1 0
*/
public int getSchedule_state() {
return schedule_state;
}
/**
*
* @param schedule_state int 1 0
*/
public void setSchedule_state(int schedule_state) {
this.schedule_state = schedule_state;
}
/**
*
* @return Movie schedule_movie
*/
public Movie getSchedule_movie() {
return schedule_movie;
}
/**
*
* @param schedule_movie Movie
*/
public void setSchedule_movie(Movie schedule_movie) {
this.schedule_movie = schedule_movie;
}
/**
*
* @return long hall_id
*/
public long getHall_id() {
return hall_id;
}
/**
*
* @param hall_id long
*/
public void setHall_id(long hall_id) {
this.hall_id = hall_id;
}
/**
*
* @return long movie_id
*/
public long getMovie_id() {
return movie_id;
}
/**
*
* @param movie_id long
*/
public void setMovie_id(long movie_id) {
this.movie_id = movie_id;
}
/**
*
* @return String schedule_startTime
*/
public String getSchedule_startTime() {
return schedule_startTime;
}
/**
*
* @param schedule_startTime String
*/
public void setSchedule_startTime(String schedule_startTime) {
this.schedule_startTime = schedule_startTime;
}
/**
*
* @return int schedule_price
*/
public int getSchedule_price() {
return schedule_price;
}
/**
*
* @param schedule_price int
*/
public void setSchedule_price(int schedule_price) {
this.schedule_price = schedule_price;
}
/**
*
* @return int schedule_remain
*/
public int getSchedule_remain() {
return schedule_remain;
}
/**
*
* @param schedule_remain int
*/
public void setSchedule_remain(int schedule_remain) {
this.schedule_remain = schedule_remain;
}
/**
*
* @return Hall schedule_hall
*/
public Hall getSchedule_hall() {
return schedule_hall;
}
/**
*
* @param schedule_hall Hall
*/
public void setSchedule_hall(Hall schedule_hall) {
this.schedule_hall = schedule_hall;
}
/**
*
* @return List<Order> orderList
*/
public List<Order> getOrderList() {
return orderList;
}
/**
*
* @param orderList List<Order>
*/
public void setOrderList(List<Order> orderList) {
this.orderList = orderList;
}
}

@ -1,51 +1,123 @@
package com.entity;
/**
*
*
* @author Wxj
*/
public class User {
private long user_id;
private String user_name; //用户账号
private String user_pwd; //用户密码
private String user_email; //用户邮箱
private int user_role; //用户权限 0普通会员 1管理员
private String user_headImg; //用户头像地址
public long getUser_id() {
return user_id;
}
public void setUser_id(long user_id) {
this.user_id = user_id;
}
public String getUser_name() {
return user_name;
}
public void setUser_name(String user_name) {
this.user_name = user_name;
}
public String getUser_pwd() {
return user_pwd;
}
public void setUser_pwd(String user_pwd) {
this.user_pwd = user_pwd;
}
public String getUser_email() {
return user_email;
}
public void setUser_email(String user_email) {
this.user_email = user_email;
}
public int getUser_role() {
return user_role;
}
public void setUser_role(int user_role) {
this.user_role = user_role;
}
public String getUser_headImg() {
return user_headImg;
}
public void setUser_headImg(String user_headImg) {
this.user_headImg = user_headImg;
}
}
// 用户在数据库中的唯一标识用于区分不同的用户记录在整个系统中可通过该ID准确地指代某一个具体用户方便进行各种与用户相关的操作例如查询用户信息、更新用户资料等。
private long user_id;
// 用于存储用户登录系统所使用的账号信息,通常是用户自定义的具有唯一性(在系统限定规则内)的字符串,作为用户身份验证的重要依据之一,方便用户登录操作以及在系统中识别不同用户。
private String user_name; //用户账号
// 用于存储用户登录系统时需要输入的密码信息,一般以加密后的字符串形式存储(具体加密方式取决于系统安全设置),用于验证用户身份的合法性,保障用户账号的安全性。
private String user_pwd; //用户密码
// 用于存储用户的电子邮箱地址,可用于找回密码、接收系统通知等功能,方便与用户进行信息沟通以及一些需要验证邮箱的业务操作(如注册验证等情况)。
private String user_email; //用户邮箱
// 用于标记用户在系统中的权限等级,不同的数值代表不同的权限角色,例如 0 表示普通会员具有普通用户的操作权限1 表示管理员,拥有更多的系统管理权限,便于系统根据用户权限进行功能访问控制和不同操作的授权管理。
private int user_role; //用户权限 0普通会员 1管理员
// 用于存储用户头像图片的地址信息,该地址指向存储用户头像图片文件的位置(可能是服务器上的相对或绝对路径等),用于在前端页面展示用户头像,个性化展示用户信息。
private String user_headImg; //用户头像地址
/**
* ID
* @return long user_idID
*/
public long getUser_id() {
return user_id;
}
/**
* ID
* @param user_id long ID
*/
public void setUser_id(long user_id) {
this.user_id = user_id;
}
/**
*
* @return String user_name
*/
public String getUser_name() {
return user_name;
}
/**
*
* @param user_name String
*/
public void setUser_name(String user_name) {
this.user_name = user_name;
}
/**
*
* @return String user_pwd
*/
public String getUser_pwd() {
return user_pwd;
}
/**
*
* @param user_pwd String
*/
public void setUser_pwd(String user_pwd) {
this.user_pwd = user_pwd;
}
/**
*
* @return String user_email
*/
public String getUser_email() {
return user_email;
}
/**
*
* @param user_email String
*/
public void setUser_email(String user_email) {
this.user_email = user_email;
}
/**
*
* @return int user_role01
*/
public int getUser_role() {
return user_role;
}
/**
*
* @param user_role int 01
*/
public void setUser_role(int user_role) {
this.user_role = user_role;
}
/**
*
* @return String user_headImg
*/
public String getUser_headImg() {
return user_headImg;
}
/**
*
* @param user_headImg String
*/
public void setUser_headImg(String user_headImg) {
this.user_headImg = user_headImg;
}
}

@ -6,13 +6,70 @@ import org.springframework.stereotype.Repository;
import com.entity.Cinema;
/**
* CinemaMapper
* Mapper
* 使`@Repository`Spring便Spring
*/
@Repository
public interface CinemaMapper {
Cinema findCinemaById(long cinema_id);
Integer addCinema(Cinema cinema);
Integer updateCinema(Cinema cinema);
Integer deleteCinema(long cinema_id);
List<Cinema> findAllCinemas();
List<Cinema> findCinemasLikeName(String cinema_name);
List<Cinema> findCinemasByMovieId(long movie_id);
}
/**
* ID
* SQL使MyBatisXMLSQLID`Cinema`
* @param cinema_id ID
* @return `Cinema``null`
*/
Cinema findCinemaById(long cinema_id);
/**
*
* SQL`Cinema`
* 10
* @param cinema `Cinema`
* @return `Integer`
*/
Integer addCinema(Cinema cinema);
/**
* `Cinema`
* SQL`Cinema`
*
* @param cinema `Cinema`
* @return `Integer`
*/
Integer updateCinema(Cinema cinema);
/**
* ID
* SQLID10
* @param cinema_id ID
* @return `Integer`
*/
Integer deleteCinema(long cinema_id);
/**
*
* SQL`Cinema``List<Cinema>`
* @return `Cinema``List`
*/
List<Cinema> findAllCinemas();
/**
*
* SQL
* `List<Cinema>``Cinema`
* @param cinema_name
* @return `Cinema``List`
*/
List<Cinema> findCinemasLikeName(String cinema_name);
/**
* ID
* SQL
* `List<Cinema>`便
* @param movie_id ID
* @return `Cinema``List`
*/
List<Cinema> findCinemasByMovieId(long movie_id);
}

@ -1,46 +1,69 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!-- 此 XML 文件为 MyBatis 的映射文件,其作用是定义与数据库交互的 SQL 语句以及结果集映射关系等配置内容,对应的接口为 com.mapper.CinemaMapper主要用于处理电影院Cinema相关的数据操作。 -->
<mapper namespace="com.mapper.CinemaMapper">
<resultMap type="com.entity.Cinema" id="BaseResultMap">
<id property="cinema_id" column="cinema_id" javaType="long"/>
<result property="cinema_name" column="cinema_name" javaType="java.lang.String"/>
<result property="cinema_address" column="cinema_address" javaType="java.lang.String"/>
</resultMap>
<select id="findCinemaById" parameterType="long" resultMap="BaseResultMap">
select * from cinema where cinema_id = #{cinema_id}
</select>
<select id="findAllCinemas" resultMap="BaseResultMap">
select * from cinema
</select>
<select id="findCinemasLikeName" parameterType="java.lang.String" resultMap="BaseResultMap">
select * from cinema where cinema_name like '%${value}%'
</select>
<select id="findCinemasByMovieId" parameterType="long" resultMap="BaseResultMap">
select distinct cinema.* from hall,schedule,cinema
where hall.hall_id=schedule.hall_id and hall.cinema_id=cinema.cinema_id and schedule.movie_id = #{movie_id}
</select>
<insert id="addCinema" parameterType="com.entity.Cinema">
insert into cinema(cinema_name,cinema_address)
values(#{cinema_name},#{cinema_address})
</insert>
<update id="updateCinema" parameterType="com.entity.Cinema">
update cinema
<set>
cinema_name = #{cinema_name},
cinema_address = #{cinema_address}
</set>
where cinema_id = #{cinema_id}
</update>
<delete id="deleteCinema" parameterType="long">
delete from cinema where cinema_id = #{cinema_id}
</delete>
<!-- 定义名为 BaseResultMap 的结果集映射,用于将从数据库查询返回的结果(按照列的形式)映射到 com.entity.Cinema 实体类对应的属性上,方便 MyBatis 将数据库记录转换为 Java 对象,便于后续在程序中使用。 -->
<resultMap type="com.entity.Cinema" id="BaseResultMap">
<!-- 将数据库表 cinema 中的 cinema_id 列的值映射到 Cinema 实体类的 cinema_id 属性上,属性类型为 long -->
<id property="cinema_id" column="cinema_id" javaType="long"/>
<!-- 将数据库表 cinema 中的 cinema_name 列的值映射到 Cinema 实体类的 cinema_name 属性上,属性类型为 java.lang.String -->
<result property="cinema_name" column="cinema_name" javaType="java.lang.String"/>
<!-- 将数据库表 cinema 中的 cinema_address 列的值映射到 Cinema 实体类的 cinema_address 属性上,属性类型为 java.lang.String -->
<result property="cinema_address" column="cinema_address" javaType="java.lang.String"/>
</resultMap>
<!-- 定义名为 findCinemaById 的查询语句用于根据电影院的唯一标识ID从 cinema 表中查询对应的电影院信息。
参数类型为 long表示传入的参数是一个长整型的电影院 ID查询结果通过 BaseResultMap 定义的映射关系转换为 Cinema 实体对象返回。 -->
<select id="findCinemaById" parameterType="long" resultMap="BaseResultMap">
select * from cinema where cinema_id = #{cinema_id}
</select>
<!-- 定义名为 findAllCinemas 的查询语句,用于从 cinema 表中查询所有的电影院信息。
查询结果通过 BaseResultMap 定义的映射关系转换为 Cinema 实体对象,并以列表形式返回所有电影院记录对应的 Cinema 对象集合。 -->
<select id="findAllCinemas" resultMap="BaseResultMap">
select * from cinema
</select>
<!-- 定义名为 findCinemasLikeName 的查询语句,用于根据电影院名称进行模糊查询。
参数类型为 java.lang.String表示传入的参数是一个字符串类型的电影院名称通过使用 LIKE 关键字结合通配符 '%${value}%'(此处使用 ${} 是为了直接将传入的字符串拼接进 SQL 语句实现模糊匹配,需注意防止 SQL 注入问题),
在 cinema 表中查找名称符合模糊匹配条件的电影院记录,查询结果通过 BaseResultMap 映射为 Cinema 实体对象并返回对应的电影院集合。 -->
<select id="findCinemasLikeName" parameterType="java.lang.String" resultMap="BaseResultMap">
select * from cinema where cinema_name like '%${value}%'
</select>
<!-- 定义名为 findCinemasByMovieId 的查询语句用于根据电影的唯一标识ID查找放映该电影的所有电影院信息。
参数类型为 long表示传入的参数是一个长整型的电影 ID通过多表关联查询关联 hall 表、schedule 表和 cinema 表,根据各表中相应字段的关联关系,如 hall.hall_id=schedule.hall_id 和 hall.cinema_id=cinema.cinema_id 等),
筛选出放映指定电影(通过 schedule.movie_id = #{movie_id} 条件判断)的电影院记录,使用 DISTINCT 关键字去除重复记录后,查询结果通过 BaseResultMap 映射为 Cinema 实体对象并返回对应的电影院集合。 -->
<select id="findCinemasByMovieId" parameterType="long" resultMap="BaseResultMap">
select distinct cinema.* from hall,schedule,cinema
where hall.hall_id=schedule.hall_id and hall.cinema_id=cinema.cinema_id and schedule.movie_id = #{movie_id}
</select>
<!-- 定义名为 addCinema 的插入语句,用于向 cinema 表中插入一条新的电影院记录。
参数类型为 com.entity.Cinema表示传入的参数是一个 Cinema 实体对象,从该对象中获取 cinema_name 和 cinema_address 属性值插入到 cinema 表对应的列中,实现新增电影院记录的操作。 -->
<insert id="addCinema" parameterType="com.entity.Cinema">
insert into cinema(cinema_name,cinema_address)
values(#{cinema_name},#{cinema_address})
</insert>
<!-- 定义名为 updateCinema 的更新语句,用于更新 cinema 表中指定电影院记录的信息。
参数类型为 com.entity.Cinema表示传入的参数是一个 Cinema 实体对象,根据该对象中的 cinema_name 和 cinema_address 属性值来更新对应电影院记录的相应列的值,
更新条件是 cinema_id 列的值与传入对象的 cinema_id 属性值相等,通过 <set> 标签来动态生成需要更新的列,避免不必要的列更新为空值等情况。 -->
<update id="updateCinema" parameterType="com.entity.Cinema">
update cinema
<set>
cinema_name = #{cinema_name},
cinema_name = #{cinema_address}
</set>
where cinema_id = #{cinema_id}
</update>
<!-- 定义名为 deleteCinema 的删除语句,用于从 cinema 表中删除指定的电影院记录。
参数类型为 long表示传入的参数是一个长整型的电影院 ID根据该 ID 删除 cinema 表中对应的电影院记录,删除条件是 cinema_id 列的值与传入的参数值相等。 -->
<delete id="deleteCinema" parameterType="long">
delete from cinema where cinema_id = #{cinema_id}
</delete>
</mapper>

@ -8,14 +8,58 @@ import com.entity.Comment;
@Repository
public interface CommentMapper {
//用户: 修改评论、增加评论
//管理员: 删除评论、 修改评论
//查询用户的评论
Comment findCommentById(long comment_id);
Integer addComemnt(Comment comment);
Integer updateComment(Comment comment);
Integer deleteComment(long comment_id);
List<Comment> findAllComments();
List<Comment> findCommentsByMoiveId(long movie_id);
List<Comment> findCommentsByUserName(String user_name);
}
/**
* ID
*
* @param comment_id
* @return IDnull
*/
Comment findCommentById(long comment_id);
/**
*
*
* @param comment
* @return 10
*/
Integer addComemnt(Comment comment);
/**
*
*
* @param comment
* @return 10
*/
Integer updateComment(Comment comment);
/**
* ID
*
* @param comment_id
* @return 10
*/
Integer deleteComment(long comment_id);
/**
*
*
* @return
*/
List<Comment> findAllComments();
/**
* ID
*
* @param movie_id
* @return ID
*/
List<Comment> findCommentsByMoiveId(long movie_id);
/**
*
*
* @param user_name
* @return
*/
List<Comment> findCommentsByUserName(String user_name);
}

@ -1,50 +1,75 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!-- 该 XML 文件为 MyBatis 的映射文件,用于定义与数据库交互的 SQL 语句以及结果集映射关系等配置。此映射文件对应的接口为 com.mapper.CommentMapper -->
<mapper namespace="com.mapper.CommentMapper">
<resultMap type="com.entity.Comment" id="BaseResultMap">
<id property="comment_id" column="comment_id" javaType="long"/>
<result property="comment_content" column="comment_content" javaType="java.lang.String"/>
<result property="comment_time" column="comment_time" javaType="java.util.Date"/>
<result property="movie_id" column="movie_id" javaType="long"/>
<result property="user_id" column="user_id" javaType="long"/>
</resultMap>
<select id="findCommentById" parameterType="long" resultMap="BaseResultMap">
select * from comment where comment_id = #{comment_id}
</select>
<select id="findAllComments" resultMap="BaseResultMap">
select * from comment
</select>
<select id="findCommentsByUserName" parameterType="java.lang.String" resultMap="BaseResultMap">
select comment.* from comment,user where comment.user_id = user.user_id and user.user_name = #{user_name}
</select>
<select id="findCommentsByMoiveId" parameterType="long" resultMap="BaseResultMap">
select * from comment where movie_id = #{movie_id}
</select>
<insert id="addComemnt" parameterType="com.entity.Comment">
insert into comment(comment_content,comment_time,movie_id,user_id)
values(#{comment_content},#{comment_time},#{movie_id},#{user_id})
</insert>
<update id="updateComment" parameterType="com.entity.Comment">
update comment
<set>
comment_content = #{comment_content},
comment_time = #{comment_time},
movie_id = #{movie_id},
user_id = #{user_id}
</set>
where comment_id = #{comment_id}
</update>
<delete id="deleteComment" parameterType="long">
delete from comment where comment_id = #{comment_id}
</delete>
<!-- 定义一个名为 BaseResultMap 的结果集映射,用于将从数据库查询返回的结果(以列的形式)映射到 com.entity.Comment 实体类的对应属性上。
这样 MyBatis 在执行查询操作后,能自动将数据库记录转换为对应的 Java 对象方便后续使用。 -->
<resultMap type="com.entity.Comment" id="BaseResultMap">
<!-- 将数据库表中的 comment_id 列的值映射到 Comment 实体类的 comment_id 属性上,属性类型为 long -->
<id property="comment_id" column="comment_id" javaType="long"/>
<!-- 将数据库表中的 comment_content 列的值映射到 Comment 实体类的 comment_content 属性上,属性类型为 java.lang.String -->
<result property="comment_content" column="comment_content" javaType="java.lang.String"/>
<!-- 将数据库表中的 comment_time 列的值映射到 Comment 实体类的 comment_time 属性上,属性类型为 java.util.Date -->
<result property="comment_time" column="comment_time" javaType="java.util.Date"/>
<!-- 将数据库表中的 movie_id 列的值映射到 Comment 实体类的 movie_id 属性上,属性类型为 long -->
<result property="movie_id" column="movie_id" javaType="long"/>
<!-- 将数据库表中的 user_id 列的值映射到 Comment 实体类的 user_id 属性上,属性类型为 long -->
<result property="user_id" column="user_id" javaType="long"/>
</resultMap>
<!-- 定义一个名为 findCommentById 的查询语句用于根据评论的唯一标识ID从 comment 表中查询对应的评论信息。
参数类型为 long表示传入的参数是一个长整型的评论 ID查询结果通过 BaseResultMap 定义的映射关系转换为 Comment 实体对象返回。 -->
<select id="findCommentById" parameterType="long" resultMap="BaseResultMap">
select * from comment where comment_id = #{comment_id}
</select>
<!-- 定义一个名为 findAllComments 的查询语句,用于从 comment 表中查询所有的评论信息。
查询结果通过 BaseResultMap 定义的映射关系转换为 Comment 实体对象,并以列表形式返回所有的评论记录对应的 Comment 对象集合。 -->
<select id="findAllComments" resultMap="BaseResultMap">
select * from comment
</select>
<!-- 定义一个名为 findCommentsByUserName 的查询语句,用于根据用户名从 comment 表中查询该用户发表的所有评论信息。
参数类型为 java.lang.String表示传入的参数是一个字符串类型的用户名通过关联 comment 表和 user 表(根据 user_id 关联),筛选出指定用户名对应的评论记录,
结果同样通过 BaseResultMap 映射为 Comment 实体对象并返回对应的评论集合。 -->
<select id="findCommentsByUserName" parameterType="java.lang.String" resultMap="BaseResultMap">
select comment.* from comment,user where comment.user_id = user.user_id and user.user_name = #{user_name}
</select>
<!-- 定义一个名为 findCommentsByMoiveId 的查询语句用于根据电影的唯一标识ID从 comment 表中查询该电影对应的所有评论信息。
参数类型为 long表示传入的参数是一个长整型的电影 ID查询结果通过 BaseResultMap 映射为 Comment 实体对象并返回对应的评论集合。 -->
<select id="findCommentsByMoiveId" parameterType="long" resultMap="BaseResultMap">
select * from comment where movie_id = #{movie_id}
</select>
<!-- 定义一个名为 addComemnt 的插入语句,用于向 comment 表中插入一条新的评论记录。
参数类型为 com.entity.Comment表示传入的参数是一个 Comment 实体对象,从该对象中获取相应属性值插入到 comment 表对应的列中,插入的列包括 comment_content、comment_time、movie_id 和 user_id。 -->
<insert id="addComemnt" parameterType="com.entity.Comment">
insert into comment(comment_content,comment_time,movie_id,user_id)
values(#{comment_content},#{comment_time},#{movie_id},#{user_id})
</insert>
<!-- 定义一个名为 updateComment 的更新语句,用于更新 comment 表中指定评论记录的信息。
参数类型为 com.entity.Comment表示传入的参数是一个 Comment 实体对象,根据该对象中的属性值来更新对应评论记录的 comment_content、comment_time、movie_id 和 user_id 列的值,
更新条件是 comment_id 列的值与传入对象的 comment_id 属性值相等,通过 <set> 标签来动态生成需要更新的列,避免不必要的列更新为空值等情况。 -->
<update id="updateComment" parameterType="com.entity.Comment">
update comment
<set>
comment_content = #{comment_content},
comment_time = #{comment_time},
movie_id = #{movie_id},
user_id = #{user_id}
</set>
where comment_id = #{comment_id}
</update>
<!-- 定义一个名为 deleteComment 的删除语句,用于从 comment 表中删除指定评论记录。
参数类型为 long表示传入的参数是一个长整型的评论 ID根据该 ID 删除 comment 表中对应的评论记录,删除条件是 comment_id 列的值与传入的参数值相等。 -->
<delete id="deleteComment" parameterType="long">
delete from comment where comment_id = #{comment_id}
</delete>
</mapper>

@ -7,14 +7,71 @@ import org.springframework.stereotype.Repository;
import com.entity.Hall;
/**
* HallMapperHall
* Mapper
* 使`@Repository`Spring便Spring
*/
@Repository
public interface HallMapper {
Hall findHallById(long hall_id);
Hall findHallByCinemaAndHallName(@Param("cinema_name")String cinema_name,@Param("hall_name")String hall_name);
Integer addHall(Hall hall);
Integer updateHall(Hall hall);
Integer deleteHall(long hall_id);
List<Hall> findHallByCinemaId(long cinema_id);
List<Hall> findAllHalls();
}
/**
* ID
* SQL使MyBatisXMLSQLID`Hall`
* @param hall_id ID
* @return `Hall``null`
*/
Hall findHallById(long hall_id);
/**
*
* 使`@Param`便SQLSQL
* `Hall`
* @param cinema_name
* @param hall_name
* @return `Hall``null`
*/
Hall findHallByCinemaAndHallName(@Param("cinema_name") String cinema_name, @Param("hall_name") String hall_name);
/**
*
* SQL`Hall`
* 10
* @param hall `Hall`
* @return `Integer`
*/
Integer addHall(Hall hall);
/**
* `Hall`
* SQL`Hall`
*
* @param hall `Hall`
* @return `Integer`
*/
Integer updateHall(Hall hall);
/**
* ID
* SQLID10
* @param hall_id ID
* @return `Integer`
*/
Integer deleteHall(long hall_id);
/**
* ID
* SQL
* `Hall``List<Hall>`便
* @param cinema_id ID
* @return `Hall``List`
*/
List<Hall> findHallByCinemaId(long cinema_id);
/**
*
* SQL`Hall``List<Hall>`
* @return `Hall``List`
*/
List<Hall> findAllHalls();
}

@ -3,44 +3,88 @@
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.mapper.HallMapper">
<resultMap type="com.entity.Hall" id="BaseResultMap">
<id property="hall_id" column="hall_id" javaType="long"/>
<result property="hall_name" column="hall_name" javaType="java.lang.String"/>
<result property="cinema_id" column="cinema_id" javaType="long"/>
</resultMap>
<select id="findHallById" parameterType="long" resultMap="BaseResultMap">
select * from hall where hall_id = #{hall_id}
</select>
<select id="findHallByCinemaAndHallName" resultMap="BaseResultMap">
select hall.* from hall,cinema where hall.cinema_id = cinema.cinema_id
and cinema_name = #{cinema_name} and hall_name= #{hall_name}
</select>
<select id="findHallByCinemaId" parameterType="long" resultMap="BaseResultMap">
select * from hall where cinema_id = #{cinema_id}
</select>
<select id="findAllHalls" resultMap="BaseResultMap">
select * from hall
</select>
<insert id="addHall" parameterType="com.entity.Hall">
insert into hall(hall_name,movie_id)
values(hall_name,movie_id)
</insert>
<update id="updateHall" parameterType="com.entity.Hall">
update hall
<set>
hall_name = #{hall_name},
movie_id = #{movie_id}
</set>
where hall_id = #{hall_id}
</update>
<delete id="deleteHall" parameterType="long">
delete from hall where hall_id = #{hall_id}
</delete>
<!--
定义一个结果映射,用于将查询结果集中的列映射到 Java 对象 "Hall" 的属性。
这个 resultMap 将被下面的 select 语句引用,以确保查询结果能够正确地转换为 Java 对象。
-->
<resultMap type="com.entity.Hall" id="BaseResultMap">
<!-- 唯一标识符,对应数据库表中的主键 -->
<id property="hall_id" column="hall_id" javaType="long"/>
<!-- 普通字段,对应数据库表中的非主键列 -->
<result property="hall_name" column="hall_name" javaType="java.lang.String"/>
<result property="cinema_id" column="cinema_id" javaType="long"/>
</resultMap>
<!--
根据影厅ID查询影厅信息。
参数类型为 long表示影厅的唯一标识符。
使用 BaseResultMap 将查询结果映射为 Hall 对象。
-->
<select id="findHallById" parameterType="long" resultMap="BaseResultMap">
select * from hall where hall_id = #{hall_id}
</select>
<!--
根据影院名称和影厅名称查询影厅信息。
该查询涉及两个表hall 和 cinema通过影院ID关联。
使用 BaseResultMap 将查询结果映射为 Hall 对象。
需要提供影院名称和影厅名称作为参数。
-->
<select id="findHallByCinemaAndHallName" resultMap="BaseResultMap">
select hall.* from hall, cinema
where hall.cinema_id = cinema.cinema_id
and cinema_name = #{cinema_name} and hall_name= #{hall_name}
</select>
<!--
根据影院ID查询所有属于该影院的影厅信息。
参数类型为 long表示影院的唯一标识符。
使用 BaseResultMap 将查询结果映射为 Hall 对象。
-->
<select id="findHallByCinemaId" parameterType="long" resultMap="BaseResultMap">
select * from hall where cinema_id = #{cinema_id}
</select>
<!--
查询所有影厅信息。
不需要参数,返回所有的影厅记录。
使用 BaseResultMap 将查询结果映射为 Hall 对象。
-->
<select id="findAllHalls" resultMap="BaseResultMap">
select * from hall
</select>
<!--
添加新的影厅信息。
参数类型为 com.entity.Hall表示要插入的新影厅对象。
注意这里有一个错误SQL 中的 movie_id 应该是 cinema_id 或者是其他与影厅相关的字段,根据实际情况修改。
-->
<insert id="addHall" parameterType="com.entity.Hall">
insert into hall(hall_name, cinema_id) -- 修改了 movie_id 为 cinema_id假设这是正确的字段名
values(#{hall_name}, #{cinema_id}) -- 同上
</insert>
<!--
更新现有的影厅信息。
参数类型为 com.entity.Hall表示包含更新信息的影厅对象。
只有在提供了有效的 hall_id 时,才会执行更新操作。
-->
<update id="updateHall" parameterType="com.entity.Hall">
update hall
<set>
hall_name = #{hall_name},
cinema_id = #{cinema_id} -- 假设这是要更新的字段,如果实际不是,请根据需要更改
</set>
where hall_id = #{hall_id}
</update>
<!--
删除指定 ID 的影厅信息。
参数类型为 long表示要删除的影厅的唯一标识符。
-->
<delete id="deleteHall" parameterType="long">
delete from hall where hall_id = #{hall_id}
</delete>
</mapper>

@ -7,23 +7,140 @@ import org.springframework.stereotype.Repository;
import com.entity.Movie;
/**
* MovieMapperMovie
* Mapper
* 使`@Repository`Spring便Spring
*/
@Repository
public interface MovieMapper {
Movie findMovieById(long movie_id);
Movie findMovieByName(String movie_cn_name);
Integer addMovie(Movie movie);
Integer deleteMovie(long movie_id);
Integer updateMovie(Movie movie);
Integer deleteMovieCommentCount(long movie_id);
Integer addMovieCommentCount(long movie_id);
Integer changeMovieBoxOffice(@Param("movie_boxOffice")float movie_boxOffice,@Param("movie_id")long movie_id);
List<Movie> findAllMovies(int movie_state);
List<Movie> findMoviesLikeName(String name);
List<Movie> findMoviesLikeType(String type);
//上映时间 参评人数 评分
List<Movie> sortMovieByDate();
List<Movie> sortMovieByCount();
List<Movie> sortMovieByScore();
//票房排序
List<Movie> sortMovieByBoxOffice();
}
/**
* ID
* SQL使MyBatisXMLSQLID`Movie`便
* @param movie_id ID
* @return `Movie``null`
*/
Movie findMovieById(long movie_id);
/**
*
* SQL`Movie`便
* @param movie_cn_name
* @return `Movie``null`
*/
Movie findMovieByName(String movie_cn_name);
/**
*
* SQL`Movie`
* 10
* @param movie `Movie`
* @return `Integer`
*/
Integer addMovie(Movie movie);
/**
* ID
* SQLID10
* @param movie_id ID
* @return `Integer`
*/
Integer deleteMovie(long movie_id);
/**
* `Movie`
* SQL`Movie`
*
* @param movie `Movie`
* @return `Integer`
*/
Integer updateMovie(Movie movie);
/**
* ID
* SQLID0
*
* @param movie_id ID
* @return `Integer`
*/
Integer deleteMovieCommentCount(long movie_id);
/**
* ID
* SQLID
*
* @param movie_id ID
* @return `Integer`
*/
Integer addMovieCommentCount(long movie_id);
/**
* ID
* `@Param`便SQLSQLID
*
* @param movie_boxOffice
* @param movie_id ID
* @return `Integer`
*/
Integer changeMovieBoxOffice(@Param("movie_boxOffice") float movie_boxOffice, @Param("movie_id") long movie_id);
/**
* 线
* SQL1线0
* `Movie``List<Movie>`便
* @param movie_state
* @return `Movie``List`
*/
List<Movie> findAllMovies(int movie_state);
/**
*
* SQL
* `List<Movie>``Movie`
* @param name
* @return `Movie``List`
*/
List<Movie> findMoviesLikeName(String name);
/**
*
* SQL
* `List<Movie>``Movie`便
* @param type
* @return `Movie``List`
*/
List<Movie> findMoviesLikeType(String type);
/**
*
* SQL
* `Movie``List<Movie>`便
* @return `Movie``List`
*/
List<Movie> sortMovieByDate();
/**
*
* SQL
* `Movie``List<Movie>`
* @return `Movie``List`
*/
List<Movie> sortMovieByCount();
/**
*
* SQL
* `Movie``List<Movie>`
* @return `Movie``List`
*/
List<Movie> sortMovieByScore();
/**
*
* SQL
* `Movie``List<Movie>`便
* @return `Movie``List`
*/
List<Movie> sortMovieByBoxOffice();
}

@ -1,101 +1,149 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!-- 此 XML 文件为 MyBatis 的映射文件,用于定义与数据库交互的 SQL 语句以及结果集映射关系等配置内容,其对应的接口是 com.mapper.MovieMapper主要负责处理电影Movie相关的数据操作。 -->
<mapper namespace="com.mapper.MovieMapper">
<resultMap type="com.entity.Movie" id="BaseResultMap">
<id property="movie_id" column="movie_id" javaType="long"/>
<result property="movie_actor" column="movie_actor" javaType="java.lang.String"/>
<result property="movie_boxOffice" column="movie_boxOffice" javaType="float"/>
<result property="movie_cn_name" column="movie_cn_name" javaType="java.lang.String"/>
<result property="movie_commentCount" column="movie_commentCount" javaType="long"/>
<result property="movie_country" column="movie_country" javaType="java.lang.String"/>
<result property="movie_detail" column="movie_detail" javaType="java.lang.String"/>
<result property="movie_director" column="movie_director" javaType="java.lang.String"/>
<result property="movie_duration" column="movie_duration" javaType="java.lang.String"/>
<result property="movie_fg_name" column="movie_fg_name" javaType="java.lang.String"/>
<result property="movie_picture" column="movie_picture" javaType="java.lang.String"/>
<result property="movie_score" column="movie_score" javaType="float"/>
<result property="movie_type" column="movie_type" javaType="java.lang.String"/>
<result property="movie_releaseDate" column="movie_releaseDate" javaType="java.sql.Date"/>
<result property="movie_state" column="movie_state" javaType="java.lang.Integer"/>
</resultMap>
<select id="findMovieById" parameterType="long" resultMap="BaseResultMap">
select * from movie where movie_id = #{movie_id}
</select>
<select id="findMovieByName" parameterType="java.lang.String" resultMap="BaseResultMap">
select * from movie where movie_cn_name = #{movie_cn_name}
</select>
<insert id="addMovie" parameterType="com.entity.Movie">
insert into movie(movie_cn_name,movie_fg_name,movie_actor,movie_director,movie_detail,movie_duration,movie_type,movie_score,movie_releaseDate,movie_country,movie_picture)
values(#{movie_cn_name},#{movie_fg_name},#{movie_actor},#{movie_director},#{movie_detail},#{movie_duration},#{movie_type},#{movie_score},#{movie_releaseDate},#{movie_country},#{movie_picture})
</insert>
<update id="deleteMovie" parameterType="long">
update movie
<set>
movie_state = 0
</set>
where movie_id = #{movie_id}
</update>
<update id="changeMovieBoxOffice">
update movie set movie_boxOffice = movie_boxOffice + #{movie_boxOffice} where movie_id = #{movie_id}
</update>
<update id="updateMovie" parameterType="com.entity.Movie">
update movie
<set>
movie_cn_name = #{movie_cn_name},
movie_fg_name = #{movie_fg_name},
movie_actor = #{movie_actor},
movie_director = #{movie_director},
movie_detail = #{movie_detail},
movie_duration = #{movie_duration},
movie_type = #{movie_type},
movie_country = #{movie_country},
movie_picture = #{movie_picture}
</set>
where movie_id = #{movie_id}
</update>
<update id="deleteMovieCommentCount" parameterType="long">
update movie set movie_commentCount = movie_commentCount -1 where movie_id = #{movie_id}
</update>
<update id="addMovieCommentCount" parameterType="long">
update movie set movie_commentCount = movie_commentCount +1 where movie_id = #{movie_id}
</update>
<select id="findAllMovies" parameterType="java.lang.Integer" resultMap="BaseResultMap">
select * from movie where movie_state = #{movie_state}
</select>
<select id="findMoviesLikeName" parameterType="java.lang.String" resultMap="BaseResultMap">
select * from movie where movie_cn_name like '%${value}%' and movie_state = 1
</select>
<select id="findMoviesLikeType" parameterType="java.lang.String" resultMap="BaseResultMap">
select * from movie where movie_type like '%${value}%' and movie_state = 1
</select>
<select id="sortMovieByDate" resultMap="BaseResultMap">
select * from movie where movie_state = 1 order by movie_releaseDate DESC
</select>
<select id="sortMovieByCount" resultMap="BaseResultMap">
select * from movie where movie_state = 1 order by movie_commentCount DESC
</select>
<select id="sortMovieByScore" resultMap="BaseResultMap">
select * from movie where movie_state = 1 order by movie_score DESC
</select>
<select id="sortMovieByBoxOffice" resultMap="BaseResultMap">
select * from movie where movie_state = 1 order by movie_boxOffice desc
</select>
<!-- 定义名为 BaseResultMap 的结果集映射,用于将从数据库查询返回的结果(按照列的形式)映射到 com.entity.Movie 实体类对应的属性上,方便 MyBatis 将数据库记录转换为 Java 对象,便于后续在程序中使用。 -->
<resultMap type="com.entity.Movie" id="BaseResultMap">
<!-- 将数据库表 movie 中的 movie_id 列的值映射到 Movie 实体类的 movie_id 属性上,属性类型为 long -->
<id property="movie_id" column="movie_id" javaType="long"/>
<!-- 将数据库表 movie 中的 movie_actor 列的值映射到 Movie 实体类的 movie_actor 属性上,属性类型为 java.lang.String -->
<result property="movie_actor" column="movie_actor" javaType="java.lang.String"/>
<!-- 将数据库表 movie 中的 movie_boxOffice 列的值映射到 Movie 实体类的 movie_boxOffice 属性上,属性类型为 float -->
<result property="movie_boxOffice" column="movie_boxOffice" javaType="float"/>
<!-- 将数据库表 movie 中的 movie_cn_name 列的值映射到 Movie 实体类的 movie_cn_name 属性上,属性类型为 java.lang.String -->
<result property="movie_cn_name" column="movie_cn_name" javaType="java.lang.String"/>
<!-- 将数据库表 movie 中的 movie_commentCount 列的值映射到 Movie 实体类的 movie_commentCount 属性上,属性类型为 long -->
<result property="movie_commentCount" column="movie_commentCount" javaType="long"/>
<!-- 将数据库表 movie 中的 movie_country 列的值映射到 Movie 实体类的 movie_country 属性上,属性类型为 java.lang.String -->
<result property="movie_country" column="movie_country" javaType="java.lang.String"/>
<!-- 将数据库表 movie 中的 movie_detail 列的值映射到 Movie 实体类的 movie_detail 属性上,属性类型为 java.lang.String -->
<result property="movie_detail" column="movie_detail" javaType="java.lang.String"/>
<!-- 将数据库表 movie 中的 movie_director 列的值映射到 Movie 实体类的 movie_director 属性上,属性类型为 java.lang.String -->
<result property="movie_director" column="movie_director" javaType="java.lang.String"/>
<!-- 将数据库表 movie 中的 movie_duration 列的值映射到 Movie 实体类的 movie_duration 属性上,属性类型为 java.lang.String -->
<result property="movie_duration" column="movie_duration" javaType="java.lang.String"/>
<!-- 将数据库表 movie 中的 movie_fg_name 列的值映射到 Movie 实体类的 movie_fg_name 属性上,属性类型为 java.lang.String -->
<result property="movie_fg_name" column="movie_fg_name" javaType="java.lang.String"/>
<!-- 将数据库表 movie 中的 movie_picture 列的值映射到 Movie 实体类的 movie_picture 属性上,属性类型为 java.lang.String -->
<result property="movie_picture" column="movie_picture" javaType="java.lang.String"/>
<!-- 将数据库表 movie 中的 movie_score 列的值映射到 Movie 实体类的 movie_score 属性上,属性类型为 float -->
<result property="movie_score" column="movie_score" javaType="float"/>
<!-- 将数据库表 movie 中的 movie_type 列的值映射到 Movie 实体类的 movie_type 属性上,属性类型为 java.lang.String -->
<result property="movie_type" column="movie_type" javaType="java.lang.String"/>
<!-- 将数据库表 movie 中的 movie_releaseDate 列的值映射到 Movie 实体类的 movie_releaseDate 属性上,属性类型为 java.sql.Date -->
<result property="movie_releaseDate" column="movie_releaseDate" javaType="java.sql.Date"/>
<!-- 将数据库表 movie 中的 movie_state 列的值映射到 Movie 实体类的 movie_state 属性上,属性类型为 java.lang.Integer -->
<result property="movie_state" column="movie_state" javaType="java.lang.Integer"/>
</resultMap>
<!-- 定义名为 findMovieById 的查询语句用于根据电影的唯一标识ID从 movie 表中查询对应的电影信息。
参数类型为 long表示传入的参数是一个长整型的电影 ID查询结果通过 BaseResultMap 定义的映射关系转换为 Movie 实体对象返回。 -->
<select id="findMovieById" parameterType="long" resultMap="BaseResultMap">
select * from movie where movie_id = #{movie_id}
</select>
<!-- 定义名为 findMovieByName 的查询语句,用于根据电影的中文名称从 movie 表中查询对应的电影信息。
参数类型为 java.lang.String表示传入的参数是一个字符串类型的电影中文名称查询结果通过 BaseResultMap 定义的映射关系转换为 Movie 实体对象返回。 -->
<select id="findMovieByName" parameterType="java.lang.String" resultMap="BaseResultMap">
select * from movie where movie_cn_name = #{movie_cn_name}
</select>
<!-- 定义名为 addMovie 的插入语句,用于向 movie 表中插入一条新的电影记录。
参数类型为 com.entity.Movie表示传入的参数是一个 Movie 实体对象,从该对象中获取 movie_cn_name、movie_fg_name、movie_actor、movie_director、movie_detail、movie_duration、movie_type、movie_score、movie_releaseDate、movie_country 和 movie_picture 等属性值,插入到 movie 表对应的列中,实现新增电影记录的操作。 -->
<insert id="addMovie" parameterType="com.entity.Movie">
insert into movie(movie_cn_name,movie_fg_name,movie_actor,movie_director,movie_detail,movie_duration,movie_type,movie_score,movie_releaseDate,movie_country,movie_picture)
values(#{movie_cn_name},#{movie_fg_name},#{movie_actor},#{movie_director},#{movie_detail},#{movie_duration},#{movie_type},#{movie_score},#{movie_releaseDate},#{movie_country},#{movie_picture})
</insert>
<!-- 定义名为 deleteMovie 的更新语句,用于将指定电影记录的状态标记为下架(这里将 movie_state 设置为 0通常表示下架状态
参数类型为 long表示传入的参数是一个长整型的电影 ID根据该 ID 更新 movie 表中对应电影记录的 movie_state 字段值,以此实现电影下架的逻辑操作。 -->
<update id="deleteMovie" parameterType="long">
update movie
<set>
movie_state = 0
</set>
where movie_id = #{movie_id}
</update>
<!-- 定义名为 changeMovieBoxOffice 的更新语句,用于更新指定电影的票房数据,将原票房数值加上传入的票房增量值。
这里通过 SQL 语句中的 movie_boxOffice = movie_boxOffice + #{movie_boxOffice} 实现票房的累加更新操作,更新条件是 movie_id 列的值与传入的电影 ID 参数值相等,用于在电影有新的票房收入时更新数据库中的票房数据。 -->
<update id="changeMovieBoxOffice">
update movie set movie_boxOffice = movie_boxOffice + #{movie_boxOffice} where movie_id = #{movie_id}
</update>
<!-- 定义名为 updateMovie 的更新语句,用于更新 movie 表中指定电影记录的部分信息(除了 movie_id、movie_state 等未在 <set> 标签内列出的字段,通常这些字段在更新时可能有特殊逻辑或不常变动)。
参数类型为 com.entity.Movie表示传入的参数是一个 Movie 实体对象,根据该对象中的 movie_cn_name、movie_fg_name、movie_actor、movie_director、movie_detail、movie_duration、movie_type、movie_country 和 movie_picture 等属性值来更新对应电影记录的相应列的值,更新条件是 movie_id 列的值与传入对象的 movie_id 属性值相等,通过 <set> 标签来动态生成需要更新的列,避免不必要的列更新为空值等情况。 -->
<update id="updateMovie" parameterType="com.entity.Movie">
update movie
<set>
movie_cn_name = #{movie_cn_name},
movie_fg_name = #{movie_fg_name},
movie_actor = #{movie_actor},
movie_director = #{movie_director},
movie_detail = #{movie_detail},
movie_duration = #{movie_duration},
movie_type = #{movie_type},
movie_country = #{movie_country},
movie_picture = #{movie_picture}
</set>
where movie_id = #{movie_id}
</update>
<!-- 定义名为 deleteMovieCommentCount 的更新语句用于将指定电影的评论人数movie_commentCount 字段)减 1通常用于在有用户删除对应电影的评论等情况下更新评论人数统计数据。
参数类型为 long表示传入的参数是一个长整型的电影 ID根据该 ID 更新 movie 表中对应电影记录的 movie_commentCount 字段值,实现评论人数的递减操作。 -->
<update id="deleteMovieCommentCount" parameterType="long">
update movie set movie_commentCount = movie_commentCount - 1 where movie_id = #{movie_id}
</update>
<!-- 定义名为 addMovieCommentCount 的更新语句用于将指定电影的评论人数movie_commentCount 字段)加 1比如在有新用户对该电影发表评论时调用此方法来更新评论人数统计数据。
参数类型为 long表示传入的参数是一个长整型的电影 ID根据该 ID 更新 movie 表中对应电影记录的 movie_commentCount 字段值,实现评论人数的递增操作。 -->
<update id="addMovieCommentCount" parameterType="long">
update movie set movie_commentCount = movie_commentCount + 1 where movie_id = #{movie_id}
</update>
<!-- 定义名为 findAllMovies 的查询语句,用于根据电影的状态查询所有符合该状态的电影信息。
参数类型为 java.lang.Integer表示传入的参数是一个整数类型的电影状态值查询结果通过 BaseResultMap 定义的映射关系转换为 Movie 实体对象,并以列表形式返回所有符合该状态的电影记录对应的 Movie 对象集合,方便按状态获取电影列表,例如获取所有在线(状态值表示在线的情况)的电影信息等。 -->
<select id="findAllMovies" parameterType="java.lang.Integer" resultMap="BaseResultMap">
select * from movie where movie_state = #{movie_state}
</select>
<!-- 定义名为 findMoviesLikeName 的查询语句用于根据电影的中文名称进行模糊查询并且只查询处于在线状态movie_state = 1通常 1 表示在线)的电影信息。
参数类型为 java.lang.String表示传入的参数是一个字符串类型的电影中文名称通过使用 LIKE 关键字结合通配符 '%${value}%'(此处使用 ${} 是为了直接将传入的字符串拼接进 SQL 语句实现模糊匹配,需注意防止 SQL 注入问题),在 movie 表中查找名称符合模糊匹配条件且状态为在线的电影记录,查询结果通过 BaseResultMap 映射为 Movie 实体对象并返回对应的电影集合,常用于电影搜索功能实现。 -->
<select id="findMoviesLikeName" parameterType="java.lang.String" resultMap="BaseResultMap">
select * from movie where movie_cn_name like '%${value}%' and movie_state = 1
</select>
<!-- 定义名为 findMoviesLikeType 的查询语句用于根据电影类型进行模糊查询并且只查询处于在线状态movie_state = 1的电影信息。
参数类型为 java.lang.String表示传入的参数是一个字符串类型的电影类型通过使用 LIKE 关键字结合通配符 '%${value}%' 在 movie 表中查找类型符合模糊匹配条件且状态为在线的电影记录,查询结果通过 BaseResultMap 映射为 Movie 实体对象并返回对应的电影集合,便于用户按类型查找感兴趣的电影。 -->
<select id="findMoviesLikeType" parameterType="java.lang.String" resultMap="BaseResultMap">
select * from movie where movie_type like '%${value}%' and movie_state = 1
</select>
<!-- 定义名为 sortMovieByDate 的查询语句用于按照电影的上映时间movie_releaseDate 字段对所有处于在线状态movie_state = 1的电影进行降序排序并返回排序后的电影信息列表。
查询结果通过 BaseResultMap 定义的映射关系转换为 Movie 实体对象,并以列表形式返回排序后的电影记录对应的 Movie 对象集合,方便按照上映时间展示电影,例如展示新上映电影在前的列表等情况。 -->
<select id="sortMovieByDate" resultMap="BaseResultMap">
select * from movie where movie_state = 1 order by movie_releaseDate DESC
</select>
<!-- 定义名为 sortMovieByCount 的查询语句用于按照电影的评论人数movie_commentCount 字段对所有处于在线状态movie_state = 1的电影进行降序排序并返回排序后的电影信息列表。
查询结果通过 BaseResultMap 定义的映射关系转换为 Movie 实体对象,并以列表形式返回排序后的电影记录对应的 Movie 对象集合,可用于展示热门评论电影等相关业务场景,例如评论数多的电影排在前面。 -->
<select id="sortMovieByCount" resultMap="BaseResultMap">
select * from movie where movie_state = 1 order by movie_commentCount DESC
</select>
<!-- 定义名为 sortMovieByScore 的查询语句用于按照电影的评分movie_score 字段对所有处于在线状态movie_state = 1的电影进行降序排序并返回排序后的电影信息列表。
查询结果通过 BaseResultMap 定义的映射关系转换为 Movie 实体对象,并以列表形式返回排序后的电影记录对应的 Movie 对象集合,有助于展示高分电影在前等排序结果给用户查看,方便用户选择评分较高的电影。 -->
<select id="sortMovieByScore" resultMap="BaseResultMap">
select * from movie where movie_state = 1 order by movie_score DESC
</select>
<!-- 定义名为 sortMovieByBoxOffice 的查询语句用于按照电影的票房movie_boxOffice 字段对所有处于在线状态movie_state = 1的电影进行降序排序并返回排序后的电影信息列表。
查询结果通过 BaseResultMap 定义的映射关系转换为 Movie 实体对象,并以列表形式返回排序后的电影记录对应的 Movie 对象集合,方便展示票房排名情况等业务场景,例如票房排行榜等,让用户可以看到票房较高的电影。 -->
<select id="sortMovieByBoxOffice" resultMap="BaseResultMap">
select * from movie where movie_state = 1 order by movie_boxOffice desc
</select>
</mapper>

@ -6,16 +6,89 @@ import org.springframework.stereotype.Repository;
import com.entity.Order;
/**
* OrderMapperOrder
* Mapper
* 使`@Repository`Spring便Spring
*/
@Repository
public interface OrderMapper {
Order findOrderById(String order_id);
Integer addOrder(Order order);
Integer updateOrderStateToRefund(String order_id); //申请退票
Integer updateOrderStateToRefunded(String order_id); //同意退票
List<Order> findRefundOrderByUserName(String user_name);
List<Order> findOrdersByUserName(String user_name);
List<Order> findAllOrders();
List<Order> findOrdersByScheduleId(long schedule_id);
List<Order> findOrdersByState(int order_state);
}
/**
* ID
* SQL使MyBatisXMLSQLID`Order`便
* @param order_id
* @return `Order``null`
*/
Order findOrderById(String order_id);
/**
*
* SQL`Order`
* 10
* @param order `Order`
* @return `Integer`
*/
Integer addOrder(Order order);
/**
* 退
* SQLorder_id退退
* 10退
* @param order_id 退
* @return `Integer`
*/
Integer updateOrderStateToRefund(String order_id); //申请退票
/**
* 退
* SQLorder_id退退
* 退
* @param order_id 退
* @return `Integer`
*/
Integer updateOrderStateToRefunded(String order_id); //同意退票
/**
* 退
* SQL退
* `Order``List<Order>`便退便退
* @param user_name 退
* @return `Order``List`退退
*/
List<Order> findRefundOrderByUserName(String user_name);
/**
*
* SQL
* `Order``List<Order>`便
* @param user_name
* @return `Order``List`
*/
List<Order> findOrdersByUserName(String user_name);
/**
*
* SQL`Order``List<Order>`便
* @return `Order``List`
*/
List<Order> findAllOrders();
/**
* ID
* SQLID
* `Order``List<Order>`便
* @param schedule_id
* @return `Order``List`
*/
List<Order> findOrdersByScheduleId(long schedule_id);
/**
*
* SQL10退
* `Order``List<Order>`便
* @param order_state
* @return `Order``List`
*/
List<Order> findOrdersByState(int order_state);
}

@ -2,51 +2,65 @@
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!-- 定义一个名为 OrderMapper 的映射器,与 com.mapper 包下的 OrderMapper 接口相对应 -->
<mapper namespace="com.mapper.OrderMapper">
<resultMap type="com.entity.Order" id="BaseResultMap">
<id property="order_id" column="order_id" javaType="java.lang.String"/>
<result property="order_position" column="order_position" javaType="java.lang.String"/>
<result property="order_state" column="order_state" javaType="java.lang.Integer"/>
<result property="schedule_id" column="schedule_id" javaType="long"/>
<result property="user_id" column="user_id" javaType="long"/>
<result property="order_price" column="order_price" javaType="java.lang.Integer"/>
<result property="order_time" column="order_time" javaType="java.util.Date"/>
</resultMap>
<select id="findOrderById" parameterType="java.lang.String" resultMap="BaseResultMap">
select * from orderinfo where order_id = #{order_id}
</select>
<select id="findAllOrders" resultMap="BaseResultMap">
select * from orderinfo order by order_time desc
</select>
<select id="findOrdersByScheduleId" parameterType="long" resultMap="BaseResultMap">
select * from orderinfo where schedule_id = #{schedule_id} and order_state != 2 order by order_time desc
</select>
<select id="findOrdersByState" parameterType="int" resultMap="BaseResultMap">
select * from orderinfo where order_state = #{order_state} order by order_time desc
</select>
<select id="findOrdersByUserName" parameterType="java.lang.String" resultMap="BaseResultMap">
select orderinfo.* from orderinfo,user where orderinfo.user_id = user.user_id and user.user_name = #{user_name} order by order_time desc
</select>
<select id="findRefundOrderByUserName" parameterType="java.lang.String" resultMap="BaseResultMap">
select orderinfo.* from orderinfo,user where orderinfo.user_id = user.user_id and user.user_name = #{user_name} and orderinfo.order_state = 0 order by order_time desc
</select>
<insert id="addOrder" parameterType="com.entity.Order">
insert into orderinfo(order_id,order_position,schedule_id,user_id,order_price,order_time)
values(#{order_id},#{order_position},#{schedule_id},#{user_id},#{order_price},#{order_time})
</insert>
<update id="updateOrderStateToRefund" parameterType="java.lang.String">
update orderinfo set order_state = 0 where order_id = #{order_id}
</update>
<update id="updateOrderStateToRefunded" parameterType="java.lang.String">
update orderinfo set order_state = 2 where order_id = #{order_id}
</update>
<!-- 定义一个 resultMap用于将查询结果映射到 Java 对象 com.entity.Order -->
<resultMap type="com.entity.Order" id="BaseResultMap">
<!-- 指定主键字段 order_id 映射到 Order 类的 order_id 属性 -->
<id property="order_id" column="order_id" javaType="java.lang.String"/>
<!-- 映射其他非主键字段 -->
<result property="order_position" column="order_position" javaType="java.lang.String"/>
<result property="order_state" column="order_state" javaType="java.lang.Integer"/>
<result property="schedule_id" column="schedule_id" javaType="long"/>
<result property="user_id" column="user_id" javaType="long"/>
<result property="order_price" column="order_price" javaType="java.lang.Integer"/>
<result property="order_time" column="order_time" javaType="java.util.Date"/>
</resultMap>
<!-- 根据订单 ID 查询单个订单 -->
<select id="findOrderById" parameterType="java.lang.String" resultMap="BaseResultMap">
select * from orderinfo where order_id = #{order_id}
</select>
<!-- 查询所有订单,并按订单时间降序排列 -->
<select id="findAllOrders" resultMap="BaseResultMap">
select * from orderinfo order by order_time desc
</select>
<!-- 根据日程表 ID 查询订单,排除状态为 2可能表示已退款的订单并按订单时间降序排列 -->
<select id="findOrdersByScheduleId" parameterType="long" resultMap="BaseResultMap">
select * from orderinfo where schedule_id = #{schedule_id} and order_state != 2 order by order_time desc
</select>
<!-- 根据订单状态查询订单,并按订单时间降序排列 -->
<select id="findOrdersByState" parameterType="int" resultMap="BaseResultMap">
select * from orderinfo where order_state = #{order_state} order by order_time desc
</select>
<!-- 根据用户名查询该用户的订单,并按订单时间降序排列 -->
<select id="findOrdersByUserName" parameterType="java.lang.String" resultMap="BaseResultMap">
select orderinfo.* from orderinfo,user where orderinfo.user_id = user.user_id and user.user_name = #{user_name} order by order_time desc
</select>
<!-- 查询特定用户的待退款订单(假设状态 0 表示待退款),并按订单时间降序排列 -->
<select id="findRefundOrderByUserName" parameterType="java.lang.String" resultMap="BaseResultMap">
select orderinfo.* from orderinfo,user where orderinfo.user_id = user.user_id and user.user_name = #{user_name} and orderinfo.order_state = 0 order by order_time desc
</select>
<!-- 插入新订单记录 -->
<insert id="addOrder" parameterType="com.entity.Order">
insert into orderinfo(order_id,order_position,schedule_id,user_id,order_price,order_time)
values(#{order_id},#{order_position},#{schedule_id},#{user_id},#{order_price},#{order_time})
</insert>
<!-- 更新订单状态为待退款(假设状态 0 表示待退款) -->
<update id="updateOrderStateToRefund" parameterType="java.lang.String">
update orderinfo set order_state = 0 where order_id = #{order_id}
</update>
<!-- 更新订单状态为已退款(假设状态 2 表示已退款) -->
<update id="updateOrderStateToRefunded" parameterType="java.lang.String">
update orderinfo set order_state = 2 where order_id = #{order_id}
</update>
</mapper>

@ -7,18 +7,118 @@ import org.springframework.stereotype.Repository;
import com.entity.Schedule;
/**
* ScheduleMapperSchedule
* Mapper
* 使`@Repository`Spring便Spring
*/
@Repository
public interface ScheduleMapper {
Schedule findScheduleById(long schedule_id);
Integer addSchedule(Schedule schedule);
Integer updateSchedule(Schedule schedule);
Integer deleteSchedule(long schedule_id);
Integer addScheduleRemain(long schedule_id);
Integer delScheduleRemain(long schedule_id);
List<Schedule> findScheduleByMovieName(String movie_name);
List<Schedule> findOffScheduleByMovieName(String movie_name);
List<Schedule> findScheduleByState(int schedule_state);
List<Schedule> findAllSchedule();
List<Schedule> findScheduleByCinemaAndMovie(@Param("cinema_id")long cinema_id,@Param("movie_id")long movie_id);
List<Schedule> findScheduleByCinemaAndMovieAndHall(@Param("hall_id")long hall_id,@Param("cinema_id")long cinema_id,@Param("movie_id")long movie_id);
}
/**
* ID
* SQL使MyBatisXMLSQLID`Schedule`便
* @param schedule_id
* @return `Schedule``null`
*/
Schedule findScheduleById(long schedule_id);
/**
*
* SQL`Schedule`
* 10
* @param schedule `Schedule`
* @return `Integer`
*/
Integer addSchedule(Schedule schedule);
/**
* `Schedule`
* SQL`Schedule`
*
* @param schedule `Schedule`
* @return `Integer`
*/
Integer updateSchedule(Schedule schedule);
/**
* ID
* SQLID10
* @param schedule_id
* @return `Integer`
*/
Integer deleteSchedule(long schedule_id);
/**
*
* SQLschedule_idSQL
* 退
* @param schedule_id
* @return `Integer`
*/
Integer addScheduleRemain(long schedule_id);
/**
*
* SQLIDschedule_id
*
* @param schedule_id
* @return `Integer`
*/
Integer delScheduleRemain(long schedule_id);
/**
*
* SQL
* `Schedule``List<Schedule>`便便
* @param movie_name
* @return `Schedule``List`
*/
List<Schedule> findScheduleByMovieName(String movie_name);
/**
*
* SQL线
* `Schedule``List<Schedule>`
* @param movie_name
* @return `Schedule``List`
*/
List<Schedule> findOffScheduleByMovieName(String movie_name);
/**
*
* SQL10
* `Schedule``List<Schedule>`便
* @param schedule_state
* @return `Schedule``List`
*/
List<Schedule> findScheduleByState(int schedule_state);
/**
*
* SQL`Schedule``List<Schedule>`便
* @return `Schedule``List`
*/
List<Schedule> findAllSchedule();
/**
* IDID
* `@Param`便SQLSQLIDID
* `Schedule``List<Schedule>`便
* @param cinema_id
* @param movie_id
* @return `Schedule``List`
*/
List<Schedule> findScheduleByCinemaAndMovie(@Param("cinema_id") long cinema_id, @Param("movie_id") long movie_id);
/**
* IDIDID
* `@Param`SQLIDIDID
* `Schedule``List<Schedule>`
* @param hall_id
* @param cinema_id
* @param movie_id
* @return `Schedule``List`
*/
List<Schedule> findScheduleByCinemaAndMovieAndHall(@Param("hall_id") long hall_id, @Param("cinema_id") long cinema_id, @Param("movie_id") long movie_id);
}

@ -2,71 +2,88 @@
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!-- 定义一个名为 ScheduleMapper 的映射器,与 com.mapper 包下的 ScheduleMapper 接口相对应 -->
<mapper namespace="com.mapper.ScheduleMapper">
<resultMap type="com.entity.Schedule" id="BaseResultMap">
<id property="schedule_id" column="schedule_id" javaType="long"/>
<result property="hall_id" column="hall_id" javaType="long"/>
<result property="movie_id" column="movie_id" javaType="long"/>
<result property="schedule_price" column="schedule_price" javaType="java.lang.Integer"/>
<result property="schedule_remain" column="schedule_remain" javaType="java.lang.Integer"/>
<result property="schedule_startTime" column="schedule_startTime" javaType="java.lang.String"/>
<result property="schedule_state" column="schedule_state" javaType="java.lang.Integer"/>
</resultMap>
<select id="findScheduleById" parameterType="long" resultMap="BaseResultMap">
select * from schedule where schedule_id = #{schedule_id}
</select>
<select id="findScheduleByState" parameterType="java.lang.Integer" resultMap="BaseResultMap">
select * from schedule where schedule_state = #{schedule_state}
</select>
<select id="findScheduleByCinemaAndMovie" resultMap="BaseResultMap">
select schedule.* from schedule,hall where schedule.hall_id=hall.hall_id
and hall.cinema_id = #{cinema_id} and movie_id = #{movie_id} and schedule_state = 1
</select>
<select id="findScheduleByCinemaAndMovieAndHall" resultMap="BaseResultMap">
select schedule.* from schedule,hall where schedule.hall_id=hall.hall_id
and hall.cinema_id = #{cinema_id} and movie_id = #{movie_id} and schedule.hall_id = #{hall_id} and schedule_state = 1
</select>
<select id="findAllSchedule" resultMap="BaseResultMap">
select * from schedule
</select>
<select id="findScheduleByMovieName" parameterType="java.lang.String" resultMap="BaseResultMap">
select schedule.* from schedule,movie
where schedule.movie_id = movie.movie_id and schedule.schedule_state = 1 and movie.movie_cn_name like '%${value}%'
</select>
<select id="findOffScheduleByMovieName" parameterType="java.lang.String" resultMap="BaseResultMap">
select schedule.* from schedule,movie
where schedule.movie_id = movie.movie_id and schedule.schedule_state = 0 and movie.movie_cn_name like '%${value}%'
</select>
<insert id="addSchedule" parameterType="com.entity.Schedule">
insert into schedule(hall_id,movie_id,schedule_price,schedule_remain,schedule_startTime)
values(#{hall_id},#{movie_id},#{schedule_price},#{schedule_remain},#{schedule_startTime})
</insert>
<update id="updateSchedule" parameterType="com.entity.Schedule">
update schedule
<set>
schedule_price = #{schedule_price}
</set>
where schedule_id = #{schedule_id}
</update>
<update id="deleteSchedule" parameterType="long">
update schedule set schedule_state = 0 where schedule_id = #{schedule_id}
</update>
<update id="addScheduleRemain" parameterType="long">
update schedule set schedule_remain = schedule_remain + 1 where schedule_id = #{schedule_id}
</update>
<update id="delScheduleRemain" parameterType="long">
update schedule set schedule_remain = schedule_remain - 1 where schedule_id = #{schedule_id}
</update>
<!-- 定义一个 resultMap用于将查询结果映射到 Java 对象 com.entity.Schedule -->
<resultMap type="com.entity.Schedule" id="BaseResultMap">
<!-- 指定主键字段 schedule_id 映射到 Schedule 类的 schedule_id 属性 -->
<id property="schedule_id" column="schedule_id" javaType="long"/>
<!-- 映射其他非主键字段 -->
<result property="hall_id" column="hall_id" javaType="long"/>
<result property="movie_id" column="movie_id" javaType="long"/>
<result property="schedule_price" column="schedule_price" javaType="java.lang.Integer"/>
<result property="schedule_remain" column="schedule_remain" javaType="java.lang.Integer"/>
<result property="schedule_startTime" column="schedule_startTime" javaType="java.lang.String"/>
<result property="schedule_state" column="schedule_state" javaType="java.lang.Integer"/>
</resultMap>
<!-- 根据日程表 ID 查询单个日程表信息 -->
<select id="findScheduleById" parameterType="long" resultMap="BaseResultMap">
select * from schedule where schedule_id = #{schedule_id}
</select>
<!-- 根据日程表状态查询日程表信息 -->
<select id="findScheduleByState" parameterType="java.lang.Integer" resultMap="BaseResultMap">
select * from schedule where schedule_state = #{schedule_state}
</select>
<!-- 根据影院 ID 和电影 ID 查询日程表信息,仅包括状态为 1可能表示正在上映的日程表 -->
<select id="findScheduleByCinemaAndMovie" resultMap="BaseResultMap">
select schedule.* from schedule,hall where schedule.hall_id=hall.hall_id
and hall.cinema_id = #{cinema_id} and movie_id = #{movie_id} and schedule_state = 1
</select>
<!-- 根据影院 ID、电影 ID 和影厅 ID 查询日程表信息,仅包括状态为 1可能表示正在上映的日程表 -->
<select id="findScheduleByCinemaAndMovieAndHall" resultMap="BaseResultMap">
select schedule.* from schedule,hall where schedule.hall_id=hall.hall_id
and hall.cinema_id = #{cinema_id} and movie_id = #{movie_id} and schedule.hall_id = #{hall_id} and schedule_state = 1
</select>
<!-- 查询所有日程表信息 -->
<select id="findAllSchedule" resultMap="BaseResultMap">
select * from schedule
</select>
<!-- 根据电影中文名称模糊查询日程表信息,仅包括状态为 1可能表示正在上映的日程表 -->
<select id="findScheduleByMovieName" parameterType="java.lang.String" resultMap="BaseResultMap">
select schedule.* from schedule,movie
where schedule.movie_id = movie.movie_id and schedule.schedule_state = 1 and movie.movie_cn_name like '%${value}%'
</select>
<!-- 根据电影中文名称模糊查询已下线的日程表信息,仅包括状态为 0可能表示已下线的日程表 -->
<select id="findOffScheduleByMovieName" parameterType="java.lang.String" resultMap="BaseResultMap">
select schedule.* from schedule,movie
where schedule.movie_id = movie.movie_id and schedule.schedule_state = 0 and movie.movie_cn_name like '%${value}%'
</select>
<!-- 插入新的日程表记录 -->
<insert id="addSchedule" parameterType="com.entity.Schedule">
insert into schedule(hall_id,movie_id,schedule_price,schedule_remain,schedule_startTime)
values(#{hall_id},#{movie_id},#{schedule_price},#{schedule_remain},#{schedule_startTime})
</insert>
<!-- 更新日程表的价格 -->
<update id="updateSchedule" parameterType="com.entity.Schedule">
update schedule
<set>
schedule_price = #{schedule_price}
</set>
where schedule_id = #{schedule_id}
</update>
<!-- 将日程表的状态设置为 0可能表示下线实际上是一种逻辑删除 -->
<update id="deleteSchedule" parameterType="long">
update schedule set schedule_state = 0 where schedule_id = #{schedule_id}
</update>
<!-- 增加日程表的剩余座位数 -->
<update id="addScheduleRemain" parameterType="long">
update schedule set schedule_remain = schedule_remain + 1 where schedule_id = #{schedule_id}
</update>
<!-- 减少日程表的剩余座位数 -->
<update id="delScheduleRemain" parameterType="long">
update schedule set schedule_remain = schedule_remain - 1 where schedule_id = #{schedule_id}
</update>
</mapper>

@ -5,13 +5,65 @@ import java.util.List;
import org.springframework.stereotype.Repository;
import com.entity.User;
/**
* 访DAO
*/
@Repository
public interface UserMapper {
User findUserById(long user_id);
Integer addUser(User user);
Integer deleteUser(long user_id);
Integer updateUser(User user);
List<User> findAllUser();
List<User> findUserByName(String name);
List<User> findUserLikeName(String name);
}
/**
* ID
*
* @param user_id ID
* @return null
*/
User findUserById(long user_id);
/**
*
*
* @param user
* @return 10
*/
Integer addUser(User user);
/**
* ID
*
* @param user_id ID
* @return 10
*/
Integer deleteUser(long user_id);
/**
* ID
*
* @param user
* @return 10
*/
Integer updateUser(User user);
/**
*
*
* @return
*/
List<User> findAllUser();
/**
*
*
* @param name
* @return
*/
List<User> findUserByName(String name);
/**
*
*
* @param name
* @return
*/
List<User> findUserLikeName(String name);
}

@ -1,44 +1,71 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!-- 此 XML 文件为 MyBatis 的映射文件,用于定义与数据库交互的 SQL 语句以及结果集映射关系等配置内容,其对应的接口是 com.mapper.UserMapper主要负责处理用户User相关的数据操作。 -->
<mapper namespace="com.mapper.UserMapper">
<resultMap type="com.entity.User" id="BaseResultMap">
<id property="user_id" column="user_id" javaType="long"/>
<result property="user_name" column="user_name" javaType="java.lang.String"/>
<result property="user_pwd" column="user_pwd" javaType="java.lang.String"/>
<result property="user_email" column="user_email" javaType="java.lang.String"/>
<result property="user_role" column="user_role" javaType="java.lang.Integer"/>
<result property="user_headImg" column="user_headImg" javaType="java.lang.String"/>
</resultMap>
<select id="findUserById" parameterType="long" resultMap="BaseResultMap">
select * from user where user_id = #{id}
</select>
<select id="findAllUser" resultMap="BaseResultMap">
select * from user
</select>
<select id="findUserByName" parameterType="java.lang.String" resultMap="BaseResultMap">
select * from user where user_name = #{name}
</select>
<select id="findUserLikeName" parameterType="java.lang.String" resultMap="BaseResultMap">
select * from user where user_name like '%${value}%'
</select>
<insert id="addUser" parameterType="com.entity.User">
insert into user(user_name,user_pwd,user_email)
values(#{user_name},#{user_pwd},#{user_email})
</insert>
<update id="updateUser" parameterType="com.entity.User">
update user
<set>
<if test="user_name!=null">
user_name = #{user_name},
</if>
<if test="user_pwd!=null">
user_pwd = #{user_pwd},
</if>
user_email = #{user_email},
user_headImg = #{user_headImg}
</set>
where user_id = #{user_id}
</update>
<!-- 定义名为 BaseResultMap 的结果集映射,用于将从数据库查询返回的结果(按照列的形式)映射到 com.entity.User 实体类对应的属性上,方便 MyBatis 将数据库记录转换为 Java 对象,便于后续在程序中使用。 -->
<resultMap type="com.entity.User" id="BaseResultMap">
<!-- 将数据库表 user 中的 user_id 列的值映射到 User 实体类的 user_id 属性上,属性类型为 long -->
<id property="user_id" column="user_id" javaType="long"/>
<!-- 将数据库表 user 中的 user_name 列的值映射到 User 实体类的 user_name 属性上,属性类型为 java.lang.String -->
<result property="user_name" column="user_name" javaType="java.lang.String"/>
<!-- 将数据库表 user 中的 user_pwd 列的值映射到 User 实体类的 user_pwd 属性上,属性类型为 java.lang.String -->
<result property="user_pwd" column="user_pwd" javaType="java.lang.String"/>
<!-- 将数据库表 user 中的 user_email 列的值映射到 User 实体类的 user_email 属性上,属性类型为 java.lang.String -->
<result property="user_email" column="user_email" javaType="java.lang.String"/>
<!-- 将数据库表 user 中的 user_role 列的值映射到 User 实体类的 user_role 属性上,属性类型为 java.lang.Integer -->
<result property="user_role" column="user_role" javaType="java.lang.Integer"/>
<!-- 将数据库表 user 中的 user_headImg 列的值映射到 User 实体类的 user_headImg 属性上,属性类型为 java.lang.String -->
<result property="user_headImg" column="user_headImg" javaType="java.lang.String"/>
</resultMap>
<!-- 定义名为 findUserById 的查询语句用于根据用户的唯一标识ID从 user 表中查询对应的用户信息。
参数类型为 long表示传入的参数是一个长整型的用户 ID查询结果通过 BaseResultMap 定义的映射关系转换为 User 实体对象返回。 -->
<select id="findUserById" parameterType="long" resultMap="BaseResultMap">
select * from user where user_id = #{id}
</select>
<!-- 定义名为 findAllUser 的查询语句,用于从 user 表中查询所有的用户信息。
查询结果通过 BaseResultMap 定义的映射关系转换为 User 实体对象,并以列表形式返回所有用户记录对应的 User 对象集合。 -->
<select id="findAllUser" resultMap="BaseResultMap">
select * from user
</select>
<!-- 定义名为 findUserByName 的查询语句,用于根据用户的名称(通常为用户名)从 user 表中查询对应的用户信息。
参数类型为 java.lang.String表示传入的参数是一个字符串类型的用户名查询结果通过 BaseResultMap 定义的映射关系转换为 User 实体对象返回。 -->
<select id="findUserByName" parameterType="java.lang.String" resultMap="BaseResultMap">
select * from user where user_name = #{name}
</select>
<!-- 定义名为 findUserLikeName 的查询语句,用于根据用户名称进行模糊查询。
参数类型为 java.lang.String表示传入的参数是一个字符串类型的用户名称通过使用 LIKE 关键字结合通配符 '%${value}%'(此处使用 ${} 是为了直接将传入的字符串拼接进 SQL 语句实现模糊匹配,需注意防止 SQL 注入问题),在 user 表中查找名称符合模糊匹配条件的用户记录,查询结果通过 BaseResultMap 映射为 User 实体对象并返回对应的用户集合,常用于用户搜索等功能实现。 -->
<select id="findUserLikeName" parameterType="java.lang.String" resultMap="BaseResultMap">
select * from user where user_name like '%${value}%'
</select>
<!-- 定义名为 addUser 的插入语句,用于向 user 表中插入一条新的用户记录。
参数类型为 com.entity.User表示传入的参数是一个 User 实体对象,从该对象中获取 user_name、user_pwd 和 user_email 等属性值,插入到 user 表对应的列中,实现新增用户记录的操作。注意这里插入时未包含 user_role 和 user_headImg 字段,可能在业务逻辑中有默认值设置或者后续更新等操作来完善这两个字段的值。 -->
<insert id="addUser" parameterType="com.entity.User">
insert into user(user_name,user_pwd,user_email)
values(#{user_name},#{user_pwd},#{user_email})
</insert>
<!-- 定义名为 updateUser 的更新语句,用于更新 user 表中指定用户记录的部分信息。
参数类型为 com.entity.User表示传入的参数是一个 User 实体对象,通过 <if> 标签进行条件判断,当传入对象的 user_name 属性不为空时,才会将对应的 user_name 列值更新为传入对象的 user_name 属性值;同理,当 user_pwd 属性不为空时更新 user_pwd 列的值;而 user_email 和 user_headImg 列无论对应属性值是否为空都会进行更新(此处的逻辑可根据业务需求调整),更新条件是 user_id 列的值与传入对象的 user_id 属性值相等,通过 <set> 标签来动态生成需要更新的列,避免不必要的列更新为空值等情况。 -->
<update id="findUserById" parameterType="com.entity.User">
update user
<set>
<if test="user_name!=null">
user_name = #{user_name},
</if>
<if test="user_pwd!=null">
user_pwd = #{user_pwd},
</if>
user_email = #{user_email},
user_headImg = #{user_headImg}
</set>
where user_id = #{user_id}
</update>
</mapper>

@ -4,12 +4,66 @@ import java.util.List;
import com.entity.Cinema;
/**
* ICinemaServiceCinema
* Mapper
*/
public interface ICinemaService {
Cinema findCinemaById(long cinema_id);
Integer addCinema(Cinema cinema);
Integer updateCinema(Cinema cinema);
Integer deleteCinema(long cinema_id);
List<Cinema> findAllCinemas();
List<Cinema> findCinemasLikeName(String cinema_name);
List<Cinema> findCinemasByMovieId(long movie_id);
}
/**
* ID
* ID`Cinema`便
* @param cinema_id
* @return `Cinema``null`
*/
Cinema findCinemaById(long cinema_id);
/**
*
* `Cinema`10
* @param cinema `Cinema`
* @return `Integer`
*/
Integer addCinema(Cinema cinema);
/**
* `Cinema`
* `Cinema`
* @param cinema `Cinema`
* @return `Integer`
*/
Integer updateCinema(Cinema cinema);
/**
* ID
* ID10
* @param cinema_id
* @return `Integer`
*/
Integer deleteCinema(long cinema_id);
/**
*
* `Cinema``List<Cinema>`便
* @return `Cinema``List`
*/
List<Cinema> findAllCinemas();
/**
*
*
* `Cinema``List<Cinema>`便使
* @param cinema_name
* @return `Cinema``List`
*/
List<Cinema> findCinemasLikeName(String cinema_name);
/**
* ID
* ID
* `Cinema``List<Cinema>`便便
* @param movie_id
* @return `Cinema``List`
*/
List<Cinema> findCinemasByMovieId(long movie_id);
}

@ -5,13 +5,75 @@ import java.util.List;
import com.entity.Comment;
import com.github.pagehelper.PageInfo;
/**
* ICommentService
*/
public interface ICommentService {
Comment findCommentById(long comment_id);
Integer addComemnt(Comment comment);
Integer updateComment(Comment comment);
Integer deleteComment(long comment_id);
List<Comment> findAllComments();
List<Comment> findCommentsByMovieId(long movie_id);
PageInfo<Comment> findAllCommentsBySplitPage(Integer page,Integer limit,String keyword);
PageInfo<Comment> findCommentsByUserName(Integer page,Integer limit,String user_name);
}
/**
* ID
*
* @param comment_id ID
* @return Comment null
*/
Comment findCommentById(long comment_id);
/**
*
*
* @param comment Comment
* @return 10
*/
Integer addComemnt(Comment comment);
/**
* ID
*
* @param comment Comment
* @return 10
*/
Integer updateComment(Comment comment);
/**
* ID
*
* @param comment_id ID
* @return 10
*/
Integer deleteComment(long comment_id);
/**
*
*
* @return Comment
*/
List<Comment> findAllComments();
/**
* ID
*
* @param movie_id ID
* @return Comment
*/
List<Comment> findCommentsByMovieId(long movie_id);
/**
*
*
* @param page
* @param limit
* @param keyword
* @return PageInfo
*/
PageInfo<Comment> findAllCommentsBySplitPage(Integer page, Integer limit, String keyword);
/**
*
*
* @param page
* @param limit
* @param user_name
* @return PageInfo
*/
PageInfo<Comment> findCommentsByUserName(Integer page, Integer limit, String user_name);
}

@ -1,15 +1,66 @@
package com.service;
import java.util.List;
import com.entity.Hall;
/**
* IHallService
*/
public interface IHallService {
Hall findHallById(long hall_id);
Hall findHallByCinemaAndHallName(String cinema_name,String hall_name);
Integer addHall(Hall hall);
Integer updateHall(Hall hall);
Integer deleteHall(long hall_id);
List<Hall> findHallByCinemaId(long cinema_id);
List<Hall> findAllHalls();
}
/**
* ID
*
* @param hall_id ID
* @return Hall null
*/
Hall findHallById(long hall_id);
/**
*
*
* @param cinema_name
* @param hall_name
* @return Hall null
*/
Hall findHallByCinemaAndHallName(String cinema_name, String hall_name);
/**
*
*
* @param hall Hall
* @return 10
*/
Integer addHall(Hall hall);
/**
* ID
*
* @param hall Hall
* @return 10
*/
Integer updateHall(Hall hall);
/**
* ID
*
* @param hall_id ID
* @return 10
*/
Integer deleteHall(long hall_id);
/**
* ID
*
* @param cinema_id ID
* @return Hall
*/
List<Hall> findHallByCinemaId(long cinema_id);
/**
*
*
* @return Hall
*/
List<Hall> findAllHalls();
}

@ -4,21 +4,134 @@ import java.util.List;
import com.entity.Movie;
/**
* IMovieServiceMovie
*
*/
public interface IMovieService {
Movie findMovieById(long movie_id);
Movie findMovieByName(String movie_cn_name);
Integer addMovie(Movie movie);
Integer deleteMovie(long movie_id);
Integer updateMovie(Movie movie);
Integer delCommentCount(long movie_id);
Integer changeMovieBoxOffice(float price,long movie_id);
Integer addCommentCount(long movie_id);
List<Movie> findAllMovies(int movie_state);
List<Movie> findMoviesLikeName(String name);
List<Movie> findMoviesLikeType(String type);
//上映时间 参评人数 评分
List<Movie> sortMovieByDate();
List<Movie> sortMovieByCount();
List<Movie> sortMovieByScore();
List<Movie> sortMovieByBoxOffice();
}
/**
* 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`10
* @param movie `Movie`
* @return `Integer`
*/
Integer addMovie(Movie movie);
/**
* ID
* ID10
* @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);
/**
*
* 10
* `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();
}

@ -5,14 +5,86 @@ import java.util.List;
import com.entity.Order;
import com.github.pagehelper.PageInfo;
/**
* IOrderServiceOrder
* ID退退便
*/
public interface IOrderService {
Order findOrderById(String order_id);
Integer addOrder(Order order);
Integer updateOrderStateToRefund(String order_id); //申请退票
Integer updateOrderStateToRefunded(String order_id); //同意退票
PageInfo<Order> findOrdersByUserName(Integer page,Integer limit,String user_name);
List<Order> findAllOrders();
List<Order> findRefundOrderByUserName(String user_name);
PageInfo<Order> findOrdersByState(Integer page,Integer limit,int order_state);
PageInfo<Order> findAllOrdersBySplitPage(Integer page,Integer limit,String keyword);
}
/**
* ID
* ID`Order`便
* @param order_id
* @return `Order``null`
*/
Order findOrderById(String order_id);
/**
*
* `Order`IDID10
* @param order `Order`
* @return `Integer`
*/
Integer addOrder(Order order);
/**
* 退
* order_id退退退10退
* @param order_id 退
* @return `Integer`
*/
Integer updateOrderStateToRefund(String order_id); //申请退票
/**
* 退
* order_id退退退退
* @param order_id 退
* @return `Integer`
*/
Integer updateOrderStateToRefunded(String order_id); //同意退票
/**
*
* pagelimituser_name`Order``PageInfo<Order>``PageInfo`便
* @param page 1
* @param limit
* @param user_name
* @return `PageInfo<Order>`
*/
PageInfo<Order> findOrdersByUserName(Integer page, Integer limit, String user_name);
/**
*
* `Order``List<Order>`便
* @return `Order``List`
*/
List<Order> findAllOrders();
/**
* 退
* user_name退`Order``List<Order>`便退退
* @param user_name 退
* @return `Order``List`退退
*/
List<Order> findRefundOrderByUserName(String user_name);
/**
*
* pagelimitorder_state10退`Order``PageInfo<Order>`便
* @param page 1
* @param limit
* @param order_state
* @return `PageInfo<Order>`
*/
PageInfo<Order> findOrdersByState(Integer page, Integer limit, int order_state);
/**
*
* pagelimitkeyword`Order``PageInfo<Order>`便
* @param page 1
* @param limit
* @param keyword `null`
* @return `PageInfo<Order>`
*/
PageInfo<Order> findAllOrdersBySplitPage(Integer page, Integer limit, String keyword);
}

@ -1,21 +1,116 @@
package com.service;
import java.util.List;
import com.entity.Schedule;
import com.github.pagehelper.PageInfo;
/**
* IScheduleService
*/
public interface IScheduleService {
Schedule findScheduleById(long schedule_id);
Integer addSchedule(Schedule schedule);
Integer updateSchedule(Schedule schedule);
Integer deleteSchedule(long schedule_id);
Integer addScheduleRemain(long schedule_id);
Integer delScheduleRemain(long schedule_id);
PageInfo<Schedule> findScheduleByMovieName(Integer page,Integer limit,String movie_name);
PageInfo<Schedule> findOffScheduleByMovieName(Integer page,Integer limit,String movie_name);
PageInfo<Schedule> findAllSchedule(Integer page,Integer limit);
PageInfo<Schedule> findAllScheduleByState(Integer page,Integer limit,int schedule_state);
List<Schedule> findScheduleByCinemaAndMovie(long cinema_id,long movie_id);
List<Schedule> findScheduleByCineamIdAndMovieId(long cinema_id,long movie_id);
}
/**
* ID
*
* @param schedule_id ID
* @return Schedule null
*/
Schedule findScheduleById(long schedule_id);
/**
*
*
* @param schedule Schedule
* @return 10
*/
Integer addSchedule(Schedule schedule);
/**
* ID
*
* @param schedule Schedule
* @return 10
*/
Integer updateSchedule(Schedule schedule);
/**
* ID
*
* @param schedule_id ID
* @return 10
*/
Integer deleteSchedule(long schedule_id);
/**
*
*
* @param schedule_id ID
* @return 10
*/
Integer addScheduleRemain(long schedule_id);
/**
*
*
* @param schedule_id ID
* @return 10
*/
Integer delScheduleRemain(long schedule_id);
/**
*
*
* @param page
* @param limit
* @param movie_name
* @return PageInfo
*/
PageInfo<Schedule> findScheduleByMovieName(Integer page, Integer limit, String movie_name);
/**
*
*
* @param page
* @param limit
* @param movie_name
* @return PageInfo
*/
PageInfo<Schedule> findOffScheduleByMovieName(Integer page, Integer limit, String movie_name);
/**
*
*
* @param page
* @param limit
* @return PageInfo
*/
PageInfo<Schedule> findAllSchedule(Integer page, Integer limit);
/**
*
*
* @param page
* @param limit
* @param schedule_state
* @return PageInfo
*/
PageInfo<Schedule> findAllScheduleByState(Integer page, Integer limit, int schedule_state);
/**
* ID ID
*
* @param cinema_id ID
* @param movie_id ID
* @return Schedule
*/
List<Schedule> findScheduleByCinemaAndMovie(long cinema_id, long movie_id);
/**
* selectSeat ID ID
*
* @param cinema_id ID
* @param movie_id ID
* @return Schedule
*/
List<Schedule> findScheduleByCineamIdAndMovieId(long cinema_id, long movie_id);
}

@ -1,19 +1,87 @@
package com.service;
import java.util.List;
import com.entity.User;
import com.github.pagehelper.PageInfo;
/**
* IUserServiceUser
* ID便
*/
public interface IUserService {
User login(String user_name,String user_pwd);
Integer updateUserInfo(User user);
User findUserById(long user_id);
List<User> findUserByName(String name);
List<User> findUserLikeName(String name);
Integer addUser(User user);
Integer deleteUser(long user_id);
List<User> findAllUserInfos();
PageInfo<User> findAllUserBySplitPage(Integer page,Integer limit,String keyword);
}
/**
*
* user_nameuser_pwd`null`
* @param user_name
* @param user_pwd
* @return `User``null`
*/
User login(String user_name, String user_pwd);
/**
*
* `User`10
* @param user `User`
* @return `Integer`
*/
Integer updateUserInfo(User user);
/**
* ID
* ID`User`便
* @param user_id
* @return `User``null`
*/
User findUserById(long user_id);
/**
*
* name`User``List<User>`便使
* @param name
* @return `User``List`
*/
List<User> findUserByName(String name);
/**
*
* name`User``List<User>`便使
* @param name
* @return `User``List`
*/
List<User> findUserLikeName(String name);
/**
*
* `User`10
* @param user `User`
* @return `Integer`
*/
Integer addUser(User user);
/**
* ID
* ID10
* @param user_id
* @return `Integer`
*/
Integer deleteUser(long user_id);
/**
*
* `User``List<User>`便
* @return `User``List`
*/
List<User> findAllUserInfos();
/**
*
* pagelimitkeyword`User``PageInfo<User>`便
* @param page 1
* @param limit
* @param keyword `null`
* @return `PageInfo<User>`
*/
PageInfo<User> findAllUserBySplitPage(Integer page, Integer limit, String keyword);
}

@ -16,75 +16,118 @@ import com.mapper.ScheduleMapper;
import com.service.ICinemaService;
@Service
public class CinemaServiceImp implements ICinemaService{
@Autowired
private CinemaMapper cinemaMapper;
@Autowired
private HallMapper hallMapper;
@Autowired
private ScheduleMapper scheduleMapper;
@Transactional(propagation=Propagation.REQUIRED,readOnly=true)
@Override
public Cinema findCinemaById(long cinema_id) {
Cinema cinema = this.cinemaMapper.findCinemaById(cinema_id);
List<Hall> list = this.hallMapper.findHallByCinemaId(cinema_id);
cinema.setHallList(list);
return cinema;
}
public class CinemaServiceImp implements ICinemaService {
@Transactional(propagation=Propagation.REQUIRED,readOnly=true)
@Override
public List<Cinema> findCinemasByMovieId(long movie_id) {
List<Cinema> cinemaList = this.cinemaMapper.findCinemasByMovieId(movie_id);
for(Cinema cinema : cinemaList) {
List<Hall> hallList = this.hallMapper.findHallByCinemaId(cinema.getCinema_id());
for(Hall hall : hallList) {
hall.setScheduleList(this.scheduleMapper.findScheduleByCinemaAndMovieAndHall(hall.getHall_id(), hall.getCinema_id(), movie_id));
}
cinema.setHallList(hallList);
}
return cinemaList;
}
@Autowired
private CinemaMapper cinemaMapper; // 依赖注入 CinemaMapper 用于执行与影院相关的数据库操作
@Transactional(propagation=Propagation.REQUIRED,rollbackFor=Exception.class)
@Override
public Integer addCinema(Cinema cinema) {
return this.cinemaMapper.addCinema(cinema);
}
@Autowired
private HallMapper hallMapper; // 依赖注入 HallMapper 用于执行与影厅相关的数据库操作
@Transactional(propagation=Propagation.REQUIRED,rollbackFor=Exception.class)
@Override
public Integer updateCinema(Cinema cinema) {
return this.cinemaMapper.updateCinema(cinema);
}
@Autowired
private ScheduleMapper scheduleMapper; // 依赖注入 ScheduleMapper 用于执行与日程表相关的数据库操作
@Transactional(propagation=Propagation.REQUIRED,rollbackFor=Exception.class)
@Override
public Integer deleteCinema(long cinema_id) {
return this.cinemaMapper.deleteCinema(cinema_id);
}
/**
* ID
*
* @param cinema_id ID
* @return Cinema null
*/
@Transactional(propagation = Propagation.REQUIRED, readOnly = true) // 读取操作,不需要回滚
@Override
public Cinema findCinemaById(long cinema_id) {
Cinema cinema = this.cinemaMapper.findCinemaById(cinema_id);
List<Hall> list = this.hallMapper.findHallByCinemaId(cinema_id);
cinema.setHallList(list); // 设置影院的影厅列表
return cinema;
}
@Transactional(propagation=Propagation.REQUIRED,readOnly=true)
@Override
public List<Cinema> findAllCinemas() {
List<Cinema> list = this.cinemaMapper.findAllCinemas();
for(Cinema cinema : list) {
List<Hall> hallList = this.hallMapper.findHallByCinemaId(cinema.getCinema_id());
cinema.setHallList(hallList);
}
return list;
}
/**
* ID
*
* @param movie_id ID
* @return Cinema
*/
@Transactional(propagation = Propagation.REQUIRED, readOnly = true) // 读取操作,不需要回滚
@Override
public List<Cinema> findCinemasByMovieId(long movie_id) {
List<Cinema> cinemaList = this.cinemaMapper.findCinemasByMovieId(movie_id);
for (Cinema cinema : cinemaList) {
List<Hall> hallList = this.hallMapper.findHallByCinemaId(cinema.getCinema_id());
for (Hall hall : hallList) {
hall.setScheduleList(this.scheduleMapper.findScheduleByCinemaAndMovieAndHall(hall.getHall_id(), hall.getCinema_id(), movie_id));
}
cinema.setHallList(hallList); // 设置影院的影厅列表,包括各影厅的日程表
}
return cinemaList;
}
@Transactional(propagation=Propagation.REQUIRED,readOnly=true)
@Override
public List<Cinema> findCinemasLikeName(String cinema_name) {
List<Cinema> list = this.cinemaMapper.findCinemasLikeName(cinema_name);
for(Cinema cinema : list) {
List<Hall> hallList = this.hallMapper.findHallByCinemaId(cinema.getCinema_id());
cinema.setHallList(hallList);
}
return list;
}
}
/**
*
*
* @param cinema Cinema
* @return 10
*/
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class) // 写入操作,遇到异常时回滚
@Override
public Integer addCinema(Cinema cinema) {
return this.cinemaMapper.addCinema(cinema);
}
/**
* ID
*
* @param cinema Cinema
* @return 10
*/
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class) // 写入操作,遇到异常时回滚
@Override
public Integer updateCinema(Cinema cinema) {
return this.cinemaMapper.updateCinema(cinema);
}
/**
* ID
*
* @param cinema_id ID
* @return 10
*/
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class) // 写入操作,遇到异常时回滚
@Override
public Integer deleteCinema(long cinema_id) {
return this.cinemaMapper.deleteCinema(cinema_id);
}
/**
*
*
* @return Cinema
*/
@Transactional(propagation = Propagation.REQUIRED, readOnly = true) // 读取操作,不需要回滚
@Override
public List<Cinema> findAllCinemas() {
List<Cinema> list = this.cinemaMapper.findAllCinemas();
for (Cinema cinema : list) {
List<Hall> hallList = this.hallMapper.findHallByCinemaId(cinema.getCinema_id());
cinema.setHallList(hallList); // 设置影院的影厅列表
}
return list;
}
/**
*
*
* @param cinema_name
* @return Cinema
*/
@Transactional(propagation = Propagation.REQUIRED, readOnly = true) // 读取操作,不需要回滚
@Override
public List<Cinema> findCinemasLikeName(String cinema_name) {
List<Cinema> list = this.cinemaMapper.findCinemasLikeName(cinema_name);
for (Cinema cinema : list) {
List<Hall> hallList = this.hallMapper.findHallByCinemaId(cinema.getCinema_id());
cinema.setHallList(hallList); // 设置影院的影厅列表
}
return list;
}
}

@ -14,77 +14,139 @@ import com.github.pagehelper.PageInfo;
import com.mapper.CommentMapper;
import com.service.ICommentService;
/**
* CommentServiceImpICommentServiceComment
* CommentMapperSpring
* `@Service`Spring便Spring使
*/
@Service
public class CommentServiceImp implements ICommentService{
public class CommentServiceImp implements ICommentService {
@Autowired
private CommentMapper commentMapper;
@Transactional(propagation=Propagation.REQUIRED,readOnly=true)
@Override
public Comment findCommentById(long comment_id) {
return this.commentMapper.findCommentById(comment_id);
}
/**
* SpringCommentMapper
*/
@Autowired
private CommentMapper commentMapper;
@Transactional(propagation=Propagation.REQUIRED,rollbackFor=Exception.class)
@Override
public Integer addComemnt(Comment comment) {
return this.commentMapper.addComemnt(comment);
}
/**
* ID
* `Propagation.REQUIRED``readOnly=true`
* CommentMapper`findCommentById`
* @param comment_id ID
* @return `Comment``null`Mapper
*/
@Transactional(propagation = Propagation.REQUIRED, readOnly = true)
@Override
public Comment findCommentById(long comment_id) {
return this.commentMapper.findCommentById(comment_id);
}
@Transactional(propagation=Propagation.REQUIRED,rollbackFor=Exception.class)
@Override
public Integer updateComment(Comment comment) {
return this.commentMapper.updateComment(comment);
}
/**
*
* `Propagation.REQUIRED``rollbackFor=Exception.class`
* CommentMapper`addComemnt`10
* @param comment `Comment`
* @return `Integer`
*/
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
@Override
public Integer addComemnt(Comment comment) {
return this.commentMapper.addComemnt(comment);
}
@Transactional(propagation=Propagation.REQUIRED,rollbackFor=Exception.class)
@Override
public Integer deleteComment(long comment_id) {
return this.commentMapper.deleteComment(comment_id);
}
/**
*
*
* CommentMapper`updateComment`
* @param comment `Comment`
* @return `Integer`
*/
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
@Override
public Integer updateComment(Comment comment) {
return this.commentMapper.updateComment(comment);
}
@Transactional(propagation=Propagation.REQUIRED,readOnly=true)
@Override
public List<Comment> findAllComments() {
return this.commentMapper.findAllComments();
}
@Transactional(propagation=Propagation.REQUIRED,readOnly=true)
@Override
public PageInfo<Comment> findAllCommentsBySplitPage(Integer page, Integer limit, String keyword) {
PageHelper.startPage(page, limit);
List<Comment> list = new ArrayList<Comment>();
if(keyword != null && !keyword.trim().equals("")) {
System.out.println("keyword:"+keyword);
list = this.commentMapper.findCommentsByUserName(keyword);
}else {
//System.out.println("keyword:"+keyword);
list = this.commentMapper.findAllComments();
}
PageInfo<Comment> info = new PageInfo<Comment>(list);
return info;
}
@Transactional(propagation=Propagation.REQUIRED,readOnly=true)
@Override
public PageInfo<Comment> findCommentsByUserName(Integer page, Integer limit,String user_name) {
PageHelper.startPage(page,limit);
List<Comment> list = new ArrayList<Comment>();
list = this.commentMapper.findCommentsByUserName(user_name);
PageInfo<Comment> info = new PageInfo<Comment>(list);
return info;
}
/**
* ID
*
* CommentMapper`deleteComment`ID10
* @param comment_id
* @return `Integer`
*/
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
@Override
public Integer deleteComment(long comment_id) {
return this.commentMapper.deleteComment(comment_id);
}
@Transactional(propagation=Propagation.REQUIRED,readOnly=true)
@Override
public List<Comment> findCommentsByMovieId(long movie_id) {
return this.commentMapper.findCommentsByMoiveId(movie_id);
}
/**
*
* `Propagation.REQUIRED`
* CommentMapper`findAllComments`便
* @return `Comment``List`
*/
@Transactional(propagation = Propagation.REQUIRED, readOnly = true)
@Override
public List<Comment> findAllComments() {
return this.commentMapper.findAllComments();
}
}
/**
*
* `Propagation.REQUIRED`
* `PageHelper.startPage(page, limit)`CommentMapper`findCommentsByUserName``findAllComments`
* `PageInfo``PageInfo`便`PageInfo`
* @param page
* @param limit
* @param keyword `null`
* @return `PageInfo<Comment>`
*/
@Transactional(propagation = Propagation.REQUIRED, readOnly = true)
@Override
public PageInfo<Comment> findAllCommentsBySplitPage(Integer page, Integer limit, String keyword) {
PageHelper.startPage(page, limit);
List<Comment> list = new ArrayList<Comment>();
if (keyword!= null &&!keyword.trim().equals("")) {
System.out.println("keyword:" + keyword);
list = this.commentMapper.findCommentsByUserName(keyword);
} else {
//System.out.println("keyword:" + keyword);
list = this.commentMapper.findAllComments();
}
PageInfo<Comment> info = new PageInfo<Comment>(list);
return info;
}
/**
*
* `Propagation.REQUIRED`
* `PageHelper.startPage(page,limit)`CommentMapper`findCommentsByUserName``PageInfo`便
* @param page
* @param limit
* @param user_name
* @return `PageInfo<Comment>`
*/
@Transactional(propagation = Propagation.REQUIRED, readOnly = true)
@Override
public PageInfo<Comment> findCommentsByUserName(Integer page, Integer limit, String user_name) {
PageHelper.startPage(page, limit);
List<Comment> list = new ArrayList<Comment>();
list = this.commentMapper.findCommentsByUserName(user_name);
PageInfo<Comment> info = new PageInfo<Comment>(list);
return info;
}
/**
* ID
* `Propagation.REQUIRED`
* CommentMapper`findCommentsByMoiveId`便
* @param movie_id ID
* @return `Comment``List`
*/
@Transactional(propagation = Propagation.REQUIRED, readOnly = true)
@Override
public List<Comment> findCommentsByMovieId(long movie_id) {
return this.commentMapper.findCommentsByMoiveId(movie_id);
}
}

@ -12,64 +12,125 @@ import com.mapper.CinemaMapper;
import com.mapper.HallMapper;
import com.service.IHallService;
/**
* HallServiceImpIHallServiceHall
* SpringHallMapperCinemaMapperSpring
* `@Service`Spring便Spring使
*/
@Service
public class HallServiceImp implements IHallService{
@Autowired
private HallMapper hallMapper;
@Autowired
private CinemaMapper cinemaMapper;
@Transactional(propagation=Propagation.REQUIRED,readOnly=true)
@Override
public Hall findHallById(long hall_id) {
Hall hall = this.hallMapper.findHallById(hall_id);
hall.setHall_cinema(this.cinemaMapper.findCinemaById(hall.getCinema_id()));
return hall;
}
public class HallServiceImp implements IHallService {
@Transactional(propagation=Propagation.REQUIRED,readOnly=true)
@Override
public Hall findHallByCinemaAndHallName(String cinema_name, String hall_name) {
return this.hallMapper.findHallByCinemaAndHallName(cinema_name, hall_name);
}
/**
* SpringHallMapper
*/
@Autowired
private HallMapper hallMapper;
@Transactional(propagation=Propagation.REQUIRED,rollbackFor=Exception.class)
@Override
public Integer addHall(Hall hall) {
return this.hallMapper.addHall(hall);
}
/**
* SpringCinemaMapper
*/
@Autowired
private CinemaMapper cinemaMapper;
@Transactional(propagation=Propagation.REQUIRED,rollbackFor=Exception.class)
@Override
public Integer updateHall(Hall hall) {
return this.hallMapper.updateHall(hall);
}
/**
* ID
* `Propagation.REQUIRED``readOnly=true`
* HallMapper`findHallById`IDIDCinemaMapper`findCinemaById`
* @param hall_id ID
* @return `Hall``null`Mapper
*/
@Transactional(propagation = Propagation.REQUIRED, readOnly = true)
@Override
public Hall findHallById(long hall_id) {
Hall hall = this.hallMapper.findHallById(hall_id);
hall.setHall_cinema(this.cinemaMapper.findCinemaById(hall.getCinema_id()));
return hall;
}
@Transactional(propagation=Propagation.REQUIRED,rollbackFor=Exception.class)
@Override
public Integer deleteHall(long hall_id) {
return this.hallMapper.deleteHall(hall_id);
}
/**
*
* `Propagation.REQUIRED`
* HallMapper`findHallByCinemaAndHallName`便
* @param cinema_name
* @param hall_name
* @return `Hall``null`Mapper
*/
@Transactional(propagation = Propagation.REQUIRED, readOnly = true)
@Override
public Hall findHallByCinemaAndHallName(String cinema_name, String hall_name) {
return this.hallMapper.findHallByCinemaAndHallName(cinema_name, hall_name);
}
@Transactional(propagation=Propagation.REQUIRED,readOnly=true)
@Override
public List<Hall> findHallByCinemaId(long cinema_id) {
List<Hall> list = this.hallMapper.findHallByCinemaId(cinema_id);
for(Hall hall : list) {
hall.setHall_cinema(this.cinemaMapper.findCinemaById(hall.getCinema_id()));
}
return list;
}
/**
*
* `Propagation.REQUIRED``rollbackFor=Exception.class`
* HallMapper`addHall``Hall`10
* @param hall `Hall`
* @return `Integer`
*/
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
@Override
public Integer addHall(Hall hall) {
return this.hallMapper.addHall(hall);
}
@Transactional(propagation=Propagation.REQUIRED,readOnly=true)
@Override
public List<Hall> findAllHalls() {
List<Hall> list = this.hallMapper.findAllHalls();
for(Hall hall : list) {
hall.setHall_cinema(this.cinemaMapper.findCinemaById(hall.getCinema_id()));
}
return list;
}
}
/**
* `Hall`
*
* HallMapper`updateHall`
* @param hall `Hall`
* @return `Integer`
*/
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
@Override
public Integer updateHall(Hall hall) {
return this.hallMapper.updateHall(hall);
}
/**
* ID
*
* HallMapper`deleteHall`ID10
* @param hall_id
* @return `Integer`
*/
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
@Override
public Integer deleteHall(long hall_id) {
return this.hallMapper.deleteHall(hall_id);
}
/**
* ID
* `Propagation.REQUIRED`
* HallMapper`findHallByCinemaId`IDCinemaMapper`findCinemaById`便
* @param cinema_id ID
* @return `Hall``List`
*/
@Transactional(propagation = Propagation.REQUIRED, readOnly = true)
@Override
public List<Hall> findHallByCinemaId(long cinema_id) {
List<Hall> list = this.hallMapper.findHallByCinemaId(cinema_id);
for (Hall hall : list) {
hall.setHall_cinema(this.cinemaMapper.findCinemaById(hall.getCinema_id()));
}
return list;
}
/**
*
* `Propagation.REQUIRED`
* HallMapper`findAllHalls`IDCinemaMapper`findCinemaById`便
* @param list `Hall``List`
* @return
*/
@Transactional(propagation = Propagation.REQUIRED, readOnly = true)
@Override
public List<Hall> findAllHalls() {
List<Hall> list = this.hallMapper.findAllHalls();
for (Hall hall : list) {
hall.setHall_cinema(this.cinemaMapper.findCinemaById(hall.getCinema_id()));
}
return list;
}
}

@ -1,4 +1,4 @@
package com.service.imp;
package com.service.imp;
import java.util.List;
@ -15,109 +15,197 @@ import com.mapper.UserMapper;
import com.service.IMovieService;
@Service
public class MovieServiceImp implements IMovieService{
@Autowired
private MovieMapper movieMapper;
@Autowired
private CommentMapper commentMapper;
@Autowired
private UserMapper userMapper;
@Transactional(propagation=Propagation.REQUIRED,readOnly=true)
@Override
public Movie findMovieById(long movie_id) {
Movie movie = this.movieMapper.findMovieById(movie_id);
List<Comment> list = this.commentMapper.findCommentsByMoiveId(movie_id);
for(Comment comment : list) {
comment.setComment_user(this.userMapper.findUserById(comment.getUser_id()));
}
movie.setCommentList(list);
return movie;
}
@Transactional(propagation=Propagation.REQUIRED,rollbackFor=Exception.class)
@Override
public Integer changeMovieBoxOffice(float price, long movie_id) {
return this.movieMapper.changeMovieBoxOffice(price, movie_id);
}
@Transactional(propagation=Propagation.REQUIRED,readOnly=true)
@Override
public Movie findMovieByName(String movie_cn_name) {
return this.movieMapper.findMovieByName(movie_cn_name);
}
@Transactional(propagation=Propagation.REQUIRED,rollbackFor=Exception.class)
@Override
public Integer addCommentCount(long movie_id) {
return this.movieMapper.addMovieCommentCount(movie_id);
}
@Transactional(propagation=Propagation.REQUIRED,rollbackFor=Exception.class)
@Override
public Integer delCommentCount(long movie_id) {
return this.movieMapper.deleteMovieCommentCount(movie_id);
}
@Transactional(propagation=Propagation.REQUIRED,rollbackFor=Exception.class)
@Override
public Integer addMovie(Movie movie) {
return this.movieMapper.addMovie(movie);
}
@Transactional(propagation=Propagation.REQUIRED,rollbackFor=Exception.class)
@Override
public Integer deleteMovie(long movie_id) {
return this.movieMapper.deleteMovie(movie_id);
}
@Transactional(propagation=Propagation.REQUIRED,rollbackFor=Exception.class)
@Override
public Integer updateMovie(Movie movie) {
return this.movieMapper.updateMovie(movie);
}
@Transactional(propagation=Propagation.REQUIRED,readOnly=true)
@Override
public List<Movie> findAllMovies(int movie_state) {
return this.movieMapper.findAllMovies(movie_state);
}
@Transactional(propagation=Propagation.REQUIRED,readOnly=true)
@Override
public List<Movie> findMoviesLikeName(String name) {
return this.movieMapper.findMoviesLikeName(name);
}
@Transactional(propagation=Propagation.REQUIRED,readOnly=true)
@Override
public List<Movie> findMoviesLikeType(String type) {
return this.movieMapper.findMoviesLikeType(type);
}
@Transactional(propagation=Propagation.REQUIRED,readOnly=true)
@Override
public List<Movie> sortMovieByDate() {
return this.movieMapper.sortMovieByDate();
}
@Transactional(propagation=Propagation.REQUIRED,readOnly=true)
@Override
public List<Movie> sortMovieByCount() {
return this.movieMapper.sortMovieByCount();
}
@Transactional(propagation=Propagation.REQUIRED,readOnly=true)
@Override
public List<Movie> sortMovieByScore() {
return this.movieMapper.sortMovieByScore();
}
@Transactional(propagation=Propagation.REQUIRED,readOnly=true)
@Override
public List<Movie> sortMovieByBoxOffice() {
return this.movieMapper.sortMovieByBoxOffice();
}
}
public class MovieServiceImp implements IMovieService {
@Autowired
private MovieMapper movieMapper; // 依赖注入 MovieMapper 用于执行与电影相关的数据库操作
@Autowired
private CommentMapper commentMapper; // 依赖注入 CommentMapper 用于执行与评论相关的数据库操作
@Autowired
private UserMapper userMapper; // 依赖注入 UserMapper 用于执行与用户相关的数据库操作
/**
* ID
*
* @param movie_id ID
* @return Movie null
*/
@Transactional(propagation = Propagation.REQUIRED, readOnly = true) // 读取操作,不需要回滚
@Override
public Movie findMovieById(long movie_id) {
Movie movie = this.movieMapper.findMovieById(movie_id);
List<Comment> list = this.commentMapper.findCommentsByMoiveId(movie_id);
for (Comment comment : list) {
comment.setComment_user(this.userMapper.findUserById(comment.getUser_id())); // 设置评论的用户信息
}
movie.setCommentList(list); // 设置电影的评论列表
return movie;
}
/**
*
*
* @param price
* @param movie_id ID
* @return 10
*/
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class) // 写入操作,遇到异常时回滚
@Override
public Integer changeMovieBoxOffice(float price, long movie_id) {
return this.movieMapper.changeMovieBoxOffice(price, movie_id);
}
/**
*
*
* @param movie_cn_name
* @return Movie null
*/
@Transactional(propagation = Propagation.REQUIRED, readOnly = true) // 读取操作,不需要回滚
@Override
public Movie findMovieByName(String movie_cn_name) {
return this.movieMapper.findMovieByName(movie_cn_name);
}
/**
*
*
* @param movie_id ID
* @return 10
*/
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class) // 写入操作,遇到异常时回滚
@Override
public Integer addCommentCount(long movie_id) {
return this.movieMapper.addMovieCommentCount(movie_id);
}
/**
*
*
* @param movie_id ID
* @return 10
*/
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class) // 写入操作,遇到异常时回滚
@Override
public Integer delCommentCount(long movie_id) {
return this.movieMapper.deleteMovieCommentCount(movie_id);
}
/**
*
*
* @param movie Movie
* @return 10
*/
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class) // 写入操作,遇到异常时回滚
@Override
public Integer addMovie(Movie movie) {
return this.movieMapper.addMovie(movie);
}
/**
* ID
*
* @param movie_id ID
* @return 10
*/
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class) // 写入操作,遇到异常时回滚
@Override
public Integer deleteMovie(long movie_id) {
return this.movieMapper.deleteMovie(movie_id);
}
/**
* ID
*
* @param movie Movie
* @return 10
*/
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class) // 写入操作,遇到异常时回滚
@Override
public Integer updateMovie(Movie movie) {
return this.movieMapper.updateMovie(movie);
}
/**
*
*
* @param movie_state
* @return Movie
*/
@Transactional(propagation = Propagation.REQUIRED, readOnly = true) // 读取操作,不需要回滚
@Override
public List<Movie> findAllMovies(int movie_state) {
return this.movieMapper.findAllMovies(movie_state);
}
/**
*
*
* @param name
* @return Movie
*/
@Transactional(propagation = Propagation.REQUIRED, readOnly = true) // 读取操作,不需要回滚
@Override
public List<Movie> findMoviesLikeName(String name) {
return this.movieMapper.findMoviesLikeName(name);
}
/**
*
*
* @param type
* @return Movie
*/
@Transactional(propagation = Propagation.REQUIRED, readOnly = true) // 读取操作,不需要回滚
@Override
public List<Movie> findMoviesLikeType(String type) {
return this.movieMapper.findMoviesLikeType(type);
}
/**
*
*
* @return Movie
*/
@Transactional(propagation = Propagation.REQUIRED, readOnly = true) // 读取操作,不需要回滚
@Override
public List<Movie> sortMovieByDate() {
return this.movieMapper.sortMovieByDate();
}
/**
*
*
* @return Movie
*/
@Transactional(propagation = Propagation.REQUIRED, readOnly = true) // 读取操作,不需要回滚
@Override
public List<Movie> sortMovieByCount() {
return this.movieMapper.sortMovieByCount();
}
/**
*
*
* @return Movie
*/
@Transactional(propagation = Propagation.REQUIRED, readOnly = true) // 读取操作,不需要回滚
@Override
public List<Movie> sortMovieByScore() {
return this.movieMapper.sortMovieByScore();
}
/**
*
*
* @return Movie
*/
@Transactional(propagation = Propagation.REQUIRED, readOnly = true) // 读取操作,不需要回滚
@Override
public List<Movie> sortMovieByBoxOffice() {
return this.movieMapper.sortMovieByBoxOffice();
}
}

@ -21,150 +21,222 @@ import com.mapper.ScheduleMapper;
import com.mapper.UserMapper;
import com.service.IOrderService;
/**
* OrderServiceImpIOrderServiceOrder
* SpringMapperOrderMapperUserMapperScheduleMapperHallMapperMovieMapperCinemaMapperSpring
* `@Service`Spring便Spring使
*/
@Service
public class OrderServiceImp implements IOrderService{
@Autowired
private OrderMapper orderMapper;
@Autowired
private UserMapper userMapper;
@Autowired
private ScheduleMapper scheduleMapper;
@Autowired
private HallMapper hallMapper;
@Autowired
private MovieMapper movieMapper;
@Autowired
private CinemaMapper cinemaMapper;
@Transactional(propagation=Propagation.REQUIRED,readOnly=true)
@Override
public Order findOrderById(String order_id) {
Order order = this.orderMapper.findOrderById(order_id);
if(order != null) {
order.setOrder_user(this.userMapper.findUserById(order.getUser_id()));
Schedule schedule = this.scheduleMapper.findScheduleById(order.getSchedule_id());
Hall hall = this.hallMapper.findHallById(schedule.getHall_id());
hall.setHall_cinema(this.cinemaMapper.findCinemaById(hall.getCinema_id()));
schedule.setSchedule_hall(hall);
schedule.setSchedule_movie(this.movieMapper.findMovieById(schedule.getMovie_id()));
order.setOrder_schedule(schedule);
}else {
order = null;
}
return order;
}
@Transactional(propagation=Propagation.REQUIRED,readOnly=true)
@Override
public List<Order> findRefundOrderByUserName(String user_name) {
List<Order> list = this.orderMapper.findRefundOrderByUserName(user_name);
if(list.size() > 0) {
for(Order order : list) {
order.setOrder_user(this.userMapper.findUserById(order.getUser_id()));
Schedule schedule = this.scheduleMapper.findScheduleById(order.getSchedule_id());
Hall hall = this.hallMapper.findHallById(schedule.getHall_id());
hall.setHall_cinema(this.cinemaMapper.findCinemaById(hall.getCinema_id()));
schedule.setSchedule_hall(hall);
schedule.setSchedule_movie(this.movieMapper.findMovieById(schedule.getMovie_id()));
order.setOrder_schedule(schedule);
}
}else {
list = null;
}
return list;
}
@Transactional(propagation=Propagation.REQUIRED,rollbackFor=Exception.class)
@Override
public Integer addOrder(Order order) {
return this.orderMapper.addOrder(order);
}
@Transactional(propagation=Propagation.REQUIRED,rollbackFor=Exception.class)
@Override
public Integer updateOrderStateToRefund(String order_id) {
return this.orderMapper.updateOrderStateToRefund(order_id);
}
@Transactional(propagation=Propagation.REQUIRED,rollbackFor=Exception.class)
@Override
public Integer updateOrderStateToRefunded(String order_id) {
return this.orderMapper.updateOrderStateToRefunded(order_id);
}
@Transactional(propagation=Propagation.REQUIRED,readOnly=true)
@Override
public PageInfo<Order> findOrdersByUserName(Integer page,Integer limit,String user_name) {
PageHelper.startPage(page, limit);
List<Order> list = this.orderMapper.findOrdersByUserName(user_name);
for(Order order : list) {
order.setOrder_user(this.userMapper.findUserById(order.getUser_id()));
Schedule schedule = this.scheduleMapper.findScheduleById(order.getSchedule_id());
Hall hall = this.hallMapper.findHallById(schedule.getHall_id());
hall.setHall_cinema(this.cinemaMapper.findCinemaById(hall.getCinema_id()));
schedule.setSchedule_hall(hall);
schedule.setSchedule_movie(this.movieMapper.findMovieById(schedule.getMovie_id()));
order.setOrder_schedule(schedule);
}
PageInfo<Order> info = new PageInfo<Order>(list);
return info;
}
@Transactional(propagation=Propagation.REQUIRED,readOnly=true)
@Override
public List<Order> findAllOrders() {
List<Order> list = this.orderMapper.findAllOrders();
for(Order order : list) {
order.setOrder_user(this.userMapper.findUserById(order.getUser_id()));
Schedule schedule = this.scheduleMapper.findScheduleById(order.getSchedule_id());
Hall hall = this.hallMapper.findHallById(schedule.getHall_id());
hall.setHall_cinema(this.cinemaMapper.findCinemaById(hall.getCinema_id()));
schedule.setSchedule_hall(hall);
schedule.setSchedule_movie(this.movieMapper.findMovieById(schedule.getMovie_id()));
order.setOrder_schedule(schedule);
}
return list;
}
@Transactional(propagation=Propagation.REQUIRED,readOnly=true)
@Override
public PageInfo<Order> findOrdersByState(Integer page,Integer limit,int order_state) {
PageHelper.startPage(page, limit);
List<Order> list = this.orderMapper.findOrdersByState(order_state);
for(Order order : list) {
order.setOrder_user(this.userMapper.findUserById(order.getUser_id()));
Schedule schedule = this.scheduleMapper.findScheduleById(order.getSchedule_id());
Hall hall = this.hallMapper.findHallById(schedule.getHall_id());
hall.setHall_cinema(this.cinemaMapper.findCinemaById(hall.getCinema_id()));
schedule.setSchedule_hall(hall);
schedule.setSchedule_movie(this.movieMapper.findMovieById(schedule.getMovie_id()));
order.setOrder_schedule(schedule);
}
PageInfo<Order> info = new PageInfo<Order>(list);
return info;
}
@Transactional(propagation=Propagation.REQUIRED,readOnly=true)
@Override
public PageInfo<Order> findAllOrdersBySplitPage(Integer page, Integer limit, String keyword) {
PageHelper.startPage(page, limit);
List<Order> list = new ArrayList<Order>();
if(keyword != null && !keyword.trim().equals("")) {
list = this.orderMapper.findOrdersByUserName(keyword);
}else {
list = this.orderMapper.findAllOrders();
}
for(Order order : list) {
order.setOrder_user(this.userMapper.findUserById(order.getUser_id()));
Schedule schedule = this.scheduleMapper.findScheduleById(order.getSchedule_id());
Hall hall = this.hallMapper.findHallById(schedule.getHall_id());
hall.setHall_cinema(this.cinemaMapper.findCinemaById(hall.getCinema_id()));
schedule.setSchedule_hall(hall);
schedule.setSchedule_movie(this.movieMapper.findMovieById(schedule.getMovie_id()));
order.setOrder_schedule(schedule);
}
PageInfo<Order> info = new PageInfo<Order>(list);
return info;
}
}
public class OrderServiceImp implements IOrderService {
/**
* SpringOrderMapper
*/
@Autowired
private OrderMapper orderMapper;
/**
* SpringUserMapper
*/
@Autowired
private UserMapper userMapper;
/**
* SpringScheduleMapper
*/
@Autowired
private ScheduleMapper scheduleMapper;
/**
* SpringHallMapper
*/
@Autowired
private HallMapper hallMapper;
/**
* SpringMovieMapper
*/
@Autowired
private MovieMapper movieMapper;
/**
* SpringCinemaMapper
*/
@Autowired
private CinemaMapper cinemaMapper;
/**
* ID
* `Propagation.REQUIRED``readOnly=true`
* OrderMapper`findOrderById`IDUserMapper`findUserById``null`
* @param order_id
* @return `Order``null`Mapper
*/
@Transactional(propagation = Propagation.REQUIRED, readOnly = true)
@Override
public Order findOrderById(String order_id) {
Order order = this.orderMapper.findOrderById(order_id);
if (order!= null) {
order.setOrder_user(this.userMapper.findUserById(order.getUser_id()));
Schedule schedule = this.scheduleMapper.findScheduleById(order.getSchedule_id());
Hall hall = this.hallMapper.findHallById(schedule.getHall_id());
hall.setHall_cinema(this.cinemaMapper.findCinemaById(hall.getCinema_id()));
schedule.setSchedule_hall(hall);
schedule.setSchedule_movie(this.movieMapper.findMovieById(schedule.getMovie_id()));
order.setOrder_schedule(schedule);
} else {
order = null;
}
return order;
}
/**
* 退
* `Propagation.REQUIRED`
* OrderMapper`findRefundOrderByUserName`退0`findOrderById``null`
* @param user_name 退
* @return `Order``List`退退
*/
@Transactional(propagation = Propagation.REQUIRED, readOnly = true)
@Override
public List<Order> findRefundOrderByUserName(String user_name) {
List<Order> list = this.orderMapper.findRefundOrderByUserName(user_name);
if (list.size() > 0) {
for (Order order : list) {
order.setOrder_user(this.userMapper.findUserById(order.getUser_id()));
Schedule schedule = this.scheduleMapper.findScheduleById(order.getSchedule_id());
Hall hall = this.hallMapper.findHallById(schedule.getHall_id());
hall.setHall_cinema(this.cinemaMapper.findCinemaById(hall.getCinema_id()));
schedule.setSchedule_hall(hall);
schedule.setSchedule_movie(this.movieMapper.findMovieById(schedule.getMovie_id()));
order.setOrder_schedule(schedule);
}
} else {
list = null;
}
return list;
}
/**
*
* `Propagation.REQUIRED``rollbackFor=Exception.class`
* OrderMapper`addOrder``Order`10
* @param order `Order`
* @return `Integer`
*/
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
@Override
public Integer addOrder(Order order) {
return this.orderMapper.addOrder(order);
}
/**
* 退
* `Propagation.REQUIRED``rollbackFor=Exception.class`
* OrderMapper`updateOrderStateToRefund`order_id退10退
* @param order_id 退
* @return `Integer`
*/
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
@Override
public Integer updateOrderStateToRefund(String order_id) {
return this.orderMapper.updateOrderStateToRefund(order_id);
}
/**
* 退
* 退退
* OrderMapper`updateOrderStateToRefunded`order_id退退
* @param order_id 退
* @return `Integer`
*/
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
@Override
public Integer updateOrderStateToRefunded(String order_id) {
return this.orderMapper.updateOrderStateToRefunded(order_id);
}
/**
*
* `Propagation.REQUIRED`
* `PageHelper.startPage(page, limit)`OrderMapper`findOrdersByUserName``PageInfo``PageInfo`便`PageInfo`
* @param page
* @param limit
* @param user_name
* @return `PageInfo<Order>`
*/
@Transactional(propagation = Propagation.REQUIRED, readOnly = true)
@Override
public PageInfo<Order> findOrdersByUserName(Integer page, Integer limit, String user_name) {
PageHelper.startPage(page, limit);
List<Order> list = this.orderMapper.findOrdersByUserName(user_name);
for (Order order : list) {
order.setOrder_user(this.userMapper.findUserById(order.getUser_id()));
Schedule schedule = this.scheduleMapper.findScheduleById(order.getSchedule_id());
Hall hall = this.hallMapper.findHallById(schedule.getHall_id());
hall.setHall_cinema(this.cinemaMapper.findCinemaById(hall.getCinema_id()));
schedule.setSchedule_hall(hall);
schedule.setSchedule_movie(this.movieMapper.findMovieById(schedule.getMovie_id()));
order.setOrder_schedule(schedule);
}
PageInfo<Order> info = new PageInfo<Order>(list);
return info;
}
/**
*
* `Propagation.REQUIRED`
* OrderMapper`findAllOrders`便
* @return `Order``List`
*/
@Transactional(propagation = Propagation.REQUIRED, readOnly = true)
@Override
public List<Order> findAllOrders() {
List<Order> list = this.orderMapper.findAllOrders();
for (Order order : list) {
order.setOrder_user(this.userMapper.findUserById(order.getUser_id()));
Schedule schedule = this.scheduleMapper.findScheduleById(order.getSchedule_id());
Hall hall = this.hallMapper.findHallById(schedule.getHall_id());
hall.setHall_cinema(this.cinemaMapper.findCinemaById(hall.getCinema_id()));
schedule.setSchedule_hall(hall);
schedule.setSchedule_movie(this.movieMapper.findMovieById(schedule.getMovie_id()));
order.setOrder_schedule(schedule);
}
return list;
}
/**
*
* `Propagation.REQUIRED`
* `PageHelper.startPage(page, limit)`OrderMapper`findOrdersByState``PageInfo`便
* @param page
* @param limit
* @param order_state
* @return `PageInfo<Order>`
*/
@Transactional(propagation = Propagation.REQUIRED, readOnly = true)
@Override
public PageInfo<Order> findOrdersByState(Integer page, Integer limit, int order_state) {
PageHelper.startPage(page, limit);
List<Order> list = this.orderMapper.findOrdersByState(order_state);
for (Order order : list) {
order.setOrder_user(this.userMapper.findUserById(order.getUser_id()));
Schedule schedule = this.scheduleMapper.findScheduleById(order.getSchedule_id());
Hall hall = this.hallMapper.findHallById(schedule.getHall_id());
hall.setHall_cinema(this.cinemaMapper.findCinemaById(hall.getCinema_id()));
schedule.setSchedule_hall(hall);
schedule.setSchedule_movie(this.movieMapper.findMovieById(schedule.getMovie_id()));
order.setOrder_schedule(schedule);
}
PageInfo<Order> info = new PageInfo<Order>(list);
return info;
}
/**
*
* `Propagation.REQUIRED`
* `PageHelper.startPage(page, limit)`OrderMapper`findOrdersByUserName``findAllOrders``PageInfo`便
* @param page
* @param limit
* @param keyword `null`
* @return `PageInfo<Order>`

@ -20,153 +20,231 @@ import com.mapper.ScheduleMapper;
import com.service.IScheduleService;
@Service
public class ScheduleServiceImp implements IScheduleService{
@Autowired
private ScheduleMapper scheduleMapper;
@Autowired
private HallMapper hallMapper;
@Autowired
private MovieMapper movieMapper;
@Autowired
private OrderMapper orderMapper;
@Autowired
private CinemaMapper cinemaMapper;
@Transactional(propagation=Propagation.REQUIRED,readOnly=true)
@Override
public Schedule findScheduleById(long schedule_id) {
Schedule schedule = this.scheduleMapper.findScheduleById(schedule_id);
Hall hall = this.hallMapper.findHallById(schedule.getHall_id());
hall.setHall_cinema(this.cinemaMapper.findCinemaById(hall.getCinema_id()));
schedule.setSchedule_hall(hall);
schedule.setSchedule_movie(this.movieMapper.findMovieById(schedule.getMovie_id()));
List<Order> list = this.orderMapper.findOrdersByScheduleId(schedule_id);
schedule.setOrderList(list);
return schedule;
}
@Transactional(propagation=Propagation.REQUIRED,rollbackFor=Exception.class)
@Override
public Integer addSchedule(Schedule schedule) {
return this.scheduleMapper.addSchedule(schedule);
}
@Transactional(propagation=Propagation.REQUIRED,rollbackFor=Exception.class)
@Override
public Integer updateSchedule(Schedule schedule) {
return this.scheduleMapper.updateSchedule(schedule);
}
/**
*
*/
@Transactional(propagation=Propagation.REQUIRED,rollbackFor=Exception.class)
@Override
public Integer deleteSchedule(long schedule_id) {
return this.scheduleMapper.deleteSchedule(schedule_id);
}
@Transactional(propagation=Propagation.REQUIRED,rollbackFor=Exception.class)
@Override
public Integer addScheduleRemain(long schedule_id) {
return this.scheduleMapper.addScheduleRemain(schedule_id);
}
@Transactional(propagation=Propagation.REQUIRED,rollbackFor=Exception.class)
@Override
public Integer delScheduleRemain(long schedule_id) {
return this.scheduleMapper.delScheduleRemain(schedule_id);
}
@Transactional(propagation=Propagation.REQUIRED,readOnly=true)
@Override
public PageInfo<Schedule> findScheduleByMovieName(Integer page,Integer limit,String movie_name) {
PageHelper.startPage(page, limit);
List<Schedule> schedules = this.scheduleMapper.findScheduleByMovieName(movie_name);
for(Schedule schedule: schedules) {
Hall hall = this.hallMapper.findHallById(schedule.getHall_id());
hall.setHall_cinema(this.cinemaMapper.findCinemaById(hall.getCinema_id()));
schedule.setSchedule_hall(hall);
schedule.setSchedule_movie(this.movieMapper.findMovieById(schedule.getMovie_id()));
List<Order> list = this.orderMapper.findOrdersByScheduleId(schedule.getSchedule_id());
schedule.setOrderList(list);
}
PageInfo<Schedule> info = new PageInfo<Schedule>(schedules);
return info;
}
@Transactional(propagation=Propagation.REQUIRED,readOnly=true)
@Override
public PageInfo<Schedule> findOffScheduleByMovieName(Integer page, Integer limit, String movie_name) {
PageHelper.startPage(page, limit);
List<Schedule> schedules = this.scheduleMapper.findOffScheduleByMovieName(movie_name);
for(Schedule schedule: schedules) {
Hall hall = this.hallMapper.findHallById(schedule.getHall_id());
hall.setHall_cinema(this.cinemaMapper.findCinemaById(hall.getCinema_id()));
schedule.setSchedule_hall(hall);
schedule.setSchedule_movie(this.movieMapper.findMovieById(schedule.getMovie_id()));
List<Order> list = this.orderMapper.findOrdersByScheduleId(schedule.getSchedule_id());
schedule.setOrderList(list);
}
PageInfo<Schedule> info = new PageInfo<Schedule>(schedules);
return info;
}
@Transactional(propagation=Propagation.REQUIRED,readOnly=true)
@Override
public PageInfo<Schedule> findAllScheduleByState(Integer page,Integer limit,int schedule_state) {
PageHelper.startPage(page, limit);
List<Schedule> schedules = this.scheduleMapper.findScheduleByState(schedule_state);
for(Schedule schedule: schedules) {
Hall hall = this.hallMapper.findHallById(schedule.getHall_id());
hall.setHall_cinema(this.cinemaMapper.findCinemaById(hall.getCinema_id()));
schedule.setSchedule_hall(hall);
schedule.setSchedule_movie(this.movieMapper.findMovieById(schedule.getMovie_id()));
List<Order> list = this.orderMapper.findOrdersByScheduleId(schedule.getSchedule_id());
schedule.setOrderList(list);
}
PageInfo<Schedule> info = new PageInfo<Schedule>(schedules);
return info;
}
@Transactional(propagation=Propagation.REQUIRED,readOnly=true)
@Override
public PageInfo<Schedule> findAllSchedule(Integer page,Integer limit) {
PageHelper.startPage(page, limit);
List<Schedule> schedules = this.scheduleMapper.findAllSchedule();
for(Schedule schedule: schedules) {
Hall hall = this.hallMapper.findHallById(schedule.getHall_id());
hall.setHall_cinema(this.cinemaMapper.findCinemaById(hall.getCinema_id()));
schedule.setSchedule_hall(hall);
schedule.setSchedule_movie(this.movieMapper.findMovieById(schedule.getMovie_id()));
List<Order> list = this.orderMapper.findOrdersByScheduleId(schedule.getSchedule_id());
schedule.setOrderList(list);
}
PageInfo<Schedule> info = new PageInfo<Schedule>(schedules);
return info;
}
@Transactional(propagation=Propagation.REQUIRED,readOnly=true)
@Override
public List<Schedule> findScheduleByCinemaAndMovie(long cinema_id, long movie_id) {
return this.scheduleMapper.findScheduleByCinemaAndMovie(cinema_id, movie_id);
}
/**
* selectSeat
*/
@Transactional(propagation=Propagation.REQUIRED,readOnly=true)
@Override
public List<Schedule> findScheduleByCineamIdAndMovieId(long cinema_id, long movie_id) {
List<Schedule> list = this.scheduleMapper.findScheduleByCinemaAndMovie(cinema_id, movie_id);
for(Schedule schedule: list) {
Hall hall = this.hallMapper.findHallById(schedule.getHall_id());
hall.setHall_cinema(this.cinemaMapper.findCinemaById(hall.getCinema_id()));
schedule.setSchedule_hall(hall);
schedule.setSchedule_movie(this.movieMapper.findMovieById(schedule.getMovie_id()));
}
return list;
}
}
public class ScheduleServiceImp implements IScheduleService {
@Autowired
private ScheduleMapper scheduleMapper; // 依赖注入 ScheduleMapper 用于执行与排片相关的数据库操作
@Autowired
private HallMapper hallMapper; // 依赖注入 HallMapper 用于执行与影厅相关的数据库操作
@Autowired
private MovieMapper movieMapper; // 依赖注入 MovieMapper 用于执行与电影相关的数据库操作
@Autowired
private OrderMapper orderMapper; // 依赖注入 OrderMapper 用于执行与订单相关的数据库操作
@Autowired
private CinemaMapper cinemaMapper; // 依赖注入 CinemaMapper 用于执行与影院相关的数据库操作
/**
* ID
*
* @param schedule_id ID
* @return Schedule null
*/
@Transactional(propagation = Propagation.REQUIRED, readOnly = true) // 读取操作,不需要回滚
@Override
public Schedule findScheduleById(long schedule_id) {
Schedule schedule = this.scheduleMapper.findScheduleById(schedule_id);
Hall hall = this.hallMapper.findHallById(schedule.getHall_id());
hall.setHall_cinema(this.cinemaMapper.findCinemaById(hall.getCinema_id())); // 设置影厅所属的影院
schedule.setSchedule_hall(hall); // 设置排片的影厅
schedule.setSchedule_movie(this.movieMapper.findMovieById(schedule.getMovie_id())); // 设置排片的电影
List<Order> list = this.orderMapper.findOrdersByScheduleId(schedule_id);
schedule.setOrderList(list); // 设置排片的订单列表
return schedule;
}
/**
*
*
* @param schedule Schedule
* @return 10
*/
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class) // 写入操作,遇到异常时回滚
@Override
public Integer addSchedule(Schedule schedule) {
return this.scheduleMapper.addSchedule(schedule);
}
/**
* ID
*
* @param schedule Schedule
* @return 10
*/
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class) // 写入操作,遇到异常时回滚
@Override
public Integer updateSchedule(Schedule schedule) {
return this.scheduleMapper.updateSchedule(schedule);
}
/**
* ID
*
* @param schedule_id ID
* @return 10
*/
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class) // 写入操作,遇到异常时回滚
@Override
public Integer deleteSchedule(long schedule_id) {
return this.scheduleMapper.deleteSchedule(schedule_id);
}
/**
*
*
* @param schedule_id ID
* @return 10
*/
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class) // 写入操作,遇到异常时回滚
@Override
public Integer addScheduleRemain(long schedule_id) {
return this.scheduleMapper.addScheduleRemain(schedule_id);
}
/**
*
*
* @param schedule_id ID
* @return 10
*/
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class) // 写入操作,遇到异常时回滚
@Override
public Integer delScheduleRemain(long schedule_id) {
return this.scheduleMapper.delScheduleRemain(schedule_id);
}
/**
*
*
* @param page
* @param limit
* @param movie_name
* @return PageInfo
*/
@Transactional(propagation = Propagation.REQUIRED, readOnly = true) // 读取操作,不需要回滚
@Override
public PageInfo<Schedule> findScheduleByMovieName(Integer page, Integer limit, String movie_name) {
PageHelper.startPage(page, limit); // 启用分页
List<Schedule> schedules = this.scheduleMapper.findScheduleByMovieName(movie_name);
for (Schedule schedule : schedules) {
Hall hall = this.hallMapper.findHallById(schedule.getHall_id());
hall.setHall_cinema(this.cinemaMapper.findCinemaById(hall.getCinema_id())); // 设置影厅所属的影院
schedule.setSchedule_hall(hall); // 设置排片的影厅
schedule.setSchedule_movie(this.movieMapper.findMovieById(schedule.getMovie_id())); // 设置排片的电影
List<Order> list = this.orderMapper.findOrdersByScheduleId(schedule.getSchedule_id());
schedule.setOrderList(list); // 设置排片的订单列表
}
PageInfo<Schedule> info = new PageInfo<>(schedules);
return info;
}
/**
*
*
* @param page
* @param limit
* @param movie_name
* @return PageInfo
*/
@Transactional(propagation = Propagation.REQUIRED, readOnly = true) // 读取操作,不需要回滚
@Override
public PageInfo<Schedule> findOffScheduleByMovieName(Integer page, Integer limit, String movie_name) {
PageHelper.startPage(page, limit); // 启用分页
List<Schedule> schedules = this.scheduleMapper.findOffScheduleByMovieName(movie_name);
for (Schedule schedule : schedules) {
Hall hall = this.hallMapper.findHallById(schedule.getHall_id());
hall.setHall_cinema(this.cinemaMapper.findCinemaById(hall.getCinema_id())); // 设置影厅所属的影院
schedule.setSchedule_hall(hall); // 设置排片的影厅
schedule.setSchedule_movie(this.movieMapper.findMovieById(schedule.getMovie_id())); // 设置排片的电影
List<Order> list = this.orderMapper.findOrdersByScheduleId(schedule.getSchedule_id());
schedule.setOrderList(list); // 设置排片的订单列表
}
PageInfo<Schedule> info = new PageInfo<>(schedules);
return info;
}
/**
*
*
* @param page
* @param limit
* @param schedule_state
* @return PageInfo
*/
@Transactional(propagation = Propagation.REQUIRED, readOnly = true) // 读取操作,不需要回滚
@Override
public PageInfo<Schedule> findAllScheduleByState(Integer page, Integer limit, int schedule_state) {
PageHelper.startPage(page, limit); // 启用分页
List<Schedule> schedules = this.scheduleMapper.findScheduleByState(schedule_state);
for (Schedule schedule : schedules) {
Hall hall = this.hallMapper.findHallById(schedule.getHall_id());
hall.setHall_cinema(this.cinemaMapper.findCinemaById(hall.getCinema_id())); // 设置影厅所属的影院
schedule.setSchedule_hall(hall); // 设置排片的影厅
schedule.setSchedule_movie(this.movieMapper.findMovieById(schedule.getMovie_id())); // 设置排片的电影
List<Order> list = this.orderMapper.findOrdersByScheduleId(schedule.getSchedule_id());
schedule.setOrderList(list); // 设置排片的订单列表
}
PageInfo<Schedule> info = new PageInfo<>(schedules);
return info;
}
/**
*
*
* @param page
* @param limit
* @return PageInfo
*/
@Transactional(propagation = Propagation.REQUIRED, readOnly = true) // 读取操作,不需要回滚
@Override
public PageInfo<Schedule> findAllSchedule(Integer page, Integer limit) {
PageHelper.startPage(page, limit); // 启用分页
List<Schedule> schedules = this.scheduleMapper.findAllSchedule();
for (Schedule schedule : schedules) {
Hall hall = this.hallMapper.findHallById(schedule.getHall_id());
hall.setHall_cinema(this.cinemaMapper.findCinemaById(hall.getCinema_id())); // 设置影厅所属的影院
schedule.setSchedule_hall(hall); // 设置排片的影厅
schedule.setSchedule_movie(this.movieMapper.findMovieById(schedule.getMovie_id())); // 设置排片的电影
List<Order> list = this.orderMapper.findOrdersByScheduleId(schedule.getSchedule_id());
schedule.setOrderList(list); // 设置排片的订单列表
}
PageInfo<Schedule> info = new PageInfo<>(schedules);
return info;
}
/**
* ID ID
*
* @param cinema_id ID
* @param movie_id ID
* @return Schedule
*/
@Transactional(propagation = Propagation.REQUIRED, readOnly = true) // 读取操作,不需要回滚
@Override
public List<Schedule> findScheduleByCinemaAndMovie(long cinema_id, long movie_id) {
return this.scheduleMapper.findScheduleByCinemaAndMovie(cinema_id, movie_id);
}
/**
* selectSeat ID ID
*
* @param cinema_id ID
* @param movie_id ID
* @return Schedule
*/
@Transactional(propagation = Propagation.REQUIRED, readOnly = true) // 读取操作,不需要回滚
@Override
public List<Schedule> findScheduleByCineamIdAndMovieId(long cinema_id, long movie_id) {
List<Schedule> list = this.scheduleMapper.findScheduleByCinemaAndMovie(cinema_id, movie_id);
for (Schedule schedule : list) {
Hall hall = this.hallMapper.findHallById(schedule.getHall_id());
hall.setHall_cinema(this.cinemaMapper.findCinemaById(hall.getCinema_id())); // 设置影厅所属的影院
schedule.setSchedule_hall(hall); // 设置排片的影厅
schedule.setSchedule_movie(this.movieMapper.findMovieById(schedule.getMovie_id())); // 设置排片的电影
}
return list;
}
}

@ -14,80 +14,150 @@ import com.github.pagehelper.PageInfo;
import com.mapper.UserMapper;
import com.service.IUserService;
/**
* UserServiceImpIUserServiceUser
* UserMapperSpring
* 使`@Service`Spring便Spring使
*/
@Service
public class UserServiceImp implements IUserService{
public class UserServiceImp implements IUserService {
@Autowired
private UserMapper usermapper;
@Transactional(propagation=Propagation.REQUIRED,readOnly=true)
@Override
public User login(String user_name, String user_pwd) {
List<User> userList = usermapper.findUserByName(user_name);
for(User user : userList) {
if(user.getUser_pwd().equals(user_pwd)) {
return user;
}
}
return null;
}
@Transactional(propagation=Propagation.REQUIRED,rollbackFor=Exception.class)
@Override
public Integer updateUserInfo(User user) {
return this.usermapper.updateUser(user);
}
@Transactional(propagation=Propagation.REQUIRED,readOnly=true)
@Override
public User findUserById(long user_id) {
return this.usermapper.findUserById(user_id);
}
@Transactional(propagation=Propagation.REQUIRED,readOnly=true)
@Override
public List<User> findUserByName(String name) {
return this.usermapper.findUserByName(name);
}
@Transactional(propagation=Propagation.REQUIRED,rollbackFor=Exception.class)
@Override
public Integer addUser(User user) {
return this.usermapper.addUser(user);
}
/**
* SpringUserMapper
*/
@Autowired
private UserMapper usermapper;
@Transactional(propagation=Propagation.REQUIRED,rollbackFor=Exception.class)
@Override
public Integer deleteUser(long user_id) {
return this.usermapper.deleteUser(user_id);
}
@Transactional(propagation=Propagation.REQUIRED,readOnly=true)
@Override
public PageInfo<User> findAllUserBySplitPage(Integer page, Integer limit, String keyword) {
PageHelper.startPage(page, limit);
List<User> list = new ArrayList<User>();
if(keyword != null && !keyword.trim().equals("")) {
list = this.usermapper.findUserLikeName(keyword);
}else {
list = this.usermapper.findAllUser();
}
PageInfo<User> info = new PageInfo<User>(list);
return info;
}
/**
*
* `Propagation.REQUIRED``readOnly = true`
* UserMapper`findUserByName``null`
* @param user_name
* @param user_pwd
* @return `User``null`
*/
@Transactional(propagation = Propagation.REQUIRED, readOnly = true)
@Override
public User login(String user_name, String user_pwd) {
List<User> userList = usermapper.findUserByName(user_name);
for (User user : userList) {
if (user.getUser_pwd().equals(user_pwd)) {
return user;
}
}
return null;
}
@Transactional(propagation=Propagation.REQUIRED,readOnly=true)
@Override
public List<User> findAllUserInfos() {
return this.usermapper.findAllUser();
}
/**
*
* `Propagation.REQUIRED``rollbackFor = Exception.class`
* UserMapper`updateUser`10
* @param user `User`
* @return `Integer`
*/
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
@Override
public Integer updateUserInfo(User user) {
return this.usermapper.updateUser(user);
}
@Transactional(propagation=Propagation.REQUIRED,readOnly=true)
@Override
public List<User> findUserLikeName(String name) {
return this.usermapper.findUserLikeName(name);
}
}
/**
* ID
* `Propagation.REQUIRED`
* UserMapper`findUserById`ID便使
* @param user_id
* @return `User``null`Mapper
*/
@Transactional(propagation = Propagation.REQUIRED, readOnly = true)
@Override
public User findUserById(long user_id) {
return this.usermapper.findUserById(user_id);
}
/**
*
* `Propagation.REQUIRED`
* UserMapper`findUserByName`便使
* @param name
* @return `User``List`
*/
@Transactional(propagation = Propagation.REQUIRED, readOnly = true)
@Override
public List<User> findUserByName(String name) {
return this.usermapper.findUserByName(name);
}
/**
*
* `Propagation.REQUIRED``rollbackFor = Exception.class`
* UserMapper`addUser``User`10
* @param user `User`
* @return `Integer`
*/
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
@Override
public Integer addUser(User user) {
return this.usermapper.addUser(user);
}
/**
* ID
*
* UserMapper`deleteUser`ID10
* @param user_id
* @return `Integer`
*/
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
@Override
public Integer deleteUser(long user_id) {
return this.usermapper.deleteUser(user_id);
}
/**
*
* `Propagation.REQUIRED`
* `PageHelper.startPage(page, limit)`UserMapper`findUserLikeName``findAllUser``PageInfo``PageInfo`便`PageInfo`
* @param page
* @param limit
* @param keyword `null`
* @return `PageInfo<User>`
*/
@Transactional(propagation = Propagation.REQUIRED, readOnly = true)
@Override
public PageInfo<User> findAllUserBySplitPage(Integer page, Integer limit, String keyword) {
PageHelper.startPage(page, limit);
List<User> list = new ArrayList<User>();
if (keyword!= null &&!keyword.trim().equals("")) {
list = this.usermapper.findUserLikeName(keyword);
} else {
list = this.usermapper.findAllUser();
}
PageInfo<User> info = new PageInfo<User>(list);
return info;
}
/**
*
* `Propagation.REQUIRED`
* UserMapper`findAllUser`便
* @return `User``List`
*/
@Transactional(propagation = Propagation.REQUIRED, readOnly = true)
@Override
public List<User> findAllUserInfos() {
return this.usermapper.findAllUser();
}
/**
*
* `Propagation.REQUIRED`
* UserMapper`findUserLikeName`使`LIKE`便
* @param name
* @return `User``List`
*/
@Transactional(propagation = Propagation.REQUIRED, readOnly = true)
@Override
public List<User> findUserLikeName(String name) {
return this.usermapper.findUserLikeName(name);
}
}

@ -9,110 +9,131 @@ import java.util.Random;
import com.alibaba.fastjson.JSONObject;
public class test {
public static void main(String[] args) {
// Date date = new Date();
// java.sql.Date zdate = new java.sql.Date(date.getYear(), date.getMonth(), date.getDay());
// System.out.println(date);
// System.out.println(zdate);
// for(int i = 0;i<20;i++) {
// float random = 5 + (new Random().nextFloat() * 4);
// DecimalFormat fnum = new DecimalFormat("##0.0");
// String score = fnum.format(random);
// //String rs = String.valueOf(random);
// System.out.println("score:" + score);
// }
// JSONObject obj = new JSONObject();
// JSONObject hallobj = new JSONObject();
// //ArrayList<String> cinemalist= new ArrayList<String>();
// for(int i = 0; i < 2;i++) {
// ArrayList<String> cinemalist= new ArrayList<String>();
// for(int j=0;j<2;j++) {
// cinemalist.add(String.valueOf(j+1)+"号厅");
// }
// hallobj.put("影院"+String.valueOf(i),cinemalist);
// }
// obj.put("cinema", hallobj);
// System.out.println(obj);
// JSONObject obj2 = obj.getJSONObject("cinema");
// //解析 1级
// System.out.println(obj2);
// //解析 2级
// ArrayList<String> halllist= new ArrayList<String>();
// halllist = (ArrayList<String>)obj2.get("影院0");
// System.out.println(halllist.get(0));
// ArrayList<Integer> arr = new ArrayList<Integer>();
// for(int i = 0;i < 5;i++) {
// arr.add(i);
// }
// System.out.println(arr.get(4));
// Date date = new Date();
// SimpleDateFormat dateFormat = new SimpleDateFormat("YYYYMMdd");
// String str = "";
// str += dateFormat.format(date);
// System.out.println(str);
// String [] str = {"3排4座","10排1座","5排12座","11排12座"};
// ArrayList<String> arr = new ArrayList<String>();
// for(int i = 0;i < str.length;i++) {
// //System.out.println(str[i].length());
// String index = "";
// switch(str[i].length()) {
// case 4:
// index = "0" + str[i].replaceAll("排", "0");
// index = index.replaceAll("座", "");
// break;
// case 5:
// if(str[i].charAt(2) >= 48 && str[i].charAt(2) <= 57) {
// index = "0" + str[i].replaceAll("排", "");
// index = index.replaceAll("座", "");
// }else {
// index = str[i].replaceAll("排", "0");
// index = index.replaceAll("座", "");
// }
// break;
// case 6:
// index = str[i].replaceAll("排", "");
// index = index.replaceAll("座", "");
// break;
// }
// arr.add(index);
// }
// System.out.println(arr);
//int price = 29;
//float box = (float)price /10000;
//System.out.println((float)price /10000);;
// DecimalFormat fnum = new DecimalFormat("##0.0000");
// String score = fnum.format(random);
ArrayList<Integer> arr = new ArrayList<>();
ArrayList<Integer> indexz = new ArrayList<>();
int num[] = {1,2,3,0,5,0,6};
for(int i = 0;i<num.length;i++) {
arr.add(num[i]);
}
for(int z = 0;z<arr.size();z++) {
if(arr.get(z) == 0) {
indexz.add(z);
}
}
System.out.println(arr);
System.out.println(indexz);
// arr.remove(3);
for(int y =0;y<indexz.size();y++) {
int test = 0;
int index = (indexz.get(y))-test;
System.out.println(index);
arr.remove(index);
test = test + 2;
}
System.out.println(arr);
}
}
public static void main(String[] args) {
// 以下代码被注释掉了,原本用于测试 Date 和 java.sql.Date 的转换
/*
Date date = new Date();
java.sql.Date zdate = new java.sql.Date(date.getYear(), date.getMonth(), date.getDay());
System.out.println(date);
System.out.println(zdate);
*/
// 生成20个5到9之间的随机浮点数并格式化为一位小数后输出
/*
for(int i = 0; i < 20; i++) {
float random = 5 + (new Random().nextFloat() * 4);
DecimalFormat fnum = new DecimalFormat("##0.0");
String score = fnum.format(random);
System.out.println("score:" + score);
}
*/
// 构建一个包含两个影院信息的 JSON 对象每个影院有2个影厅
/*
JSONObject obj = new JSONObject();
JSONObject hallobj = new JSONObject();
for(int i = 0; i < 2; i++) {
ArrayList<String> cinemalist = new ArrayList<String>();
for(int j = 0; j < 2; j++) {
cinemalist.add(String.valueOf(j + 1) + "号厅");
}
hallobj.put("影院" + String.valueOf(i), cinemalist);
}
obj.put("cinema", hallobj);
System.out.println(obj);
// 解析一级 JSON 对象
JSONObject obj2 = obj.getJSONObject("cinema");
System.out.println(obj2);
// 解析二级 JSON 对象
ArrayList<String> halllist = (ArrayList<String>)obj2.get("影院0");
System.out.println(halllist.get(0));
*/
// 创建一个整数列表并添加5个元素然后打印最后一个元素
/*
ArrayList<Integer> arr = new ArrayList<Integer>();
for(int i = 0; i < 5; i++) {
arr.add(i);
}
System.out.println(arr.get(4));
*/
// 格式化当前日期为 YYYYMMdd 格式的字符串
/*
Date date = new Date();
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd"); // 注意:使用小写的 'y' 表示年份
String str = dateFormat.format(date);
System.out.println(str);
*/
// 将座位字符串数组转换为标准化的索引形式例如“3排4座” -> "0304"
/*
String[] seats = {"3排4座", "10排1座", "5排12座", "11排12座"};
ArrayList<String> arr = new ArrayList<String>();
for (String seat : seats) {
String index = "";
switch (seat.length()) {
case 4:
index = "0" + seat.replaceAll("排", "0").replaceAll("座", "");
break;
case 5:
if (Character.isDigit(seat.charAt(2))) {
index = "0" + seat.replaceAll("排", "").replaceAll("座", "");
} else {
index = seat.replaceAll("排", "0").replaceAll("座", "");
}
break;
case 6:
index = seat.replaceAll("排", "").replaceAll("座", "");
break;
}
arr.add(index);
}
System.out.println(arr);
*/
// 将价格转换为万元单位并格式化为四位小数
/*
int price = 29;
float box = (float) price / 10000;
System.out.println(box);
*/
// 使用 DecimalFormat 格式化数字为四位小数
/*
float random = (float) Math.random(); // 假设这里有一个随机数
DecimalFormat fnum = new DecimalFormat("##0.0000");
String score = fnum.format(random);
System.out.println(score);
*/
// 创建一个整数列表,将数组中的非零元素添加到列表中,并记录零元素的位置
ArrayList<Integer> arr = new ArrayList<>();
ArrayList<Integer> indexz = new ArrayList<>();
int num[] = {1, 2, 3, 0, 5, 0, 6};
for (int i = 0; i < num.length; i++) {
arr.add(num[i]);
}
// 找出所有值为0的元素的索引位置
for (int z = 0; z < arr.size(); z++) {
if (arr.get(z) == 0) {
indexz.add(z);
}
}
System.out.println(arr); // 打印原始列表
System.out.println(indexz); // 打印零元素的索引
// 移除所有值为0的元素注意移除时需要调整索引因为每次移除后列表大小会变化
for (int y = 0; y < indexz.size(); y++) {
int index = indexz.get(y) - y; // 调整索引以适应列表大小的变化
System.out.println(index);
arr.remove((int)index); // 移除对应索引的元素
}
System.out.println(arr); // 打印移除后的列表
}
}
Loading…
Cancel
Save