优惠券可用不可用业务流程.md 1.7 KB

查询用户优惠券可用不可用列表接口业务逻辑

1.gateway入口

接口地址:method=app.Shopping.listCoupon,需要参数:int uid,required = true. Postman模拟URL示例:http://192.168.102.205:8080/gateway?method=app.Shopping.listCoupon&uid=8041834&debug=XYZ 类名:com.yoho.gateway.controller.order.shopping.ShoppingController,方法名:listCoupon

2.返回

通过serviceCaller调用order模块的order.listCoupon服务进行具体的业务操作。 返回两个优惠券list:usable_coupons和unusable_coupons

3.调用order.listCoupon服务的具体过程

3.1order模块的服务入口

服务入口:com.yoho.yhorder.shopping.restapi.ShoppingCouponController的listCoupon方法。 postman模拟URL示例:http://192.168.102.205:8084/order/shopping/listCoupon,post请求,body:{"uid":8041834} 方法中调用ShoppingCouponService的listCoupon方法 返回ShoppingCouponListResponse对象

3.2listCoupon的执行过程

3.2.1调用chargeUsableCoupon方法,返回ChargeContext对象,结果放在ChargeTotal中

3.2.1.1生成算费参数ChargeParam,

设置CartType=ORDINARY_CART_TYPE, ChargeType=LISTCOUPONO_CHARGE_TYPE 是否需要计算运费:不需要 是否需要查询有货币:不需要 是否需要查询红包:不需要 是否需要校验货到付款:不需要

3.2.1.2chargeContextFactory构建ChargeContext算费上下文(具体见算费上下文ChargeContext构建具体过程.md文档)
3.2.1.3chargerService.charge进行购物车算费(具体见购物车算费.md文档的LISTCOUPONO_CHARGE_TYPE计算优惠券可用不可用部分)
3.2.2将ChargeContext.ChargeTotal中的结果包装到ShoppingCouponListResponse中返回