后端-科室信息管理接口
后端-上传科室接口
- 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中查询科室信息
后端-科室信息管理接口相关推荐
- 某小公司RESTful、共用接口、前后端分离、接口约定的实践
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 作者:邵磊 juejin.im/post/59eafab36fb9 ...
- 接口入参形式_某小公司RESTful、共用接口、前后端分离、接口约定的实践
点击上方"后端技术精选",选择"置顶公众号" 技术文章第一时间送达! 作者:邵磊 juejin.im/post/59eafab36fb9a045076eccc3 ...
- php 动态彩码辨色 接口的调用_好用的云函数!后端低代码接口开发,零基础编写API接口...
前言 在开发项目过程中,经常需要用到API接口,实现对数据库的CURD等操作. 不管你是专业的PHP开发工程师,还是客户端开发工程师,或者是不懂编程但懂得数据库SQL查询,又或者是完全不太懂技术的人, ...
- 某小公司 RESTful、共用接口、前后端分离、接口约定的实践
前言 随着互联网高速发展,公司对项目开发周期不断缩短,我们面对各种需求,使用原有对接方式,各端已经很难快速应对各种需求,更难以提高效率.于是,我们不得不重新制定对接规范.开发逻辑以便快速上线项目. 我 ...
- [vue] vue在开发过程中要同时跟N个不同的后端人员联调接口(请求的url不一样)时你该怎么办?
[vue] vue在开发过程中要同时跟N个不同的后端人员联调接口(请求的url不一样)时你该怎么办? devServer中把所有的服务人员的地址代理都写进去, 然后动态更改接口的baseUrl,这样切 ...
- html小Demo: js调用java后端提供的接口
文章目录 html小Demo: js调用java后端提供的接口 html常用的一些标签(初级版)以及对html的一些理解的笔记 head常用标签 body常用标签 JavaScript Java sp ...
- 好用的云函数!后端低代码接口开发,零基础编写API接口
前言 在开发项目过程中,经常需要用到API接口,实现对数据库的CURD等操作. 不管你是专业的PHP开发工程师,还是客户端开发工程师,或者是不懂编程但懂得数据库SQL查询,又或者是完全不太懂技术的人, ...
- node、Mongo项目如何前后端分离提供接口给前端
node接口编写,vue-cli代理接口方法 通常前端使用的MocK 数据的方法,去模拟假的数据,但是如果有node Mongodb 去写数据的话就不需要在去mock 数据了,具体的方法如下. 首先 ...
- Spring Boot 前后端配合及接口化测试学习记录[3]
前后端不分离 1.对静态资源的映射处理 2.模板引擎: 模板引擎(这里特指用于Web开发的模板引擎)是为了使用户界面与业务数据(内容)分离而产生的,它可以生成特定格式的文档,用于网站的模板引擎就会生成 ...
- 前后端分离API接口如何加密 —— AES加密方案
场景还原:页面中需要展示手机号,身份证号,因为是前后端分离,所有接口API地址有可能暴露,这样不怀好意的人可以拿到个人敏感信息 解决方案: 1. 敏感信息加掩码,例如:接口返回130**12这样的手机 ...
最新文章
- List扩展方法出错,this关键词出错,解决方案
- python 表格处理软件_基于Python的Excel处理工具
- Linux禁止非WHEEL用户使用SU命令
- mysql 5.0 乱码,解决MySQL 5.0.16的乱码问题
- 计算机软件著作权特征,计算机软件著作权的法律特征是什么
- 图片压缩的另一种实现(3)
- 送你一份计算机视觉精品学习资料,学完拿高薪offer!
- 打分框手工输入分值的技术要领
- font-family
- 【第115期】零基础学做游戏制作_搭环境Unity hub
- 6-3 计算Fibonacci数列每一项时所需的递归调用次数 (10 分)
- 如何配置tomcat服务
- 百度员工猝死 是否过劳死引发争论
- 鼠标不听使唤,在屏幕上乱窜乱动怎么办?
- 安德玛知识产权案再次胜诉;和铂医药完成1.028亿美元C轮融资 | 美通企业日报...
- Flyweight模式——读书笔记
- 深度学习使用CNN进行图像分类
- 二、电压源、电流源、受控源
- 电力计算机考试题库带答案,计算机考试试题库带答案.doc
- 二维码固定资产管理系统的管理方案