农产品销售系统

一、前言

    随着信息技术的飞速发展和互联网的广泛普及,电子商务在各个行业中的应用日益深入。农产品销售领域也面临着新的机遇和挑战。传统的农产品销售模式存在着信息不对称、销售渠道单一、流通环节多、损耗大等问题。在当前消费市场对农产品品质、安全、便捷性要求不断提高的背景下,构建一个高效、便捷、信息透明的农产品销售系统具有重要意义。

    在农产品销售系统中,采用 HTML、MySQL 和 SpringBoot 的技术组合极具优势。HTML 用于构建系统的前端界面,它能创建直观、易用的交互页面,方便用户浏览农产品信息、下单等操作。MySQL 作为关系型数据库管理系统,负责存储各类数据,如农产品详情、用户信息、订单记录等,提供强大的数据存储与管理能力。SpringBoot 框架则在后端发挥关键作用,简化了项目的配置和开发流程,提高开发效率,并有效地处理业务逻辑,确保系统的稳定性和可扩展性。

二、技术环境

前端:HTML、CSS、JavaScript

后端:SpringBoot、SpringMVC、Mybatis、Redis

插件:Maven Helper、Lombok、MybatisLog

工具:IDEA、Postman、Maven、Git、Navicat

环境:Windows10、MySQL


三、功能设计

3.1 管理员用例图如下图所示:

3.2 商家用例图如下图所示:

3.3 用户用例图如下图所示:

四、数据库设计

数据库的 E-R 图(实体 - 关系图)是一种强大的工具,用于直观地表示数据库中的实体及其之间的关系。在数据库设计中,E-R 图可以帮助我们清晰地理解数据的结构和流向。限于篇幅要求,仅列出关键部分实体属性图和E-R图,如下所述。

五、部分效果展示

5.1 用户首页界面分为三部分。上部是轮播图,展示热门农产品。中部以卡片形式列出各类农产品,有名称、缩略图和价格。下部是推荐农产品区,展示根据用户浏览历史推荐的产品,页面设有返回顶部按钮。

5.2 分类查询界面左侧为农产品分类目录,包含果蔬、谷物、肉类等。点击分类,右侧区域显示该类下的农产品列表,展示名称、产地和价格。页面顶部设有搜索框,可对分类下的产品进行精准搜索。

5.3 下单收货地址界面包含多个输入框。顶部是地址标题栏,下方依次为姓名输入框、联系电话输入框、详细地址输入框(可具体到门牌号),还有省市区的下拉菜单选项,底部设有保存和默认地址勾选框。

5.5 商品详情界面上部展示农产品大图。中部有名称、价格、产地等基本信息,还有详细的产品描述,包括种植方式、保质期等。下部显示已购用户的评价与晒单,页面右侧设有加入购物车和立即购买按钮。

5.6 购物车界面以列表形式呈现。每行展示一款农产品的缩略图、名称、单价、数量及小计金额。有数量增减按钮来调整购买数量,底部显示总价以及结算和删除商品的按钮。

5.7 我的订单界面以列表展示订单。每个订单项显示订单编号、下单时间、农产品缩略图、名称、数量、总价。订单有不同状态标识,待付款、已付款、已发货等。

5.8 评价订单界面上方显示所购农产品名称、缩略图。中间是评分区域,可选择 1 - 5 星评价。下方为评价内容输入框,可输入文字描述使用感受、产品质量等,底部设有提交评价按钮,提交后显示评价成功提示。

5.9 管理员统计界面分三部分。上部是统计时间选择框。中部以图表呈现,柱状图展示不同农产品的销售数量,折线图反映销售额走势。下部是数据表格,列出各农产品的订单量、销售额等详细数据。

5.10 管理员管理用户界面左侧为用户列表,显示用户名、注册时间等基本信息。右侧为操作区,可查看用户详细资料,修改用户权限,封禁或解封用户账号,还能对用户进行分类筛选以便高效管理。

5.11 管理员管理商品界面,左侧栏为商品分类目录。右侧显示商品列表,含名称、图片、价格等信息。管理员可新增商品,输入详细信息上传图片;也能编辑已有商品信息,或下架商品。

5.12 管理员订单界面以表格形式呈现。表头包含订单编号、下单用户、下单时间、商品名称、数量、总价、订单状态等。管理员可按订单状态筛选,查看详情,对未发货订单修改发货状态,处理退款申请并记录操作日志。

5.13 商家退货界面顶部展示退货订单编号。中间部分呈现退货商品名称、图片、退货数量、退货原因(买家填写)。下方有审核按钮,商家可选择同意退货并填写退款金额,或拒绝退货并填写拒绝理由。

5.14 商家店铺界面上部显示店铺名称与标志。中部展示商家主营农产品的分类标签,点击可查看对应商品列表,列表包含商品图片、名称、价格、库存。

5.15 商家个人信息界面上部显示商家名称。中部为基本信息栏,有商家联系人、联系电话、电子邮箱等可编辑项。下方是店铺相关信息,如店铺地址、经营范围,底部设有保存修改按钮,用于更新信息。

六、部分功能代码

6.1 下单

public Result add(Order order) {

        Goods goods = goodsService.findById(order.getOrderDetailsList().get(0).getGoodsId());
        if (null == goods){
            return ResultGenerator.genFailResult(ResultCode.GOODS_NULL_ERROR,"商品不存在,请重新下单");
        }

        if (null == goods.getRepertory()){
            return ResultGenerator.genFailResult(ResultCode.GOODS_REPERTORY_ERROR,"商品不足,请联系管理员补货");
        }

        int count = orderDetailsService.getCountByGoodsId(order.getOrderDetailsList().get(0).getGoodsId());
        if (goods.getRepertory().intValue() < count){
            return ResultGenerator.genFailResult(ResultCode.GOODS_REPERTORY_ERROR,"商品不足,请联系管理员补货");
        }

        order.setId(DigitUtil.generatorLongId());

        //批量添加订单详情
        if (order.getOrderDetailsList().size() > 0){
            for (OrderDetails d: order.getOrderDetailsList()) {
                d.setOrderId(order.getId());
                d.setCreatedAt(new Date());
                d.setCreatedBy(order.getCreatedBy());
                d.setIsDelete(false);
            }
            orderDetailsService.save(order.getOrderDetailsList());
        }

        order.setBusinessId(1678286883L);
        order.setCreatedAt(new Date());
        order.setIsDelete(false);
        save(order);

        //下单成功库存-1
        goods.setRepertory(goods.getRepertory().subtract(BigDecimal.valueOf(1)));
        goodsService.update(goods);

        //同步删除购物车数据
        if (order.getCartId() != null && order.getCartId().size() > 0){
            Cart cart;
            for (Long id:order.getCartId()) {
                cart = new Cart();
                cart.setId(id);
                cart.setIsDelete(true);
                cartService.update(cart);
            }
        }

        Result result= ResultGenerator.genSuccessResult();
        result.setData(order);
        return result;
    }

七、答辩可能出现的问题

🌟问题一
答辩老师:请举例说明你在 HTML 中使用了哪些标签来优化农产品图片和描述信息的显示效果?
同学可回答:在 HTML 中,为优化农产品图片和描述信息显示效果,使用了多种标签。对于图片,<img>标签通过设置src指定来源、alt提供替代文本、width和height控制尺寸,如<img src = "pear.jpg" alt = "多汁梨" width = "200" height = "150">,避免布局跳动。<figure>包含<img>,<figcaption>用于添加标题或说明。对于描述信息,<p>标签创建段落展示详细描述,像<p>此农产品产地优良,品质出众。</p>。<ul>和<li>可用于以列表形式呈现特点,如列出农产品的营养成分等。

源码及文档获取

大家点赞、收藏、关注、评论啦 、需要源码及文档的可直接私信我即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

计算机毕设定制辅导-无忧学长

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

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

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

打赏作者

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

抵扣说明:

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

余额充值