fix: 创建订单会员价计算有误修复
This commit is contained in:
@@ -72,6 +72,6 @@ public interface MpCashierCartService extends IService<TbCashierCart> {
|
|||||||
List<TbCashierCart> selectByOrderIdAndState(Integer orderId, TableConstant.OrderInfo.Status status);
|
List<TbCashierCart> selectByOrderIdAndState(Integer orderId, TableConstant.OrderInfo.Status status);
|
||||||
|
|
||||||
|
|
||||||
boolean updateMemberByOrderId(Integer orderId, boolean isMember);
|
boolean updateMemberAndAmountByOrderId(Integer orderId, boolean isMember);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -99,9 +99,10 @@ public class MpCashierCartServiceImpl extends ServiceImpl<TbCashierCartMapper, T
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean updateMemberByOrderId(Integer orderId, boolean isMember) {
|
public boolean updateMemberAndAmountByOrderId(Integer orderId, boolean isMember) {
|
||||||
return update(new LambdaUpdateWrapper<TbCashierCart>()
|
return update(new LambdaUpdateWrapper<TbCashierCart>()
|
||||||
.eq(TbCashierCart::getOrderId, orderId)
|
.eq(TbCashierCart::getOrderId, orderId)
|
||||||
|
.setSql(StrUtil.format("total_amount=total_number*{}", isMember ? "member_price" : "sale_price"))
|
||||||
.set(TbCashierCart::getIsMember, isMember ? 1 : 0));
|
.set(TbCashierCart::getIsMember, isMember ? 1 : 0));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1423,7 +1423,6 @@ public class TbShopTableServiceImpl implements TbShopTableService {
|
|||||||
priceDTO.setOriginAmount(priceDTO.getOriginAmount().add(cashierCart.getTotalAmount()));
|
priceDTO.setOriginAmount(priceDTO.getOriginAmount().add(cashierCart.getTotalAmount()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
TbProductSku productSku = productSkuRepository.findById(Integer.valueOf(cashierCart.getSkuId())).orElse(null);
|
TbProductSku productSku = productSkuRepository.findById(Integer.valueOf(cashierCart.getSkuId())).orElse(null);
|
||||||
TbOrderDetail orderDetail = null;
|
TbOrderDetail orderDetail = null;
|
||||||
if (cashierCart.getOrderId() != null) {
|
if (cashierCart.getOrderId() != null) {
|
||||||
@@ -1991,8 +1990,7 @@ public class TbShopTableServiceImpl implements TbShopTableService {
|
|||||||
|
|
||||||
// 计算优惠券价格信息
|
// 计算优惠券价格信息
|
||||||
if (payDTO.getVipUserId() == null) {
|
if (payDTO.getVipUserId() == null) {
|
||||||
|
payDTO.setVipUserId(orderInfo.getMemberId() != null ? Integer.valueOf(orderInfo.getMemberId()) : null);
|
||||||
payDTO.setVipUserId(Integer.valueOf(orderInfo.getMemberId()));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -2182,17 +2180,22 @@ public class TbShopTableServiceImpl implements TbShopTableService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (updateVipDTO.getType() == 0) {
|
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());
|
TbShopUser shopUser = tbShopUserMapper.selectById(updateVipDTO.getVipUserId());
|
||||||
if (shopUser == null) {
|
if (shopUser == null) {
|
||||||
throw new BadRequestException("用户信息不存在");
|
throw new BadRequestException("用户信息不存在");
|
||||||
}
|
}
|
||||||
mpCashierCartService.updateMemberByOrderId(orderId, true);
|
|
||||||
return orderInfoMapper.update(null, new LambdaUpdateWrapper<TbOrderInfo>()
|
return orderInfoMapper.update(null, new LambdaUpdateWrapper<TbOrderInfo>()
|
||||||
.eq(TbOrderInfo::getId, orderId)
|
.eq(TbOrderInfo::getId, orderId)
|
||||||
.set(TbOrderInfo::getUserId, shopUser.getUserId())
|
.set(TbOrderInfo::getUserId, shopUser.getUserId())
|
||||||
.set(TbOrderInfo::getMemberId, updateVipDTO.getVipUserId()));
|
.set(TbOrderInfo::getMemberId, updateVipDTO.getVipUserId()));
|
||||||
} else {
|
} else {
|
||||||
mpCashierCartService.updateMemberByOrderId(orderId, false);
|
mpCashierCartService.updateMemberAndAmountByOrderId(orderId, false);
|
||||||
return orderInfoMapper.update(null, new LambdaUpdateWrapper<TbOrderInfo>()
|
return orderInfoMapper.update(null, new LambdaUpdateWrapper<TbOrderInfo>()
|
||||||
.eq(TbOrderInfo::getId, orderId)
|
.eq(TbOrderInfo::getId, orderId)
|
||||||
.set(TbOrderInfo::getUserId, null)
|
.set(TbOrderInfo::getUserId, null)
|
||||||
|
|||||||
Reference in New Issue
Block a user