fix: 切换会员修改

This commit is contained in:
张松
2024-11-21 14:17:40 +08:00
parent 2ac38c77a8
commit a563a41c23
3 changed files with 34 additions and 15 deletions

View File

@@ -71,5 +71,12 @@ public interface MpOrderDetailService extends IService<TbOrderDetail> {
* @param totalAmount 总价格
*/
boolean updatePriceByCartId(Integer cartId, BigDecimal saleAmount, BigDecimal totalAmount);
/**
* 根据会员id修改detail信息
* @param orderId 订单id
* @param isMember 会员id
*/
boolean updateMemberByOrderId(Integer orderId, boolean isMember);
}

View File

@@ -81,5 +81,12 @@ public class MpOrderDetailServiceImpl extends ServiceImpl<TbOrderDetailMapper, T
.set(TbOrderDetail::getPrice, saleAmount)
.set(TbOrderDetail::getPriceAmount, totalAmount));
}
@Override
public boolean updateMemberByOrderId(Integer orderId, boolean isMember) {
return update(new LambdaUpdateWrapper<TbOrderDetail>()
.eq(TbOrderDetail::getOrderId, orderId)
.set(TbOrderDetail::getIsMember, isMember ? 1 : 0));
}
}

View File

@@ -1210,9 +1210,6 @@ public class TbShopTableServiceImpl implements TbShopTableService {
public TbOrderInfo createOrder(CreateOrderDTO createOrderDTO, boolean byOrderId) {
createOrderDTO.setTableId(OrderUseTypeEnum.TAKEOUT.getValue().equals(createOrderDTO.getUseType()) ? null : createOrderDTO.getTableId());
return Utils.runFunAndCheckKey(() -> {
TbShopInfo shopInfo = shopInfoRepository.findById(createOrderDTO.getShopId()).orElse(null);
if (shopInfo == null) throw new BadRequestException("店铺信息不存在");
TbShopUser shopUser = null;
if (createOrderDTO.getVipUserId() != null) {
shopUser = tbShopUserMapper.selectById(createOrderDTO.getVipUserId());
@@ -1243,7 +1240,8 @@ public class TbShopTableServiceImpl implements TbShopTableService {
// }
// 创建订单详情
OrderPriceDTO detailPriceDTO = createOrderDetailWithCoupon(cartInfoDTO.getCashierCarts(), orderInfo, createOrderDTO.getShopId(), true, shopEatTypeInfoDTO);
OrderPriceDTO detailPriceDTO = createOrderDetailWithCoupon(cartInfoDTO.getCashierCarts(), orderInfo,
createOrderDTO.getShopId(), true, shopEatTypeInfoDTO);
// 是否是第一次创建订单
orderInfo = createOrderWithAction(createOrderDTO, detailPriceDTO, shopEatTypeInfoDTO,
@@ -2392,10 +2390,11 @@ public class TbShopTableServiceImpl implements TbShopTableService {
@Transactional
public Object updateVip(UpdateVipDTO updateVipDTO) {
Integer orderId = updateVipDTO.getOrderId();
ShopEatTypeInfoDTO shopEatTypeInfoDTO = checkEatModel(updateVipDTO.getShopId(), updateVipDTO.getTableId());
if (orderId == null) {
ShopEatTypeInfoDTO shopEatTypeInfoDTO = checkEatModel(updateVipDTO.getShopId(), updateVipDTO.getTableId());
List<TbCashierCart> tbCashierCarts = mpCashierCartService.selectByShopEatType(shopEatTypeInfoDTO, updateVipDTO.getMasterId());
for (TbCashierCart item : tbCashierCarts) {
item.setIsMember(!shopEatTypeInfoDTO.isMemberPrice() ? 0 : updateVipDTO.getType() == 0 ? 1 : 0);
if (item.getOrderId() != null) {
orderId = item.getOrderId();
}
@@ -2423,20 +2422,26 @@ public class TbShopTableServiceImpl implements TbShopTableService {
throw new BadRequestException("用户信息不存在");
}
orderInfoMapper.update(null, new LambdaUpdateWrapper<TbOrderInfo>()
.eq(TbOrderInfo::getId, orderId)
.set(TbOrderInfo::getUserId, shopUser.getUserId())
.set(TbOrderInfo::getMemberId, updateVipDTO.getVipUserId()));
if (orderId != null) {
mpOrderDetailService.updateMemberByOrderId(orderId, shopEatTypeInfoDTO.isMemberPrice());
orderInfoMapper.update(null, new LambdaUpdateWrapper<TbOrderInfo>()
.eq(TbOrderInfo::getId, orderId)
.set(TbOrderInfo::getUserId, shopUser.getUserId())
.set(TbOrderInfo::getMemberId, updateVipDTO.getVipUserId()));
}
} else {
mpCashierCartService.updateMemberAndAmountByOrderId(orderId, false);
orderInfoMapper.update(null, new LambdaUpdateWrapper<TbOrderInfo>()
.eq(TbOrderInfo::getId, orderId)
.set(TbOrderInfo::getUserId, null)
.set(TbOrderInfo::getMemberId, null));
if (orderId != null) {
mpOrderDetailService.updateMemberByOrderId(orderId, false);
mpCashierCartService.updateMemberAndAmountByOrderId(orderId, false);
orderInfoMapper.update(null, new LambdaUpdateWrapper<TbOrderInfo>()
.eq(TbOrderInfo::getId, orderId)
.set(TbOrderInfo::getUserId, null)
.set(TbOrderInfo::getMemberId, null));
}
}
if (dto != null) {
dto.setVipUserId(updateVipDTO.getVipUserId());
dto.setVipUserId(updateVipDTO.getType() == 0 ? updateVipDTO.getVipUserId() : null);
return createOrder(dto, true);
}
return "哈哈哈";