余额支付-返现金额不对的问题

超级会员关闭 折扣问题
This commit is contained in:
2025-12-20 15:45:28 +08:00
parent 936ffd4c58
commit 279cdb5047
3 changed files with 17 additions and 10 deletions

View File

@@ -110,9 +110,14 @@ public class ShopUserServiceImpl extends ServiceImpl<ShopUserMapper, ShopUser> i
MemberLevelConfig memberLevelConfig = memberLevelConfigService.getById(shopUser.getMemberLevelId()); MemberLevelConfig memberLevelConfig = memberLevelConfigService.getById(shopUser.getMemberLevelId());
if (memberLevelConfig != null) { if (memberLevelConfig != null) {
shopUser.setMemberName(memberLevelConfig.getName()); shopUser.setMemberName(memberLevelConfig.getName());
shopUser.setDiscount(memberLevelConfig.getDiscount());
MemberConfigVO configVO = memberConfigService.detail(memberLevelConfig.getShopId()); MemberConfigVO configVO = memberConfigService.detail(memberLevelConfig.getShopId());
shopUser.setIsMemberPrice(configVO.getIsMemberPrice()); if (configVO.getIsOpen().equals(1L)) {
shopUser.setIsMemberPrice(configVO.getIsMemberPrice());
shopUser.setDiscount(memberLevelConfig.getDiscount());
}else {
shopUser.setIsMemberPrice(0);
shopUser.setDiscount(100);
}
} }
} }
return shopUser; return shopUser;

View File

@@ -1248,12 +1248,6 @@ public class OrderInfoCustomServiceImpl implements OrderInfoCustomService {
} }
orderDetailService.updateOrderDetailStatus(orderInfo.getId(), OrderStatusEnums.DONE.getCode()); orderDetailService.updateOrderDetailStatus(orderInfo.getId(), OrderStatusEnums.DONE.getCode());
if (orderInfo.getUserId() != null) {
ThreadUtil.execAsync(() -> exShopUserInfo(orderInfo));
}
if (StrUtil.isNotBlank(orderInfo.getTableCode())) {
ThreadUtil.execAsync(() -> exTable(orderInfo));
}
// 保存消息参数(避免闭包中引用的变量被修改) // 保存消息参数(避免闭包中引用的变量被修改)
final Long orderId = orderInfo.getId(); final Long orderId = orderInfo.getId();
final boolean isPrint = orderInfo.getIsPrint() == 1; final boolean isPrint = orderInfo.getIsPrint() == 1;
@@ -1264,6 +1258,12 @@ public class OrderInfoCustomServiceImpl implements OrderInfoCustomService {
TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronization() { TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronization() {
@Override @Override
public void afterCommit() { public void afterCommit() {
if (orderInfo.getUserId() != null) {
ThreadUtil.execAsync(() -> exShopUserInfo(orderInfo));
}
if (StrUtil.isNotBlank(orderInfo.getTableCode())) {
ThreadUtil.execAsync(() -> exTable(orderInfo));
}
// 事务成功提交后执行消息发送 // 事务成功提交后执行消息发送
String printParam = orderId + "_" + (!"after-pay".equals(payMode) ? 1 : 0) + "_1"; String printParam = orderId + "_" + (!"after-pay".equals(payMode) ? 1 : 0) + "_1";
rabbitPublisher.sendOrderPrintMsg(printParam, isPrint); rabbitPublisher.sendOrderPrintMsg(printParam, isPrint);

View File

@@ -58,6 +58,8 @@ import lombok.extern.slf4j.Slf4j;
import org.apache.dubbo.config.annotation.DubboReference; import org.apache.dubbo.config.annotation.DubboReference;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.support.TransactionSynchronization;
import org.springframework.transaction.support.TransactionSynchronizationManager;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.math.RoundingMode; import java.math.RoundingMode;
@@ -244,8 +246,8 @@ public class PayServiceImpl implements PayService {
orderInfo.setRemark(payParam.getCheckOrderPay().getRemark()); orderInfo.setRemark(payParam.getCheckOrderPay().getRemark());
} }
log.info("发放经验值"); // log.info("发放经验值");
memberConfigService.deliver(shopUser, TableValueConstant.MemberExpFlow.Type.COST, orderInfo.getOrderAmount(), null, orderInfo.getId()); // memberConfigService.deliver(shopUser, TableValueConstant.MemberExpFlow.Type.COST, orderInfo.getOrderAmount(), null, orderInfo.getId());
Long flowId = shopUserService.updateMoney(shopUserMoneyEditDTO); Long flowId = shopUserService.updateMoney(shopUserMoneyEditDTO);
orderInfoCustomService.upOrderInfo(orderInfo, orderInfo.getOrderAmount(), orderInfoCustomService.upOrderInfo(orderInfo, orderInfo.getOrderAmount(),