fix: 切换会员修改
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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 "哈哈哈";
|
||||
|
||||
Reference in New Issue
Block a user