fix: 会员价根据全局设置校验
This commit is contained in:
parent
5ee705cb23
commit
543bee70f3
|
|
@ -21,6 +21,7 @@ public class ShopEatTypeInfoDTO {
|
|||
private boolean isNoneTable;
|
||||
// 是否增加masterId
|
||||
private boolean isIncrMaterId;
|
||||
private boolean isMemberPrice;
|
||||
private TbShopInfo shopInfo;
|
||||
private String useType;
|
||||
private Object shopId;
|
||||
|
|
|
|||
|
|
@ -182,7 +182,7 @@ public class TbCashierCart implements Serializable {
|
|||
if ("true".equals(isGift)) {
|
||||
totalAmount = packFee;
|
||||
}else {
|
||||
if (isMember != null && isMember == 1) {
|
||||
if (isMember != null && isMember == 1 && memberPrice != null && memberPrice.compareTo(BigDecimal.ZERO) > 0) {
|
||||
totalAmount = BigDecimal.valueOf(totalNumber).multiply(memberPrice).add(packFee);
|
||||
}else {
|
||||
totalAmount = BigDecimal.valueOf(totalNumber).multiply(salePrice).add(packFee);
|
||||
|
|
|
|||
|
|
@ -206,11 +206,12 @@ public class TbShopTableServiceImpl implements TbShopTableService {
|
|||
boolean isDineInBefore = hasTable && isMunchies && !isTakeout;
|
||||
// 是否无台桌
|
||||
boolean isNoneTable = !hasTable && !isTakeout;
|
||||
boolean isMemberPrice = shopInfo.getIsMemberPrice() != null && shopInfo.getIsMemberPrice() == 1;
|
||||
|
||||
boolean needSeatFee = !isTakeout && (shopInfo.getIsTableFee() == null || shopInfo.getIsTableFee() == 0);
|
||||
boolean isIncrMasterId = isTakeout || isNoneTable;
|
||||
|
||||
return new ShopEatTypeInfoDTO(isTakeout, isMunchies, isDineInAfter, isDineInBefore, needSeatFee, isNoneTable, isIncrMasterId, shopInfo, isTakeout ? TableConstant.OrderInfo.UseType.TAKEOUT.getValue() :
|
||||
return new ShopEatTypeInfoDTO(isTakeout, isMunchies, isDineInAfter, isDineInBefore, needSeatFee, isNoneTable, isIncrMasterId, isMemberPrice, shopInfo, isTakeout ? TableConstant.OrderInfo.UseType.TAKEOUT.getValue() :
|
||||
isDineInBefore ? TableConstant.OrderInfo.UseType.DINE_IN_BEFORE.getValue() : isNoneTable ? TableConstant.OrderInfo.UseType.NONE_TABLE.getValue() : TableConstant.OrderInfo.UseType.DINE_IN_AFTER.getValue(),
|
||||
shopId, tableId, isTakeout ? OrderSendTypeEnums.TAKE_SELF.getValue() : OrderSendTypeEnums.TABLE.getValue());
|
||||
}
|
||||
|
|
@ -550,8 +551,10 @@ public class TbShopTableServiceImpl implements TbShopTableService {
|
|||
tbCashierCart.setCategoryId(product.getCategoryId());
|
||||
tbCashierCart.setNote(addCartDTO.getNote());
|
||||
tbCashierCart.setPlatformType(OrderPlatformTypeEnum.PC.getValue());
|
||||
tbCashierCart.setMemberPrice(productSku.getMemberPrice() == null || productSku.getMemberPrice().compareTo(BigDecimal.ZERO) <= 0 ? productSku.getSalePrice() : productSku.getMemberPrice());
|
||||
tbCashierCart.setIsMember(addCartDTO.getVipUserId() == null ? 0 : 1);
|
||||
tbCashierCart.setIsMember(shopEatTypeInfoDTO.isMemberPrice() && addCartDTO.getVipUserId() == null ? 0 : 1);
|
||||
if (tbCashierCart.getIsMember() == 1) {
|
||||
tbCashierCart.setMemberPrice(productSku.getMemberPrice());
|
||||
}
|
||||
cashierCartRepository.save(tbCashierCart);
|
||||
|
||||
} else {
|
||||
|
|
@ -1151,7 +1154,7 @@ public class TbShopTableServiceImpl implements TbShopTableService {
|
|||
// }
|
||||
|
||||
// 创建订单详情
|
||||
OrderPriceDTO detailPriceDTO = createOrderDetailWithCoupon(cartInfoDTO.getCashierCarts(), orderInfo, createOrderDTO.getShopId(), true);
|
||||
OrderPriceDTO detailPriceDTO = createOrderDetailWithCoupon(cartInfoDTO.getCashierCarts(), orderInfo, createOrderDTO.getShopId(), true, shopEatTypeInfoDTO);
|
||||
|
||||
// 是否是第一次创建订单
|
||||
orderInfo = createOrderWithAction(createOrderDTO, detailPriceDTO, shopEatTypeInfoDTO,
|
||||
|
|
@ -1351,7 +1354,7 @@ public class TbShopTableServiceImpl implements TbShopTableService {
|
|||
cartInfoDTO.setNewAddTotalAmount(cartInfoDTO.getNewAddTotalAmount().add(tbCashierCart.getTotalAmount()));
|
||||
}
|
||||
if (shopUser != null) {
|
||||
tbCashierCart.setIsMember(tbCashierCart.getMemberPrice() == null && shopUser.getIsVip() == 1 ? 0 : 1);
|
||||
tbCashierCart.setIsMember(shopEatTypeInfoDTO.isMemberPrice() && tbCashierCart.getMemberPrice() == null && shopUser.getIsVip() == 1 ? 0 : 1);
|
||||
}
|
||||
tbCashierCart.resetTotalAmount();
|
||||
|
||||
|
|
@ -1394,7 +1397,7 @@ public class TbShopTableServiceImpl implements TbShopTableService {
|
|||
* @param updateState
|
||||
* @return
|
||||
*/
|
||||
private OrderPriceDTO createOrderDetailWithCoupon(List<TbCashierCart> fullCashierCarts, TbOrderInfo orderInfo, Integer shopId, boolean updateState) {
|
||||
private OrderPriceDTO createOrderDetailWithCoupon(List<TbCashierCart> fullCashierCarts, TbOrderInfo orderInfo, Integer shopId, boolean updateState, ShopEatTypeInfoDTO shopEatTypeInfoDTO) {
|
||||
OrderPriceDTO priceDTO = new OrderPriceDTO();
|
||||
|
||||
List<Integer> cartIds = fullCashierCarts.stream().map(TbCashierCart::getId).collect(Collectors.toList());
|
||||
|
|
@ -1412,8 +1415,8 @@ public class TbShopTableServiceImpl implements TbShopTableService {
|
|||
});
|
||||
|
||||
for (TbCashierCart cashierCart : fullCashierCarts) {
|
||||
if (orderInfo != null) {
|
||||
cashierCart.setIsMember(orderInfo.getMemberId() == null ? 0 : 1);
|
||||
if (orderInfo != null && shopEatTypeInfoDTO != null) {
|
||||
cashierCart.setIsMember(orderInfo.getMemberId() == null ? 0 : shopEatTypeInfoDTO.isMemberPrice() ? 1 : 0);
|
||||
}
|
||||
cashierCart.resetTotalAmount();
|
||||
|
||||
|
|
@ -1957,7 +1960,7 @@ public class TbShopTableServiceImpl implements TbShopTableService {
|
|||
|
||||
// 更新订单信息
|
||||
|
||||
OrderPriceDTO priceDTO = createOrderDetailWithCoupon(activateCartInfo, orderInfo, payDTO.getShopId(), false);
|
||||
OrderPriceDTO priceDTO = createOrderDetailWithCoupon(activateCartInfo, orderInfo, payDTO.getShopId(), false, null);
|
||||
BigDecimal finalAmount = priceDTO.getTotalAmount().multiply(BigDecimal.valueOf(payDTO.getDiscount())).setScale(2, RoundingMode.HALF_UP);
|
||||
|
||||
orderInfo.setUpdatedAt(System.currentTimeMillis());
|
||||
|
|
|
|||
Loading…
Reference in New Issue