From 2cb6533eaa3985fccfe156b9152f98eace0e32d0 Mon Sep 17 00:00:00 2001 From: DaxPay Dev Date: Thu, 25 Jun 2026 12:28:40 +0800 Subject: [PATCH] =?UTF-8?q?refactor(device):=20=E4=BA=91=E9=9F=B3=E5=93=8D?= =?UTF-8?q?=E8=AE=BE=E5=A4=87=E5=8F=B0=E8=B4=A6=E5=9F=9F=E4=BB=8E=20iot=20?= =?UTF-8?q?=E9=87=8D=E5=91=BD=E5=90=8D=E4=B8=BA=20device?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- _config/sql/update-tables.sql | 42 +++++------ .../SpeakerDeviceAdminController.java} | 40 +++++----- .../service/SpeakerDeviceAdminService.java} | 74 +++++++++---------- .../enums/DeviceStatusEnum.java} | 17 +++-- .../speaker/dao/SpeakerDeviceManager.java} | 22 +++--- .../speaker/dao/SpeakerDeviceMapper.java | 10 +++ .../speaker/entity/SpeakerDevice.java} | 16 ++-- .../speaker/param/SpeakerDeviceParam.java} | 4 +- .../speaker/param/SpeakerDeviceQuery.java} | 6 +- .../speaker/result/SpeakerDeviceResult.java} | 8 +- .../speaker/dao/IotSpeakerDeviceMapper.java | 10 --- ..._device_status.json => device_status.json} | 0 .../en-US/error/{iot => device}/speaker.json | 2 +- ..._device_status.json => device_status.json} | 0 .../zh-CN/error/{iot => device}/speaker.json | 2 +- 15 files changed, 127 insertions(+), 126 deletions(-) rename daxpay-payment/daxpay-payment-admin/src/main/java/cn/daxpay/open/payment/admin/{iot/speaker/controller/IotSpeakerDeviceAdminController.java => device/speaker/controller/SpeakerDeviceAdminController.java} (69%) rename daxpay-payment/daxpay-payment-admin/src/main/java/cn/daxpay/open/payment/admin/{iot/speaker/service/IotSpeakerDeviceAdminService.java => device/speaker/service/SpeakerDeviceAdminService.java} (57%) rename daxpay-payment/daxpay-payment-common/src/main/java/cn/daxpay/open/payment/{iot/speaker/enums/IotDeviceStatusEnum.java => device/enums/DeviceStatusEnum.java} (63%) rename daxpay-payment/daxpay-payment-common/src/main/java/cn/daxpay/open/payment/{iot/speaker/dao/IotSpeakerDeviceManager.java => device/speaker/dao/SpeakerDeviceManager.java} (53%) create mode 100644 daxpay-payment/daxpay-payment-common/src/main/java/cn/daxpay/open/payment/device/speaker/dao/SpeakerDeviceMapper.java rename daxpay-payment/daxpay-payment-common/src/main/java/cn/daxpay/open/payment/{iot/speaker/entity/IotSpeakerDevice.java => device/speaker/entity/SpeakerDevice.java} (76%) rename daxpay-payment/daxpay-payment-common/src/main/java/cn/daxpay/open/payment/{iot/speaker/param/IotSpeakerDeviceParam.java => device/speaker/param/SpeakerDeviceParam.java} (93%) rename daxpay-payment/daxpay-payment-common/src/main/java/cn/daxpay/open/payment/{iot/speaker/param/IotSpeakerDeviceQuery.java => device/speaker/param/SpeakerDeviceQuery.java} (85%) rename daxpay-payment/daxpay-payment-common/src/main/java/cn/daxpay/open/payment/{iot/speaker/result/IotSpeakerDeviceResult.java => device/speaker/result/SpeakerDeviceResult.java} (84%) delete mode 100644 daxpay-payment/daxpay-payment-common/src/main/java/cn/daxpay/open/payment/iot/speaker/dao/IotSpeakerDeviceMapper.java rename daxpay-platform/daxpay-platform-common/common-i18n/src/main/resources/i18n/en-US/enum/{iot_speaker_device_status.json => device_status.json} (100%) rename daxpay-platform/daxpay-platform-common/common-i18n/src/main/resources/i18n/en-US/error/{iot => device}/speaker.json (62%) rename daxpay-platform/daxpay-platform-common/common-i18n/src/main/resources/i18n/zh-CN/enum/{iot_speaker_device_status.json => device_status.json} (100%) rename daxpay-platform/daxpay-platform-common/common-i18n/src/main/resources/i18n/zh-CN/error/{iot => device}/speaker.json (57%) diff --git a/_config/sql/update-tables.sql b/_config/sql/update-tables.sql index 1d53e5059..9b7726420 100644 --- a/_config/sql/update-tables.sql +++ b/_config/sql/update-tables.sql @@ -157,7 +157,7 @@ CREATE INDEX IF NOT EXISTS idx_mch_store_info_mch_no ON mch_store_info (mch_no, -- =================================== -- 云音响设备(商米云音响, 设备台账与商户/门店绑定关系) -- =================================== -CREATE TABLE IF NOT EXISTS iot_speaker_device ( +CREATE TABLE IF NOT EXISTS device_speaker ( id bigint NOT NULL, mch_no varchar(32) NOT NULL, device_sn varchar(64) NOT NULL, @@ -174,28 +174,28 @@ CREATE TABLE IF NOT EXISTS iot_speaker_device ( last_modified_time timestamptz(6), version int NOT NULL DEFAULT 0, deleted boolean NOT NULL DEFAULT false, - CONSTRAINT iot_speaker_device_pkey PRIMARY KEY (id) + CONSTRAINT device_speaker_pkey PRIMARY KEY (id) ); -COMMENT ON TABLE iot_speaker_device IS '云音响设备(商米云音响, 设备台账与商户/门店绑定关系)'; -COMMENT ON COLUMN iot_speaker_device.id IS '主键'; -COMMENT ON COLUMN iot_speaker_device.mch_no IS '所属商户号'; -COMMENT ON COLUMN iot_speaker_device.device_sn IS '商米设备序列号(SN)'; -COMMENT ON COLUMN iot_speaker_device.imei IS '设备IMEI'; -COMMENT ON COLUMN iot_speaker_device.shop_id IS '商米门店ID'; -COMMENT ON COLUMN iot_speaker_device.device_name IS '设备名称'; -COMMENT ON COLUMN iot_speaker_device.status IS '设备状态(unbound未绑定/online在线/offline离线/fault故障)'; -COMMENT ON COLUMN iot_speaker_device.bind_time IS '绑定时间'; -COMMENT ON COLUMN iot_speaker_device.last_online_time IS '最后在线时间'; -COMMENT ON COLUMN iot_speaker_device.remark IS '备注'; -COMMENT ON COLUMN iot_speaker_device.creator IS '创建人ID'; -COMMENT ON COLUMN iot_speaker_device.create_time IS '创建时间'; -COMMENT ON COLUMN iot_speaker_device.last_modifier IS '最后修改人ID'; -COMMENT ON COLUMN iot_speaker_device.last_modified_time IS '最后修改时间'; -COMMENT ON COLUMN iot_speaker_device.version IS '版本号(乐观锁)'; -COMMENT ON COLUMN iot_speaker_device.deleted IS '逻辑删除标志'; +COMMENT ON TABLE device_speaker IS '云音响设备(商米云音响, 设备台账与商户/门店绑定关系)'; +COMMENT ON COLUMN device_speaker.id IS '主键'; +COMMENT ON COLUMN device_speaker.mch_no IS '所属商户号'; +COMMENT ON COLUMN device_speaker.device_sn IS '商米设备序列号(SN)'; +COMMENT ON COLUMN device_speaker.imei IS '设备IMEI'; +COMMENT ON COLUMN device_speaker.shop_id IS '商米门店ID'; +COMMENT ON COLUMN device_speaker.device_name IS '设备名称'; +COMMENT ON COLUMN device_speaker.status IS '设备状态(unbound未绑定/online在线/offline离线/fault故障)'; +COMMENT ON COLUMN device_speaker.bind_time IS '绑定时间'; +COMMENT ON COLUMN device_speaker.last_online_time IS '最后在线时间'; +COMMENT ON COLUMN device_speaker.remark IS '备注'; +COMMENT ON COLUMN device_speaker.creator IS '创建人ID'; +COMMENT ON COLUMN device_speaker.create_time IS '创建时间'; +COMMENT ON COLUMN device_speaker.last_modifier IS '最后修改人ID'; +COMMENT ON COLUMN device_speaker.last_modified_time IS '最后修改时间'; +COMMENT ON COLUMN device_speaker.version IS '版本号(乐观锁)'; +COMMENT ON COLUMN device_speaker.deleted IS '逻辑删除标志'; -- 设备序列号唯一索引(未删除范围内) -CREATE UNIQUE INDEX IF NOT EXISTS uk_iot_speaker_device_sn ON iot_speaker_device (device_sn) WHERE deleted = false; +CREATE UNIQUE INDEX IF NOT EXISTS uk_device_speaker_sn ON device_speaker (device_sn) WHERE deleted = false; -- 商户号查询索引 -CREATE INDEX IF NOT EXISTS idx_iot_speaker_device_mch_no ON iot_speaker_device (mch_no, deleted); +CREATE INDEX IF NOT EXISTS idx_device_speaker_mch_no ON device_speaker (mch_no, deleted); diff --git a/daxpay-payment/daxpay-payment-admin/src/main/java/cn/daxpay/open/payment/admin/iot/speaker/controller/IotSpeakerDeviceAdminController.java b/daxpay-payment/daxpay-payment-admin/src/main/java/cn/daxpay/open/payment/admin/device/speaker/controller/SpeakerDeviceAdminController.java similarity index 69% rename from daxpay-payment/daxpay-payment-admin/src/main/java/cn/daxpay/open/payment/admin/iot/speaker/controller/IotSpeakerDeviceAdminController.java rename to daxpay-payment/daxpay-payment-admin/src/main/java/cn/daxpay/open/payment/admin/device/speaker/controller/SpeakerDeviceAdminController.java index 1aaa6c5a4..2fb7e1738 100644 --- a/daxpay-payment/daxpay-payment-admin/src/main/java/cn/daxpay/open/payment/admin/iot/speaker/controller/IotSpeakerDeviceAdminController.java +++ b/daxpay-payment/daxpay-payment-admin/src/main/java/cn/daxpay/open/payment/admin/device/speaker/controller/SpeakerDeviceAdminController.java @@ -1,9 +1,9 @@ -package cn.daxpay.open.payment.admin.iot.speaker.controller; +package cn.daxpay.open.payment.admin.device.speaker.controller; -import cn.daxpay.open.payment.admin.iot.speaker.service.IotSpeakerDeviceAdminService; -import cn.daxpay.open.payment.iot.speaker.param.IotSpeakerDeviceParam; -import cn.daxpay.open.payment.iot.speaker.param.IotSpeakerDeviceQuery; -import cn.daxpay.open.payment.iot.speaker.result.IotSpeakerDeviceResult; +import cn.daxpay.open.payment.admin.device.speaker.service.SpeakerDeviceAdminService; +import cn.daxpay.open.payment.device.speaker.param.SpeakerDeviceParam; +import cn.daxpay.open.payment.device.speaker.param.SpeakerDeviceQuery; +import cn.daxpay.open.payment.device.speaker.result.SpeakerDeviceResult; import cn.daxpay.open.platform.core.annotation.PermCode; import cn.daxpay.open.platform.core.rest.Res; import cn.daxpay.open.platform.core.rest.param.PageParam; @@ -23,51 +23,51 @@ import org.springframework.web.bind.annotation.RestController; /// # 云音响设备管理(运营端) /// -@PermCode(menuCode = "payment:iot:speaker") +@PermCode(menuCode = "payment:device:speaker") @Validated @Tag(name = "云音响设备管理") @RestController -@RequestMapping("/admin/iot/speaker-device") +@RequestMapping("/admin/device/speaker") @RequiredArgsConstructor -public class IotSpeakerDeviceAdminController { +public class SpeakerDeviceAdminController { - private final IotSpeakerDeviceAdminService iotSpeakerDeviceAdminService; + private final SpeakerDeviceAdminService speakerDeviceAdminService; @PermCode(code = "add", nameCn = "云音响新增", nameEn = "Speaker Add") @Operation(summary = "新增云音响设备") @PostMapping("/add") - public Result add(@RequestBody @Validated(ValidationGroup.add.class) IotSpeakerDeviceParam param) { - iotSpeakerDeviceAdminService.add(param); + public Result add(@RequestBody @Validated(ValidationGroup.add.class) SpeakerDeviceParam param) { + speakerDeviceAdminService.add(param); return Res.ok(); } @PermCode(code = "edit", nameCn = "云音响编辑", nameEn = "Speaker Edit") @Operation(summary = "修改云音响设备") @PostMapping("/update") - public Result update(@RequestBody @Validated(ValidationGroup.edit.class) IotSpeakerDeviceParam param) { - iotSpeakerDeviceAdminService.update(param); + public Result update(@RequestBody @Validated(ValidationGroup.edit.class) SpeakerDeviceParam param) { + speakerDeviceAdminService.update(param); return Res.ok(); } @PermCode(code = "view", nameCn = "云音响查看", nameEn = "Speaker View") @Operation(summary = "云音响设备分页") @GetMapping("/page") - public Result> page(PageParam pageParam, IotSpeakerDeviceQuery query) { - return Res.ok(iotSpeakerDeviceAdminService.page(pageParam, query)); + public Result> page(PageParam pageParam, SpeakerDeviceQuery query) { + return Res.ok(speakerDeviceAdminService.page(pageParam, query)); } @PermCode(code = "view", nameCn = "云音响查看", nameEn = "Speaker View") @Operation(summary = "根据id查询云音响设备") @GetMapping("/get") - public Result findById(@NotNull(message = "{validation.field.id.notNull}") Long id) { - return Res.ok(iotSpeakerDeviceAdminService.findById(id)); + public Result findById(@NotNull(message = "{validation.field.id.notNull}") Long id) { + return Res.ok(speakerDeviceAdminService.findById(id)); } @PermCode(code = "delete", nameCn = "云音响删除", nameEn = "Speaker Delete") @Operation(summary = "删除云音响设备") @PostMapping("/delete") public Result delete(@NotNull(message = "{validation.field.id.notNull}") Long id) { - iotSpeakerDeviceAdminService.delete(id); + speakerDeviceAdminService.delete(id); return Res.ok(); } @@ -75,7 +75,7 @@ public class IotSpeakerDeviceAdminController { @Operation(summary = "绑定云音响设备") @PostMapping("/bind") public Result bind(@NotNull(message = "{validation.field.id.notNull}") Long id) { - iotSpeakerDeviceAdminService.bind(id); + speakerDeviceAdminService.bind(id); return Res.ok(); } @@ -83,7 +83,7 @@ public class IotSpeakerDeviceAdminController { @Operation(summary = "解绑云音响设备") @PostMapping("/unbind") public Result unbind(@NotNull(message = "{validation.field.id.notNull}") Long id) { - iotSpeakerDeviceAdminService.unbind(id); + speakerDeviceAdminService.unbind(id); return Res.ok(); } } diff --git a/daxpay-payment/daxpay-payment-admin/src/main/java/cn/daxpay/open/payment/admin/iot/speaker/service/IotSpeakerDeviceAdminService.java b/daxpay-payment/daxpay-payment-admin/src/main/java/cn/daxpay/open/payment/admin/device/speaker/service/SpeakerDeviceAdminService.java similarity index 57% rename from daxpay-payment/daxpay-payment-admin/src/main/java/cn/daxpay/open/payment/admin/iot/speaker/service/IotSpeakerDeviceAdminService.java rename to daxpay-payment/daxpay-payment-admin/src/main/java/cn/daxpay/open/payment/admin/device/speaker/service/SpeakerDeviceAdminService.java index f2913bce1..7fedb08e7 100644 --- a/daxpay-payment/daxpay-payment-admin/src/main/java/cn/daxpay/open/payment/admin/iot/speaker/service/IotSpeakerDeviceAdminService.java +++ b/daxpay-payment/daxpay-payment-admin/src/main/java/cn/daxpay/open/payment/admin/device/speaker/service/SpeakerDeviceAdminService.java @@ -1,11 +1,11 @@ -package cn.daxpay.open.payment.admin.iot.speaker.service; +package cn.daxpay.open.payment.admin.device.speaker.service; -import cn.daxpay.open.payment.iot.speaker.dao.IotSpeakerDeviceManager; -import cn.daxpay.open.payment.iot.speaker.entity.IotSpeakerDevice; -import cn.daxpay.open.payment.iot.speaker.enums.IotDeviceStatusEnum; -import cn.daxpay.open.payment.iot.speaker.param.IotSpeakerDeviceParam; -import cn.daxpay.open.payment.iot.speaker.param.IotSpeakerDeviceQuery; -import cn.daxpay.open.payment.iot.speaker.result.IotSpeakerDeviceResult; +import cn.daxpay.open.payment.device.enums.DeviceStatusEnum; +import cn.daxpay.open.payment.device.speaker.dao.SpeakerDeviceManager; +import cn.daxpay.open.payment.device.speaker.entity.SpeakerDevice; +import cn.daxpay.open.payment.device.speaker.param.SpeakerDeviceParam; +import cn.daxpay.open.payment.device.speaker.param.SpeakerDeviceQuery; +import cn.daxpay.open.payment.device.speaker.result.SpeakerDeviceResult; import cn.daxpay.open.platform.common.mybatisplus.util.MpUtil; import cn.daxpay.open.platform.core.code.CommonCode; import cn.daxpay.open.platform.core.exception.DataNotExistException; @@ -25,19 +25,19 @@ import java.time.OffsetDateTime; @Slf4j @Service @RequiredArgsConstructor -public class IotSpeakerDeviceAdminService { +public class SpeakerDeviceAdminService { - private final IotSpeakerDeviceManager iotSpeakerDeviceManager; + private final SpeakerDeviceManager speakerDeviceManager; /// 新增设备(默认未绑定状态) @Transactional(rollbackFor = Exception.class) - public void add(IotSpeakerDeviceParam param) { + public void add(SpeakerDeviceParam param) { // 校验设备SN唯一 - if (iotSpeakerDeviceManager.existsByDeviceSn(param.getDeviceSn(), null)) { + if (speakerDeviceManager.existsByDeviceSn(param.getDeviceSn(), null)) { // 云音响: 设备序列号已存在 - throw new OperationFailException(CommonCode.FAIL_CODE, "error.iot.speaker.deviceSnExists"); + throw new OperationFailException(CommonCode.FAIL_CODE, "error.device.speaker.deviceSnExists"); } - IotSpeakerDevice entity = new IotSpeakerDevice() + SpeakerDevice entity = new SpeakerDevice() .setMchNo(param.getMchNo()) .setDeviceSn(param.getDeviceSn()) .setImei(param.getImei()) @@ -45,20 +45,20 @@ public class IotSpeakerDeviceAdminService { .setDeviceName(param.getDeviceName()) .setRemark(param.getRemark()) // 新增默认未绑定 - .setStatus(IotDeviceStatusEnum.UNBOUND.getCode()); - iotSpeakerDeviceManager.save(entity); + .setStatus(DeviceStatusEnum.UNBOUND.getCode()); + speakerDeviceManager.save(entity); } /// 修改设备 @Transactional(rollbackFor = Exception.class) - public void update(IotSpeakerDeviceParam param) { - IotSpeakerDevice entity = iotSpeakerDeviceManager.findById(param.getId()) + public void update(SpeakerDeviceParam param) { + SpeakerDevice entity = speakerDeviceManager.findById(param.getId()) // 云音响: 设备不存在 - .orElseThrow(() -> new DataNotExistException("error.iot.speaker.deviceNotFound")); + .orElseThrow(() -> new DataNotExistException("error.device.speaker.deviceNotFound")); // SN 变更时校验唯一 if (!entity.getDeviceSn().equals(param.getDeviceSn()) - && iotSpeakerDeviceManager.existsByDeviceSn(param.getDeviceSn(), param.getId())) { - throw new OperationFailException(CommonCode.FAIL_CODE, "error.iot.speaker.deviceSnExists"); + && speakerDeviceManager.existsByDeviceSn(param.getDeviceSn(), param.getId())) { + throw new OperationFailException(CommonCode.FAIL_CODE, "error.device.speaker.deviceSnExists"); } entity.setMchNo(param.getMchNo()) .setDeviceSn(param.getDeviceSn()) @@ -66,45 +66,45 @@ public class IotSpeakerDeviceAdminService { .setShopId(param.getShopId()) .setDeviceName(param.getDeviceName()) .setRemark(param.getRemark()); - iotSpeakerDeviceManager.updateById(entity); + speakerDeviceManager.updateById(entity); } /// 分页 - public PageResult page(PageParam pageParam, IotSpeakerDeviceQuery query) { - return MpUtil.toPageResult(iotSpeakerDeviceManager.page(pageParam, query)); + public PageResult page(PageParam pageParam, SpeakerDeviceQuery query) { + return MpUtil.toPageResult(speakerDeviceManager.page(pageParam, query)); } /// 根据id查询 - public IotSpeakerDeviceResult findById(Long id) { - return iotSpeakerDeviceManager.findById(id) + public SpeakerDeviceResult findById(Long id) { + return speakerDeviceManager.findById(id) // 云音响: 设备不存在 - .orElseThrow(() -> new DataNotExistException("error.iot.speaker.deviceNotFound")) + .orElseThrow(() -> new DataNotExistException("error.device.speaker.deviceNotFound")) .toResult(); } /// 删除 public void delete(Long id) { - iotSpeakerDeviceManager.findById(id) - .orElseThrow(() -> new DataNotExistException("error.iot.speaker.deviceNotFound")); - iotSpeakerDeviceManager.deleteById(id); + speakerDeviceManager.findById(id) + .orElseThrow(() -> new DataNotExistException("error.device.speaker.deviceNotFound")); + speakerDeviceManager.deleteById(id); } /// 绑定设备(首期仅更新本地状态为在线, 真实商米对接由独立服务完成) @Transactional(rollbackFor = Exception.class) public void bind(Long id) { - IotSpeakerDevice entity = iotSpeakerDeviceManager.findById(id) - .orElseThrow(() -> new DataNotExistException("error.iot.speaker.deviceNotFound")); - entity.setStatus(IotDeviceStatusEnum.ONLINE.getCode()) + SpeakerDevice entity = speakerDeviceManager.findById(id) + .orElseThrow(() -> new DataNotExistException("error.device.speaker.deviceNotFound")); + entity.setStatus(DeviceStatusEnum.ONLINE.getCode()) .setBindTime(OffsetDateTime.now()); - iotSpeakerDeviceManager.updateById(entity); + speakerDeviceManager.updateById(entity); } /// 解绑设备(首期仅更新本地状态为未绑定) @Transactional(rollbackFor = Exception.class) public void unbind(Long id) { - IotSpeakerDevice entity = iotSpeakerDeviceManager.findById(id) - .orElseThrow(() -> new DataNotExistException("error.iot.speaker.deviceNotFound")); - entity.setStatus(IotDeviceStatusEnum.UNBOUND.getCode()); - iotSpeakerDeviceManager.updateById(entity); + SpeakerDevice entity = speakerDeviceManager.findById(id) + .orElseThrow(() -> new DataNotExistException("error.device.speaker.deviceNotFound")); + entity.setStatus(DeviceStatusEnum.UNBOUND.getCode()); + speakerDeviceManager.updateById(entity); } } diff --git a/daxpay-payment/daxpay-payment-common/src/main/java/cn/daxpay/open/payment/iot/speaker/enums/IotDeviceStatusEnum.java b/daxpay-payment/daxpay-payment-common/src/main/java/cn/daxpay/open/payment/device/enums/DeviceStatusEnum.java similarity index 63% rename from daxpay-payment/daxpay-payment-common/src/main/java/cn/daxpay/open/payment/iot/speaker/enums/IotDeviceStatusEnum.java rename to daxpay-payment/daxpay-payment-common/src/main/java/cn/daxpay/open/payment/device/enums/DeviceStatusEnum.java index 6c80fca5b..c4c059c46 100644 --- a/daxpay-payment/daxpay-payment-common/src/main/java/cn/daxpay/open/payment/iot/speaker/enums/IotDeviceStatusEnum.java +++ b/daxpay-payment/daxpay-payment-common/src/main/java/cn/daxpay/open/payment/device/enums/DeviceStatusEnum.java @@ -1,4 +1,4 @@ -package cn.daxpay.open.payment.iot.speaker.enums; +package cn.daxpay.open.payment.device.enums; import cn.daxpay.open.platform.core.exception.DataNotExistException; import cn.daxpay.open.platform.core.i18n.I18nSupport; @@ -7,12 +7,13 @@ import lombok.RequiredArgsConstructor; import java.util.Arrays; -/// # 云音响设备状态 +/// # 设备状态 /// -/// 字典: iot_speaker_device_status +/// 通用设备状态字典, 适用于云音响/云打印等各类设备。 +/// 字典: device_status @Getter @RequiredArgsConstructor -public enum IotDeviceStatusEnum implements I18nSupport { +public enum DeviceStatusEnum implements I18nSupport { /// 未绑定 UNBOUND("unbound"), @@ -29,15 +30,15 @@ public enum IotDeviceStatusEnum implements I18nSupport { /// 翻译 key 前缀 @Override public String getI18nPrefix() { - return "enum.iot_speaker_device_status"; + return "enum.device_status"; } /// 根据编码查找 - public static IotDeviceStatusEnum findByCode(String code) { + public static DeviceStatusEnum findByCode(String code) { return Arrays.stream(values()) .filter(e -> e.getCode().equals(code)) .findFirst() - // 通用: 未找到对应的云音响设备状态: {0} - .orElseThrow(() -> new DataNotExistException("error.iot.speaker.deviceStatusNotFound", code)); + // 通用: 未找到对应的设备状态: {0} + .orElseThrow(() -> new DataNotExistException("error.device.speaker.deviceStatusNotFound", code)); } } diff --git a/daxpay-payment/daxpay-payment-common/src/main/java/cn/daxpay/open/payment/iot/speaker/dao/IotSpeakerDeviceManager.java b/daxpay-payment/daxpay-payment-common/src/main/java/cn/daxpay/open/payment/device/speaker/dao/SpeakerDeviceManager.java similarity index 53% rename from daxpay-payment/daxpay-payment-common/src/main/java/cn/daxpay/open/payment/iot/speaker/dao/IotSpeakerDeviceManager.java rename to daxpay-payment/daxpay-payment-common/src/main/java/cn/daxpay/open/payment/device/speaker/dao/SpeakerDeviceManager.java index 3bdcf5a23..1a16520c6 100644 --- a/daxpay-payment/daxpay-payment-common/src/main/java/cn/daxpay/open/payment/iot/speaker/dao/IotSpeakerDeviceManager.java +++ b/daxpay-payment/daxpay-payment-common/src/main/java/cn/daxpay/open/payment/device/speaker/dao/SpeakerDeviceManager.java @@ -1,7 +1,7 @@ -package cn.daxpay.open.payment.iot.speaker.dao; +package cn.daxpay.open.payment.device.speaker.dao; -import cn.daxpay.open.payment.iot.speaker.entity.IotSpeakerDevice; -import cn.daxpay.open.payment.iot.speaker.param.IotSpeakerDeviceQuery; +import cn.daxpay.open.payment.device.speaker.entity.SpeakerDevice; +import cn.daxpay.open.payment.device.speaker.param.SpeakerDeviceQuery; import cn.daxpay.open.platform.common.mybatisplus.impl.BaseManager; import cn.daxpay.open.platform.common.mybatisplus.query.generator.QueryGenerator; import cn.daxpay.open.platform.common.mybatisplus.util.MpUtil; @@ -19,25 +19,25 @@ import java.util.Optional; @Slf4j @Repository @RequiredArgsConstructor -public class IotSpeakerDeviceManager extends BaseManager { +public class SpeakerDeviceManager extends BaseManager { /// 根据设备SN查询 - public Optional findByDeviceSn(String deviceSn) { - return findByField(IotSpeakerDevice::getDeviceSn, deviceSn); + public Optional findByDeviceSn(String deviceSn) { + return findByField(SpeakerDevice::getDeviceSn, deviceSn); } /// 判断设备SN是否存在(排除指定id, excludeId 为 null 时不排除) public boolean existsByDeviceSn(String deviceSn, Long excludeId) { if (excludeId == null) { - return existedByField(IotSpeakerDevice::getDeviceSn, deviceSn); + return existedByField(SpeakerDevice::getDeviceSn, deviceSn); } - return existedByField(IotSpeakerDevice::getDeviceSn, deviceSn, excludeId); + return existedByField(SpeakerDevice::getDeviceSn, deviceSn, excludeId); } /// 分页 - public Page page(PageParam pageParam, IotSpeakerDeviceQuery query) { - Page mpPage = MpUtil.getMpPage(pageParam); - QueryWrapper wrapper = QueryGenerator.generator(query); + public Page page(PageParam pageParam, SpeakerDeviceQuery query) { + Page mpPage = MpUtil.getMpPage(pageParam); + QueryWrapper wrapper = QueryGenerator.generator(query); return this.page(mpPage, wrapper); } } diff --git a/daxpay-payment/daxpay-payment-common/src/main/java/cn/daxpay/open/payment/device/speaker/dao/SpeakerDeviceMapper.java b/daxpay-payment/daxpay-payment-common/src/main/java/cn/daxpay/open/payment/device/speaker/dao/SpeakerDeviceMapper.java new file mode 100644 index 000000000..c878a5b04 --- /dev/null +++ b/daxpay-payment/daxpay-payment-common/src/main/java/cn/daxpay/open/payment/device/speaker/dao/SpeakerDeviceMapper.java @@ -0,0 +1,10 @@ +package cn.daxpay.open.payment.device.speaker.dao; + +import cn.daxpay.open.payment.device.speaker.entity.SpeakerDevice; +import com.github.yulichang.base.MPJBaseMapper; +import org.apache.ibatis.annotations.Mapper; + +/// # 云音响设备 +@Mapper +public interface SpeakerDeviceMapper extends MPJBaseMapper { +} diff --git a/daxpay-payment/daxpay-payment-common/src/main/java/cn/daxpay/open/payment/iot/speaker/entity/IotSpeakerDevice.java b/daxpay-payment/daxpay-payment-common/src/main/java/cn/daxpay/open/payment/device/speaker/entity/SpeakerDevice.java similarity index 76% rename from daxpay-payment/daxpay-payment-common/src/main/java/cn/daxpay/open/payment/iot/speaker/entity/IotSpeakerDevice.java rename to daxpay-payment/daxpay-payment-common/src/main/java/cn/daxpay/open/payment/device/speaker/entity/SpeakerDevice.java index 1dcec81af..7ff6d0511 100644 --- a/daxpay-payment/daxpay-payment-common/src/main/java/cn/daxpay/open/payment/iot/speaker/entity/IotSpeakerDevice.java +++ b/daxpay-payment/daxpay-payment-common/src/main/java/cn/daxpay/open/payment/device/speaker/entity/SpeakerDevice.java @@ -1,7 +1,7 @@ -package cn.daxpay.open.payment.iot.speaker.entity; +package cn.daxpay.open.payment.device.speaker.entity; -import cn.daxpay.open.payment.iot.speaker.enums.IotDeviceStatusEnum; -import cn.daxpay.open.payment.iot.speaker.result.IotSpeakerDeviceResult; +import cn.daxpay.open.payment.device.enums.DeviceStatusEnum; +import cn.daxpay.open.payment.device.speaker.result.SpeakerDeviceResult; import cn.daxpay.open.platform.common.mybatisplus.base.MpBaseEntity; import cn.daxpay.open.platform.common.mybatisplus.function.ToResult; import com.baomidou.mybatisplus.annotation.TableName; @@ -17,8 +17,8 @@ import java.time.OffsetDateTime; @EqualsAndHashCode(callSuper = true) @Data @Accessors(chain = true) -@TableName("iot_speaker_device") -public class IotSpeakerDevice extends MpBaseEntity implements ToResult { +@TableName("device_speaker") +public class SpeakerDevice extends MpBaseEntity implements ToResult { /// 商户号 private String mchNo; @@ -36,7 +36,7 @@ public class IotSpeakerDevice extends MpBaseEntity implements ToResult { -} diff --git a/daxpay-platform/daxpay-platform-common/common-i18n/src/main/resources/i18n/en-US/enum/iot_speaker_device_status.json b/daxpay-platform/daxpay-platform-common/common-i18n/src/main/resources/i18n/en-US/enum/device_status.json similarity index 100% rename from daxpay-platform/daxpay-platform-common/common-i18n/src/main/resources/i18n/en-US/enum/iot_speaker_device_status.json rename to daxpay-platform/daxpay-platform-common/common-i18n/src/main/resources/i18n/en-US/enum/device_status.json diff --git a/daxpay-platform/daxpay-platform-common/common-i18n/src/main/resources/i18n/en-US/error/iot/speaker.json b/daxpay-platform/daxpay-platform-common/common-i18n/src/main/resources/i18n/en-US/error/device/speaker.json similarity index 62% rename from daxpay-platform/daxpay-platform-common/common-i18n/src/main/resources/i18n/en-US/error/iot/speaker.json rename to daxpay-platform/daxpay-platform-common/common-i18n/src/main/resources/i18n/en-US/error/device/speaker.json index ce3de5b71..467a4c4f8 100644 --- a/daxpay-platform/daxpay-platform-common/common-i18n/src/main/resources/i18n/en-US/error/iot/speaker.json +++ b/daxpay-platform/daxpay-platform-common/common-i18n/src/main/resources/i18n/en-US/error/device/speaker.json @@ -1,5 +1,5 @@ { "deviceNotFound": "Cloud speaker device not found", "deviceSnExists": "Device serial number already exists", - "deviceStatusNotFound": "Cloud speaker device status not found: {0}" + "deviceStatusNotFound": "Device status not found: {0}" } diff --git a/daxpay-platform/daxpay-platform-common/common-i18n/src/main/resources/i18n/zh-CN/enum/iot_speaker_device_status.json b/daxpay-platform/daxpay-platform-common/common-i18n/src/main/resources/i18n/zh-CN/enum/device_status.json similarity index 100% rename from daxpay-platform/daxpay-platform-common/common-i18n/src/main/resources/i18n/zh-CN/enum/iot_speaker_device_status.json rename to daxpay-platform/daxpay-platform-common/common-i18n/src/main/resources/i18n/zh-CN/enum/device_status.json diff --git a/daxpay-platform/daxpay-platform-common/common-i18n/src/main/resources/i18n/zh-CN/error/iot/speaker.json b/daxpay-platform/daxpay-platform-common/common-i18n/src/main/resources/i18n/zh-CN/error/device/speaker.json similarity index 57% rename from daxpay-platform/daxpay-platform-common/common-i18n/src/main/resources/i18n/zh-CN/error/iot/speaker.json rename to daxpay-platform/daxpay-platform-common/common-i18n/src/main/resources/i18n/zh-CN/error/device/speaker.json index 89874103f..abd31f130 100644 --- a/daxpay-platform/daxpay-platform-common/common-i18n/src/main/resources/i18n/zh-CN/error/iot/speaker.json +++ b/daxpay-platform/daxpay-platform-common/common-i18n/src/main/resources/i18n/zh-CN/error/device/speaker.json @@ -1,5 +1,5 @@ { "deviceNotFound": "云音响设备不存在", "deviceSnExists": "设备序列号已存在", - "deviceStatusNotFound": "未找到对应的云音响设备状态: {0}" + "deviceStatusNotFound": "未找到对应的设备状态: {0}" }