2.医院设置接口
一、医院设置需求
1、需求
医院设置主要是用来保存开通医院的一些基本信息,每个医院一条信息,保存了医院编号(平台分配,全局唯一)和接口调用相关的签名key等信息,是整个流程的第一步,只有开通了医院设置信息,才可以上传医院相关信息。
我们所开发的功能就是基于单表的一个CRUD、锁定/解锁和发送签名信息这些基本功能。
2、表结构
创建hospital_set
表
1 | CREATE TABLE `hospital_set` ( |
二、医院模块开发
1、搭建医院模块service_hospital
修改pom.xml
1 |
|
添加配置文件application.properties
1 | #服务端口 |
添加启动类
1 | import org.springframework.boot.SpringApplication; |
2、添加医院设置CRUD
在model中添加实体类
添加Mapper
1 | import com.CPG.ar.entity.hosp.HospitalSet; |
xml
1
2
3
4
5
<mapper namespace="com.CPG.ar.hosp.mapper.HospitalSetMapper">
</mapper>
添加service接口及实现类
接口
1
2
3
4
5
6import com.CPG.ar.entity.hosp.HospitalSet;
import com.baomidou.mybatisplus.extension.service.IService;
public interface HospitalSetService extends IService<HospitalSet> {
}实现类
1
2
3
4
5
6
7
8
9
10import com.CPG.ar.entity.hosp.HospitalSet;
import com.CPG.ar.hosp.mapper.HospitalSetMapper;
import com.CPG.ar.hosp.service.HospitalSetService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
public class HospitalSetServiceImpl extends ServiceImpl<HospitalSetMapper, HospitalSet> implements HospitalSetService {
}
添加controller
1 | import com.CPG.ar.entity.hosp.HospitalSet; |
3、swagger2集成
项目整合swagger2
在common模块pom.xml中引入依赖
1 | <!--swagger--> |
说明:我们在父工程中的pom.xml中添加了版本控制,这里不需要添加版本,已引入就忽略
问题:报错Failed to start bean 'documentationPluginsBootstrapper'; nested exception is java.lang.NullPointerException
原因: 这是因为Springfox使用的路径匹配是基于AntPathMatcher的,而Spring Boot 2.6.X使用的是PathPatternMatcher。
解决:在application.properties里配置:spring.mvc.pathmatch.matching-strategy=ANT_PATH_MATCHER。
添加swagger2配置类
1 | /** |
在主启动类中加入扫描
1 |
|
使用统一返回类
1 | /** |
1 | /** |
改造controller
1 |
|
4、分页条件查询
- 创建vo类,封装条件值
- 编写controller,获取条件对象,分页数据
1 | //3 条件查询带分页 |
注意:StringUtils中的isEmpty( )方法已经被弃用了,建议使用hasLength( )。
@RequestBody(required = false)
:用json形式传递数据,其中required = false表示,这个值可以为空
5、添加医院设置
1 | //4 添加医院设置 |
6、根据ID获取、修改、批量删除
根据id获取医院设置
1
2
3
4
5
public Result getHospitalSet(long id){
HospitalSet hospitalSet = hospitalSetService.getById(id);
return Result.ok(hospitalSet);
}修改医院设置
1
2
3
4
5
6//6 修改医院设置
public Result updateHospitalSet({ HospitalSet hospitalSet)
boolean flag = hospitalSetService.updateById(hospitalSet);
return flag?Result.ok():Result.fail();
}批量删除医院设置
1
2
3
4
5
6//7 批量删除医院设置
public Result batchRemoveHospitalSet({ List<Long> idList)
hospitalSetService.removeByIds(idList);
return Result.ok();
}
7、锁定解锁、发送秘钥
1 | //8 医院设置锁定和解锁 |
8、全局异常处理
1 |
|
异常:
1 | //5 根据id获取医院设置 |
9、日志
日志记录器(Logger)的行为是分等级的。如下表所示:
分为:OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL
默认情况下,spring boot从控制台打印出来的日志级别只有INFO及以上级别,可以配置日志级别
application.properties
1
2# 设置日志级别
logging.level.root=WARN这种方式只能将日志打印在控制台上
Logback日志
pring boot内部使用Logback作为日志实现的框架。
Logback和log4j非常相似,如果你对log4j很熟悉,那对logback很快就会得心应手。
配置日志
resources/logback-spring.xml
1 |
|