---------------------------------01、项目概述和环境搭建--------------------------------------
一、系统架构的演变
1、单体架构:所有功能模块都在一个war包里,问题:
代码耦合、迭代困难、技术债务、扩展受限
2、分布式架构:按照业务逻辑把系统拆分成独立的模块,问题:
公共业务逻辑无法复用,eg:登录,搜索
3、SOA架构:在分布式架构的基础上,把模块拆分成服务层和表现层,问题:
ESB:mule不支持集群、wso2臃肿
4、health:SOA+dubbo
二、dubbo介绍
1、什么是dubbo?
是阿里巴巴一个开源的rpc框架,能和spring无缝集成,dubbo的角色如下:
consumer:服务消费者(controller)
registry:注册中心(zookeeper)
provider:服务提供者(service、mapper)
2、zookper介绍
1、什么是zookeeper?
zookeeper负责地址的注册和查找,时服务提供者和服务消费者的注册中心
2、zookeeper的安装和启动
1、安装
a、上传并解压
tar -zxvf zookeeper-3.4.11.tar.gz -C /usr/local
b、拷贝配置文件
cd /usr/local/zookeeper-3.4.11/conf
cp zoo_sample.cfg zoo.cfg
c、修改配置文件
vim zoo.cfg:
dataDir=/usr/local/zookeeper-3.4.11/data
d、创建目录
cd /usr/local/zookeeper-3.4.11
mkdir data
3、启动和关闭
./zkServer.sh start
./zkServer.sh stop
./zkServer.sh status
./zkServer.sh restart
三、dubbo入门
1、创建工程
dubbox_parent:定义依赖
dubbox_interface:service
dubbox_provider:serviceImpl
dubbox_consumer:controller
2、provider:发布服务
1、application.properties
dubbo.registry.address=zookeeper://192.168.116.129:2181 #zookeeper地址
dubbo.application.name=dubbox-provider #注册到zookeeper的服务名,方便统计
dubbo.protocol.name=dubbo #协议
2、service
@Service//dubbo提供
public HelloServiceImpl implements HelloService{
}
3、App
@EnableDubbo//开启dubbo注解扫描
3、consumer:引用服务
1、application.properties
dubbo.registry.address=zookeeper://192.168.116.129:2181 #zookeeper地址
dubbo.application.name=dubbox-provider #注册到zookeeper的服务名,方便统计
dubbo.protocol.name=dubbo #协议
2、controller
public class HelloController{
@Reference//dubbo提供
private HelloService helloService;
}
3、App
@EnableDubbo//开启dubbo注解扫描
四、工程搭建
health_parent:管理依赖的....
health_backend:controller、html
health_provider:service、mapper
health_interface:service接口
health_common:pojo和工具栏
问题:为什么只在父工程定义版本号?
1、避免继承父工程2个T的依赖 2、方便升级
---------------------------------02、检查项管理----------------------------------
1、什么是检查项?
身高、体重、血压、红细胞
2、表
t_checkitem(name, sex, age, price)
3、关键对象
ajax返回值:
public class Result{
flag;
String message;
Object data;
}
接收分页参数
public class QueryPageBean{
Integer currentPage;
Integer pageSize;
String queryString;
}
分页查询的返回值:
public class PageResult{
Long total;
List rows;
}
4、问题
1、yml注释
叶子节点 #注释
2、jdk版本设置
在父工程的properties中配置
---------------------------------03、检查组管理----------------------------------
1、什么是检查组?
检查组包括多个检查项,如肝功:体重、身高、红细胞
2、表
t_checkgroup(name,attention):肝功、肾功
t_checkgroup_checkitem(checkgroup_id,checkitem_id)
t_checkitem:体重、红细胞
---------------------------------04、套餐管理----------------------------------
1、什么是套餐?
套餐包括多个检查组,如入职体检:肝功,肾功
2、表
t_setmeal(name,price,attention):入职体检、婚检
t_setmeal_checkgroup(setmeal_id,checkgroup_id)
t_checkgroup:肝功、肾功
3、quartz[kwɔːrts]
Job:做什么事
trigger:什么时候做
scheduled:什么时候做什么事
4、corn表达式
格式:
Seconds Minutes Hours Day Month Week
秒 分 时 天 月 周
特殊字符:
*:任意值
-:范围,3-5
,:枚举,3,5
/:增量,3/5从第3秒开始每5秒执行一次
?:忽略,只在日期域和星期域中使用
5、定时清理垃圾图片
1、redis的交、并、差集
差集:sdiff setA setB
并集:sunion setA setB
交集:sinter setA setB
2、思路
upload:
SETMELA_PIC_RESOURCE: 1 2 3
add:
SETMELA_PIC_RESOURCE: 2 3
quartz:
sdiff SETMELA_PIC_RESOURCE SETMELA_PIC_RESOURCE--->1
QiNiuUtil.deletePic(1);
jedis.srem(1);//若不删除,下次定时任务会重复删除垃圾图片
6、redis
1、安装
yum install gcc-c++
cd /usr/upload
tar -zxvf redis-3.0.7.tar.gz
cd /usr/upload/redis-3.0.7/
make
make install PREFIX=/usr/local/redis
2、修改配置文件
cp /usr/upload/redis-3.0.7/redis.conf /usr/local/redis/bin
vim /usr/local/redis/bin/redis.conf:
daemonize yes
3、启动
cd /usr/local/redis/bin
./redis-server redis.conf
4、关闭
cd /usr/local/redis/bin
./redis-cli shutdown
---------------------------------05、预约设置----------------------------------
1、什么是预约管理?
设置每天可以预约的人数
2、表
t_ordersetting(orderDate、可预约人数、已预约人数)
3、基于Excel导入
已预约则修改 未预约则添加
4、基于日历设置
已预约则修改 未预约则添加
---------------------------------06、体检预约(一)----------------------------------
一、查询套餐列表
展示所有套餐的级别信息:图片、名称、性别、年龄
二、套餐详情
一个套餐
多个检查组
多个检查项
---------------------------------07、体检预约(二)----------------------------------
一、发送验证码
1、发送验证码
2、把验证码存redis,并设置30秒失效
二、体检预约信息
0、判断验证码是否一致
1、检查用户所选择的预约日期是否已经提前进行了预约设置,如果没有设置则无法进行预约
2、检查用户所选择的预约日期是否已经约满,如果已经约满则无法预约
3、检查用户是否重复预约(同一个用户在同一天预约了同一个套餐),如果是重复预约 则无法完成再次预约
4、检查当前用户是否为会员,如果是会员则直接完成预约,如果不是会员则自动完成注册并进行预约
5、预约成功,更新当日的已预约人数
---------------------------------08、权限控制----------------------------------
1、学习权限框架的两个概念?
认证:使用账号和密码进行登录
授权:控制当前用户可以操作那些功能
2、权限控制的经典5/7张表
5张表:
user(nam,pwd):任壮、杨志
user_role(user_id,role_id)
role(nam):院长、医生、护士
role_permission(role_id,permission_id)
permission(nam,url):检查项管理、删除检查项
7张表:
user(nam,pwd):任壮、杨志
user_role(user_id,role_id)
role(nam):院长、医生、护士
role_menu(role_id,menu_id);
menu(nam,url):检查项管理、检查组管理
role_permission(role_id,permission_id)
permission(nam,keyword):新增检查项、删除检查项
版权归原作者 RongYu__ 所有, 如有侵权,请联系我们删除。