fix: 创建订单会员价计算有误修复

This commit is contained in:
张松
2024-11-06 16:20:35 +08:00
parent 090e5d320e
commit 14a2b5884b
3 changed files with 11 additions and 7 deletions

View File

@@ -72,6 +72,6 @@ public interface MpCashierCartService extends IService<TbCashierCart> {
List<TbCashierCart> selectByOrderIdAndState(Integer orderId, TableConstant.OrderInfo.Status status);
boolean updateMemberByOrderId(Integer orderId, boolean isMember);
boolean updateMemberAndAmountByOrderId(Integer orderId, boolean isMember);
}

View File

@@ -99,9 +99,10 @@ public class MpCashierCartServiceImpl extends ServiceImpl<TbCashierCartMapper, T
}
@Override
public boolean updateMemberByOrderId(Integer orderId, boolean isMember) {
public boolean updateMemberAndAmountByOrderId(Integer orderId, boolean isMember) {
return update(new LambdaUpdateWrapper<TbCashierCart>()
.eq(TbCashierCart::getOrderId, orderId)
.setSql(StrUtil.format("total_amount=total_number*{}", isMember ? "member_price" : "sale_price"))
.set(TbCashierCart::getIsMember, isMember ? 1 : 0));
}

View File

@@ -1423,7 +1423,6 @@ public class TbShopTableServiceImpl implements TbShopTableService {
priceDTO.setOriginAmount(priceDTO.getOriginAmount().add(cashierCart.getTotalAmount()));
}
TbProductSku productSku = productSkuRepository.findById(Integer.valueOf(cashierCart.getSkuId())).orElse(null);
TbOrderDetail orderDetail = null;
if (cashierCart.getOrderId() != null) {
@@ -1991,8 +1990,7 @@ public class TbShopTableServiceImpl implements TbShopTableService {
// 计算优惠券价格信息
if (payDTO.getVipUserId() == null) {
payDTO.setVipUserId(Integer.valueOf(orderInfo.getMemberId()));
payDTO.setVipUserId(orderInfo.getMemberId() != null ? Integer.valueOf(orderInfo.getMemberId()) : null);
}
@@ -2182,17 +2180,22 @@ public class TbShopTableServiceImpl implements TbShopTableService {
}
if (updateVipDTO.getType() == 0) {
TbOrderInfo orderInfo = mpOrderInfoService.getById(orderId);
if(TableConstant.OrderInfo.Status.UNPAID.equalsVals(orderInfo.getStatus())) {
throw new BadRequestException("订单状态异常");
}
TbShopUser shopUser = tbShopUserMapper.selectById(updateVipDTO.getVipUserId());
if (shopUser == null) {
throw new BadRequestException("用户信息不存在");
}
mpCashierCartService.updateMemberByOrderId(orderId, true);
return orderInfoMapper.update(null, new LambdaUpdateWrapper<TbOrderInfo>()
.eq(TbOrderInfo::getId, orderId)
.set(TbOrderInfo::getUserId, shopUser.getUserId())
.set(TbOrderInfo::getMemberId, updateVipDTO.getVipUserId()));
} else {
mpCashierCartService.updateMemberByOrderId(orderId, false);
mpCashierCartService.updateMemberAndAmountByOrderId(orderId, false);
return orderInfoMapper.update(null, new LambdaUpdateWrapper<TbOrderInfo>()
.eq(TbOrderInfo::getId, orderId)
.set(TbOrderInfo::getUserId, null)