feat(device): 添加设备类型管理功能

- 在Device实体中添加了deviceType字段,并使用@TableField注解标记为非数据库字段
- 新增DeviceType实体类,用于表示设备类型信息
- 创建DeviceTypeController控制器,提供获取所有设备类型的接口
- 新增DeviceTypeService接口及其实现类DeviceTypeServiceImpl,实现设备类型相关业务逻辑
- 添加DriveTypeMapper接口,继承BaseMapper以支持对DeviceType的数据库操作
- 在ErrorCode常量类中增加了设备相关的错误码:DEVICE_NOT_FOUND和DEVICE_TYPE_NOT_FOUND
- 更新DeviceController,引入DeviceTypeResponse并优化代码结构
- 在DeviceMapper中新增selectOneWithTypeById方法,通过MyBatis注解实现关联查询设备及其类型信息
This commit is contained in:
Chaos
2025-11-21 06:54:12 +08:00
parent e23434ab48
commit 72a1e4d309
12 changed files with 190 additions and 2 deletions

View File

@@ -2,8 +2,29 @@ package cn.nopj.chaos_api.mapper;
import cn.nopj.chaos_api.domain.entity.Device;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.*;
@Mapper
public interface DeviceMapper extends BaseMapper<Device> {
/**
* 根据id查询设备信息
* @param id 设备id
* @return 设备信息
*/
@Select("SELECT * FROM t_device WHERE id = #{id}")
@Results(id = "DeviceResultMap", value ={
@Result(id = true, property = "id", column = "id"),
@Result(property = "name", column = "name"),
@Result(property = "model", column = "model"),
@Result(property = "snmpCommunity", column = "snmp_community"),
@Result(property = "manufacturer", column = "manufacturer"),
@Result(property = "purchaseDate", column = "purchase_date"),
@Result(property = "status", column = "status"),
@Result(property = "remark", column = "remark"),
@Result(property = "createTime", column = "create_time"),
@Result(property = "updateTime", column = "update_time"),
@Result(property = "deviceType", column = "type_id",
one = @One(select = "cn.nopj.chaos_api.mapper.DriveTypeMapper.selectById"))
})
Device selectOneWithTypeById(Long id);
}

View File

@@ -0,0 +1,11 @@
package cn.nopj.chaos_api.mapper;
import cn.nopj.chaos_api.domain.entity.DeviceType;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface DriveTypeMapper extends BaseMapper<DeviceType> {
}