基于uniapp的在线预约挂号诊治平台小程序/安卓JAVA.VUE【数据库设计、论文、毕设源码、开题报告】

  博主介绍:👉全网个人号和企业号粉丝40W+,每年辅导几千名大学生较好的完成毕业设计,专注计算机软件领域的项目研发,不断的进行新技术的项目实战👈
⭐️热门专栏推荐订阅⭐️ 订阅收藏起来,防止下次找不到

🔎​百套小程序APP项目实战持续更新中~​

🔎​千套JAVA项目实战持续更新中~​

🔎​百套Python实战项目持续更新中~​
有需求的各位可以先收藏起来,还有大家在毕设选题,开题报告有疑惑的都可以找我,帮你完成文档

⚠️文末联系方式获取完整资料⚠️

 4系统设计

通过前三章的分析说明,本论文中“鼻护灵”微信小程序已经具有了良好的实现基础,目前的第四章将对系统的具体实现进行说明介绍。

4.1系统结构设计

随着互联网的兴起以及国内外许多B/S架构的优秀系统被广泛使用而变得流行,B/S架构成为了系统开发的主流。本论文中的“鼻护灵”微信小程序也同样采用了B/S架构标准的三层架构,即将整个系统划分为表现层、业务层和持久层这三层.

以上这种对程序进行分层的方式,可以使开发者专注于结构中的某一层,每一层要进行的工作十分明确,降低了耦合性,这种标准化的开发方式,有利于程序的复用,也极大地降低了之后对系统功能扩充和维护的成本。

这些功能可以充分满足“鼻护灵”微信小程序的需求。此系统功能较为全面如下图系统功能结构如图4-1所示。

图4-1功能结构图

4.2系统功能模块设计

“鼻护灵”微信小程序的使用者主要有三类用户,一类是管理员,他拥有整个系统的最高权限,其次是医生,最后是用户,他具有管理员给予级别的权限,都只能对自己的个人信息进行操作。系统根据这三类用户,划分出了三大功能模块。

4.3 数据库设计

4.3.1 概念模型设计

概念模型是对现实中的问题出现的事物的进行描述,ER图是由实体线以及关联构成的图,E-R图可以明确地叙述系统中涵盖的实体线相互关系。

用户信息实体图如图4-2所示:

        图4-2用户信息实体图

医生信息实体图如图4-3所示:

    图4-3医生信息实体图

在线咨询实体图如图4-4所示:

图4-4在线咨询实体图

挂号预约实体图如图4-5所示:

图4-5挂号预约实体图

4.3.2 数据库表结构

本论文中的“鼻护灵”微信小程序采用MySQL数据库,系统中的所有对象以及对象的所有属性都将在下列表格中展现。

表4-1:用户表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

username

varchar

100

用户名

password

varchar

100

密码

role

varchar

100

角色

管理员

addtime

timestamp

新增时间

CURRENT_TIMESTAMP

表4-2:token表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

userid

bigint

用户id

username

varchar

100

用户名

tablename

varchar

100

表名

role

varchar

100

角色

token

varchar

200

密码

addtime

timestamp

新增时间

CURRENT_TIMESTAMP

expiratedtime

timestamp

过期时间

CURRENT_TIMESTAMP

表4-3:关于我们

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

title

varchar

200

标题

subtitle

varchar

200

副标题

content

longtext

4294967295

内容

picture1

longtext

4294967295

图片1

picture2

longtext

4294967295

图片2

picture3

longtext

4294967295

图片3

表4-4:收藏表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

userid

bigint

用户id

refid

bigint

商品id

tablename

varchar

200

表名

name

varchar

200

名称

picture

longtext

4294967295

图片

type

varchar

200

类型(1:收藏,21:赞,22:踩,31:竞拍参与,41:关注)

1

inteltype

varchar

200

推荐类型

remark

varchar

200

备注

表4-5:评价医生

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

pingjiabianhao

varchar

200

评价编号

fuwupingjia

varchar

200

服务评价

manyichengdu

varchar

200

满意程度

pingyu

longtext

4294967295

评语

pingjiashijian

datetime

评价时间

zhanghao

varchar

200

账号

xingming

varchar

200

姓名

touxiang

longtext

4294967295

头像

yishenggonghao

varchar

200

医生工号

yishengxingming

varchar

200

医生姓名

表4-6:公告信息

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

title

varchar

200

标题

introduction

longtext

4294967295

简介

picture

longtext

4294967295

图片

content

longtext

4294967295

内容

表4-7:挂号预约

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

yuyuebianhao

varchar

200

预约编号

yuyueriqi

datetime

预约日期

zhengzhuangmiaoshu

longtext

4294967295

症状描述

yishenggonghao

varchar

200

医生工号

yishengxingming

varchar

200

医生姓名

zhanghao

varchar

200

账号

xingming

varchar

200

姓名

touxiang

longtext

4294967295

头像

sfsh

varchar

200

是否审核

待审核

shhf

longtext

4294967295

审核回复

表4-8:在线咨询

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

biaoti

varchar

200

标题

zixunwenti

longtext

4294967295

咨询问题

zixunshijian

datetime

咨询时间

yishenggonghao

varchar

200

医生工号

yishengxingming

varchar

200

医生姓名

zhanghao

varchar

200

账号

xingming

varchar

200

姓名

touxiang

longtext

4294967295

头像

shhf

longtext

4294967295

回复内容

userid

bigint

用户id

表4-9:配置文件

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

name

varchar

100

配置参数名称

value

varchar

100

配置参数值

表4-10:医生诊治

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

binglibianhao

varchar

200

病历编号

zhenduanqingkuang

longtext

4294967295

诊断情况

zhiliaofangan

longtext

4294967295

治疗方案

yizhu

longtext

4294967295

医嘱

feiyong

float

费用

zhenduanshijian

datetime

诊断时间

zhanghao

varchar

200

账号

xingming

varchar

200

姓名

touxiang

longtext

4294967295

头像

yishenggonghao

varchar

200

医生工号

yishengxingming

varchar

200

医生姓名

ispay

varchar

200

是否支付

未支付

表4-11:关于我们

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

title

varchar

200

标题

subtitle

varchar

200

副标题

content

longtext

4294967295

内容

picture1

longtext

4294967295

图片1

picture2

longtext

4294967295

图片2

picture3

longtext

4294967295

图片3

表4-12:医生

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

yishenggonghao

varchar

200

医生工号

mima

varchar

200

密码

yishengxingming

varchar

200

医生姓名

bingzhengleixing

varchar

200

病症类型

xingbie

varchar

200

性别

yiling

int

医龄

lianxidianhua

varchar

200

联系电话

touxiang

longtext

4294967295

头像

gerenjianjie

longtext

4294967295

个人简介

clicktime

datetime

最近点击时间

clicknum

int

点击次数

0

表4-13:用户

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

zhanghao

varchar

200

账号

mima

varchar

200

密码

xingming

varchar

200

姓名

nianling

int

年龄

xingbie

varchar

200

性别

shouji

varchar

200

手机

touxiang

longtext

4294967295

头像

表4-14:病症类型

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

bingzhengleixing

varchar

200

病症类型

4.4本章小结

本章主要是对“鼻护灵”微信小程序进行设计,详细的说明了该系统实现所采用的架构、系统中所有的功能模块,并以表格的形式展现了系统持久层中的所有实体和实体的所有属性。明确的功能说明和详尽的数据陈列,方便将系统业务和数据联系起来,为后面的程序开发提供方便。


5 系统实现

在上一章中,本论文中的“鼻护灵”微信小程序进行了全面的系统设计。接下来第五章对本“鼻护灵”微信小程序的实现过程进行说明,包括对该“鼻护灵”微信小程序所需的开发环境、运行环境的说明以及对上一章中提到的各种内容的实现。

5.1系统开发环境以及运行环境

5.1.1 系统开发环境

表5-1 开发环境

开发使用的操作系统

Windows10

开发使用的编程语言

JAVA

开发框架选择

Uni-weixin

选取的数据库

MySQL

开发采用工具

微信开发者

5.1.2 系统运行环境

 本“鼻护灵”微信小程序的运行环境如表5-2所示。

表5-2 客户端运行环境

运行使用操作系统

Windows10

客户端软件

Chrome浏览器

5.2“鼻护灵”微信小程序的主要功能模块实现

5.2.1用户微信端功能的实现

注册界面,第一次使用本小程序的使用者,首先是要进行注册,点击“注册”,然后就会进入到注册的页面里面,将用户信息录入注册表,确认信息正确后,页面才会跳转到登录界面,用户登录成功后可使用本小程序所提供的所有功能,如图5-1所示。

图5-1用户注册界面

登录界面,首先双击打开微信小程序端系统,连上网络之后会显示出本系统的登录界面,这是进入小程序的第初始页面“登录”,能成功进入到该登录界面则代表小程序的开启是成功的,接下来就可以操作本系统所带有的其他所有的功能,如图5-2所示。

图5-2用户登录界面

小程序首页是用户注册登录后进入的第一个界面,用户可通过小程序端首页进入对应的页面或者通过小程序最下面的那一行导航栏中的“首页、医生、公告信息、我的”,也可以点击“我的”进入我的页面,在我的页面可以对挂号预约、在线咨询、医生诊治、评价医生、我的收藏管理等进行详细操作,如图5-3所示。

图5-3小程序首页界面图

用户点击医生,在医生页面的搜索栏输入医生工号,进行查询,还可以查看医生工号、医生姓名、病症类型、性别、医龄、联系电话、头像、点击次数等,如有需要可进行挂号预约、在线咨询等操作如图5-4所示。

图5-4 医生界面图

用户点击公告信息,在公告信息页面的搜索栏输入标题,进行查询,然后查看标题、简介、公告内容等详情信息,如图5-5所示。

图5-5公告信息界面图

在我的功能界面,用户点击“我的”进入我的页面,在我的页面可以对挂号预约、在线咨询、医生诊治、评价医生、我的收藏管理等进行详细操作,如图5-6所示。

图5-6我的功能界面图

JAVA后端代码实现

package com.controller;
 
import java.util.Arrays;
import java.util.Calendar;
import java.util.Date;
import java.util.Map;
 
import javax.servlet.http.HttpServletRequest;
 
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
 
import com.annotation.IgnoreAuth;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.entity.TokenEntity;
import com.entity.UserEntity;
import com.service.TokenService;
import com.service.UserService;
import com.utils.CommonUtil;
import com.utils.MD5Util;
import com.utils.MPUtil;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.ValidatorUtils;
 
/**
 * 登录相关
 */
@RequestMapping("users")
@RestController
public class UserController{
	
	@Autowired
	private UserService userService;
	
	@Autowired
	private TokenService tokenService;
 
	/**
	 * 登录
	 */
	@IgnoreAuth
	@PostMapping(value = "/login")
	public R login(String username, String password, String captcha, HttpServletRequest request) {
		UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
		if(user==null || !user.getPassword().equals(password)) {
			return R.error("账号或密码不正确");
		}
		String token = tokenService.generateToken(user.getId(),username, "users", user.getRole());
		return R.ok().put("token", token);
	}
	
	/**
	 * 注册
	 */
	@IgnoreAuth
	@PostMapping(value = "/register")
	public R register(@RequestBody UserEntity user){
//    	ValidatorUtils.validateEntity(user);
    	if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
    		return R.error("用户已存在");
    	}
        userService.insert(user);
        return R.ok();
    }
 
	/**
	 * 退出
	 */
	@GetMapping(value = "logout")
	public R logout(HttpServletRequest request) {
		request.getSession().invalidate();
		return R.ok("退出成功");
	}
	
	/**
     * 密码重置
     */
    @IgnoreAuth
	@RequestMapping(value = "/resetPass")
    public R resetPass(String username, HttpServletRequest request){
    	UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
    	if(user==null) {
    		return R.error("账号不存在");
    	}
    	user.setPassword("123456");
        userService.update(user,null);
        return R.ok("密码已重置为:123456");
    }
	
	/**
     * 列表
     */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params,UserEntity user){
        EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
    	PageUtils page = userService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.allLike(ew, user), params), params));
        return R.ok().put("data", page);
    }
 
	/**
     * 列表
     */
    @RequestMapping("/list")
    public R list( UserEntity user){
       	EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
      	ew.allEq(MPUtil.allEQMapPre( user, "user")); 
        return R.ok().put("data", userService.selectListView(ew));
    }
 
    /**
     * 信息
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") String id){
        UserEntity user = userService.selectById(id);
        return R.ok().put("data", user);
    }
    
    /**
     * 获取用户的session用户信息
     */
    @RequestMapping("/session")
    public R getCurrUser(HttpServletRequest request){
    	Long id = (Long)request.getSession().getAttribute("userId");
        UserEntity user = userService.selectById(id);
        return R.ok().put("data", user);
    }
 
    /**
     * 保存
     */
    @PostMapping("/save")
    public R save(@RequestBody UserEntity user){
//    	ValidatorUtils.validateEntity(user);
    	if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
    		return R.error("用户已存在");
    	}
        userService.insert(user);
        return R.ok();
    }
 
    /**
     * 修改
     */
    @RequestMapping("/update")
    public R update(@RequestBody UserEntity user){
//        ValidatorUtils.validateEntity(user);
    	UserEntity u = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername()));
    	if(u!=null && u.getId()!=user.getId() && u.getUsername().equals(user.getUsername())) {
    		return R.error("用户名已存在。");
    	}
        userService.updateById(user);//全部更新
        return R.ok();
    }
 
    /**
     * 删除
     */
    @RequestMapping("/delete")
    public R delete(@RequestBody Long[] ids){
        userService.deleteBatchIds(Arrays.asList(ids));
        return R.ok();
    }
}

源码获取

大家点赞、收藏、关注 ,让更多需要的同学看到

不同开发语言专栏推荐订阅

 🔎​百套小程序APP项目实战持续更新中~​

🔎​千套JAVA项目实战持续更新中~​

🔎​百套Python实战项目持续更新中~​

👇下方有我的微信名片👇

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值