基于SpringBoot的药品销售商城设计与实现

一、前言

        随着互联网技术的飞速发展,电子商务在各个领域得到了广泛应用。药品作为一种特殊的商品,其销售也逐渐向线上转移。传统的药品销售模式存在着诸多不便,如购买渠道有限、价格不透明、信息不对称等问题。而药品销售商城的出现,可以为消费者提供更加便捷、高效、安全的购药体验,同时也有助于提高药品销售企业的管理水平和市场竞争力。

        本项目采用 Spring Boot + MySQL + Vue 技术栈实现药品销售商城。Spring Boot 框架简化了后端开发,高效构建稳定的服务端。MySQL 数据库存储药品信息及交易数据,确保数据的安全可靠。Vue 则为前端带来了良好的交互体验和响应式设计。前后端分离的架构使开发更高效,维护更便捷。通过该技术组合,成功打造了一个功能完善、用户体验友好的药品销售商城,为药品销售提供了便捷的线上渠道。

二、技术环境

前端:Vue、Elemet-plus

后端:SpringBoot、SpringMVC、Mybatis、Redis

插件:Maven Helper、Lombok、MybatisLog

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

环境:Windows10、MySQL


三、功能设计

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

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

四、数据库设计

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

五、部分效果展示

5.1 商品列表:清晰展示商品名称、规格等信息,每行有编辑和删除按钮。添加商品:输入各项商品详情及上传图片。编辑商品类似添加,可改信息。库存管理可查数量及出入库操作。

5.2 订单列表:展示订单编号、下单时间等,可筛选查看。订单详情:显示商品明细、客户信息等。状态变更:可修改订单状态为已发货等。

5.3 药品分类展示:方便用户快速查找所需药品。热门药品推荐:引导用户选择。搜索栏:输入关键词找药品。购物车入口:随时查看添加商品。个人信息栏:显示用户头像等基本信息。

5.4 评价区域:用户可输入文字评价内容。上传图片:可添加商品实物图。提交按钮:确认提交评价。评价展示:其他用户可查看已有的评价内容。

5.5 商品清单:列出所选商品及数量、价格。收货信息:填写姓名、地址等。提交订单按钮:确认下单操作。订单总价显示:明确需支付金额。

5.6 订单列表:展示所有订单编号、下单时间。订单状态:如待支付、已发货等。商品明细:可查看订单内商品信息。订单总价显示:每个订单对应总价。

六、部分功能代码

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){
            Cart cart;
            for (OrderDetails d: order.getOrderDetailsList()) {
                d.setOrderId(order.getId());
                d.setCreatedAt(new Date());
                d.setCreatedBy(order.getCreatedBy());
                d.setIsDelete(false);

                if (d.getCartId() != null){
                    cart = new Cart();
                    cart.setId(d.getCartId());
                    cart.setIsDelete(true);
                    cartService.update(cart);
                }
            }
            orderDetailsService.save(order.getOrderDetailsList());
        }

        order.setCreatedAt(new Date());
        order.setIsDelete(false);
        order.setStatus(1);
        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;
    }

七、答辩可能出现的问题

🌟问题一
答辩老师:如何实现药品的搜索和推荐功能?
同学可回答:药品搜索功能通过对 MySQL 数据库进行关键字查询实现。对于推荐功能,我们可以根据用户的购买历史、浏览记录以及药品的关联性,利用算法进行个性化推荐。采用协同过滤算法,找到与当前用户行为相似的用户群体,推荐他们购买过的药品。

源码及文档获取

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

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

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

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

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

打赏作者

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

抵扣说明:

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

余额充值