fix: 切换会员修改
This commit is contained in:
parent
4922d2d576
commit
2e5e7f2158
|
|
@ -7,6 +7,7 @@ import cn.ysk.cashier.pojo.order.TbFullOrderDetail;
|
|||
import cn.ysk.cashier.pojo.order.TbOrderDetail;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
|
|
@ -63,5 +64,19 @@ public interface MpOrderDetailService extends IService<TbOrderDetail> {
|
|||
* @param orderId 订单id
|
||||
*/
|
||||
boolean updateStatusByOrderId(TableConstant.OrderInfo.Status status, Integer orderId);
|
||||
|
||||
/**
|
||||
* 根据购物车id修改detail价格
|
||||
* @param cartId 购物车id
|
||||
* @param totalAmount 总价格
|
||||
*/
|
||||
boolean updatePriceByCartId(Integer cartId, BigDecimal saleAmount, BigDecimal totalAmount);
|
||||
|
||||
/**
|
||||
* 根据会员id修改detail信息
|
||||
* @param orderId 订单id
|
||||
* @param isMember 会员id
|
||||
*/
|
||||
boolean updateMemberByOrderId(Integer orderId, boolean isMember);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
|||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
|
@ -72,5 +73,20 @@ public class MpOrderDetailServiceImpl extends ServiceImpl<TbOrderDetailMapper, T
|
|||
.eq(TbOrderDetail::getOrderId, orderId)
|
||||
.set(TbOrderDetail::getStatus, status.getValue()));
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean updatePriceByCartId(Integer cartId, BigDecimal saleAmount, BigDecimal totalAmount) {
|
||||
return update(new LambdaUpdateWrapper<TbOrderDetail>()
|
||||
.eq(TbOrderDetail::getCartId, cartId)
|
||||
.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 "哈哈哈";
|
||||
|
|
|
|||
Loading…
Reference in New Issue