From 8b340c9e950b9c3b2ec363c75db6bd018b959da5 Mon Sep 17 00:00:00 2001 From: zcxlsm Date: Mon, 14 Jul 2025 23:15:29 +0800 Subject: [PATCH] =?UTF-8?q?refactor(sis):=20=E6=8E=88=E6=9D=83=E8=AE=B0?= =?UTF-8?q?=E5=BD=95=E6=A8=A1=E5=9D=97=E9=87=8D=E6=96=B0=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/SisAuthRecordController.java | 65 +--- .../org/dromara/sis/domain/SisAuthRecord.java | 29 +- .../sis/domain/bo/SisAuthRecordBo.java | 44 +-- .../sis/domain/vo/SisAuthRecordVo.java | 49 +-- .../sis/mapper/SisAuthRecordMapper.java | 4 +- .../sis/service/ISisAuthRecordService.java | 39 +-- .../impl/SisAuthRecordServiceImpl.java | 288 ++---------------- 7 files changed, 99 insertions(+), 419 deletions(-) diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/controller/SisAuthRecordController.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/controller/SisAuthRecordController.java index 11884c91..1611e080 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/controller/SisAuthRecordController.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/controller/SisAuthRecordController.java @@ -1,37 +1,33 @@ package org.dromara.sis.controller; -import cn.dev33.satoken.annotation.SaCheckPermission; -import jakarta.servlet.http.HttpServletResponse; -import jakarta.validation.constraints.NotEmpty; -import jakarta.validation.constraints.NotNull; +import java.util.List; + import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.core.domain.R; import org.dromara.common.core.validate.AddGroup; import org.dromara.common.core.validate.EditGroup; -import org.dromara.common.excel.utils.ExcelUtil; -import org.dromara.common.idempotent.annotation.RepeatSubmit; -import org.dromara.common.log.annotation.Log; import org.dromara.common.log.enums.BusinessType; -import org.dromara.common.mybatis.core.page.PageQuery; -import org.dromara.common.mybatis.core.page.TableDataInfo; -import org.dromara.common.web.core.BaseController; -import org.dromara.sis.domain.SisAuthRecord; -import org.dromara.sis.domain.bo.AuthLibBo; -import org.dromara.sis.domain.bo.SingleAuthRecordBo; -import org.dromara.sis.domain.bo.SisAuthRecordBo; +import org.dromara.common.excel.utils.ExcelUtil; import org.dromara.sis.domain.vo.SisAuthRecordVo; +import org.dromara.sis.domain.bo.SisAuthRecordBo; import org.dromara.sis.service.ISisAuthRecordService; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.*; - -import java.util.List; +import org.dromara.common.mybatis.core.page.TableDataInfo; /** * 授权记录 * 前端访问路由地址为:/sis/authRecord * * @author lsm - * @since 2025-06-28 + * @since 2025-07-14 */ @Validated @RequiredArgsConstructor @@ -79,23 +75,11 @@ public class SisAuthRecordController extends BaseController { @SaCheckPermission("sis:authRecord:add") @Log(title = "授权记录", businessType = BusinessType.INSERT) @RepeatSubmit() - @PostMapping("/add") + @PostMapping() public R add(@Validated(AddGroup.class) @RequestBody SisAuthRecordBo bo) { return toAjax(sisAuthRecordService.insertByBo(bo)); } - /** - * 新增授权记录 - */ - @SaCheckPermission("sis:authRecord:add") - @Log(title = "单个人像授权", businessType = BusinessType.INSERT) - @RepeatSubmit() - @PostMapping("/auth/single") - public R singleAuth(@Validated(AddGroup.class) @RequestBody SingleAuthRecordBo bo) { - return toAjax(sisAuthRecordService.singleAuth(bo)); - } - - /** * 修改授权记录 */ @@ -119,21 +103,4 @@ public class SisAuthRecordController extends BaseController { @PathVariable("ids") Long[] ids) { return toAjax(sisAuthRecordService.deleteWithValidByIds(List.of(ids), true)); } - - /** - * 删除授权记录 - * - * @param bo 授权信息 - */ - @SaCheckPermission("sis:authRecord:authLib") - @Log(title = "人员库授权", businessType = BusinessType.INSERT) - @PostMapping("/authLib") - public R authLib(@Validated @RequestBody AuthLibBo bo) { - return toAjax(sisAuthRecordService.authLib(bo)); - } - - @GetMapping("/authDevice/{libId}") - public R> queryAuthDevice(@PathVariable("libId") String libId) { - return R.ok(sisAuthRecordService.queryAuthDevice(libId)); - } } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisAuthRecord.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisAuthRecord.java index 729b027d..9588f9af 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisAuthRecord.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisAuthRecord.java @@ -11,7 +11,7 @@ import java.io.Serial; * 授权记录对象 sis_auth_record * * @author lsm - * @since 2025-06-28 + * @since 2025-07-14 */ @Data @EqualsAndHashCode(callSuper = true) @@ -33,29 +33,14 @@ public class SisAuthRecord extends TenantEntity { private Long libId; /** - * 图片id - */ - private Long imgId; - - /** - * 门禁id - */ - private Long acId; - - /** - * 设备id - */ - private Long eqbId; - - /* - 门id - */ - private Long doorId; - - /** - * 设备id + * 设备id(门禁/电梯) */ private Long deviceId; + /** + * 设备类型:1-门禁 2-电梯 + */ + private Integer deviceType; + } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisAuthRecordBo.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisAuthRecordBo.java index cb683c05..13fd3d4e 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisAuthRecordBo.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisAuthRecordBo.java @@ -1,21 +1,21 @@ package org.dromara.sis.domain.bo; -import io.github.linpeilie.annotations.AutoMapper; -import jakarta.validation.constraints.NotNull; -import lombok.Data; -import lombok.EqualsAndHashCode; +import org.dromara.sis.domain.SisAuthRecord; +import org.dromara.common.mybatis.core.domain.BaseEntity; import org.dromara.common.core.validate.AddGroup; import org.dromara.common.core.validate.EditGroup; -import org.dromara.common.mybatis.core.domain.BaseEntity; -import org.dromara.sis.domain.SisAuthRecord; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; -import java.util.List; +import java.util.Collection; /** * 授权记录业务对象 sis_auth_record * * @author lsm - * @since 2025-06-28 + * @since 2025-07-14 */ @Data @EqualsAndHashCode(callSuper = true) @@ -23,26 +23,26 @@ import java.util.List; public class SisAuthRecordBo extends BaseEntity { /** - * 图像库Id + * 主键id */ - @NotNull(message = "图像库Id不能为空", groups = {AddGroup.class, EditGroup.class}) + @NotNull(message = "主键id不能为空", groups = {EditGroup.class}) + private Long id; + + /** + * 图像库id + */ + @NotNull(message = "图像库id不能为空", groups = {AddGroup.class, EditGroup.class}) private Long libId; /** - * 图像id列表 + * 门禁idList */ - @NotNull(message = "图像id列表不能为空", groups = {AddGroup.class, EditGroup.class}) - private List imgIds; + @NotEmpty(message = "门禁idList不能为空", groups = {AddGroup.class, EditGroup.class}) + private Collection acIdList; /** - * 门禁id列表 + * 电梯idList */ - @NotNull(message = "门禁id列表能为空", groups = {AddGroup.class, EditGroup.class}) - private List acIds; - - /** - * 是否将图片下发到宇视盒子 - */ - private Boolean issue = false; - + @NotEmpty(message = "电梯idList不能为空", groups = {AddGroup.class, EditGroup.class}) + private Collection eleIdList; } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisAuthRecordVo.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisAuthRecordVo.java index 07a231a9..6b9d50ad 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisAuthRecordVo.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisAuthRecordVo.java @@ -3,19 +3,20 @@ package org.dromara.sis.domain.vo; import org.dromara.sis.domain.SisAuthRecord; import cn.idev.excel.annotation.ExcelIgnoreUnannotated; import cn.idev.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; import java.io.Serial; import java.io.Serializable; -import java.util.List; /** * 授权记录视图对象 sis_auth_record * * @author lsm - * @since 2025-06-28 + * @since 2025-07-14 */ @Data @ExcelIgnoreUnannotated @@ -32,41 +33,23 @@ public class SisAuthRecordVo implements Serializable { private Long id; /** - * 图像库Id + * 图像库id */ - @ExcelProperty(value = "图像库Id") + @ExcelProperty(value = "图像库id") private Long libId; /** - * 人像id - */ - @ExcelProperty(value = "人像id") - private Long imgId; - - /** - * 门禁id - */ - @ExcelProperty(value = "门禁id") - private Long acId; - - /** - * 设备id - */ - @ExcelProperty(value = "设备id") - private Long eqbId; - - /** - * E8权限ID - */ - private Long remoteAuthId; - - /* - 门id - */ - private Long doorId; - - /** - * 设备id + * 设备id(门禁/电梯) */ + @ExcelProperty(value = "设备id", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "门=禁/电梯") private Long deviceId; + + /** + * 设备类型:1-门禁 2-电梯 + */ + @ExcelProperty(value = "设备类型:1-门禁 2-电梯") + private Integer deviceType; + + } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/mapper/SisAuthRecordMapper.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/mapper/SisAuthRecordMapper.java index abfef87a..54f18483 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/mapper/SisAuthRecordMapper.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/mapper/SisAuthRecordMapper.java @@ -1,6 +1,5 @@ package org.dromara.sis.mapper; -import org.apache.ibatis.annotations.Param; import org.dromara.sis.domain.SisAuthRecord; import org.dromara.sis.domain.vo.SisAuthRecordVo; import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; @@ -9,9 +8,8 @@ import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; * 授权记录Mapper接口 * * @author lsm - * @date 2025-06-28 + * @since 2025-07-14 */ public interface SisAuthRecordMapper extends BaseMapperPlus { - SisAuthRecordVo checkAuth(@Param("personId") Integer personId,@Param("accessControlId") Long accessControlId); } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/ISisAuthRecordService.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/ISisAuthRecordService.java index c38079d5..b47a346c 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/ISisAuthRecordService.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/ISisAuthRecordService.java @@ -1,12 +1,9 @@ package org.dromara.sis.service; -import org.dromara.common.mybatis.core.page.PageQuery; -import org.dromara.common.mybatis.core.page.TableDataInfo; -import org.dromara.sis.domain.SisAuthRecord; -import org.dromara.sis.domain.bo.AuthLibBo; -import org.dromara.sis.domain.bo.SingleAuthRecordBo; -import org.dromara.sis.domain.bo.SisAuthRecordBo; import org.dromara.sis.domain.vo.SisAuthRecordVo; +import org.dromara.sis.domain.bo.SisAuthRecordBo; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; import java.util.Collection; import java.util.List; @@ -15,7 +12,7 @@ import java.util.List; * 授权记录Service接口 * * @author lsm - * @date 2025-06-28 + * @since 2025-07-14 */ public interface ISisAuthRecordService { @@ -68,32 +65,4 @@ public interface ISisAuthRecordService { * @return 是否删除成功 */ Boolean deleteWithValidByIds(Collection ids, Boolean isValid); - - /** - * 通过宇视图片id和门禁id校验此图像是否有通行权限 - * - * @param personId 人像id - * @param accessControlId 门禁id - * @return 返回授权记录 - */ - SisAuthRecordVo checkAuth(Integer personId, Long accessControlId); - - /** - * 单个人像授权 - * - * @param bo 授权信息 - * @return 是否授权成功 - */ - Boolean singleAuth(SingleAuthRecordBo bo); - - Boolean deleteByLibId(Long libId); - - Boolean authLib(AuthLibBo bo); - - /** - * 插叙库id授权的设备 - * @param libId 人像库id - * @return - */ - List queryAuthDevice(String libId); } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisAuthRecordServiceImpl.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisAuthRecordServiceImpl.java index 9b262c10..e9534c49 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisAuthRecordServiceImpl.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisAuthRecordServiceImpl.java @@ -1,66 +1,38 @@ package org.dromara.sis.service.impl; -import cn.hutool.core.collection.CollUtil; -import cn.hutool.core.img.ImgUtil; +import cn.hutool.core.lang.Assert; +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.apache.dubbo.config.annotation.DubboReference; -import org.dromara.common.core.utils.MapstructUtils; -import org.dromara.common.mybatis.core.page.PageQuery; -import org.dromara.common.mybatis.core.page.TableDataInfo; -import org.dromara.resource.api.RemoteFileService; -import org.dromara.sis.domain.SisAuthRecord; -import org.dromara.sis.domain.SisDeviceManage; -import org.dromara.sis.domain.bo.AuthLibBo; -import org.dromara.sis.domain.bo.SingleAuthRecordBo; +import org.springframework.stereotype.Service; import org.dromara.sis.domain.bo.SisAuthRecordBo; import org.dromara.sis.domain.vo.SisAuthRecordVo; +import org.dromara.sis.domain.SisAuthRecord; import org.dromara.sis.mapper.SisAuthRecordMapper; -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.unview.UnViewAiBoxApi; -import org.dromara.sis.service.*; -import org.springframework.stereotype.Service; +import org.dromara.sis.service.ISisAuthRecordService; import org.springframework.transaction.annotation.Transactional; -import java.io.ByteArrayInputStream; -import java.io.ByteArrayOutputStream; -import java.io.IOException; -import java.util.Base64; -import java.util.Collection; import java.util.List; import java.util.Map; +import java.util.Collection; /** * 授权记录Service业务层处理 * * @author lsm - * @since 2025-06-28 + * @since 2025-07-14 */ @Slf4j @RequiredArgsConstructor @Service 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; - private final ISisPersonLibImgService sisPersonLibImgService; - private final ISisLibDeviceRefService sisLibDeviceRefService; - private final ISisAccessControlService sisAccessControlService; - private final ISisLibDeviceImgRefService sisLibDeviceImgRefService; - private final ISisDeviceManageService deviceManageService; - - @DubboReference - private final RemoteFileService remoteFileService; /** * 查询授权记录 @@ -82,7 +54,7 @@ public class SisAuthRecordServiceImpl implements ISisAuthRecordService { */ @Override public TableDataInfo queryPageList(SisAuthRecordBo bo, PageQuery pageQuery) { - LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + LambdaQueryWrapper lqw = buildQueryWrapper(bo); Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); return TableDataInfo.build(result); } @@ -116,184 +88,32 @@ public class SisAuthRecordServiceImpl implements ISisAuthRecordService { @Override @Transactional(rollbackFor = Exception.class) public Boolean insertByBo(SisAuthRecordBo bo) { -// List refVos = sisLibDeviceRefService.queryByLibIds(Collections.singleton(bo.getLibId())); -// Assert.notEmpty(refVos, "图像库与设备关联关系不存在"); -// List eqpIds = refVos.stream().map(SisLibDeviceRefVo::getEqpId).toList(); -// -// SisPersonLibVo libVo = sisPersonLibService.queryById(bo.getLibId()); -// Assert.notNull(libVo, "图像库不存在,id=" + (bo.getLibId())); -// -// List imgList = sisPersonLibImgService.queryListByIds(bo.getImgIds()); -// Assert.notEmpty(imgList, "图片不存在"); -// -// List acList = sisAccessControlService.queryListByIds(bo.getAcIds()); -// Assert.notEmpty(acList, "门禁设备不存在!"); -// -// -// try { -// log.info("开始对宇视盒子下发照片,图片:{}、设备:{}", bo.getImgIds(), eqpIds); -// for (SisPersonLibImgVo imgVo : imgList) { -// for (Long eqpId : eqpIds) { -// long eqp_lib_id; -// Integer eqp_lib_img_id; -// -// byte[] imageByte = remoteFileService.downloadToByteArray(imgVo.getImgOssId()); -// Assert.notNull(imageByte, "图片下载失败"); -// -// SisAccessControlDeviceVo vo = sisAccessControlDeviceService.queryById(eqpId); -// Assert.notNull(vo, "门禁控制设备不存在,id=" + eqpId); -// log.info(libVo .getLibType() == 1 ? "准备写入人像设备,code={}" : "准备写入工服设备,code={}", vo.getEqpNo()); -// -// UvModel.UvSystemInfo systemInfo = new UvModel.UvSystemInfo(); -// systemInfo.setAccount(vo.getEqpAccount()); -// systemInfo.setPassword(vo.getEqpPwd()); -// systemInfo.setIp(vo.getEqpIp()); -// systemInfo.setPort(vo.getEqpPort()); -// -// // 获取宇视线上库ID -// SisLibDeviceRefBo refBo = new SisLibDeviceRefBo(); -// refBo.setEqpId(eqpId); -// refBo.setLibId(libVo.getId()); -// List refVo = sisLibDeviceRefService.queryList(refBo); -// Assert.notNull(refVo, "系统库与设备库关联关系不存在!libId:{},eqpId:{}", libVo.getId(), eqpId); -// eqp_lib_id = refVo.get(0).getEqpLibId(); -// -// if (libVo.getLibType() == 1) { -// // 宇视添加人像 -// UvModel.AddPersonParams addPersonParams = new UvModel.AddPersonParams(); -// addPersonParams.setPerson_name(imgVo.getImgName()); -// addPersonParams.setImage_base64(base64Helper(imageByte)); -// addPersonParams.setLib_id(Math.toIntExact(eqp_lib_id)); -// addPersonParams.setSex(imgVo.getSex()); -// addPersonParams.setEmail(imgVo.getEmail()); -// addPersonParams.setTel(imgVo.getTel()); -// addPersonParams.setCertificate_type(imgVo.getCertificateType()); -// addPersonParams.setCertificate_no(imgVo.getCertificateNo()); -// addPersonParams.setBirth_date(imgVo.getBirthDate()); -// // 发起请求获取响应 -// UvModel.AddPersonResult addResult = unViewAiBoxApi.addPerson(systemInfo, addPersonParams); -// eqp_lib_img_id = addResult.getPerson_id(); -// -// } else { -// UvModel.WorkClothesInfo addResult = unViewAiBoxApi.addWorkClothes(systemInfo, Math.toIntExact(eqp_lib_id), base64Helper(imageByte)); -// eqp_lib_img_id = addResult.getWorkclothes_id(); -// } -// Assert.notNull(eqp_lib_img_id, "图片上传宇视盒子失败"); -// log.info("图片上传宇视盒子完成,eqp_lib_img_id = {}", eqp_lib_img_id); -// -// SisLibDeviceImgRefBo ref = new SisLibDeviceImgRefBo(); -// ref.setLibId(libVo.getId()); -// ref.setImgId(imgVo.getId()); -// ref.setEqpId(eqpId); -// ref.setEqpLibId(eqp_lib_id); -// ref.setEqpLibImgId(eqp_lib_img_id.longValue()); -// Boolean insert = sisLibDeviceImgRefService.insertByBo(ref); -// Assert.isTrue(insert, "写入图片关联关系表失败!"); -// -// } -// } -// log.info("图片开始下发完成!"); -// -// log.info("开始写入E8平台,图片:{}、门禁:{}", bo.getImgIds(), bo.getAcIds()); -// for (SisPersonLibImgVo imgVo : imgList) { -// byte[] imageByte = remoteFileService.downloadToByteArray(imgVo.getImgOssId()); -// Assert.notNull(imageByte, "图片下载失败"); -// -// log.info("E8平台上传图片,{}", imgVo.getId()); -// String url = e8VouchService.uploadFace(imageByte); -// Assert.notNull(url, "E8平台上传图片失败"); -// log.info("E8平台上传图片完成!"); -// -// log.info("E8平台发行凭证"); -// IssueVoucherReq req = new IssueVoucherReq(); -// // 34:普通用户卡 -// req.setCardType(34); -// // 70:人脸凭证 -// req.setVoucherType(70); -// // TODO 临时默认人员 -// req.setPersonID(539696740646981L); -// req.setTxtData(url); -// Long vId = e8VouchService.issueVoucher(req); -// Assert.notNull(vId, "E8平台发行凭证失败"); -// log.info("E8平台发行凭证完成!"); -// -// log.info("E8平台授权凭证"); -// // 查询E8授权门列表 -// List authDoorList = e8DoorDeviceService.getPageAuthDoorDeviceList(); -// Assert.notEmpty(authDoorList, "E8平台授权门列表为空"); -// -// // E8 授权列表 -// List authList = new ArrayList<>(acList.size()); -// // 授权记录 -// List recordList = new ArrayList<>(acList.size()); -// // E8授权门 -// AuthDoorDeviceFindRes authDoor = null; -// for (SisAccessControlVo sisAccessControlVo : acList) { -// if (sisAccessControlVo.getControlType() != 1 && sisAccessControlVo.getAccessType() != 2) { -// -// // 通过门禁ID匹配授权门 -// authDoor = authDoorList.stream().filter(item -> item.getDeviceId() == Long.parseLong(sisAccessControlVo.getOutCode())).findFirst().orElse(null); -// -// if (authDoor != null) { -// CustomerAuthAddReq.AuthGroupData door = new CustomerAuthAddReq.AuthGroupData(); -// door.setType(0); -// door.setGatewayType(1); -// // E8授权传入ID为门ID,非门禁ID -// door.setId(authDoor.getId()); -// authList.add(door); -// -// SisAuthRecord authRecord = new SisAuthRecord(); -// authRecord.setDoorId(authDoor.getId()); -// authRecord.setDeviceId(authDoor.getDeviceId()); -// authRecord.setLibId(imgVo.getLibId()); -// authRecord.setImgId(imgVo.getId()); -// authRecord.setAcId(sisAccessControlVo.getId()); -// recordList.add(authRecord); -// } -// } -// } -// -// CustomerAuthAddReq authReq = new CustomerAuthAddReq(); -// authReq.setAuthType(0); -// authReq.setScheduleId(1L); -// authReq.setPersonIds(Collections.singletonList(539696740646981L)); -// authReq.setStartTime("2025-06-25 11: 23: 39"); -// authReq.setEndTime("2025-07-25 11: 23: 39"); -// authReq.setAuthData(authList); -// Boolean auth = e8AccessControlService.addCustomerAuth(authReq); -// Assert.isTrue(auth, "E8平台授权失败"); -// log.info("E8平台授权完成!"); -// boolean insert = baseMapper.insertBatch(recordList); -// Assert.isTrue(insert, "写入E8关联关系表失败!"); -// } -// log.info("写入E8平台完成!"); -// -// } catch (Exception e) { -// throw new RuntimeException(e.getMessage()); -// } -// -// return true; - return true; - } + boolean flag = false; + log.info("开始写入门禁授权记录,acIds:{}", bo.getAcIdList()); + for (Long acId : bo.getAcIdList()) { + SisAuthRecord add = MapstructUtils.convert(bo, SisAuthRecord.class); + Assert.notNull(add, "数据处理失败"); - public String base64Helper(byte[] imageByte) throws IOException { - // 1. 将字节数组解码为BufferedImage对象 - ByteArrayInputStream bis = new ByteArrayInputStream(imageByte); + add.setDeviceType(1); + add.setDeviceId(acId); + flag = baseMapper.insert(add) > 0; + Assert.isTrue(flag, "写入门禁授权记录失败!"); + } + log.info("写入门禁授权记录完成"); - // 2. 将图片重新编码为JPG格式的字节数组 - ByteArrayOutputStream bos = new ByteArrayOutputStream(); + log.info("开始写入电梯授权记录,eleIds:{}", bo.getEleIdList()); + for (Long ele : bo.getEleIdList()) { + SisAuthRecord add = MapstructUtils.convert(bo, SisAuthRecord.class); + Assert.notNull(add, "数据处理失败"); - ImgUtil.convert(bis, "jpg", bos); + add.setDeviceType(2); + add.setDeviceId(ele); + flag = baseMapper.insert(add) > 0; + Assert.isTrue(flag, "写入电梯授权记录失败!"); + } + log.info("写入电梯授权记录完成"); - byte[] jpgBytes = bos.toByteArray(); - - // 3. 将JPG字节数组转为Base64字符串 - return Base64.getEncoder().encodeToString(jpgBytes); - } - - @Override - public Boolean singleAuth(SingleAuthRecordBo bo) { - return null; + return flag; } /** @@ -330,46 +150,4 @@ public class SisAuthRecordServiceImpl implements ISisAuthRecordService { } return baseMapper.deleteByIds(ids) > 0; } - - @Override - public SisAuthRecordVo checkAuth(Integer personId, Long accessControlId) { - return baseMapper.checkAuth(personId, accessControlId); - } - - @Override - public Boolean deleteByLibId(Long libId) { - LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); - lqw.eq(SisAuthRecord::getLibId, libId); - return baseMapper.delete(lqw) > 0; - } - - @Override - @Transactional(rollbackFor = Exception.class) - public Boolean authLib(AuthLibBo bo) { - if (CollUtil.isEmpty(bo.getDeviceIds())) { - return false; - } - // 每次授权先删除上一次授权信息 - deleteByLibId(bo.getLibId()); - // 过滤点不是设备的节点数据 - List ls = deviceManageService.queryByIds(bo.getDeviceIds()); - if (CollUtil.isEmpty(ls)) { - return false; - } - // 批量写入授权数据 - List list = ls.stream().map(item -> { - SisAuthRecord authRecord = new SisAuthRecord(); - authRecord.setDeviceId(item.getId()); - authRecord.setLibId(bo.getLibId()); - return authRecord; - }).toList(); - return baseMapper.insertBatch(list); - } - - @Override - public List queryAuthDevice(String libId) { - LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); - lqw.eq(SisAuthRecord::getLibId, libId); - return baseMapper.selectList(lqw); - } }