From a7cb2436cfbddadc32e9e2a7f57dbc18848aac49 Mon Sep 17 00:00:00 2001 From: dzc <2388224167@qq.com> Date: Thu, 14 Aug 2025 20:05:27 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E5=8C=BB=E9=99=A2=E6=94=AF=E4=BB=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/constant/order/HardPayTypeEnum.java | 13 ++++++++++++- .../api/dto/sync/HardSyncSupermarket.java | 14 ++++++++++++++ .../controller/sync/HardSyncController.java | 14 +++++++++++--- .../pjcloud/hard/service/HardSyncService.java | 5 +++++ .../impl/order/HardOrderServiceImpl.java | 9 +++++---- .../impl/sync/HardSyncServiceImpl.java | 14 ++++++++++++-- .../api/feign/RemoteMqttEventService.java | 7 +++++++ .../pjcloud/mqtt/constant/MqttActionEnum.java | 1 + .../mqtt/controller/MqttEventController.java | 19 +++++++++++++++++++ .../controller/WalletManageController.java | 12 ++++++++++++ 10 files changed, 98 insertions(+), 10 deletions(-) create mode 100644 pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/dto/sync/HardSyncSupermarket.java diff --git a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/constant/order/HardPayTypeEnum.java b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/constant/order/HardPayTypeEnum.java index 879744831..3f0e31176 100644 --- a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/constant/order/HardPayTypeEnum.java +++ b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/constant/order/HardPayTypeEnum.java @@ -32,6 +32,7 @@ public enum HardPayTypeEnum { private final String type; private final String description; + // 支付方式交易记录 public static final List payTypeTotalDisplayList = List.of( WALLET_DEFAULT, WALLET_QR_CODE, @@ -39,7 +40,9 @@ public enum HardPayTypeEnum { FACE, CASH, WECHANT_SELF_QR_CODE_PAY, - ALI_SELF_QR_CODE_PAY + ALI_SELF_QR_CODE_PAY, + ZYY, + RMYY ); public static final List isNotWalletPay = List.of( @@ -49,11 +52,19 @@ public enum HardPayTypeEnum { ALI_SELF_QR_CODE_PAY ); + // 可以核销的订单 public static final List isNeedCancel = List.of( STRIDE_DEPT_QR_CODE, FOREIGN_TICKET_QR_CODE ); + // 线下支付的订单类型(现金支付,其他渠道支付如中医院、人民医院) + public static final List isOffline = List.of( + CASH, + ZYY, + RMYY + ); + public static HardPayTypeEnum valueOfByType(String type) { if (ObjectUtil.isEmpty(type)) return null; return Arrays.stream(values()).filter(v -> ObjectUtil.equals(type, v.getType())).findFirst().get(); diff --git a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/dto/sync/HardSyncSupermarket.java b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/dto/sync/HardSyncSupermarket.java new file mode 100644 index 000000000..9c211bbce --- /dev/null +++ b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/dto/sync/HardSyncSupermarket.java @@ -0,0 +1,14 @@ +package com.bsd.pjcloud.hard.api.dto.sync; + +import jakarta.validation.constraints.NotEmpty; +import lombok.Data; + +import java.util.List; + +@Data +public class HardSyncSupermarket { + + @NotEmpty(message = "部门商户记录不存在") + private List mchDeptIdList; + +} diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/sync/HardSyncController.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/sync/HardSyncController.java index cdc932000..f1f70de29 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/sync/HardSyncController.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/sync/HardSyncController.java @@ -5,15 +5,14 @@ import com.bsd.pjcloud.common.idempotent.annotation.Idempotent; import com.bsd.pjcloud.common.log.annotation.SysLog; import com.bsd.pjcloud.common.security.service.PjcloudUser; import com.bsd.pjcloud.common.security.util.SecurityUtils; +import com.bsd.pjcloud.hard.api.dto.sync.HardSyncSupermarket; import com.bsd.pjcloud.hard.service.HardSyncService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.security.SecurityRequirement; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.springframework.http.HttpHeaders; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; /** * 设备同步 @@ -37,4 +36,13 @@ public class HardSyncController { return R.ok(); } + @Operation(summary = "管理员同步超市分类商品和同步", description = "管理员同步超市分类商品和同步") + @SysLog("管理员同步超市分类商品和同步") + @Idempotent(expireTime = 3, info = "正在同步中,请勿重复操作") + @PostMapping("/sync-supermarket") + public R syncSupermarketByMchDeptIds(@RequestBody HardSyncSupermarket dto) { + hardSyncService.syncSupermarketByMchDeptIds(dto); + return R.ok(); + } + } diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardSyncService.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardSyncService.java index dd2ede6d6..4a539d925 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardSyncService.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardSyncService.java @@ -1,6 +1,7 @@ package com.bsd.pjcloud.hard.service; import com.bsd.pjcloud.common.security.service.PjcloudUser; +import com.bsd.pjcloud.hard.api.dto.sync.HardSyncSupermarket; public interface HardSyncService { @@ -9,4 +10,8 @@ public interface HardSyncService { */ void syncSupermarket(PjcloudUser user); + /** + * 管理员同步超市分类商品和同步 + */ + void syncSupermarketByMchDeptIds(HardSyncSupermarket dto); } diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardOrderServiceImpl.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardOrderServiceImpl.java index 02d0368c7..5f57ee4df 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardOrderServiceImpl.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardOrderServiceImpl.java @@ -201,8 +201,9 @@ public class HardOrderServiceImpl extends ServiceImpl sendSupermarketClassifyChangeMsg(@RequestParam Long deptId); + /** + * 超市分类变化 + */ + @NoToken + @GetMapping("/mqtt/send-supermarket") + R sendSupermarket(@RequestParam List deptIdList); + /** * 人脸变化 */ diff --git a/pjcloud-mqtt/pjcloud-mqtt-api/src/main/java/com/bsd/pjcloud/mqtt/constant/MqttActionEnum.java b/pjcloud-mqtt/pjcloud-mqtt-api/src/main/java/com/bsd/pjcloud/mqtt/constant/MqttActionEnum.java index 58142a103..3c9af1d98 100644 --- a/pjcloud-mqtt/pjcloud-mqtt-api/src/main/java/com/bsd/pjcloud/mqtt/constant/MqttActionEnum.java +++ b/pjcloud-mqtt/pjcloud-mqtt-api/src/main/java/com/bsd/pjcloud/mqtt/constant/MqttActionEnum.java @@ -14,6 +14,7 @@ public enum MqttActionEnum { CANTEEN_CLASSIFY("食堂分类变化"), SUPERMARKET_PRODUCT("超市商品变化"), SUPERMARKET_CLASSIFY("超市分类变化"), + SUPERMARKET("超市变化"), PRINT("打印变化"), FACE("人脸变化"), TAKE_FOOD_BROADCAST("定餐广播"), diff --git a/pjcloud-mqtt/pjcloud-mqtt-biz/src/main/java/com/bsd/pjcloud/mqtt/controller/MqttEventController.java b/pjcloud-mqtt/pjcloud-mqtt-biz/src/main/java/com/bsd/pjcloud/mqtt/controller/MqttEventController.java index 0b3d298e5..675d2c9b4 100644 --- a/pjcloud-mqtt/pjcloud-mqtt-biz/src/main/java/com/bsd/pjcloud/mqtt/controller/MqttEventController.java +++ b/pjcloud-mqtt/pjcloud-mqtt-biz/src/main/java/com/bsd/pjcloud/mqtt/controller/MqttEventController.java @@ -15,6 +15,8 @@ import lombok.RequiredArgsConstructor; import org.springframework.http.HttpHeaders; import org.springframework.web.bind.annotation.*; +import java.util.List; + @RestController @RequiredArgsConstructor @RequestMapping("/mqtt") @@ -99,6 +101,23 @@ public class MqttEventController { return R.ok(mqttEventService.defaultAction(dto)); } + /** + * 超市分类变化 + */ + @Inner + @GetMapping("/send-supermarket") + public R sendSupermarket(@RequestParam List deptIdList) { + if (ObjectUtil.isNotEmpty(deptIdList)) return R.failed(false); + for (Long v : deptIdList) { + MqttBaseDto dto = new MqttBaseDto<>(); + if (ObjectUtil.isNotEmpty(v)) dto.setMerchantDeptId(v); + dto.setAction(MqttActionEnum.SUPERMARKET); + mqttEventService.defaultAction(dto); + } + return R.ok(true); + } + + /** * 人脸变化 */ diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/WalletManageController.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/WalletManageController.java index 3cd81035a..866c2e96d 100644 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/WalletManageController.java +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/WalletManageController.java @@ -52,6 +52,18 @@ public class WalletManageController { private final WalletManageMapper walletManageMapper; + /* ************************************* start android start ************************************* */ + + @Operation(summary = "根据短码查询加密信息", description = "根据短码查询加密信息") + @GetMapping("/ad/wallet/list") + public R> adWalletList(@RequestParam Long userId) { + WalletManageDto dto = new WalletManageDto(); + dto.setUserId(userId); + return R.ok(walletManageMapper.joinList(dto)); + } + + /* ************************************* end android end ************************************* */ + /* ************************************* start 远程调用 start ************************************* */ @Inner @GetMapping("/get-or-create-wallet")