From eebccd5453d736c30cd211e480cec8f81c823045 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A2=A8=E5=A4=A7=E5=8F=94?= <494979559@qq.com> Date: Sat, 7 Sep 2024 17:22:19 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A5=97=E9=A4=90=E6=9C=80=E4=BD=8E0.1?= =?UTF-8?q?=E5=85=83=EF=BC=8C=E6=89=8B=E7=BB=AD=E8=B4=B9=E6=9C=80=E4=BD=8E?= =?UTF-8?q?0.05=E5=85=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/ruoyi/ss/suit/domain/Suit.java | 2 +- .../service/TransactionBillService.java | 7 +++++ .../impl/TransactionBillServiceImpl.java | 31 +++++++++++++++++++ .../app/AppTransactionBillController.java | 13 ++++++++ 4 files changed, 52 insertions(+), 1 deletion(-) diff --git a/smart-switch-service/src/main/java/com/ruoyi/ss/suit/domain/Suit.java b/smart-switch-service/src/main/java/com/ruoyi/ss/suit/domain/Suit.java index 4cf159cc..2862b260 100644 --- a/smart-switch-service/src/main/java/com/ruoyi/ss/suit/domain/Suit.java +++ b/smart-switch-service/src/main/java/com/ruoyi/ss/suit/domain/Suit.java @@ -52,7 +52,7 @@ public class Suit extends BaseEntity @Excel(name = "价格/押金") @JsonView({DeviceView.SuitList.class, JsonViewProfile.AppMch.class}) @NotNull(message = "价格/押金不允许为空", groups = {ValidGroup.Create.class, ValidGroup.FrontCreate.class}) - @Min(value = 0, message = "价格/押金不允许小于0") + @DecimalMin(value = "0.1", message = "价格/押金不允许小于0.1") private BigDecimal price; /** 详细说明 */ diff --git a/smart-switch-service/src/main/java/com/ruoyi/ss/transactionBill/service/TransactionBillService.java b/smart-switch-service/src/main/java/com/ruoyi/ss/transactionBill/service/TransactionBillService.java index c12374b3..3ad015e0 100644 --- a/smart-switch-service/src/main/java/com/ruoyi/ss/transactionBill/service/TransactionBillService.java +++ b/smart-switch-service/src/main/java/com/ruoyi/ss/transactionBill/service/TransactionBillService.java @@ -286,4 +286,11 @@ public interface TransactionBillService * 查询所有关于金额的总和 */ List> selectCommonSumOfMoney(TransactionBillQuery query, String groupBy); + + TransactionBillVO selectOne(TransactionBillQuery query); + + /** + * 开启/关闭订单设备 + */ + int switchDevice(TransactionBillVO bill, boolean open); } diff --git a/smart-switch-service/src/main/java/com/ruoyi/ss/transactionBill/service/impl/TransactionBillServiceImpl.java b/smart-switch-service/src/main/java/com/ruoyi/ss/transactionBill/service/impl/TransactionBillServiceImpl.java index 678fb5bf..181d1461 100644 --- a/smart-switch-service/src/main/java/com/ruoyi/ss/transactionBill/service/impl/TransactionBillServiceImpl.java +++ b/smart-switch-service/src/main/java/com/ruoyi/ss/transactionBill/service/impl/TransactionBillServiceImpl.java @@ -1,5 +1,6 @@ package com.ruoyi.ss.transactionBill.service.impl; +import com.github.pagehelper.PageHelper; import com.ruoyi.common.constant.Constants; import com.ruoyi.common.core.redis.RedisLock; import com.ruoyi.common.core.redis.enums.RedisLockKey; @@ -289,6 +290,10 @@ public class TransactionBillServiceImpl implements TransactionBillService, After else if(ServiceType.PERCENT.getType().equals(serviceType)){ // 服务费 BigDecimal serviceCharge = serviceRate.multiply(order.getMoney()).divide(new BigDecimal(100), 2, RoundingMode.HALF_UP); + // 最低服务费0.05元 + if (serviceCharge.compareTo(new BigDecimal("0.05")) < 0) { + serviceCharge = new BigDecimal("0.05"); + } order.setServiceCharge(serviceCharge); // 商户最终到账的金额 = 交易金额 - 服务费 order.setArrivalAmount(order.getMoney().subtract(serviceCharge)); @@ -1565,6 +1570,32 @@ public class TransactionBillServiceImpl implements TransactionBillService, After return transactionBillMapper.selectCommonSumOfMoney(query, groupBy); } + @Override + public TransactionBillVO selectOne(TransactionBillQuery query) { + PageHelper.startPage(1, 1); + List list = this.selectSmTransactionBillList(query); + if (CollectionUtils.isEmptyElement(list)) { + return null; + } + return list.get(0); + } + + @Override + public int switchDevice(TransactionBillVO bill, boolean open) { + ServiceUtil.assertion(bill == null, "订单不存在"); + ServiceUtil.assertion(bill.getIsUsing() == null || !bill.getIsUsing(), "该订单不是正在使用中的订单,无法操作"); + + DeviceVO device = deviceService.selectSmDeviceByDeviceId(bill.getDeviceId()); + ServiceUtil.assertion(device == null, "设备不存在"); + ServiceUtil.assertion(StringUtils.isBlank(device.getMac()), "设备MAC为空,请联系管理员处理"); + + if (open) { + return iotService.open(device.getMac(), device.getModelProductId()) ? 1 : 0; + } else { + return iotService.close(device.getMac(), device.getModelProductId()) ? 1 : 0; + } + } + @Override public UserWithdrawServiceVO getUserWithdrawService(Long userId, Long channelId) { SmUserVo user = userService.selectSmUserByUserId(userId); diff --git a/smart-switch-web/src/main/java/com/ruoyi/web/controller/app/AppTransactionBillController.java b/smart-switch-web/src/main/java/com/ruoyi/web/controller/app/AppTransactionBillController.java index e8918461..1adf80de 100644 --- a/smart-switch-web/src/main/java/com/ruoyi/web/controller/app/AppTransactionBillController.java +++ b/smart-switch-web/src/main/java/com/ruoyi/web/controller/app/AppTransactionBillController.java @@ -318,4 +318,17 @@ public class AppTransactionBillController extends BaseController return success(transactionBillService.selectUnpaidTimingBill(query)); } + @ApiOperation("开启/关闭正在使用的订单设备") + @PutMapping("/switchDevice") + public AjaxResult switchDevice(@RequestParam Long billId, @RequestParam Boolean open) { + TransactionBillQuery query = new TransactionBillQuery(); + query.setUserId(getUserId()); + query.setBillId(billId); + TransactionBillVO bill = transactionBillService.selectOne(query); + if (bill == null) { + return error("订单不存在"); + } + return toAjax(transactionBillService.switchDevice(bill, open)); + } + }