refactor(sis): E8授权逻辑更改
Some checks are pending
Gitea Actions Demo / Explore-Gitea-Actions (push) Waiting to run
Some checks are pending
Gitea Actions Demo / Explore-Gitea-Actions (push) Waiting to run
This commit is contained in:
parent
abeac0c7c7
commit
116abb4113
@ -3,10 +3,13 @@ package org.dromara.sis.sdk.e8;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
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 java.util.List;
|
||||
|
||||
/**
|
||||
* @author lsm
|
||||
* @apiNote DoorDeviceService
|
||||
@ -53,4 +56,11 @@ public interface DoorDeviceService {
|
||||
* @return Boolean
|
||||
*/
|
||||
Boolean deleteDoorDevice(Integer id);
|
||||
|
||||
/**
|
||||
* 分页获取授权门信息
|
||||
*
|
||||
* @return TableDataInfo<AuthDoorDeviceFindRes>
|
||||
*/
|
||||
List<AuthDoorDeviceFindRes> getPageAuthDoorDeviceList();
|
||||
}
|
||||
|
@ -0,0 +1,22 @@
|
||||
package org.dromara.sis.sdk.e8.domain.door.res;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @author lsm
|
||||
* @apiNote AuthDoorDeviceFindRes
|
||||
* @since 2025/6/29
|
||||
*/
|
||||
@Data
|
||||
public class AuthDoorDeviceFindRes {
|
||||
|
||||
/**
|
||||
* id
|
||||
*/
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* deviceId
|
||||
*/
|
||||
private Long deviceId;
|
||||
}
|
@ -11,6 +11,7 @@ import org.dromara.sis.sdk.e8.domain.ApiResp;
|
||||
import org.dromara.sis.sdk.e8.domain.door.req.DoorDeviceAddReq;
|
||||
import org.dromara.sis.sdk.e8.domain.door.req.DoorDeviceFindReq;
|
||||
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;
|
||||
@ -18,6 +19,7 @@ import org.dromara.sis.sdk.e8.utils.E8ApiUtil;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
@ -35,6 +37,7 @@ public class DoorDeviceServiceImpl implements DoorDeviceService {
|
||||
private final static String DOOR_DEVICE_CREATE = "/api/E8Door/man-device-info";
|
||||
private final static String DOOR_DEVICE_UPDATE = "/api/E8Door/man-device-info/{id}/update";
|
||||
private final static String DOOR_DEVICE_DELETE = "/api/E8Door/man-device-info/{id}";
|
||||
private final static String AUTH_DOOR_DEVICE_GET_LIST = "/api/E8Door/man-auth-info/get-page-list-auth-data";
|
||||
|
||||
|
||||
private final E8ApiUtil e8ApiUtil;
|
||||
@ -170,4 +173,34 @@ public class DoorDeviceServiceImpl implements DoorDeviceService {
|
||||
return apiResp.getSuccess();
|
||||
}
|
||||
|
||||
/**
|
||||
* 分页获取授权门信息
|
||||
*
|
||||
* @return TableDataInfo<AuthDoorDeviceFindRes>
|
||||
*/
|
||||
public List<AuthDoorDeviceFindRes> getPageAuthDoorDeviceList() {
|
||||
Map<String, Object> queryDto = new HashMap<>();
|
||||
queryDto.put("type", -1);
|
||||
queryDto.put("matchString", "");
|
||||
|
||||
// 创建一个参数映射,用于存储API请求所需的参数
|
||||
Map<String, Object> params = new HashMap<>();
|
||||
params.put("PageIndex", 1);
|
||||
params.put("MaxResultCount", 100000);
|
||||
params.put("QueryDto", queryDto);
|
||||
|
||||
ApiResp apiResp = e8ApiUtil.doPost(params, AUTH_DOOR_DEVICE_GET_LIST);
|
||||
|
||||
// 如果API调用不成功,则返回null
|
||||
if (!apiResp.getSuccess()) {
|
||||
log.error("分页获取授权门信息失败 errorMsg:{}", apiResp);
|
||||
// 如果响应不成功,则返回null
|
||||
return null;
|
||||
}
|
||||
// 将API响应结果转换为Map对象,以便后续处理
|
||||
Map<String, Object> result = JSONUtil.toBean(JSONUtil.toJsonStr(apiResp.getResult()), new TypeReference<>() {
|
||||
}, false);
|
||||
// 返回list
|
||||
return JSONUtil.toList(JSONUtil.toJsonStr(result.get("item")), AuthDoorDeviceFindRes.class);
|
||||
}
|
||||
}
|
||||
|
@ -14,8 +14,10 @@ import org.dromara.sis.domain.bo.SisLibDeviceImgRefBo;
|
||||
import org.dromara.sis.domain.bo.SisLibDeviceRefBo;
|
||||
import org.dromara.sis.domain.vo.*;
|
||||
import org.dromara.sis.sdk.e8.AccessControlService;
|
||||
import org.dromara.sis.sdk.e8.DoorDeviceService;
|
||||
import org.dromara.sis.sdk.e8.VoucherControlService;
|
||||
import org.dromara.sis.sdk.e8.domain.accessControl.req.CustomerAuthAddReq;
|
||||
import org.dromara.sis.sdk.e8.domain.door.res.AuthDoorDeviceFindRes;
|
||||
import org.dromara.sis.sdk.e8.domain.voucher.req.IssueVoucherReq;
|
||||
import org.dromara.sis.sdk.unview.UnViewAiBoxApi;
|
||||
import org.dromara.sis.sdk.unview.model.UvModel;
|
||||
@ -45,6 +47,7 @@ public class SisAuthRecordServiceImpl implements ISisAuthRecordService {
|
||||
private final UnViewAiBoxApi unViewAiBoxApi;
|
||||
private final SisAuthRecordMapper baseMapper;
|
||||
private final VoucherControlService e8VouchService;
|
||||
private final DoorDeviceService e8DoorDeviceService;
|
||||
private final ISisPersonLibService sisPersonLibService;
|
||||
private final ISisEEightRefService sisEEightRefService;
|
||||
private final AccessControlService e8AccessControlService;
|
||||
@ -224,17 +227,26 @@ public class SisAuthRecordServiceImpl implements ISisAuthRecordService {
|
||||
Assert.notNull(vId, "E8平台发行凭证失败");
|
||||
log.info("E8平台发行凭证完成!");
|
||||
|
||||
|
||||
log.info("E8平台授权凭证");
|
||||
// E8平台授权门列表
|
||||
List<AuthDoorDeviceFindRes> authDoor = e8DoorDeviceService.getPageAuthDoorDeviceList();
|
||||
Map<Long, AuthDoorDeviceFindRes> authDoorMap = authDoor.stream()
|
||||
.collect(Collectors.toMap(AuthDoorDeviceFindRes::getDeviceId, authDoorRes -> authDoorRes));
|
||||
|
||||
List<CustomerAuthAddReq.AuthGroupData> authList = acList.stream()
|
||||
// TODO 阶段调试E8人脸设备,非E8且非人脸设备不处理
|
||||
.filter(acVo -> acVo.getControlType() != 1 && acVo.getAccessType() != 2)
|
||||
.map(acVo -> {
|
||||
CustomerAuthAddReq.AuthGroupData auth = new CustomerAuthAddReq.AuthGroupData();
|
||||
auth.setType(0);
|
||||
auth.setGatewayType(1);
|
||||
auth.setId(Long.parseLong(acVo.getAccessCode()));
|
||||
return auth;
|
||||
CustomerAuthAddReq.AuthGroupData door = new CustomerAuthAddReq.AuthGroupData();
|
||||
door.setType(0);
|
||||
door.setGatewayType(1);
|
||||
Long id = Long.parseLong(acVo.getOutCode());
|
||||
door.setId(id);
|
||||
// 如果 authDoorMap 中存在对应的 deviceId,则更新 id
|
||||
AuthDoorDeviceFindRes authDoorRes = authDoorMap.get(id);
|
||||
if (authDoorRes != null) {
|
||||
door.setId(authDoorRes.getId());
|
||||
}
|
||||
return door;
|
||||
}).toList();
|
||||
|
||||
CustomerAuthAddReq authReq = new CustomerAuthAddReq();
|
||||
|
Loading…
Reference in New Issue
Block a user