From c9859e4b7808a781a53931afbd352c1cd0748a73 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A2=A8=E5=A4=A7=E5=8F=94?= <494979559@qq.com> Date: Thu, 19 Sep 2024 16:10:04 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A5=97=E9=A4=90=E4=BD=8E=E5=8A=9F=E7=8E=87?= =?UTF-8?q?=E5=85=B3=E9=97=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/pay/syb/service/SybPayService.java | 11 ++- .../system/domain/enums/config/ConfigKey.java | 3 +- .../system/service/ISysConfigService.java | 5 ++ .../service/impl/SysConfigServiceImpl.java | 16 ++++ .../com/ruoyi/iot/domain/IotDeviceInfo.java | 2 +- .../service/impl/DeviceServiceImpl.java | 21 +++-- .../ruoyi/ss/model/domain/enums/ModelTag.java | 12 ++- .../ruoyi/ss/payBill/domain/PayBillQuery.java | 3 + .../ruoyi/ss/payBill/mapper/PayBillMapper.xml | 6 ++ .../service/impl/PayBillServiceImpl.java | 28 +++++- .../service/impl/RefundConverterImpl.java | 2 +- .../java/com/ruoyi/ss/suit/domain/Suit.java | 10 +++ .../java/com/ruoyi/ss/suit/domain/SuitBO.java | 4 + .../com/ruoyi/ss/suit/mapper/SuitMapper.xml | 9 ++ .../ruoyi/ss/suit/service/SuitValidator.java | 6 ++ .../ss/suit/service/impl/SuitServiceImpl.java | 14 +++ .../suit/service/impl/SuitValidatorImpl.java | 8 ++ .../domain/TransactionBill.java | 12 +++ .../domain/TransactionBillQuery.java | 4 + .../mapper/TransactionBillMapper.xml | 19 +++- .../service/TransactionBillService.java | 6 ++ .../impl/TransactionBillServiceImpl.java | 9 ++ .../com/ruoyi/task/bill/BillLowPowerTask.java | 90 +++++++++++++++++++ .../app/AppTransactionBillController.java | 2 +- .../ss/SmTransactionBillController.java | 2 +- 25 files changed, 285 insertions(+), 19 deletions(-) create mode 100644 smart-switch-service/src/main/java/com/ruoyi/task/bill/BillLowPowerTask.java diff --git a/smart-switch-ruoyi/smart-switch-common/src/main/java/com/ruoyi/common/pay/syb/service/SybPayService.java b/smart-switch-ruoyi/smart-switch-common/src/main/java/com/ruoyi/common/pay/syb/service/SybPayService.java index 298887b9..23eadaaf 100644 --- a/smart-switch-ruoyi/smart-switch-common/src/main/java/com/ruoyi/common/pay/syb/service/SybPayService.java +++ b/smart-switch-ruoyi/smart-switch-common/src/main/java/com/ruoyi/common/pay/syb/service/SybPayService.java @@ -3,6 +3,7 @@ package com.ruoyi.common.pay.syb.service; import com.alibaba.fastjson2.JSON; import com.ruoyi.common.exception.ServiceException; import com.ruoyi.common.pay.syb.config.SybConfig; +import com.ruoyi.common.pay.syb.enums.SybTrxStatus; import com.ruoyi.common.pay.syb.util.SybUtil; import com.ruoyi.common.pay.wx.domain.Payable; import com.ruoyi.common.pay.wx.domain.RefundAble; @@ -58,9 +59,13 @@ public class SybPayService { ); if (result != null) { - String payInfo = result.get("payinfo"); - if (StringUtils.hasText(payInfo)) { - return JSON.parseObject(payInfo, PrepayWithRequestPaymentResponse.class); + if (SybTrxStatus.isSuccess(result)) { + String payInfo = result.get("payinfo"); + if (StringUtils.hasText(payInfo)) { + return JSON.parseObject(payInfo, PrepayWithRequestPaymentResponse.class); + } + } else { + throw new ServiceException(result.get("errmsg")); } } throw new ServiceException("支付数据为空"); diff --git a/smart-switch-ruoyi/smart-switch-system/src/main/java/com/ruoyi/system/domain/enums/config/ConfigKey.java b/smart-switch-ruoyi/smart-switch-system/src/main/java/com/ruoyi/system/domain/enums/config/ConfigKey.java index 6912caa2..033c7bda 100644 --- a/smart-switch-ruoyi/smart-switch-system/src/main/java/com/ruoyi/system/domain/enums/config/ConfigKey.java +++ b/smart-switch-ruoyi/smart-switch-system/src/main/java/com/ruoyi/system/domain/enums/config/ConfigKey.java @@ -20,7 +20,8 @@ public enum ConfigKey { DAILY_WITHDRAW_AMOUNT("daily.withdraw.amount", "单日单用户提现限额(元)"), DAILY_WITHDRAW_COUNT("daily.withdraw.count", "单日单用户提现次数(次)"), NOVERIFY_WITHDRAW_SINGLE("noverify.withdraw.single", "提现单笔免审核额度(元)"), - RECHARGE_MIN_SERVICE("recharge.min.service","充值最低服务费(元)"); + RECHARGE_MIN_SERVICE("recharge.min.service","充值最低服务费(元)"), + ORDER_AUTO_CLOSE_CD("order.auto.close.cd", "订单自动关闭冷却时间(分)"); private final String key; private final String msg; diff --git a/smart-switch-ruoyi/smart-switch-system/src/main/java/com/ruoyi/system/service/ISysConfigService.java b/smart-switch-ruoyi/smart-switch-system/src/main/java/com/ruoyi/system/service/ISysConfigService.java index 3f8c12f9..9b30a87c 100644 --- a/smart-switch-ruoyi/smart-switch-system/src/main/java/com/ruoyi/system/service/ISysConfigService.java +++ b/smart-switch-ruoyi/smart-switch-system/src/main/java/com/ruoyi/system/service/ISysConfigService.java @@ -103,8 +103,13 @@ public interface ISysConfigService */ boolean getBoolean(ConfigKey key); + /** + * 获取int类型配置 + */ + int getInt(ConfigKey key); List selectByIds(List configIds); int batchUpdateValue(List list); + } diff --git a/smart-switch-ruoyi/smart-switch-system/src/main/java/com/ruoyi/system/service/impl/SysConfigServiceImpl.java b/smart-switch-ruoyi/smart-switch-system/src/main/java/com/ruoyi/system/service/impl/SysConfigServiceImpl.java index cb7dbdcc..e7462bf4 100644 --- a/smart-switch-ruoyi/smart-switch-system/src/main/java/com/ruoyi/system/service/impl/SysConfigServiceImpl.java +++ b/smart-switch-ruoyi/smart-switch-system/src/main/java/com/ruoyi/system/service/impl/SysConfigServiceImpl.java @@ -10,6 +10,7 @@ import com.ruoyi.common.utils.ServiceUtil; import com.ruoyi.common.utils.collection.CollectionUtils; import com.ruoyi.system.domain.dto.SysConfigQuery; import com.ruoyi.system.domain.enums.config.ConfigKey; +import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.ruoyi.common.annotation.DataSource; @@ -31,6 +32,7 @@ import org.springframework.transaction.support.TransactionTemplate; * @author ruoyi */ @Service +@Slf4j public class SysConfigServiceImpl implements ISysConfigService { @Autowired @@ -244,6 +246,20 @@ public class SysConfigServiceImpl implements ISysConfigService return "true".equals(selectConfigByKey(key.getKey())); } + @Override + public int getInt(ConfigKey key) { + String s = selectConfigByKey(key.getKey()); + try { + if (StringUtils.hasText(s)) { + return Integer.parseInt(s); + } + return 0; + } catch (Exception e) { + log.warn("获取配置{}值失败:{}", key.getKey(), e.getMessage()); + return 0; + } + } + @Override public List selectByIds(List configIds) { if (CollectionUtils.isEmptyElement(configIds)) { diff --git a/smart-switch-service/src/main/java/com/ruoyi/iot/domain/IotDeviceInfo.java b/smart-switch-service/src/main/java/com/ruoyi/iot/domain/IotDeviceInfo.java index 3e503017..5397156d 100644 --- a/smart-switch-service/src/main/java/com/ruoyi/iot/domain/IotDeviceInfo.java +++ b/smart-switch-service/src/main/java/com/ruoyi/iot/domain/IotDeviceInfo.java @@ -24,7 +24,7 @@ public class IotDeviceInfo { private Date at; // 时间 private BigDecimal v; // 电压 - private BigDecimal p; // 功率 + private BigDecimal p; // 功率(瓦) private BigDecimal a; // 电流 private BigDecimal w; // 总用电量(度) private String s; // 开关状态,0不通电,1闭合通电 diff --git a/smart-switch-service/src/main/java/com/ruoyi/ss/device/service/impl/DeviceServiceImpl.java b/smart-switch-service/src/main/java/com/ruoyi/ss/device/service/impl/DeviceServiceImpl.java index ec724d23..e354d483 100644 --- a/smart-switch-service/src/main/java/com/ruoyi/ss/device/service/impl/DeviceServiceImpl.java +++ b/smart-switch-service/src/main/java/com/ruoyi/ss/device/service/impl/DeviceServiceImpl.java @@ -30,6 +30,7 @@ import com.ruoyi.ss.deviceBindRecord.service.ISmDeviceBindRecordService; import com.ruoyi.ss.deviceSuit.service.DeviceSuitConverter; import com.ruoyi.ss.deviceSuit.service.DeviceSuitService; import com.ruoyi.ss.model.domain.SmModelVO; +import com.ruoyi.ss.model.domain.enums.ModelTag; import com.ruoyi.ss.model.service.ModelService; import com.ruoyi.ss.record.time.domain.enums.RecordTimeType; import com.ruoyi.ss.record.time.service.IRecordTimeService; @@ -735,17 +736,27 @@ public class DeviceServiceImpl implements DeviceService data.setTotalElectriQuantity(deviceInfo.getW()); data.setPowerStatus(deviceInfo.getS()); data.setRemainTime(deviceInfo.getTime()); - data.setWifi(deviceInfo.getWifi()); - data.setSurplusEle(deviceInfo.getM()); + + // 是否有WIFI + if (ModelTag.hasTag(device.getModelTags(), ModelTag.WIFI)) { + data.setWifi(deviceInfo.getWifi()); + } + + // 是否有电量 + if (ModelTag.hasTag(device.getModelTags(), ModelTag.ELE)) { + data.setSurplusEle(deviceInfo.getM()); + } else { + data.setSurplusEle(BigDecimal.ZERO); + } } // 判断设备是否正在使用 - // 时长优先级最高,若当前设备过期时间 > 当前时间,则正在使用 + // 设备过期时间 > 当前时间,则正在使用 boolean hasTime = device.getExpireTime().isAfter(now); // 若当前设备有电量,则正在使用 - boolean hasEle = device.getSurplusEle().compareTo(BigDecimal.ZERO) > 0; + boolean hasEle = data.getSurplusEle().compareTo(BigDecimal.ZERO) > 0; // 若开关开启,则正在使用 - boolean hasOpen = DevicePowerStatus.ON.getStatus().equals(device.getPowerStatus()); + boolean hasOpen = DevicePowerStatus.ON.getStatus().equals(data.getPowerStatus()); if (hasTime || hasEle || hasOpen) { data.setStatus(DeviceStatus.USING.getStatus()); } else { diff --git a/smart-switch-service/src/main/java/com/ruoyi/ss/model/domain/enums/ModelTag.java b/smart-switch-service/src/main/java/com/ruoyi/ss/model/domain/enums/ModelTag.java index 81267e1a..d0589b6f 100644 --- a/smart-switch-service/src/main/java/com/ruoyi/ss/model/domain/enums/ModelTag.java +++ b/smart-switch-service/src/main/java/com/ruoyi/ss/model/domain/enums/ModelTag.java @@ -20,7 +20,8 @@ public enum ModelTag { BLUETOOTH("1", "蓝牙"), WIFI("2", "WIFI"), FOUR_G("3", "4G"), - GPS("4", "GPS"); + GPS("4", "GPS"), + ELE("5", "电量"); private final String tag; private final String msg; @@ -37,4 +38,13 @@ public enum ModelTag { public static boolean contains(List tags) { return new HashSet<>(Arrays.stream(ModelTag.values()).map(ModelTag::getTag).collect(Collectors.toList())).containsAll(tags); } + + // 判断列表中是否包含目标标签 + public static boolean hasAllTag(List tags, ModelTag ...modelTags) { + return new HashSet<>(Arrays.stream(modelTags).map(ModelTag::getTag).collect(Collectors.toList())).containsAll(tags); + } + + public static boolean hasTag(List modelTags, ModelTag modelTag) { + return modelTags.contains(modelTag.getTag()); + } } diff --git a/smart-switch-service/src/main/java/com/ruoyi/ss/payBill/domain/PayBillQuery.java b/smart-switch-service/src/main/java/com/ruoyi/ss/payBill/domain/PayBillQuery.java index 84906b18..7b9e91e2 100644 --- a/smart-switch-service/src/main/java/com/ruoyi/ss/payBill/domain/PayBillQuery.java +++ b/smart-switch-service/src/main/java/com/ruoyi/ss/payBill/domain/PayBillQuery.java @@ -28,4 +28,7 @@ public class PayBillQuery extends PayBill{ @ApiModelProperty("创建时间(结束)") private LocalDateTime endCreateTime; + + @ApiModelProperty("支付订单ID列表") + private List payIds; } diff --git a/smart-switch-service/src/main/java/com/ruoyi/ss/payBill/mapper/PayBillMapper.xml b/smart-switch-service/src/main/java/com/ruoyi/ss/payBill/mapper/PayBillMapper.xml index bb74d2dc..f4f20180 100644 --- a/smart-switch-service/src/main/java/com/ruoyi/ss/payBill/mapper/PayBillMapper.xml +++ b/smart-switch-service/src/main/java/com/ruoyi/ss/payBill/mapper/PayBillMapper.xml @@ -43,6 +43,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{item} + + and spb.pay_id in + + #{item} + +