POST
/checker/faceConsumeApp人脸核销
核销 / 核销(主表)
基本信息
- 接口状态前端在用 免鉴权
- 接口URLPOST
https://dscp-dev.hn12301.net/app-api/checker/faceConsume - 请求方式
POST - Content-Type
application/json - 暴露渠道App 前缀
/app-api - 名称来源源码注释
- 调用方已确认在用 · 景区核销(1 个前端)
- 需求上下文
- 维护人 / 最后改动liuxu 2024-04-25
- 读写数据表
checker、card_bind、card_resource_rule、card_check反查该表全部接口 → - 控制器
com.jxxx.dscp.api.controller.checker.CheckerController#faceConsume - 源码位置
jxxx-dscp/dscp-service-business/src/main/java/com/jxxx/dscp/api/controller/checker/CheckerController.java:326 - 判定依据
请求参数
Header 请求参数
| 参数名 | 参数值 | 是否必填 | 参数类型 | 描述说明 |
|---|---|---|---|---|
| 无(渠道统一鉴权头见《认证方式》) | ||||
Query 请求参数
| 参数名 | 参数值 | 是否必填 | 参数类型 | 描述说明 |
|---|---|---|---|---|
| 无 | ||||
路径参数及说明
| 参数名 | 参数值 | 是否必填 | 参数类型 | 描述说明 |
|---|---|---|---|---|
| 无 | ||||
Body 请求参数
| 参数名 | 参数值 | 是否必填 | 参数类型 | 描述说明 |
|---|---|---|---|---|
| photoBase64 | … | 是 | String | 人脸图片base64 |
| userId | … | 是 | Long | 核销员id |
| skuId | … | 是 | String | skuId → card_resource_rule.sku_id |
| isReturnList | … | 是 | Boolean | 是否返回卡列表 |
| entranceId | … | 是 | String | 入口id → card_check.entrance_id |
| platform | … | 否 | Integer | 核销小程序=1 核销app=2 |
| item | … | 否 | String |
认证方式
响应参数
| 参数名 | 参数值 | 是否必填 | 参数类型 | 描述说明 |
|---|---|---|---|---|
| data | … | 否 | Object | 核销数据 |
| cardModelName | … | 否 | String | 卡种名称 → card_bind.card_model_name |
| cardNumber | … | 否 | String | 卡号 → card_bind.card_number |
| touristName | … | 否 | String | 游客姓名 |
| touristMobile | … | 否 | String | 游客手机号 |
| touristCertType | … | 否 | String | 证件类型 |
| touristIdCardNo | … | 否 | String | 证件号码 |
| touristPhotoUrl | … | 否 | String | 游客照片 |
| isVerify | … | 否 | Boolean | 是否已核销 |
| remainTimes | … | 否 | Integer | 本景区剩余使用次数 |
| checkedTimes | … | 否 | Integer | 本景区已使用次数 |
| touristCheckList | … | 否 | List<TouristCheckerConsumeRecordBean> | 核销记录列表 |
| mcName | … | 否 | String | 景区名称 |
| checkTime | … | 否 | Date | 核销时间 → card_check.check_time |
| checkerName | … | 否 | String | 核销人姓名 → card_check.checker_name |
| checkerRecordId | … | 否 | Long |
响应示例
成功响应示例
{
"errcode": 0,
"errmsg": "",
"data": {
"data": "…",
"cardModelName": "\"string\"",
"cardNumber": "\"string\"",
"touristName": "\"string\"",
"touristMobile": "\"string\"",
"touristCertType": "\"string\"",
"touristIdCardNo": "\"string\"",
"touristPhotoUrl": "\"string\"",
"isVerify": "false",
"remainTimes": "1",
"checkedTimes": "1",
"touristCheckList": "[]"
}
}失败响应示例
{
"data": null,
"可能返回": [
{
"errcode": "99999",
"errmsg": "服务内部错误"
},
{
"errcode": "10001",
"errmsg": "文件上传失败"
},
{
"errcode": "20010",
"errmsg": "该旅游卡当天已经进行了核销,无需重复核销"
}
]
}附录 · 实现细节
调用链 / 数据表 / 调用点证据 / 源码注释 / 逻辑摘要
涉及数据表:checker、card_bind、card_resource_rule、card_check 反查全部引用接口 →
- CheckerController#faceConsume
- CheckerService#faceConsume(CheckerServiceImpl)
- CheckerService#faceConsumeSzhMulti(CheckerServiceImpl)
- OssService#uploadBase64(OssServiceImpl)
- ObjectService#putObject(ObjectServiceImpl)
- ObjectService#getObjectURL(ObjectServiceImpl)
- MemberFaceMapper#selectOne
- CardBindService#queryList(CardBindServiceImpl)
- CardBindMapper#queryList
- CardResourceRuleService#queryList(CardResourceRuleServiceImpl)
- CardResourceRuleMapper#queryList
- CardCheckService#update(CardCheckServiceImpl)
- CardCheckMapper#update
其它依赖:OssProperties.getBucketName
逻辑摘要:调用 faceConsume(checkerService.faceConsume);调用 faceConsumeSzhNew(checkerService.faceConsumeSzhNew)
操作日志:checker / 人脸核销
源码内联注释(旧站解析结果)
- else if (request.getItem().equalsIgnoreCase("cztykt")) {
- return checkerService.faceConsumeSzhNew(request, 792480139223109l);
- } else if (request.getItem().equalsIgnoreCase("xym")) {
- return checkerService.faceConsumeSzhNew(request, 795314886207749l);
- } else if (request.getItem().equalsIgnoreCase("cxy")) {
- return checkerService.faceConsumeSzhNew(request, 799996603280709l);
- }
- throw ChaosRes.SYS_FAIL.toException("未知卡种人脸核销");
旧站环境备注:pro:(仓库 .env.pro 指向 uat;生产域名未确认,此处沿用 uat 主机示意)
调用点证据
writeoff/common/http.api.js:5景区核销 · faceConsumeUrl
可能抛出的业务码:99999 服务内部错误、10001 文件上传失败、20010 该旅游卡当天已经进行了核销,无需重复核销 错误码字典 →