From 27f4e4818141cfefbc346d3061955a308e959a8e Mon Sep 17 00:00:00 2001 From: 1 <1> Date: Wed, 18 Jun 2025 10:20:13 +0800 Subject: [PATCH] =?UTF-8?q?xazn=E6=8A=A5=E9=94=99=E8=A7=A3=E5=86=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/application.yml | 2 +- .../firmware/FirmwareController.java | 3 +- .../fastbee/iot/service/IFirmwareService.java | 2 + .../iot/service/impl/FirmwareServiceImpl.java | 57 ++++++++++++++++--- 4 files changed, 54 insertions(+), 10 deletions(-) diff --git a/fastbee-admin/src/main/resources/application.yml b/fastbee-admin/src/main/resources/application.yml index d4b3962..909d6c9 100644 --- a/fastbee-admin/src/main/resources/application.yml +++ b/fastbee-admin/src/main/resources/application.yml @@ -5,7 +5,7 @@ fastbee: copyrightYear: 2023 # 版权年份 demoEnabled: true # 实例演示开关 # 文件路径,以uploadPath结尾 示例( Windows配置 D:/uploadPath,Linux配置 /uploadPath) - profile: /uploadPath + profile: D:/uploadPath addressEnabled: true # 获取ip地址开关 captchaType: math # 验证码类型 math 数组计算 char 字符验证 diff --git a/fastbee-open-api/src/main/java/com/fastbee/controller/firmware/FirmwareController.java b/fastbee-open-api/src/main/java/com/fastbee/controller/firmware/FirmwareController.java index 825d41e..ae53cc0 100644 --- a/fastbee-open-api/src/main/java/com/fastbee/controller/firmware/FirmwareController.java +++ b/fastbee-open-api/src/main/java/com/fastbee/controller/firmware/FirmwareController.java @@ -114,7 +114,8 @@ public class FirmwareController extends BaseController @PutMapping public AjaxResult edit(@RequestBody Firmware firmware) { - return toAjax(firmwareService.updateById(firmware)); + firmware.setUpdateBy(getUsername()); + return toAjax(firmwareService.update(firmware)); } /** diff --git a/fastbee-service/fastbee-iot-service/src/main/java/com/fastbee/iot/service/IFirmwareService.java b/fastbee-service/fastbee-iot-service/src/main/java/com/fastbee/iot/service/IFirmwareService.java index 8db9ff4..37e7f9f 100644 --- a/fastbee-service/fastbee-iot-service/src/main/java/com/fastbee/iot/service/IFirmwareService.java +++ b/fastbee-service/fastbee-iot-service/src/main/java/com/fastbee/iot/service/IFirmwareService.java @@ -53,4 +53,6 @@ public interface IFirmwareService extends IService * @return */ int deleteBatchByIds(List firmwareIdList); + + int update(Firmware firmware); } diff --git a/fastbee-service/fastbee-iot-service/src/main/java/com/fastbee/iot/service/impl/FirmwareServiceImpl.java b/fastbee-service/fastbee-iot-service/src/main/java/com/fastbee/iot/service/impl/FirmwareServiceImpl.java index 4c8a33a..23c67e7 100644 --- a/fastbee-service/fastbee-iot-service/src/main/java/com/fastbee/iot/service/impl/FirmwareServiceImpl.java +++ b/fastbee-service/fastbee-iot-service/src/main/java/com/fastbee/iot/service/impl/FirmwareServiceImpl.java @@ -1,11 +1,15 @@ package com.fastbee.iot.service.impl; +import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.fastbee.common.annotation.DataScope; +import com.fastbee.common.extend.aspectj.DataScopeAspect; import com.fastbee.common.extend.core.domin.entity.SysUser; +import com.fastbee.common.mybatis.LambdaQueryWrapperX; import com.fastbee.common.utils.DateUtils; import com.fastbee.common.utils.StringUtils; import com.fastbee.iot.domain.Firmware; @@ -51,14 +55,8 @@ public class FirmwareServiceImpl extends ServiceImpl im * @return 产品固件 */ @Override + @DataScope() public Page selectFirmwareList(Firmware firmware) { - SysUser user = getLoginUser().getUser(); - // 查询所属机构 - if (null != user.getDeptId()) { - firmware.setTenantId(user.getDept().getDeptUserId()); - } else { - firmware.setTenantId(user.getUserId()); - } LambdaQueryWrapper lqw = buildQueryWrapper(firmware); lqw.orderByDesc(Firmware::getCreateTime); return baseMapper.selectPage(new Page<>(firmware.getPageNum(), firmware.getPageSize()),lqw); @@ -83,6 +81,12 @@ public class FirmwareServiceImpl extends ServiceImpl im !Objects.isNull(params.get("endTime"))) { lqw.between(Firmware::getCreateTime, params.get("beginTime"), params.get("endTime")); } + + // 数据范围过滤 + if (ObjectUtil.isNotEmpty(query.getParams().get(DataScopeAspect.DATA_SCOPE))){ + lqw.apply((String) query.getParams().get(DataScopeAspect.DATA_SCOPE)); + } + return lqw; } @@ -105,14 +109,51 @@ public class FirmwareServiceImpl extends ServiceImpl im */ @Override public int insertFirmware(Firmware firmware){ + // 判断 isLatest 是否为 1 + if (Objects.equals(firmware.getIsLatest(), 1)) { + // 查询该产品下的所有固件 + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(Firmware::getProductId, firmware.getProductId()); + List firmwareList = firmwareMapper.selectList(queryWrapper); + if (!firmwareList.isEmpty()) { + for (Firmware f : firmwareList) { + f.setIsLatest(0); + firmwareMapper.updateById(f); + } + } + } SysUser user = getLoginUser().getUser(); firmware.setTenantId(user.getDept().getDeptUserId()); - firmware.setTenantName(user.getDept().getDeptUserName()); + firmware.setTenantName(user.getDept().getDeptName()); firmware.setCreateBy(user.getUserName()); firmware.setCreateTime(DateUtils.getNowDate()); return firmwareMapper.insert(firmware); } + /** + * 修改产品固件 + * + * @param firmware 产品固件 + * @return 结果 + */ + @Override + public int update(Firmware firmware){ + // 判断 isLatest 是否为 1 + if (Objects.equals(firmware.getIsLatest(), 1)) { + // 查询该产品下的所有固件 + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(Firmware::getProductId, firmware.getProductId()); + List firmwareList = firmwareMapper.selectList(queryWrapper); + if (!firmwareList.isEmpty()) { + for (Firmware f : firmwareList) { + f.setIsLatest(0); + firmwareMapper.updateById(f); + } + } + } + return firmwareMapper.updateById(firmware); + } + /** * 查询设备最新固件