public interface HospitalSetService extends IService {
}
@Service
public class HospitalSetServiceImpl
extends ServiceImpl<HospitalSetMapper,HospitalSet>
implements HospitalSetService {
}
@RestController
@RequestMapping(“/admin/hosp/hospitalSet”)
public class HospitalSetController {
@Autowired
private HospitalSetService hospitalSetService;
}
方法一:创建配置类
@Configuration
@MapperScan(“com.study.yygh.hosp.mapper”)
public class HospConfig {
}
方法二:在mapper接口添加注解
@Mapper
方法三:在启动类上添加注解
@MapperScan(“com.study.yygh.hosp.mapper”)
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);
}
}
//分页插件
@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;
}
=========================================================================
需求:如下图,在前端可以根据条件分页查询数据。
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形式传递(使用较多)
创建生成签名的工具类:
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();
}
}
//根据id查询医院信息
@ApiOperation(value = “根据id查询医院信息”)
@GetMapping(“getHospSet/{id}”)
public Result getHospitalSet(@PathVariable Long id){
HospitalSet hospital = hospitalSetService.getById(id);
return Result.ok(hospital);
//修改医院设置信息
@ApiOperation(value = “修改医院设置信息”)
@PostMapping(“updateHospitalSet”)
public Result updateHospitalSet(@RequestBody HospitalSet hospitalSet){
boolean flag = hospitalSetService.updateById(hospitalSet);
if(flag){
return Result.ok();
}else{
return Result.fail();
}
}
//批量删除医院设置信息
@ApiOperation(value = “批量删除医院设置信息”)
@DeleteMapping(“deleteBachIds”)
public Result deleteBachIds(@RequestBody List ids){
hospitalSetService.removeByIds(ids);
return Result.ok();
}
修改医院状态信息
//医院信息锁定
@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前端开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注:前端)
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)]