基于微信小程序的网上购药系统的设计与开发

目 录
摘 要 I
Abstract II
第1章 绪 论 1
1.1 研究背景 1
1.2 课题研究的目的及意义 1
1.3 论文主要结构 2
第2章 开发技术及相关工具 3
2.1 开发工具及环境 3
2.2 微信开发者工具简介 3
2.3 IDEA简介 3
2.4 MySQL数据库简介 3
2.5 Spring Boot概述 4
第3章 需求分析 5
3.1 可行性分析 5
3.1.1 经济上的可行性 5
3.1.2 技术上的可行性 5
3.1.3 管理上的可行性 5
3.2 系统功能需求分析 5
第4章 系统总体设计 9
4.1 系统逻辑架构 9
4.2 系统功能设计 9
4.2.1 管理员端功能设计 9
4.2.2 用户端功能设计 10
4.3 数据库设计 11
4.3.1 数据库概念结构设计 11
4.3.2 数据库实体 12
4.3.3 数据库物理结构设计 16
4.4 关键类图 20
4.5 序列图 21
4.5.1 用户查询药品信息序列图 21
4.5.2 用户下单序列图 22
4.5.3 管理员发货序列图 23
4.6 活动图 24
4.6.1 用户查询药品信息活动图 24
4.6.2 用户下单活动图 25
4.6.3 管理员发货活动图 26
第5章 系统实现 28
5.1 系统前端设计 28
5.1.1 用户注册登录 28
5.1.2 个人信息管理 29
5.1.3 首页 30
5.1.4 药品浏览 31
5.1.5 收藏 33
5.1.6 购物车 34
5.1.7 充值 35
5.1.8 订单 36
5.1.9 留言板 37
5.2 系统后端设计 38
5.2.1 用户信息管理 38
5.2.2 药品分类管理 38
5.2.3 药品信息管理 39
5.2.4 留言板管理 39
5.2.5 系统管理 40
5.2.6 订单管理 40
第6章 系统测试 43
6.1 系统测试分析 43
6.2 测试数据分析 43
6.3 模块问题分析 44
6.4 功能测试 44
6.4.1 注册功能测试 44
6.4.2 充值功能测试 45
6.4.3 订单管理功能测试 46
6.5 测试总结 46
第7章 结 论 47
参考文献 48
致 谢 49
附 录 50
1.2 课题研究的目的及意义
本课题的研究目的在于通过开发微信小程序网上购药系统,提供一个更加安全、可靠和方便的网络购药方式,为顾客购药提供更好的服务和体验。具体研究目标如下:
1.了解目前市场上的网上购药平台,分析其优缺点,提高 网上购药平台的服务质量和用户体验。
2. 设计并开发基于微信小程序的网上购药系统,实现注册用户管理、商品管理、订单管理等功能。
3. 对系统进行测试和评估,检测系统的性能和稳定性,保证用户购药的安全和顺畅。
这项研究的意义主要在于:
(1) 为现代人提供更加便捷、快速且安全的购药方式。
(2) 提高传统药店的销售效率,增加收益。
(3) 增加市场竞争力,为药品销售企业提供了一个新的销售渠道。
(4) 推动IT技术在药品销售领域的应用,引领电商行业的发展。
1.3 论文主要结构
本文是以基于微信小程序的网上购药系统为主题进行开发与设计,其目的在于实现药品的线上购买和商家的管理,对于用户与商家而言,是一种福音。本论文可以分成五个大部分。首先,第一部分概述了基于微信小程序的网上购药系统的研究背景、课题意义和研究内容。其次,第二部分对该系统所采用的技术和开发工具进行了简要介绍。接下来,第三部分对该系统的需求进行了分析,研究了基于微信小程序的网上购药系统的可行性以及功能实现上的可行性。而第四部分是整个系统的设计,包括基于微信小程序的网上购药系统的功能设计和数据库表的设计。该部分是系统的核心,在第五部分中重点介绍了基于微信小程序的网上购药系统的功能实现,并对系统交互界面的设计进行了详细说明。本文的第六部分着重阐述了微信小程序网上购药系统的系统调试和完整性、稳定性测试。对于系统中的BUG进行了实时监控和分析。最后,总结了整个毕设的工作内容。

    @RequestMapping("/add")
    public R add(@RequestBody MessagesEntity messages, HttpServletRequest request) {
        messages.setId(new Date().getTime() + new Double(Math.floor(Math.random() * 1000)).longValue());
        //ValidatorUtils.validateEntity(messages);
        messagesService.insert(messages);
        return R.ok();
    }
    @RequestMapping("/update")
    public R update(@RequestBody MessagesEntity messages, HttpServletRequest request) {
        //ValidatorUtils.validateEntity(messages);
        messagesService.updateById(messages); 
        return R.ok();
    }
    @RequestMapping("/delete")
    public R delete(@RequestBody Long[] ids) {
        messagesService.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<MessagesEntity> wrapper = new EntityWrapper<MessagesEntity>();
        if (map.get("remindstart") != null) {
            wrapper.ge(columnName, map.get("remindstart"));
        }
        if (map.get("remindend") != null) {
            wrapper.le(columnName, map.get("remindend"));
        }
        int count = messagesService.selectCount(wrapper);
        return R.ok().put("count", count);
}
}

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

shejizuopin

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

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

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

打赏作者

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

抵扣说明:

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

余额充值