diff --git a/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/controller/DeviceTypeController.java b/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/controller/DeviceTypeController.java index dccdb61..3ff0fe3 100644 --- a/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/controller/DeviceTypeController.java +++ b/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/controller/DeviceTypeController.java @@ -4,14 +4,13 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.fuyuanshen.common.core.domain.PageResult; import com.fuyuanshen.common.core.domain.ResponseVO; import com.fuyuanshen.equipment.domain.DeviceType; +import com.fuyuanshen.equipment.domain.form.DeviceTypeForm; import com.fuyuanshen.equipment.domain.query.DeviceTypeQueryCriteria; import com.fuyuanshen.equipment.service.DeviceTypeService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -59,7 +58,7 @@ public class DeviceTypeController { // @Log("修改设备类型") @Operation(summary = "修改设备类型") @PutMapping(value = "/update") - public ResponseVO updateDeviceType(@Validated @RequestBody DeviceType resources) { + public ResponseVO updateDeviceType(@Validated @RequestBody DeviceTypeForm resources) { deviceTypeService.update(resources); return ResponseVO.success(null); } @@ -68,17 +67,16 @@ public class DeviceTypeController { // @Log("删除设备类型") @Operation(summary = "删除设备类型") @DeleteMapping(value = "/delete") - public ResponseEntity deleteDeviceType(@Parameter(name = "传ID数组[]") @RequestBody List ids) { + public ResponseVO deleteDeviceType(@Parameter(name = "传ID数组[]") @RequestBody List ids) { deviceTypeService.deleteAll(ids); - return new ResponseEntity<>(HttpStatus.OK); + return ResponseVO.success("删除成功!!!"); } @GetMapping(value = "/communicationMode") @Operation(summary = "获取设备类型通讯方式") public ResponseVO getCommunicationMode(@Parameter(name = "设备类型ID", required = true) Long id) { - return ResponseVO.success(deviceTypeService.getById(id)); + return ResponseVO.success(deviceTypeService.getCommunicationMode(id)); } - } diff --git a/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/domain/form/DeviceTypeForm.java b/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/domain/form/DeviceTypeForm.java new file mode 100644 index 0000000..d416718 --- /dev/null +++ b/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/domain/form/DeviceTypeForm.java @@ -0,0 +1,39 @@ +package com.fuyuanshen.equipment.domain.form; + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.bean.copier.CopyOptions; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fuyuanshen.common.tenant.core.TenantEntity; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotBlank; +import lombok.Data; + +/** + * @Description: 设备类型 + * @Author: WY + * @Date: 2025/5/14 + **/ +@Data +public class DeviceTypeForm { + + @Schema(name = "ID", hidden = true) + private Long id; + + @Schema(name = "类型名称", required = true) + private String typeName; + + @Schema(name = "是否支持蓝牙") + private Boolean isSupportBle; + + @Schema(name = "定位方式", example = "0:无;1:GPS;2:基站;3:wifi;4:北斗") + private String locateMode; + + @Schema(name = "联网方式", example = "0:无;1:4G;2:WIFI") + private String networkWay; + + @Schema(name = "通讯方式", example = "0:4G;1:蓝牙") + private String communicationMode; + +} diff --git a/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/service/DeviceTypeService.java b/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/service/DeviceTypeService.java index 81ed641..25569ea 100644 --- a/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/service/DeviceTypeService.java +++ b/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/service/DeviceTypeService.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.fuyuanshen.common.core.domain.PageResult; import com.fuyuanshen.equipment.domain.DeviceType; +import com.fuyuanshen.equipment.domain.form.DeviceTypeForm; import com.fuyuanshen.equipment.domain.query.DeviceTypeQueryCriteria; import java.util.List; @@ -51,7 +52,7 @@ public interface DeviceTypeService extends IService { * * @param resources / */ - void update(DeviceType resources); + void update(DeviceTypeForm resources); /** * 多选删除 @@ -60,4 +61,11 @@ public interface DeviceTypeService extends IService { */ void deleteAll(List ids); + /** + * 获取设备类型通讯方式 + * + * @param id / + * @return DeviceTypeDto + */ + DeviceType getCommunicationMode(Long id); } diff --git a/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/service/impl/DeviceServiceImpl.java b/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/service/impl/DeviceServiceImpl.java index a51b8d8..e1e6c26 100644 --- a/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/service/impl/DeviceServiceImpl.java +++ b/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/service/impl/DeviceServiceImpl.java @@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.fuyuanshen.common.core.domain.PageResult; import com.fuyuanshen.common.core.utils.PageUtil; +import com.fuyuanshen.common.satoken.utils.LoginHelper; import com.fuyuanshen.equipment.constants.DeviceConstants; import com.fuyuanshen.equipment.domain.Device; import com.fuyuanshen.equipment.domain.form.DeviceForm; @@ -56,6 +57,7 @@ public class DeviceServiceImpl extends ServiceImpl impleme @Override public PageResult queryAll(DeviceQueryCriteria criteria, Page page) throws IOException { + criteria.setCustomerId(LoginHelper.getUserId()); IPage devices = deviceMapper.findAll(criteria, page); List records = devices.getRecords(); diff --git a/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/service/impl/DeviceTypeServiceImpl.java b/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/service/impl/DeviceTypeServiceImpl.java index a064039..2f03e41 100644 --- a/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/service/impl/DeviceTypeServiceImpl.java +++ b/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/service/impl/DeviceTypeServiceImpl.java @@ -1,11 +1,13 @@ package com.fuyuanshen.equipment.service.impl; +import cn.hutool.core.bean.BeanUtil; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.fuyuanshen.common.core.domain.PageResult; import com.fuyuanshen.common.core.utils.PageUtil; import com.fuyuanshen.common.satoken.utils.LoginHelper; import com.fuyuanshen.equipment.domain.DeviceType; +import com.fuyuanshen.equipment.domain.form.DeviceTypeForm; import com.fuyuanshen.equipment.domain.query.DeviceTypeQueryCriteria; import com.fuyuanshen.equipment.mapper.DeviceMapper; import com.fuyuanshen.equipment.mapper.DeviceTypeMapper; @@ -14,7 +16,9 @@ import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.ArrayList; import java.util.List; +import java.util.Objects; /** * @Description: @@ -38,6 +42,7 @@ public class DeviceTypeServiceImpl extends ServiceImpl queryAll(DeviceTypeQueryCriteria criteria, Page page) { + criteria.setCustomerId(LoginHelper.getUserId()); return PageUtil.toPage(deviceTypeMapper.findAll(criteria, page)); } @@ -84,8 +89,18 @@ public class DeviceTypeServiceImpl extends ServiceImpl 0) + // throw new RuntimeException("该设备类型已被使用,无法删除"); + BeanUtil.copyProperties(resources, deviceType); + deviceTypeMapper.updateById(deviceType); } @@ -97,8 +112,41 @@ public class DeviceTypeServiceImpl extends ServiceImpl ids) { + + List invalidIds = new ArrayList<>(); + + for (Long id : ids) { + DeviceType deviceType = deviceTypeMapper.selectById(id); + if (deviceType == null || !Objects.equals(deviceType.getCustomerId(), LoginHelper.getUserId())) { + invalidIds.add(id); + } + } + + if (!invalidIds.isEmpty()) { + throw new RuntimeException("以下设备类型无法删除(ID 不存在或无权限): " + invalidIds); + } + deviceTypeMapper.deleteByIds(ids); } + /** + * 获取设备类型通讯方式 + * + * @param id / + * @return DeviceTypeDto + */ + @Override + public DeviceType getCommunicationMode(Long id) { + DeviceType deviceType = deviceTypeMapper.selectById(id); + if (deviceType == null) { + throw new RuntimeException("设备类型不存在"); + } + if (!Objects.equals(deviceType.getCustomerId(), LoginHelper.getUserId())) { + throw new RuntimeException("无权获取该设备类型通讯方式"); + } + return deviceType; + } + + } diff --git a/fys-modules/fys-equipment/src/main/resources/mapper/equipment/DeviceTypeMapper.xml b/fys-modules/fys-equipment/src/main/resources/mapper/equipment/DeviceTypeMapper.xml index f69fff7..5ddd1e7 100644 --- a/fys-modules/fys-equipment/src/main/resources/mapper/equipment/DeviceTypeMapper.xml +++ b/fys-modules/fys-equipment/src/main/resources/mapper/equipment/DeviceTypeMapper.xml @@ -28,11 +28,8 @@ and dt.type_name like concat('%', TRIM(#{criteria.typeName}), '%') - - and dt.tenant_id = #{criteria.tenantId} - - - and dt.create_by = #{criteria.createBy} + + and dt.owner_customer_id = #{criteria.customerId} ORDER BY dt.create_time DESC