💕💕作者:计算机源码社
💕💕个人简介:本人七年开发经验,擅长Java、微信小程序、Python、Android等,大家有这一块的问题可以一起交流!
💕💕学习资料、程序开发、技术解答、代码讲解、文档报告
💕💕JavaWeb项目
💕💕微信小程序项目
💕💕Python项目
💕💕Android项目
1、绪论
1.1 项目背景
随着互联网的飞速发展,互联网成为人们快速获取、发布和传递信息的主要渠道,在人们的生活中发挥着极为重要的作用。网站的建设在网络线上应用上的地位十分突出,已经成为政府、企事业单位信息化建设甚至个人互联网应用的重要组成部分,倍受关注。影院在线售票系统是一个极其鲜明的例子。影院在线售票系统以其方便快捷、直观等优点,成为了广大消费者主要的购票方式。
本课题的目标是构建一个影院在线售票系统,以网上售票为基点,运用影院线上调研、线上售票的信息收集发布机制,形成完整的影院在线系统, 在某场电影上线至上映范围内为广大消费者提供网上购票的信息化平台。
1.2 项目现状
在当今世界,以计算机技术,软件技术为核心的技术取得了迅速的发展,不仅广泛参透到社会、经济、军事、交通和通信等相关行业,而且深入家电、娱乐、艺术、社会文化等领域。现代控制技术、多媒体技术与Internet的应用与普及,促进电子、计算机、通信一体化趋势步伐加快。
随着计算机的日益普及,更多的工作我们要交给计算机来完成,这样不仅节省人力物力,而且更重要的是能够大大提高我们完成工作的效率,在21世纪,提高效率就意味着更好的增加收益,我国在全国范围内推广计算机的应用虽然比较晚,但是近些年来发展迅速,计算机已经融入到我们生活中的方方面面,比如我们获取新闻、日常购物、火车票的预订等等,这些与我们日常生活息息相关的事情,我们都可以用计算机来完成。
好莱坞大片的持续火爆_上映,李安导演的少年派再次夺取奥斯卡小金人,充分调动了国内票房的积极增长,有着全球最大网络用户的中国却一-直在网络购票的电子商务应用上徘徊不前。目前国内提供的在线订票业务也仅是单独的影院线业务需求,他们的订票宣传力度不够,网站的优惠力度也不够。网站的优化更新慢,开发新的影院在线售票系统,优化消费者的购票方式能够真正的实现高消费质量的提升。
2、核心功能模块
2.1 系统用例分析
基于SSM+Vue的电影售票系统采用Java语言,B/S的结构,同时也使用JavaWeb技术在动态页面上进行了设计,后台上采用Mysql数据库。电影院售票管理系统主要实现了管理员、用户模块这两大部分。通过本电影院订票管理系统可以提高管理人员的工作效率,减少出错率,对于数据存储及查找有了更方便的操作。电影售票系统的主要实现功能包括:
①管系统中的核心用户是系统管理员,管理员登录后,通过管理员菜单来管理后台系统。主要功能有:首页、个人中心、用户管理、电影类型管理、放映厅管理、正在上映管理、即将上映管理、系统管理、订单管理等功能。
②用户前台进入系统可以进行首页、正在上映、即将上映、电影资讯、个人中心、后台管理、客服等。
2.2 系统功能结构图
2.3 文档报告目录
3、项目页面展示
3.1 管理员留言管理
3.2 用户订单管理
3.3 用户查看影片信息
3.4 管理员轮播图管理
**3.5 用户在线留言反馈 **
**3.6 管理员影片订单管理 **
**3.7 管理员影片信息管理 **
**3.8 管理员影片类型管理 **
4、 核心代码
/**
* 影片信息评论表
* 后端接口
*/
@RestController
@RequestMapping("/discussyingpianxinxi")
public class DiscussyingpianxinxiController {
@Autowired
private DiscussyingpianxinxiService discussyingpianxinxiService;
/**
* 后端电影评论列表
*/
@RequestMapping("/page")
public R page(@RequestParam Map<String, Object> params,DiscussyingpianxinxiEntity discussyingpianxinxi,
HttpServletRequest request){
EntityWrapper<DiscussyingpianxinxiEntity> ew = new EntityWrapper<DiscussyingpianxinxiEntity>();
PageUtils page = discussyingpianxinxiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, discussyingpianxinxi), params), params));
return R.ok().put("data", page);
}
/**
* 前端电影评论列表
*/
@IgnoreAuth
@RequestMapping("/list")
public R list(@RequestParam Map<String, Object> params,DiscussyingpianxinxiEntity discussyingpianxinxi, HttpServletRequest request){
EntityWrapper<DiscussyingpianxinxiEntity> ew = new EntityWrapper<DiscussyingpianxinxiEntity>();
PageUtils page = discussyingpianxinxiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, discussyingpianxinxi), params), params));
return R.ok().put("data", page);
}
/**
* 列表
*/
@RequestMapping("/lists")
public R list( DiscussyingpianxinxiEntity discussyingpianxinxi){
EntityWrapper<DiscussyingpianxinxiEntity> ew = new EntityWrapper<DiscussyingpianxinxiEntity>();
ew.allEq(MPUtil.allEQMapPre( discussyingpianxinxi, "discussyingpianxinxi"));
return R.ok().put("data", discussyingpianxinxiService.selectListView(ew));
}
/**
* 查询电影评论
*/
@RequestMapping("/query")
public R query(DiscussyingpianxinxiEntity discussyingpianxinxi){
EntityWrapper< DiscussyingpianxinxiEntity> ew = new EntityWrapper< DiscussyingpianxinxiEntity>();
ew.allEq(MPUtil.allEQMapPre( discussyingpianxinxi, "discussyingpianxinxi"));
DiscussyingpianxinxiView discussyingpianxinxiView = discussyingpianxinxiService.selectView(ew);
return R.ok("查询影片信息评论表成功").put("data", discussyingpianxinxiView);
}
/**
* 后端电影评论详情
*/
@RequestMapping("/info/{id}")
public R info(@PathVariable("id") Long id){
DiscussyingpianxinxiEntity discussyingpianxinxi = discussyingpianxinxiService.selectById(id);
return R.ok().put("data", discussyingpianxinxi);
}
/**
* 前端电影评论详情
*/
@RequestMapping("/detail/{id}")
public R detail(@PathVariable("id") Long id){
DiscussyingpianxinxiEntity discussyingpianxinxi = discussyingpianxinxiService.selectById(id);
return R.ok().put("data", discussyingpianxinxi);
}
/**
* 后端保存电影评论
*/
@RequestMapping("/save")
public R save(@RequestBody DiscussyingpianxinxiEntity discussyingpianxinxi, HttpServletRequest request){
discussyingpianxinxi.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
//ValidatorUtils.validateEntity(discussyingpianxinxi);
discussyingpianxinxiService.insert(discussyingpianxinxi);
return R.ok();
}
/**
* 前端保存电影评论
*/
@RequestMapping("/add")
public R add(@RequestBody DiscussyingpianxinxiEntity discussyingpianxinxi, HttpServletRequest request){
discussyingpianxinxi.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
//ValidatorUtils.validateEntity(discussyingpianxinxi);
discussyingpianxinxiService.insert(discussyingpianxinxi);
return R.ok();
}
/**
* 修改电影评论
*/
@RequestMapping("/update")
public R update(@RequestBody DiscussyingpianxinxiEntity discussyingpianxinxi, HttpServletRequest request){
//ValidatorUtils.validateEntity(discussyingpianxinxi);
discussyingpianxinxiService.updateById(discussyingpianxinxi);//全部更新
return R.ok();
}
/**
* 删除电影评论
*/
@RequestMapping("/delete")
public R delete(@RequestBody Long[] ids){
discussyingpianxinxiService.deleteBatchIds(Arrays.asList(ids));
return R.ok();
}
/**
* 电影评论接口
*/
@RequestMapping("/remind/{columnName}/{type}")
public R remindCount(@PathVariable("columnName") String columnName, HttpServletRequest request,
@PathVariable("type") String type,@RequestParam Map<String, Object> map) {
map.put("column", columnName);
map.put("type", type);
if(type.equals("2")) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Calendar c = Calendar.getInstance();
Date remindStartDate = null;
Date remindEndDate = null;
if(map.get("remindstart")!=null) {
Integer remindStart = Integer.parseInt(map.get("remindstart").toString());
c.setTime(new Date());
c.add(Calendar.DAY_OF_MONTH,remindStart);
remindStartDate = c.getTime();
map.put("remindstart", sdf.format(remindStartDate));
}
if(map.get("remindend")!=null) {
Integer remindEnd = Integer.parseInt(map.get("remindend").toString());
c.setTime(new Date());
c.add(Calendar.DAY_OF_MONTH,remindEnd);
remindEndDate = c.getTime();
map.put("remindend", sdf.format(remindEndDate));
}
}
Wrapper<DiscussyingpianxinxiEntity> wrapper = new EntityWrapper<DiscussyingpianxinxiEntity>();
if(map.get("remindstart")!=null) {
wrapper.ge(columnName, map.get("remindstart"));
}
if(map.get("remindend")!=null) {
wrapper.le(columnName, map.get("remindend"));
}
int count = discussyingpianxinxiService.selectCount(wrapper);
return R.ok().put("count", count);
}