​基于java ssm框架+微信原生开发框架+mysql数据库的急救药品预约配送小程序系统 计算机毕业设计 微信小程序开发

目录

1、技术介绍

2、需求架构图分析

3、数据库表设计

4、前后端数据通讯方式介绍

5、小程序用户功能介绍

5.1、小程序导航页面展示(居民角色)

5.2、小程序导航页面展示(站点工作人员角色)

5.3、社区管理人员web端

5.4、卫生急救部门web端

6、项目的完整功能操作录屏 


1、技术介绍

1、管理员后台技术:

Web前端使用html css javascript layui框架进行开发

后端使用java ssm框架进行开发

数据库使用的是mysql

2、小程序用户端的技术:

微信开发者语言:js+json+wxss+wxml

3、项目整体采用的是mvc的思想模式进行开发。代码可读性高,便于理解。

2、需求架构图分析

公需小程序系统分为四个角色:小程序用户居民、小程序用户站点管理人员,社区管理人员,卫生急救部门,系统的总体功能架构图如下所示:

3、数据库表设计

数据库表目录

序号

表名

注释/说明

1

admin

管理员表(社区管理人员和卫生防疫部门)

2

appointment

药品预约表

3

citizen

居民居住信息表

4

community

社区表

5

family

家人表

6

give_record

分发站点药品记录表

7

health_department_drug

卫生防疫部门库存表

8

report

上报记录表(上报紧缺药品富余药品)

9

site

站点表

10

site_drug

站点药品库存表

11

staff

站点工作人员表

12

user

用户表(预约药品的居民)

13

zone

小区表

管理员表(社区管理人员和卫生防疫部门)

序号

列名

数据类型

长度

主键

允许空

列说明

1

admin_id

varchar

(64)

主键id

2

name

varchar

(32)

登录名字

3

community_id

varchar

(64)

社区id

4

phone

varchar

(11)

手机号码

5

password

varchar

(64)

登陆密码

6

role

int

角色,1:社区管理人员  2:卫生防疫部门


appointment 药品预约表

序号

列名

数据类型

长度

主键

允许空

列说明

1

appointment_id

varchar

(64)

预约id

2

unit

int

剂量

3

community_id

varchar

(64)

社区id

4

site_id

varchar

(64)

站点id

5

drug_id

varchar

(64)

药品id

6

drug_name

varchar

(64)

药品名字

7

openid

varchar

(64)

预约者ID

8

username

varchar

(64)

预约者名字

9

phone

varchar

(11)

手机号码

10

create_time

datetime

创建时间

11

receive_time

datetime

取药时间

12

receiver_name

varchar

(64)

领取人姓名

13

remark

varchar

(256)

用药信息

14

drug_user

varchar

(64)

用药人姓名

15

drug_user_age

int

用药人年龄

16

drug_user_gender

int

性别

17

code

varchar

(16)

领取码

18

image_url

varchar

(1024)

19

status

int

状态。0:已删除。1:预约中。2:已领取。3:过期


citizen 居民居住信息表

序号

列名

数据类型

长度

主键

允许空

列说明

1

citizen_id

varchar

(64)

2

community_id

varchar

(64)

所属社区ID

3

community_name

varchar

(64)

所属社区名称

4

zone_id

varchar

(64)

所属小区ID

5

zone_name

varchar

(64)

所属小区名称

6

name

varchar

(32)

姓名

7

phone

varchar

(11)

手机

8

id_card

varchar

(18)

身份证号码

9

room_number

varchar

(64)

门牌号

10

age

int

年龄

11

gender

int

性别。0:女。1:男

community 社区表

序号

列名

数据类型

长度

主键

允许空

列说明

1

community_id

varchar

(64)

2

community_name

varchar

(64)

社区名称

3

community_headcount

int

小区居民数

4

address

varchar

(256)

社区居民委员会地址

5

phone

varchar

(11)

社区居民委员会电话

6

remark

varchar

(256)

备注

7

status

int

状态:0:已删除   1:正常中

family

序号

列名

数据类型

长度

主键

允许空

列说明

1

family_id

varchar

(64)

主键id

2

name

varchar

(64)

名字

3

id_card

varchar

(64)

身份证号

4

openid

varchar

(128)

用户openid

give_record 分发站点药品记录表

序号

列名

数据类型

长度

主键

允许空

列说明

1

record_id

varchar

(64)

主键id

2

drug_id

varchar

(64)

药品id

3

site_id

varchar

(64)

站点id

4

create_time

datetime

创建时间

5

unit

int

单位数量

health_department_drug 卫生防疫部门库存表

序号

列名

数据类型

长度

主键

允许空

列说明

1

drug_id

varchar

(64)

2

drug_name

varchar

(128)

药品名字

3

enterprise

varchar

(128)

生产企业

4

specification

varchar

(128)

规格

5

drug_usage

varchar

(64)

用法

6

approval_no

varchar

(128)

批准文号

7

disease

varchar

(128)

适用疾病 症状

8

quantity

int

库存数量

9

status

int

状态。0:已下架。1:已上架


report 上报记录表(上报紧缺药品富余药品)

序号

列名

数据类型

长度

主键

允许空

列说明

1

report_id

varchar

(64)

站点id

2

staff_id

varchar

(64)

工作人员id

3

create_time

datetime

4

type

int

类型。0:紧缺。1:富余

5

site_id

varchar

(64)

上报的站点

6

drug_id

varchar

(64)

上报的药品ID

7

drug_name

varchar

(128)

上报的药品名称

site 站点表

序号

列名

数据类型

长度

主键

允许空

列说明

1

site_id

varchar

(64)

2

community_id

varchar

(64)

3

site_name

varchar

(64)

站点名称

4

address

varchar

(128)

站点地址

5

phone

varchar

(11)

站点联系电话

6

remark

varchar

(256)

备注

7

status

int

状态:0:已删除   1:正常中

site_drug 站点药品库存表

序号

列名

数据类型

长度

主键

允许空

列说明

1

drug_id

varchar

(64)

2

site_id

varchar

(64)

3

community_id

varchar

(64)

4

drug_name

varchar

(128)

5

enterprise

varchar

(128)

生产企业

6

specification

varchar

(128)

规格

7

drug_usage

varchar

(64)

用法

8

approval_no

varchar

(128)

批准文号

9

disease

varchar

(128)

适用疾病 症状

10

quantity

int

库存数量

11

status

int

状态。0:已下架。1:已上架


staff 站点工作人员表

序号

列名

数据类型

长度

主键

允许空

列说明

1

staff_id

varchar

(64)

工作人员id

2

site_id

varchar

(64)

站点id

3

name

varchar

(32)

名字

4

phone

varchar

(11)

手机号

5

password

varchar

(64)

密码

user 用户表(预约药品的居民)

序号

列名

数据类型

长度

主键

允许空

列说明

1

openid

varchar

(64)

2

username

varchar

(32)

3

phone

varchar

(11)

4

id_card

varchar

(18)

身份证号码

5

password

varchar

(64)

zone 小区表

序号

列名

数据类型

长度

主键

允许空

列说明

1

zone_id

varchar

(64)

2

zone_name

varchar

(64)

小区名称

3

community_id

varchar

(64)

所属社区id

4

community_name

varchar

(64)

所属社区

5

zone_headcount

int

小区居民数

6

remark

varchar

(256)

备注

7

status

int

状态:0:已删除   1:正常中

4、前后端数据通讯方式介绍

小程序端和请求后端接口的方式介绍:

小程序HTTP 请求:小程序可以通过 HTTP 请求向后端服务器发送请求,请求数据或者请求更新界面。后端服务器可以通过响应来回复小程序的请求,从而让小程序更新界面,

代码实例如下:

wx.request({   //微信小程序发送请求的函数

        url: url,  //请求的后端api地址

        method:"post",  //请求方式

        data:{   //西安后端接口传递的数据

        },

        dataType:"json",  //数据传输的格式

        success:(response) =>{  //请求成功的回调函数

          console.log(response);   //response 为请求返回的数据情况

        }

      })

后端接口RESTful API:REST(Representational State Transfer) 是一种基于 HTTP 协议的 Web API 设计原则,它允许客户端通过 HTTP 请求来获取、更新和删除数据。小程序可以使用 RESTful API 向后端服务器发送请求,从而获取、更新和删除数据,代码示例如下:

@RequestMapping(value = "/login", method = RequestMethod.POST)  //路由规则

@ResponseBody

public Result login(Admin admin) {  //方法体

}

5、小程序用户功能介绍

5.1、小程序导航页面展示居民角色

首页:选择附近的社区和站点,显示当前社区和站点下的可预约配送的药品信息。

药品预约:点击浏览预约的药品信息,填写用药人姓名,年龄,性别,病情证明,取药日期进行预约。

个人中心:微信授权登录,进行实名认证,绑定我的家人,查看我的预约药品情况,退出登录。

预约药品wxml代码如下:

<view class="cu-form-group">

    <view class="title">用药人姓名</view>

    <!-- <input model:value="{{drugUser}}" placeholder="" bindinput="bindDrugUser" maxlength='48'></input> -->

    <picker bindchange="PickerChange2" value="{{index}}" range="{{nameList}}">

      <view class="picker">

        {{index==null?'选择家人':nameList[index]}}

      </view>

    </picker>

  </view>

  <view class="cu-form-group">

    <view class="title">用药人年龄</view>

    <input type="number" model:value="{{drugUserAge}}" placeholder="" bindinput="binddrugUserAge" maxlength='48'></input>

  </view>

  <view class="cu-form-group">

    <view class="title">用药人性别</view>

    <picker bindchange="PickerChange" value="{{gender}}" range="{{picker}}">

      <view class="picker">

        {{gender==null?'选择性别':picker[gender]}}

      </view>

    </picker>

  </view>

  <view class="cu-bar bg-white">

    <view class="action">

      病情证明

    </view>

    <view class="action">

      {{imgList.length}}/1

    </view>

  </view>

  <view class="cu-form-group">

    <view class="grid col-4 grid-square flex-sub">

      <view class="bg-img" wx:for="{{imgList}}" wx:key="{{index}}" bindtap="ViewImage" data-url="{{imgList[index]}}">

        <image src='{{imgList[index]}}' mode='aspectFill'></image>

        <view class="cu-tag bg-red" catchtap="DelImg" data-index="{{index}}">

          <text class="cuIcon-close"></text>

        </view>

      </view>

      <view class="solids" bindtap="ChooseImage" wx:if="{{imgList.length<1}}">

        <text class="cuIcon-cameraadd"></text>

      </view>

    </view>

  </view>

Js代码如下:

 wx.uploadFile({

      url: app.globalData.URL + '/appointment/'+_this.data.openid,

      filePath: this.data.imgList[0],

      name: 'image',

      header: {

        'Authorization': 'Deer ' + _this.data.token,

        'Accept': 'application/json',

      },

      formData: {

        unit: _this.data.unit,

        communityId: _this.data.item.communityId,

        siteId: _this.data.item.siteId,

        drugId: _this.data.item.drugId,

        drugName: _this.data.item.drugName,

        drugUser: _this.data.nameList[_this.data.index],

        idCard: _this.data.list[_this.data.index]['idCard'],

        drugUserAge: _this.data.drugUserAge,

        drugUserGender: _this.data.gender,

        receiveTime: _this.data.date

      },

      success(res) {

        var data = JSON.parse(res.data)

        if (data.code == 20000) {

          wx.showToast({

            title: data.message,

            icon: "none"

          })

        } else {

          wx.showToast({

            title: data.message,

            icon: "none"

          })

        }

      }

    })

后台控制器接口代码如下:

@RequestMapping(value = "/{openid}", method = RequestMethod.POST)

    public Result add(@PathVariable String openid, Appointment appointment, MultipartFile image) {

        appointment.setOpenid(openid);

        String fileUrl = null;

        if (image.isEmpty()) {

            return new Result(false, 20001, "病情证明图片不能为空", null);

        }

        fileUrl = fileService.fileUpload(image);

        appointment.setImageUrl(fileUrl);

        return appointmentService.add(appointment);

//        return new Result(true, 20000, "预约成功");

    }

5.2、小程序导航页面展示站点工作人员角色

用户使用账号密码登录;

查看当前站点的居民药品预约信息,进行药品确认发放;

对当前药品信息进行库存上报(上报紧缺,上报富余);

站点工作人员的个人中心可以进行站点管理,统计分析,退出登录操作;

5.3、社区管理人员web端

社区管理人员使用账号进行登录;社区管理;小区管理;居民管理;居民统计;药品统计;退出登录;

5.4、卫生急救部门web端

卫生急救部门管理人员使用账号进行登录;药品管理;药品分配;统计分析;退出登录;

6、项目的完整功能操作录屏 

以上是对项目的简单的功能介绍,感兴趣的童鞋可以看以下详细的功能演示地址:

项目功能演示icon-default.png?t=N5K3https://www.bilibili.com/video/BV16s4y1C7zy/?vd_source=1b00b299dfb4cd201f2c5966bf0978ac

 以上就是对项目的整体介绍,感兴趣的伙伴可以私信我。谢谢

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

平姐设计

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

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

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

打赏作者

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

抵扣说明:

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

余额充值