Springboot+Vue+小程序+基于微信小程序电影票网购系统

Java电影票购买管理系统,Maven管理工具,MyBatis数据库操作,idea平台开发,后台的前端为Vue,前台客户端为小程序,功能丰富,还有电影周边购买功能,请在最下方二维码处联系我即可,调试,讲解均可有偿获取,项目保证质量。

功能:

1.个人信息管理

2.用户管理

3.电影分裂管理

4.电影信息管理

5.电影院管理

6.周边商品管理

7.留言管理

8.系统管理(公告,系统简介,轮播图)

10.订单管理

图示:

数据库示例:

表名:discussdianyingxinxi

功能:电影信息评论表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

refid

bigint

关联表id

userid

bigint

用户id

avatarurl

longtext

4294967295

头像

nickname

varchar

200

用户名

content

longtext

4294967295

评论内容

reply

longtext

4294967295

回复内容

表名:dianyingyuan

功能:电影院

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

biaoti

varchar

200

标题

jianjie

longtext

4294967295

简介

fengmian

longtext

4294967295

封面

fabushijian

datetime

发布时间

neirong

longtext

4294967295

内容

clicktime

datetime

最近点击时间

clicknum

int

点击次数

0

表名:dianyingxinxi

功能:电影信息

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

dianyingmingcheng

varchar

200

电影名称

dianyingfenlei

varchar

200

电影分类

dianyinghaibao

longtext

4294967295

电影海报

dianyingpianduan

longtext

4294967295

电影片段

daoyan

varchar

200

导演

yanyuan

varchar

200

演员

shangyingriqi

date

上映日期

diqu

varchar

200

地区

niandai

varchar

200

年代

fangyingchangci

varchar

200

放映场次

fangyingshijian

varchar

200

放映时间

fangyingting

varchar

200

放映厅

yingyuanmingcheng

varchar

200

影院名称

yingyuandizhi

varchar

200

影院地址

dianyingjieshao

longtext

4294967295

电影介绍

thumbsupnum

int

0

crazilynum

int

0

clicktime

datetime

最近点击时间

clicknum

int

点击次数

0

price

double

价格

number

int

座位总数

selected

longtext

4294967295

已选座位[用,号隔开]

代码示例:

package com.controller;

import java.util.Arrays;
import java.util.Map;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Date;
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.transaction.annotation.Transactional;
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.annotation.IgnoreAuth;

import com.entity.DianyingxinxiEntity;
import com.entity.view.DianyingxinxiView;

import com.service.DianyingxinxiService;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.MPUtil;

/**
 * 电影信息
 * 后端接口
 */
@RestController
@RequestMapping("/dianyingxinxi")
public class DianyingxinxiController {
    @Autowired
    private DianyingxinxiService dianyingxinxiService;

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

    /**
     * 前端列表
     */
    @IgnoreAuth
    @RequestMapping("/list")
    public R list(@RequestParam Map<String, Object> params, DianyingxinxiEntity dianyingxinxi,
                  HttpServletRequest request) {
        EntityWrapper<DianyingxinxiEntity> ew = new EntityWrapper<DianyingxinxiEntity>();

        PageUtils page = dianyingxinxiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, dianyingxinxi), params), params));
        return R.ok().put("data", page);
    }

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

    /**
     * 查询
     */
    @RequestMapping("/query")
    public R query(DianyingxinxiEntity dianyingxinxi) {
        EntityWrapper<DianyingxinxiEntity> ew = new EntityWrapper<DianyingxinxiEntity>();
        ew.allEq(MPUtil.allEQMapPre(dianyingxinxi, "dianyingxinxi"));
        DianyingxinxiView dianyingxinxiView = dianyingxinxiService.selectView(ew);
        return R.ok("查询电影信息成功").put("data", dianyingxinxiView);
    }

    /**
     * 后端详情
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") Long id) {
        DianyingxinxiEntity dianyingxinxi = dianyingxinxiService.selectById(id);
        dianyingxinxi.setClicknum(dianyingxinxi.getClicknum() + 1);
        dianyingxinxi.setClicktime(new Date());
        dianyingxinxiService.updateById(dianyingxinxi);
        return R.ok().put("data", dianyingxinxi);
    }

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

    /**
     * 赞或踩
     */
    @RequestMapping("/thumbsup/{id}")
    public R vote(@PathVariable("id") String id, String type) {
        DianyingxinxiEntity dianyingxinxi = dianyingxinxiService.selectById(id);
        if (type.equals("1")) {
            dianyingxinxi.setThumbsupnum(dianyingxinxi.getThumbsupnum() + 1);
        } else {
            dianyingxinxi.setCrazilynum(dianyingxinxi.getCrazilynum() + 1);
        }
        dianyingxinxiService.updateById(dianyingxinxi);
        return R.ok("投票成功");
    }

    /**
     * 后端保存
     */
    @RequestMapping("/save")
    public R save(@RequestBody DianyingxinxiEntity dianyingxinxi, HttpServletRequest request) {
        dianyingxinxi.setId(new Date().getTime() + new Double(Math.floor(Math.random() * 1000)).longValue());
        //ValidatorUtils.validateEntity(dianyingxinxi);
        dianyingxinxiService.insert(dianyingxinxi);
        return R.ok();
    }

    /**
     * 前端保存
     */
    @RequestMapping("/add")
    public R add(@RequestBody DianyingxinxiEntity dianyingxinxi, HttpServletRequest request) {
        dianyingxinxi.setId(new Date().getTime() + new Double(Math.floor(Math.random() * 1000)).longValue());
        dianyingxinxiService.insert(dianyingxinxi);
        return R.ok();
    }
    
    /**
     * 修改
     */
    @RequestMapping("/update")
    @Transactional
    public R update(@RequestBody DianyingxinxiEntity dianyingxinxi, HttpServletRequest request) {
        dianyingxinxiService.updateById(dianyingxinxi);//全部更新
        return R.ok();
    }
    
    /**
     * 删除
     */
    @RequestMapping("/delete")
    public R delete(@RequestBody Long[] ids) {
        dianyingxinxiService.deleteBatchIds(Arrays.asList(ids));
        return R.ok();
    }
    
    /**
     * 前端智能排序
     */
    @IgnoreAuth
    @RequestMapping("/autoSort")
    public R autoSort(@RequestParam Map<String, Object> params, DianyingxinxiEntity dianyingxinxi, HttpServletRequest request, String pre) {
        EntityWrapper<DianyingxinxiEntity> ew = new EntityWrapper<DianyingxinxiEntity>();
        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 = dianyingxinxiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, dianyingxinxi), params), params));
        return R.ok().put("data", page);
    }
}

电影信息实体类:

import java.util.Date;
import org.springframework.format.annotation.DateTimeFormat;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.io.Serializable;


/**
 * 电影信息
 * 手机端接口返回实体辅助类
 */
public class DianyingxinxiVO implements Serializable {
    private static final long serialVersionUID = 1L;

    /**
     * 电影分类
     */
    private String dianyingfenlei;

    /**
     * 电影海报
     */
    private String dianyinghaibao;

    /**
     * 电影片段
     */
    private String dianyingpianduan;

    /**
     * 导演
     */

    private String daoyan;

    /**
     * 演员
     */

    private String yanyuan;

    /**
     * 上映日期
     */
    @JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat
    private Date shangyingriqi;

    /**
     * 地区
     */
    private String diqu;

    /**
     * 年代
     */
    private String niandai;

    /**
     * 放映场次
     */
    private String fangyingchangci;

    /**
     * 放映时间
     */
    private String fangyingshijian;

    /**
     * 放映厅
     */
    private String fangyingting;

    /**
     * 影院名称
     */
    private String yingyuanmingcheng;

    /**
     * 影院地址
     */
    private String yingyuandizhi;

    /**
     * 电影介绍
     */
    private String dianyingjieshao;

    /**
     * 赞
     */
    private Integer thumbsupnum;

    /**
     * 踩
     */
    private Integer crazilynum;

    /**
     * 最近点击时间
     */
    @JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat
    private Date clicktime;

    /**
     * 点击次数
     */
    private Integer clicknum;

    /**
     * 价格
     */
    private Double price;

    /**
     * 座位总数
     */
    private Integer number;

    /**
     * 已选座位[用,号隔开]
     */
    private String selected;
}

                                   

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

如何判断第三方软件测试公司是否具有资质

在软件开发的过程中&#xff0c;软件测试是确保软件质量、稳定性和用户体验的关键环节。许多企业选择将软件测试工作交给专业的第三方软件测试公司来完成&#xff0c;以确保测试的准确性和公正性。但是&#xff0c;如何判断一个第三方软件测试公司是否具有资质呢&#xff1f;以…

【软件开发规范篇】JAVA后端开发编码格式规范

作者介绍&#xff1a;本人笔名姑苏老陈&#xff0c;从事JAVA开发工作十多年了&#xff0c;带过大学刚毕业的实习生&#xff0c;也带过技术团队。最近有个朋友的表弟&#xff0c;马上要大学毕业了&#xff0c;想从事JAVA开发工作&#xff0c;但不知道从何处入手。于是&#xff0…

基于FPGA的数字信号处理(7)--如何确定Verilog表达式的位宽

一般规则 很多时候&#xff0c;Verilog中表达式的位宽都是被隐式确定的&#xff0c;即使你自己设计了位宽&#xff0c;它也是根据规则先确定位宽后&#xff0c;再扩展到你的设计位宽&#xff0c;这常常会导致结果产生意想不到的错误。比如&#xff1a; timescale 1ns/1ns mod…

GD32F470内存不能设置512KB

最近研究了下GD32F470芯片手册&#xff0c;发现标称的内存512KB&#xff0c; 其实是连TCMSRAM一起算的&#xff0c;即TCMSRAMSRAM0SRAM1SRAM2ADDSRAM 512KB, 其中SRAM0 - ADDSRAM 这段内存地址是连续的&#xff0c;从地址0x20000000开始。而TCMSRAM地址却是从0x10000000 - 0x1…

新建stm32工程模板步骤

1.先使用keil新建一个project的基本代码 2.stm32启动文件添加 将stm32的启动文件&#xff0c;在原工程当中新建一个Start文件夹把相关的启动文件放到文件夹当中 然后还需要找到下面三个文件 stm32f10x.h是stm32的外设寄存器的声明和定义&#xff0c;后面那两个文件用于配置系…

Unity 实现新手引导遮罩

Unity 复写OnPopulateMesh 实现新手引导遮罩、包含点击事件触发区域判断 https://download.csdn.net/download/shenliang34/89247117

git 第一次安装设置用户名密码

git config --global user.name ljq git config --global user.email 15137659164qq.com创建公钥命令 输入后一直回车 ssh-keygen -t rsa下面这样代表成功 这里是公钥的 信息输入gitee 中 输入下面命令看是否和本机绑定成功 ssh -T gitgitee.com如何是这样&#xff0c;恭喜…

【算法系列】哈希表

目录 哈希表总结 leetcode题目 一、两数之和 二、判定是否互为字符重排 三、存在重复元素 四、存在重复元素 II 五、字母异位词分组 六、在长度2N的数组中找出重复N次的元素 七、两个数组的交集 八、两个数组的交集 II 九、两句话中的不常见单词 哈希表总结 1.存储数…

HC-SR04超声波测距

什么是超声波 超声波是频率高于20000赫兹的声波。 超声波是一种特定频率范围内的声波&#xff0c;其特点在于频率高于人耳能够感知的上限&#xff0c;即超过20千赫兹&#xff08;Hz&#xff09;。这种高频率的声波具有一些独特的性质&#xff1a; 方向性好&#xff1a;超声波…

托普利兹矩阵(T矩阵)及其应用(Matlab demo测试)

托普利兹矩阵&#xff08;T矩阵&#xff09;及其应用&#xff08;Matlab demo测试&#xff09; 1. 概念2. Matlab简单测试2.1 生成测试2.2 基本性质及原理2.3 性质验证 3. 其他应用总结3.1 其他性质3.2 文献阅读看到的 参考资料 1. 概念 托普利兹矩阵&#xff0c;简称为T型矩阵…

可视化大屏在真实场景的效果,绝对震撼,不要再嘲笑其作用了

hello&#xff0c;我是大千UI工场&#xff0c;本地带来一批可视化大屏现场效果图&#xff0c;非常震撼&#xff0c;给大家带来身临其境的感受&#xff0c;欢迎关注点赞&#xff0c;有需求请私信。 有人可能会认为可视化大屏没有太多价值&#xff0c;可能是因为以下几个原因&am…

npm 安装 pnpm 时 报错 npm ERR! Unexpected token ‘.‘

问题 一个项目用的是 pnpm 安装的依赖&#xff0c;node 的版本是 16.16.0&#xff0c;nvm 的版本是 1.1.7&#xff0c;然后全局安装 pnpm 报错如下&#xff1a; 解决 我看网上的一些解决方案是说 nvm 版本过低导致&#xff0c;下面我们按照这个方向处理。 实首先下载 nvm-up…

Linux 文件管理命令Lawk wc comm join fmt

文章目录 2.Linux 文件管理命令2.44 awk&#xff1a;模式匹配语言1&#xff0e;变量2&#xff0e;运算符3&#xff0e;awk 的正则4&#xff0e;字符串函数5&#xff0e;数学函数案例练习 2.45 wc&#xff1a;输出文件中的行数、单词数、字节数案例练习2.46 comm&#xff1a;比较…

康姿百德学生床垫价格合理,为孩子提供健康睡眠环境

康姿百德集团公司学生床垫&#xff0c;关爱孩子的睡眠和健康 每个孩子都是家长新中的宝贝&#xff0c;在孩子健康成长的道路上&#xff0c;良好的睡眠起着至关重要的作用。而选择一款优质的床垫&#xff0c;不仅能帮助孩子更快进入梦乡&#xff0c;还能促进他们的健康发育。在…

最好的数据恢复应用程序:哪个是您首选的最佳文件恢复软件?

如今&#xff0c;智能设备无处不在&#xff0c;导致我们中的许多人无可辩驳地被大量数据所包围。随着大量数据的涌入得到一致的处理&#xff0c;无意中删除重要文档或不同文件&#xff0c;存在丢失这些数据的迫在眉睫的危险。 最好的数据恢复应用程序 对于每一个最好的数据恢复…

Python 与 TensorFlow2 生成式 AI(三)

原文&#xff1a;zh.annas-archive.org/md5/d06d282ea0d9c23c57f0ce31225acf76 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 第七章&#xff1a;使用 GAN 进行风格转移 神经网络在涉及分析和语言技能的各种任务中正在取得进步。创造力是人类一直占有优势的领域&…

Stm32CubeMX 为 stm32mp135d 添加网卡 eth

Stm32CubeMX 为 stm32mp135d 添加网卡 eth 一、启用设备1. eth 设备添加2. eth 引脚配置2. eth 时钟配置 二、 生成代码1. optee 配置2. uboot 配置3. linux 配置 bringup 可参考&#xff1a;Stm32CubeMX 生成设备树 一、启用设备 1. eth 设备添加 我这里只启用一个eth设备&…

uniapp 桌面应用插件 Ba-Launcher

简介&#xff08;下载地址&#xff09; Ba-Launcher 可以让你的应用成为简单的桌面应用&#xff0c;如需扩展功能&#xff0c;请联系我。 截图展示 可关注博客&#xff0c;实时更新最新插件&#xff1a; uniapp 常用原生插件大全 使用方法 使用方法也很简单&#xff0c;在插…

GPT3 终极指南(一)

原文&#xff1a;zh.annas-archive.org/md5/6de8906c86a2711a5a84c839bec7e073 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 前言 GPT-3&#xff0c;或者说是 Generative Pre-trained Transformer 3&#xff0c;是由 OpenAI 开发的基于 Transformer 的大型语言模型…

LLama3最新医疗大模型安装与应用指南

为什么要介绍医疗模型&#xff0c;因为平时我们工作繁忙&#xff0c;可能身体不舒服也会&#xff0c;拖着到不得已的时候才到医院&#xff0c;特别是老年人怕麻烦&#xff0c;拖延更严重。如果有了这些模型&#xff0c;我们可以向这些模型提问&#xff0c;给一个初步的了解&…