项目介绍
进入21世纪,计算机技术迅速向着网络化的、集成化方向发展。传统的单机版应用软件正在逐渐退出舞台,取而代之的是支持网络、支持多种数据信息的新一代网络版应用软件,形成了信息化的社会。信息化社会的形成和微电子技术日新月异的发展,对落后低效的办公手段提出了挑战,信息是管理的基础,是进行决策的基本依据。本搬家预约系统是将IT技术用于搬家预约信息的管理, 它能够收集与存储搬家预约的档案信息,提供更新与检索搬家预约信息档案的接口;提高工作效率。
本系统是基于JAVA平台开发的一套搬家预约信息管理的系统。前端采用Vue渐进式框架,后台采用SSM框架。数据库采用MySQL建立数据之间的转换。论文主要介绍了本课题的开发背景,所要完成的功能和开发的过程。重点的说明了系统设计的重点、设计思想、难点技术和解决方案。
开发环境
编程语言:Java
数据库 :Mysql
系统架构:B/S
后端框架:SSM
编译工具:idea或者eclipse,jdk1.8,maven
支持定做:java/php/python/android/小程序ue/爬虫/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.3 司机模块
5.3.1 搬家订单管理
司机可以在搬家订单里面查看关于自己的搬家订单信息。
图5-7搬家订单管理界面
5.4 用户模块
5.4.1 搬家订单
用户可以在搬家订单里面查看关于自己的搬家订单信息。
图5-8搬家订单管理界面
5.4.2 我的收藏
用户可以收藏搬家信息,也可以删除收藏的信息,还可以查询自己收藏的信息。
图5-9我的收藏界面
5.4.3 搬家新闻
用户可以在前台页面查看搬家新闻信息。
图5-10搬家新闻界面
5.4.4 搬家须知
用户可以在前台页面查看搬家须知信息。
图5-11搬家须知界面
5.4.5 搬家服务
用户可以在前台页面查看搬家服务信息,还可以进行预约操作。
图5-12 搬家服务界面
核心代码
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.BanjiadingdanEntity;
import com.entity.view.BanjiadingdanView;
import com.service.BanjiadingdanService;
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("/banjiadingdan")
public class BanjiadingdanController {
@Autowired
private BanjiadingdanService banjiadingdanService;
/**
* 后端列表
*/
@RequestMapping("/page")
public R page(@RequestParam Map<String, Object> params,BanjiadingdanEntity banjiadingdan,
HttpServletRequest request){
String tableName = request.getSession().getAttribute("tableName").toString();
if(tableName.equals("siji")) {
banjiadingdan.setSijizhanghao((String)request.getSession().getAttribute("username"));
}
if(tableName.equals("yonghu")) {
banjiadingdan.setZhanghao((String)request.getSession().getAttribute("username"));
}
EntityWrapper<BanjiadingdanEntity> ew = new EntityWrapper<BanjiadingdanEntity>();
PageUtils page = banjiadingdanService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, banjiadingdan), params), params));
return R.ok().put("data", page);
}
/**
* 前端列表
*/
@RequestMapping("st")
public R list(@RequestParam Map<String, Object> params,BanjiadingdanEntity banjiadingdan,
HttpServletRequest request){
EntityWrapper<BanjiadingdanEntity> ew = new EntityWrapper<BanjiadingdanEntity>();
PageUtils page = banjiadingdanService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, banjiadingdan), params), params));
return R.ok().put("data", page);
}
/**
* 列表
*/
@RequestMapping("sts")
public R list( BanjiadingdanEntity banjiadingdan){
EntityWrapper<BanjiadingdanEntity> ew = new EntityWrapper<BanjiadingdanEntity>();
ew.allEq(MPUtil.allEQMapPre( banjiadingdan, "banjiadingdan"));
return R.ok().put("data", banjiadingdanService.selectListView(ew));
}
/**
* 查询
*/
@RequestMapping("/query")
public R query(BanjiadingdanEntity banjiadingdan){
EntityWrapper< BanjiadingdanEntity> ew = new EntityWrapper< BanjiadingdanEntity>();
ew.allEq(MPUtil.allEQMapPre( banjiadingdan, "banjiadingdan"));
BanjiadingdanView banjiadingdanView = banjiadingdanService.selectView(ew);
return R.ok("查询搬家订单成功").put("data", banjiadingdanView);
}
/**
* 后端详情
*/
@RequestMapping("/info/{id}")
public R info(@PathVariable("id") Long id){
BanjiadingdanEntity banjiadingdan = banjiadingdanService.selectById(id);
return R.ok().put("data", banjiadingdan);
}
/**
* 前端详情
*/
@RequestMapping("/detail/{id}")
public R detail(@PathVariable("id") Long id){
BanjiadingdanEntity banjiadingdan = banjiadingdanService.selectById(id);
return R.ok().put("data", banjiadingdan);
}
/**
* 后端保存
*/
@RequestMapping("ve")
public R save(@RequestBody BanjiadingdanEntity banjiadingdan, HttpServletRequest request){
banjiadingdan.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
//ValidatorUtils.validateEntity(banjiadingdan);
banjiadingdanService.insert(banjiadingdan);
return R.ok();
}
/**
* 前端保存
*/
@RequestMapping("/add")
public R add(@RequestBody BanjiadingdanEntity banjiadingdan, HttpServletRequest request){
banjiadingdan.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
//ValidatorUtils.validateEntity(banjiadingdan);
banjiadingdanService.insert(banjiadingdan);
return R.ok();
}
/**
* 修改
*/
@RequestMapping("/update")
public R update(@RequestBody BanjiadingdanEntity banjiadingdan, HttpServletRequest request){
//ValidatorUtils.validateEntity(banjiadingdan);
banjiadingdanService.updateById(banjiadingdan);//全部更新
return R.ok();
}
/**
* 删除
*/
@RequestMapping("/delete")
public R delete(@RequestBody Long[] ids){
banjiadingdanService.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<BanjiadingdanEntity> wrapper = new EntityWrapper<BanjiadingdanEntity>();
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("siji")) {
wrapper.eq("sijizhanghao", (String)request.getSession().getAttribute("username"));
}
if(tableName.equals("yonghu")) {
wrapper.eq("zhanghao", (String)request.getSession().getAttribute("username"));
}
int count = banjiadingdanService.selectCount(wrapper);
return R.ok().put("count", count);
}
}
论文参考
目 录
第1章 绪论 4
1.1 选题的依据及意义 5
1.2 国内外现状研究 5
1.3 研究目的 6
第2章 设计技术 6
2.1 VUE简介 6
2.2 B/S模式分析 6
2.3 MySQL简介 7
2.4 SSM框架简介 7
第3章 需求分析与可行性分析 8
3.1 需求分析 8
3.2 可行性研究 8
3.2.1 技术可行性 8
3.2.2 运行可行性 9
3.2.3 时间可行性 9
第4章 系统设计 9
4.1 系统总体设计 9
4.2 概要设计 10
4.3 数据库概念结构设计 10
4.4 数据库逻辑结构设计 15
第5章 系统实现 18
5.1 管理员模块 18
5.1.1 用户管理 18
5.1.2 司机管理 19
5.1.3 搬家人员管理 19
5.1.4 搬家须知管理 20
5.1.5 搬家服务管理 20
5.2 搬家人员模块 21
5.2.1 搬家订单管理 21
5.3 司机模块 22
5.3.1 搬家订单管理 22
5.4 用户模块 22
5.4.1 搬家订单 22
5.4.2 我的收藏 23
5.4.3 搬家新闻 23
5.4.4 搬家须知 24
5.4.5 搬家服务 24
第6章 测试 25
6 程序的测试 25
6.1 测试的重要性及目的 25
6.2 测试的步骤 26
6.3 测试的主要内容 26
6.4 测试用例 27
结论 28
致谢 29
参考文献 30