驾考项目5-swager,三级联动,大重构解决痛点

172 阅读2分钟

接口文档

依赖 和JiaKao完整版不一样哦 我一开始用完整版一直出不来

<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger2</artifactId>
    <version>2.9.2</version>
</dependency>
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger-ui</artifactId>
    <version>2.9.2</version>
</dependency>

简易方法 后续继续完善

@Configuration
@EnableSwagger2
public class SwaggerCfg {
    @Bean
    public Docket docket(Environment environment) {
        boolean enable = environment.acceptsProfiles(Profiles.of("dev","test"));
        return new Docket(DocumentationType.SWAGGER_2)
                .enable(enable)
                .apiInfo(apiInfo())
                .select()
                .paths(PathSelectors.ant("/*/*")).build();
    }
    public ApiInfo apiInfo() {
        return new ApiInfoBuilder()
        .title("小码哥驾考系统接口文档")
        .description("小码哥驾考系统接口文档")
        .version("1.0.0")
                .build();
    }
}

环境判断

boolean enable = environment.acceptsProfiles(Profiles.of("dev","test"));

地址

localhost:8888/swagger-ui.html
http://localhost:8888/swagger-ui.html#/

image.png

API选择

image.png

请求头获取

下面是2个简易方法 针对个别请求

  • @RequestHeader 注解 在家 参数前
  • 通过httprequestservlet 中获取header(“token”)

start 的swagger 地址也需要切换

image.png

http://localhost:8888/swagger-ui/index.html

Swagger很多细节 比如 只有@Apixxx才可以有接口显示 配合withxxx啥的

ExamPlaceCourse模块

科二科三

省份 城市 考场信息

三级联动

image.png

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.mj.jk.mapper.ExamPlaceMapper">
    <resultMap id="rmSelectRegionExamPlaces" type="com.mj.jk.pojo.dto.ProvinceDto">
        <id column="id" property="id"/>
        <result column="name" property="name"/>
        <result column="plate" property="plate"/>
        <collection property="children" ofType="com.mj.jk.pojo.dto.CityDto">
            <id column="city_id" property="id"/>
            <result column="city_name" property="name"/>
            <result column="city_plate" property="plate"/>
            <collection property="children" ofType="com.mj.jk.pojo.po.ExamPlace">
                <id column="exam_place_id" property="id"/>
                <result column="exam_place_name" property="name"/>
            </collection>
        </collection>
    </resultMap>

    <select id="selectRegionExamPlaces" resultMap="rmSelectRegionExamPlaces">
        SELECT
            p.id,
            p.name,
            p.plate,
            c.id city_id,
            c.name city_name,
            c.plate city_plate,
            e.id exam_place_id,
            e.name exam_place_name
        FROM plate_region p
                 JOIN plate_region c ON c.parent_id = p.id
                 JOIN exam_place e ON e.city_id = c.id AND e.province_id = p.id
        WHERE p.parent_id = 0
        ORDER BY p.pinyin, c.plate
    </select>

</mapper>

大重构

权限第一节 我滴 2:40分钟课程

痛点

  • 数据层 不满足现状 需要加字端 解决
  • 在ApiModelProperty设置hidden 登陆人员看不到 如果save接口还是看不见

image.png

image.png

移动query 到 vo 的 req 的 page下

PageQuery 修改成 PageReqVo 然后提示 选择all 然后 KeywordReqVo 修改 KeywordPageReqVo

image.png

  • 删除PageReqVo里面的 count pages data

  • 复制po到req下面的save 然后改名

image.png

  • 把po里面的所有关于请求 注解删掉 只保留外键就行
  • baseController

image.png

  • JsonVo
  • 创建各种vo 然后该控制器
  • Rs修改 JsonVos
  • R 改 JsonVo 完善DataJsonVo

MapStruct 解决遍历转换问题

课程需要查询省份

课程里面有场地 场地里面有省份和城市

MyBatis-plus 可以对应上哦 也可以写一遍 column property 对应

image.png

image.png

新知识点 自定义sql 查询追加分页的配置

image.png

image.png

官方建议 @Param(Constants.WHERE) ${ew.customSqlSegment}

image.png

image.png

MpQueryWrapper 自定义sql 还是区分字段吧

MyBatis是单表之王

image.png

alt + command + v 快速生成变量