平台集成了很多第三方功能,通过统一的封装模式进行封装,屏蔽了其技术细节。本篇介绍了封装模式:

        一、统一封装为jar包,存入maven。例如百度人脸识别为:

    <groupId>org.qlm</groupId>
    <artifactId>baidu-face-utils</artifactId>
    <version>1.0-SNAPSHOT</version>

       二、引入参数

@Configuration
@Component
public class BaiduFaceConfig  implements ApplicationRunner {
    @Value("${qlm.baidu.clientId}")
    public String clientId;

    @Value("${qlm.baidu.clientSecret}")
    public String clientSecret;

    public void run(ApplicationArguments args) throws Exception {
        BaiduFaceUtil.init(clientId, clientSecret);
    }
}

     这样BaiduFaceUtil类就有了定义的参数

     三、定义各种dto用于封装

例如:

@Data
@Schema(name = "faceDto",description = "照片信息")
public class faceDto {
    //图片信息
    private String image;
    // BASE64 FACE_TOKEN
    private String image_type;
    //用户组id
    private String group_id;
    private String user_id;
    private String user_info;
    /*
        图片质量控制
        NONE: 不进行控制
        LOW:较低的质量要求
        NORMAL: 一般的质量要求
        HIGH: 较高的质量要求
        默认 NONE
        若图片质量不满足要求,则返回结果中会提示质量检测失败
      */
    private String quality_control;
    /*
    活体检测控制
    NONE: 不进行控制
    LOW:较低的活体要求(高通过率 低攻击拒绝率)
    NORMAL: 一般的活体要求(平衡的攻击拒绝率, 通过率)
    HIGH: 较高的活体要求(高攻击拒绝率 低通过率)
    默认NONE
    若活体检测结果不满足要求,则返回结果中会提示活体检测失败
    * */
    private String liveness_control;
    /*
    操作方式
    APPEND: 当user_id在库中已经存在时,对此user_id重复注册时,新注册的图片默认会追加到该user_id下
    REPLACE : 当对此user_id重复注册时,则会用新图替换库中该user_id下所有图片
    默认使用APPEND
    */
    private String action_type;
    /*
    操作方式
    APPEND: 当user_id在库中已经存在时,对此user_id重复注册时,新注册的图片默认会追加到该user_id下
    REPLACE : 当对此user_id重复注册时,则会用新图替换库中该user_id下所有图片
    默认使用APPEND
    */
    private String face_sort_type;
}

四、定义静态函数

//入库
public static faceOperResultDto faceAdd(faceDto face)

//搜索

public static faceSearchResultDto faceSearch(faceDto face)

  五、使用

增加maven引用,直接调用静态函数即可