套餐最低0.1元,手续费最低0.05元

This commit is contained in:
墨大叔 2024-09-07 17:22:19 +08:00
parent a9b169b1d0
commit eebccd5453
4 changed files with 52 additions and 1 deletions

View File

@ -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;
/** 详细说明 */

View File

@ -286,4 +286,11 @@ public interface TransactionBillService
* 查询所有关于金额的总和
*/
<T> List<TransactionAmountVO<T>> selectCommonSumOfMoney(TransactionBillQuery query, String groupBy);
TransactionBillVO selectOne(TransactionBillQuery query);
/**
* 开启/关闭订单设备
*/
int switchDevice(TransactionBillVO bill, boolean open);
}

View File

@ -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<TransactionBillVO> 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);

View File

@ -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));
}
}