后台系统-医院设置信息接口开发

在这里插入图片描述

CREATE TABLE hospital_set (

id bigint(20) NOT NULL AUTO_INCREMENT COMMENT ‘编号’,

hosname varchar(100) DEFAULT NULL COMMENT ‘医院名称’,

hoscode varchar(30) DEFAULT NULL COMMENT ‘医院编号’,

api_url varchar(100) DEFAULT NULL COMMENT ‘api基础路径’,

sign_key varchar(50) DEFAULT NULL COMMENT ‘签名秘钥’,

contacts_name varchar(20) DEFAULT NULL COMMENT ‘联系人’,

contacts_phone varchar(11) DEFAULT NULL COMMENT ‘联系人手机’,

status tinyint(3) NOT NULL DEFAULT ‘0’ COMMENT ‘状态’,

create_time timestamp NOT NULL DEFAULT ‘0000-00-00 00:00:00’ ON UPDATE CURRENT_TIMESTAMP COMMENT ‘创建时间’,

update_time timestamp NOT NULL DEFAULT ‘0000-00-00 00:00:00’ COMMENT ‘更新时间’,

is_deleted tinyint(3) NOT NULL DEFAULT ‘0’ COMMENT ‘逻辑删除(1:已删除,0:未删除)’,

PRIMARY KEY (id)

) ENGINE=InnoDB DEFAULT CHARSET=utf8

hosname:医院名称

hoscode:医院编号(平台分配,全局唯一,api接口必填信息)

api_url:医院回调的基础url(如:预约下单,我们要调用该地址去医院下单)

sign_key:双方api接口调用的签名key,有平台生成

contacts_name:医院联系人姓名

contacts_phone:医院联系人手机

status:状态(锁定/解锁)

3、医院模块开发

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

3.1、 搭建医院模块service-hosp


在这里插入图片描述

选择next

在这里插入图片描述

在这里插入图片描述创建成功:

在这里插入图片描述

3.2、引入依赖


<?xml version="1.0" encoding="UTF-8"?>

<project xmlns=“http://maven.apache.org/POM/4.0.0”

xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”

xsi:schemaLocation=“http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd”>

service

com.study

0.0.1-SNAPSHOT

4.0.0

service_hosp

com.study

model

0.0.1-SNAPSHOT

org.mybatis.spring.boot

mybatis-spring-boot-starter

1.1.1

com.baomidou

mybatis-plus-boot-starter

3.3.1

org.projectlombok

lombok

com.baomidou

mybatis-plus-core

3.4.2

compile

com.baomidou

mybatis-plus-extension

3.4.2

compile

3.3、添加配置文件application.properties


服务端口

server.port=8201

服务名

spring.application.name=service-hosp

环境设置:dev、test、prod

spring.profiles.active=dev

mysql数据库连接

spring.datasource.driver-class-name=com.mysql.jdbc.Driver

spring.datasource.url=jdbc:mysql://localhost:3306/yygh_hosp?characterEncoding=utf-8&useSSL=false

spring.datasource.username=root

spring.datasource.password=root

#返回json的全局时间格式

spring.jackson.date-format=yyyy-MM-dd HH:mm:ss

spring.jackson.time-zone=GMT+8

#配置mapper xml文件的路径

#mybatis-plus.mapper-locations=classpath:com/study/yygh/mapper/xml/*.xml

mybatis-plus.mapper-locations=classpath:com/study/yygh/mapper/xml/*.xml

nacos服务地址

spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848

#开启sentinel

feign.sentinel.enabled=true

#设置sentinel地址

spring.cloud.sentinel.transport.dashboard=http://127.0.0.1:8858

#mongodb地址

spring.data.mongodb.host=192.168.44.163

spring.data.mongodb.port=27017

spring.data.mongodb.database=yygh_hosp

#rabbitmq地址

spring.rabbitmq.host=127.0.0.1

spring.rabbitmq.port=5672

spring.rabbitmq.username=guest

spring.rabbitmq.password=guest

3.4、添加启动类


在这里插入图片描述

4、创建基础类

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

创建医院设置接口的基础类

在这里插入图片描述医院设置接口

在这里插入图片描述

4.1、公共基础类BaseEntity:


@Data

public class BaseEntity implements Serializable {

@ApiModelProperty(value=“id”)

@TableId(type= IdType.AUTO)

private Long id;

@ApiModelProperty(value=“创建时间”)

@JsonFormat(pattern=“yyyy-MM-dd HH:mm:ss”)

@TableField(“create_time”)

private Date createTime;

@ApiModelProperty(value=“更新时间”)

@TableField(“update_time”)

private Date updateTime;

@ApiModelProperty(value=“逻辑删除(1:已删除,0:未删除)”)

@TableField(“is_Deleted”)

@TableLogic

private Integer isDeleted;

@ApiModelProperty(value=“其他参数”)

@TableField(exist = false)

private Map<String,Object> param = new HashMap<>();

}

4.2、医院设置实体类


@Data

@ApiModel(description = “医院设置”)

@TableName(“hospital_set”)

public class HospitalSet extends BaseEntity {

private static final long serialVersionUID = 1L;

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

@TableField(“hosname”)

private String hosname;

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

@TableField(“hoscode”)

private String hoscode;

@ApiModelProperty(value = “api基础路径”)

@TableField(“api_url”)

private String apiUrl;

@ApiModelProperty(value = “签名秘钥”)

@TableField(“sign_key”)

private String signKey;

@ApiModelProperty(value = “联系人姓名”)

@TableField(“contacts_name”)

private String contactsName;

@ApiModelProperty(value = “联系人手机”)

@TableField(“contacts_phone”)

private String contactsPhone;

@ApiModelProperty(value = “状态”)

@TableField(“status”)

private Integer status;

}

4.3、持久层


public interface HospitalSetMapper

extends BaseMapper {

}

4.4、持久层xml文件


<?xml version="1.0" encoding="UTF-8" ?>

4.5、业务层接口


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;

}

  • 18
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值