后端-上传科室接口

  • 1、添加科室基础类
    • 1.1、添加model
    • 1.2、添加repository
    • 1.3、创建service
    • 1.4、创建控制层
  • 2、上传科室信息
    • 2.1、开发需求文档
      • 2.1.1、提交地址(路径)
      • 2.1.2、请求参数
      • 2.1.3、同步返回
      • 2.1.4、科室信息说明
    • 2.2、添加控制层方法
    • 2.3、添加业务层方法
    • 2.4、DepartmentRepository
  • 3、查询科室信息列表接口
    • 3.1、开发需求文档
      • 3.1.1、提交地址
      • 3.1.2.请求参数
      • 3.1.3、同步返回
    • 3.2、创建控制方法
    • 3.3、编写业务层方法
  • 4、删除科室信息接口
    • 4.1、开发需求
      • 4.1.1、提交地址
      • 4.1.2、请求参数
      • 4.1.3、同步返回
    • 4.2、添加控制层方法
    • 4.3、业务层方法
    • 4.4、持久层

参考《API接口文档.docx》业务接口4.2上传科室

1、添加科室基础类

1.1、添加model

@Data
@ApiModel(description = "Department")
@Document("Department")
public class Department extends BaseMongoEntity {private static final long serialVersionUID = 1L;@ApiModelProperty(value = "医院编号")@Indexed //普通索引private String hoscode;@ApiModelProperty(value = "科室编号")@Indexed(unique = true) //唯一索引private String depcode;@ApiModelProperty(value = "科室名称")private String depname;@ApiModelProperty(value = "科室描述")private String intro;@ApiModelProperty(value = "大科室编号")private String bigcode;@ApiModelProperty(value = "大科室名称")private String bigname;}

1.2、添加repository

@Repository
public interface DepartmentRepository extends MongoRepository<Department,String> {}

1.3、创建service

接口:

业务层实现类:

1.4、创建控制层

2、上传科室信息

2.1、开发需求文档

2.1.1、提交地址(路径)

http://localhost/api/hosp/saveDepartment

2.1.2、请求参数

◎ 变量定义

2.1.3、同步返回

结果参数含义

2.1.4、科室信息说明


说明:一个大科室下可以有多个小科室,如图:

2.2、添加控制层方法

 //添加科室信息
@PostMapping("saveDepartment")
public Result saveDepartment(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、把数据库查询的签名进行加密String signKeyMD5 = MD5.encrypt(signKey);//4、判断签名是否一致if(!hospSign.equals(signKeyMD5)){throw new YyghException(ResultCodeEnum.SIGN_ERROR);}//调用service方法departmentService.save(paramMap);return Result.ok();
}

2.3、添加业务层方法

接口:

实现类:

 //添加科室信息
@Override
public void save(Map<String, Object> paramMap) {//将Map<String, Object>形式转换成Department对象String StringParamMap = JSONObject.toJSONString(paramMap);Department department = JSONObject.parseObject(StringParamMap, Department.class);Department departmentExist = departmentRepository.getDepartmentByHoscodeAndDepcode(department.getHoscode(),department.getDepcode());//判断departmentExistif(departmentExist != null){//修改操作departmentExist.setUpdateTime(new Date());departmentExist.setIsDeleted(0);departmentRepository.save(departmentExist);}else{//添加操作department.setCreateTime(new Date());department.setUpdateTime(new Date());department.setIsDeleted(0);departmentRepository.save(department);}
}

2.4、DepartmentRepository

操作mongoDB,进行数据保存

@Repository
public interface DepartmentRepository extends MongoRepository<Department,String> {Department getDepartmentByHoscodeAndDepcode(String hoscode, String depcode);
}

3、查询科室信息列表接口

3.1、开发需求文档

3.1.1、提交地址

http://localhost/api/hosp/department/list

3.1.2.请求参数

◎ 变量定义

3.1.3、同步返回

3.2、创建控制方法

//查询科室信息@PostMapping("/department/list")public Result findDepartment(HttpServletRequest request){//获取传递过来的科室信息Map<String, String[]> resultMap = request.getParameterMap();Map<String, Object> paramMap = HttpRequestHelper.switchMap(resultMap);//获取医院编号String hoscode = (String)paramMap.get("hoscode");//获取当前页int page = StringUtils.isEmpty(paramMap.get("page")) ? 1 : Integer.parseInt((String)paramMap.get("page"));//获取当前页记录数int limit = StringUtils.isEmpty(paramMap.get("limit")) ? 1 :Integer.parseInt((String)paramMap.get("limit"));//签名校验//1、获取医院端传递过来的签名,签名进行MD5加密String hospSign = (String)paramMap.get("sign");//2、根据传递过来的医院编码,查询数据库,查询签名String signKey = hospitalSetService.getSignKey(hoscode);//3、把数据库查询的签名进行加密String signKeyMD5 = MD5.encrypt(signKey);//4、判断医院传递过来的签名和数据库中的是否一致if(!hospSign.equals(signKeyMD5)){throw new YyghException(ResultCodeEnum.SIGN_ERROR);}DepartmentQueryVo departmentQueryVo = new DepartmentQueryVo();departmentQueryVo.setHoscode(hoscode);//调用业务层方法查询数据Page<Department> pageModel = departmentService.finPageDepartment(page,limit,departmentQueryVo);return Result.ok(pageModel);}

3.3、编写业务层方法

接口:

//查询科室信息
Page<Department> finPageDepartment(Integer page,Integer limit,DepartmentQueryVo departmentQueryVo);

业务层实现类:

//查询科室信息
@Override
public Page<Department> finPageDepartment(Integer page,Integer limit,DepartmentQueryVo departmentQueryVo) {//分页设置,当前页和每页记录大小Pageable pageable = PageRequest.of(page-1,limit);//将传递过来的departmentQueryVo转换成department对象Department department = new Department();BeanUtils.copyProperties(departmentQueryVo,department);//设置查询规则ExampleMatcher matcher = ExampleMatcher.matching().withStringMatcher(ExampleMatcher.StringMatcher.CONTAINING).withIgnoreCase(true);//查询时忽略大小写Example<Department> example = Example.of(department,matcher);//查询出来分页带条件查询的数据Page<Department> all = departmentRepository.findAll(example, pageable);return all;
}

4、删除科室信息接口

4.1、开发需求

4.1.1、提交地址

http://localhost/api/hosp/department/remove

4.1.2、请求参数

◎ 变量定义

4.1.3、同步返回

4.2、添加控制层方法

//删除科室信息
@PostMapping("/department/remove")
public Result deleteDepartment(HttpServletRequest request){//获取传递过来的科室信息Map<String, String[]> resultMap = request.getParameterMap();Map<String, Object> paramMap = HttpRequestHelper.switchMap(resultMap);//获取医院编号和科室编号String hoscode = (String)paramMap.get("hoscode");String depcode = (String)paramMap.get("depcode");//获取医院传递过来的签名String hospSign = (String) paramMap.get("sign");//从数据库中查询出平台中存放的医院签名String signKey = hospitalSetService.getSignKey(hoscode);String signKeyMD5 = MD5.encrypt(signKey);if(!signKeyMD5.equals(hospSign)){throw new YyghException(ResultCodeEnum.SIGN_ERROR);}//调用业务层方法删除科室信息departmentService.remove(hoscode,depcode);return Result.ok();
}

4.3、业务层方法

接口:

//删除科室信息void remove(String hoscode, String depcode);

实现类:

//删除科室信息
@Override
public void remove(String hoscode, String depcode) {//根据医院编号和科室编号查询数据Department department = departmentRepository.getDepartmentByHoscodeAndDepcode(hoscode,depcode);//如果数据库中有要删除的科室信息,if(department != null){//执行删除操作departmentRepository.deleteById(depcode);}
}

4.4、持久层

根据医院id和科室ie到mongodb中查询科室信息

后端-科室信息管理接口相关推荐

  1. 某小公司RESTful、共用接口、前后端分离、接口约定的实践

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 作者:邵磊 juejin.im/post/59eafab36fb9 ...

  2. 接口入参形式_某小公司RESTful、共用接口、前后端分离、接口约定的实践

    点击上方"后端技术精选",选择"置顶公众号" 技术文章第一时间送达! 作者:邵磊 juejin.im/post/59eafab36fb9a045076eccc3 ...

  3. php 动态彩码辨色 接口的调用_好用的云函数!后端低代码接口开发,零基础编写API接口...

    前言 在开发项目过程中,经常需要用到API接口,实现对数据库的CURD等操作. 不管你是专业的PHP开发工程师,还是客户端开发工程师,或者是不懂编程但懂得数据库SQL查询,又或者是完全不太懂技术的人, ...

  4. 某小公司 RESTful、共用接口、前后端分离、接口约定的实践

    前言 随着互联网高速发展,公司对项目开发周期不断缩短,我们面对各种需求,使用原有对接方式,各端已经很难快速应对各种需求,更难以提高效率.于是,我们不得不重新制定对接规范.开发逻辑以便快速上线项目. 我 ...

  5. [vue] vue在开发过程中要同时跟N个不同的后端人员联调接口(请求的url不一样)时你该怎么办?

    [vue] vue在开发过程中要同时跟N个不同的后端人员联调接口(请求的url不一样)时你该怎么办? devServer中把所有的服务人员的地址代理都写进去, 然后动态更改接口的baseUrl,这样切 ...

  6. html小Demo: js调用java后端提供的接口

    文章目录 html小Demo: js调用java后端提供的接口 html常用的一些标签(初级版)以及对html的一些理解的笔记 head常用标签 body常用标签 JavaScript Java sp ...

  7. 好用的云函数!后端低代码接口开发,零基础编写API接口

    前言 在开发项目过程中,经常需要用到API接口,实现对数据库的CURD等操作. 不管你是专业的PHP开发工程师,还是客户端开发工程师,或者是不懂编程但懂得数据库SQL查询,又或者是完全不太懂技术的人, ...

  8. node、Mongo项目如何前后端分离提供接口给前端

    node接口编写,vue-cli代理接口方法  通常前端使用的MocK 数据的方法,去模拟假的数据,但是如果有node Mongodb 去写数据的话就不需要在去mock 数据了,具体的方法如下. 首先 ...

  9. Spring Boot 前后端配合及接口化测试学习记录[3]

    前后端不分离 1.对静态资源的映射处理 2.模板引擎: 模板引擎(这里特指用于Web开发的模板引擎)是为了使用户界面与业务数据(内容)分离而产生的,它可以生成特定格式的文档,用于网站的模板引擎就会生成 ...

  10. 前后端分离API接口如何加密 —— AES加密方案

    场景还原:页面中需要展示手机号,身份证号,因为是前后端分离,所有接口API地址有可能暴露,这样不怀好意的人可以拿到个人敏感信息 解决方案: 1. 敏感信息加掩码,例如:接口返回130**12这样的手机 ...

最新文章

  1. List扩展方法出错,this关键词出错,解决方案
  2. python 表格处理软件_基于Python的Excel处理工具
  3. Linux禁止非WHEEL用户使用SU命令
  4. mysql 5.0 乱码,解决MySQL 5.0.16的乱码问题
  5. 计算机软件著作权特征,计算机软件著作权的法律特征是什么
  6. 图片压缩的另一种实现(3)
  7. 送你一份计算机视觉精品学习资料,学完拿高薪offer!
  8. 打分框手工输入分值的技术要领
  9. font-family
  10. 【第115期】零基础学做游戏制作_搭环境Unity hub
  11. 6-3 计算Fibonacci数列每一项时所需的递归调用次数 (10 分)
  12. 如何配置tomcat服务
  13. 百度员工猝死 是否过劳死引发争论
  14. 鼠标不听使唤,在屏幕上乱窜乱动怎么办?
  15. 安德玛知识产权案再次胜诉;和铂医药完成1.028亿美元C轮融资 | 美通企业日报...
  16. Flyweight模式——读书笔记
  17. 深度学习使用CNN进行图像分类
  18. 二、电压源、电流源、受控源
  19. 电力计算机考试题库带答案,计算机考试试题库带答案.doc
  20. 二维码固定资产管理系统的管理方案

热门文章

  1. jQuery Mobile的学习时间botton按钮的事件学习
  2. TCP/IP入土指南
  3. C++ 3D 绘图技术调研常用库介绍
  4. java项目-第150期ssm网络视频播放器-java毕业设计_计算机毕业设计
  5. CF Buns (01背包问题)
  6. 容器技术在云中如何定位
  7. 快排(基础详解入门)
  8. 虚拟机快照,移除和删除使用方法
  9. html页脚的话,HTML页脚footer标记
  10. Java逐行读取文件