feat(sis): 新增凭证控制相关功能
Some checks failed
Gitea Actions Demo / Explore-Gitea-Actions (push) Failing after 7m52s
Some checks failed
Gitea Actions Demo / Explore-Gitea-Actions (push) Failing after 7m52s
- 新增发行凭证、批量发行凭证、操作凭证、换卡补卡、注销人员凭证等功能 - 实现凭证控制相关的API接口和控制器
This commit is contained in:
parent
bd3ab40be6
commit
d5981b0d4a
@ -23,7 +23,7 @@ import org.springframework.web.bind.annotation.RestController;
|
|||||||
@Slf4j
|
@Slf4j
|
||||||
@RestController
|
@RestController
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
@RequestMapping("/e8accessControl")
|
@RequestMapping("/e8AccessControl")
|
||||||
public class AccessControlController {
|
public class AccessControlController {
|
||||||
|
|
||||||
private final AccessControlService accessControlService;
|
private final AccessControlService accessControlService;
|
||||||
|
@ -21,7 +21,7 @@ import org.springframework.web.bind.annotation.*;
|
|||||||
@Slf4j
|
@Slf4j
|
||||||
@RestController
|
@RestController
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
@RequestMapping("/e8doorDevice")
|
@RequestMapping("/e8DoorDevice")
|
||||||
public class DoorDeviceController {
|
public class DoorDeviceController {
|
||||||
|
|
||||||
private final DoorDeviceService doorDeviceService;
|
private final DoorDeviceService doorDeviceService;
|
||||||
|
@ -0,0 +1,153 @@
|
|||||||
|
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.CancelVoucherReq;
|
||||||
|
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;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @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);
|
||||||
|
|
||||||
|
Boolean flag = voucherControlService.issueVoucher(req);
|
||||||
|
|
||||||
|
if (flag) {
|
||||||
|
return R.ok();
|
||||||
|
} else {
|
||||||
|
return R.fail("E8发行凭证,调用失败!");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 批量发行凭证
|
||||||
|
*
|
||||||
|
* @param req 凭证数据
|
||||||
|
* @return Boolean
|
||||||
|
*/
|
||||||
|
@PostMapping("/issueVoucherMany")
|
||||||
|
public R<Boolean> issueVoucherMany(@RequestBody List<IssueVoucherReq> req) {
|
||||||
|
log.info("E8批量发行凭证入参:{}", req);
|
||||||
|
|
||||||
|
Boolean flag = voucherControlService.issueVoucherMany(req);
|
||||||
|
|
||||||
|
if (flag) {
|
||||||
|
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 req 入参
|
||||||
|
* @return Boolean
|
||||||
|
*/
|
||||||
|
@PostMapping("/cancelVoucher")
|
||||||
|
public R<Boolean> cancelVoucher(@RequestBody CancelVoucherReq req) {
|
||||||
|
log.info("E8注销人员凭证入参:{}", req);
|
||||||
|
|
||||||
|
Boolean flag = voucherControlService.cancelVoucher(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上传人脸,调用失败!");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -2,7 +2,6 @@ package org.dromara.sis.sdk.e8;
|
|||||||
|
|
||||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||||
import org.dromara.sis.sdk.e8.domain.accessControl.req.CustomerAuthAddReq;
|
import org.dromara.sis.sdk.e8.domain.accessControl.req.CustomerAuthAddReq;
|
||||||
import org.dromara.sis.sdk.e8.domain.accessControl.req.CustomerAuthFindReq;
|
|
||||||
import org.dromara.sis.sdk.e8.domain.accessControl.req.RemoteOpenDoorReq;
|
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.AccessRecordFindRes;
|
||||||
import org.dromara.sis.sdk.e8.domain.QueryDto;
|
import org.dromara.sis.sdk.e8.domain.QueryDto;
|
||||||
|
@ -5,7 +5,6 @@ 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.req.DoorDeviceUpdateReq;
|
||||||
import org.dromara.sis.sdk.e8.domain.door.res.DoorDeviceAddRes;
|
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.door.res.DoorDeviceFindRes;
|
||||||
import org.dromara.sis.sdk.e8.domain.door.res.DoorDeviceUpdateRes;
|
|
||||||
import org.dromara.sis.sdk.e8.domain.QueryDto;
|
import org.dromara.sis.sdk.e8.domain.QueryDto;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1,5 +1,12 @@
|
|||||||
package org.dromara.sis.sdk.e8;
|
package org.dromara.sis.sdk.e8;
|
||||||
|
|
||||||
|
import org.dromara.sis.sdk.e8.domain.voucher.req.CancelVoucherReq;
|
||||||
|
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 java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author lsm
|
* @author lsm
|
||||||
* @apiNote VoucherControlService
|
* @apiNote VoucherControlService
|
||||||
@ -7,10 +14,51 @@ package org.dromara.sis.sdk.e8;
|
|||||||
*/
|
*/
|
||||||
public interface VoucherControlService {
|
public interface VoucherControlService {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 发行凭证
|
||||||
|
*
|
||||||
|
* @param req 凭证数据
|
||||||
|
* @return Boolean
|
||||||
|
*/
|
||||||
|
Boolean issueVoucher(IssueVoucherReq req);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 批量发行凭证
|
||||||
|
*
|
||||||
|
* @param req 凭证数据
|
||||||
|
* @return Boolean
|
||||||
|
*/
|
||||||
|
Boolean issueVoucherMany(List<IssueVoucherReq> req);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 操作凭证
|
||||||
|
*
|
||||||
|
* @param req 入参
|
||||||
|
* @return Boolean
|
||||||
|
*/
|
||||||
|
Boolean operateVoucher(OperateVoucherReq req);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 换卡补卡
|
||||||
|
*
|
||||||
|
* @param req 入参
|
||||||
|
* @return Boolean
|
||||||
|
*/
|
||||||
|
Boolean changeCard(ChangeCardReq req);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 注销人员凭证
|
||||||
|
*
|
||||||
|
* @param req 入参
|
||||||
|
* @return Boolean
|
||||||
|
*/
|
||||||
|
Boolean cancelVoucher(CancelVoucherReq req);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 上传人脸
|
* 上传人脸
|
||||||
*
|
*
|
||||||
* @param queryDto 查询参数
|
* @param imageByte 入参
|
||||||
* @return 凭证控制列表
|
* @return imageUrl 人脸图片地址
|
||||||
*/
|
*/
|
||||||
|
String uploadFace(byte[] imageByte);
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,16 @@
|
|||||||
|
package org.dromara.sis.sdk.e8.domain.voucher.req;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author lsm
|
||||||
|
* @apiNote CancelVoucherReq
|
||||||
|
* @since 2025/6/25
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class CancelVoucherReq {
|
||||||
|
|
||||||
|
private List<Long> ids;
|
||||||
|
}
|
@ -0,0 +1,39 @@
|
|||||||
|
package org.dromara.sis.sdk.e8.domain.voucher.req;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author lsm
|
||||||
|
* @apiNote ChangeCardReq
|
||||||
|
* @since 2025/6/25
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class ChangeCardReq {
|
||||||
|
/**
|
||||||
|
* origVoucherId int64 Y 原凭证ID
|
||||||
|
* idno string Y 物理卡号
|
||||||
|
* remark string N 备注
|
||||||
|
* personID int64 Y 人员ID
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 原凭证ID
|
||||||
|
*/
|
||||||
|
private Long origVoucherId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 物理卡号
|
||||||
|
*/
|
||||||
|
private String idno;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 备注
|
||||||
|
*/
|
||||||
|
private String remark;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 人员ID
|
||||||
|
*/
|
||||||
|
private Long personID;
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,69 @@
|
|||||||
|
package org.dromara.sis.sdk.e8.domain.voucher.req;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author lsm
|
||||||
|
* @apiNote IssueVoucher
|
||||||
|
* @since 2025/6/25
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class IssueVoucherReq {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 物理卡号
|
||||||
|
*/
|
||||||
|
private String idno;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 密码
|
||||||
|
*/
|
||||||
|
private String password;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 凭证类型 10:MF1-A卡 11:MF1-B卡 12:MF1卡(ID) 20:个人密码 40:条码、纸票 50:指纹 60:身份证号码 70:人脸 80:虚拟卡 110:蓝牙卡 21:管理密码 22:胁迫密码
|
||||||
|
*/
|
||||||
|
private Integer voucherType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 客户ID
|
||||||
|
*/
|
||||||
|
private Long personID;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 开始日期
|
||||||
|
*/
|
||||||
|
private String startTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 结束日期
|
||||||
|
*/
|
||||||
|
private String endTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 图片地址
|
||||||
|
*/
|
||||||
|
private String txtData;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 指纹数据
|
||||||
|
*/
|
||||||
|
private String blobData;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 指纹编号
|
||||||
|
*/
|
||||||
|
private String fingerNo;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 卡类别 34:普通用户卡 35:胁迫卡 36:保安卡 40:临时卡 41:中级用户卡 48:高级用户卡 49:高级管理卡(注:41、48、49仅适用于分体式门禁)
|
||||||
|
*/
|
||||||
|
private Integer cardType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 凭证模式 0:ID卡模式 1:IC卡模式 3:CPU卡模式
|
||||||
|
*/
|
||||||
|
private Integer voucherMode;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,29 @@
|
|||||||
|
package org.dromara.sis.sdk.e8.domain.voucher.req;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author lsm
|
||||||
|
* @apiNote OperateVoucherReq
|
||||||
|
* @since 2025/6/25
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class OperateVoucherReq {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 凭证ID集合
|
||||||
|
*/
|
||||||
|
private List<Long> ids;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 凭证操作类型 4:冻结 5:解冻 6:注销 7:挂失 8:解挂
|
||||||
|
*/
|
||||||
|
private Integer type;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 原因 (必填)
|
||||||
|
*/
|
||||||
|
private String reason;
|
||||||
|
}
|
@ -3,8 +3,8 @@ package org.dromara.sis.sdk.e8.impl;
|
|||||||
import cn.hutool.core.bean.BeanUtil;
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
import cn.hutool.core.lang.TypeReference;
|
import cn.hutool.core.lang.TypeReference;
|
||||||
import cn.hutool.json.JSONUtil;
|
import cn.hutool.json.JSONUtil;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.dubbo.config.annotation.DubboService;
|
|
||||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||||
import org.dromara.sis.sdk.e8.AccessControlService;
|
import org.dromara.sis.sdk.e8.AccessControlService;
|
||||||
import org.dromara.sis.sdk.e8.domain.accessControl.req.AccessRecordFindReq;
|
import org.dromara.sis.sdk.e8.domain.accessControl.req.AccessRecordFindReq;
|
||||||
@ -18,7 +18,6 @@ import org.dromara.sis.sdk.e8.domain.accessControl.res.CustomerAuthFindRes;
|
|||||||
import org.dromara.sis.sdk.e8.utils.E8ApiUtil;
|
import org.dromara.sis.sdk.e8.utils.E8ApiUtil;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
@ -29,7 +28,7 @@ import java.util.Map;
|
|||||||
*/
|
*/
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@Service
|
@Service
|
||||||
@DubboService
|
@RequiredArgsConstructor
|
||||||
public class AccessControlServiceImpl implements AccessControlService {
|
public class AccessControlServiceImpl implements AccessControlService {
|
||||||
|
|
||||||
// 远程开门
|
// 远程开门
|
||||||
@ -44,8 +43,8 @@ public class AccessControlServiceImpl implements AccessControlService {
|
|||||||
// 获取人员权限分页列表
|
// 获取人员权限分页列表
|
||||||
private static final String GET_PAGE_PERSON_AUTHORIZATION_PAGE_LIST = "/api/E8Door/man-person-device-finally/get-page-list";
|
private static final String GET_PAGE_PERSON_AUTHORIZATION_PAGE_LIST = "/api/E8Door/man-person-device-finally/get-page-list";
|
||||||
|
|
||||||
@Resource
|
|
||||||
private E8ApiUtil e8ApiUtil;
|
private final E8ApiUtil e8ApiUtil;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 远程开门
|
* 远程开门
|
||||||
@ -61,6 +60,8 @@ public class AccessControlServiceImpl implements AccessControlService {
|
|||||||
// 调用第三方API进行开门操作,传入处理后的参数和指定的API端点
|
// 调用第三方API进行开门操作,传入处理后的参数和指定的API端点
|
||||||
ApiResp apiResp = e8ApiUtil.doPost(params, REMOTE_OPEN_DOOR);
|
ApiResp apiResp = e8ApiUtil.doPost(params, REMOTE_OPEN_DOOR);
|
||||||
|
|
||||||
|
if (!apiResp.getSuccess()) log.error("调用E8远程开门失败,errorMsg:{}", apiResp);
|
||||||
|
|
||||||
// 返回API调用是否成功的结果
|
// 返回API调用是否成功的结果
|
||||||
return apiResp.getSuccess();
|
return apiResp.getSuccess();
|
||||||
}
|
}
|
||||||
@ -85,6 +86,7 @@ public class AccessControlServiceImpl implements AccessControlService {
|
|||||||
ApiResp apiResp = e8ApiUtil.doPost(params, GET_PAGE_ACCESS_RECORD_PAGE_LIST);
|
ApiResp apiResp = e8ApiUtil.doPost(params, GET_PAGE_ACCESS_RECORD_PAGE_LIST);
|
||||||
// 如果API响应不成功,则返回null
|
// 如果API响应不成功,则返回null
|
||||||
if (!apiResp.getSuccess()) {
|
if (!apiResp.getSuccess()) {
|
||||||
|
log.error("调用E8获取通行记录分页列表失败,errorMsg:{}", apiResp);
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
// 将API响应的结果转换为JSON字符串,再转换为Map对象
|
// 将API响应的结果转换为JSON字符串,再转换为Map对象
|
||||||
|
@ -5,8 +5,8 @@ import cn.hutool.core.lang.TypeReference;
|
|||||||
import cn.hutool.json.JSONUtil;
|
import cn.hutool.json.JSONUtil;
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.dubbo.config.annotation.DubboService;
|
|
||||||
import org.dromara.sis.sdk.e8.CustomerService;
|
import org.dromara.sis.sdk.e8.CustomerService;
|
||||||
import org.dromara.sis.sdk.e8.domain.ApiResp;
|
import org.dromara.sis.sdk.e8.domain.ApiResp;
|
||||||
import org.dromara.sis.sdk.e8.domain.QueryDto;
|
import org.dromara.sis.sdk.e8.domain.QueryDto;
|
||||||
@ -18,7 +18,6 @@ import org.dromara.sis.sdk.e8.domain.custom.res.CustomFindRes;
|
|||||||
import org.dromara.sis.sdk.e8.utils.E8ApiUtil;
|
import org.dromara.sis.sdk.e8.utils.E8ApiUtil;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
@ -29,7 +28,7 @@ import java.util.Map;
|
|||||||
*/
|
*/
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@Service
|
@Service
|
||||||
@DubboService
|
@RequiredArgsConstructor
|
||||||
public class CustomerServiceImpl implements CustomerService {
|
public class CustomerServiceImpl implements CustomerService {
|
||||||
private final static String CUSTOMER_GET_PAGE_LIST = "/api/E8/customer/get-page-list";
|
private final static String CUSTOMER_GET_PAGE_LIST = "/api/E8/customer/get-page-list";
|
||||||
private final static String CUSTOMER_GET_FIRST_OR_DEFAULT = "/api/E8/customer/get-first-or-default";
|
private final static String CUSTOMER_GET_FIRST_OR_DEFAULT = "/api/E8/customer/get-first-or-default";
|
||||||
@ -37,8 +36,8 @@ public class CustomerServiceImpl implements CustomerService {
|
|||||||
private final static String CUSTOMER_UPDATE = "/api/E8/customer/{id}/update";
|
private final static String CUSTOMER_UPDATE = "/api/E8/customer/{id}/update";
|
||||||
private final static String CUSTOMER_DELETE = "/api/E8/customer/{id}";
|
private final static String CUSTOMER_DELETE = "/api/E8/customer/{id}";
|
||||||
|
|
||||||
@Resource
|
|
||||||
private E8ApiUtil e8ApiUtil;
|
private final E8ApiUtil e8ApiUtil;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询单个人员信息
|
* 查询单个人员信息
|
||||||
@ -56,7 +55,7 @@ public class CustomerServiceImpl implements CustomerService {
|
|||||||
|
|
||||||
// 检查API调用是否成功
|
// 检查API调用是否成功
|
||||||
if (!apiResp.getSuccess()) {
|
if (!apiResp.getSuccess()) {
|
||||||
log.info("E8查询人员信息失败 errorMsg:{}", apiResp);
|
log.error("E8查询人员信息失败 errorMsg:{}", apiResp);
|
||||||
// 如果API调用失败,返回null
|
// 如果API调用失败,返回null
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
@ -86,7 +85,7 @@ public class CustomerServiceImpl implements CustomerService {
|
|||||||
|
|
||||||
|
|
||||||
if (!apiResp.getSuccess()) {
|
if (!apiResp.getSuccess()) {
|
||||||
log.info("E8人员信息分页查询 errorMsg:{}", apiResp);
|
log.error("E8人员信息分页查询 errorMsg:{}", apiResp);
|
||||||
// 如果API响应不成功,返回null
|
// 如果API响应不成功,返回null
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
@ -121,7 +120,7 @@ public class CustomerServiceImpl implements CustomerService {
|
|||||||
|
|
||||||
// 检查API调用是否成功
|
// 检查API调用是否成功
|
||||||
if (!apiResp.getSuccess()) {
|
if (!apiResp.getSuccess()) {
|
||||||
log.info("E8新增人员信息失败 errorMsg:{}", apiResp);
|
log.error("E8新增人员信息失败 errorMsg:{}", apiResp);
|
||||||
// 如果API调用失败,返回null
|
// 如果API调用失败,返回null
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
@ -147,6 +146,8 @@ public class CustomerServiceImpl implements CustomerService {
|
|||||||
// 调用API工具类发送POST请求,并获取API响应对象
|
// 调用API工具类发送POST请求,并获取API响应对象
|
||||||
ApiResp apiResp = e8ApiUtil.doPost(params, api);
|
ApiResp apiResp = e8ApiUtil.doPost(params, api);
|
||||||
|
|
||||||
|
if (!apiResp.getSuccess()) log.error("E8人员信息修改失败 errorMsg:{}", apiResp);
|
||||||
|
|
||||||
// 返回API调用是否成功的标志
|
// 返回API调用是否成功的标志
|
||||||
return apiResp.getSuccess();
|
return apiResp.getSuccess();
|
||||||
}
|
}
|
||||||
@ -165,6 +166,8 @@ public class CustomerServiceImpl implements CustomerService {
|
|||||||
// 调用API工具类的 doGetOrDel 方法发送GET或DELETE请求,并获取响应结果
|
// 调用API工具类的 doGetOrDel 方法发送GET或DELETE请求,并获取响应结果
|
||||||
ApiResp apiResp = e8ApiUtil.doGetOrDel(api, null, true);
|
ApiResp apiResp = e8ApiUtil.doGetOrDel(api, null, true);
|
||||||
|
|
||||||
|
if (!apiResp.getSuccess()) log.error("E8删除人员信息失败 errorMsg:{}", apiResp);
|
||||||
|
|
||||||
// 返回API请求是否成功的标志
|
// 返回API请求是否成功的标志
|
||||||
return apiResp.getSuccess();
|
return apiResp.getSuccess();
|
||||||
}
|
}
|
||||||
|
@ -3,8 +3,8 @@ package org.dromara.sis.sdk.e8.impl;
|
|||||||
import cn.hutool.core.bean.BeanUtil;
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
import cn.hutool.core.lang.TypeReference;
|
import cn.hutool.core.lang.TypeReference;
|
||||||
import cn.hutool.json.JSONUtil;
|
import cn.hutool.json.JSONUtil;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.dubbo.config.annotation.DubboService;
|
|
||||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||||
import org.dromara.sis.sdk.e8.DoorDeviceService;
|
import org.dromara.sis.sdk.e8.DoorDeviceService;
|
||||||
import org.dromara.sis.sdk.e8.domain.ApiResp;
|
import org.dromara.sis.sdk.e8.domain.ApiResp;
|
||||||
@ -17,7 +17,6 @@ import org.dromara.sis.sdk.e8.domain.QueryDto;
|
|||||||
import org.dromara.sis.sdk.e8.utils.E8ApiUtil;
|
import org.dromara.sis.sdk.e8.utils.E8ApiUtil;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
@ -28,7 +27,7 @@ import java.util.Map;
|
|||||||
*/
|
*/
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@Service
|
@Service
|
||||||
@DubboService
|
@RequiredArgsConstructor
|
||||||
public class DoorDeviceServiceImpl implements DoorDeviceService {
|
public class DoorDeviceServiceImpl implements DoorDeviceService {
|
||||||
|
|
||||||
private final static String DOOR_DEVICE_GET_PAGE_LIST = "/api/e8door/man-device-info/get-page-list";
|
private final static String DOOR_DEVICE_GET_PAGE_LIST = "/api/e8door/man-device-info/get-page-list";
|
||||||
@ -37,8 +36,8 @@ public class DoorDeviceServiceImpl implements DoorDeviceService {
|
|||||||
private final static String DOOR_DEVICE_UPDATE = "/api/E8Door/man-device-info/{id}/update";
|
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 DOOR_DEVICE_DELETE = "/api/E8Door/man-device-info/{id}";
|
||||||
|
|
||||||
@Resource
|
|
||||||
private E8ApiUtil e8ApiUtil;
|
private final E8ApiUtil e8ApiUtil;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询门禁信息
|
* 查询门禁信息
|
||||||
|
@ -1,12 +1,149 @@
|
|||||||
package org.dromara.sis.sdk.e8.impl;
|
package org.dromara.sis.sdk.e8.impl;
|
||||||
|
|
||||||
import lombok.Data;
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.dromara.sis.sdk.e8.VoucherControlService;
|
||||||
|
import org.dromara.sis.sdk.e8.domain.ApiResp;
|
||||||
|
import org.dromara.sis.sdk.e8.domain.voucher.req.CancelVoucherReq;
|
||||||
|
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.dromara.sis.sdk.e8.utils.E8ApiUtil;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author lsm
|
* @author lsm
|
||||||
* @apiNote VoucherControlServiceImpl
|
* @apiNote VoucherControlServiceImpl
|
||||||
* @since 2025/6/25
|
* @since 2025/6/25
|
||||||
*/
|
*/
|
||||||
@Data
|
@Slf4j
|
||||||
public class VoucherControlServiceImpl {
|
@Service
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
public class VoucherControlServiceImpl implements VoucherControlService {
|
||||||
|
|
||||||
|
private static final String ISSUANCE_VOUCHER = "/api/E8/voucher/issue-voucher";
|
||||||
|
private static final String ISSUANCE_VOUCHER_MANY = "/api/E8/voucher/issue-voucher-many";
|
||||||
|
private static final String OPERATE_VOUCHER = "/api/E8/voucher/operate-many";
|
||||||
|
private static final String CHANGE_CARD = "/api/E8/voucher/change-card";
|
||||||
|
private static final String CANCEL_VOUCHER = "/api/E8/voucher/cancel-voucher";
|
||||||
|
|
||||||
|
private final E8ApiUtil e8ApiUtil;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 发行凭证
|
||||||
|
*
|
||||||
|
* @param req 入参
|
||||||
|
* @return 是否成功
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public Boolean issueVoucher(IssueVoucherReq req) {
|
||||||
|
// 封装入参
|
||||||
|
Map<String, Object> params = BeanUtil.beanToMap(req);
|
||||||
|
|
||||||
|
// 调用API
|
||||||
|
ApiResp apiResp = e8ApiUtil.doPost(params, ISSUANCE_VOUCHER);
|
||||||
|
|
||||||
|
if (!apiResp.getSuccess()) log.error("E8发行凭证失败,errorMsg:{}", apiResp);
|
||||||
|
|
||||||
|
return apiResp.getSuccess();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 批量发行凭证
|
||||||
|
*
|
||||||
|
* @param req 凭证数据
|
||||||
|
* @return Boolean
|
||||||
|
*/
|
||||||
|
public Boolean issueVoucherMany(List<IssueVoucherReq> req) {
|
||||||
|
// 封装入参
|
||||||
|
Map<String, Object> params = new HashMap<>();
|
||||||
|
params.put("", req);
|
||||||
|
|
||||||
|
// 调用API
|
||||||
|
ApiResp apiResp = e8ApiUtil.doPost(params, ISSUANCE_VOUCHER_MANY);
|
||||||
|
|
||||||
|
if (!apiResp.getSuccess()) log.error("E8批量发行凭证失败,errorMsg:{}", apiResp);
|
||||||
|
|
||||||
|
return apiResp.getSuccess();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 操作凭证
|
||||||
|
*
|
||||||
|
* @param req 入参
|
||||||
|
* @return Boolean
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public Boolean operateVoucher(OperateVoucherReq req) {
|
||||||
|
// 封装入参
|
||||||
|
Map<String, Object> params = BeanUtil.beanToMap(req);
|
||||||
|
|
||||||
|
// 调用API
|
||||||
|
ApiResp apiResp = e8ApiUtil.doPost(params, OPERATE_VOUCHER);
|
||||||
|
|
||||||
|
if (!apiResp.getSuccess()) log.error("E8操作凭证失败,errorMsg:{}", apiResp);
|
||||||
|
|
||||||
|
return apiResp.getSuccess();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 换卡补卡
|
||||||
|
*
|
||||||
|
* @param req 入参
|
||||||
|
* @return Boolean
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public Boolean changeCard(ChangeCardReq req) {
|
||||||
|
// 封装入参
|
||||||
|
Map<String, Object> params = BeanUtil.beanToMap(req);
|
||||||
|
|
||||||
|
// 调用API
|
||||||
|
ApiResp apiResp = e8ApiUtil.doPost(params, CHANGE_CARD);
|
||||||
|
|
||||||
|
if (!apiResp.getSuccess()) log.error("E8换卡补卡失败,errorMsg:{}", apiResp);
|
||||||
|
|
||||||
|
return apiResp.getSuccess();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 注销人员凭证
|
||||||
|
*
|
||||||
|
* @param req 入参
|
||||||
|
* @return Boolean
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public Boolean cancelVoucher(CancelVoucherReq req) {
|
||||||
|
Map<String, Object> params = new HashMap<>();
|
||||||
|
params.put("", req.getIds());
|
||||||
|
|
||||||
|
ApiResp apiResp = e8ApiUtil.doPost(params, CANCEL_VOUCHER);
|
||||||
|
|
||||||
|
if (!apiResp.getSuccess()) log.error("E8注销人员凭证失败,errorMsg:{}", apiResp);
|
||||||
|
|
||||||
|
return apiResp.getSuccess();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 上传人脸
|
||||||
|
*
|
||||||
|
* @param imageByte 入参
|
||||||
|
* @return imageUrl 人脸图片地址
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public String uploadFace(byte[] imageByte) {
|
||||||
|
|
||||||
|
ApiResp apiResp = e8ApiUtil.doFaceImgUpload(imageByte);
|
||||||
|
|
||||||
|
if (!apiResp.getSuccess()) {
|
||||||
|
log.error("上传人脸图片失败,errorMsg:{}", apiResp);
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
return apiResp.getMessage();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user