refactor(sis): - 华为人脸对比改动

This commit is contained in:
zcxlsm 2025-07-12 09:57:55 +08:00
parent 421bc821eb
commit 34dc9d652b
6 changed files with 14 additions and 361 deletions

View File

@ -1,108 +0,0 @@
package org.dromara.sis.controller.e8;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.dromara.common.core.domain.R;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.sis.sdk.e8.AccessControlService;
import org.dromara.sis.sdk.e8.domain.QueryDto;
import org.dromara.sis.sdk.e8.domain.accessControl.req.CustomerAuthAddReq;
import org.dromara.sis.sdk.e8.domain.accessControl.req.RemoteOpenDoorReq;
import org.dromara.sis.sdk.e8.domain.accessControl.res.AccessRecordFindRes;
import org.dromara.sis.sdk.e8.domain.accessControl.res.CustomerAuthFindRes;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @author lsm
* @apiNote AccessControlController
* @since 2025/6/24
*/
@Slf4j
@RestController
@RequiredArgsConstructor
@RequestMapping("/e8AccessControl")
public class AccessControlController {
private final AccessControlService accessControlService;
/**
* 远程开门
*
* @param req 传参
* @return Boolean
*/
@PostMapping("/remoteOpenDoor")
public R<Boolean> remoteOpenDoor(@RequestBody RemoteOpenDoorReq req) {
log.info("E8远程开门 入参:{}", req);
Boolean flag = accessControlService.remoteOpenDoor(req);
if (flag) {
return R.ok();
} else {
return R.fail("E8远程开门调用失败");
}
}
/**
* 获取门禁记录列表
*
* @param dto 查询参数
* @return IPage<AccessRecordFindRes>
* @apiNote 获取参数示例 {"maxResultCount":10,"pageIndex":1,"queryDto":{"isViewFullData":false}}
*/
@PostMapping("/getPageAccessRecordList")
public R<TableDataInfo<AccessRecordFindRes>> getPageAccessRecordList(@RequestBody QueryDto dto) {
log.info("E8获取门禁记录列表 入参:{}", dto);
TableDataInfo<AccessRecordFindRes> page = accessControlService.getPageAccessRecordList(dto);
if (page == null) {
return R.fail("E8获取门禁记录列表调用失败");
} else {
return R.ok(page);
}
}
/**
* 人员授权
*
* @param req 传参
* @return Boolean
* @apiNote 参数示例 {"accessAuthModel":0,"authData":[{"floors":[],"gatewayType":1,"id":528705580163141,"type":0}],"authType":0,"elevatorAuthModel":1,"endTime":"2025-07-2511: 23: 39","personIds":[539696740646981],"scheduleId":1,"startTime":"2025-06-2511: 23: 39"}
*/
@PostMapping("/addCustomerAuth")
public R<Boolean> addCustomerAuth(@RequestBody CustomerAuthAddReq req) {
log.info("E8人员授权 入参:{}", req);
Boolean flag = accessControlService.addCustomerAuth(req);
if (flag) {
return R.ok();
} else {
return R.fail("E8人员授权调用失败");
}
}
/**
* 获取人员权限分页列表
*
* @param dto 获取参数
* @return TableDataInfo<CustomerAuthFindRes>
* @apiNote 获取参数示例 {"maxResultCount":10,"pageIndex":1,"queryDto":{"isViewFullData":false}}
*/
@PostMapping("getPageCustomerAuth")
public R<TableDataInfo<CustomerAuthFindRes>> getPageCustomerAuth(@RequestBody QueryDto dto) {
log.info("E8获取人员权限分页列表 入参:{}", dto);
TableDataInfo<CustomerAuthFindRes> page = accessControlService.getPageCustomerAuth(dto);
if (page == null) {
return R.fail("E8获取人员权限分页列表调用失败");
} else {
return R.ok(page);
}
}
}

View File

@ -1,135 +0,0 @@
package org.dromara.sis.controller.e8;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.dromara.common.core.domain.R;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.sis.sdk.e8.DoorDeviceService;
import org.dromara.sis.sdk.e8.domain.door.req.DoorDeviceAddReq;
import org.dromara.sis.sdk.e8.domain.door.req.DoorDeviceUpdateReq;
import org.dromara.sis.sdk.e8.domain.door.res.AuthDoorDeviceFindRes;
import org.dromara.sis.sdk.e8.domain.door.res.DoorDeviceAddRes;
import org.dromara.sis.sdk.e8.domain.door.res.DoorDeviceFindRes;
import org.dromara.sis.sdk.e8.domain.QueryDto;
import org.springframework.util.ObjectUtils;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* @author lsm
* @apiNote DoorDeviceController
* @since 2025/6/23
*/
@Slf4j
@RestController
@RequiredArgsConstructor
@RequestMapping("/e8DoorDevice")
public class DoorDeviceController {
private final DoorDeviceService doorDeviceService;
/**
* 查询门禁信息
*
* @param id 入参
* @return Result
*/
@PostMapping("/findDoorDevice/{id}")
public R<DoorDeviceFindRes> findDoorDevice(@PathVariable Long id) {
log.info("E8接口 查询门禁信息 入参={}", id);
DoorDeviceFindRes doorDeviceInfo = doorDeviceService.findDoorDevice(id);
if (doorDeviceInfo == null) {
return R.fail("E8接口查询门禁信息调用失败");
} else {
return R.ok(doorDeviceInfo);
}
}
/**
* 新增门禁信息
*
* @param addReq 入参
* @return Boolean
*/
@PostMapping("/addDoorDevice")
public R<DoorDeviceAddRes> addDoorDevice(@RequestBody DoorDeviceAddReq addReq) {
log.info("E8接口新增门禁信息 入参={}", addReq);
DoorDeviceAddRes doorDevice = doorDeviceService.addDoorDevice(addReq);
if (doorDevice == null) {
return R.fail("E8接口新增门禁信息调用失败");
} else {
return R.ok(doorDevice);
}
}
/**
* 门禁信息修改
*
* @param updateReq 入参
* @return Boolean
*/
@PostMapping("/updateDoorDevice")
public R<Boolean> updateDoorDevice(@RequestBody DoorDeviceUpdateReq updateReq) {
log.info("E8接口门禁信息修改 入参={}", updateReq);
Boolean flag = doorDeviceService.updateDoorDevice(updateReq);
if (flag) {
return R.ok();
} else {
return R.fail("E8接口门禁信息修改调用失败");
}
}
/**
* 删除门禁信息
*
* @param id 入参
* @return Boolean
*/
@PostMapping("/deleteDoorDevice/{id}")
public R<Boolean> deleteDoorDevice(@PathVariable Long id) {
log.info("E8接口删除门禁信息 入参={}", id);
Boolean flag = doorDeviceService.deleteDoorDevice(id);
return flag ? R.ok() : R.fail("E8接口删除门禁信息调用失败");
}
/**
* 查询门禁信息列表
*
* @param dto 入参
* @return IPage<DoorDeviceFindRes>
*/
@PostMapping("/findDoorDeviceList")
public R<TableDataInfo<DoorDeviceFindRes>> findDoorDeviceList(@RequestBody QueryDto dto) {
log.info("E8接口查询门禁信息列表 入参={}", dto);
TableDataInfo<DoorDeviceFindRes> doorDeviceList = doorDeviceService.findDoorDeviceList(dto);
if (ObjectUtils.isEmpty(doorDeviceList)) {
return R.fail("E8接口查询门禁信息列表调用失败");
} else {
return R.ok(doorDeviceList);
}
}
/**
* 分页获取授权门信息
*
* @return List<AuthDoorDeviceFindRes>
*/
@PostMapping("/findAuthDoor")
public R<List<AuthDoorDeviceFindRes>> getPageAuthDoorDeviceList() {
log.info("E8接口查询授权门信息");
List<AuthDoorDeviceFindRes> authDoor = doorDeviceService.getPageAuthDoorDeviceList();
if (ObjectUtils.isEmpty(authDoor)) {
return R.fail("E8接口查询授权门信息调用失败");
} else {
return R.ok(authDoor);
}
}
}

View File

@ -1,113 +0,0 @@
package org.dromara.sis.controller.e8;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.dromara.common.core.domain.R;
import org.dromara.sis.sdk.e8.VoucherControlService;
import org.dromara.sis.sdk.e8.domain.voucher.req.ChangeCardReq;
import org.dromara.sis.sdk.e8.domain.voucher.req.IssueVoucherReq;
import org.dromara.sis.sdk.e8.domain.voucher.req.OperateVoucherReq;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
/**
* @author lsm
* @apiNote VoucherControlController
* @since 2025/6/25
*/
@Slf4j
@RestController
@RequiredArgsConstructor
@RequestMapping("/e8VoucherControl")
public class VoucherControlController {
private final VoucherControlService voucherControlService;
/**
* 发行凭证
*
* @param req 入参
* @return 是否成功
*/
@PostMapping("/issueVoucher")
public R<Boolean> issueVoucher(@RequestBody IssueVoucherReq req) {
log.info("E8发行凭证入参{}", req);
Long flag = voucherControlService.issueVoucher(req);
if (flag != null) {
return R.ok();
} else {
return R.fail("E8发行凭证调用失败");
}
}
/**
* 操作凭证
*
* @param req 入参
* @return Boolean
*/
@PostMapping("/operateVoucher")
public R<Boolean> operateVoucher(@RequestBody OperateVoucherReq req) {
log.info("E8操作凭证入参{}", req);
Boolean flag = voucherControlService.operateVoucher(req);
if (flag) {
return R.ok();
} else {
return R.fail("E8操作凭证调用失败");
}
}
/**
* 换卡补卡
*
* @param req 入参
* @return Boolean
*/
@PostMapping("/changeCard")
public R<Boolean> changeCard(@RequestBody ChangeCardReq req) {
log.info("E8换卡补卡入参{}", req);
Boolean flag = voucherControlService.changeCard(req);
if (flag) {
return R.ok();
} else {
return R.fail("E8换卡补卡调用失败");
}
}
/**
* 上传人脸
*
* @param file 入参
* @return imageUrl 人脸图片地址
*/
@PostMapping("/uploadFace")
public R<String> uploadFace(@RequestParam("file") MultipartFile file) {
log.info("E8上传人脸入参{}", file.getOriginalFilename());
// 获取文件字节数组
byte[] imageByte;
try {
imageByte = file.getBytes();
} catch (IOException e) {
log.error("获取上传文件字节失败:{}", e.getMessage());
return R.fail("E8上传人脸获取文件字节失败");
}
String imageUrl = voucherControlService.uploadFace(imageByte);
if (imageUrl != null) {
return R.ok(imageUrl);
} else {
return R.fail("E8上传人脸调用失败");
}
}
}

View File

@ -32,8 +32,8 @@ public interface HuaWeiBoxApi {
/**
* 根据抓拍图片比对返回人员ID
*
* @param req 入参
* @param base64Img 入参
* @return Long
*/
Long findPerson(FinaHWPersonReq req);
Long findPerson(String base64Img);
}

View File

@ -8,7 +8,6 @@ import lombok.NoArgsConstructor;
* @apiNote FinaHWPersonReq
* @since 2025/7/10
*/
@NoArgsConstructor
@Data
public class FinaHWPersonReq {
/**
@ -23,6 +22,11 @@ public class FinaHWPersonReq {
* page
*/
private PageDTO page;
public FinaHWPersonReq() {
this.page = new PageDTO(); // 显式初始化 page
}
/**
* picture
*/

View File

@ -82,13 +82,18 @@ public class HuaWeiBoxApiService implements HuaWeiBoxApi {
/**
* 根据抓拍图片比对返回人员ID
*
* @param req 入参
* @param base64Img 入参
* @return Long
*/
@Override
public Long findPerson(FinaHWPersonReq req){
public Long findPerson(String base64Img){
String url = "/sdk_service/rest/facerepositories/peoples";
FinaHWPersonReq req = new FinaHWPersonReq();
FinaHWPersonReq.PictureDTO picture = new FinaHWPersonReq.PictureDTO();
picture.setBase64(base64Img);
req.setPicture(picture);
String jsonReq = JSONUtil.toJsonStr(req);
String jsonStrRes = huaWeiHttp.doPost(url, jsonReq);
JSONObject jsonRes = JSONUtil.parseObj(jsonStrRes);