From 9c9d18cddc9e3d952416c9b11ecc4393977ace63 Mon Sep 17 00:00:00 2001 From: daiyongfei <974332738@qq.com> Date: Thu, 14 Aug 2025 14:21:47 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E8=AE=BE=E5=A4=87=E5=88=86?= =?UTF-8?q?=E7=BB=84=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- aa.conf | 119 ++++++++++++++++++ .../device/DeviceGroupController.java | 6 +- .../encrypt/utils/EncryptUtilsTest.java | 4 +- .../equipment/domain/DeviceGroup.java | 2 +- .../equipment/domain/bo/DeviceGroupBo.java | 7 ++ .../equipment/domain/vo/DeviceGroupVo.java | 9 +- .../equipment/mapper/DeviceGroupMapper.java | 23 ++++ .../service/IDeviceGroupService.java | 1 + .../service/impl/DeviceGroupServiceImpl.java | 43 ++++++- .../mapper/equipment/DeviceGroupMapper.xml | 25 +++- 10 files changed, 227 insertions(+), 12 deletions(-) create mode 100644 aa.conf diff --git a/aa.conf b/aa.conf new file mode 100644 index 00000000..383531e1 --- /dev/null +++ b/aa.conf @@ -0,0 +1,119 @@ + +#user nobody; +worker_processes 1; + +#error_log logs/error.log; +#error_log logs/error.log notice; +#error_log logs/error.log info; + +#pid logs/nginx.pid; + + +events { + worker_connections 1024; +} + + +http { + include mime.types; + default_type application/octet-stream; + + #log_format main '$remote_addr - $remote_user [$time_local] "$request" ' + # '$status $body_bytes_sent "$http_referer" ' + # '"$http_user_agent" "$http_x_forwarded_for"'; + + #access_log logs/access.log main; + + sendfile on; + #tcp_nopush on; + + #keepalive_timeout 0; + keepalive_timeout 65; + + #gzip on; + + server { + listen 80; + server_name cnxhyc.com; + + #charset koi8-r; + + #access_log logs/host.access.log main; + + location / { + root html; + index index.html index.htm; + } + + #error_page 404 /404.html; + + # redirect server error pages to the static page /50x.html + # + error_page 500 502 503 504 /50x.html; + location = /50x.html { + root html; + } + + # proxy the PHP scripts to Apache listening on 127.0.0.1:80 + # + #location ~ \.php$ { + # proxy_pass http://127.0.0.1; + #} + + # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 + # + #location ~ \.php$ { + # root html; + # fastcgi_pass 127.0.0.1:9000; + # fastcgi_index index.php; + # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; + # include fastcgi_params; + #} + + # deny access to .htaccess files, if Apache's document root + # concurs with nginx's one + # + #location ~ /\.ht { + # deny all; + #} + } + + + # another virtual host using mix of IP-, name-, and port-based configuration + # + #server { + # listen 8000; + # listen somename:8080; + # server_name somename alias another.alias; + + # location / { + # root html; + # index index.html index.htm; + # } + #} + + + # HTTPS server + + server { + listen 443 ssl http2; + server_name cnxhyc.com; + + ssl_certificate /cert/cnxhyc.com.pem; + ssl_certificate_key /cert/cnxhyc.com.key; + + # 使用更现代的 SSL 配置 + ssl_protocols TLSv1.2 TLSv1.3; + ssl_ciphers TLS_AES_256_GCM_SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; + ssl_prefer_server_ciphers off; + + ssl_session_cache shared:SSL:10m; + ssl_session_timeout 10m; + + location / { + root html; + index index.html index.htm; + } + } + +} diff --git a/fys-admin/src/main/java/com/fuyuanshen/web/controller/device/DeviceGroupController.java b/fys-admin/src/main/java/com/fuyuanshen/web/controller/device/DeviceGroupController.java index 8f8e7a93..0f0eafab 100644 --- a/fys-admin/src/main/java/com/fuyuanshen/web/controller/device/DeviceGroupController.java +++ b/fys-admin/src/main/java/com/fuyuanshen/web/controller/device/DeviceGroupController.java @@ -2,6 +2,7 @@ package com.fuyuanshen.web.controller.device; import java.util.List; +import com.fuyuanshen.common.mybatis.core.page.TableDataInfo; import lombok.RequiredArgsConstructor; import jakarta.servlet.http.HttpServletResponse; import jakarta.validation.constraints.*; @@ -45,6 +46,7 @@ public class DeviceGroupController extends BaseController { return R.ok(list); } + /** * 导出设备分组列表 */ @@ -56,6 +58,7 @@ public class DeviceGroupController extends BaseController { ExcelUtil.exportExcel(list, "设备分组", DeviceGroupVo.class, response); } + /** * 获取设备分组详细信息 * @@ -63,8 +66,7 @@ public class DeviceGroupController extends BaseController { */ @SaCheckPermission("fys-equipment:group:query") @GetMapping("/{id}") - public R getInfo(@NotNull(message = "主键不能为空") - @PathVariable Long id) { + public R getInfo(@NotNull(message = "主键不能为空") @PathVariable Long id) { return R.ok(deviceGroupService.queryById(id)); } diff --git a/fys-common/fys-common-encrypt/src/main/java/com/fuyuanshen/common/encrypt/utils/EncryptUtilsTest.java b/fys-common/fys-common-encrypt/src/main/java/com/fuyuanshen/common/encrypt/utils/EncryptUtilsTest.java index c81f3538..08b352ac 100644 --- a/fys-common/fys-common-encrypt/src/main/java/com/fuyuanshen/common/encrypt/utils/EncryptUtilsTest.java +++ b/fys-common/fys-common-encrypt/src/main/java/com/fuyuanshen/common/encrypt/utils/EncryptUtilsTest.java @@ -39,8 +39,8 @@ public class EncryptUtilsTest { loginBody.setClientId("e5cd7e4891bf95d1d19206ce24a7b32e"); loginBody.setGrantType("password"); loginBody.setTenantId("894078"); - loginBody.setCode("0"); - loginBody.setUuid("1c285b27f516486f9535face77023aeb"); + loginBody.setCode("9"); + loginBody.setUuid("d5be31eac1244cee851a9903f358bc6a"); // loginBody.setUsername("admin"); // loginBody.setPassword("admin123"); loginBody.setUsername("dyf"); diff --git a/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/domain/DeviceGroup.java b/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/domain/DeviceGroup.java index fa90f59f..16f84142 100644 --- a/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/domain/DeviceGroup.java +++ b/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/domain/DeviceGroup.java @@ -24,7 +24,7 @@ public class DeviceGroup extends TenantEntity { /** * 主键ID */ - @TableId(value = "id") + @TableId(value = "id", type = IdType.AUTO) private Long id; /** diff --git a/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/domain/bo/DeviceGroupBo.java b/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/domain/bo/DeviceGroupBo.java index b475bac4..37cff3b9 100644 --- a/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/domain/bo/DeviceGroupBo.java +++ b/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/domain/bo/DeviceGroupBo.java @@ -5,6 +5,7 @@ import com.fuyuanshen.common.core.validate.EditGroup; import com.fuyuanshen.equipment.domain.DeviceGroup; import com.fuyuanshen.common.mybatis.core.domain.BaseEntity; import io.github.linpeilie.annotations.AutoMapper; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; import jakarta.validation.constraints.*; @@ -55,4 +56,10 @@ public class DeviceGroupBo extends BaseEntity { private Long isDeleted; + @Schema(name = "页码", example = "1") + private Integer pageNum = 1; + + @Schema(name = "每页数据量", example = "10") + private Integer pageSize = 10; + } diff --git a/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/domain/vo/DeviceGroupVo.java b/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/domain/vo/DeviceGroupVo.java index d7eecaa5..58f6450d 100644 --- a/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/domain/vo/DeviceGroupVo.java +++ b/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/domain/vo/DeviceGroupVo.java @@ -1,5 +1,7 @@ package com.fuyuanshen.equipment.domain.vo; +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableField; import com.fuyuanshen.equipment.domain.DeviceGroup; import cn.idev.excel.annotation.ExcelIgnoreUnannotated; import cn.idev.excel.annotation.ExcelProperty; @@ -44,7 +46,7 @@ public class DeviceGroupVo implements Serializable { * 状态:0-禁用,1-正常 */ @ExcelProperty(value = "状态:0-禁用,1-正常") - private Long status; + private String status; /** * 父分组ID @@ -69,4 +71,9 @@ public class DeviceGroupVo implements Serializable { */ private List children; + /** + * 创建时间 + */ + private String createTime; + } diff --git a/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/mapper/DeviceGroupMapper.java b/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/mapper/DeviceGroupMapper.java index a92cfad8..a681455c 100644 --- a/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/mapper/DeviceGroupMapper.java +++ b/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/mapper/DeviceGroupMapper.java @@ -1,8 +1,15 @@ package com.fuyuanshen.equipment.mapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.fuyuanshen.equipment.domain.Device; import com.fuyuanshen.equipment.domain.DeviceGroup; +import com.fuyuanshen.equipment.domain.bo.DeviceGroupBo; import com.fuyuanshen.equipment.domain.vo.DeviceGroupVo; import com.fuyuanshen.common.mybatis.core.mapper.BaseMapperPlus; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** * 设备分组Mapper接口 @@ -12,4 +19,20 @@ import com.fuyuanshen.common.mybatis.core.mapper.BaseMapperPlus; */ public interface DeviceGroupMapper extends BaseMapperPlus { + /** + * 查询设备分组列表 + * + * @param bo 设备分组 + * @return 设备分组 + */ + IPage selectRootGroups(@Param("bo") DeviceGroupBo bo, Page page); + + /** + * 查询子分组 + * + * @param id + * @return + */ + List selectByParentId(Long id); + } diff --git a/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/service/IDeviceGroupService.java b/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/service/IDeviceGroupService.java index 8cda9c83..9662fef4 100644 --- a/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/service/IDeviceGroupService.java +++ b/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/service/IDeviceGroupService.java @@ -1,5 +1,6 @@ package com.fuyuanshen.equipment.service; +import com.fuyuanshen.common.mybatis.core.page.TableDataInfo; import com.fuyuanshen.equipment.domain.vo.DeviceGroupVo; import com.fuyuanshen.equipment.domain.bo.DeviceGroupBo; diff --git a/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/service/impl/DeviceGroupServiceImpl.java b/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/service/impl/DeviceGroupServiceImpl.java index 574bfce5..51cf369b 100644 --- a/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/service/impl/DeviceGroupServiceImpl.java +++ b/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/service/impl/DeviceGroupServiceImpl.java @@ -1,10 +1,16 @@ package com.fuyuanshen.equipment.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.fuyuanshen.common.core.domain.R; import com.fuyuanshen.common.core.utils.MapstructUtils; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.fuyuanshen.common.mybatis.core.page.TableDataInfo; +import com.fuyuanshen.common.satoken.utils.LoginHelper; +import com.fuyuanshen.equipment.domain.Device; +import com.fuyuanshen.equipment.domain.DeviceTypeGrants; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; @@ -15,9 +21,11 @@ import com.fuyuanshen.equipment.domain.DeviceGroup; import com.fuyuanshen.equipment.mapper.DeviceGroupMapper; import com.fuyuanshen.equipment.service.IDeviceGroupService; +import java.text.SimpleDateFormat; import java.util.List; import java.util.Map; import java.util.Collection; +import java.util.stream.Collectors; /** * 设备分组Service业务层处理 @@ -32,6 +40,7 @@ public class DeviceGroupServiceImpl implements IDeviceGroupService { private final DeviceGroupMapper baseMapper; + /** * 查询设备分组 * @@ -52,8 +61,34 @@ public class DeviceGroupServiceImpl implements IDeviceGroupService { */ @Override public List queryList(DeviceGroupBo bo) { - LambdaQueryWrapper lqw = buildQueryWrapper(bo); - return baseMapper.selectVoList(lqw); + Page page = new Page<>(bo.getPageNum(), bo.getPageSize()); + // 1. 查询顶级分组(parent_id为null) + IPage rootGroups = baseMapper.selectRootGroups(bo, page); + List records = rootGroups.getRecords(); + + // 2. 递归构建树形结构 + return records.stream() + .map(this::buildGroupTree) + .collect(Collectors.toList()); + } + + private DeviceGroupVo buildGroupTree(DeviceGroup group) { + DeviceGroupVo vo = convertToVO(group); + // 递归查询子分组 + List children = baseMapper.selectByParentId(group.getId()); + vo.setChildren(children.stream() + .map(this::buildGroupTree) + .collect(Collectors.toList())); + return vo; + } + + private DeviceGroupVo convertToVO(DeviceGroup group) { + DeviceGroupVo vo = new DeviceGroupVo(); + vo.setId(group.getId()); + vo.setGroupName(group.getGroupName()); + vo.setStatus(group.getStatus() == 1 ? "正常" : "禁用"); + vo.setCreateTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(group.getCreateTime())); + return vo; } private LambdaQueryWrapper buildQueryWrapper(DeviceGroupBo bo) { @@ -81,13 +116,13 @@ public class DeviceGroupServiceImpl implements IDeviceGroupService { // 验证分组名称唯一性 DeviceGroup deviceGroup = baseMapper.selectOne(new QueryWrapper().eq("group_name", bo.getGroupName())); if (deviceGroup != null) { - throw new RuntimeException("分组名称已存在,请勿重复添加"); + throw new RuntimeException("分组名称已存在,请勿重复添加!!!"); } // 验证父分组是否存在(如果提供了parentId) DeviceGroup pDeviceGroup = baseMapper.selectById(bo.getParentId()); if (bo.getParentId() != null && pDeviceGroup == null) { - throw new RuntimeException("父分组不存在"); + throw new RuntimeException("父分组不存在!!!"); } DeviceGroup add = MapstructUtils.convert(bo, DeviceGroup.class); diff --git a/fys-modules/fys-equipment/src/main/resources/mapper/equipment/DeviceGroupMapper.xml b/fys-modules/fys-equipment/src/main/resources/mapper/equipment/DeviceGroupMapper.xml index 36cd5e29..95050b14 100644 --- a/fys-modules/fys-equipment/src/main/resources/mapper/equipment/DeviceGroupMapper.xml +++ b/fys-modules/fys-equipment/src/main/resources/mapper/equipment/DeviceGroupMapper.xml @@ -1,7 +1,28 @@ + PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> + + + + + +