From baabf01e5129397d040af430040b94454f8e9c31 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=9D=BE?= <8605635+zhang3064194730@user.noreply.gitee.com> Date: Thu, 20 Mar 2025 14:53:08 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B0=8F=E7=A8=8B=E5=BA=8F=E5=8F=AB=E5=8F=B7?= =?UTF-8?q?=E7=9B=B8=E5=85=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/admin/CallTableController.java | 4 +- .../controller/user/UCallTableController.java | 77 +++++++++++++++++++ .../account/dto/calltable/TakeNumberDTO.java | 4 + .../czg/account/service/CallTableService.java | 4 +- .../com/czg/account/vo/CallQueueInfoVO.java | 47 +++++++++++ .../account/mapper/CallQueueMapper.java | 5 ++ .../service/impl/CallTableServiceImpl.java | 32 ++++++-- .../main/resources/mapper/CallQueueMapper.xml | 55 +++++++++++++ 8 files changed, 220 insertions(+), 8 deletions(-) create mode 100644 cash-api/account-server/src/main/java/com/czg/controller/user/UCallTableController.java create mode 100644 cash-common/cash-common-service/src/main/java/com/czg/account/vo/CallQueueInfoVO.java diff --git a/cash-api/account-server/src/main/java/com/czg/controller/admin/CallTableController.java b/cash-api/account-server/src/main/java/com/czg/controller/admin/CallTableController.java index 36f0b75a..d28aeb9b 100644 --- a/cash-api/account-server/src/main/java/com/czg/controller/admin/CallTableController.java +++ b/cash-api/account-server/src/main/java/com/czg/controller/admin/CallTableController.java @@ -136,8 +136,8 @@ public class CallTableController { */ @SaAdminCheckPermission(value = "callTable:queue:list", name = "获取叫号队列") @GetMapping("queue") - public CzgResult> getQueue(Long callTableId, Integer state) { - return CzgResult.success(callTableService.getQueue(StpKit.USER.getShopId(), callTableId, state)); + public CzgResult> getQueue(Long callTableId, Integer state, String openId) { + return CzgResult.success(callTableService.getQueue(StpKit.USER.getShopId(), openId, callTableId, state)); } diff --git a/cash-api/account-server/src/main/java/com/czg/controller/user/UCallTableController.java b/cash-api/account-server/src/main/java/com/czg/controller/user/UCallTableController.java new file mode 100644 index 00000000..4541a654 --- /dev/null +++ b/cash-api/account-server/src/main/java/com/czg/controller/user/UCallTableController.java @@ -0,0 +1,77 @@ +package com.czg.controller.user; + + +import com.czg.account.dto.calltable.CallSubMsgDTO; +import com.czg.account.dto.calltable.CallTableNumDTO; +import com.czg.account.dto.calltable.CallTablePage; +import com.czg.account.dto.calltable.TakeNumberDTO; +import com.czg.account.entity.CallQueue; +import com.czg.account.service.CallTableService; +import com.czg.annotation.SaAdminCheckPermission; +import com.czg.resp.CzgResult; +import com.czg.sa.StpKit; +import com.mybatisflex.core.paginate.Page; +import jakarta.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +/** + * 小程序叫号管理 + * @author Administrator + */ +@RestController +@RequestMapping("/user/callTable") +public class UCallTableController { + @Resource + private CallTableService callTableService; + /** + * 获取叫号号码 + */ + @PostMapping("takeNumber") + public CzgResult takeNumber(@Validated @RequestBody TakeNumberDTO takeNumberDTO) { + return CzgResult.success(callTableService.takeNumber(StpKit.USER.getShopId(), takeNumberDTO)); + } + + /** + * 获取叫号队列 + * + * @param callTableId 桌型id + * @param state 状态 -1已取消 0排队中 1叫号中 2已入座 3 已过号 + * @return 分页数据 + */ +// @GetMapping("queue") + public CzgResult> getQueue(@RequestParam String openId, Long callTableId, Integer state) { + return CzgResult.success(callTableService.getQueue(StpKit.USER.getShopId(), openId, callTableId, state)); + } + + /** + * 叫号桌型获取 + * + * @param callTableId 叫号桌型id + * @param state 0禁用 1使用 + * @return 分页数据 + */ + @GetMapping + public CzgResult get(Long callTableId, Integer state) { + return CzgResult.success(callTableService.get(StpKit.USER.getShopId(), callTableId, state)); + } + + /** + * 根据店铺id和openId获取当前叫号号码 + * @param queueId 队列id + * @return 状态 + */ + @GetMapping("status") + public CzgResult getStatus(@RequestParam String openId, @RequestParam(required = false) Long queueId) { + return CzgResult.success(callTableService.getStatus(StpKit.USER.getShopId(), openId, queueId)); + } + + @PostMapping("subMsg") + public CzgResult subMsg( + @Validated @RequestBody CallSubMsgDTO subMsgDTO + ) { + return CzgResult.success(callTableService.subMsg(subMsgDTO)); + } + + +} diff --git a/cash-common/cash-common-service/src/main/java/com/czg/account/dto/calltable/TakeNumberDTO.java b/cash-common/cash-common-service/src/main/java/com/czg/account/dto/calltable/TakeNumberDTO.java index ef7fbd7d..13813f5d 100644 --- a/cash-common/cash-common-service/src/main/java/com/czg/account/dto/calltable/TakeNumberDTO.java +++ b/cash-common/cash-common-service/src/main/java/com/czg/account/dto/calltable/TakeNumberDTO.java @@ -30,4 +30,8 @@ public class TakeNumberDTO extends BaseCallTableDTO{ * 姓名 */ private String name; + /** + * openId + */ + private String openId; } diff --git a/cash-common/cash-common-service/src/main/java/com/czg/account/service/CallTableService.java b/cash-common/cash-common-service/src/main/java/com/czg/account/service/CallTableService.java index 02535e14..5a6948d2 100644 --- a/cash-common/cash-common-service/src/main/java/com/czg/account/service/CallTableService.java +++ b/cash-common/cash-common-service/src/main/java/com/czg/account/service/CallTableService.java @@ -29,7 +29,7 @@ public interface CallTableService extends IService { boolean updateInfo(Long shopId, UpdateCallQueueDTO updateCallQueueDTO); - Page getQueue(Long shopId, Long callTableId, Integer state); + Page getQueue(Long shopId, String openId, Long callTableId, Integer state); Page getCallRecord(Long shopId, Integer callTableId); @@ -38,4 +38,6 @@ public interface CallTableService extends IService { boolean updateConfig(Long shopId, UpdateConfigDTO configDTO); boolean subMsg(CallSubMsgDTO subMsgDTO); + + Object getStatus(Long shopId, String openId, Long queueId); } diff --git a/cash-common/cash-common-service/src/main/java/com/czg/account/vo/CallQueueInfoVO.java b/cash-common/cash-common-service/src/main/java/com/czg/account/vo/CallQueueInfoVO.java new file mode 100644 index 00000000..03aa8f9f --- /dev/null +++ b/cash-common/cash-common-service/src/main/java/com/czg/account/vo/CallQueueInfoVO.java @@ -0,0 +1,47 @@ +package com.czg.account.vo; + +import lombok.Data; + +/** + * @author Administrator + */ +@Data +public class CallQueueInfoVO { + /** + * 叫号队列id,queueId + */ + private Long id; + /** + * 桌型名称 + */ + private String tableName; + /** + * 桌型备注 + */ + private String tableNote; + /** + * 等待人数 + */ + private Integer waitingCount; + /** + * 等待时间 + */ + private Integer waitTime; + /** + * -1已取消 0排队中 1叫号中 2已入座 3 已过号 + */ + private Integer state; + /** + * 叫号号码 + */ + private String callNum; + private String shopState; + /** + * 店铺名称 + */ + private String shopName; + /** + * logo + */ + private String logo; +} diff --git a/cash-service/account-service/src/main/java/com/czg/service/account/mapper/CallQueueMapper.java b/cash-service/account-service/src/main/java/com/czg/service/account/mapper/CallQueueMapper.java index d407403f..6575da38 100644 --- a/cash-service/account-service/src/main/java/com/czg/service/account/mapper/CallQueueMapper.java +++ b/cash-service/account-service/src/main/java/com/czg/service/account/mapper/CallQueueMapper.java @@ -1,9 +1,13 @@ package com.czg.service.account.mapper; import com.czg.account.dto.calltable.CallRecordVO; +import com.czg.account.vo.CallQueueInfoVO; import com.mybatisflex.core.BaseMapper; import com.czg.account.entity.CallQueue; import com.mybatisflex.core.paginate.Page; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** * 叫号排号队列表 映射层。 @@ -16,4 +20,5 @@ public interface CallQueueMapper extends BaseMapper { Page selectCallRecord(); long selectCallRecord_COUNT(); + List selectInfoByOpenId(@Param("shopId") Long shopId, @Param("openId") String openId, @Param("today") String today, @Param("queueId") Long queueId); } diff --git a/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/CallTableServiceImpl.java b/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/CallTableServiceImpl.java index d98af972..3d81f708 100644 --- a/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/CallTableServiceImpl.java +++ b/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/CallTableServiceImpl.java @@ -8,6 +8,7 @@ import cn.hutool.extra.qrcode.QrConfig; import com.czg.account.dto.calltable.*; import com.czg.account.entity.*; import com.czg.account.service.*; +import com.czg.account.vo.CallQueueInfoVO; import com.czg.config.RabbitPublisher; import com.czg.config.RedisCst; import com.czg.exception.ApiNotPrintException; @@ -29,10 +30,7 @@ import org.apache.dubbo.config.annotation.DubboService; import org.springframework.data.redis.core.StringRedisTemplate; import java.io.ByteArrayOutputStream; -import java.util.ArrayList; -import java.util.Base64; -import java.util.Collections; -import java.util.List; +import java.util.*; import java.util.concurrent.atomic.AtomicReference; import java.util.stream.Collectors; @@ -467,7 +465,7 @@ public class CallTableServiceImpl extends ServiceImpl getQueue(Long shopId, Long callTableId, Integer state) { + public Page getQueue(Long shopId, String openId, Long callTableId, Integer state) { List tableIds; if (callTableId != null) { tableIds = Collections.singletonList(callTableId); @@ -491,6 +489,10 @@ public class CallTableServiceImpl extends ServiceImpl pageInfo = callQueueService.page(PageUtil.buildPage(), query .orderBy(CallQueue::getCreateTime, true) .orderBy(CallQueue::getState, false)); @@ -591,4 +593,24 @@ public class CallTableServiceImpl extends ServiceImpl callQueueInfoVOS = callQueueMapper.selectInfoByOpenId(shopId, openId, DateUtil.date().toString("yyyy-MM-dd"), null); + if (callQueueInfoVOS.isEmpty()) { + callQueueInfoVOS = callQueueMapper.selectInfoByOpenId(shopId, openId, DateUtil.date().toString("yyyy-MM-dd"), queueId); + } + if (!callQueueInfoVOS.isEmpty()) { + CallQueueInfoVO callQueueInfoVO = callQueueInfoVOS.getFirst(); + CallQueue callQueue = new CallQueue(); + callQueue.setOpenId(openId); + callQueue.setId(callQueueInfoVO.getId()); + callQueueService.updateById(callQueue); + } + ShopInfo shopInfo = shopInfoService.getById(shopId); + HashMap data = new HashMap<>(); + data.put("shopInfo", shopInfo); + data.put("queueInfo", callQueueInfoVOS.isEmpty() ? null : callQueueInfoVOS.getFirst()); + return data; + } } diff --git a/cash-service/account-service/src/main/resources/mapper/CallQueueMapper.xml b/cash-service/account-service/src/main/resources/mapper/CallQueueMapper.xml index e0caf88e..aec1d8a6 100644 --- a/cash-service/account-service/src/main/resources/mapper/CallQueueMapper.xml +++ b/cash-service/account-service/src/main/resources/mapper/CallQueueMapper.xml @@ -17,4 +17,59 @@ left join tb_call_table on tb_call_queue.call_table_id = tb_call_table.id ${qwSql} +