(附源码)基于SSM鲜花商城设计与实现

今天给大家分享一个基于SSM的鲜花商城管理系统系统,分享给大家,希望多多支持
源码在文章末尾链接获取

摘要:
随着互联网突飞猛进的发展及其对人们的生活产生至关重要的影响,线上购花,送货到家的购物方式受到了越来越多顾客的接受与喜爱。线上花卉小铺的设计与实现不仅可以带来更广泛的选择与实惠的价格,提供便利且优质的服务,而且可以更高效地宣传种植培养经验、花束的花语等花卉的相关知识,提高大家的文化素养,丰富精神世界。
本项目基于Web端,采用了面向对象的思想,使用的是SSM框架,选用了目前非常流行的Web应用程序开发语言Java,数据的存取采用MYSQL进行技术支持,前端主要使用jQuery与Ajax。本设计主要实现了用户前台与管理员后端的相关功能,如用户注册登录、个人信息管理、购物车管理、个人订单管理、用户管理、花卉订单管理、花卉类目管理、活动公告发布等。
此次设计从系统需求分析、系统设计到系统编程和调试测试等过程,综合锻炼了自身对一个系统的设计与开发的能力。本文的工作为更为复杂的线上购花系统的建设打下了基础,完成了线上购花的基本流程,达到所需的功能性要求。

一、项目简介

基于SSM的鲜花/花店商城系统

二、技术实现

后台框架:Spring、SpringMVC、MyBatis

UI界面:JSP、jQuery 、BootStrap

数据库:MySQL

三、系统功能

系统功能:
用户:登录、注册、商品查询、公告预览、留言、订单管理、商品商城、修改密码、个人信息修改、商品查询。
管理员:登录、类别管理、用户管理、商品管理、订单管理、公告管理、留言管理

四、环境搭建

开发语言:Java

开发工具:IDEA,Eclipse,Myeclipse都可以。推荐IDEA

JDK版本:1.8

数据库: MySQL5.7(必须是5.7)

Tomcat环境:Tomcat 7.x,8.x,9.x版本均可

五 、项目截图

此设计将系统的各个实体对应的各种关系,抽象出来在脑子里映射成思维导图,以E-R图的形式输出我们需要的可分析且可视化的一些东西,E-R图就是反应系统实体关系的一个图,之后我们借助E-R图可更轻松明了地将实体、关系映射为数据表。由于系统功能较多,要想面面俱到地抽象出所有实体关系是有难度的,参考系统总设计功能模块图,得出系统的主要实体有:用户、管理员、鲜花鲜花内容、鲜花鲜花类目、订单、购物车、留言等。系统主要实体的实体关系图如下所示。

在这里插入图片描述

本系统分为用户端和管理员端两个部分,此次设计按照数据库、po层、mapper层、service层,控制器层和前端jsp页面的分层次的方式一步一步进行系统的完善。持久层主要工作有接受业务层的请求,然后根据封装的处理数据库的语句代码来响应,负责数据库的一些基础操作。业务层则会调用已定义好了的持久层的接口进而实现业务的逻辑设计与实现,会将业务的所有操作封装成一个方法,业务层有添加事务注解,事务可以理解为一组sql语句,当执行多条sql语句时,其中有的语句操作失败了,事务就会发生回滚,这样也能避免数据混乱的问题。控制器层则会调用业务层的相关接口来控制相应的业务流程,不同的业务流程对应着不一样的控制器,该层对接前端的请求,然后调用业务层的一些方法,获取结果传递给客户端。前端jsp页面则用于使用者发出请求和展示已经请求响应的结果。在这里插入图片描述

系统功能模块设计
系统的功能模块设计有两个方面:用户端功能设计和管理员端功能设计,这里采用功能结构图来呈现相应部分的各个模块之间的关系。功能结构图将系统进行模块化,顾名思义为分解,把系统自顶向下分解成多个越来越详细,即范围小、功能更为简单的模块,让每个部分独立出来,建立每个模块之间的关系,使得系统的设计更加清晰明了,这对于系统的整体开发会产生很大的影响,节省人力物力,好的结构功能图的设计也能方便后期系统的相关完善与维护。
系统用户端部分的功能设计大致分为三个模块:用户中心模块、购物车模块和个人订单管理模块。用户中心模块功能有:1.用户的注册登录。2.个人信息的修改。3.从分类检索、关键字搜索查询、热销鲜花鲜花和折扣鲜花鲜花四个渠道来浏览鲜花鲜花相关信息。4.管理收藏。5.查看公告。6.店铺留言反馈问题。购物车模块的功能有:1.对购物车中的鲜花鲜花进行增删改查。2.去结算功能。个人订单管理模块功能有:1.对结算后的订单进行增删改查。2.查看各订单的状态,包括已取消、待发货、待收获、已收货。3.去评价功能。

系统管理员端功能设计大致分为四个模块:鲜花鲜花内容管理模块、鲜花鲜花订单管理模块、消息管理模块、用户管理模块。鲜花鲜花内容管理模块功能有:1.对鲜花鲜花信息的增删改查。2.对鲜花鲜花类目的增删改查。3.鲜花鲜花的销量统计。鲜花鲜花订单管理模块功能有:1.用户订单信息的增删改查。消息管理模块功能有:1.对发布的活动公告进行增删改查。2.查看用户留言记录。用户管理模块功能有:1.查看用户基本信息。2.按关键字查询用户。
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

六、相关代码分享

购物车控制器

/**
 * 购物车
 */
@Controller
@RequestMapping("/car")
public class CarController {

    @Autowired
    private CarService carService;

    @Autowired
    private ItemService itemService;

    @RequestMapping("/exAdd")
    @ResponseBody
    public String exAdd(Car car, HttpServletRequest request){
        JSONObject js = new JSONObject();
        Object attribute = request.getSession().getAttribute(Consts.USERID);
        if(attribute==null){
            js.put(Consts.RES,0);
            return js.toJSONString();
        }
        //保存到购物车
        Integer userId = Integer.valueOf(attribute.toString());//获取用户id
        car.setUserId(userId);
        Item item = itemService.load(car.getItemId());//获取花束id
        String price = item.getPrice();//获取花束折扣、价格
        Integer zk = item.getZk();
        Double valueOf = Double.valueOf(price);
        car.setPrice(valueOf);//存进car表中

        if(item.getZk()!=null){
            car.setZk(((double)item.getZk())/10);
            valueOf = valueOf*item.getZk()/10;
            BigDecimal bg = new BigDecimal(valueOf).setScale(2, RoundingMode.UP);
//            car.setPrice(bg.doubleValue());
            valueOf = bg.doubleValue();
        }
        Integer num = car.getNum();
        Double t = valueOf*num;

        BigDecimal bg = new BigDecimal(t).setScale(2, RoundingMode.UP);
        double doubleValue = bg.doubleValue();
        car.setTotal(doubleValue+"");
        carService.insert(car);
        js.put(Consts.RES,1);
        return js.toJSONString();
    }

    /**
     * 转向我的购物车页面
     */
    @RequestMapping("/findBySql")
    public String findBySql(Model model,HttpServletRequest request){
        Object attribute = request.getSession().getAttribute(Consts.USERID);
        if(attribute==null){
            return "redirect:/login/toLogin";
        }
        Integer userId = Integer.valueOf(attribute.toString());
        String sql = "select * from car where user_id="+userId+" order by id desc";
        List<Car> list = carService.listBySqlReturnEntity(sql);
        model.addAttribute("list",list);
        return "car/car";
    }

    /**
     * 删除购物车
     */
    @RequestMapping("/delete")
    @ResponseBody
    public String delete(Integer id){
        carService.deleteById(id);
        return "success";
    }

}

非常感谢你阅读到这里,如果这篇文章对你有帮助,希望能留下你的点赞👍 关注❤️ 分享👥 留言💬thanks!!!

  • 2
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Dwzun

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值