分布式预约挂号平台(五)

编程入门 行业动态 更新时间:2024-10-17 15:22:15

<a href=https://www.elefans.com/category/jswz/34/1770120.html style=分布式预约挂号平台(五)"/>

分布式预约挂号平台(五)

文章目录

        • 一、增
          • 1.添加医院设置接口
        • 二、删
          • 1.根据id逻辑删除医院设置信息
          • 2.批量删除医院设置
        • 三、改
          • 1.修改医院设置
        • 四、查
          • 1.查询全部医院设置
          • 2.根据id获取医院设置
          • 3.条件查询带分页接口
        • 五、其他
          • 1.医院设置锁定和解锁
          • 2.发送签名秘钥

使用Swagger2来测试增删改查,swagger2有自己特定的访问地址:http://localhost:8201/swagger-ui.html

一、增
1.添加医院设置接口

为了生成sign_key签名秘钥
在common/service_util的java目录下新建一个utils包,在里面配置生成32位MD5加密配置类

package com.zhengyibao.yyghmon.utils;import java.security.MessageDigest;/*** @author wenmiao* @create 2021-09-28 21:37* @explain MD5加密工具类*/
public class MD5 {public static String encrypt(String str) {try {MessageDigest md5 = MessageDigest.getInstance("MD5");char[] charArray = str.toCharArray();byte[] byteArray = new byte[charArray.length];for (int i = 0; i < charArray.length; i++) {byteArray[i] = (byte) charArray[i];}byte[] md5Bytes = md5.digest(byteArray);StringBuffer hexValue = new StringBuffer();for (int i = 0; i < md5Bytes.length; i++) {int val = ((int) md5Bytes[i]) & 0xff;if (val < 16) {hexValue.append("0");}hexValue.append(Integer.toHexString(val));}return hexValue.toString();} catch (Exception e) {e.printStackTrace();return "";}}
}
//1.增,添加医院设置接口
@ApiOperation(value = "添加医院设置信息")
@PostMapping("saveHospitalSet")
public Result saveHospitalSet(@RequestBody(required = false) HospitalSet hospitalSet){   //将数据使用json格式从页面传递到后台,方便前端开发//数据库中的 sign_key签名秘钥 和 status状态 需要单独进行设置//status状态, 1表示能使用 , 0表示不能使用hospitalSet.setStatus(1);//sign_key签名秘钥,随机生成一个随机数,加上当前的时间,再使用MD5进行加密Random random=new Random();hospitalSet.setSignKey(MD5.encrypt(System.currentTimeMillis()+""+random.nextInt(1000)));//调用hospitalSetService的 save方法 实现 添加操作boolean save=hosp~~ italSetService.save(hospitalSet);if(save){return Result.ok();   //true}else {return  Result.fail();   //false}
}
//被添加的数据,与修改不同,修改需要id值,添加不需要,因为添加时id是自增长的
{"apiUrl": "http://localhost:99/","contactsName": "张三","contactsPhone": "172636737","hoscode": "1000_03","hosname": "北京人民医院"
}

二、删
1.根据id逻辑删除医院设置信息
//2.删,根据id逻辑删除医院设置信息
@ApiOperation(value = "根据id逻辑删除医院设置信息")
@DeleteMapping("{id}")  //delete方式提交,并通过路径传id值 但由于浏览器无法直接使用delete方式访问,所以要在comment模块整合swagger,在common父模块的pom.xml中引入swagger的依赖,在service_util中
public Result removeHospitalSet(@PathVariable Long id){boolean flag=hospitalSetService.removeById(id);if(flag){return Result.ok();     //成功}else{return Result.fail();   //失败}
}

2.批量删除医院设置
//3.删,批量删除医院设置
@ApiOperation(value = "批量删除医院设置")
@PostMapping("batchRemoveHospitalSetByIds")
public Result batchRemoveHospitalSetByIds(@RequestBody List<Long> idList){hospitalSetService.removeByIds(idList);  //传入一个idList集合,是存储id的集合return Result.ok();
}

三、改
1.修改医院设置
//4.改,修改医院设置(修改之前要根据id先获取医院设置)
@ApiOperation(value = "修改医院设置")
@PostMapping("updateHospitalSet")
public Result updateHospitalSet(@RequestBody(required = false) HospitalSet hospitalSet){ //与添加一样都需要使用@RequestBody,使用需要使用PostMapping提交boolean update=hospitalSetService.updateById(hospitalSet);if(update){return Result.ok();}else{return Result.fail();}
}
//被修改的数据,与添加不同,修改也需要id值
{"apiUrl": "http://localhost:993/","contactsName": "肖战","contactsPhone": "11233930","hoscode": "1000_08","hosname": "西安人民医院","id": 4
}

四、查
1.查询全部医院设置
//5.查,查询医院设置表的所有信息
@ApiOperation(value = "获取所有医院设置信息")   //swagger的注解,方法的中文提示信息
@GetMapping("findAll")   //get方式提交(查询所有)
public Result findAllHospitalSet(){List<HospitalSet> list=hospitalSetService.list();return Result.ok(list);
}

2.根据id获取医院设置
//6.查,根据id获取医院设置
@ApiOperation(value = "获取所有医院设置信息")   //swagger的注解,方法的中文提示信息
@GetMapping("findAll")   //get方式提交(查询所有)
public Result findAllHospitalSet(){List<HospitalSet> list=hospitalSetService.list();return Result.ok(list);
}

3.条件查询带分页接口

在common/service_util中做分页查询的配置类HospConfig,如果不添加会导致查询时limit失效

package com.zhengyibao.yyghmon.config;import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;/*** @author wenmiao* @create 2021-09-28 21:07* @explain  分页查询的配置类,如果不添加会导致查询时limit失效*/
@Configuration
@MapperScan("com.zhengyibao.yygh.hosp.mapper")
public class HospConfig {//分页插件@Beanpublic PaginationInterceptor paginationInterceptor(){return new PaginationInterceptor();}
}

在model的java包下创建vo包,vo包下创建hosp包,包下创建HospitalSetQueryVo类,用于封装分页查询的条件

package com.zhengyibao.yygh.vo.hosp;import io.swagger.annotations.ApiModelProperty;
import lombok.Data;/*** @author wenmiao* @create 2021-09-28 19:46* @explain 条件分页查询的vo类,用来封装条件值*/@Data
public class HospitalSetQueryVo {@ApiModelProperty(value = "医院名称")  //swagger提示private String hosname;@ApiModelProperty(value = "医院编号")private String hoscode;
}
package com.zhengyibao.yygh.hosp.controller;import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.mysql.jdbc.StringUtils;
import com.zhengyibao.yyghmon.result.Result;
import com.zhengyibao.yygh.hosp.service.HospitalSetService;
import com.zhengyibao.yygh.model.hosp.HospitalSet;
import com.zhengyibao.yygh.vo.hosp.HospitalSetQueryVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;import java.util.List;/*** @author wenmiao* @create 2021-09-27 22:05* @explain*/@Api(tags = "医院设置管理")   //swagger的注解,中文提示信息
@RestController  //里面有两个主要注解,1.@Controller:让HospitalSetController交给spring管理 2.@ResponseBody:返回数据(以json格式返回)
@RequestMapping("/admin/hosp/hospitalSet")  //访问的路径 http://localhost:8201/admin/hosp/hospitalSet/findAll
public class HospitalSetController {//注入service@Autowiredprivate HospitalSetService hospitalSetService;//7.查,条件查询带分页接口//需求:根据 医院名称 或者 医院编号 查询出对应 医院设置 记录,可以使用上一页,下一页,首页和尾页//①.在model中创建vo类,HospitalSetQueryVo,来封装条件值//②.编写controller,获取条件对象@ApiOperation(value = "条件查询带分页接口")@PostMapping("findPageHospitalSet/{current}/{limit}")   //post方式提交,并通过路径传递 current 当前页,和 limit 每页记录数 ,通过 对象HospitalSetQueryVo 传递 当前条件值public Result findPageHospitalSet(@PathVariable long current,@PathVariable long limit,@RequestBody(required = false) HospitalSetQueryVo hospitalSetQueryVo){  //@RequestBody(required = false)表示用json方式传递数据,需要使用PostMapping提交才可以得到值//创建Page分页对象,传递当前页和每页记录数Page<HospitalSet> page=new Page<>(current,limit);//构建条件,医院名称使用 like 模糊查询,医院编号使用 eq 等值查询QueryWrapper<HospitalSet> wrapper=new QueryWrapper<>();String hosname=hospitalSetQueryVo.getHosname();String hoscode=hospitalSetQueryVo.getHoscode();if(!StringUtils.isNullOrEmpty(hosname)){    //当输入医院名称时才设置条件,为空时不设置wrapper.like("hosname",hosname);}if(!StringUtils.isNullOrEmpty(hoscode)){    //输入医院编号时才设置条件,为空时不设置wrapper.eq("hoscode",hoscode);}//调用方法实现分页查询Page<HospitalSet> pageHospitalSet=hospitalSetService.page(page,wrapper);  //第一个参数 分页对象  ,第二个参数  条件对象System.out.println("这是current:"+current);//统一接口返回return Result.ok(pageHospitalSet);}
}

使用GetMapping方式提交的测试界面

在HospitalSetQueryVo上添加@RequestBody(required = false)使用PostMapping提交的测试界面

五、其他
1.医院设置锁定和解锁
//8.医院设置锁定和解锁
//就是修改status的值,status=1 锁定,status=0 解锁,锁定后就无法使用接口,解锁后的接口才可以使用
@ApiOperation(value = "医院设置锁定和解锁")
@PutMapping("lockHospitalSet/{id}/{status}")
public Result lockHospitalSet(@PathVariable Long id,@PathVariable Integer status){//根据id查询医院设置信息HospitalSet hospitalSet=hospitalSetService.getById(id);//重新设置状态hospitalSet.setStatus(status);//调用updateById修改status的值hospitalSetService.updateById(hospitalSet);return Result.ok();
}

2.发送签名秘钥
//9.(短信,验证码)
//把秘钥发送给医院的接口,只有秘钥正确才可以进行对接
@ApiOperation(value = "发送签名秘钥")
@PutMapping("sendKeyHospitalSet/{id}")
public Result sendKeyHospitalSet(@PathVariable Long id){//根据id查询医院设置信息HospitalSet hospitalSet=hospitalSetService.getById(id);//重新设置状态String signKey=hospitalSet.getSignKey();String hoscode=hospitalSet.getHoscode();//TODO 发送短信 待完善return Result.ok();
}

更多推荐

分布式预约挂号平台(五)

本文发布于:2024-02-12 03:43:42,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1685713.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:分布式   平台

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!