From 0ff7a302ea112bad0ac6854fb9aa1464f86ac3cd Mon Sep 17 00:00:00 2001 From: dzc <2388224167@qq.com> Date: Fri, 11 Apr 2025 15:25:27 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E7=A1=AC=E4=BB=B6=E5=B9=BF=E6=92=AD?= =?UTF-8?q?=E3=80=81=E7=A1=AC=E4=BB=B6=E6=8E=88=E6=9D=83=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bsd/pjcloud/hard/api/dto/HardAuthDto.java | 9 ++ .../hard/api/dto/HardBroadcastDto.java | 7 + .../hard/api/entity/HardAuthEntity.java | 121 +++++++++--------- .../bsd/pjcloud/hard/api/vo/HardAuthVo.java | 29 ++++- .../pjcloud/hard/api/vo/HardBroadcastVo.java | 30 ++++- .../hard/controller/HardAuthController.java | 11 +- .../controller/HardBroadcastController.java | 53 ++++---- .../pjcloud/hard/mapper/HardAuthMapper.java | 6 + .../hard/mapper/HardBroadcastMapper.java | 7 +- .../pjcloud/hard/service/HardAuthService.java | 5 + .../hard/service/HardBroadcastService.java | 6 + .../service/impl/HardAuthServiceImpl.java | 50 ++++++++ .../impl/HardBroadcastServiceImpl.java | 58 +++++++++ .../main/resources/mapper/HardAuthMapper.xml | 54 +++++++- .../resources/mapper/HardBroadcastMapper.xml | 61 ++++++++- 15 files changed, 412 insertions(+), 95 deletions(-) diff --git a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/dto/HardAuthDto.java b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/dto/HardAuthDto.java index d3b4ff4e4..2eac5ae67 100644 --- a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/dto/HardAuthDto.java +++ b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/dto/HardAuthDto.java @@ -3,6 +3,15 @@ package com.bsd.pjcloud.hard.api.dto; import com.bsd.pjcloud.hard.api.entity.HardAuthEntity; import lombok.Data; +import java.time.LocalDate; + @Data public class HardAuthDto extends HardAuthEntity { + + private LocalDate[] createTimeList; + + private LocalDate[] authTimeList; + + private LocalDate[] isDoneTimeList; + } diff --git a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/dto/HardBroadcastDto.java b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/dto/HardBroadcastDto.java index 758ab3ab5..52af6d62d 100644 --- a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/dto/HardBroadcastDto.java +++ b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/dto/HardBroadcastDto.java @@ -3,6 +3,13 @@ package com.bsd.pjcloud.hard.api.dto; import com.bsd.pjcloud.hard.api.entity.HardBroadcastEntity; import lombok.Data; +import java.time.LocalDate; + @Data public class HardBroadcastDto extends HardBroadcastEntity { + + private LocalDate[] createTimeList; + + private LocalDate[] isDoneTimeList; + } diff --git a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/entity/HardAuthEntity.java b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/entity/HardAuthEntity.java index cbb076493..22742289a 100644 --- a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/entity/HardAuthEntity.java +++ b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/entity/HardAuthEntity.java @@ -6,6 +6,7 @@ import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; import com.bsd.pjcloud.common.core.util.TenantTable; + import java.time.LocalDateTime; /** @@ -19,88 +20,94 @@ import java.time.LocalDateTime; public class HardAuthEntity extends Model { - /** - * 编号 - */ + /** + * 编号 + */ @TableId(type = IdType.ASSIGN_ID) - @Schema(description="编号") + @Schema(description = "编号") private Long id; - /** - * 预定用户 - */ - @Schema(description="预定用户") + /** + * 预定用户 + */ + @Schema(description = "预定用户") private Long userId; - /** - * 硬件id - */ - @Schema(description="硬件id") + /** + * 硬件id + */ + @Schema(description = "硬件id") private Long hardId; - /** - * 是否授权 - */ - @Schema(description="是否授权") + /** + * 是否授权 + */ + @Schema(description = "是否授权") + private String authType; + + /** + * 是否授权 + */ + @Schema(description = "是否授权") private String authStatus; - /** - * 授权时间 - */ - @Schema(description="授权时间") + /** + * 授权时间 + */ + @Schema(description = "授权时间") private LocalDateTime authTime; - /** - * 是否完成 - */ - @Schema(description="是否完成") + /** + * 是否完成 + */ + @Schema(description = "是否完成") private String isDone; - /** - * 完成时间 - */ - @Schema(description="完成时间") + /** + * 完成时间 + */ + @Schema(description = "完成时间") private LocalDateTime isDoneTime; - /** - * 创建人 - */ - @TableField(fill = FieldFill.INSERT) - @Schema(description="创建人") + /** + * 创建人 + */ + @TableField(fill = FieldFill.INSERT) + @Schema(description = "创建人") private String createBy; - /** - * 创建时间 - */ - @TableField(fill = FieldFill.INSERT) - @Schema(description="创建时间") + /** + * 创建时间 + */ + @TableField(fill = FieldFill.INSERT) + @Schema(description = "创建时间") private LocalDateTime createTime; - /** - * 修改人 - */ - @TableField(fill = FieldFill.INSERT_UPDATE) - @Schema(description="修改人") + /** + * 修改人 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + @Schema(description = "修改人") private String updateBy; - /** - * 修改时间 - */ - @TableField(fill = FieldFill.INSERT_UPDATE) - @Schema(description="修改时间") + /** + * 修改时间 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + @Schema(description = "修改时间") private LocalDateTime updateTime; - /** - * 删除标记 - */ + /** + * 删除标记 + */ @TableLogic - @TableField(fill = FieldFill.INSERT) - @Schema(description="删除标记") + @TableField(fill = FieldFill.INSERT) + @Schema(description = "删除标记") private String delFlag; - /** - * 租户ID - */ - @Schema(description="租户ID") + /** + * 租户ID + */ + @Schema(description = "租户ID") private Long tenantId; } \ No newline at end of file diff --git a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/HardAuthVo.java b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/HardAuthVo.java index fab679c58..4baf063ea 100644 --- a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/HardAuthVo.java +++ b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/HardAuthVo.java @@ -1,8 +1,35 @@ package com.bsd.pjcloud.hard.api.vo; +import com.bsd.pjcloud.admin.api.vo.base.BaseUserDeptInterface; import com.bsd.pjcloud.hard.api.entity.HardAuthEntity; +import com.bsd.pjcloud.hard.api.vo.base.BaseHardInterface; import lombok.Data; +import java.util.List; + @Data -public class HardAuthVo extends HardAuthEntity { +public class HardAuthVo extends HardAuthEntity implements BaseHardInterface, BaseUserDeptInterface { + + /** + * 设备相关 + */ + private String hardName; + + private String hardType; + + private List hardTypeCodes; + + /** + * 用户相关 + */ + private String username; + + private String userMobile; + + private String userAvatar; + + private Long userDeptId; + + private String userDeptName; + } diff --git a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/HardBroadcastVo.java b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/HardBroadcastVo.java index 81c9dab28..78572391e 100644 --- a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/HardBroadcastVo.java +++ b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/HardBroadcastVo.java @@ -1,8 +1,36 @@ package com.bsd.pjcloud.hard.api.vo; +import com.bsd.pjcloud.admin.api.vo.base.BaseUserDeptInterface; import com.bsd.pjcloud.hard.api.entity.HardBroadcastEntity; +import com.bsd.pjcloud.hard.api.vo.base.BaseHardInterface; import lombok.Data; +import java.util.List; + @Data -public class HardBroadcastVo extends HardBroadcastEntity { +public class HardBroadcastVo extends HardBroadcastEntity implements BaseHardInterface, BaseUserDeptInterface { + + /** + * 设备相关 + */ + private String hardName; + + private String hardType; + + private List hardTypeCodes; + + /** + * 用户相关 + */ + private String username; + + private String userMobile; + + private String userAvatar; + + private Long userDeptId; + + private String userDeptName; + + } diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/HardAuthController.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/HardAuthController.java index e48d23e33..e136e13a4 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/HardAuthController.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/HardAuthController.java @@ -6,8 +6,11 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.bsd.pjcloud.common.core.util.R; +import com.bsd.pjcloud.common.data.datascope.DataScope; import com.bsd.pjcloud.common.log.annotation.SysLog; +import com.bsd.pjcloud.hard.api.dto.HardAuthDto; import com.bsd.pjcloud.hard.api.entity.HardAuthEntity; +import com.bsd.pjcloud.hard.api.vo.HardAuthVo; import com.bsd.pjcloud.hard.service.HardAuthService; import org.springframework.security.access.prepost.PreAuthorize; import com.bsd.pjcloud.common.excel.annotation.ResponseExcel; @@ -35,11 +38,11 @@ public class HardAuthController { private final HardAuthService hardAuthService; @Operation(summary = "分页查询", description = "分页查询") - @GetMapping("/page") + @GetMapping("/page-join") @PreAuthorize("@pms.hasPermission('hard_hardAuth_view')") - public R getHardAuthPage(@ParameterObject Page page, @ParameterObject HardAuthEntity hardAuth) { - LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(); - return R.ok(hardAuthService.page(page, wrapper)); + public R> pageJoin(@ParameterObject Page page, @ParameterObject HardAuthDto dto) { + DataScope dataScope = null; + return R.ok(hardAuthService.scopePageJoin(page, dto, dataScope)); } @Operation(summary = "通过id查询", description = "通过id查询") diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/HardBroadcastController.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/HardBroadcastController.java index b32684ab5..debdb64a5 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/HardBroadcastController.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/HardBroadcastController.java @@ -6,8 +6,11 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.bsd.pjcloud.common.core.util.R; +import com.bsd.pjcloud.common.data.datascope.DataScope; import com.bsd.pjcloud.common.log.annotation.SysLog; -import com.bsd.pjcloud.hard.entity.HardBroadcastEntity; +import com.bsd.pjcloud.hard.api.dto.HardBroadcastDto; +import com.bsd.pjcloud.hard.api.entity.HardBroadcastEntity; +import com.bsd.pjcloud.hard.api.vo.HardBroadcastVo; import com.bsd.pjcloud.hard.service.HardBroadcastService; import org.springframework.security.access.prepost.PreAuthorize; import com.bsd.pjcloud.common.excel.annotation.ResponseExcel; @@ -27,56 +30,56 @@ import java.util.Objects; */ @RestController @RequiredArgsConstructor -@RequestMapping("/hard-broadcast" ) -@Tag(description = "hard-broadcast" , name = "设备广播管理" ) +@RequestMapping("/hard-broadcast") +@Tag(description = "hard-broadcast", name = "设备广播管理") @SecurityRequirement(name = HttpHeaders.AUTHORIZATION) public class HardBroadcastController { - private final HardBroadcastService hardBroadcastService; + private final HardBroadcastService hardBroadcastService; - @Operation(summary = "分页查询" , description = "分页查询" ) - @GetMapping("/page" ) - @PreAuthorize("@pms.hasPermission('hard_hardBroadcast_view')" ) - public R getHardBroadcastPage(@ParameterObject Page page, @ParameterObject HardBroadcastEntity hardBroadcast) { - LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(); - return R.ok(hardBroadcastService.page(page, wrapper)); + @Operation(summary = "分页查询", description = "分页查询") + @GetMapping("/page-join") + @PreAuthorize("@pms.hasPermission('hard_hardBroadcast_view')") + public R> pageJoin(@ParameterObject Page page, @ParameterObject HardBroadcastDto dto) { + DataScope dataScope = null; + return R.ok(hardBroadcastService.scopePageJoin(page, dto, dataScope)); } - @Operation(summary = "通过id查询" , description = "通过id查询" ) - @GetMapping("/{id}" ) - @PreAuthorize("@pms.hasPermission('hard_hardBroadcast_view')" ) - public R getById(@PathVariable("id" ) Long id) { + @Operation(summary = "通过id查询", description = "通过id查询") + @GetMapping("/{id}") + @PreAuthorize("@pms.hasPermission('hard_hardBroadcast_view')") + public R getById(@PathVariable("id") Long id) { return R.ok(hardBroadcastService.getById(id)); } - @Operation(summary = "新增设备广播" , description = "新增设备广播" ) - @SysLog("新增设备广播" ) + @Operation(summary = "新增设备广播", description = "新增设备广播") + @SysLog("新增设备广播") @PostMapping - @PreAuthorize("@pms.hasPermission('hard_hardBroadcast_add')" ) + @PreAuthorize("@pms.hasPermission('hard_hardBroadcast_add')") public R save(@RequestBody HardBroadcastEntity hardBroadcast) { return R.ok(hardBroadcastService.save(hardBroadcast)); } - @Operation(summary = "修改设备广播" , description = "修改设备广播" ) - @SysLog("修改设备广播" ) + @Operation(summary = "修改设备广播", description = "修改设备广播") + @SysLog("修改设备广播") @PutMapping - @PreAuthorize("@pms.hasPermission('hard_hardBroadcast_edit')" ) + @PreAuthorize("@pms.hasPermission('hard_hardBroadcast_edit')") public R updateById(@RequestBody HardBroadcastEntity hardBroadcast) { return R.ok(hardBroadcastService.updateById(hardBroadcast)); } - @Operation(summary = "通过id删除设备广播" , description = "通过id删除设备广播" ) - @SysLog("通过id删除设备广播" ) + @Operation(summary = "通过id删除设备广播", description = "通过id删除设备广播") + @SysLog("通过id删除设备广播") @DeleteMapping - @PreAuthorize("@pms.hasPermission('hard_hardBroadcast_del')" ) + @PreAuthorize("@pms.hasPermission('hard_hardBroadcast_del')") public R removeById(@RequestBody Long[] ids) { return R.ok(hardBroadcastService.removeBatchByIds(CollUtil.toList(ids))); } @ResponseExcel @GetMapping("/export") - @PreAuthorize("@pms.hasPermission('hard_hardBroadcast_export')" ) - public List export(HardBroadcastEntity hardBroadcast,Long[] ids) { + @PreAuthorize("@pms.hasPermission('hard_hardBroadcast_export')") + public List export(HardBroadcastEntity hardBroadcast, Long[] ids) { return hardBroadcastService.list(Wrappers.lambdaQuery(hardBroadcast).in(ArrayUtil.isNotEmpty(ids), HardBroadcastEntity::getId, ids)); } } \ No newline at end of file diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/mapper/HardAuthMapper.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/mapper/HardAuthMapper.java index 9509a461b..72d6972be 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/mapper/HardAuthMapper.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/mapper/HardAuthMapper.java @@ -1,11 +1,17 @@ package com.bsd.pjcloud.hard.mapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.bsd.pjcloud.common.data.datascope.DataScope; import com.bsd.pjcloud.common.data.datascope.PjcloudBaseMapper; +import com.bsd.pjcloud.hard.api.dto.HardAuthDto; import com.bsd.pjcloud.hard.api.entity.HardAuthEntity; +import com.bsd.pjcloud.hard.api.vo.HardAuthVo; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; @Mapper public interface HardAuthMapper extends PjcloudBaseMapper { + Page scopePageJoin(Page page, @Param("dto") HardAuthDto dto, DataScope dataScope); } \ No newline at end of file diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/mapper/HardBroadcastMapper.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/mapper/HardBroadcastMapper.java index 19b17beb3..a3f334483 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/mapper/HardBroadcastMapper.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/mapper/HardBroadcastMapper.java @@ -1,10 +1,15 @@ package com.bsd.pjcloud.hard.mapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.bsd.pjcloud.common.data.datascope.DataScope; import com.bsd.pjcloud.common.data.datascope.PjcloudBaseMapper; +import com.bsd.pjcloud.hard.api.dto.HardBroadcastDto; import com.bsd.pjcloud.hard.api.entity.HardBroadcastEntity; +import com.bsd.pjcloud.hard.api.vo.HardBroadcastVo; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; @Mapper public interface HardBroadcastMapper extends PjcloudBaseMapper { - + Page scopePageJoin(Page page, @Param("dto") HardBroadcastDto dto, DataScope dataScope); } \ No newline at end of file diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardAuthService.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardAuthService.java index 2daf3b3d2..4285a5857 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardAuthService.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardAuthService.java @@ -1,8 +1,13 @@ package com.bsd.pjcloud.hard.service; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; +import com.bsd.pjcloud.common.data.datascope.DataScope; +import com.bsd.pjcloud.hard.api.dto.HardAuthDto; import com.bsd.pjcloud.hard.api.entity.HardAuthEntity; +import com.bsd.pjcloud.hard.api.vo.HardAuthVo; public interface HardAuthService extends IService { + Page scopePageJoin(Page page, HardAuthDto dto, DataScope dataScope); } \ No newline at end of file diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardBroadcastService.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardBroadcastService.java index 336076ec5..eb5bf30b9 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardBroadcastService.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardBroadcastService.java @@ -1,8 +1,14 @@ package com.bsd.pjcloud.hard.service; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; +import com.bsd.pjcloud.common.data.datascope.DataScope; +import com.bsd.pjcloud.hard.api.dto.HardBroadcastDto; import com.bsd.pjcloud.hard.api.entity.HardBroadcastEntity; +import com.bsd.pjcloud.hard.api.vo.HardBroadcastVo; public interface HardBroadcastService extends IService { + Page scopePageJoin(Page page, HardBroadcastDto dto, DataScope dataScope); + } \ No newline at end of file diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/HardAuthServiceImpl.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/HardAuthServiceImpl.java index ad1204888..434d0b8ad 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/HardAuthServiceImpl.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/HardAuthServiceImpl.java @@ -1,14 +1,31 @@ package com.bsd.pjcloud.hard.service.impl; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.bsd.pjcloud.admin.api.feign.RemoteUserService; +import com.bsd.pjcloud.admin.api.utils.DataUtil; +import com.bsd.pjcloud.admin.api.vo.UserVO; +import com.bsd.pjcloud.common.core.util.CollectionUtils; +import com.bsd.pjcloud.common.core.util.R; +import com.bsd.pjcloud.common.data.datascope.DataScope; +import com.bsd.pjcloud.hard.api.dto.HardAuthDto; +import com.bsd.pjcloud.hard.api.dto.manager.HardManagerDto; import com.bsd.pjcloud.hard.api.entity.HardAuthEntity; +import com.bsd.pjcloud.hard.api.entity.manager.HardManagerEntity; +import com.bsd.pjcloud.hard.api.utils.HardUtil; +import com.bsd.pjcloud.hard.api.vo.HardAuthVo; import com.bsd.pjcloud.hard.mapper.HardAuthMapper; +import com.bsd.pjcloud.hard.mapper.manager.HardManagerMapper; import com.bsd.pjcloud.hard.service.HardAuthService; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; +import java.util.ArrayList; +import java.util.List; + /** * 硬件授权 */ @@ -17,4 +34,37 @@ import org.springframework.validation.annotation.Validated; @RequiredArgsConstructor @Service public class HardAuthServiceImpl extends ServiceImpl implements HardAuthService { + + private final HardManagerMapper hardManagerMapper; + + private final RemoteUserService remoteUserService; + + @Override + public Page scopePageJoin(Page page, HardAuthDto dto, DataScope dataScope) { + Page pageList = baseMapper.scopePageJoin(page, dto, dataScope); + disposeList(pageList.getRecords(), dto); + return pageList; + } + + private void disposeList(List list, HardAuthDto dto) { + if (ObjectUtil.isEmpty(list)) return; + // 设备 + List hardIds = list.stream().map(HardAuthVo::getHardId).filter(ObjectUtil::isNotEmpty).distinct().toList(); + if (ObjectUtil.isNotEmpty(hardIds)) { + HardManagerDto hardManagerDto = new HardManagerDto(); + hardManagerDto.setIds(hardIds); + List hardList = hardManagerMapper.list(hardManagerDto); + if (ObjectUtil.isNotEmpty(hardList)) { + HardUtil.convertHardList(list, CollectionUtils.convertMap(hardList, HardManagerEntity::getId)); + } + } + // 用户 + List userIds = list.stream().map(HardAuthVo::getUserId).distinct().toList(); + if (ObjectUtil.isNotEmpty(userIds)) { + R> userList = remoteUserService.getUserDeptByIds(new ArrayList<>(userIds)); + if (ObjectUtil.isNotEmpty(userList.getData())) { + DataUtil.convertUserDeptList(list, CollectionUtils.convertMap(userList.getData(), UserVO::getUserId)); + } + } + } } \ No newline at end of file diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/HardBroadcastServiceImpl.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/HardBroadcastServiceImpl.java index bfcae31d2..68ceba6f1 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/HardBroadcastServiceImpl.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/HardBroadcastServiceImpl.java @@ -1,14 +1,72 @@ package com.bsd.pjcloud.hard.service.impl; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.bsd.pjcloud.admin.api.feign.RemoteUserService; +import com.bsd.pjcloud.admin.api.utils.DataUtil; +import com.bsd.pjcloud.admin.api.vo.UserVO; +import com.bsd.pjcloud.common.core.util.CollectionUtils; +import com.bsd.pjcloud.common.core.util.R; +import com.bsd.pjcloud.common.data.datascope.DataScope; +import com.bsd.pjcloud.hard.api.dto.HardBroadcastDto; +import com.bsd.pjcloud.hard.api.dto.manager.HardManagerDto; import com.bsd.pjcloud.hard.api.entity.HardBroadcastEntity; +import com.bsd.pjcloud.hard.api.entity.manager.HardManagerEntity; +import com.bsd.pjcloud.hard.api.utils.HardUtil; +import com.bsd.pjcloud.hard.api.vo.HardAuthVo; +import com.bsd.pjcloud.hard.api.vo.HardBroadcastVo; import com.bsd.pjcloud.hard.mapper.HardBroadcastMapper; +import com.bsd.pjcloud.hard.mapper.manager.HardManagerMapper; import com.bsd.pjcloud.hard.service.HardBroadcastService; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; + +import java.util.ArrayList; +import java.util.List; /** * 设备广播 */ +@Validated +@Slf4j +@RequiredArgsConstructor @Service public class HardBroadcastServiceImpl extends ServiceImpl implements HardBroadcastService { + + private final HardManagerMapper hardManagerMapper; + + private final RemoteUserService remoteUserService; + + @Override + public Page scopePageJoin(Page page, HardBroadcastDto dto, DataScope dataScope) { + Page pageList = baseMapper.scopePageJoin(page, dto, dataScope); + disposeList(pageList.getRecords(), dto); + return pageList; + } + + private void disposeList(List list, HardBroadcastDto dto) { + if (ObjectUtil.isEmpty(list)) return; + // 设备 + List hardIds = list.stream().map(HardBroadcastVo::getHardId).filter(ObjectUtil::isNotEmpty).distinct().toList(); + if (ObjectUtil.isNotEmpty(hardIds)) { + HardManagerDto hardManagerDto = new HardManagerDto(); + hardManagerDto.setIds(hardIds); + List hardList = hardManagerMapper.list(hardManagerDto); + if (ObjectUtil.isNotEmpty(hardList)) { + HardUtil.convertHardList(list, CollectionUtils.convertMap(hardList, HardManagerEntity::getId)); + } + } + // 用户 + List userIds = list.stream().map(HardBroadcastVo::getUserId).distinct().toList(); + if (ObjectUtil.isNotEmpty(userIds)) { + R> userList = remoteUserService.getUserDeptByIds(new ArrayList<>(userIds)); + if (ObjectUtil.isNotEmpty(userList.getData())) { + DataUtil.convertUserDeptList(list, CollectionUtils.convertMap(userList.getData(), UserVO::getUserId)); + } + } + } + } \ No newline at end of file diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/mapper/HardAuthMapper.xml b/pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/mapper/HardAuthMapper.xml index 6f9c65a85..8421a5a8d 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/mapper/HardAuthMapper.xml +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/mapper/HardAuthMapper.xml @@ -2,11 +2,11 @@ - - + + @@ -17,5 +17,53 @@ - + + + + select a.id, + a.user_id, + a.hard_id, + a.auth_type, + a.auth_status, + a.auth_time, + a.is_done, + a.is_done_time, + a.create_by, + a.create_time, + a.update_by, + a.update_time, + a.del_flag, + a.tenant_id, + + + + a.del_flag = '0' + + and a.userId = #{dto.userId} + + + and a.authStatus = #{dto.auth_status} + + + and a.is_done = #{dto.isDone} + + + and a.create_time between #{dto.createTimeList[0]} and #{dto.createTimeList[1]} + + + and a.auth_time between #{dto.authTimeList[0]} and #{dto.authTimeList[1]} + + + and a.is_done_time between #{dto.isDoneTimeList[0]} and #{dto.isDoneTimeList[1]} + + + + \ No newline at end of file diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/mapper/HardBroadcastMapper.xml b/pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/mapper/HardBroadcastMapper.xml index 71aa9344d..af902b355 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/mapper/HardBroadcastMapper.xml +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/mapper/HardBroadcastMapper.xml @@ -2,8 +2,7 @@ - - + @@ -22,5 +21,61 @@ - + + + + select a.id, + a.user_id, + a.hard_id, + a.topic, + a.biz_id, + a.title, + a.content, + a.broadcast_count, + a.broadcast_max_count, + a.is_broadcast, + a.is_done, + a.is_done_time, + a.create_by, + a.create_time, + a.update_by, + a.update_time, + a.del_flag, + a.tenant_id, + + + + a.del_flag = '0' + + and a.userId = #{dto.userId} + + + and a.hard_id = #{dto.hardId} + + + and a.biz_id = #{dto.bizId} + + + and a.is_broadcast = #{dto.isBroadcast} + + + and a.is_done = #{dto.isDone} + + + and a.create_time between #{dto.createTimeList[0]} and #{dto.createTimeList[1]} + + + and a.is_done_time between #{dto.isDoneTimeList[0]} and #{dto.isDoneTimeList[1]} + + + + + \ No newline at end of file