在21世纪的今天、社会的不断发展和进步当中,人民对于计算机信息科学化认识的程度越来越高、由以前我们的感性认识、到现在理性认识提高了,管理员的工作重要性也越来越高,科学化现代管理手段,使现代化信息存储、达到快速、完善以及准确、本篇论文主要是对家具用品销售管理系统进行了详细的功能设计和介绍,研究的现状以及还有涉及的开发背景,然后还对系统的设计目标进行了论述和系统的需求,以及整体系统设计方案实现都说的比较细致,最后对家具用品销售管理系统进行了一些具体细节功能测试。
本系统以java为核心开发技术,结合spingboot+VUE框架实现了一个家具用品销售管理系统。家具用品销售管理系统的主要使用者分为管理员、用户;主要包括首页模块、个人中心模块、用户管理以及家具用品商家管理和家具用品商品管理、家具用品商品类型管理、订单信息管理、系统轮播图管理、家具用品新闻资讯管理等功能。通过这些功能模块的设计,基本上实现了整个家具用品销售商品服务管理的过程。具体在系统设计上采用了B/S的结构
环境需要
1.运行环境:最好是java jdk 1.8,这是目前最稳定的JDK也是被使用最多的JDK版本。
2.IDE环境:IDEA,Eclipse都可以。推荐IDEA;
3.tomcat环境:Tomcat7/Tomcat8/Tomcat9版本均可
4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS;
5.数据库:MySql 5.7版本;
6.是否Maven项目:是;
技术栈
后端:Spring+SpringMVC+Mybatis+Springboot
前端:vue+CSS+JavaScript+jQuery+elementui
传统的家具用品销售商城系统中与服务相关的信息管理和管理方法一般都是手工的。这种方法需要耗费大量的人力、物力和财力,难以互动,也会浪费大家的时间;另一方面,它管理家具用品销售商品商场系统的用户等信息数据。特别是随着家具用品销售商品商城用户数量的不断增加,查询、维护、操作和修改变得尤为困难;最后,由于用户和其他信息的不断增加,数据量变得巨大,信息的存储容量也成为一个亟待解决的难题。
前台模块
(1)注册登录:用于会员注册的登录,登录时可以选择保存密码。
(2)商品浏览:对所有商品进行浏览以便选购。
(3)商品搜索:根据关键名词可以对所有的商品进行搜索。
(4 推荐商品:最受欢迎的商品展示给用户
(5)个人订单管理:对购买商品后的订单进行管理删除等处理。
(6)购物车:用户可以进行添加购物车,删除购物车等操作。
后台模块
(1)商品管理:包括商品的添加、修改删除、标记。管理商品分类且对商品数量进行统计。
(2)订单管理:管理员对订单的操作,发货后对订单做出发货标记。并且可以对订单统计生成销售报表。
(3)商品分类管理,对商品进行分类,方便用户根据分类查找所需的商品。
(4)会员管理:搜索查看会员信息。
项目启动后、管理员通过填写用户名、密码等信息进行登录验证,输入完成后选择角色登录验证账号密码无误后、即可进入家具用品销售管理系统首页,如图5-1所示。关键实现:家具用品销售商品系统系统,页面设计主要是在首页头部引入common以及jquery等公共的js和css样式布局文件,通过recommend index-pv2 DIV样式设计头部几个菜单栏的显示。用户点击其中一个div触发点击时间、页面就加载框架的布局、调用提前写好的.index-pv1 .animation-box:hover CSS文件等来渲染整个前端页面、用户登录注册,在用户注册页面通过填写账号、密码、姓名、手机、等信息用户注册,注册是用户输入input注册框之后点击确定事件(onsubmit)按钮、提交的时候绑定函数、书写函数(获取用户输入的数据<获取数据时需要在指定位置定义一个id>)、然后对form表单的数据进行判断、进行数据合法(form表单提交)、若数据非法(给出错误提示信息弹窗button,不让表单提交)
管理员abo登录进入家具用品销售管理系统后、可以查看首页模块、个人中心模块、用户管理、家具用品商家模块、家具用品商品类型管理、家具用品商品信息管理、家具用品订单信息管理模块以及家具用品销售商品新闻资讯以及轮播图内容模块进行详细的操作处理,
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.JiajuxinxiEntity;
import com.entity.view.JiajuxinxiView;
import com.service.JiajuxinxiService;
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-27 17:11:41
*/
@RestController
@RequestMapping("/jiajuxinxi")
public class JiajuxinxiController {
@Autowired
private JiajuxinxiService jiajuxinxiService;
/**
* 后端列表
*/
@RequestMapping("/page")
public R page(@RequestParam Map<String, Object> params,JiajuxinxiEntity jiajuxinxi,
HttpServletRequest request){
String tableName = request.getSession().getAttribute("tableName").toString();
if(tableName.equals("shangjia")) {
jiajuxinxi.setShangjiazhanghao((String)request.getSession().getAttribute("username"));
}
EntityWrapper<JiajuxinxiEntity> ew = new EntityWrapper<JiajuxinxiEntity>();
PageUtils page = jiajuxinxiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, jiajuxinxi), params), params));
return R.ok().put("data", page);
}
/**
* 前端列表
*/
@IgnoreAuth
@RequestMapping("/list")
public R list(@RequestParam Map<String, Object> params,JiajuxinxiEntity jiajuxinxi, HttpServletRequest request){
EntityWrapper<JiajuxinxiEntity> ew = new EntityWrapper<JiajuxinxiEntity>();
PageUtils page = jiajuxinxiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, jiajuxinxi), params), params));
return R.ok().put("data", page);
}
/**
* 列表
*/
@RequestMapping("/lists")
public R list( JiajuxinxiEntity jiajuxinxi){
EntityWrapper<JiajuxinxiEntity> ew = new EntityWrapper<JiajuxinxiEntity>();
ew.allEq(MPUtil.allEQMapPre( jiajuxinxi, "jiajuxinxi"));
return R.ok().put("data", jiajuxinxiService.selectListView(ew));
}
/**
* 查询
*/
@RequestMapping("/query")
public R query(JiajuxinxiEntity jiajuxinxi){
EntityWrapper< JiajuxinxiEntity> ew = new EntityWrapper< JiajuxinxiEntity>();
ew.allEq(MPUtil.allEQMapPre( jiajuxinxi, "jiajuxinxi"));
JiajuxinxiView jiajuxinxiView = jiajuxinxiService.selectView(ew);
return R.ok("查询商品信息成功").put("data", jiajuxinxiView);
}
/**
* 后端详情
*/
@RequestMapping("/info/{id}")
public R info(@PathVariable("id") Long id){
JiajuxinxiEntity jiajuxinxi = jiajuxinxiService.selectById(id);
return R.ok().put("data", jiajuxinxi);
}
/**
* 前端详情
*/
@IgnoreAuth
@RequestMapping("/detail/{id}")
public R detail(@PathVariable("id") Long id){
JiajuxinxiEntity jiajuxinxi = jiajuxinxiService.selectById(id);
return R.ok().put("data", jiajuxinxi);
}
/**
* 后端保存
*/
@RequestMapping("/save")
public R save(@RequestBody JiajuxinxiEntity jiajuxinxi, HttpServletRequest request){
jiajuxinxi.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
//ValidatorUtils.validateEntity(jiajuxinxi);
jiajuxinxiService.insert(jiajuxinxi);
return R.ok();
}
/**
* 前端保存
*/
@RequestMapping("/add")
public R add(@RequestBody JiajuxinxiEntity jiajuxinxi, HttpServletRequest request){
jiajuxinxi.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
//ValidatorUtils.validateEntity(jiajuxinxi);
jiajuxinxiService.insert(jiajuxinxi);
return R.ok();
}
/**
* 修改
*/
@RequestMapping("/update")
public R update(@RequestBody JiajuxinxiEntity jiajuxinxi, HttpServletRequest request){
//ValidatorUtils.validateEntity(jiajuxinxi);
jiajuxinxiService.updateById(jiajuxinxi);//全部更新
return R.ok();
}
/**
* 删除
*/
@RequestMapping("/delete")
public R delete(@RequestBody Long[] ids){
jiajuxinxiService.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<JiajuxinxiEntity> wrapper = new EntityWrapper<JiajuxinxiEntity>();
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("shangjia")) {
wrapper.eq("shangjiazhanghao", (String)request.getSession().getAttribute("username"));
}
int count = jiajuxinxiService.selectCount(wrapper);
return R.ok().put("count", count);
}
}
目 录
1 概述 1
1.1课题背景及意义 1
1.2 国内外研究现状 1
1.3 本课题主要工作 2
2 系统开发环境 3
2.1 java技术 3
2.2 Mysql数据库 3
2.3 B/S结构 4
2.4 SSM框架 4
3 系统分析 6
3.1 可行性分析 6
3.1.1 技术可行性 6
3.1.2操作可行性 6
3.1.3 经济可行性 6
3.1.4 法律可行性 7
3.2系统流程分析 7
3.2.1系统开发流程 7
3.2.2 用户登录流程 7
3.2.3 系统操作流程 8
3.2.4 添加信息流程 9
3.2.5 修改信息流程 9
3.2.6 删除信息流程 10
3.3系统用例分析 10
3.3.1管理员用例图 10
3.3.2用户用例图 11
3.3.3家具用品销售商品商家用例图 11
4 系统设计 13
4.1 系统概述 13
4.2 系统结构设计 13
4.3数据库设计 14
4.3.1 数据库设计原则 14
4.3.2 数据库实体 14
4.3.3 数据库表设计 15
5系统界面实现 22
5.1管理员功能模块 22
5.2家具用品销售商品商家功能模块 26
5.3用户功能模块 28
6系统测试 31
6.1系统测试的意义 31
6.2 测试方法 32
6.3测试分析 32
结 论 33
致谢 34
参考文献 35