From cbbaf0a2e7c1b017fb48e642f5e21169e97ee4c4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E7=A3=B7=E5=8F=B6?=
<14103883+leaf-phos@user.noreply.gitee.com>
Date: Thu, 24 Apr 2025 09:09:53 +0800
Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E5=88=86=E6=88=90=E9=80=BB?=
=?UTF-8?q?=E8=BE=91?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../ruoyi/bst/bonus/mapper/BonusMapper.java | 7 +++++++
.../com/ruoyi/bst/bonus/mapper/BonusMapper.xml | 18 ++++++++++++++----
.../ruoyi/bst/bonus/service/BonusService.java | 8 ++++++++
.../bonus/service/impl/BonusServiceImpl.java | 9 +++++++++
.../service/impl/OrderPayHandlerImpl.java | 10 ++++++++++
.../com/ruoyi/web/bst/OrderController.java | 7 ++++++-
6 files changed, 54 insertions(+), 5 deletions(-)
diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/bonus/mapper/BonusMapper.java b/ruoyi-service/src/main/java/com/ruoyi/bst/bonus/mapper/BonusMapper.java
index fedeb24..5d5904e 100644
--- a/ruoyi-service/src/main/java/com/ruoyi/bst/bonus/mapper/BonusMapper.java
+++ b/ruoyi-service/src/main/java/com/ruoyi/bst/bonus/mapper/BonusMapper.java
@@ -149,4 +149,11 @@ public interface BonusMapper
* @return
*/
BigDecimal selectSumOfWaitAmount(@Param("query") BonusQuery query);
+
+ /**
+ * 根据业务类型和业务ID,将分成更新为待分成状态
+ * @param bstType 业务类型
+ * @param bstId 业务ID
+ */
+ int validByBst(@Param("bstType") String bstType, @Param("bstId") Long bstId);
}
diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/bonus/mapper/BonusMapper.xml b/ruoyi-service/src/main/java/com/ruoyi/bst/bonus/mapper/BonusMapper.xml
index e5a4a0a..a9ec71b 100644
--- a/ruoyi-service/src/main/java/com/ruoyi/bst/bonus/mapper/BonusMapper.xml
+++ b/ruoyi-service/src/main/java/com/ruoyi/bst/bonus/mapper/BonusMapper.xml
@@ -256,12 +256,22 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+
+
+
+ update bst_bonus bb
+ set bb.status = 'WAIT_DIVIDE',
+ bb.wait_amount = bb.wait_amount + bb.invalid_amount,
+ bb.invalid_amount = 0
+ where bb.bst_type = #{bstType}
+ and bb.bst_id = #{bstId}
+ and bb.status = 'INVALID'
+ and
+
+
update bst_bonus bb
- bb.wait_amount = bb.wait_amount + bb.invalid_amount,
- bb.invalid_amount = 0,
- bb.status = 'WAIT_DIVIDE',
@@ -278,7 +288,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
#{item.id}
and
- and bb.status = 'INVALID'
+ and bb.status = 'WAIT_DIVIDE'
diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/bonus/service/BonusService.java b/ruoyi-service/src/main/java/com/ruoyi/bst/bonus/service/BonusService.java
index 1b734d9..3a5bde8 100644
--- a/ruoyi-service/src/main/java/com/ruoyi/bst/bonus/service/BonusService.java
+++ b/ruoyi-service/src/main/java/com/ruoyi/bst/bonus/service/BonusService.java
@@ -82,6 +82,14 @@ public interface BonusService
* @return 结果
*/
public int batchInsert(List extends Bonus> list);
+
+
+ /**
+ * 根据业务类型和业务ID,将分成更新为待分成状态
+ * @param bstType 业务类型
+ * @param bstId 业务ID
+ */
+ public boolean validByBst(BonusBstType bstType, Long bstId);
/**
* 预分成
diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/bonus/service/impl/BonusServiceImpl.java b/ruoyi-service/src/main/java/com/ruoyi/bst/bonus/service/impl/BonusServiceImpl.java
index 0774dbb..59c457d 100644
--- a/ruoyi-service/src/main/java/com/ruoyi/bst/bonus/service/impl/BonusServiceImpl.java
+++ b/ruoyi-service/src/main/java/com/ruoyi/bst/bonus/service/impl/BonusServiceImpl.java
@@ -178,6 +178,15 @@ public class BonusServiceImpl implements BonusService
return bonusMapper.batchInsert(list);
}
+ @Override
+ public boolean validByBst(BonusBstType bstType, Long bstId) {
+ if (bstType == null || bstId == null) {
+ return false;
+ }
+ bonusMapper.validByBst(bstType.getType(), bstId);
+ return true;
+ }
+
@Override
public boolean prepayByBst(BonusBstType bstType, Long bstId) {
if (bstType == null || bstId == null) {
diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/order/service/impl/OrderPayHandlerImpl.java b/ruoyi-service/src/main/java/com/ruoyi/bst/order/service/impl/OrderPayHandlerImpl.java
index ec84341..b059118 100644
--- a/ruoyi-service/src/main/java/com/ruoyi/bst/order/service/impl/OrderPayHandlerImpl.java
+++ b/ruoyi-service/src/main/java/com/ruoyi/bst/order/service/impl/OrderPayHandlerImpl.java
@@ -6,6 +6,8 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.support.TransactionTemplate;
+import com.ruoyi.bst.bonus.domain.enums.BonusBstType;
+import com.ruoyi.bst.bonus.service.BonusService;
import com.ruoyi.bst.device.domain.enums.DeviceUnLockType;
import com.ruoyi.bst.device.domain.vo.DeviceIotVO;
import com.ruoyi.bst.device.service.DeviceIotService;
@@ -40,6 +42,9 @@ public class OrderPayHandlerImpl implements PayHandler {
@Autowired
private DeviceIotService deviceIotService;
+
+ @Autowired
+ private BonusService bonusService;
// 支付成功后操作
@Override
@@ -71,10 +76,15 @@ public class OrderPayHandlerImpl implements PayHandler {
int rows = orderMapper.updateByQuery(data, query);
ServiceUtil.assertion(rows != 1, "更新ID为%s的订单失败", order.getId());
+ // 分成更新为待分成状态
+ boolean valid = bonusService.validByBst(BonusBstType.ORDER, order.getId());
+ ServiceUtil.assertion(!valid, "更新ID为%s的订单分成失败", order.getId());
+
// 开始使用订单设备
int start = orderDeviceService.start(orderDevice);
ServiceUtil.assertion(start != 1, "开始使用ID为%s的订单设备失败", orderDevice.getId());
+ // 解锁设备
DeviceIotVO unlock = deviceIotService.unlock(orderDevice.getDeviceId(), DeviceUnLockType.USER, "订单支付成功开锁:" + order.getNo(), false);
ServiceUtil.assertion(unlock.getDb() <= 0, "ID为%s的设备解锁失败", orderDevice.getDeviceId());
diff --git a/ruoyi-web/src/main/java/com/ruoyi/web/bst/OrderController.java b/ruoyi-web/src/main/java/com/ruoyi/web/bst/OrderController.java
index dfcd6a0..b4ec5ae 100644
--- a/ruoyi-web/src/main/java/com/ruoyi/web/bst/OrderController.java
+++ b/ruoyi-web/src/main/java/com/ruoyi/web/bst/OrderController.java
@@ -17,6 +17,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
+import com.aliyun.core.utils.StringUtils;
import com.ruoyi.bst.areaJoin.domain.enums.AreaJoinPermission;
import com.ruoyi.bst.order.domain.OrderQuery;
import com.ruoyi.bst.order.domain.OrderVO;
@@ -130,8 +131,12 @@ public class OrderController extends BaseController
if (!orderValidator.canOperate(dto.getOrderId())) {
return error("您无权退款ID为" + dto.getOrderId() + "的订单");
}
+ String userName = getNickName();
dto.setUserId(getUserId());
- dto.setUserName(getNickName());
+ dto.setUserName(userName);
+ if (StringUtils.isBlank(dto.getReason())) {
+ dto.setReason("管理员【" + userName + "】退款");
+ }
return toAjax(orderService.refund(dto));
}