基于ssm+vue德云社票务系统源码和论文

news2024/9/25 9:40:22

基于ssm+vue德云社票务系统源码和论文063

 开发工具:idea 
 数据库mysql5.7+
 数据库链接工具:navcat,小海豚等
  技术:ssm

1.选题的依据和意义

互联网时代,随着生活节奏的加快和不断上升的压力,人们急需寻找到情绪的宣泄口,而相声这种轻喜剧类型的表演,恰到好处的融合了传统艺术和时代潮流,使得相声深受大众的喜爱。其中北京德云社凭借其大胆、新颖的表演形式,突破了原有的相声表演的局限性,率先提出了走“非主流相声”的路线,且致力于弘扬传统民间曲艺。经过长达二十多年的努力,德云社已经成为了国内著名的大型的专业相声团队,成为引领相声行业的标杆。

当下演出的购票方式除了去现场买票外,也可以电话订票或者网上订票。电话订票一般是通过拨打票务公司的客服热线,这种方式相对现场买票来说虽然便捷,但是却无法实时了解到当前的销售情况,可能导致用户无法及时选择到自己心仪的位置。这时网上购票的优势就会比较明显,用户只需要一台电脑或者一部手机就可以查看到实时的票务信息,从而选择到满意的位置。随着国内经济水平的提升,用户需求的扩大,现在市面上出现了很多这种演出票务在线售卖系统,例如:大麦网、携程网、淘宝等等。

近年来,计算机技术被广泛应用在各个领域当中,各种管理的系统应用也非常广泛,目前我们已经可以了解到很多电子商务售票系统和类似的门户网站,而这些系统的某些特点和其中较为优势的地方,是我在设计过程中可以进行参考的有利资源。另外现在的一些计算机应用技术可以很好的实现系统的开发,而且开发所要用到的工具相对来说也很简单实用,不需要投入过高的成本。因此无论是从经济、资源、技术还是其他因素考虑,系统的实现是有可能的,而系统的实现则可以为消费者提供一个全面、便捷而愉快的购票体验。

  1. 理论或实际应用方面的价值 

如今,国家经济水平的不断提高和国民收入水平的相对上升,促使人们更多的开始注重于自己的精神生活。21世纪以来,身为民间相声社团的德云社异军突起,以“让相声回归剧场”为目的,在相声演员郭德纲的带领下,不断地推出优秀的相声演员及作品,其新颖的表演形式深受人们的喜爱,使这门非主流的传统表演艺术重新回到了人们的生活之中且吸引了更多的相声观众。在这个节奏飞快且浮躁的时代,让人们自愿的选择购票走入德云社的小剧场,甚至还会线上花费大量时间来观看各种商演及小剧场的官录视频。优酷的官方数据显示,在2019年观看德云社视频的用户,人均观看时间达到了55分钟。德云社借助网络平台的影响,使相声观众群体得以扩大,人们不再满足于只是在线上观看相声,更多的是想走进小剧场,能够切身的感受到这门传统艺术的魅力,这就涉及到了买票的问题。传统的买票方式多为现场购票,这种方式既浪费时间又无法及时了解到场次情况,从而浪费了很多时间和精力。为了使观众可以随时随地的选票购票且不受到黄牛等因素的困扰,故开发出一个德云社票务网站,使真正热爱相声这门艺术的人们能够有机会买到票,使更多热爱的人能够走进小剧场。

package com.controller;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Map;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Date;
import java.util.List;
import javax.servlet.http.HttpServletRequest;

import com.utils.ValidatorUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.annotation.IgnoreAuth;

import com.entity.PiaowuxinxiEntity;
import com.entity.view.PiaowuxinxiView;

import com.service.PiaowuxinxiService;
import com.service.TokenService;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.MD5Util;
import com.utils.MPUtil;
import com.utils.CommonUtil;


/**
 * 票务信息
 * 后端接口
 * @author 
 * @email 
 * @date 2021-03-21 17:45:05
 */
@RestController
@RequestMapping("/piaowuxinxi")
public class PiaowuxinxiController {
    @Autowired
    private PiaowuxinxiService piaowuxinxiService;
    


    /**
     * 后端列表
     */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params,PiaowuxinxiEntity piaowuxinxi, 
		HttpServletRequest request){

        EntityWrapper<PiaowuxinxiEntity> ew = new EntityWrapper<PiaowuxinxiEntity>();
		PageUtils page = piaowuxinxiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, piaowuxinxi), params), params));
        return R.ok().put("data", page);
    }
    
    /**
     * 前端列表
     */
	@IgnoreAuth
    @RequestMapping("/list")
    public R list(@RequestParam Map<String, Object> params,PiaowuxinxiEntity piaowuxinxi, HttpServletRequest request){
        EntityWrapper<PiaowuxinxiEntity> ew = new EntityWrapper<PiaowuxinxiEntity>();
		PageUtils page = piaowuxinxiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, piaowuxinxi), params), params));
        return R.ok().put("data", page);
    }

	/**
     * 列表
     */
    @RequestMapping("/lists")
    public R list( PiaowuxinxiEntity piaowuxinxi){
       	EntityWrapper<PiaowuxinxiEntity> ew = new EntityWrapper<PiaowuxinxiEntity>();
      	ew.allEq(MPUtil.allEQMapPre( piaowuxinxi, "piaowuxinxi")); 
        return R.ok().put("data", piaowuxinxiService.selectListView(ew));
    }

	 /**
     * 查询
     */
    @RequestMapping("/query")
    public R query(PiaowuxinxiEntity piaowuxinxi){
        EntityWrapper< PiaowuxinxiEntity> ew = new EntityWrapper< PiaowuxinxiEntity>();
 		ew.allEq(MPUtil.allEQMapPre( piaowuxinxi, "piaowuxinxi")); 
		PiaowuxinxiView piaowuxinxiView =  piaowuxinxiService.selectView(ew);
		return R.ok("查询票务信息成功").put("data", piaowuxinxiView);
    }
	
    /**
     * 后端详情
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") Long id){
        PiaowuxinxiEntity piaowuxinxi = piaowuxinxiService.selectById(id);
		piaowuxinxi.setClicknum(piaowuxinxi.getClicknum()+1);
		piaowuxinxi.setClicktime(new Date());
		piaowuxinxiService.updateById(piaowuxinxi);
        return R.ok().put("data", piaowuxinxi);
    }

    /**
     * 前端详情
     */
	@IgnoreAuth
    @RequestMapping("/detail/{id}")
    public R detail(@PathVariable("id") Long id){
        PiaowuxinxiEntity piaowuxinxi = piaowuxinxiService.selectById(id);
		piaowuxinxi.setClicknum(piaowuxinxi.getClicknum()+1);
		piaowuxinxi.setClicktime(new Date());
		piaowuxinxiService.updateById(piaowuxinxi);
        return R.ok().put("data", piaowuxinxi);
    }
    



    /**
     * 后端保存
     */
    @RequestMapping("/save")
    public R save(@RequestBody PiaowuxinxiEntity piaowuxinxi, HttpServletRequest request){
    	piaowuxinxi.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    	//ValidatorUtils.validateEntity(piaowuxinxi);

        piaowuxinxiService.insert(piaowuxinxi);
        return R.ok();
    }
    
    /**
     * 前端保存
     */
    @RequestMapping("/add")
    public R add(@RequestBody PiaowuxinxiEntity piaowuxinxi, HttpServletRequest request){
    	piaowuxinxi.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    	//ValidatorUtils.validateEntity(piaowuxinxi);

        piaowuxinxiService.insert(piaowuxinxi);
        return R.ok();
    }

    /**
     * 修改
     */
    @RequestMapping("/update")
    public R update(@RequestBody PiaowuxinxiEntity piaowuxinxi, HttpServletRequest request){
        //ValidatorUtils.validateEntity(piaowuxinxi);
        piaowuxinxiService.updateById(piaowuxinxi);//全部更新
        return R.ok();
    }
    

    /**
     * 删除
     */
    @RequestMapping("/delete")
    public R delete(@RequestBody Long[] ids){
        piaowuxinxiService.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<PiaowuxinxiEntity> wrapper = new EntityWrapper<PiaowuxinxiEntity>();
		if(map.get("remindstart")!=null) {
			wrapper.ge(columnName, map.get("remindstart"));
		}
		if(map.get("remindend")!=null) {
			wrapper.le(columnName, map.get("remindend"));
		}


		int count = piaowuxinxiService.selectCount(wrapper);
		return R.ok().put("count", count);
	}
	
	/**
     * 前端智能排序
     */
	@IgnoreAuth
    @RequestMapping("/autoSort")
    public R autoSort(@RequestParam Map<String, Object> params,PiaowuxinxiEntity piaowuxinxi, HttpServletRequest request,String pre){
        EntityWrapper<PiaowuxinxiEntity> ew = new EntityWrapper<PiaowuxinxiEntity>();
        Map<String, Object> newMap = new HashMap<String, Object>();
        Map<String, Object> param = new HashMap<String, Object>();
		Iterator<Map.Entry<String, Object>> it = param.entrySet().iterator();
		while (it.hasNext()) {
			Map.Entry<String, Object> entry = it.next();
			String key = entry.getKey();
			String newKey = entry.getKey();
			if (pre.endsWith(".")) {
				newMap.put(pre + newKey, entry.getValue());
			} else if (StringUtils.isEmpty(pre)) {
				newMap.put(newKey, entry.getValue());
			} else {
				newMap.put(pre + "." + newKey, entry.getValue());
			}
		}
		params.put("sort", "clicknum");
        
        params.put("order", "desc");
		PageUtils page = piaowuxinxiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, piaowuxinxi), params), params));
        return R.ok().put("data", page);
    }


}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/930380.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

你工作效率低,可能是因为不会Python...

前言 你是不是感觉你的工作非常无聊&#xff0c;每天有大量的重复性的工作要做&#xff0c;比如在我的工作中&#xff0c;就有很多类似的动作。每天早上要看我们DevOps流水线跑出的结果&#xff0c;查看各个微服务中的重复代码率是多少&#xff0c;有没有增加&#xff0c;Clea…

【Qt学习】06:事件与事件过滤器

OVERVIEW 事件与事件过滤器一、事件1.鼠标事件创建子类MyLabel重写鼠标事件提升Label控件为MyLabel 2.定时器事件timerEventQTimer 3.事件分发器&#xff08;event函数&#xff09;event函数重写event函数深入 二、事件过滤器1.事件过滤器2.事件处理的五个层次 事件与事件过滤器…

VMVareC++开发环境快速配置

OVERVIEW VMVareC开发环境快速配置ipgitvimgithubzshgcc&g&cmakesshifconfigmysqlnginxredisgdb VMVareC开发环境快速配置 VMVareC开发环境快速配置&#xff0c;为了省时间快速整理出文档方便以后快速配置&#xff0c; 按照这个流程直接可以快速得到一个舒适的C/C开发…

[论文阅读笔记25]A Comprehensive Survey on Graph Neural Networks

这是一篇GNN的综述, 发表于2021年的TNNLS. 这篇博客旨在对GNN的基本概念做一些记录. 论文地址: 论文 1. 引言, 背景与定义 对于图像数据来说, CNN具有平移不变性和局部连接性, 因此可以在欧氏空间上良好地学习. 然而, 对于具有图结构的数据(例如社交网络 化学分子等)就需要用…

用AI + Milvus Cloud搭建着装搭配推荐系统

在上一篇文章中,我们学习了如何利用人工智能技术(例如开源 AI 向量数据库 Milvus Cloud 和 Hugging Face 模型)寻找与自己穿搭风格相似的明星。在这篇文章中,我们将进一步介绍如何通过对上篇文章中的项目代码稍作修改,获得更详细和准确的结果,文末附赠彩蛋。 注:试用此…

Excel 打开文件提示内存或磁盘不足

Excel表格打开文件时&#xff0c;提示内存或磁盘空间不足&#xff0c;Microsoft Excel 无法再次打开或保存任何文档&#xff0c;这是很多人都会遇到的问题&#xff0c;该如何解决这个问题呢&#xff1f;如果你是用Excel表格打开某个文件时遇到提示内存或磁盘空间不足&#xff0…

学好嵌入式,未来能干啥?

很多对嵌入式行业不了解的人会以为嵌入式就是单纯搞单片机的工作。甚至有很多专业学生也抱有这种观念。 这种现象的原因在于大学专业中没有专门针对嵌入式行业的完善专业体系。嵌入式的知识体系庞大&#xff0c;不同的方向需要的知识差异很大。关于嵌入式学习路线&#xff0c;网…

Django(4)-Django 管理页面

创建一个管理员账号 python manage.py createsuperuser运行项目&#xff0c;访问http://127.0.0.1:8080/admin&#xff0c;可以看到管理员界面 管理页面加上投票应用 polls/admin.py from django.contrib import admin# Register your models here. from .models import …

npm和yarn的区别?

文章目录 前言npm和yarn的作用和特点npm和yarn的安装的机制npm安装机制yarn安装机制检测包解析包获取包链接包构建包 总结后言 前言 这一期给大家讲解npm和yarn的一些区别 npm和yarn的作用和特点 包管理&#xff1a;npm 和 yarn 可以用于安装、更新和删除 JavaScript 包。它们提…

腾讯云服务器可用区是什么?可用区怎么选择?

腾讯云服务器可用区是什么意思&#xff1f;可用区是指同一地域内电力和网络互相独立的物理数据中心&#xff0c;腾讯云每个地域下都有多个可用区供选择&#xff0c;将应用部署到不同可用区能够做到故障隔离&#xff0c;提升应用的可靠性和容灾性&#xff0c;阿腾云来详细说下什…

SpringMVC 第二天

第 1 章 ModelAttribute 和 SessionAttribute[ 应 用 ] 1.1ModelAttribute 1.1.1 使用说明 作用&#xff1a; 该注解是 SpringMVC4.3 版本以后新加入的。它可以用于修饰方法和参数。 出现在方法上&#xff0c;表示当前方法会在控制器的方法执行之前&#xff0c;先执行…

综合能源系统(9)——综合能源系统运行管控平台技术

综合能源系统关键技术与典型案例  何泽家&#xff0c;李德智主编 1、综合能源系统运行管控平台技术发展现状 在综合能源服务蓝海市场驱动下&#xff0c;作为能源和互联网跨界融合中枢产品&#xff0c;综合能源服务平台取得了较大进展。综合能源服务平台属性示意图如图3-47所…

Jvm之JIT优化详细解释

文章目录 一、JIT 产生的背景二、HotSpot虚拟机内置JIT编译器1. Client Compiler2. Server Compiler3. 查看本地编译器模式 三、常见热点探测技术1. 基于计数器的热点探测2. 基于采样的热点探测2.1 方法调用计数器2.2 回边计数器 四、常见JIT优化手段1. 公共子表达式消除2. 方法…

vue登录验证码组件,前端验证

效果图 点击可以切换验证码 自定义组件 <template><div class"s-canvas"><canvas id"s-canvas" :width"contentWidth" :height"contentHeight"></canvas></div> </template> <script> e…

左偏树\可并堆

https://www.luogu.com.cn/problem/P3377 作用&#xff1a;可并堆 形态&#xff1a;堆满二叉树 即左节点最小深度大于等于右节点最小深度 合并过程&#xff1a;

谷歌浏览器响应Failed to load response data: no resource with given identifer found

1、如下问题展示&#xff0c;这个是新版谷歌浏览器的不知道啥时候出现的问题&#xff0c;以前旧版未出现过&#xff0c;所以降版本浏览器可能可以 2、但是&#xff0c;博主的方法是换一个浏览器&#xff0c;换成edge就没问题了&#xff0c;由于用习惯了谷歌&#xff0c;所以这…

算法竞赛入门【码蹄集新手村600题】(MT1220-1240)C语言

算法竞赛入门【码蹄集新手村600题】(MT1220-1240&#xff09;C语言 目录MT1221 分数的总和MT1222 等差数列MT1223 N是什么MT1224 棋盘MT1225 复杂分数MT1226 解不等式MT1227 宝宝爬楼梯MT1228 宝宝抢糖果MT1229 搬家公司MT1230 圆周率MT1231圆周率IIMT1232 数字和MT1233 数字之…

OLED透明屏:在广告领域中的应用,为品牌注入更强的视觉冲击

OLED透明屏作为一项引人注目的技术创新&#xff0c;其独特的透明度和高清晰度为各行各业带来了全新的展示和创意空间。 本文将详细介绍其透明度、高对比度、超薄柔性设计以及强大的颜色表现力&#xff0c;并探讨其在零售、汽车和建筑等领域的应用前景。 一、透明度&#xff1a…

大数据Flink(六十七):SQL Table 简介及运行环境

文章目录 SQL & Table 简介及运行环境 一、​​​​​​​​​​​​​​简介 二、案例

Ansible 生成主机文件

生成主机文件 将一个初始模板文件从 http://materials/hosts.j2 下载到 /home/greg/ansible 完成该模板&#xff0c;以便用它生成以下文件&#xff1a;针对每个清单主机包含一行内容&#xff0c;其格式与 /etc/hosts 相同 创建名为 /home/greg/ansible/hosts.yml 的 playboo…