后台系统-医院设置信息接口开发,web前端开发技术

本文详细描述了如何在SpringBoot项目中设计和实现医院设置的RESTfulAPI,包括业务层的Service接口和实现、控制层的Controller、数据库映射的Mapper接口管理、自动填充数据的MetaObjectHandler、以及分页插件的配置。还涉及了前端查询条件、数据加密和信息管理功能的开发。
摘要由CSDN通过智能技术生成

public interface HospitalSetService extends IService {

}

4.5、业务层实现类


@Service

public class HospitalSetServiceImpl

extends ServiceImpl<HospitalSetMapper,HospitalSet>

implements HospitalSetService {

}

4.6、控制层


@RestController

@RequestMapping(“/admin/hosp/hospitalSet”)

public class HospitalSetController {

@Autowired

private HospitalSetService hospitalSetService;

}

4.7、注意将mapper接口加入到容器中


方法一:创建配置类

在这里插入图片描述

@Configuration

@MapperScan(“com.study.yygh.hosp.mapper”)

public class HospConfig {

}

方法二:在mapper接口添加注解

@Mapper

方法三:在启动类上添加注解

@MapperScan(“com.study.yygh.hosp.mapper”)

4.9、编写处理器,自动插入相关数据


package com.study.yygh.hosp.handler;

import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;

import org.apache.ibatis.reflection.MetaObject;

import org.springframework.stereotype.Component;

import java.util.Date;

/**

  • @Description :

  • @Author :lenovo

  • @Date :2021/5/27 20:51

*/

@Component

public class MyMetaObjectHandler implements MetaObjectHandler {

//执行插入操作时执行该方法

@Override

public void insertFill(MetaObject metaObject) {

this.setFieldValByName(“createTime”,new Date(),metaObject);

this.setFieldValByName(“updateTime”,new Date(),metaObject);

this.setFieldValByName(“isDeleted”,0,metaObject);

}

//执行更新操作时执行该方法

@Override

public void updateFill(MetaObject metaObject) {

this.setFieldValByName(“updateTime”,new Date(),metaObject);

}

}

4.10、添加分页插件


在这里插入图片描述

//分页插件

@Bean

public PaginationInterceptor paginationInterceptor() {

PaginationInterceptor paginationInterceptor = new PaginationInterceptor();

// 设置请求的页面大于最大页后操作, true调回到首页,false 继续请求 默认false

// paginationInterceptor.setOverflow(false);

// 设置最大单页限制数量,默认 500 条,-1 不受限制

// paginationInterceptor.setLimit(500);

// 开启 count 的 join 优化,只针对部分 left join

paginationInterceptor.setCountSqlParser(new JsqlParserCountOptimize(true));

return paginationInterceptor;

}

5、开发医院设置接口

=========================================================================

5.1、条件查询并分页显示医院设置信息


需求:如下图,在前端可以根据条件分页查询数据。

在这里插入图片描述

1、创建vo,用于封装前端条件值

在这里插入图片描述

@Data

public class HospitalSetQueryVo {

@ApiModelProperty(value = “医院名称”)

private String hosname;

@ApiModelProperty(value = “医院编号”)

private String hoscode;

}

方法1:

//条件查询带分页显示医院设置信息

@ApiOperation(value = “条件查询带分页显示医院设置信息”)

@GetMapping(“findPage/{current}/{limit}”)

public Result findPageHospSet(@PathVariable Long current,

@PathVariable Long limit,

HospitalSetQueryVo hospitalSetQueryVo){

//创建page对象,传递当前页,每页记录数

Page page = new Page<>(current, limit);

String hosname = hospitalSetQueryVo.getHosname();

String hoscode = hospitalSetQueryVo.getHoscode();

//构建查询条件

QueryWrapper queryWrapper = new QueryWrapper<>();

if(!StringUtils.isEmpty(hosname)){//如果前端传递的数据“医院名称”不为空

queryWrapper.like(“hosname”,hospitalSetQueryVo.getHosname());

}

if(!StringUtils.isEmpty(hoscode)){//如果前端传递的数据“医院编号”不为空

queryWrapper.eq(“hoscode”,hospitalSetQueryVo.getHashCode());

}

//调用方法实现分页查询

Page page1 = hospitalSetService.page(page, queryWrapper);

//返回结果

return Result.ok(page1);

}

在这里插入图片描述

方法2:json形式传递(使用较多)

在这里插入图片描述

在这里插入图片描述

5.2、添加医院设置信息


创建生成签名的工具类:

在这里插入图片描述

package com.study.yygh.common.utils;

import java.security.MessageDigest;

import java.security.NoSuchAlgorithmException;

public final class MD5 {

public static String encrypt(String strSrc) {

try {

char hexChars[] = { ‘0’, ‘1’, ‘2’, ‘3’, ‘4’, ‘5’, ‘6’, ‘7’, ‘8’,

‘9’, ‘a’, ‘b’, ‘c’, ‘d’, ‘e’, ‘f’ };

byte[] bytes = strSrc.getBytes();

MessageDigest md = MessageDigest.getInstance(“MD5”);

md.update(bytes);

bytes = md.digest();

int j = bytes.length;

char[] chars = new char[j * 2];

int k = 0;

for (int i = 0; i < bytes.length; i++) {

byte b = bytes[i];

chars[k++] = hexChars[b >>> 4 & 0xf];

chars[k++] = hexChars[b & 0xf];

}

return new String(chars);

} catch (NoSuchAlgorithmException e) {

e.printStackTrace();

throw new RuntimeException(“MD5加密出错!!+” + e);

}

}

}

编写控添加医院信息的接口

//新增医院设置信息

@ApiOperation(value = “新增医院设置信息”)

@PostMapping(“saveHospitalSet”)

public Result saveHospitalSet(@RequestBody HospitalSet hospitalSet){

//设置状态 1使用 0不使用

hospitalSet.setStatus(1);

//设置签名密钥

Random random = new Random();

hospitalSet.setSignKey(MD5.encrypt(System.currentTimeMillis()+“”+random.nextInt(1000)));

//调用service,保存数据

boolean flag = hospitalSetService.save(hospitalSet);

if(flag){

return Result.ok();

}else{

return Result.fail();

}

}

5.3、根据id查询医院信息


//根据id查询医院信息

@ApiOperation(value = “根据id查询医院信息”)

@GetMapping(“getHospSet/{id}”)

public Result getHospitalSet(@PathVariable Long id){

HospitalSet hospital = hospitalSetService.getById(id);

return Result.ok(hospital);

在这里插入图片描述

5.4、修改医院信息


//修改医院设置信息

@ApiOperation(value = “修改医院设置信息”)

@PostMapping(“updateHospitalSet”)

public Result updateHospitalSet(@RequestBody HospitalSet hospitalSet){

boolean flag = hospitalSetService.updateById(hospitalSet);

if(flag){

return Result.ok();

}else{

return Result.fail();

}

}

在这里插入图片描述

5.5、批量删除医院设置信息


//批量删除医院设置信息

@ApiOperation(value = “批量删除医院设置信息”)

@DeleteMapping(“deleteBachIds”)

public Result deleteBachIds(@RequestBody List ids){

hospitalSetService.removeByIds(ids);

return Result.ok();

}

在这里插入图片描述

5.6、医院信息锁定


修改医院状态信息

//医院信息锁定

@ApiOperation(value = “医院信息锁定”)

@PostMapping(“lockHospitalSet/{id}/{status}”)

public Result lockHospitalSet(@PathVariable Long id,

@PathVariable Integer status){

HospitalSet hospitalSet = hospitalSetService.getById(id);

//设置医院状态

hospitalSet.setStatus(status);

//调用方法修改hospital信息

小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Web前端开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img
img
img
img

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频

如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注:前端)
img

Set = hospitalSetService.getById(id);

//设置医院状态

hospitalSet.setStatus(status);

//调用方法修改hospital信息

小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Web前端开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

[外链图片转存中…(img-IfiK8dFk-1710921406116)]
[外链图片转存中…(img-Q3NnY4ix-1710921406117)]
[外链图片转存中…(img-ZkSzfi14-1710921406117)]
[外链图片转存中…(img-PTEmFE2l-1710921406118)]

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频

如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注:前端)
[外链图片转存中…(img-8DfDyA4T-1710921406119)]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值