Browse Source

添加自定义用户密码,卡片,指纹管理

liu 1 year ago
parent
commit
6754bee3e3

+ 27 - 0
src/main/java/com/template/api/UnlockingCustomControllerAPI.java

@@ -0,0 +1,27 @@
+package com.template.api;
+
+import com.template.model.dto.CustomKeyCardDto;
+import com.template.model.dto.CustomKeyFingerprintDto;
+import com.template.model.dto.CustomKeyPassWordDto;
+import com.template.model.result.CommonResult;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+@RequestMapping("/auto/unlocking-custom")
+public interface UnlockingCustomControllerAPI {
+
+    @PostMapping("/savePassWord")
+    @ApiOperation(value = "密码管理", notes = "密码管理", httpMethod = "PSOT")
+    CommonResult saveCustomPassWord(@RequestBody CustomKeyPassWordDto dto);
+
+    @PostMapping("/saveCard")
+    @ApiOperation(value = "卡片管理", notes = "卡片管理", httpMethod = "PSOT")
+    CommonResult saveCustomCard(@RequestBody CustomKeyCardDto dto);
+
+    @PostMapping("/saveFingerprint")
+    @ApiOperation(value = "指纹管理", notes = "指纹管理", httpMethod = "PSOT")
+    CommonResult saveCustomFingerprint(@RequestBody CustomKeyFingerprintDto dto);
+
+}

File diff suppressed because it is too large
+ 133 - 0
src/main/java/com/template/controller/PasswordIssController.java


+ 1 - 2
src/main/java/com/template/controller/UnlockingAdminController.java

@@ -96,7 +96,6 @@ public class UnlockingAdminController implements UnlockingAdminControllerAPI {
          */
          */
         try {
         try {
 
 
-
             unlockingAdmin = passwordIssController.savePassWord(keyPassWordDto);
             unlockingAdmin = passwordIssController.savePassWord(keyPassWordDto);
             if (ObjectUtils.isEmpty(unlockingAdmin)) {
             if (ObjectUtils.isEmpty(unlockingAdmin)) {
                 return CommonResult.fail("该密码已存在,请更换");
                 return CommonResult.fail("该密码已存在,请更换");
@@ -237,7 +236,7 @@ public class UnlockingAdminController implements UnlockingAdminControllerAPI {
             DateTimeFormatter dateTimeFormatter1 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
             DateTimeFormatter dateTimeFormatter1 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
             operatingRecord.setDataTime(LocalDateTime.now().format(dateTimeFormatter1));
             operatingRecord.setDataTime(LocalDateTime.now().format(dateTimeFormatter1));
             operatingRecord.setContent("姓名:" + byId.getUserName());
             operatingRecord.setContent("姓名:" + byId.getUserName());
-            operatingRecord.setType("添加卡片钥匙");
+            operatingRecord.setType("添加指纹钥匙");
 
 
 
 
             unlockingAdminService.save(unlockingAdmin);
             unlockingAdminService.save(unlockingAdmin);

+ 227 - 0
src/main/java/com/template/controller/UnlockingCustomController.java

@@ -0,0 +1,227 @@
+package com.template.controller;
+
+
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.template.api.UnlockingCustomControllerAPI;
+import com.template.common.utils.PasswordChecker;
+import com.template.model.dto.CustomKeyCardDto;
+import com.template.model.dto.CustomKeyFingerprintDto;
+import com.template.model.dto.CustomKeyPassWordDto;
+import com.template.model.pojo.*;
+import com.template.model.result.CommonResult;
+import com.template.services.*;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author ceshi
+ * @since 2024-07-26
+ */
+@RestController
+public class UnlockingCustomController implements UnlockingCustomControllerAPI {
+
+    @Autowired
+    UnlockingCustomService unlockingCustomService;
+
+    @Autowired
+    PermissionSettingService permissionSettingService;
+
+    @Autowired
+    HouseNumberService houseNumberService;
+
+    @Autowired
+    PasswordIssController passwordIssController;
+
+    @Autowired
+    AdminService adminService;
+
+    @Autowired
+    OperatingRecordService operatingRecordService;
+
+    @Override
+    public CommonResult saveCustomPassWord(CustomKeyPassWordDto dto) {
+        String permissionSettingId = dto.getPermissionSettingId();
+        PermissionSetting permissionSetting = permissionSettingService.getById(permissionSettingId);
+        if (ObjectUtils.isEmpty(permissionSetting)) {
+            return CommonResult.fail("非法进入");
+        }
+//      判断该用户是否拥有权限
+        String houseTypeManagement = permissionSetting.getDoorLockManagement();
+        if (!"0".equals(houseTypeManagement) && !houseTypeManagement.contains("11")) {
+            return CommonResult.fail("此账号暂无该权限");
+        }
+
+//        监测密码是否符合要求
+        String passWord = dto.getPassWord();
+        if (!PasswordChecker.isValidPassword(passWord)) {
+            return CommonResult.fail("密码长度的一半不能是连续升序、倒序、一样的数字");
+        }
+
+        Admin admin = adminService.getById(dto.getAdminId());
+        if (ObjectUtils.isEmpty(admin)) {
+            return CommonResult.fail("该管理员不存在");
+        }
+
+        HouseNumber houseNumber = houseNumberService.getById(dto.getHouseNumberId());
+        if (ObjectUtils.isEmpty(houseNumber)) {
+            return CommonResult.fail("该房间不存在");
+        }
+
+        UnlockingCustom unlockingAdmin = null;
+        /**
+         * 缺少人的名字和
+         */
+        try {
+
+            unlockingAdmin = passwordIssController.saveCustomPassWord(dto);
+            if (ObjectUtils.isEmpty(unlockingAdmin)) {
+                return CommonResult.fail("该密码已存在,请更换");
+            }
+
+            unlockingAdmin.setName(dto.getUserName());
+            unlockingAdmin.setPhone(dto.getPhone());
+
+//        添加操作记录
+
+            OperatingRecord operatingRecord = new OperatingRecord();
+            operatingRecord.setRoomNumber(houseNumber.getRoomNumber());
+            operatingRecord.setHouseNumberId(houseNumber.getId());
+            operatingRecord.setOperatorName(admin.getName());
+            DateTimeFormatter dateTimeFormatter1 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+            operatingRecord.setDataTime(LocalDateTime.now().format(dateTimeFormatter1));
+            operatingRecord.setContent("姓名:" + dto.getUserName());
+            operatingRecord.setType("添加密码钥匙");
+
+
+            unlockingCustomService.save(unlockingAdmin);
+            operatingRecordService.save(operatingRecord);
+            return CommonResult.ok();
+        }catch (Exception e){
+            e.printStackTrace();
+//            删除锁
+            passwordIssController.deleteLockUser(unlockingAdmin.getLuid(),unlockingAdmin.getLockUserId());
+            return CommonResult.fail();
+        }
+
+    }
+
+    @Override
+    public CommonResult saveCustomCard(CustomKeyCardDto dto) {
+        String permissionSettingId = dto.getPermissionSettingId();
+        PermissionSetting permissionSetting = permissionSettingService.getById(permissionSettingId);
+        if (ObjectUtils.isEmpty(permissionSetting)) {
+            return CommonResult.fail("非法进入");
+        }
+//      判断该用户是否拥有权限
+        String houseTypeManagement = permissionSetting.getDoorLockManagement();
+        if (!"0".equals(houseTypeManagement) && !houseTypeManagement.contains("11")) {
+            return CommonResult.fail("此账号暂无该权限");
+        }
+
+        Admin admin = adminService.getById(dto.getAdminId());
+        if (ObjectUtils.isEmpty(admin)) {
+            return CommonResult.fail("该管理员不存在");
+        }
+        HouseNumber houseNumber = houseNumberService.getById(dto.getHouseNumberId());
+        if (ObjectUtils.isEmpty(houseNumber)) {
+            return CommonResult.fail("该房间不存在");
+        }
+
+
+        UnlockingCustom unlockingAdmin = null;
+
+        try {
+            unlockingAdmin = passwordIssController.addCustomCard(dto);
+
+            unlockingAdmin.setName(dto.getUserName());
+            unlockingAdmin.setPhone(dto.getPhone());
+
+//        添加操作记录
+
+            OperatingRecord operatingRecord = new OperatingRecord();
+
+            operatingRecord.setHouseNumberId(houseNumber.getId());
+            operatingRecord.setRoomNumber(houseNumber.getRoomNumber());
+            operatingRecord.setOperatorName(admin.getName());
+            DateTimeFormatter dateTimeFormatter1 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+            operatingRecord.setDataTime(LocalDateTime.now().format(dateTimeFormatter1));
+            operatingRecord.setContent("姓名:" + dto.getUserName());
+            operatingRecord.setType("添加卡片钥匙");
+
+
+            unlockingCustomService.save(unlockingAdmin);
+            operatingRecordService.save(operatingRecord);
+            return CommonResult.ok();
+
+        }catch (Exception e){
+            e.printStackTrace();
+//            删除锁
+            passwordIssController.deleteLockUser(unlockingAdmin.getLuid(),unlockingAdmin.getLockUserId());
+            return CommonResult.fail();
+        }
+    }
+
+    @Override
+    public CommonResult saveCustomFingerprint(CustomKeyFingerprintDto dto) {
+        String permissionSettingId = dto.getPermissionSettingId();
+        PermissionSetting permissionSetting = permissionSettingService.getById(permissionSettingId);
+        if (ObjectUtils.isEmpty(permissionSetting)) {
+            return CommonResult.fail("非法进入");
+        }
+//      判断该用户是否拥有权限
+        String houseTypeManagement = permissionSetting.getDoorLockManagement();
+        if (!"0".equals(houseTypeManagement) && !houseTypeManagement.contains("11")) {
+            return CommonResult.fail("此账号暂无该权限");
+        }
+
+        Admin admin = adminService.getById(dto.getAdminId());
+        if (ObjectUtils.isEmpty(admin)) {
+            return CommonResult.fail("该管理员不存在");
+        }
+        HouseNumber houseNumber = houseNumberService.getById(dto.getHouseNumberId());
+        if (ObjectUtils.isEmpty(houseNumber)) {
+            return CommonResult.fail("该房间不存在");
+        }
+
+
+        UnlockingCustom unlockingAdmin = null;
+
+        try {
+            unlockingAdmin = passwordIssController.addCustomFingerprintDto(dto);
+
+            unlockingAdmin.setName(dto.getUserName());
+            unlockingAdmin.setPhone(dto.getPhone());
+
+//        添加操作记录
+
+            OperatingRecord operatingRecord = new OperatingRecord();
+            operatingRecord.setHouseNumberId(houseNumber.getId());
+            operatingRecord.setRoomNumber(houseNumber.getRoomNumber());
+            operatingRecord.setOperatorName(admin.getName());
+            DateTimeFormatter dateTimeFormatter1 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+            operatingRecord.setDataTime(LocalDateTime.now().format(dateTimeFormatter1));
+            operatingRecord.setContent("姓名:" + dto.getUserName());
+            operatingRecord.setType("添加指纹钥匙");
+
+
+            unlockingCustomService.save(unlockingAdmin);
+            operatingRecordService.save(operatingRecord);
+            return CommonResult.ok();
+
+        }catch (Exception e){
+            e.printStackTrace();
+//            删除锁
+            passwordIssController.deleteLockUser(unlockingAdmin.getLuid(),unlockingAdmin.getLockUserId());
+            return CommonResult.fail();
+        }
+    }
+
+}
+

+ 18 - 0
src/main/java/com/template/mapper/UnlockingCustomMapper.java

@@ -0,0 +1,18 @@
+package com.template.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.template.model.pojo.UnlockingCustom;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author ceshi
+ * @since 2024-07-26
+ */
+@Mapper
+public interface UnlockingCustomMapper extends BaseMapper<UnlockingCustom> {
+
+}

+ 53 - 0
src/main/java/com/template/model/dto/CustomKeyCardDto.java

@@ -0,0 +1,53 @@
+package com.template.model.dto;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+@Data
+public class CustomKeyCardDto { /**
+ * 锁设备ID
+ */
+@NotNull(message = "锁设备ID不能为空")
+public String luid;
+    /**
+     * 卡号
+     */
+    @NotNull(message = "卡号不能为空")
+    public String card;
+
+    @NotNull(message = "卡类型不能为空 0 卡片 1 身份证")
+    public int cardType;
+    /**
+     * 开始时间 时间戳
+     */
+    @NotNull(message = "开始时间不能为空")
+    public String startTime;
+
+    /**
+     * 结束时间 时间戳
+     */
+    @NotNull(message = "结束时间不能为空")
+    public String endTime;
+
+    //    房间号id
+    @NotNull(message = "房间号id不能为空")
+    private String houseNumberId;
+
+    @NotNull(message = "权限表id不能为空")
+    private String permissionSettingId;
+
+    @NotNull(message = "自定义手机号")
+    private String phone;
+    //    用户id
+    @NotNull(message = "自定义用户名称")
+    private String userName;
+
+    @NotNull(message = "管理员id不能为空")
+    private String adminId;
+
+    //    锁用户类型状态码(1:管理员用户,2:普通用户(永久),4:时效性用户,5:一次性时效密码用户,100:时效性无网络密码用户)
+    @NotNull(message = "锁用户类型状态码不能为空")
+    private String type;
+
+}

+ 51 - 0
src/main/java/com/template/model/dto/CustomKeyFingerprintDto.java

@@ -0,0 +1,51 @@
+package com.template.model.dto;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+@Data
+public class CustomKeyFingerprintDto {
+    /**
+     * 锁设备ID
+     */
+    @NotNull(message = "锁设备ID不能为空")
+    public String luid;
+    /**
+     * 指纹特征值
+     */
+    @NotNull(message = "指纹特征值不能为空")
+    public String fingerprintData;
+    /**
+     * 开始时间 时间戳
+     */
+    @NotNull(message = "开始时间不能为空")
+    public String startTime;
+
+    /**
+     * 结束时间 时间戳
+     */
+    @NotNull(message = "结束时间不能为空")
+    public String endTime;
+
+    //    房间号id
+    @NotNull(message = "房间号id不能为空")
+    private String houseNumberId;
+
+    @NotNull(message = "权限表id不能为空")
+    private String permissionSettingId;
+
+    @NotNull(message = "自定义手机号")
+    private String phone;
+    //    用户id
+    @NotNull(message = "自定义用户名称")
+    private String userName;
+
+    @NotNull(message = "管理员id不能为空")
+    private String adminId;
+
+    //    锁用户类型状态码(1:管理员用户,2:普通用户(永久),4:时效性用户,5:一次性时效密码用户,100:时效性无网络密码用户)
+    @NotNull(message = "锁用户类型状态码不能为空")
+    private String type;
+
+}

+ 49 - 0
src/main/java/com/template/model/dto/CustomKeyPassWordDto.java

@@ -0,0 +1,49 @@
+package com.template.model.dto;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+@Data
+public class CustomKeyPassWordDto {
+    //    权限表id
+    @NotNull(message = "权限表id不能为空")
+    private String permissionSettingId;
+
+
+    //    房间号id
+    @NotNull(message = "房间号id不能为空")
+    private String houseNumberId;
+
+    //    开始时间
+    @NotNull(message = "开始时间不能为空")
+    private String startTime;
+
+    //    结束时间
+    @NotNull(message = "结束时间不能为空")
+    private String endTime;
+
+//    手机号
+    @NotNull(message = "自定义手机号")
+    private String phone;
+
+    //    名称
+    @NotNull(message = "定义用户名称")
+    private String userName;
+
+    @NotNull(message = "管理员id不能为空")
+    private String adminId;
+
+
+    //    设备id
+    @NotNull(message = "设备id不能为空")
+    private String equipmentType;
+
+    //    设置的密码
+    @NotNull(message = "密码不能为空")
+    private String passWord;
+
+    //    锁用户类型状态码(1:管理员用户,2:普通用户(永久),4:时效性用户,5:一次性时效密码用户,100:时效性无网络密码用户)
+    @NotNull(message = "锁用户类型状态码不能为空")
+    private String type;
+}

+ 84 - 0
src/main/java/com/template/model/pojo/UnlockingCustom.java

@@ -0,0 +1,84 @@
+package com.template.model.pojo;
+
+import com.baomidou.mybatisplus.annotation.*;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author ceshi
+ * @since 2024-07-26
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value="UnlockingCustom对象", description="")
+public class UnlockingCustom implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "自定义添加钥匙")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "名字")
+    private String name;
+
+    @ApiModelProperty(value = "手机号")
+    private String phone;
+
+    @ApiModelProperty(value = "房间号id")
+    private String houseNumberId;
+
+    @ApiModelProperty(value = "类型(1:管理员用户,2:普通用户(永久),4:时效性用户,5:一次性时效密码用户,100:时效性无网络密码用户)")
+    private String type;
+
+    @ApiModelProperty(value = "锁用户id(每次生成密码/卡片/指纹时都会产生)")
+    private String lockUserId;
+
+    @ApiModelProperty(value = "锁设备UID")
+    private String luid;
+
+    @ApiModelProperty(value = "开锁的方式(1.密码,2.卡片,3.指纹)")
+    private String lockStatus;
+
+    @ApiModelProperty(value = "开锁密码")
+    private String passWord;
+
+    @ApiModelProperty(value = "开始时间")
+    private String startTime;
+
+    @ApiModelProperty(value = "结束时间")
+    private String endTime;
+
+    @ApiModelProperty(value = "创建时间")
+    @TableField(fill = FieldFill.INSERT)
+    private String createTime;
+
+    @ApiModelProperty(value = "更新时间")
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private String updateTime;
+
+    @ApiModelProperty(value = "创建人员")
+    @TableField(fill = FieldFill.INSERT)
+    private String createUser;
+
+    @ApiModelProperty(value = "更新人员")
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private String updateUser;
+
+    @ApiModelProperty(value = "逻辑删除 未删除:0;删除:1")
+    @TableField(fill = FieldFill.INSERT)
+    @TableLogic
+    private Integer deleted;
+
+
+}

+ 16 - 0
src/main/java/com/template/services/UnlockingCustomService.java

@@ -0,0 +1,16 @@
+package com.template.services;
+
+import com.template.model.pojo.UnlockingCustom;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author ceshi
+ * @since 2024-07-26
+ */
+public interface UnlockingCustomService extends IService<UnlockingCustom> {
+
+}

+ 20 - 0
src/main/java/com/template/services/impl/UnlockingCustomServiceImpl.java

@@ -0,0 +1,20 @@
+package com.template.services.impl;
+
+import com.template.model.pojo.UnlockingCustom;
+import com.template.mapper.UnlockingCustomMapper;
+import com.template.services.UnlockingCustomService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author ceshi
+ * @since 2024-07-26
+ */
+@Service
+public class UnlockingCustomServiceImpl extends ServiceImpl<UnlockingCustomMapper, UnlockingCustom> implements UnlockingCustomService {
+
+}

+ 5 - 0
src/main/resources/mapper/template/UnlockingCustomMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.template.mapper.UnlockingCustomMapper">
+
+</mapper>