UnlockingAdminController.java 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319
  1. package com.template.controller;
  2. import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
  3. import com.template.api.UnlockingAdminControllerAPI;
  4. import com.template.common.utils.PasswordChecker;
  5. import com.template.model.dto.KeyCardDto;
  6. import com.template.model.dto.KeyFingerprintDto;
  7. import com.template.model.dto.KeyPassWordDto;
  8. import com.template.model.dto.UpdateLockDto;
  9. import com.template.model.pojo.*;
  10. import com.template.model.result.CommonResult;
  11. import com.template.services.*;
  12. import org.springframework.beans.factory.annotation.Autowired;
  13. import org.springframework.transaction.annotation.Transactional;
  14. import org.springframework.web.bind.annotation.RestController;
  15. import java.time.LocalDateTime;
  16. import java.time.format.DateTimeFormatter;
  17. import java.util.HashMap;
  18. /**
  19. * <p>
  20. * 前端控制器
  21. * </p>
  22. *
  23. * @author ceshi
  24. * @since 2024-03-22
  25. */
  26. @RestController
  27. public class UnlockingAdminController implements UnlockingAdminControllerAPI {
  28. @Autowired
  29. UnlockingAdminService unlockingAdminService;
  30. @Autowired
  31. PermissionSettingService permissionSettingService;
  32. @Autowired
  33. UsersService usersService;
  34. @Autowired
  35. PasswordIssController passwordIssController;
  36. @Autowired
  37. AdminService adminService;
  38. @Autowired
  39. HouseNumberService houseNumberService;
  40. @Autowired
  41. OperatingRecordService operatingRecordService;
  42. @Override
  43. public CommonResult getPassWord() {
  44. String passWord = PasswordChecker.getPassWord();
  45. HashMap<String, String> map = new HashMap<>();
  46. map.put("passWord",passWord);
  47. return CommonResult.ok(map);
  48. }
  49. @Override
  50. @Transactional(rollbackFor = Exception.class)
  51. public CommonResult savePassWord(KeyPassWordDto keyPassWordDto) {
  52. String permissionSettingId = keyPassWordDto.getPermissionSettingId();
  53. PermissionSetting permissionSetting = permissionSettingService.getById(permissionSettingId);
  54. if (ObjectUtils.isEmpty(permissionSetting)) {
  55. return CommonResult.fail("非法进入");
  56. }
  57. // 判断该用户是否拥有权限
  58. String houseTypeManagement = permissionSetting.getDoorLockManagement();
  59. if (!"0".equals(houseTypeManagement) && !houseTypeManagement.contains("11")) {
  60. return CommonResult.fail("此账号暂无该权限");
  61. }
  62. // 监测密码是否符合要求
  63. String passWord = keyPassWordDto.getPassWord();
  64. if (!PasswordChecker.isValidPassword(passWord)) {
  65. return CommonResult.fail("密码长度的一半不能是连续升序、倒序、一样的数字");
  66. }
  67. Admin admin = adminService.getById(keyPassWordDto.getAdminId());
  68. if (ObjectUtils.isEmpty(admin)) {
  69. return CommonResult.fail("该管理员不存在");
  70. }
  71. Admin byId = adminService.getById(keyPassWordDto.getUsersId());
  72. if (ObjectUtils.isEmpty(admin)) {
  73. return CommonResult.fail("添加的用户不存在");
  74. }
  75. HouseNumber houseNumber = houseNumberService.getById(keyPassWordDto.getHouseNumberId());
  76. if (ObjectUtils.isEmpty(houseNumber)) {
  77. return CommonResult.fail("该房间不存在");
  78. }
  79. // String usersId = keyPassWordDto.getUsersId();
  80. // Users byId = usersService.getById(usersId);
  81. // if (ObjectUtils.isEmpty(byId)) {
  82. // return CommonResult.fail("无该用户");
  83. // }
  84. UnlockingAdmin unlockingAdmin = null;
  85. /**
  86. * 缺少人的名字和
  87. */
  88. try {
  89. unlockingAdmin = passwordIssController.savePassWord(keyPassWordDto);
  90. if (ObjectUtils.isEmpty(unlockingAdmin)) {
  91. return CommonResult.fail("参数异常");
  92. }
  93. unlockingAdmin.setName(byId.getName());
  94. unlockingAdmin.setPhone(byId.getPhoneNumber());
  95. // 添加操作记录
  96. OperatingRecord operatingRecord = new OperatingRecord();
  97. operatingRecord.setRoomNumber(houseNumber.getRoomNumber());
  98. operatingRecord.setHouseNumberId(houseNumber.getId());
  99. operatingRecord.setOperatorName(admin.getName());
  100. DateTimeFormatter dateTimeFormatter1 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
  101. operatingRecord.setDataTime(LocalDateTime.now().format(dateTimeFormatter1));
  102. operatingRecord.setContent("姓名:" + byId.getName());
  103. operatingRecord.setType("添加密码钥匙");
  104. unlockingAdminService.save(unlockingAdmin);
  105. operatingRecordService.save(operatingRecord);
  106. return CommonResult.ok();
  107. }catch (Exception e){
  108. e.printStackTrace();
  109. // 删除锁
  110. passwordIssController.deleteLockUser(unlockingAdmin.getLuid(),unlockingAdmin.getLockUserId());
  111. return CommonResult.fail();
  112. }
  113. }
  114. @Override
  115. @Transactional(rollbackFor = Exception.class)
  116. public CommonResult saveCard(KeyCardDto keyCardDto) {
  117. String permissionSettingId = keyCardDto.getPermissionSettingId();
  118. PermissionSetting permissionSetting = permissionSettingService.getById(permissionSettingId);
  119. if (ObjectUtils.isEmpty(permissionSetting)) {
  120. return CommonResult.fail("非法进入");
  121. }
  122. // 判断该用户是否拥有权限
  123. String houseTypeManagement = permissionSetting.getDoorLockManagement();
  124. if (!"0".equals(houseTypeManagement) && !houseTypeManagement.contains("11")) {
  125. return CommonResult.fail("此账号暂无该权限");
  126. }
  127. Admin admin = adminService.getById(keyCardDto.getAdminId());
  128. if (ObjectUtils.isEmpty(admin)) {
  129. return CommonResult.fail("该管理员不存在");
  130. }
  131. Admin byId = adminService.getById(keyCardDto.getUsersId());
  132. if (ObjectUtils.isEmpty(admin)) {
  133. return CommonResult.fail("添加的用户不存在");
  134. }
  135. HouseNumber houseNumber = houseNumberService.getById(keyCardDto.getHouseNumberId());
  136. if (ObjectUtils.isEmpty(houseNumber)) {
  137. return CommonResult.fail("该房间不存在");
  138. }
  139. // String usersId = keyCardDto.getUsersId();
  140. // Users byId = usersService.getById(usersId);
  141. // if (ObjectUtils.isEmpty(byId)) {
  142. // return CommonResult.fail("无该用户");
  143. // }
  144. UnlockingAdmin unlockingAdmin = null;
  145. try {
  146. unlockingAdmin = passwordIssController.addCard(keyCardDto);
  147. unlockingAdmin.setName(byId.getName());
  148. unlockingAdmin.setPhone(byId.getPhoneNumber());
  149. // 添加操作记录
  150. OperatingRecord operatingRecord = new OperatingRecord();
  151. operatingRecord.setHouseNumberId(houseNumber.getId());
  152. operatingRecord.setRoomNumber(houseNumber.getRoomNumber());
  153. operatingRecord.setOperatorName(admin.getName());
  154. DateTimeFormatter dateTimeFormatter1 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
  155. operatingRecord.setDataTime(LocalDateTime.now().format(dateTimeFormatter1));
  156. operatingRecord.setContent("姓名:" + byId.getName());
  157. operatingRecord.setType("添加卡片钥匙");
  158. unlockingAdminService.save(unlockingAdmin);
  159. operatingRecordService.save(operatingRecord);
  160. return CommonResult.ok();
  161. }catch (Exception e){
  162. e.printStackTrace();
  163. // 删除锁
  164. passwordIssController.deleteLockUser(unlockingAdmin.getLuid(),unlockingAdmin.getLockUserId());
  165. return CommonResult.fail();
  166. }
  167. }
  168. @Override
  169. @Transactional(rollbackFor = Exception.class)
  170. public CommonResult saveFingerprint(KeyFingerprintDto keyFingerprintDto) {
  171. String permissionSettingId = keyFingerprintDto.getPermissionSettingId();
  172. PermissionSetting permissionSetting = permissionSettingService.getById(permissionSettingId);
  173. if (ObjectUtils.isEmpty(permissionSetting)) {
  174. return CommonResult.fail("非法进入");
  175. }
  176. // 判断该用户是否拥有权限
  177. String houseTypeManagement = permissionSetting.getDoorLockManagement();
  178. if (!"0".equals(houseTypeManagement) && !houseTypeManagement.contains("11")) {
  179. return CommonResult.fail("此账号暂无该权限");
  180. }
  181. Admin admin = adminService.getById(keyFingerprintDto.getAdminId());
  182. if (ObjectUtils.isEmpty(admin)) {
  183. return CommonResult.fail("该管理员不存在");
  184. }
  185. Admin byId = adminService.getById(keyFingerprintDto.getUsersId());
  186. if (ObjectUtils.isEmpty(admin)) {
  187. return CommonResult.fail("添加的用户不存在");
  188. }
  189. HouseNumber houseNumber = houseNumberService.getById(keyFingerprintDto.getHouseNumberId());
  190. if (ObjectUtils.isEmpty(houseNumber)) {
  191. return CommonResult.fail("该房间不存在");
  192. }
  193. // String usersId = keyFingerprintDto.getUsersId();
  194. // Users byId = usersService.getById(usersId);
  195. // if (ObjectUtils.isEmpty(byId)) {
  196. // return CommonResult.fail("无该用户");
  197. // }
  198. UnlockingAdmin unlockingAdmin = null;
  199. try {
  200. unlockingAdmin = passwordIssController.addFingerprintDto(keyFingerprintDto);
  201. unlockingAdmin.setName(byId.getName());
  202. unlockingAdmin.setPhone(byId.getPhoneNumber());
  203. // 添加操作记录
  204. OperatingRecord operatingRecord = new OperatingRecord();
  205. operatingRecord.setHouseNumberId(houseNumber.getId());
  206. operatingRecord.setRoomNumber(houseNumber.getRoomNumber());
  207. operatingRecord.setOperatorName(admin.getName());
  208. DateTimeFormatter dateTimeFormatter1 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
  209. operatingRecord.setDataTime(LocalDateTime.now().format(dateTimeFormatter1));
  210. operatingRecord.setContent("姓名:" + byId.getName());
  211. operatingRecord.setType("添加指纹钥匙");
  212. unlockingAdminService.save(unlockingAdmin);
  213. operatingRecordService.save(operatingRecord);
  214. return CommonResult.ok();
  215. }catch (Exception e){
  216. e.printStackTrace();
  217. // 删除锁
  218. passwordIssController.deleteLockUser(unlockingAdmin.getLuid(),unlockingAdmin.getLockUserId());
  219. return CommonResult.fail();
  220. }
  221. }
  222. @Override
  223. public CommonResult deleteLock(Integer unlockingAdminId) {
  224. UnlockingAdmin byId = unlockingAdminService.getById(unlockingAdminId);
  225. if (ObjectUtils.isEmpty(byId)) {
  226. return CommonResult.fail("不存在该记录");
  227. }
  228. String lockUserId = byId.getLockUserId();
  229. String luid = byId.getLuid();
  230. passwordIssController.deleteLockUser(luid,lockUserId);
  231. unlockingAdminService.removeById(unlockingAdminId);
  232. return CommonResult.ok();
  233. }
  234. @Override
  235. public CommonResult updateLock(UpdateLockDto updateLockDto) {
  236. UnlockingAdmin byId = unlockingAdminService.getById(updateLockDto.getUnlockingAdminId());
  237. if (ObjectUtils.isEmpty(byId)) {
  238. return CommonResult.fail("不存在该记录");
  239. }
  240. String lockStatus = byId.getLockStatus();
  241. if (!"1".equals(lockStatus)) {
  242. return CommonResult.fail("只有密码用户才能修改时效");
  243. }
  244. String lockUserId = byId.getLockUserId();
  245. String luid = byId.getLuid();
  246. String startTime = updateLockDto.getStartTime();
  247. String endTime = updateLockDto.getEndTime();
  248. passwordIssController.updateLock(lockUserId,luid,startTime,endTime);
  249. byId.setStartTime(startTime);
  250. byId.setEndTime(endTime);
  251. unlockingAdminService.updateById(byId);
  252. return CommonResult.ok();
  253. }
  254. }