Exemplo n.º 1
0
        public OrderDto CreatePreOrder(SysUser sysUser, [FromForm] ProductPo productPo)
        {
            //1.创建订单号
            string orderSn = OrderUtil.GetOrderCode();

            //2.计算总价
            decimal itemTotalPrice = productPo.ProductCount * productPo.ProductPrice;

            //3.创建订单项
            OrderItemDto orderItemDto = new OrderItemDto();

            orderItemDto.OrderSn        = orderSn;
            orderItemDto.ProductId      = productPo.ProductId;
            orderItemDto.ItemCount      = productPo.ProductCount;
            orderItemDto.ItemPrice      = productPo.ProductPrice;
            orderItemDto.ItemTotalPrice = itemTotalPrice;

            //4.创建订单
            OrderDto orderDto = new OrderDto();

            orderDto.UserId        = sysUser.UserId;
            orderDto.OrderItemDtos = new List <OrderItemDto>()
            {
                orderItemDto
            };
            return(orderDto);
        }
        //[CapSubscribe("product.stock")]
        public IActionResult SetProductStock(ProductPo productVo)
        {
            // 1、查询商品
            Product product = productService.GetProductById(productVo.ProductId);

            // 2、判断商品库存是否完成
            if (product.ProductStock <= 0)
            {
                throw new BizException("库存完了");
            }

            // 3、扣减商品库存
            product.ProductStock = product.ProductStock - productVo.ProductCount;

            // 4、更新商品库存
            productService.Update(product);
            return(Ok("更新库存成功"));
        }
        public IActionResult SetProductStock(ProductPo productPo)
        {
            //1.获取商品
            var product = _productService.ProductById(productPo.ProductId);

            //2.判断商品库存是否完成
            if (product.ProductStock <= 0)
            {
                throw new BizException("库存完了");
            }
            if (product.ProductStock < productPo.ProductCount)
            {
                throw new BizException("库存不足");
            }
            //3.扣减商品库存
            product.ProductStock -= productPo.ProductCount;
            //4.更新商品库存
            _productService.Update(product);
            return(Ok("商品库存更新成功"));
        }
        public IActionResult PutProductStock(int id, ProductPo productPo)
        {
            if (id != productPo.ProductId)
            {
                return(BadRequest());
            }
            //1.查询商品
            var product = _productService.ProductById(id);

            //2.判断商品库存是否完成
            if (product.ProductStock <= 0)
            {
                throw new BizException("库存完了");
            }
            if (product.ProductStock < productPo.ProductCount)
            {
                throw new BizException("库存不足");
            }
            //3.扣减商品库存
            product.ProductStock -= productPo.ProductCount;
            //4.更新商品库存
            _productService.Update(product);
            return(Ok("商品库存更新成功"));
        }