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;
}

                                   

                                      

  • 19
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值