diff --git a/src/main/java/com/ycwl/basic/controller/printer/PrinterTaskController.java b/src/main/java/com/ycwl/basic/controller/printer/PrinterTaskController.java index b307a2ae..9a9155eb 100644 --- a/src/main/java/com/ycwl/basic/controller/printer/PrinterTaskController.java +++ b/src/main/java/com/ycwl/basic/controller/printer/PrinterTaskController.java @@ -1,6 +1,7 @@ package com.ycwl.basic.controller.printer; import com.ycwl.basic.annotation.IgnoreToken; +import com.ycwl.basic.model.pc.printer.entity.PrinterEntity; import com.ycwl.basic.model.printer.req.PrinterSyncReq; import com.ycwl.basic.model.printer.req.WorkerAuthReqVo; import com.ycwl.basic.model.printer.resp.PrintTaskResp; @@ -40,4 +41,26 @@ public class PrinterTaskController { printerService.taskFail(taskId, req); return ApiResponse.success("OK"); } + + @PostMapping("/detail") + public ApiResponse detail(@RequestBody WorkerAuthReqVo req) { + return ApiResponse.success(printerService.getByAccessKey(req.getAccessKey())); + } + + @PostMapping("/scenic") + public ApiResponse scenic(@RequestBody WorkerAuthReqVo req) { + return ApiResponse.success(printerService.getScenicBasicByAccessKey(req.getAccessKey())); + } + + @PostMapping("/open") + public ApiResponse open(@RequestBody WorkerAuthReqVo req) { + printerService.openPrinter(req.getAccessKey()); + return ApiResponse.success("OK"); + } + + @PostMapping("/close") + public ApiResponse close(@RequestBody WorkerAuthReqVo req) { + printerService.closePrinter(req.getAccessKey()); + return ApiResponse.success("OK"); + } } \ No newline at end of file diff --git a/src/main/java/com/ycwl/basic/service/printer/PrinterService.java b/src/main/java/com/ycwl/basic/service/printer/PrinterService.java index 666d5f6b..8b694ed0 100644 --- a/src/main/java/com/ycwl/basic/service/printer/PrinterService.java +++ b/src/main/java/com/ycwl/basic/service/printer/PrinterService.java @@ -143,4 +143,30 @@ public interface PrinterService { * @return 订单信息 */ Map createVirtualOrder(Long sourceId, Long scenicId, Integer printerId, Boolean needEnhance, String printImgUrl); + + /** + * 根据accessKey获取打印机详情 + * @param accessKey 打印机accessKey + * @return 打印机实体 + */ + PrinterEntity getByAccessKey(String accessKey); + + /** + * 根据accessKey获取打印机对应的景区基础信息 + * @param accessKey 打印机accessKey + * @return 景区基础信息 + */ + Object getScenicBasicByAccessKey(String accessKey); + + /** + * 打开打印机(设置status=1) + * @param accessKey 打印机accessKey + */ + void openPrinter(String accessKey); + + /** + * 关闭打印机(设置status=0) + * @param accessKey 打印机accessKey + */ + void closePrinter(String accessKey); } \ No newline at end of file diff --git a/src/main/java/com/ycwl/basic/service/printer/impl/PrinterServiceImpl.java b/src/main/java/com/ycwl/basic/service/printer/impl/PrinterServiceImpl.java index 5ff4f70a..d7f2fcdb 100644 --- a/src/main/java/com/ycwl/basic/service/printer/impl/PrinterServiceImpl.java +++ b/src/main/java/com/ycwl/basic/service/printer/impl/PrinterServiceImpl.java @@ -1808,5 +1808,40 @@ public class PrinterServiceImpl implements PrinterService { return result; } + + @Override + public PrinterEntity getByAccessKey(String accessKey) { + if (accessKey == null) { + throw new BaseException("accessKey不能为空"); + } + PrinterEntity printer = printerMapper.findByAccessKey(accessKey); + if (printer == null) { + throw new BaseException("打印机不存在"); + } + return printer; + } + + @Override + public Object getScenicBasicByAccessKey(String accessKey) { + PrinterEntity printer = getByAccessKey(accessKey); + if (printer.getScenicId() == null) { + throw new BaseException("打印机未关联景区"); + } + return scenicRepository.getScenicBasic(printer.getScenicId()); + } + + @Override + public void openPrinter(String accessKey) { + PrinterEntity printer = getByAccessKey(accessKey); + printer.setStatus(1); + printerMapper.update(printer); + } + + @Override + public void closePrinter(String accessKey) { + PrinterEntity printer = getByAccessKey(accessKey); + printer.setStatus(0); + printerMapper.update(printer); + } }