|
@@ -7,6 +7,8 @@ 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;
|
|
|
|
|
+import org.dromara.backstage.basics.domain.vo.PtRoomVo;
|
|
|
|
|
+import org.dromara.backstage.basics.service.IPtRoomService;
|
|
|
import org.dromara.backstage.domain.bo.lock.RoomCardBo;
|
|
import org.dromara.backstage.domain.bo.lock.RoomCardBo;
|
|
|
import org.dromara.backstage.util.LockUtils;
|
|
import org.dromara.backstage.util.LockUtils;
|
|
|
import org.dromara.common.core.constant.DefaultConstants;
|
|
import org.dromara.common.core.constant.DefaultConstants;
|
|
@@ -31,21 +33,31 @@ import java.util.Map;
|
|
|
@RequiredArgsConstructor
|
|
@RequiredArgsConstructor
|
|
|
public class LockBusiness {
|
|
public class LockBusiness {
|
|
|
private final LockUtils lockUtils;
|
|
private final LockUtils lockUtils;
|
|
|
|
|
+ private final IPtRoomService roomService;
|
|
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 获取门锁发卡数据
|
|
|
|
|
+ *
|
|
|
|
|
+ * @param bo 门锁发卡业务对象
|
|
|
|
|
+ * @return 发卡数据
|
|
|
|
|
+ */
|
|
|
public R<String> getWriteCardData(RoomCardBo bo) {
|
|
public R<String> getWriteCardData(RoomCardBo bo) {
|
|
|
Integer cardType = bo.getCardType();
|
|
Integer cardType = bo.getCardType();
|
|
|
String cardData = "";
|
|
String cardData = "";
|
|
|
Map<String, Object> formMap;
|
|
Map<String, Object> formMap;
|
|
|
cardData = switch (cardType) {
|
|
cardData = switch (cardType) {
|
|
|
case 0 -> {
|
|
case 0 -> {
|
|
|
|
|
+ // 密码卡
|
|
|
formMap = setPwdCardParam(bo);
|
|
formMap = setPwdCardParam(bo);
|
|
|
yield lockUtils.getPwdCardData(formMap);
|
|
yield lockUtils.getPwdCardData(formMap);
|
|
|
}
|
|
}
|
|
|
case 1 -> {
|
|
case 1 -> {
|
|
|
|
|
+ // 客人卡
|
|
|
formMap = setGuestCardParam(bo);
|
|
formMap = setGuestCardParam(bo);
|
|
|
yield lockUtils.getWriteCardData(formMap);
|
|
yield lockUtils.getWriteCardData(formMap);
|
|
|
}
|
|
}
|
|
|
case 2 -> {
|
|
case 2 -> {
|
|
|
|
|
+ // 员工卡
|
|
|
formMap = setManageCardParam(bo);
|
|
formMap = setManageCardParam(bo);
|
|
|
yield lockUtils.getWriteCardData(formMap);
|
|
yield lockUtils.getWriteCardData(formMap);
|
|
|
}
|
|
}
|
|
@@ -58,6 +70,12 @@ public class LockBusiness {
|
|
|
return R.fail();
|
|
return R.fail();
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 远程开门
|
|
|
|
|
+ * @param lockId 门锁Id
|
|
|
|
|
+ * @return 开门结果
|
|
|
|
|
+ */
|
|
|
|
|
+
|
|
|
public R<String> remoteOpenDoor(String lockId) {
|
|
public R<String> remoteOpenDoor(String lockId) {
|
|
|
Map<String, Object> formMap = new HashMap<>();
|
|
Map<String, Object> formMap = new HashMap<>();
|
|
|
formMap.put("DEVICE_ID", lockId);
|
|
formMap.put("DEVICE_ID", lockId);
|
|
@@ -90,8 +108,9 @@ public class LockBusiness {
|
|
|
List<String> areaIds = List.of(bo.getGroupIds().split(","));
|
|
List<String> areaIds = List.of(bo.getGroupIds().split(","));
|
|
|
|
|
|
|
|
for (String areaId : areaIds) {
|
|
for (String areaId : areaIds) {
|
|
|
- // TODO 2024-11-20 luoyibo 根据区域id查询出对应的门锁id,只需要一条
|
|
|
|
|
- String lockId = "0000";
|
|
|
|
|
|
|
+ List<PtRoomVo> roomVos = roomService.queryHotelRoomList(Long.valueOf(areaId));
|
|
|
|
|
+ String lockId = roomVos.get(0).getLockId();
|
|
|
|
|
+ // String lockId = "0000";
|
|
|
Map<String, Object> mapGroup = new HashMap<>();
|
|
Map<String, Object> mapGroup = new HashMap<>();
|
|
|
mapGroup.put("DEVICE_ID", lockId);
|
|
mapGroup.put("DEVICE_ID", lockId);
|
|
|
mapGroup.put("PAGENO", 1);
|
|
mapGroup.put("PAGENO", 1);
|
|
@@ -100,7 +119,7 @@ public class LockBusiness {
|
|
|
JSONObject obj = JSONUtil.parseObj(result);
|
|
JSONObject obj = JSONUtil.parseObj(result);
|
|
|
String lockkeyid = obj.getJSONArray("AppkeyList").getJSONObject(0).getStr("KEY_ID");
|
|
String lockkeyid = obj.getJSONArray("AppkeyList").getJSONObject(0).getStr("KEY_ID");
|
|
|
// 通过keyid获取分组
|
|
// 通过keyid获取分组
|
|
|
- mapGroup = new HashMap<String, Object>();
|
|
|
|
|
|
|
+ mapGroup = new HashMap<>();
|
|
|
mapGroup.put("LOCKKEYID", lockkeyid);
|
|
mapGroup.put("LOCKKEYID", lockkeyid);
|
|
|
mapGroup.put("OPERATETYPE", "2");
|
|
mapGroup.put("OPERATETYPE", "2");
|
|
|
result = lockUtils.sendPost(mapGroup, "operateLockGroup");
|
|
result = lockUtils.sendPost(mapGroup, "operateLockGroup");
|