package com.template.controller; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.template.api.UnlockingAdminControllerAPI; import com.template.common.utils.PasswordChecker; import com.template.model.dto.KeyCardDto; import com.template.model.dto.KeyFingerprintDto; import com.template.model.dto.KeyPassWordDto; import com.template.model.dto.UpdateLockDto; 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.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.RestController; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.HashMap; /** *

* 前端控制器 *

* * @author ceshi * @since 2024-03-22 */ @RestController public class UnlockingAdminController implements UnlockingAdminControllerAPI { @Autowired UnlockingAdminService unlockingAdminService; @Autowired PermissionSettingService permissionSettingService; @Autowired UsersService usersService; @Autowired PasswordIssController passwordIssController; @Autowired AdminService adminService; @Autowired HouseNumberService houseNumberService; @Autowired OperatingRecordService operatingRecordService; @Override public CommonResult getPassWord() { String passWord = PasswordChecker.getPassWord(); HashMap map = new HashMap<>(); map.put("passWord",passWord); return CommonResult.ok(map); } @Override @Transactional(rollbackFor = Exception.class) public CommonResult savePassWord(KeyPassWordDto keyPassWordDto) { String permissionSettingId = keyPassWordDto.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 = keyPassWordDto.getPassWord(); if (!PasswordChecker.isValidPassword(passWord)) { return CommonResult.fail("密码长度的一半不能是连续升序、倒序、一样的数字"); } Admin admin = adminService.getById(keyPassWordDto.getAdminId()); if (ObjectUtils.isEmpty(admin)) { return CommonResult.fail("该管理员不存在"); } Admin byId = adminService.getById(keyPassWordDto.getUsersId()); if (ObjectUtils.isEmpty(admin)) { return CommonResult.fail("添加的用户不存在"); } HouseNumber houseNumber = houseNumberService.getById(keyPassWordDto.getHouseNumberId()); if (ObjectUtils.isEmpty(houseNumber)) { return CommonResult.fail("该房间不存在"); } // String usersId = keyPassWordDto.getUsersId(); // Users byId = usersService.getById(usersId); // if (ObjectUtils.isEmpty(byId)) { // return CommonResult.fail("无该用户"); // } UnlockingAdmin unlockingAdmin = null; /** * 缺少人的名字和 */ try { unlockingAdmin = passwordIssController.savePassWord(keyPassWordDto); if (ObjectUtils.isEmpty(unlockingAdmin)) { return CommonResult.fail("参数异常"); } unlockingAdmin.setName(byId.getName()); unlockingAdmin.setPhone(byId.getPhoneNumber()); // 添加操作记录 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("姓名:" + byId.getName()); operatingRecord.setType("添加密码钥匙"); unlockingAdminService.save(unlockingAdmin); operatingRecordService.save(operatingRecord); return CommonResult.ok(); }catch (Exception e){ e.printStackTrace(); // 删除锁 passwordIssController.deleteLockUser(unlockingAdmin.getLuid(),unlockingAdmin.getLockUserId()); return CommonResult.fail(); } } @Override @Transactional(rollbackFor = Exception.class) public CommonResult saveCard(KeyCardDto keyCardDto) { String permissionSettingId = keyCardDto.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(keyCardDto.getAdminId()); if (ObjectUtils.isEmpty(admin)) { return CommonResult.fail("该管理员不存在"); } Admin byId = adminService.getById(keyCardDto.getUsersId()); if (ObjectUtils.isEmpty(admin)) { return CommonResult.fail("添加的用户不存在"); } HouseNumber houseNumber = houseNumberService.getById(keyCardDto.getHouseNumberId()); if (ObjectUtils.isEmpty(houseNumber)) { return CommonResult.fail("该房间不存在"); } // String usersId = keyCardDto.getUsersId(); // Users byId = usersService.getById(usersId); // if (ObjectUtils.isEmpty(byId)) { // return CommonResult.fail("无该用户"); // } UnlockingAdmin unlockingAdmin = null; try { unlockingAdmin = passwordIssController.addCard(keyCardDto); unlockingAdmin.setName(byId.getName()); unlockingAdmin.setPhone(byId.getPhoneNumber()); // 添加操作记录 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("姓名:" + byId.getName()); operatingRecord.setType("添加卡片钥匙"); unlockingAdminService.save(unlockingAdmin); operatingRecordService.save(operatingRecord); return CommonResult.ok(); }catch (Exception e){ e.printStackTrace(); // 删除锁 passwordIssController.deleteLockUser(unlockingAdmin.getLuid(),unlockingAdmin.getLockUserId()); return CommonResult.fail(); } } @Override @Transactional(rollbackFor = Exception.class) public CommonResult saveFingerprint(KeyFingerprintDto keyFingerprintDto) { String permissionSettingId = keyFingerprintDto.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(keyFingerprintDto.getAdminId()); if (ObjectUtils.isEmpty(admin)) { return CommonResult.fail("该管理员不存在"); } Admin byId = adminService.getById(keyFingerprintDto.getUsersId()); if (ObjectUtils.isEmpty(admin)) { return CommonResult.fail("添加的用户不存在"); } HouseNumber houseNumber = houseNumberService.getById(keyFingerprintDto.getHouseNumberId()); if (ObjectUtils.isEmpty(houseNumber)) { return CommonResult.fail("该房间不存在"); } // String usersId = keyFingerprintDto.getUsersId(); // Users byId = usersService.getById(usersId); // if (ObjectUtils.isEmpty(byId)) { // return CommonResult.fail("无该用户"); // } UnlockingAdmin unlockingAdmin = null; try { unlockingAdmin = passwordIssController.addFingerprintDto(keyFingerprintDto); unlockingAdmin.setName(byId.getName()); unlockingAdmin.setPhone(byId.getPhoneNumber()); // 添加操作记录 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("姓名:" + byId.getName()); operatingRecord.setType("添加指纹钥匙"); unlockingAdminService.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 deleteLock(Integer unlockingAdminId) { UnlockingAdmin byId = unlockingAdminService.getById(unlockingAdminId); if (ObjectUtils.isEmpty(byId)) { return CommonResult.fail("不存在该记录"); } String lockUserId = byId.getLockUserId(); String luid = byId.getLuid(); passwordIssController.deleteLockUser(luid,lockUserId); unlockingAdminService.removeById(unlockingAdminId); return CommonResult.ok(); } @Override public CommonResult updateLock(UpdateLockDto updateLockDto) { UnlockingAdmin byId = unlockingAdminService.getById(updateLockDto.getUnlockingAdminId()); if (ObjectUtils.isEmpty(byId)) { return CommonResult.fail("不存在该记录"); } String lockStatus = byId.getLockStatus(); if (!"1".equals(lockStatus)) { return CommonResult.fail("只有密码用户才能修改时效"); } String lockUserId = byId.getLockUserId(); String luid = byId.getLuid(); String startTime = updateLockDto.getStartTime(); String endTime = updateLockDto.getEndTime(); passwordIssController.updateLock(lockUserId,luid,startTime,endTime); byId.setStartTime(startTime); byId.setEndTime(endTime); unlockingAdminService.updateById(byId); return CommonResult.ok(); } }