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

This commit is contained in:
张松 2024-11-06 15:19:48 +08:00
parent 4ca85ef425
commit 1f3f3f1e04
3 changed files with 15 additions and 1 deletions

View File

@ -70,5 +70,8 @@ public interface MpCashierCartService extends IService<TbCashierCart> {
* @param status 状态 可为空
*/
List<TbCashierCart> selectByOrderIdAndState(Integer orderId, TableConstant.OrderInfo.Status status);
boolean updateMemberByOrderId(Integer orderId, boolean isMember);
}

View File

@ -98,6 +98,13 @@ public class MpCashierCartServiceImpl extends ServiceImpl<TbCashierCartMapper, T
.set(TbCashierCart::getStatus, status.getValue()));
}
@Override
public boolean updateMemberByOrderId(Integer orderId, boolean isMember) {
return update(new LambdaUpdateWrapper<TbCashierCart>()
.eq(TbCashierCart::getOrderId, orderId)
.set(TbCashierCart::getIsMember, isMember ? 1 : 0));
}
@Override
public List<TbCashierCart> selectByShopEatType(ShopEatTypeInfoDTO shopEatTypeInfoDTO, String masterId) {
LambdaQueryWrapper<TbCashierCart> queryWrapper = new LambdaQueryWrapper<TbCashierCart>()

View File

@ -1344,7 +1344,9 @@ public class TbShopTableServiceImpl implements TbShopTableService {
if (TableConstant.CashierCart.Status.CREATE.equalsVals(tbCashierCart.getStatus())) {
cartInfoDTO.setNewAddTotalAmount(cartInfoDTO.getNewAddTotalAmount().add(tbCashierCart.getTotalAmount()));
}
tbCashierCart.setIsMember(tbCashierCart.getMemberPrice() == null && shopUser != null && shopUser.getIsVip() == 1 ? 0 : 1);
if (shopUser != null) {
tbCashierCart.setIsMember(tbCashierCart.getMemberPrice() == null && shopUser.getIsVip() == 1 ? 0 : 1);
}
tbCashierCart.resetTotalAmount();
cartInfoDTO.setTotalAmount(cartInfoDTO.getTotalAmount().add(tbCashierCart.getTotalAmount()));
@ -2179,11 +2181,13 @@ public class TbShopTableServiceImpl implements TbShopTableService {
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);
return orderInfoMapper.update(null, new LambdaUpdateWrapper<TbOrderInfo>()
.eq(TbOrderInfo::getId, orderId)
.set(TbOrderInfo::getUserId, null)