hospital_manager
医院上传接口
hospital_manager系统用于医院端接口模拟,配合尚医通完成接口调试。
要写的接口还是在service_hosp里,每个医院有自己的页面,所有的医院统一调用service_hosp里的接口来实现上传等功能,统一。
数据库(涉及两个数据库,三个表)
hospital_manager的数据库是mysql的yygh_manager,里面事先存了这个医院自己的信息。这里面的hospital_set指的是这一个医院。
医院自己页面的“医院管理“导航显示的是Hospital这个类的信息,是存在mongoDB里的,通过service_hosp的HospitalServiceImpl加进去的。
而在存Hospital类的过程中需要对比签名,就需要从service_hosp的数据库yygh_hosp(mysql)的hospital_set找出对应的sign_key,与yygh_manager里的hospital_set进行对比,是通过service_hosp的HospitalSetServiceImpl实现的。
医院
实体类
Hospital
(注意实体类里的bookingRule属性,是之后预约挂号功能用到的)
controller
增
医院自己把接口地址封装到request里(hospital_magager的ApiServiceImpl方法)
JSONObject respone =
HttpRequestHelper.sendRequest(paramMap,this.getApiUrl()+"/api/hosp/saveHospital");
service_hosp里的ApiController实现这个接口
//上传医院接口
@PostMapping("saveHospital")
//要得到那边post传过来的医院的信息,把信息加到数据库,所以参数要用HttpServletRequest
public Result saveHosp(HttpServletRequest request) {
//获取传递过来医院信息
Map<String, String[]> requestMap = request.getParameterMap();
Map<String, Object> paramMap = HttpRequestHelper.switchMap(requestMap);
/*
写在private方法里了
//1 获取医院系统传递过来的签名,这里的签名已经进行MD5加密
String hospSign = (String)paramMap.get("sign");
//2 根据传递过来医院编码,查询mysql数据库hospital_set里的签名,要注入hospitalSetService
String hoscode = (String)paramMap.get("hoscode");
String signKey = hospitalSetService.getSignKey(hoscode);
//3 把数据库查询出来签名进行MD5加密,再与获取的签名进行比对
String signKeyMd5 = MD5.encrypt(signKey);
*/
//4 判断签名是否一致
if(!signVerify(paramMap)) {
throw new YyghException(ResultCodeEnum.SIGN_ERROR);
}
//传输过程中“+”转换为了“ ”,因此我们要转换回来
String logoData = (String)paramMap.get("logoData");
logoData = logoData.replaceAll(" ","+");
paramMap.put("logoData",logoData);
//调用service的方法
hospitalService.save(paramMap);
return Result.ok();
}
删
不需要
改
不需要
查
医院自己把接口地址封装到request里(hospital_magager的ApiServiceImpl方法)
JSONObject respone = HttpRequestHelper.sendRequest(paramMap,this.getApiUrl()+"/api/hosp/hospital/show");
service_hosp里的ApiController实现这个接口
//查询医院
@PostMapping("hospital/show")
public Result getHospital(HttpServletRequest request) {
//获取传递过来医院信息
Map<String, String[]> requestMap = request.getParameterMap();
Map<String, Object> paramMap = HttpRequestHelper.switchMap(requestMap);
/*//获取医院编号
String hoscode = (String)paramMap.get("hoscode");
//1 获取医院系统传递过来的签名,签名进行MD5加密
String hospSign = (String)paramMap.get("sign");
//2 根据传递过来医院编码,查询数据库,查询签名
String signKey = hospitalSetService.getSignKey(hoscode);
//3 把数据库查询签名进行MD5加密
String signKeyMd5 = MD5.encrypt(signKey);*/
//4 判断签名是否一致
if(!signVerify(paramMap)) {
throw new YyghException(ResultCodeEnum.SIGN_ERROR);
}
String hoscode = (String)paramMap.get("hoscode");
//调用service方法实现根据医院编号查询
Hospital hospital = hospitalService.getByHoscode(hoscode);
return Result.ok(hospital);
}
service
增
public void save(Map<String, Object> paramMap) {
//把参数map集合转换对象 Hospital,用json转换工具
String mapString = JSONObject.toJSONString(paramMap);
Hospital hospital = JSONObject.parseObject(mapString, Hospital.class);
//判断是否存在数据,即查询
String hoscode = hospital.getHoscode();
Hospital hospitalExist = hospitalRepository.getHospitalByHoscode(hoscode);
//如果存在,进行修改
if(hospitalExist != null) {
hospital.setStatus(hospitalExist