From ad33b1abef3e96c77a18f21b6c15c17846555973 Mon Sep 17 00:00:00 2001 From: Jerry Yan <792602257@qq.com> Date: Fri, 19 Sep 2025 12:32:58 +0800 Subject: [PATCH] =?UTF-8?q?feat(pc):=20=E6=B7=BB=E5=8A=A0=E6=89=93?= =?UTF-8?q?=E5=8D=B0=E6=9C=BA=E7=AE=A1=E7=90=86=E5=8A=9F=E8=83=BD-=20?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=20PrinterManageController=20=E7=B1=BB?= =?UTF-8?q?=E5=AE=9E=E7=8E=B0=E6=89=93=E5=8D=B0=E6=9C=BA=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=20-=20=E6=B7=BB=E5=8A=A0=E6=89=93=E5=8D=B0?= =?UTF-8?q?=E6=9C=BA=E5=88=97=E8=A1=A8=E6=9F=A5=E8=AF=A2=E3=80=81=E8=AF=A6?= =?UTF-8?q?=E6=83=85=E3=80=81=E5=88=9B=E5=BB=BA=E3=80=81=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E3=80=81=E5=88=A0=E9=99=A4=E7=AD=89=E5=8A=9F=E8=83=BD=20-=20?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=89=93=E5=8D=B0=E6=9C=BA=E7=8A=B6=E6=80=81?= =?UTF-8?q?=E3=80=81=E9=A6=96=E9=80=89=E5=B0=BA=E5=AF=B8=E3=80=81=E5=BD=93?= =?UTF-8?q?=E5=89=8D=E4=BD=BF=E7=94=A8=E8=AE=BE=E5=A4=87=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=20-=20=E5=9C=A8=20PrinterMapper.xml=20?= =?UTF-8?q?=E4=B8=AD=E6=B7=BB=E5=8A=A0=E7=9B=B8=E5=85=B3=20SQL=20=E8=AF=AD?= =?UTF-8?q?=E5=8F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pc/PrinterManageController.java | 131 ++++++++++++++++++ .../req/PrinterPreferredSizeUpdateReq.java | 19 +++ .../printer/req/PrinterStatusUpdateReq.java | 14 ++ .../req/PrinterUsePrinterUpdateReq.java | 14 ++ src/main/resources/mapper/PrinterMapper.xml | 37 ++++- 5 files changed, 208 insertions(+), 7 deletions(-) create mode 100644 src/main/java/com/ycwl/basic/controller/pc/PrinterManageController.java create mode 100644 src/main/java/com/ycwl/basic/model/pc/printer/req/PrinterPreferredSizeUpdateReq.java create mode 100644 src/main/java/com/ycwl/basic/model/pc/printer/req/PrinterStatusUpdateReq.java create mode 100644 src/main/java/com/ycwl/basic/model/pc/printer/req/PrinterUsePrinterUpdateReq.java diff --git a/src/main/java/com/ycwl/basic/controller/pc/PrinterManageController.java b/src/main/java/com/ycwl/basic/controller/pc/PrinterManageController.java new file mode 100644 index 00000000..aa9d2987 --- /dev/null +++ b/src/main/java/com/ycwl/basic/controller/pc/PrinterManageController.java @@ -0,0 +1,131 @@ +package com.ycwl.basic.controller.pc; + +import com.ycwl.basic.model.pc.printer.entity.PrinterEntity; +import com.ycwl.basic.model.pc.printer.req.PrinterPreferredSizeUpdateReq; +import com.ycwl.basic.model.pc.printer.req.PrinterStatusUpdateReq; +import com.ycwl.basic.model.pc.printer.req.PrinterUsePrinterUpdateReq; +import com.ycwl.basic.service.printer.PrinterService; +import com.ycwl.basic.utils.ApiConst; +import com.ycwl.basic.utils.ApiResponse; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PatchMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +/** + * 打印机管理接口 + */ +@RestController +@RequestMapping("/api/pc/printers/v1") +@RequiredArgsConstructor +public class PrinterManageController { + + private final PrinterService printerService; + + /** + * 打印机列表查询 + */ + @GetMapping + public ApiResponse> list(@RequestParam(value = "scenicId", required = false) Long scenicId, + @RequestParam(value = "status", required = false) Integer status, + @RequestParam(value = "name", required = false) String name) { + PrinterEntity condition = new PrinterEntity(); + condition.setScenicId(scenicId); + condition.setStatus(status); + condition.setName(name); + return printerService.list(condition); + } + + /** + * 打印机详情 + */ + @GetMapping("/{id}") + public ApiResponse detail(@PathVariable("id") Integer id) { + ApiResponse response = printerService.get(id); + if (response.getData() == null) { + return ApiResponse.buildResponse(ApiConst.Code.CODE_NOT_EXIST, "打印机不存在"); + } + return response; + } + + /** + * 新增打印机 + */ + @PostMapping + public ApiResponse create(@RequestBody PrinterEntity request) { + request.setId(null); + return printerService.add(request); + } + + /** + * 更新打印机信息 + */ + @PutMapping("/{id}") + public ApiResponse update(@PathVariable("id") Integer id, @RequestBody PrinterEntity request) { + request.setId(id); + return printerService.update(request); + } + + /** + * 更新打印机状态 + */ + @PatchMapping("/{id}/status") + public ApiResponse updateStatus(@PathVariable("id") Integer id, + @RequestBody PrinterStatusUpdateReq req) { + if (req == null || req.getStatus() == null) { + return ApiResponse.buildResponse(ApiConst.Code.CODE_PARAM_ERROR, "状态不能为空"); + } + PrinterEntity entity = new PrinterEntity(); + entity.setId(id); + entity.setStatus(req.getStatus()); + return printerService.update(entity); + } + + /** + * 更新打印机首选尺寸 + */ + @PatchMapping("/{id}/preferred-size") + public ApiResponse updatePreferredSize(@PathVariable("id") Integer id, + @RequestBody PrinterPreferredSizeUpdateReq req) { + if (req == null || (req.getPreferW() == null && req.getPreferH() == null)) { + return ApiResponse.buildResponse(ApiConst.Code.CODE_PARAM_ERROR, "首选尺寸不能为空"); + } + PrinterEntity entity = new PrinterEntity(); + entity.setId(id); + entity.setPreferW(req.getPreferW()); + entity.setPreferH(req.getPreferH()); + return printerService.update(entity); + } + + /** + * 更新当前使用的打印机 + */ + @PatchMapping("/{id}/use-printer") + public ApiResponse updateUsePrinter(@PathVariable("id") Integer id, + @RequestBody PrinterUsePrinterUpdateReq req) { + if (req == null) { + return ApiResponse.buildResponse(ApiConst.Code.CODE_PARAM_ERROR, "请求参数不能为空"); + } + PrinterEntity entity = new PrinterEntity(); + entity.setId(id); + entity.setUsePrinter(req.getUsePrinter()); + return printerService.update(entity); + } + + /** + * 删除打印机 + */ + @DeleteMapping("/{id}") + public ApiResponse delete(@PathVariable("id") Integer id) { + return printerService.delete(id); + } +} diff --git a/src/main/java/com/ycwl/basic/model/pc/printer/req/PrinterPreferredSizeUpdateReq.java b/src/main/java/com/ycwl/basic/model/pc/printer/req/PrinterPreferredSizeUpdateReq.java new file mode 100644 index 00000000..ce5d7efa --- /dev/null +++ b/src/main/java/com/ycwl/basic/model/pc/printer/req/PrinterPreferredSizeUpdateReq.java @@ -0,0 +1,19 @@ +package com.ycwl.basic.model.pc.printer.req; + +import lombok.Data; + +/** + * 打印机首选尺寸更新请求 + */ +@Data +public class PrinterPreferredSizeUpdateReq { + /** + * 首选宽度 + */ + private Integer preferW; + + /** + * 首选高度 + */ + private Integer preferH; +} diff --git a/src/main/java/com/ycwl/basic/model/pc/printer/req/PrinterStatusUpdateReq.java b/src/main/java/com/ycwl/basic/model/pc/printer/req/PrinterStatusUpdateReq.java new file mode 100644 index 00000000..7e234b48 --- /dev/null +++ b/src/main/java/com/ycwl/basic/model/pc/printer/req/PrinterStatusUpdateReq.java @@ -0,0 +1,14 @@ +package com.ycwl.basic.model.pc.printer.req; + +import lombok.Data; + +/** + * 打印机状态更新请求 + */ +@Data +public class PrinterStatusUpdateReq { + /** + * 打印机状态:0-停用,1-启用 + */ + private Integer status; +} diff --git a/src/main/java/com/ycwl/basic/model/pc/printer/req/PrinterUsePrinterUpdateReq.java b/src/main/java/com/ycwl/basic/model/pc/printer/req/PrinterUsePrinterUpdateReq.java new file mode 100644 index 00000000..1d7fbf67 --- /dev/null +++ b/src/main/java/com/ycwl/basic/model/pc/printer/req/PrinterUsePrinterUpdateReq.java @@ -0,0 +1,14 @@ +package com.ycwl.basic.model.pc.printer.req; + +import lombok.Data; + +/** + * 打印机当前使用设备更新请求 + */ +@Data +public class PrinterUsePrinterUpdateReq { + /** + * 当前使用打印机标识 + */ + private String usePrinter; +} diff --git a/src/main/resources/mapper/PrinterMapper.xml b/src/main/resources/mapper/PrinterMapper.xml index c998fa65..d51e56c9 100644 --- a/src/main/resources/mapper/PrinterMapper.xml +++ b/src/main/resources/mapper/PrinterMapper.xml @@ -78,6 +78,8 @@ printers, use_printer, status, + prefer_w, + prefer_h, create_time, update_time ) VALUES ( @@ -87,6 +89,8 @@ #{printers}, #{usePrinter}, #{status}, + #{preferW}, + #{preferH}, NOW(), NOW() ) @@ -116,14 +120,33 @@ UPDATE printer - SET - access_key = #{accessKey}, - name = #{name}, - scenic_id = #{scenicId}, - printers = #{printers}, - use_printer = #{usePrinter}, - status = #{status}, + + + access_key = #{accessKey}, + + + name = #{name}, + + + scenic_id = #{scenicId}, + + + printers = #{printers}, + + + use_printer = #{usePrinter}, + + + status = #{status}, + + + prefer_w = #{preferW}, + + + prefer_h = #{preferH}, + update_time = NOW() + WHERE id = #{id}