|
@@ -3,6 +3,7 @@ package org.dromara.backstage.business.lock;
|
|
|
import cn.hutool.core.date.DateUtil;
|
|
import cn.hutool.core.date.DateUtil;
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
import cn.hutool.core.util.RandomUtil;
|
|
import cn.hutool.core.util.RandomUtil;
|
|
|
|
|
+import cn.hutool.json.JSONObject;
|
|
|
import cn.hutool.json.JSONUtil;
|
|
import cn.hutool.json.JSONUtil;
|
|
|
import lombok.RequiredArgsConstructor;
|
|
import lombok.RequiredArgsConstructor;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
@@ -14,6 +15,7 @@ import org.dromara.common.core.domain.R;
|
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
|
|
import java.util.HashMap;
|
|
import java.util.HashMap;
|
|
|
|
|
+import java.util.List;
|
|
|
import java.util.Map;
|
|
import java.util.Map;
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -34,20 +36,21 @@ public class LockBusiness {
|
|
|
Integer cardType = bo.getCardType();
|
|
Integer cardType = bo.getCardType();
|
|
|
String cardData = "";
|
|
String cardData = "";
|
|
|
Map<String, Object> formMap;
|
|
Map<String, Object> formMap;
|
|
|
- switch (cardType) {
|
|
|
|
|
- case 0:
|
|
|
|
|
|
|
+ cardData = switch (cardType) {
|
|
|
|
|
+ case 0 -> {
|
|
|
formMap = setPwdCardParam(bo);
|
|
formMap = setPwdCardParam(bo);
|
|
|
- cardData = lockUtils.getPwdCardData(formMap);
|
|
|
|
|
- break;
|
|
|
|
|
- case 1:
|
|
|
|
|
|
|
+ yield lockUtils.getPwdCardData(formMap);
|
|
|
|
|
+ }
|
|
|
|
|
+ case 1 -> {
|
|
|
formMap = setGuestCardParam(bo);
|
|
formMap = setGuestCardParam(bo);
|
|
|
- cardData = lockUtils.getWriteCardData(formMap);
|
|
|
|
|
- break;
|
|
|
|
|
- case 2:
|
|
|
|
|
|
|
+ yield lockUtils.getWriteCardData(formMap);
|
|
|
|
|
+ }
|
|
|
|
|
+ case 2 -> {
|
|
|
formMap = setManageCardParam(bo);
|
|
formMap = setManageCardParam(bo);
|
|
|
- cardData = lockUtils.getWriteCardData(formMap);
|
|
|
|
|
- break;
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ yield lockUtils.getWriteCardData(formMap);
|
|
|
|
|
+ }
|
|
|
|
|
+ default -> cardData;
|
|
|
|
|
+ };
|
|
|
if (ObjectUtil.isNotEmpty(cardData)) {
|
|
if (ObjectUtil.isNotEmpty(cardData)) {
|
|
|
bo.setCardData(cardData);
|
|
bo.setCardData(cardData);
|
|
|
return R.ok(cardData, cardData);
|
|
return R.ok(cardData, cardData);
|
|
@@ -62,9 +65,9 @@ public class LockBusiness {
|
|
|
String openResult = lockUtils.sendPost(formMap, "openRemoteDeviceLock");
|
|
String openResult = lockUtils.sendPost(formMap, "openRemoteDeviceLock");
|
|
|
String flag = JSONUtil.parseObj(openResult).getStr("result");
|
|
String flag = JSONUtil.parseObj(openResult).getStr("result");
|
|
|
if (ObjectUtil.equals(flag, "0")) {
|
|
if (ObjectUtil.equals(flag, "0")) {
|
|
|
- return R.ok("远程开门成功","远程开门成功");
|
|
|
|
|
|
|
+ return R.ok("远程开门成功", "远程开门成功");
|
|
|
}
|
|
}
|
|
|
- return R.fail("远程开门失败","远程开门失败");
|
|
|
|
|
|
|
+ return R.fail("远程开门失败", "远程开门失败");
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
private Map<String, Object> setGuestCardParam(RoomCardBo bo) {
|
|
private Map<String, Object> setGuestCardParam(RoomCardBo bo) {
|
|
@@ -81,7 +84,32 @@ public class LockBusiness {
|
|
|
|
|
|
|
|
private Map<String, Object> setManageCardParam(RoomCardBo bo) {
|
|
private Map<String, Object> setManageCardParam(RoomCardBo bo) {
|
|
|
Map<String, Object> formMap = this.setGuestCardParam(bo);
|
|
Map<String, Object> formMap = this.setGuestCardParam(bo);
|
|
|
|
|
+ String groupIds = "0000";
|
|
|
|
|
+ if (ObjectUtil.notEqual(bo.getCardUseType(), "1024")) {
|
|
|
|
|
+ StringBuilder sb = new StringBuilder();
|
|
|
|
|
+ List<String> areaIds = List.of(bo.getGroupIds().split(","));
|
|
|
|
|
|
|
|
|
|
+ for (String areaId : areaIds) {
|
|
|
|
|
+ // TODO 2024-11-20 luoyibo 根据区域id查询出对应的门锁id,只需要一条
|
|
|
|
|
+ String lockId = "0000";
|
|
|
|
|
+ Map<String, Object> mapGroup = new HashMap<>();
|
|
|
|
|
+ mapGroup.put("DEVICE_ID", lockId);
|
|
|
|
|
+ mapGroup.put("PAGENO", 1);
|
|
|
|
|
+ mapGroup.put("PAGESIZE", 10);
|
|
|
|
|
+ String result = lockUtils.sendPost(mapGroup, "devicesList");
|
|
|
|
|
+ JSONObject obj = JSONUtil.parseObj(result);
|
|
|
|
|
+ String lockkeyid = obj.getJSONArray("AppkeyList").getJSONObject(0).getStr("KEY_ID");
|
|
|
|
|
+ // 通过keyid获取分组
|
|
|
|
|
+ mapGroup = new HashMap<String, Object>();
|
|
|
|
|
+ mapGroup.put("LOCKKEYID", lockkeyid);
|
|
|
|
|
+ mapGroup.put("OPERATETYPE", "2");
|
|
|
|
|
+ result = lockUtils.sendPost(mapGroup, "operateLockGroup");
|
|
|
|
|
+ obj = JSONUtil.parseObj(result);
|
|
|
|
|
+ sb.append(obj.getStr("checkGroupId"));
|
|
|
|
|
+ }
|
|
|
|
|
+ groupIds = sb.toString();
|
|
|
|
|
+ }
|
|
|
|
|
+ formMap.put("groupIds", groupIds);
|
|
|
return formMap;
|
|
return formMap;
|
|
|
}
|
|
}
|
|
|
|
|
|