项目介绍
互联网发展至今,无论是其理论还是技术都已经成熟,而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播,搭配信息管理工具可以很好地为人们提供服务。针对KTV包厢信息管理混乱,出错率高,信息安全性差,劳动强度大,费时费力等问题,采用KTV包厢管理系统可以有效管理,使信息管理能够更加科学和规范。
KTV包厢管理系统在idea环境中,使用Java语言进行编码,使用Mysql创建数据表保存本系统产生的数据。系统可以提供信息显示和相应服务,其管理员管理包间,会员,商品,商品购买,账单,留言,能够审核包间预订信息。用户预订包间,购买商品,发布留言反馈信息,查看优惠资讯。
总之,KTV包厢管理系统集中管理信息,有着保密性强,效率高,存储空间大,成本低等诸多优点。它可以降低信息管理成本,实现信息管理计算机化。
4.2 功能结构设计
在前面分析的管理员功能的基础上,进行接下来的设计工作,最终展示设计的管理员结构图(见下图)。管理员管理包间,会员,商品,商品购买,账单,留言,能够审核包间预订信息。
在前面分析的用户功能的基础上,进行接下来的设计工作,最终展示设计的用户结构图(见下图)。用户预订包间,购买商品,发布留言反馈信息,查看优惠资讯。
开发环境
编程语言:Java
数据库 :Mysql
系统架构:B/S
后端框架:SSM
编译工具:idea或者eclipse,jdk1.8,maven
支持定做:java/php/python/android/小程序/vue/爬虫/c#/asp.net
系统实现
5.1 管理员功能实现
5.1.1 包间信息管理
管理员进入指定功能操作区之后可以管理包间信息。其页面见下图。管理员主要负责包间信息的增删改查操作。
图5.1 包间信息管理页面
5.1.2 包间预订管理
管理员进入指定功能操作区之后可以管理包间预订信息。其页面见下图。管理员主要负责审核用户预订的包间信息。
图5.2 包间预订管理页面
5.1.3 商品信息管理
管理员进入指定功能操作区之后可以管理商品信息。其页面见下图。管理员在本页面可以增删改查商品信息。
图5.3 商品信息管理页面
5.1.4 商品购买管理
管理员进入指定功能操作区之后可以管理商品购买信息。其页面见下图。管理员对用户购买的商品进行查看,在本页面可以修改,删除商品购买信息。
图5.4 商品购买管理页面
5.1.5 账单信息管理
管理员进入指定功能操作区之后可以管理账单信息。其页面见下图。管理员新增账单,查看账单的支付情况,管理员可以修改,删除账单。
图5.5 账单信息管理页面
5.2 用户功能实现
5.2.1 包间信息
用户进入指定功能操作区之后可以查看包间信息。其页面见下图。用户查看包间详情,预订包间。
图5.6 包间信息页面
5.2.2 商品信息
用户进入指定功能操作区之后可以查看商品信息。其页面见下图。用户查看商品,能够购买当前页面显示的商品。
图5.7 商品信息页面
5.2.3 留言反馈
用户进入指定功能操作区之后可以进行留言反馈。其页面见下图。用户发布留言,其发布的留言以及管理员的回复信息都会显示在本页面。
图5.8 留言反馈页面
5.2.4 优惠资讯
用户进入指定功能操作区之后可以查看优惠资讯信息。其页面见下图。用户点击优惠资讯的图片或标题可以查看优惠资讯内容。
图5.9 优惠资讯页面
核心代码
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.BaojianyudingEntity;
import com.entity.view.BaojianyudingView;
import com.service.BaojianyudingService;
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
*/
@RestController
@RequestMapping("/baojianyuding")
public class BaojianyudingController {
@Autowired
private BaojianyudingService baojianyudingService;
/**
* 后端列表
*/
@RequestMapping("/page")
public R page(@RequestParam Map<String, Object> params,BaojianyudingEntity baojianyuding,
HttpServletRequest request){
String tableName = request.getSession().getAttribute("tableName").toString();
if(tableName.equals("yonghu")) {
baojianyuding.setYonghuming((String)request.getSession().getAttribute("username"));
}
EntityWrapper<BaojianyudingEntity> ew = new EntityWrapper<BaojianyudingEntity>();
PageUtils page = baojianyudingService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, baojianyuding), params), params));
return R.ok().put("data", page);
}
/**
* 前端列表
*/
@RequestMapping("st")
public R list(@RequestParam Map<String, Object> params,BaojianyudingEntity baojianyuding,
HttpServletRequest request){
EntityWrapper<BaojianyudingEntity> ew = new EntityWrapper<BaojianyudingEntity>();
PageUtils page = baojianyudingService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, baojianyuding), params), params));
return R.ok().put("data", page);
}
/**
* 列表
*/
@RequestMapping("sts")
public R list( BaojianyudingEntity baojianyuding){
EntityWrapper<BaojianyudingEntity> ew = new EntityWrapper<BaojianyudingEntity>();
ew.allEq(MPUtil.allEQMapPre( baojianyuding, "baojianyuding"));
return R.ok().put("data", baojianyudingService.selectListView(ew));
}
/**
* 查询
*/
@RequestMapping("/query")
public R query(BaojianyudingEntity baojianyuding){
EntityWrapper< BaojianyudingEntity> ew = new EntityWrapper< BaojianyudingEntity>();
ew.allEq(MPUtil.allEQMapPre( baojianyuding, "baojianyuding"));
BaojianyudingView baojianyudingView = baojianyudingService.selectView(ew);
return R.ok("查询包间预订成功").put("data", baojianyudingView);
}
/**
* 后端详情
*/
@RequestMapping("/info/{id}")
public R info(@PathVariable("id") Long id){
BaojianyudingEntity baojianyuding = baojianyudingService.selectById(id);
return R.ok().put("data", baojianyuding);
}
/**
* 前端详情
*/
@RequestMapping("/detail/{id}")
public R detail(@PathVariable("id") Long id){
BaojianyudingEntity baojianyuding = baojianyudingService.selectById(id);
return R.ok().put("data", baojianyuding);
}
/**
* 后端保存
*/
@RequestMapping("ve")
public R save(@RequestBody BaojianyudingEntity baojianyuding, HttpServletRequest request){
baojianyuding.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
//ValidatorUtils.validateEntity(baojianyuding);
baojianyudingService.insert(baojianyuding);
return R.ok();
}
/**
* 前端保存
*/
@RequestMapping("/add")
public R add(@RequestBody BaojianyudingEntity baojianyuding, HttpServletRequest request){
baojianyuding.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
//ValidatorUtils.validateEntity(baojianyuding);
baojianyudingService.insert(baojianyuding);
return R.ok();
}
/**
* 修改
*/
@RequestMapping("/update")
public R update(@RequestBody BaojianyudingEntity baojianyuding, HttpServletRequest request){
//ValidatorUtils.validateEntity(baojianyuding);
baojianyudingService.updateById(baojianyuding);//全部更新
return R.ok();
}
/**
* 删除
*/
@RequestMapping("/delete")
public R delete(@RequestBody Long[] ids){
baojianyudingService.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<BaojianyudingEntity> wrapper = new EntityWrapper<BaojianyudingEntity>();
if(map.get("remindstart")!=null) {
wrapper.ge(columnName, map.get("remindstart"));
}
if(map.get("remindend")!=null) {
wrapper.le(columnName, map.get("remindend"));
}
String tableName = request.getSession().getAttribute("tableName").toString();
if(tableName.equals("yonghu")) {
wrapper.eq("yonghuming", (String)request.getSession().getAttribute("username"));
}
int count = baojianyudingService.selectCount(wrapper);
return R.ok().put("count", count);
}
}
论文参考
目 录
第1章 绪论 1
1.1 课题背景 1
1.2 课题意义 1
1.3 研究内容 2
第2章 开发环境与技术 3
2.1 MYSQL数据库 3
2.2 JSP技术 3
2.3 SSM框架 4
第3章 系统分析 5
3.1 可行性分析 5
3.1.1 技术可行性 5
3.1.2 经济可行性 5
3.1.3 操作可行性 5
3.2 系统流程 6
3.2.1 操作流程 6
3.2.2 登录流程 6
3.2.3 删除信息流程 7
3.2.4 添加信息流程 8
3.3 性能需求 8
3.4 功能需求 9
第4章 系统设计 12
4.1 设计原则 12
4.2 功能结构设计 12
4.3 数据库设计 14
4.3.1 数据库概念设计 14
4.3.2 数据库物理设计 17
第5章 系统实现 22
5.1 管理员功能实现 22
5.1.1 包间信息管理 22
5.1.2 包间预订管理 22
5.1.3 商品信息管理 23
5.1.4 商品购买管理 23
5.1.5 账单信息管理 24
5.2 用户功能实现 24
5.2.1 包间信息 24
5.2.2 商品信息 25
5.2.3 留言反馈 25
5.2.4 优惠资讯 26
第6章 系统测试 27
6.1 功能测试 27
6.1.1 登录功能测试 27
6.1.2 修改密码功能测试 28
6.2 测试结果 28
结 论 29
致 谢 30
参考文献 31