From 2825dd87828ee125db4a5e013eb113f5de3219ab Mon Sep 17 00:00:00 2001 From: dzc <2388224167@qq.com> Date: Tue, 22 Apr 2025 10:02:29 +0800 Subject: [PATCH] =?UTF-8?q?feat:app=E9=A2=84=E7=BA=A6=E6=97=B6=E9=97=B4?= =?UTF-8?q?=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- db/800pjcloudx_hardware.sql | 6 +-- .../hard/api/entity/HardApptEntity.java | 7 +-- .../hard/controller/HardApptController.java | 24 +++++---- .../pjcloud/hard/service/HardApptService.java | 16 ++++++ .../service/impl/HardApptServiceImpl.java | 51 +++++++++++++++++++ 5 files changed, 89 insertions(+), 15 deletions(-) diff --git a/db/800pjcloudx_hardware.sql b/db/800pjcloudx_hardware.sql index 34ae09a85..b6edc26dd 100644 --- a/db/800pjcloudx_hardware.sql +++ b/db/800pjcloudx_hardware.sql @@ -372,9 +372,9 @@ DROP TABLE IF EXISTS hard_appt; CREATE TABLE hard_appt ( id bigint NOT NULL AUTO_INCREMENT COMMENT '编号', - title bigint NOT NULL COMMENT '标题', - start_time datetime DEFAULT NULL COMMENT '开始时间', - end_time datetime DEFAULT NULL COMMENT '结束时间', + title varchar(64) NOT NULL COMMENT '标题', + start_time time DEFAULT NULL COMMENT '开始时间', + end_time time DEFAULT NULL COMMENT '结束时间', sort int DEFAULT 0 NOT NULL COMMENT '排序', status varchar(32) NOT NULL COMMENT '状态', remark varchar(256) DEFAULT NULL COMMENT '备注', diff --git a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/entity/HardApptEntity.java b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/entity/HardApptEntity.java index 2a7c50907..cb8e20eea 100644 --- a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/entity/HardApptEntity.java +++ b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/entity/HardApptEntity.java @@ -8,6 +8,7 @@ import lombok.EqualsAndHashCode; import com.bsd.pjcloud.common.core.util.TenantTable; import java.time.LocalDateTime; +import java.time.LocalTime; /** * 设备预约管理 @@ -31,19 +32,19 @@ public class HardApptEntity extends Model { * 标题 */ @Schema(description = "标题") - private Long title; + private String title; /** * 开始时间 */ @Schema(description = "开始时间") - private LocalDateTime startTime; + private LocalTime startTime; /** * 结束时间 */ @Schema(description = "结束时间") - private LocalDateTime endTime; + private LocalTime endTime; /** * 排序 diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/HardApptController.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/HardApptController.java index fcfbe51a5..20b43bbc2 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/HardApptController.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/HardApptController.java @@ -2,9 +2,11 @@ package com.bsd.pjcloud.hard.controller; import cn.hutool.core.util.ArrayUtil; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.ObjectUtil; 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.constant.enums.YesNoEnum; import com.bsd.pjcloud.common.core.util.R; import com.bsd.pjcloud.common.log.annotation.SysLog; import com.bsd.pjcloud.hard.api.entity.HardApptEntity; @@ -37,21 +39,24 @@ public class HardApptController { /* ************************************* start app start ************************************* */ - @Operation(summary = "小程序列表", description = "小程序列表") + @Operation(summary = "app预约时间列表", description = "app预约时间列表") @GetMapping("/app/list") public R> appList() { - return R.ok(hardApptService.list(new LambdaQueryWrapper().orderByDesc(HardApptEntity::getSort))); + List list = hardApptService.list(new LambdaQueryWrapper() + .eq(HardApptEntity::getStatus, YesNoEnum.YES.getCode()) + .orderByDesc(HardApptEntity::getSort) + ); + return R.ok(list); } - /* ************************************* end app end ************************************* */ - @Operation(summary = "分页查询", description = "分页查询") @GetMapping("/page") @PreAuthorize("@pms.hasPermission('hard_hardAppt_view')") - public R getHardApptPage(@ParameterObject Page page, @ParameterObject HardApptEntity hardAppt) { - LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(); + public R getHardApptPage(@ParameterObject Page page, @ParameterObject HardApptEntity dto) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper() + .like(ObjectUtil.isNotEmpty(dto.getTitle()), HardApptEntity::getTitle, dto.getTitle()); return R.ok(hardApptService.page(page, wrapper)); } @@ -67,7 +72,7 @@ public class HardApptController { @PostMapping @PreAuthorize("@pms.hasPermission('hard_hardAppt_add')") public R save(@RequestBody HardApptEntity hardAppt) { - return R.ok(hardApptService.save(hardAppt)); + return R.ok(hardApptService.create(hardAppt)); } @Operation(summary = "修改设备预约管理", description = "修改设备预约管理") @@ -75,7 +80,7 @@ public class HardApptController { @PutMapping @PreAuthorize("@pms.hasPermission('hard_hardAppt_edit')") public R updateById(@RequestBody HardApptEntity hardAppt) { - return R.ok(hardApptService.updateById(hardAppt)); + return R.ok(hardApptService.edit(hardAppt)); } @Operation(summary = "通过id删除设备预约管理", description = "通过id删除设备预约管理") @@ -83,7 +88,8 @@ public class HardApptController { @DeleteMapping @PreAuthorize("@pms.hasPermission('hard_hardAppt_del')") public R removeById(@RequestBody Long[] ids) { - return R.ok(hardApptService.removeBatchByIds(CollUtil.toList(ids))); + hardApptService.delByIds(CollUtil.toList(ids)); + return R.ok(); } @ResponseExcel diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardApptService.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardApptService.java index 13bf93ba3..7abbc3128 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardApptService.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardApptService.java @@ -3,6 +3,22 @@ package com.bsd.pjcloud.hard.service; import com.baomidou.mybatisplus.extension.service.IService; import com.bsd.pjcloud.hard.api.entity.HardApptEntity; +import java.util.ArrayList; + public interface HardApptService extends IService { + /** + * 新增 + */ + Long create(HardApptEntity hardAppt); + + /** + * 修改 + */ + Long edit(HardApptEntity hardAppt); + + /** + * 删除 + */ + void delByIds(ArrayList list); } \ No newline at end of file diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/HardApptServiceImpl.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/HardApptServiceImpl.java index 28d399a70..b1f4b0a45 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/HardApptServiceImpl.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/HardApptServiceImpl.java @@ -1,5 +1,7 @@ package com.bsd.pjcloud.hard.service.impl; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.bsd.pjcloud.hard.api.entity.HardApptEntity; import com.bsd.pjcloud.hard.mapper.HardApptMapper; @@ -9,6 +11,8 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; +import java.util.ArrayList; + /** * 设备预约管理 */ @@ -17,4 +21,51 @@ import org.springframework.validation.annotation.Validated; @RequiredArgsConstructor @Service public class HardApptServiceImpl extends ServiceImpl implements HardApptService { + + /** + * 新增 + */ + @Override + public Long create(HardApptEntity dto) { + // title不能重复 + if (existTitle(dto.getTitle(), null)) { + throw new RuntimeException("标题不能重复"); + } + baseMapper.insert(dto); + return 0L; + } + + /** + * 修改 + */ + @Override + public Long edit(HardApptEntity dto) { + // title不能重复 + if (existTitle(dto.getTitle(), dto.getId())) { + throw new RuntimeException("标题不能重复"); + } + baseMapper.updateById(dto); + return dto.getId(); + } + + /** + * 删除 + */ + @Override + public void delByIds(ArrayList list) { + if (ObjectUtil.isEmpty(list)) return; + baseMapper.deleteBatchIds(list); + } + + private boolean existTitle(String title, Long id) { + Long count = baseMapper.selectCount(new LambdaQueryWrapper() + .eq(ObjectUtil.isNotEmpty(title), HardApptEntity::getTitle, title) + .ne(ObjectUtil.isNotEmpty(id), HardApptEntity::getId, id) + ); + if (ObjectUtil.isNotEmpty(id)) { + return count >= 1; + } + return count > 0; + } + } \ No newline at end of file