diff --git a/ruoyi-admin/src/main/java/org/dromara/web/controller/app/EqDeviceController.java b/ruoyi-admin/src/main/java/org/dromara/web/controller/app/EqDeviceController.java index c4d781181..fa7d85890 100644 --- a/ruoyi-admin/src/main/java/org/dromara/web/controller/app/EqDeviceController.java +++ b/ruoyi-admin/src/main/java/org/dromara/web/controller/app/EqDeviceController.java @@ -1,5 +1,6 @@ package org.dromara.web.controller.app; +import cn.dev33.satoken.annotation.SaIgnore; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import jakarta.servlet.http.HttpServletRequest; @@ -180,6 +181,7 @@ public class EqDeviceController extends BaseController { * 保存日志(iot使用 设备状态变动时会触发该状态) * @param eqEquipmentLogBo */ + @SaIgnore @PostMapping("/saveDeviceLogs") public void saveDeviceLogs(@RequestBody EqEquipmentLogBo eqEquipmentLogBo){ String equipmentName = eqEquipmentLogBo.getEquipmentName(); diff --git a/ruoyi-admin/src/main/java/org/dromara/web/controller/app/EqHomeController.java b/ruoyi-admin/src/main/java/org/dromara/web/controller/app/EqHomeController.java index 85115ba2e..8b657ddd7 100644 --- a/ruoyi-admin/src/main/java/org/dromara/web/controller/app/EqHomeController.java +++ b/ruoyi-admin/src/main/java/org/dromara/web/controller/app/EqHomeController.java @@ -22,6 +22,7 @@ import org.dromara.web.domain.bo.*; import org.dromara.web.domain.vo.*; import org.dromara.web.service.*; import org.dromara.web.domain.bo.EqAppHomeBo; +import org.springframework.util.CollectionUtils; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -325,13 +326,34 @@ public class EqHomeController extends BaseController { @PostMapping("/list") public TableDataInfo list(EqAppHomeBo bo, PageQuery pageQuery){ //当前用户为家庭主体 切换用户后需要传输用户id - if (bo.getUserId() == null) bo.setUserId(LoginHelper.getUserId()); + Long currentUserId = LoginHelper.getUserId(); + if (bo.getUserId() == null) bo.setUserId(currentUserId); + checkUserId(bo.getUserId(), currentUserId); // 下面返回的状态 会在设备状态变化时更新设备状态 状态更新由iot触发 EqEquipmentBo eqEquipmentBo = new EqEquipmentBo(); eqEquipmentBo.setUserId(bo.getUserId()); + eqEquipmentBo.setAreaId(bo.getAreaId()); return eqEquipmentService.queryPageList(eqEquipmentBo, pageQuery); //在设备表中增加了分布id } + /** + * 检查要查询的userId 是否为分享给当前用户的userId + * 如果不是 则抛出异常 + * @param userId + * @param currentUserId + */ + private void checkUserId(Long userId, Long currentUserId) { + if (!currentUserId.equals(userId)){ + EqShareBo eqShareBo = new EqShareBo(); + eqShareBo.setShareUserId(userId); + eqShareBo.setSharedUserId(currentUserId); + List eqShareVos = shareService.queryList(eqShareBo); + if (CollectionUtils.isEmpty(eqShareVos)){ + throw new RuntimeException("您没有权限查看该设备"); + } + } + } + /** * 设备重排 diff --git a/ruoyi-admin/src/main/java/org/dromara/web/controller/app/EqTextController.java b/ruoyi-admin/src/main/java/org/dromara/web/controller/app/EqTextController.java index baa4a24a4..6846a8a21 100644 --- a/ruoyi-admin/src/main/java/org/dromara/web/controller/app/EqTextController.java +++ b/ruoyi-admin/src/main/java/org/dromara/web/controller/app/EqTextController.java @@ -102,7 +102,9 @@ public class EqTextController extends BaseController { MessageUtils.message("homepage.name7"), MessageUtils.message("homepage.name8"), MessageUtils.message("homepage.name9"), - MessageUtils.message("homepage.name10") + MessageUtils.message("homepage.name10"), + MessageUtils.message("homepage.name11"), + MessageUtils.message("homepage.name12") )); //《关门提醒》warningClose @@ -113,7 +115,8 @@ public class EqTextController extends BaseController { MessageUtils.message("warningClose.name3"), MessageUtils.message("warningClose.name4"), MessageUtils.message("warningClose.name5"), - MessageUtils.message("warningClose.name6") + MessageUtils.message("warningClose.name6"), + MessageUtils.message("warningClose.name7") )); //《添加设备》add @@ -161,7 +164,9 @@ public class EqTextController extends BaseController { MessageUtils.message("detail.name17"), MessageUtils.message("detail.name18"), MessageUtils.message("detail.name19"), - MessageUtils.message("detail.name20") + MessageUtils.message("detail.name20"), + MessageUtils.message("detail.name21"), + MessageUtils.message("detail.name22") )); //《倒计时设置》countdown @@ -422,7 +427,8 @@ public class EqTextController extends BaseController { MessageUtils.message("family.name1"), MessageUtils.message("family.name2"), MessageUtils.message("family.name3"), - MessageUtils.message("family.name4") + MessageUtils.message("family.name4"), + MessageUtils.message("family.name5") )); //《成员管理》familyDetail @@ -435,7 +441,8 @@ public class EqTextController extends BaseController { MessageUtils.message("familyDetail.name5"), MessageUtils.message("familyDetail.name6"), MessageUtils.message("familyDetail.name7"), - MessageUtils.message("familyDetail.name8") + MessageUtils.message("familyDetail.name8"), + MessageUtils.message("familyDetail.name9") )); //《设置语言》setLanguage @@ -509,7 +516,14 @@ public class EqTextController extends BaseController { MessageUtils.message("ble.name61"), MessageUtils.message("ble.name62"), MessageUtils.message("ble.name63"), - MessageUtils.message("ble.name64") + MessageUtils.message("ble.name64"), + MessageUtils.message("ble.name65"), + MessageUtils.message("ble.name66"), + MessageUtils.message("ble.name67"), + MessageUtils.message("ble.name68"), + MessageUtils.message("ble.name69"), + MessageUtils.message("ble.name70"), + MessageUtils.message("ble.name71") )); return R.ok(result); diff --git a/ruoyi-admin/src/main/java/org/dromara/web/controller/show/EqShowEquipmentLogController.java b/ruoyi-admin/src/main/java/org/dromara/web/controller/show/EqShowEquipmentLogController.java index aea14391d..0af7270f8 100644 --- a/ruoyi-admin/src/main/java/org/dromara/web/controller/show/EqShowEquipmentLogController.java +++ b/ruoyi-admin/src/main/java/org/dromara/web/controller/show/EqShowEquipmentLogController.java @@ -2,6 +2,7 @@ package org.dromara.web.controller.show; import lombok.RequiredArgsConstructor; import cn.dev33.satoken.annotation.SaCheckPermission; +import org.dromara.web.domain.bo.EqEquipmentBo; import org.dromara.web.domain.vo.EqEquipmentStatisticsVo; import org.dromara.web.service.IEqEquipmentService; import org.springframework.web.bind.annotation.*; @@ -14,6 +15,8 @@ import org.dromara.web.domain.bo.EqEquipmentLogBo; import org.dromara.web.service.IEqEquipmentLogService; import org.dromara.common.mybatis.core.page.TableDataInfo; +import java.util.Map; + /** * web端 统计分析 * @@ -45,7 +48,11 @@ public class EqShowEquipmentLogController extends BaseController { */ // @SaCheckPermission("device:showEquipmentLog:list") @GetMapping("/selectEquipmentStatistic") - public R selectEquipmentStatistic(Integer type, String startTime, String endTime) { + public R selectEquipmentStatistic(EqEquipmentBo bo) { + Map params = bo.getParams(); + Integer type = bo.getType(); + String startTime = params.get("beginCreateTime") == null?null:params.get("beginCreateTime").toString(); + String endTime = params.get("endCreateTime") == null?null:params.get("endCreateTime").toString(); return R.ok(eqEquipmentService.selectEquipmentStatistic(type,startTime,endTime)); } diff --git a/ruoyi-admin/src/main/java/org/dromara/web/service/impl/EqEquipmentServiceImpl.java b/ruoyi-admin/src/main/java/org/dromara/web/service/impl/EqEquipmentServiceImpl.java index 19fe0dc47..439368bf9 100644 --- a/ruoyi-admin/src/main/java/org/dromara/web/service/impl/EqEquipmentServiceImpl.java +++ b/ruoyi-admin/src/main/java/org/dromara/web/service/impl/EqEquipmentServiceImpl.java @@ -17,16 +17,15 @@ import org.dromara.web.device.*; import org.dromara.web.device.iot.*; import org.dromara.web.domain.EqArea; import org.dromara.web.domain.bo.*; -import org.dromara.web.domain.vo.EqEquipmentDetailVo; -import org.dromara.web.domain.vo.EqEquipmentStatisticsVo; -import org.dromara.web.domain.vo.EqUserEquipmentVo; +import org.dromara.web.domain.vo.*; import org.dromara.web.mapper.EqAreaMapper; +import org.dromara.web.service.IEqShareService; import org.dromara.web.service.IotService; import org.springframework.stereotype.Service; -import org.dromara.web.domain.vo.EqEquipmentVo; import org.dromara.web.domain.EqEquipment; import org.dromara.web.mapper.EqEquipmentMapper; import org.dromara.web.service.IEqEquipmentService; +import org.springframework.util.CollectionUtils; import java.util.*; @@ -41,6 +40,7 @@ import java.util.*; public class EqEquipmentServiceImpl implements IEqEquipmentService { private final EqEquipmentMapper baseMapper; + private final IEqShareService shareService; private final EqAreaMapper areaMapper; @@ -305,11 +305,12 @@ public class EqEquipmentServiceImpl implements IEqEquipmentService { eqEquipmentBo.setNickName(sysUserVo.getNickName()); DeviceMsgDto deviceMsgDto = iotService.httpTelemetryGetSend(equipmentCode); if (deviceMsgDto==null){ + eqEquipmentBo.setLineStatus(0);//离线 + eqEquipmentBo.setStatus(0); + }else{ eqEquipmentBo.setStatus(deviceMsgDto.getOpenPercentage());//使用半开作为状态值 eqEquipmentBo.setFaultStatus(deviceMsgDto.getGarageException()); eqEquipmentBo.setLineStatus(1);//在线 - }else{ - eqEquipmentBo.setLineStatus(0);//离线 } @@ -345,4 +346,23 @@ public class EqEquipmentServiceImpl implements IEqEquipmentService { } + + + /** + * 检查要查询的userId 是否为分享给当前用户的userId + * 如果不是 则抛出异常 zzc 目前操作不进行对设备控制设置的权限控制 后续如有需要再添加该方法进行验证 + * @param userId + * @param currentUserId + */ + private void checkUserId(Long userId, Long currentUserId) { + if (!currentUserId.equals(userId)){ + EqShareBo eqShareBo = new EqShareBo(); + eqShareBo.setShareUserId(userId); + eqShareBo.setSharedUserId(currentUserId); + List eqShareVos = shareService.queryList(eqShareBo); + if (CollectionUtils.isEmpty(eqShareVos)){ + throw new RuntimeException("您没有权限查看该设备"); + } + } + } } diff --git a/ruoyi-admin/src/main/resources/i18n/messages_zh_CN.properties b/ruoyi-admin/src/main/resources/i18n/messages_zh_CN.properties index 5c72a305b..b8702f3d9 100644 --- a/ruoyi-admin/src/main/resources/i18n/messages_zh_CN.properties +++ b/ruoyi-admin/src/main/resources/i18n/messages_zh_CN.properties @@ -136,6 +136,8 @@ homepage.name7=已关门 homepage.name8=是否开门? homepage.name9=是否暂停 homepage.name10=请选择 +homepage.name11=全部 +homepage.name12=暂无数据 ##《关门提醒》warningClose warningClose.name0=关门提醒 warningClose.name1=设备-deviceName-已开门-num-分钟了,请记得关门 @@ -144,6 +146,7 @@ warningClose.name3=已开门 warningClose.name4=分钟了,请记得关门 warningClose.name5=关门 warningClose.name6=我知道了 +warningClose.name7=是否关门? ##《添加设备》add add.name0=添加设备 add.name1=请输入设备编码 @@ -180,6 +183,8 @@ detail.name17=清码 detail.name18=对码 detail.name19=开门设置 detail.name20=已打开 +detail.name21=注:设置倒计时,每次需输入10的整数倍,倒计时最少为0,最多为480分钟; +detail.name22=注:设置门体高度时,每次需输入10的整数倍,每次增加减少都会改变门体高度的10%; ##《倒计时设置》countdown countdown.name0=倒计时设置 countdown.name1=取消 @@ -387,6 +392,7 @@ family.name1=我的家 family.name2=我加入的家庭 family.name3=个区域 family.name4=个设备 +family.name5=左滑退出 # 《成员管理》familyDetail familyDetail.name0=成员管理 familyDetail.name1=家庭名称 @@ -397,6 +403,8 @@ familyDetail.name5=取消 familyDetail.name6=确定 familyDetail.name7=删除 familyDetail.name8=主人 +familyDetail.name9=左滑移除 + # 《设置语言》setLanguage setLanguage.name0=设置语言 #《配网》ble @@ -460,8 +468,15 @@ ble.name56=获取WIFI列表结果 ble.name57=提示:没有扫描到可用的WIFI网络! ble.name58=提示:点击要连接的WIFI网络,输入密码,开始配网! ble.name59=重新获取 -ble.name60=长按设备WIFI按键10秒以上,LED灯快速闪烁后,松手。 +ble.name60=1. 请保持设备处于通电状态 ble.name61=点击,下一步,按提示输入信息,开始配网。 ble.name62=提示:输入wifi密码 ble.name63=提示:开始配网 -ble.name64=返回首页 +ble.name64=2. 长按设备“SET”键,直至显示器显示“1”闪烁; +ble.name65=观察:显示器显示“1”闪烁; +ble.name66=3. 多次短按“UP”键,直至显示器显示“9”闪烁; +ble.name67=观察:显示器从“1”逐步上升至“0” +ble.name68=4. 短按“SET”键; +ble.name69=观察:显示器显示“A”,此时设备开始配网; +ble.name70=5.在APP上对设备进行配网,直至配网完成; +ble.name71=观察:配网完成后显示器显示“11”,设备进入待机装填; diff --git a/ruoyi-admin/src/main/resources/mapper/device/EqEquipmentMapper.xml b/ruoyi-admin/src/main/resources/mapper/device/EqEquipmentMapper.xml index c350dcb01..a28102342 100644 --- a/ruoyi-admin/src/main/resources/mapper/device/EqEquipmentMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/device/EqEquipmentMapper.xml @@ -50,10 +50,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"