基于java的网上鲜花销售系统,基于JAVA的鲜花销售管理系统MVC开发,免费分享

大家好,我是全微毕设团队的创始人,本团队擅长JAVA(SSM,SSH,SPRINGBOOT)、PYTHON、PHP、C#、安卓等多项技术。

今天将为大家分析一个鲜花销售管理系统(花店是指从事以花为主的多元化经营,经营范围包括:鲜花及人造花的零售、批发业务;经营花店所需的用品、用具;礼仪策划庆典服务等的商店。

花店具备了花艺的自行设计、生产、来料加工等技术和设备条件;可提供各色品种鲜花。),该项目使用框架为SSM(MYECLIPSE),选用开发工具为MYECLIPSE。鲜花销售管理系统为一个 后台项目。

为了完成该系统,我们首先需要对该系统进行需求分析。一个鲜花销售管理系统应包含用户角色有管理员、客户。为了能让用户顺利登陆系统完成相关操作,需要为每种登陆角色设置账户和密码字段。

为了完成系统的功能需要为鲜花、客户设置购物车表,记录购物车信息。在购物车表中定义了两者的关联关系,其中购物车的鲜花与鲜花的mingcheng字段对应、购物车的鲜花id与鲜花的id字段对应、购物车的客户与客户的mingzi字段对应、购物车的客户id与客户的id字段对应

。为了完成系统的功能需要为客户、鲜花设置订单表,记录订单信息。在订单表中定义了两者的关联关系,其中订单的客户与客户的mingzi字段对应、订单的客户id与客户的id字段对应、订单的鲜花与鲜花的mingcheng字段对应、订单的鲜花id与鲜花的id字段对应

总结得出该系统所有数据为:管理员(admin)、鲜花(xianhua)、客户(kehu)、购物车(gouwuche)、订单(dingdan)

管理员表

字段名 | 类型 | 属性 | 描述

id | int(11) | PRIMARY KEY | 管理员id

username | varchar(255) |  | 账号

password | varchar(255) |  | 密码

鲜花表

字段名 | 类型 | 属性 | 描述

id | int(11) | PRIMARY KEY | 鲜花id

mingcheng | varchar(255) |  | 名称

tupian | varchar(255) |  | 图片

jiage | varchar(255) |  | 价格

huayu | varchar(255) |  | 花语

shuoming | varchar(255) |  | 说明

客户表

字段名 | 类型 | 属性 | 描述

id | int(11) | PRIMARY KEY | 客户id

mingzi | varchar(255) |  | 名字

username | varchar(255) |  | 账号

password | varchar(255) |  | 密码

yue | varchar(255) |  | 余额

购物车表

字段名 | 类型 | 属性 | 描述

id | int(11) | PRIMARY KEY | 购物车id

xianhua | varchar(255) |  | 鲜花

xianhuaid | varchar(255) |  | 鲜花id

kehu | varchar(255) |  | 客户

kehuid | varchar(255) |  | 客户id

shuliang | varchar(255) |  | 数量

zongjia | varchar(255) |  | 总价

订单表

字段名 | 类型 | 属性 | 描述

id | int(11) | PRIMARY KEY | 订单id

kehu | varchar(255) |  | 客户

kehuid | varchar(255) |  | 客户id

xianhua | varchar(255) |  | 鲜花

xianhuaid | varchar(255) |  | 鲜花id

jiage | varchar(255) |  | 价格

sql建表语句

SET FOREIGN_KEY_CHECKS=0;

-- ----------------------------

-- ----------------------------

-- Table structure for ggxianhuaxiaoshou

-- ----------------------------

DROP TABLE IF EXISTS `t_admin`;

CREATE TABLE `t_admin` (`id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '管理员id',`username` VARCHAR(255) DEFAULT NULL COMMENT '账号',`password` VARCHAR(255) DEFAULT NULL COMMENT '密码',PRIMARY KEY (`id`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='管理员';

-- ----------------------------

DROP TABLE IF EXISTS `t_xianhua`;

CREATE TABLE `t_xianhua` (`id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '鲜花id',`mingcheng` VARCHAR(255) DEFAULT NULL COMMENT '名称',`tupian` VARCHAR(255) DEFAULT NULL COMMENT '图片',`jiage` VARCHAR(255) DEFAULT NULL COMMENT '价格',`huayu` VARCHAR(255) DEFAULT NULL COMMENT '花语',`shuoming` VARCHAR(5000) DEFAULT NULL COMMENT '说明',PRIMARY KEY (`id`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='鲜花';

-- ----------------------------

DROP TABLE IF EXISTS `t_kehu`;

CREATE TABLE `t_kehu` (`id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '客户id',`mingzi` VARCHAR(255) DEFAULT NULL COMMENT '名字',`username` VARCHAR(255) DEFAULT NULL COMMENT '账号',`password` VARCHAR(255) DEFAULT NULL COMMENT '密码',`yue` VARCHAR(255) DEFAULT NULL COMMENT '余额',PRIMARY KEY (`id`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='客户';

-- ----------------------------

DROP TABLE IF EXISTS `t_gouwuche`;

CREATE TABLE `t_gouwuche` (`id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '购物车id',`xianhua` VARCHAR(255) DEFAULT NULL COMMENT '鲜花',`xianhuaid` INT(11) DEFAULT NULL COMMENT '鲜花id',`kehu` VARCHAR(255) DEFAULT NULL COMMENT '客户',`kehuid` INT(11) DEFAULT NULL COMMENT '客户id',`shuliang` VARCHAR(255) DEFAULT NULL COMMENT '数量',`zongjia` VARCHAR(255) DEFAULT NULL COMMENT '总价',PRIMARY KEY (`id`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='购物车';

-- ----------------------------

DROP TABLE IF EXISTS `t_dingdan`;

CREATE TABLE `t_dingdan` (`id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '订单id',`kehu` VARCHAR(255) DEFAULT NULL COMMENT '客户',`kehuid` INT(11) DEFAULT NULL COMMENT '客户id',`xianhua` VARCHAR(255) DEFAULT NULL COMMENT '鲜花',`xianhuaid` INT(11) DEFAULT NULL COMMENT '鲜花id',`jiage` VARCHAR(255) DEFAULT NULL COMMENT '价格',PRIMARY KEY (`id`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='订单';

订单处理类

package org.mypro.front;

import java.io.File;

import java.io.IOException;

import java.math.BigDecimal;

import java.text.SimpleDateFormat;

import java.util.ArrayList;

import java.util.Calendar;

import java.util.Collections;

import java.util.Date;

import java.util.List;

import javax.jms.Session;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import javax.servlet.http.HttpSession;

import org.apache.commons.lang3.StringUtils;

import org.apache.commons.logging.Log;

import org.apache.commons.logging.LogFactory;

import org.mypro.dao.DingdanMapper;

import org.mypro.entity.Dingdan;

import org.mypro.entity.DingdanExample;

import org.mypro.entity.Kehu;

import org.mypro.entity.KehuExample;

import org.mypro.dao.KehuMapper;

import org.mypro.entity.Xianhua;

import org.mypro.entity.XianhuaExample;

import org.mypro.dao.XianhuaMapper;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.stereotype.Controller;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RequestMethod;

import org.springframework.web.multipart.MultipartFile;

@Controller

@RequestMapping(value = "/")

public class DingdanController {

private static final Log logger = LogFactory.getLog(DingdanController.class);

@Autowired

private DingdanMapper dingdandao; // 定义kehudao参数

@Autowired

private KehuMapper kehudao; // 定义xianhuadao参数

@Autowired

private XianhuaMapper xianhuadao;

//定义方法tianjiadingdan,响应页面tianjiadingdan请求

@RequestMapping(value = "tianjiadingdan")

public String tianjiadingdan(HttpServletRequest request, HttpServletResponse response,HttpSession session,String backurl) {

logger.debug("DingdanController.tianjiadingdan ......");

// 定义 example1为 KehuExample的实例

KehuExample example1 = new KehuExample();

List kehuall = kehudao.selectByExample(example1);

request.setAttribute("kehuall", kehuall);

// 定义 example2为 XianhuaExample的实例

XianhuaExample example2 = new XianhuaExample();

List xianhuaall = xianhuadao.selectByExample(example2);

request.setAttribute("xianhuaall", xianhuaall);

if(backurl != null && backurl.indexOf("tianjiadingdan.action") == -1){

return "forward:/" + backurl; }

return "tianjiadingdan";

}

@RequestMapping(value = "tianjiadingdanact")

public String tianjiadingdanact(HttpServletRequest request,HttpSession session, HttpServletResponse response,Dingdan dingdan,String backurl) throws IOException {

logger.debug("DingdanController.tianjiadingdanact ......");

dingdandao.insert(dingdan);

request.setAttribute("message", "添加订单成功");

if(backurl != null && backurl.indexOf("tianjiadingdanact.action") == -1){

return "forward:/" + backurl; }

//返回tianjiadingdan方法

return "forward:/tianjiadingdan.action";

}

//定义dingdanguanli方法响应页面请求

@RequestMapping(value = "dingdanguanli")

public String dingdanguanli(HttpServletRequest request,HttpSession session, HttpServletResponse response,String backurl) {

logger.debug("DingdanController.dingdanguanli ......");

DingdanExample example = new DingdanExample();

List dingdanall = dingdandao.selectByExample(example);

request.setAttribute("dingdanall", dingdanall);

if(backurl != null && backurl.indexOf("dingdanguanli.action") == -1){

return "forward:/" + backurl; }

return "dingdanguanli";

}

// 定义 dingdanchakan方法

@RequestMapping(value = "dingdanchakan")

public String dingdanchakan(HttpServletRequest request,HttpSession session, HttpServletResponse response,String backurl) {

logger.debug("DingdanController.dingdanchakan ......");

DingdanExample example = new DingdanExample();

List dingdanall = dingdandao.selectByExample(example);

request.setAttribute("dingdanall", dingdanall);

if(backurl != null && backurl.indexOf("dingdanchakan.action") == -1){

return "forward:/" + backurl; }

return "dingdanchakan";

}

// 定义 xiugaidingdan方法

@RequestMapping(value = "xiugaidingdan")

public String xiugaidingdan(HttpServletRequest request, HttpServletResponse response,HttpSession session,int id,String backurl){

logger.debug("DingdanController.xiugaidingdan ......");

Dingdan dingdan = dingdandao.selectByPrimaryKey(id);

// 定义 example1为 KehuExample的实例

KehuExample example1 = new KehuExample();

List kehuall = kehudao.selectByExample(example1);

request.setAttribute("kehuall", kehuall);

// 定义 example2为 XianhuaExample的实例

XianhuaExample example2 = new XianhuaExample();

List xianhuaall = xianhuadao.selectByExample(example2);

request.setAttribute("xianhuaall", xianhuaall);

request.setAttribute("dingdan", dingdan);

if(backurl != null && backurl.indexOf("xiugaidingdan.action") == -1){

return "forward:/" + backurl; }

return "xiugaidingdan";

}

// 定义xiugaidingdanact处理订单修改

@RequestMapping(value = "xiugaidingdanact")

public String xiugaidingdanact(HttpServletRequest request, HttpServletResponse response,Dingdan dingdan,HttpSession session,String backurl) throws IOException {

logger.debug("DingdanController.xiugaidingdanact ......");

dingdandao.updateByPrimaryKeySelective(dingdan);

request.setAttribute("message", "修改订单信息成功");

if(backurl != null && backurl.indexOf("xiugaidingdanact.action") == -1){

return "forward:/" + backurl; }

return "forward:/dingdanguanli.action";

}

// 定义shanchudingdan,处理删除订单

@RequestMapping(value = "shanchudingdan")

public String shanchudingdan(HttpServletRequest request, HttpServletResponse response,HttpSession session,int id,String backurl){

logger.debug("DingdanController.shanchudingdan ......");

dingdandao.deleteByPrimaryKey(id);

request.setAttribute("message", "删除订单成功");

if(backurl != null && backurl.indexOf("shanchudingdan.action") == -1){

return "forward:/" + backurl; }

return "forward:/dingdanguanli.action";

}

// 定义sousuodingdan方法,处理搜索操作

@RequestMapping(value = "sousuodingdan")

public String sousuodingdan(HttpServletRequest request, HttpServletResponse response,HttpSession session,String search,String backurl) {

logger.debug("DingdanController.sousuodingdan ......");

DingdanExample example = new DingdanExample();

DingdanExample.Criteria criteria = example.createCriteria();

if(search != null){

criteria.andKehuLike("%" + search + "%");

}

List dingdanall = dingdandao.selectByExample(example);

request.setAttribute("dingdanall", dingdanall);

if(backurl != null && backurl.indexOf("sousuodingdan.action") == -1){

return "forward:/" + backurl; }

return "sousuodingdan";

}

// 定义DingdanpinglunMapper

@RequestMapping(value = "dingdanxiangqing")

public String dingdanxiangqing(HttpServletRequest request,HttpSession session, HttpServletResponse response,int id,String backurl) {

logger.debug("DingdanController.dingdanxiangqing ......");

Dingdan dingdan = dingdandao.selectByPrimaryKey(id);

request.setAttribute("dingdan", dingdan);

if(backurl != null && backurl.indexOf("dingdanxiangqing.action") == -1){

return "forward:/" + backurl; }

return "dingdanxiangqing";

}

// 上传文件图片等

public String uploadUtile(MultipartFile file, HttpServletRequest request) throws IOException {

// 根据当前时间生成时间字符串

SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSS");

String res = sdf.format(new Date());

// uploads文件夹位置

String rootPath = request.getSession().getServletContext().getRealPath("resource/uploads/");

// 原始名称

String originalFileName = file.getOriginalFilename();

// 新文件名

String newFileName = "sliver" + res + originalFileName.substring(originalFileName.lastIndexOf("."));

// 创建年月文件夹

Calendar date = Calendar.getInstance();

File dateDirs = new File(date.get(Calendar.YEAR) + File.separator + (date.get(Calendar.MONTH)+1));

// 新文件

File newFile = new File(rootPath + File.separator + dateDirs + File.separator + newFileName);

// 判断目标文件所在目录是否存在

if( !newFile.getParentFile().exists()) {

// 如果目标文件所在的目录不存在,则创建父目录

newFile.getParentFile().mkdirs();

}

System.out.println(newFile);

// 将内存中的数据写入磁盘

file.transferTo(newFile);

// 完整的url

String fileUrl = date.get(Calendar.YEAR) + "/" + (date.get(Calendar.MONTH)+1) + "/" + newFileName;

return fileUrl;

}}

3347f0cf2e72470fd0deab05c21486d1.png

a464ad7411e77466c7dd285427aa4bf2.png

744e4627b1815a309976da4ffba4838f.png

8b108f77787dc4ac98995edac1a42fac.png

如需源码,可以留下邮箱

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值