谷粒商城实战笔记-99-仓储服务-API-仓库管理-完成采购

一,业务逻辑分析

采购负责人在完成采购任务后,会在采购管理系统中确认完成,特别说明,谷粒商城中不包含采购管理系统,我们需要用Postman模拟请求。

完成采购有2种可能情况:

  • 所有采购需求都完成的情况下,采购单的状态为已完成,采购需求的状态为已完成
  • 部分采购需求完成,采购单的状态为有异常,成功的采购需求状态为已完成,不成功的采购需求状态为采购失败

完成采购的后台业务逻辑:

  • 更新采购需求状态,可能是完成,可能是采购失败
  • 完成采购需求需要更新库存
  • 根据所有采购需求的状态更新采购单状态,可能是完成,可能是有异常

二,模拟调用和效果

1,Postman模拟调用

在这里插入图片描述

localhost:88/api/ware/purchase/done
{

    "id":1,
    "items":[
        {
            "itemId":1,
            "status":3,
            "reason":""
        },
        {
            "itemId":2,
            "status":4,
            "reason":"无货"
        }
    ]
}

2,页面效果

采购单页面:

在这里插入图片描述

采购需求页面:

在这里插入图片描述

库存页面:

在这里插入图片描述

三,代码总结

1 分页插件配置

增加MybatisPlus分页配置,以便前端的分页功能能正常使用。

在这里插入图片描述

2 服务间接口调用的不同方式

在微服务架构中,Feign 是一个声明式的 HTTP 客户端,它简化了 HTTP 请求的发送。当使用 Feign 进行服务间通信时,有两种常见的配置方式:一种是直接与目标服务通信(绕过网关),另一种是通过 API 网关进行通信。

直接访问服务

配置步骤:

  1. 定义 Feign Client:

    @FeignClient(name = "gulimall-product")
    public interface SkuInfoFeignService {
        @GetMapping("/skuinfo/info/{skuId}")
        SkuInfoEntity getSkuInfo(@PathVariable("skuId") Long skuId);
    }
    
  2. 服务发现:

    • 确保 gulimall-product 服务已经在 Eureka 注册中心注册。
    • 在 Feign 客户端所在的服务中配置 Eureka 和 Ribbon 以支持服务发现和服务实例选择。
  3. 负载均衡:

    • Ribbon 自动为 Feign 提供客户端负载均衡能力,无需额外配置。

优劣分析:

  • 优点:

    • 性能更高: 减少了网关转发的延迟。
    • 简单直接: 服务间的调用更加直接,减少了中间环节。
  • 缺点:

    • 服务地址变更困难: 如果服务地址发生变化,需要修改 Feign 客户端的配置。
    • 安全性较低: 缺少统一的安全认证机制。
    • 管理不便: 每个服务都需要单独维护路由信息。

通过网关访问服务

配置步骤:

  1. 定义 Feign Client:

    @FeignClient(name = "gulimall-gateway")
    public interface SkuInfoFeignService {
        @GetMapping("/api/product/skuinfo/info/{skuId}")
        SkuInfoEntity getSkuInfo(@PathVariable("skuId") Long skuId);
    }
    
  2. 网关配置:

    • 配置网关路由规则将请求转发到相应的服务。
    • 需要在网关服务中添加 /api/product/skuinfo/info/{skuId} 路由规则,指向 gulimall-product 服务。
  3. 服务发现:

    • 确保 gulimall-gatewaygulimall-product 都已在 Eureka 注册中心注册。
    • 在 Feign 客户端所在的服务中配置 Eureka 和 Ribbon 以支持服务发现和服务实例选择。

优劣分析:

  • 优点:

    • 统一入口: 所有外部请求都通过网关进入,便于统一管理。
    • 增强安全性: 可以在网关层实现认证授权等安全措施。
    • 易于扩展: 网关可以提供缓存、监控等功能,方便扩展。
  • 缺点:

    • 性能影响: 增加了网关转发的延迟。
    • 复杂度增加: 需要维护网关路由规则,增加了系统的复杂度。

小小结

选择哪种方式取决于您的具体需求和场景。如果追求高性能和简单性,可以选择直接访问服务;如果希望有更好的可管理性和安全性,则应考虑通过网关访问服务。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小手追梦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值