尚医通开发

                                            ## 尚医通开发阶段(二)

接下来是开发医院管理界面,点击进入后就会显示这个医院的详细信息,最终效果如下:
在这里插入图片描述

医院接口模拟系统它有一个固定的流程:
如图:首先在接口模块中通过APIController调用APIService中对应的方法,然后再发起request请求到我们所编写的接口部分去实现。
在这里插入图片描述
1.医院管理展示的Controller:

@RequestMapping("/hospital/index")
	public String getHospital(ModelMap model,HttpServletRequest request,RedirectAttributes redirectAttributes) {
		try {
			HospitalSet hospitalSet = hospitalSetMapper.selectById(1);
			if(null == hospitalSet || StringUtils.isEmpty(hospitalSet.getHoscode()) || StringUtils.isEmpty(hospitalSet.getSignKey())) {
				this.failureMessage("先设置医院code与签名key", redirectAttributes);
				return "redirect:/hospitalSet/index";
			}

			model.addAttribute("hospital", apiService.getHospital());
		} catch (YyghException e) {
			this.failureMessage(e.getMessage(), request);
		} catch (Exception e) {
			this.failureMessage("数据异常", request);
		}
		return "hospital/index";
	}

Service:

 @Override
    public JSONObject getHospital() {
        Map<String, Object> paramMap = new HashMap<>();
        paramMap.put("hoscode",this.getHoscode());
        paramMap.put("timestamp", HttpRequestHelper.getTimestamp());
        paramMap.put("sign", MD5.encrypt(this.getSignKey()));
        JSONObject respone = HttpRequestHelper.sendRequest(paramMap,this.getApiUrl()+"/api/hosp/hospital/show");
        System.out.println(respone.toJSONString());
        if(null != respone && 200 == respone.getIntValue("code")) {
            JSONObject jsonObject = respone.getJSONObject("data");
            return jsonObject;
        }
        return null;
    }

声明:
这个项目的医院就一个:北京协和医院。
流程:
首先就是获取这个医院的详细信息:

HospitalSet hospitalSet = hospitalSetMapper.selectById(1);

然后判断这个医院有没有唯一id和签名key,如果存在的话就调用service方法,在service层中可以看到把从数据库中的医院唯一标识以及时间戳,以及签名都存入map中,然后调用我们写的后端接口去实现:

JSONObject respone = HttpRequestHelper.sendRequest(paramMap,this.getApiUrl()+"/api/hosp/hospital/show")

1.2接下来就是我们写的接口:
Controller:

 /*
    查询医院
     */

    @PostMapping("hospital/show")
    public Result getHospital(HttpServletRequest request) {
        //获取到传递过来的医院信息
        Map<String, String[]> parameterMap = request.getParameterMap();
        Map<String, Object> map = HttpRequestHelper.switchMap(parameterMap);
        String hoscode = (String) map.get("hoscode");
        Hospital byHoscode = hospitalService.getByHoscode(hoscode);
        return Result.ok(byHoscode);
    }

大体就是:
把传递过来的map集合做了简单的转化后,把唯一标识的hoscode取出来,然后从数据库中根据这个hoscode来查找数据.,最后返回数据到前端。
Service接口:

//根据医院编号查询
    Hospital getByHoscode(String hoscode);

实现:

  @Override
    public Hospital getByHoscode(String hoscode) {
     return   hospitalReposity.getHospitalByHoscode(hoscode);

hospitalReposity:

Repository
public interface HospitalReposity extends MongoRepository<Hospital,String> {
    //mong自动查询,不用写具体
//判断是否存在数据
    Hospital getHospitalByHoscode(String hoscode);
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值