From f4a240d8b38024937132191ce8283293e4af34c8 Mon Sep 17 00:00:00 2001 From: XinWei <2718030729@qq.com> Date: Tue, 30 Jul 2024 15:59:48 +0800 Subject: [PATCH] =?UTF-8?q?=E5=81=9C=E8=BD=A6=E5=9C=BA-=E8=BF=9C=E7=A8=8B?= =?UTF-8?q?=E6=8A=AC=E6=9D=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../parking/enums/ErrorCodeConstants.java | 3 +- .../liftingrod/LiftingRodController.java | 95 +++++++++++++++++++ .../liftingrod/vo/LiftingRodPageReqVO.java | 28 ++++++ .../admin/liftingrod/vo/LiftingRodRespVO.java | 32 +++++++ .../liftingrod/vo/LiftingRodSaveReqVO.java | 23 +++++ .../dataobject/liftingrod/LiftingRodDO.java | 39 ++++++++ .../mysql/liftingrod/LiftingRodMapper.java | 28 ++++++ .../service/liftingrod/LiftingRodService.java | 55 +++++++++++ .../liftingrod/LiftingRodServiceImpl.java | 74 +++++++++++++++ .../mapper/liftingrod/LiftingRodMapper.xml | 12 +++ 10 files changed, 388 insertions(+), 1 deletion(-) create mode 100644 ludu-module-parking/ludu-module-parking-biz/src/main/java/cn/iocoder/yudao/module/parking/controller/admin/liftingrod/LiftingRodController.java create mode 100644 ludu-module-parking/ludu-module-parking-biz/src/main/java/cn/iocoder/yudao/module/parking/controller/admin/liftingrod/vo/LiftingRodPageReqVO.java create mode 100644 ludu-module-parking/ludu-module-parking-biz/src/main/java/cn/iocoder/yudao/module/parking/controller/admin/liftingrod/vo/LiftingRodRespVO.java create mode 100644 ludu-module-parking/ludu-module-parking-biz/src/main/java/cn/iocoder/yudao/module/parking/controller/admin/liftingrod/vo/LiftingRodSaveReqVO.java create mode 100644 ludu-module-parking/ludu-module-parking-biz/src/main/java/cn/iocoder/yudao/module/parking/dal/dataobject/liftingrod/LiftingRodDO.java create mode 100644 ludu-module-parking/ludu-module-parking-biz/src/main/java/cn/iocoder/yudao/module/parking/dal/mysql/liftingrod/LiftingRodMapper.java create mode 100644 ludu-module-parking/ludu-module-parking-biz/src/main/java/cn/iocoder/yudao/module/parking/service/liftingrod/LiftingRodService.java create mode 100644 ludu-module-parking/ludu-module-parking-biz/src/main/java/cn/iocoder/yudao/module/parking/service/liftingrod/LiftingRodServiceImpl.java create mode 100644 ludu-module-parking/ludu-module-parking-biz/src/main/resources/mapper/liftingrod/LiftingRodMapper.xml diff --git a/ludu-module-parking/ludu-module-parking-api/src/main/java/cn/iocoder/yudao/module/parking/enums/ErrorCodeConstants.java b/ludu-module-parking/ludu-module-parking-api/src/main/java/cn/iocoder/yudao/module/parking/enums/ErrorCodeConstants.java index ecd3e96e4..3e01a562f 100644 --- a/ludu-module-parking/ludu-module-parking-api/src/main/java/cn/iocoder/yudao/module/parking/enums/ErrorCodeConstants.java +++ b/ludu-module-parking/ludu-module-parking-api/src/main/java/cn/iocoder/yudao/module/parking/enums/ErrorCodeConstants.java @@ -21,5 +21,6 @@ public interface ErrorCodeConstants { ErrorCode BLUE_CARD_HEARTBEAT_NOT_EXISTS = new ErrorCode(1_005_001_011, "蓝卡心跳不存在"); // ========== 固定车续费记录 1_005_001_012 ========== ErrorCode FIXED_VEHICLE_RENEWAL_RECORD_NOT_EXISTS = new ErrorCode(1_005_001_012, "固定车续费记录不存在"); - + // ========== 远程抬杠 1_005_001_013 ========== + ErrorCode LIFTING_ROD_NOT_EXISTS = new ErrorCode(1_005_001_013, "远程抬杠不存在"); } diff --git a/ludu-module-parking/ludu-module-parking-biz/src/main/java/cn/iocoder/yudao/module/parking/controller/admin/liftingrod/LiftingRodController.java b/ludu-module-parking/ludu-module-parking-biz/src/main/java/cn/iocoder/yudao/module/parking/controller/admin/liftingrod/LiftingRodController.java new file mode 100644 index 000000000..e8a7b3fff --- /dev/null +++ b/ludu-module-parking/ludu-module-parking-biz/src/main/java/cn/iocoder/yudao/module/parking/controller/admin/liftingrod/LiftingRodController.java @@ -0,0 +1,95 @@ +package cn.iocoder.yudao.module.parking.controller.admin.liftingrod; + +import org.springframework.web.bind.annotation.*; +import javax.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.security.access.prepost.PreAuthorize; +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Operation; + +import javax.validation.constraints.*; +import javax.validation.*; +import javax.servlet.http.*; +import java.util.*; +import java.io.IOException; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; + +import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog; +import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*; + +import cn.iocoder.yudao.module.parking.controller.admin.liftingrod.vo.*; +import cn.iocoder.yudao.module.parking.dal.dataobject.liftingrod.LiftingRodDO; +import cn.iocoder.yudao.module.parking.service.liftingrod.LiftingRodService; + +@Tag(name = "管理后台 - 远程抬杠") +@RestController +@RequestMapping("/parking/lifting-rod") +@Validated +public class LiftingRodController { + + @Resource + private LiftingRodService liftingRodService; + + @PostMapping("/create") + @Operation(summary = "创建远程抬杠") + @PreAuthorize("@ss.hasPermission('parking:lifting-rod:create')") + public CommonResult createLiftingRod(@Valid @RequestBody LiftingRodSaveReqVO createReqVO) { + return success(liftingRodService.createLiftingRod(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新远程抬杠") + @PreAuthorize("@ss.hasPermission('parking:lifting-rod:update')") + public CommonResult updateLiftingRod(@Valid @RequestBody LiftingRodSaveReqVO updateReqVO) { + liftingRodService.updateLiftingRod(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除远程抬杠") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('parking:lifting-rod:delete')") + public CommonResult deleteLiftingRod(@RequestParam("id") Long id) { + liftingRodService.deleteLiftingRod(id); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得远程抬杠") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('parking:lifting-rod:query')") + public CommonResult getLiftingRod(@RequestParam("id") Long id) { + LiftingRodDO liftingRod = liftingRodService.getLiftingRod(id); + return success(BeanUtils.toBean(liftingRod, LiftingRodRespVO.class)); + } + + @GetMapping("/page") + @Operation(summary = "获得远程抬杠分页") + @PreAuthorize("@ss.hasPermission('parking:lifting-rod:query')") + public CommonResult> getLiftingRodPage(@Valid LiftingRodPageReqVO pageReqVO) { + PageResult pageResult = liftingRodService.getLiftingRodPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, LiftingRodRespVO.class)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出远程抬杠 Excel") + @PreAuthorize("@ss.hasPermission('parking:lifting-rod:export')") + @ApiAccessLog(operateType = EXPORT) + public void exportLiftingRodExcel(@Valid LiftingRodPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = liftingRodService.getLiftingRodPage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "远程抬杠.xls", "数据", LiftingRodRespVO.class, + BeanUtils.toBean(list, LiftingRodRespVO.class)); + } + +} \ No newline at end of file diff --git a/ludu-module-parking/ludu-module-parking-biz/src/main/java/cn/iocoder/yudao/module/parking/controller/admin/liftingrod/vo/LiftingRodPageReqVO.java b/ludu-module-parking/ludu-module-parking-biz/src/main/java/cn/iocoder/yudao/module/parking/controller/admin/liftingrod/vo/LiftingRodPageReqVO.java new file mode 100644 index 000000000..d497446c7 --- /dev/null +++ b/ludu-module-parking/ludu-module-parking-biz/src/main/java/cn/iocoder/yudao/module/parking/controller/admin/liftingrod/vo/LiftingRodPageReqVO.java @@ -0,0 +1,28 @@ +package cn.iocoder.yudao.module.parking.controller.admin.liftingrod.vo; + +import lombok.*; +import java.util.*; +import io.swagger.v3.oas.annotations.media.Schema; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 远程抬杠分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class LiftingRodPageReqVO extends PageParam { + + @Schema(description = "停车场编号") + private String parkNumber; + + @Schema(description = "通道Id", example = "18744") + private String passagewayId; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + +} \ No newline at end of file diff --git a/ludu-module-parking/ludu-module-parking-biz/src/main/java/cn/iocoder/yudao/module/parking/controller/admin/liftingrod/vo/LiftingRodRespVO.java b/ludu-module-parking/ludu-module-parking-biz/src/main/java/cn/iocoder/yudao/module/parking/controller/admin/liftingrod/vo/LiftingRodRespVO.java new file mode 100644 index 000000000..d0ff4ea73 --- /dev/null +++ b/ludu-module-parking/ludu-module-parking-biz/src/main/java/cn/iocoder/yudao/module/parking/controller/admin/liftingrod/vo/LiftingRodRespVO.java @@ -0,0 +1,32 @@ +package cn.iocoder.yudao.module.parking.controller.admin.liftingrod.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import java.util.*; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; +import com.alibaba.excel.annotation.*; + +@Schema(description = "管理后台 - 远程抬杠 Response VO") +@Data +@ExcelIgnoreUnannotated +public class LiftingRodRespVO { + + @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "24642") + @ExcelProperty("id") + private Long id; + + @Schema(description = "停车场编号", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("停车场编号") + private String parkNumber; + + @Schema(description = "通道Id", requiredMode = Schema.RequiredMode.REQUIRED, example = "18744") + @ExcelProperty("通道Id") + private String passagewayId; + + @Schema(description = "创建时间") + @ExcelProperty("创建时间") + private LocalDateTime createTime; + +} \ No newline at end of file diff --git a/ludu-module-parking/ludu-module-parking-biz/src/main/java/cn/iocoder/yudao/module/parking/controller/admin/liftingrod/vo/LiftingRodSaveReqVO.java b/ludu-module-parking/ludu-module-parking-biz/src/main/java/cn/iocoder/yudao/module/parking/controller/admin/liftingrod/vo/LiftingRodSaveReqVO.java new file mode 100644 index 000000000..04b4d3546 --- /dev/null +++ b/ludu-module-parking/ludu-module-parking-biz/src/main/java/cn/iocoder/yudao/module/parking/controller/admin/liftingrod/vo/LiftingRodSaveReqVO.java @@ -0,0 +1,23 @@ +package cn.iocoder.yudao.module.parking.controller.admin.liftingrod.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import javax.validation.constraints.*; + +@Schema(description = "管理后台 - 远程抬杠新增/修改 Request VO") +@Data +public class LiftingRodSaveReqVO { + + @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "24642") + private Long id; + + @Schema(description = "停车场编号", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "停车场编号不能为空") + private String parkNumber; + + @Schema(description = "通道Id", requiredMode = Schema.RequiredMode.REQUIRED, example = "18744") + @NotEmpty(message = "通道Id不能为空") + private String passagewayId; + +} \ No newline at end of file diff --git a/ludu-module-parking/ludu-module-parking-biz/src/main/java/cn/iocoder/yudao/module/parking/dal/dataobject/liftingrod/LiftingRodDO.java b/ludu-module-parking/ludu-module-parking-biz/src/main/java/cn/iocoder/yudao/module/parking/dal/dataobject/liftingrod/LiftingRodDO.java new file mode 100644 index 000000000..ccb6c293b --- /dev/null +++ b/ludu-module-parking/ludu-module-parking-biz/src/main/java/cn/iocoder/yudao/module/parking/dal/dataobject/liftingrod/LiftingRodDO.java @@ -0,0 +1,39 @@ +package cn.iocoder.yudao.module.parking.dal.dataobject.liftingrod; + +import lombok.*; +import java.util.*; +import java.time.LocalDateTime; +import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.*; +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; + +/** + * 远程抬杠 DO + * + * @author 芋道源码 + */ +@TableName("lifting_rod") +@KeySequence("lifting_rod_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class LiftingRodDO extends BaseDO { + + /** + * id + */ + @TableId + private Long id; + /** + * 停车场编号 + */ + private String parkNumber; + /** + * 通道Id + */ + private String passagewayId; + +} \ No newline at end of file diff --git a/ludu-module-parking/ludu-module-parking-biz/src/main/java/cn/iocoder/yudao/module/parking/dal/mysql/liftingrod/LiftingRodMapper.java b/ludu-module-parking/ludu-module-parking-biz/src/main/java/cn/iocoder/yudao/module/parking/dal/mysql/liftingrod/LiftingRodMapper.java new file mode 100644 index 000000000..0b824f56f --- /dev/null +++ b/ludu-module-parking/ludu-module-parking-biz/src/main/java/cn/iocoder/yudao/module/parking/dal/mysql/liftingrod/LiftingRodMapper.java @@ -0,0 +1,28 @@ +package cn.iocoder.yudao.module.parking.dal.mysql.liftingrod; + +import java.util.*; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.module.parking.dal.dataobject.liftingrod.LiftingRodDO; +import org.apache.ibatis.annotations.Mapper; +import cn.iocoder.yudao.module.parking.controller.admin.liftingrod.vo.*; + +/** + * 远程抬杠 Mapper + * + * @author 芋道源码 + */ +@Mapper +public interface LiftingRodMapper extends BaseMapperX { + + default PageResult selectPage(LiftingRodPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(LiftingRodDO::getParkNumber, reqVO.getParkNumber()) + .eqIfPresent(LiftingRodDO::getPassagewayId, reqVO.getPassagewayId()) + .betweenIfPresent(LiftingRodDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(LiftingRodDO::getId)); + } + +} \ No newline at end of file diff --git a/ludu-module-parking/ludu-module-parking-biz/src/main/java/cn/iocoder/yudao/module/parking/service/liftingrod/LiftingRodService.java b/ludu-module-parking/ludu-module-parking-biz/src/main/java/cn/iocoder/yudao/module/parking/service/liftingrod/LiftingRodService.java new file mode 100644 index 000000000..0880b96e9 --- /dev/null +++ b/ludu-module-parking/ludu-module-parking-biz/src/main/java/cn/iocoder/yudao/module/parking/service/liftingrod/LiftingRodService.java @@ -0,0 +1,55 @@ +package cn.iocoder.yudao.module.parking.service.liftingrod; + +import java.util.*; +import javax.validation.*; +import cn.iocoder.yudao.module.parking.controller.admin.liftingrod.vo.*; +import cn.iocoder.yudao.module.parking.dal.dataobject.liftingrod.LiftingRodDO; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; + +/** + * 远程抬杠 Service 接口 + * + * @author 芋道源码 + */ +public interface LiftingRodService { + + /** + * 创建远程抬杠 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createLiftingRod(@Valid LiftingRodSaveReqVO createReqVO); + + /** + * 更新远程抬杠 + * + * @param updateReqVO 更新信息 + */ + void updateLiftingRod(@Valid LiftingRodSaveReqVO updateReqVO); + + /** + * 删除远程抬杠 + * + * @param id 编号 + */ + void deleteLiftingRod(Long id); + + /** + * 获得远程抬杠 + * + * @param id 编号 + * @return 远程抬杠 + */ + LiftingRodDO getLiftingRod(Long id); + + /** + * 获得远程抬杠分页 + * + * @param pageReqVO 分页查询 + * @return 远程抬杠分页 + */ + PageResult getLiftingRodPage(LiftingRodPageReqVO pageReqVO); + +} \ No newline at end of file diff --git a/ludu-module-parking/ludu-module-parking-biz/src/main/java/cn/iocoder/yudao/module/parking/service/liftingrod/LiftingRodServiceImpl.java b/ludu-module-parking/ludu-module-parking-biz/src/main/java/cn/iocoder/yudao/module/parking/service/liftingrod/LiftingRodServiceImpl.java new file mode 100644 index 000000000..93ca712ff --- /dev/null +++ b/ludu-module-parking/ludu-module-parking-biz/src/main/java/cn/iocoder/yudao/module/parking/service/liftingrod/LiftingRodServiceImpl.java @@ -0,0 +1,74 @@ +package cn.iocoder.yudao.module.parking.service.liftingrod; + +import org.springframework.stereotype.Service; +import javax.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.transaction.annotation.Transactional; + +import java.util.*; +import cn.iocoder.yudao.module.parking.controller.admin.liftingrod.vo.*; +import cn.iocoder.yudao.module.parking.dal.dataobject.liftingrod.LiftingRodDO; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; + +import cn.iocoder.yudao.module.parking.dal.mysql.liftingrod.LiftingRodMapper; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.module.parking.enums.ErrorCodeConstants.*; + +/** + * 远程抬杠 Service 实现类 + * + * @author 芋道源码 + */ +@Service +@Validated +public class LiftingRodServiceImpl implements LiftingRodService { + + @Resource + private LiftingRodMapper liftingRodMapper; + + @Override + public Long createLiftingRod(LiftingRodSaveReqVO createReqVO) { + // 插入 + LiftingRodDO liftingRod = BeanUtils.toBean(createReqVO, LiftingRodDO.class); + liftingRodMapper.insert(liftingRod); + // 返回 + return liftingRod.getId(); + } + + @Override + public void updateLiftingRod(LiftingRodSaveReqVO updateReqVO) { + // 校验存在 + validateLiftingRodExists(updateReqVO.getId()); + // 更新 + LiftingRodDO updateObj = BeanUtils.toBean(updateReqVO, LiftingRodDO.class); + liftingRodMapper.updateById(updateObj); + } + + @Override + public void deleteLiftingRod(Long id) { + // 校验存在 + validateLiftingRodExists(id); + // 删除 + liftingRodMapper.deleteById(id); + } + + private void validateLiftingRodExists(Long id) { + if (liftingRodMapper.selectById(id) == null) { + throw exception(LIFTING_ROD_NOT_EXISTS); + } + } + + @Override + public LiftingRodDO getLiftingRod(Long id) { + return liftingRodMapper.selectById(id); + } + + @Override + public PageResult getLiftingRodPage(LiftingRodPageReqVO pageReqVO) { + return liftingRodMapper.selectPage(pageReqVO); + } + +} \ No newline at end of file diff --git a/ludu-module-parking/ludu-module-parking-biz/src/main/resources/mapper/liftingrod/LiftingRodMapper.xml b/ludu-module-parking/ludu-module-parking-biz/src/main/resources/mapper/liftingrod/LiftingRodMapper.xml new file mode 100644 index 000000000..126638f3c --- /dev/null +++ b/ludu-module-parking/ludu-module-parking-biz/src/main/resources/mapper/liftingrod/LiftingRodMapper.xml @@ -0,0 +1,12 @@ + + + + + + + \ No newline at end of file