refactor(test): 重构测试包结构并优化设备查询功能

- 重构测试包结构,按模块重新组织测试类
- 优化设备查询功能,增加模糊查询接口
- 更新数据库脚本,添加部门数据初始化
- 调整部分类名以更好地反映其功能和所在包
This commit is contained in:
zhuangtianxiang 2025-01-04 15:53:55 +08:00
parent 75d640cf3c
commit df72492f90
27 changed files with 152 additions and 46 deletions

View File

@ -6,6 +6,7 @@ import com.zsc.edu.gateway.modules.iot.device.dto.BatchDeviceDto;
import com.zsc.edu.gateway.modules.iot.device.dto.DeviceDto;
import com.zsc.edu.gateway.modules.iot.device.dto.DeviceServeDto;
import com.zsc.edu.gateway.modules.iot.device.entity.Device;
import com.zsc.edu.gateway.modules.iot.device.entity.DeviceSelect;
import com.zsc.edu.gateway.modules.iot.device.query.DeviceQuery;
import com.zsc.edu.gateway.modules.iot.device.service.DeviceService;
import com.zsc.edu.gateway.modules.iot.device.vo.DeviceVo;
@ -58,7 +59,7 @@ public class DeviceController {
/**
* 查询设备
* 分页查询设备
*/
@GetMapping
public Page<Device> query(Page<Device> page, DeviceQuery query) {
@ -103,4 +104,11 @@ public class DeviceController {
return recordService.recordPhoto(clientId);
}
/**
* 根据名称模糊查询
*/
@GetMapping("/query")
public List<DeviceSelect> query(String name) {
return service.queryByName(name);
}
}

View File

@ -0,0 +1,25 @@
package com.zsc.edu.gateway.modules.iot.device.entity;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
/**
* @author zhuang
*/
@Setter
@Getter
@NoArgsConstructor
@AllArgsConstructor
public class DeviceSelect {
/**
* 设备ID
*/
private Long id;
/**
* 设备名称
*/
private String name;
}

View File

@ -7,6 +7,7 @@ import com.zsc.edu.gateway.modules.iot.device.dto.BatchDeviceDto;
import com.zsc.edu.gateway.modules.iot.device.dto.DeviceDto;
import com.zsc.edu.gateway.modules.iot.device.dto.DeviceServeDto;
import com.zsc.edu.gateway.modules.iot.device.entity.Device;
import com.zsc.edu.gateway.modules.iot.device.entity.DeviceSelect;
import com.zsc.edu.gateway.modules.iot.device.query.DeviceQuery;
import com.zsc.edu.gateway.modules.iot.device.vo.DeviceVo;
@ -25,4 +26,6 @@ public interface DeviceService extends IService<Device> {
DeviceVo detail(Long id);
Boolean serve(DeviceServeDto dto);
List<DeviceSelect> queryByName(String name);
}

View File

@ -11,6 +11,7 @@ import com.zsc.edu.gateway.modules.iot.device.dto.BatchDeviceDto;
import com.zsc.edu.gateway.modules.iot.device.dto.DeviceDto;
import com.zsc.edu.gateway.modules.iot.device.dto.DeviceServeDto;
import com.zsc.edu.gateway.modules.iot.device.entity.Device;
import com.zsc.edu.gateway.modules.iot.device.entity.DeviceSelect;
import com.zsc.edu.gateway.modules.iot.device.mapper.DeviceMapper;
import com.zsc.edu.gateway.modules.iot.device.query.DeviceQuery;
import com.zsc.edu.gateway.modules.iot.device.repo.DeviceRepository;
@ -21,6 +22,7 @@ import com.zsc.edu.gateway.modules.iot.product.repo.ProductRepository;
import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
import java.util.*;
import java.util.stream.Collectors;
@ -144,6 +146,13 @@ public class DeviceServiceImpl extends ServiceImpl<DeviceRepository, Device> imp
} else {
throw new OutlineException("设备[" + dto.clientId + "]不在线!");
}
}
@Override
public List<DeviceSelect> queryByName(String name) {
LambdaQueryWrapper<Device> query = new LambdaQueryWrapper<>();
query.like(StringUtils.hasText(name), Device::getName, name);
List<Device> devices = baseMapper.selectList(query);
return devices.stream().map(device -> new DeviceSelect(device.getId(), device.getName())).collect(Collectors.toList());
}
}

View File

@ -192,7 +192,7 @@ public class BulletinServiceImpl extends ServiceImpl<BulletinRepository, Bulleti
@Override
public Boolean delete(Long id) {
LambdaQueryWrapper<BulletinAttachment> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(BulletinAttachment::getAttachmentId, id);
queryWrapper.eq(BulletinAttachment::getBulletinId, id);
List<BulletinAttachment> bulletinAttachments = bulletinAttachmentRepository.selectList(queryWrapper);
if (!bulletinAttachments.isEmpty()) {
bulletinAttachmentRepository.delete(queryWrapper);

View File

@ -606,3 +606,16 @@ alter table sys_role
comment on column sys_role.dept_id is '部门权限id';
INSERT INTO sys_dept (pid, sub_count, name, dept_sort, enabled, create_by, update_by, create_time, update_time, remark)
VALUES (2, 1, '研发部', 1, TRUE, 'admin', 'admin', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, '负责产品研发'),
(3, 2, '前端组', 2, TRUE, 'admin', 'admin', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, '负责前端开发'),
(4, 2, '后端组', 3, TRUE, 'admin', 'admin', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, '负责后端开发'),
(5, 1, '市场部', 4, TRUE, 'admin', 'admin', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, '负责市场推广'),
(6, 1, '销售组', 5, TRUE, 'admin', 'admin', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, '负责销售'),
(7, 1, '市场调研组', 6, TRUE, 'admin', 'admin', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, '负责市场调研'),
(8, 1, '人力资源部', 7, TRUE, 'admin', 'admin', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, '负责人力资源管理'),
(9, 1, '招聘组', 8, TRUE, 'admin', 'admin', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, '负责招聘'),
(10, 1, '培训组', 9, TRUE, 'admin', 'admin', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, '负责员工培训'),
(11, 1, '财务部', 10, TRUE, 'admin', 'admin', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, '负责财务管理');

View File

@ -0,0 +1,59 @@
create table sys_dept
(
id bigint generated by default as identity
constraint _copy_7
primary key,
pid bigint,
sub_count integer,
name varchar(50) not null,
dept_sort integer,
enabled boolean,
create_by varchar(50),
update_by varchar(50),
create_time timestamp(6),
update_time timestamp(6),
remark varchar(255)
);
comment
on table sys_dept is '部门';
comment
on column sys_dept.id is 'ID';
comment
on column sys_dept.pid is '上级部门';
comment
on column sys_dept.sub_count is '子部门数目';
comment
on column sys_dept.name is '名称';
comment
on column sys_dept.dept_sort is '排序';
comment
on column sys_dept.enabled is '状态';
comment
on column sys_dept.create_by is '创建者';
comment
on column sys_dept.update_by is '更新者';
comment
on column sys_dept.create_time is '创建日期';
comment
on column sys_dept.update_time is '更新时间';
alter table sys_dept
owner to gitea;
create index inx_pid
on sys_dept (pid);
create index inx_enabled
on sys_dept (enabled);

View File

@ -1,9 +1,9 @@
package com.zsc.edu.gateway;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.zsc.edu.gateway.domain.DeptBuilder;
import com.zsc.edu.gateway.domain.RoleBuilder;
import com.zsc.edu.gateway.domain.UserBuilder;
import com.zsc.edu.gateway.domain.system.DeptBuilder;
import com.zsc.edu.gateway.domain.system.RoleBuilder;
import com.zsc.edu.gateway.domain.system.UserBuilder;
import com.zsc.edu.gateway.framework.security.UserDetailsImpl;
import com.zsc.edu.gateway.modules.system.entity.Dept;
import com.zsc.edu.gateway.modules.system.entity.Role;

View File

@ -1,9 +1,9 @@
package com.zsc.edu.gateway;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.zsc.edu.gateway.domain.DeptBuilder;
import com.zsc.edu.gateway.domain.RoleBuilder;
import com.zsc.edu.gateway.domain.UserBuilder;
import com.zsc.edu.gateway.domain.system.DeptBuilder;
import com.zsc.edu.gateway.domain.system.RoleBuilder;
import com.zsc.edu.gateway.domain.system.UserBuilder;
import com.zsc.edu.gateway.framework.security.CustomAccessDeniedHandler;
import com.zsc.edu.gateway.framework.security.CustomAuthenticationFailureHandler;
import com.zsc.edu.gateway.framework.security.UserDetailsImpl;

View File

@ -1,4 +1,4 @@
package com.zsc.edu.gateway.domain;
package com.zsc.edu.gateway.domain.iot;
import static org.apache.commons.lang3.RandomStringUtils.randomAlphabetic;

View File

@ -1,4 +1,4 @@
package com.zsc.edu.gateway.domain;
package com.zsc.edu.gateway.domain.iot;
import com.zsc.edu.gateway.modules.iot.tsl.entity.DataType;
import com.zsc.edu.gateway.modules.iot.tsl.entity.Param;

View File

@ -1,8 +1,9 @@
package com.zsc.edu.gateway.domain;
package com.zsc.edu.gateway.domain.notice;
import com.zsc.edu.gateway.domain.system.BaseEntityBuilder;
import com.zsc.edu.gateway.modules.notice.entity.Bulletin;
public class BulletinBuilder extends BaseEntityBuilder{
public class BulletinBuilder extends BaseEntityBuilder {
private String title;
private String content;
private Boolean top;

View File

@ -1,4 +1,4 @@
package com.zsc.edu.gateway.domain;
package com.zsc.edu.gateway.domain.system;
import com.zsc.edu.gateway.modules.system.entity.Authority;

View File

@ -1,4 +1,4 @@
package com.zsc.edu.gateway.domain;
package com.zsc.edu.gateway.domain.system;
import java.time.LocalDateTime;

View File

@ -1,8 +1,7 @@
package com.zsc.edu.gateway.domain;
package com.zsc.edu.gateway.domain.system;
import com.zsc.edu.gateway.modules.system.entity.Dept;
import java.util.HashSet;
import java.util.List;
public class DeptBuilder extends BaseEntityBuilder {

View File

@ -1,4 +1,4 @@
package com.zsc.edu.gateway.domain;
package com.zsc.edu.gateway.domain.system;
import com.zsc.edu.gateway.modules.system.entity.Authority;
import com.zsc.edu.gateway.modules.system.entity.Role;

View File

@ -1,4 +1,4 @@
package com.zsc.edu.gateway.domain;
package com.zsc.edu.gateway.domain.system;
import com.zsc.edu.gateway.modules.system.entity.Dept;
import com.zsc.edu.gateway.modules.system.entity.Role;

View File

@ -1,7 +1,7 @@
package com.zsc.edu.gateway.rest;
package com.zsc.edu.gateway.rest.notice;
import com.zsc.edu.gateway.MockMvcConfigBase;
import com.zsc.edu.gateway.domain.BulletinBuilder;
import com.zsc.edu.gateway.domain.notice.BulletinBuilder;
import com.zsc.edu.gateway.framework.security.UserDetailsImpl;
import com.zsc.edu.gateway.modules.notice.dto.BulletinDto;
import com.zsc.edu.gateway.modules.notice.entity.Bulletin;

View File

@ -1,7 +1,7 @@
package com.zsc.edu.gateway.rest;
package com.zsc.edu.gateway.rest.system;
import com.zsc.edu.gateway.MockMvcConfigBase;
import com.zsc.edu.gateway.domain.AuthorityBuilder;
import com.zsc.edu.gateway.domain.system.AuthorityBuilder;
import com.zsc.edu.gateway.modules.system.controller.AuthorityController;
import com.zsc.edu.gateway.modules.system.dto.AuthorityDto;
import com.zsc.edu.gateway.modules.system.entity.Authority;

View File

@ -1,14 +1,12 @@
package com.zsc.edu.gateway.rest;
package com.zsc.edu.gateway.rest.system;
//import com.zsc.edu.gateway.MockMvcConfigBase;
import com.zsc.edu.gateway.MockMvcConfigBase;
import com.zsc.edu.gateway.domain.DeptBuilder;
import com.zsc.edu.gateway.domain.system.DeptBuilder;
import com.zsc.edu.gateway.modules.system.controller.DeptController;
import com.zsc.edu.gateway.modules.system.dto.DeptDto;
import com.zsc.edu.gateway.modules.system.entity.Dept;
import com.zsc.edu.gateway.modules.system.mapper.DeptMapper;
import com.zsc.edu.gateway.modules.system.service.DeptService;
import com.zsc.edu.gateway.modules.system.service.UserService;
import org.assertj.core.util.Lists;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;

View File

@ -1,7 +1,7 @@
package com.zsc.edu.gateway.rest;
package com.zsc.edu.gateway.rest.system;
import com.zsc.edu.gateway.MockMvcConfigBase;
import com.zsc.edu.gateway.domain.RoleBuilder;
import com.zsc.edu.gateway.domain.system.RoleBuilder;
import com.zsc.edu.gateway.modules.system.controller.RoleController;
import com.zsc.edu.gateway.modules.system.dto.RoleDto;
import com.zsc.edu.gateway.modules.system.entity.Role;

View File

@ -1,8 +1,7 @@
package com.zsc.edu.gateway.service;
package com.zsc.edu.gateway.service.iot;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.zsc.edu.gateway.domain.ParamBuilder;
import com.zsc.edu.gateway.exception.ConstraintException;
import com.zsc.edu.gateway.domain.iot.ParamBuilder;
import com.zsc.edu.gateway.modules.iot.tsl.dto.ParamDto;
import com.zsc.edu.gateway.modules.iot.tsl.entity.DataType;
import com.zsc.edu.gateway.modules.iot.tsl.entity.Param;

View File

@ -1,8 +1,8 @@
package com.zsc.edu.gateway.service;
package com.zsc.edu.gateway.service.notice;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.zsc.edu.gateway.domain.BulletinBuilder;
import com.zsc.edu.gateway.domain.notice.BulletinBuilder;
import com.zsc.edu.gateway.exception.ConstraintException;
import com.zsc.edu.gateway.framework.security.UserDetailsImpl;
import com.zsc.edu.gateway.modules.notice.dto.BulletinDto;

View File

@ -1,16 +1,12 @@
package com.zsc.edu.gateway.service;
package com.zsc.edu.gateway.service.system;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.zsc.edu.gateway.domain.AuthorityBuilder;
import com.zsc.edu.gateway.exception.ConstraintException;
import com.zsc.edu.gateway.modules.system.dto.AuthorityDto;
import com.zsc.edu.gateway.modules.system.entity.Authority;
import com.zsc.edu.gateway.modules.system.repo.AuthorityRepository;
import com.zsc.edu.gateway.modules.system.service.AuthorityService;
import jakarta.annotation.Resource;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

View File

@ -1,8 +1,8 @@
package com.zsc.edu.gateway.service;
package com.zsc.edu.gateway.service.system;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.zsc.edu.gateway.domain.DeptBuilder;
import com.zsc.edu.gateway.domain.system.DeptBuilder;
import com.zsc.edu.gateway.exception.ConstraintException;
import com.zsc.edu.gateway.modules.system.dto.DeptDto;
import com.zsc.edu.gateway.modules.system.entity.Dept;

View File

@ -1,15 +1,11 @@
package com.zsc.edu.gateway.service;
package com.zsc.edu.gateway.service.system;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.zsc.edu.gateway.domain.RoleBuilder;
import com.zsc.edu.gateway.modules.system.dto.RoleDto;
import com.zsc.edu.gateway.modules.system.entity.Role;
import com.zsc.edu.gateway.modules.system.repo.AuthorityRepository;
import com.zsc.edu.gateway.modules.system.repo.RoleRepository;
import com.zsc.edu.gateway.modules.system.service.RoleService;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

View File

@ -1,4 +1,4 @@
package com.zsc.edu.gateway.service;
package com.zsc.edu.gateway.service.system;
import com.zsc.edu.gateway.modules.system.entity.Authority;
import com.zsc.edu.gateway.modules.system.entity.User;