整体逻辑:
- 前端:
- 订单详情获取主接口成功:主数据中的maskLayerSwitch为true 才往下执行
- 热配【MASK_LAYER_SWITCH】
- setMaskLayerRuleParams 设置入参【带上缓存:orderDetailMaskLayer】
- 请求api/order/maskLayerHandle
- 订单详情获取主接口成功:主数据中的maskLayerSwitch为true 才往下执行
- xapi:
- 判断订单,取热配:正常订单【MASK_LAYER_CONTROL】、扫码住【MASK_LAYER_CONTROL_SMZ_NEW】
- 判断:前端带的弹窗与xapi配的maping映射,热配是否包含,热配的amount>0
- 满足push数组,循环数组,对应的弹窗,对应处理,再push进promise请求数组
- 请求回来,判断 订单状态、城市id、前端缓存处理比较(订单维度结合缓存、时间再进行比较)最后判断优先级、更新缓存、返回弹窗数据 吐给前端
订单状态对应表: http://wiki.17usoft.com/pages/viewpage.action?pageId=23280665
1、bargain: 砍价弹窗
wiki: http://wiki.17usoft.com/pages/viewpage.action?pageId=56525971
热配:"sort": 3, //优先级"statusIds": [], // 订单状态ID,空数组为不限制"cityIds": [], // 城市ID,空数组为不限制"orderSwitch": true, // 订单维度"amount": 1, //次数,不能为空"timeDay": 1 //有效时间范围天数,0为不限制前端请求砍价请求条件:wxqbBargain:微信砍价【主数据吐】orderResp.bargin.wxqbBargain!canContinuePay:是否可以继续支付【主数据吐】orderResp.body.paymentInfo.isPayablestatusId!=13:订单状态客户端code不是13已取消【主数据吐】orderResp.body.eClientStatus.statusIdisExpireTime:过期时间(请求订单主数据时间-创单时间< bargin.expireTime || 86400000)入参:bargain: {activityId: barginActivityId || '', // 活动id 热配:barginActivityIdhotelName , // 酒店名称orderMoney: roomPrice || 0, // 订单金额maxDiscountMoney: bargin.amount || 0, // 最大可砍价金额isStudent // 是否是学生用户}出参:bargain: {}业务梳理:弹窗组成:弹窗背景:css头部logo: 前端写死【https://m.elongstatic.com/hotel/h5/wechat-xcx/20210401/bargin/logo.png】中部文案:前端写死 + 订单主接口吐的 砍价金额底部按钮:【查看详情】和【点击领取】 都跳转砍价落地页手指:前端写死【https://m.elongstatic.com/hotel/h5/wechat-xcx/20210401/bargin/hand.png】弹窗金额:【主数据吐】orderResp.bargin.amount底层接口:http://tchotel.vip.elong.com/api/fission/registfromorder 【砍价注册接口】返回 !resp.errorCode 为注册成功

2、quickRefund:极速退款
wiki: http://wiki.17usoft.com/pages/viewpage.action?pageId=51794203
热配"quickRefund": {"sort": 4,"statusIds": [3, // 待确认12, // 待入住14, // 已确认16, // 已入住17 // 已离店],"cityIds": [],"orderSwitch": false,"amount": 1,"timeDay": 0}前端极速退款请求条件:refundStatus !== -1 【主数据吐】急速退款标识 body.orderQuickRefund.refundStatusxapi突出数据条件:refundStatus 包含 xapi [0, 1, 3]字段对应状态:0 : 未退款1 : 员工审核退款2 : 风控未通过3 : 已经极速退款4 : 极速退款后订单投noshow入参:"quickRefund": {"refundStatus": 1 (订单详情主数据返回的)}出参:"maskData": {"quickRefund": {"quickRefundLayerUrl":"https://m.elongstatic.com/hotel/h5/wechat-xcx/20201224/quickrefund.png" // 热配 QUICK_REFUND_LAYER_URL}}弹窗组成图片:xapi吐 【https://m.elongstatic.com/hotel/h5/wechat-xcx/20201224/quickrefund.png】按钮:前端写死【开心收下】点击按钮:动画关闭弹窗,啥也不做底层接口:无

3、flight:机票
wiki: http://wiki.17usoft.com/pages/viewpage.action?pageId=43619325
http://wiki.17usoft.com/pages/viewpage.action?pageId=44824939
热配条件:"flight": {"sort": 9,"statusIds": [3, // 待确认14 // 已确认],"cityIds": [],"orderSwitch": true,"amount": 1,"timeDay": 1}前端入参:flight: {resaleStatus, // 转让状态:body.orderResaleInfo.resaleStatusorderOrigin}出参:"maskData": {"flight": {flightAdUrl: "https%3A%2F%2Fwx.17u.cn%2Fmarktingapwebservice%2Factivity%2Fpage%2FAPAC14167EKT12KW05C%3Frefid%3D1465315884"flightImgUrl: "https://m.elongstatic.com/hotel/h5/wechat-xcx/20210916/plane-business.png"flightJumpType: 2flightUrlType: 1 // 1商旅,2机票新用户}}数据来源:热配:FLIGHT_AD_SWITCH弹窗组成:图片弹窗图片:后端吐 取的热配跳转链接:后端吐 取的热配没有按钮:点击整个图片都跳【活动落地页 、 机票首页(小程序)】弹窗展示了之后异步调用:机票券发放接口【/api/order/flightRecharge】接口返回成功与否,就只做了打点底层接口:http://servicegw.ly.com/gateway/buddha.recommend/v1/recommend/multiplerecommend/【获取用户身份-userTags字段】接口wiki:http://wiki.17usoft.com/pages/viewpage.action?pageId=29819099http://wiki.17usoft.com/pages/viewpage.action?pageId=23278276弹窗的跳转:1、商旅用户 商旅专题活动落地页(h5);2、新用户 ==》机票首页(小程序)1、仅国内。不含港澳台3、订单维度:一个订单一天仅弹一次。4、以下维度可在xapi配置:1) 图片和链接:根据用户标签判断,分为新客和商旅2) 订单状态:目前仅在出行前有效的订单状态弹出:待确认3、已确认14。排除:转让的A单不弹。5、获取用户身份:调用如来产品多推荐接口——userTags字段http://wiki.17usoft.com/pages/viewpage.action?pageId=232782761) 商旅用户:ut_business2) 机票新用户:ut_user_new_forhotel3)弹窗优先级:ut_business> ut_user_new_forhotel(一个用户只能弹一种)

4、flightSMZ: 扫码住机票红包
wiki:http://wiki.17usoft.com/pages/viewpage.action?pageId=63342306
热配:"flightSMZ": {"sort": 0,"statusIds": [3, // 待确认14 // 已确认],"cityIds": [],"orderSwitch": true,"amount": 1,"timeDay": 1}前端入参:flightSMZ: {}弹窗组成:背景图片:前端写死【https://m.elongstatic.com/hotel/h5/wechat-xcx/20210819/smzflight_bg.png】标题、领取-截止日期 红包金额 xapi吐底部文案:前端写死【可到[我的-代金券]中查看】没有按钮 只能点击关闭底层接口:http://promotion-api.vip.elong.com/promotionapi/mergescan/rechargeCoupon【红包直冲】接口入参cityId: string; // 城市idelCardNo: string; // 用户卡号from: number; // 来源 1:扫码落地页, 2:酒店详情页,3:订单详情页,4:主流程订单详情页mHotelId: string; // 酒店idopenId: string; // 微信OpenIdplatId: number; // 平台类型(501.微信钱包,601:极速app)traceId: string; // 请求唯一标示unionId: string; // 用户unionId接口出参title: string; // 红包标题staTime: string; // 红包领取日期endTime: string; // 红包截止日期amount: number; // 红包金额接口逻辑:传用户信息,平台等信息调红包直冲接口,底层判断是否有红包,有数据就展示,没有数据就不展示前端:1、弹屏出现位置:带有扫码住标识的订单详情页,且只在用户支付完成进入订单详情页时显示,其他场景进入订单详情页不显示2、红包直充节点:活动组在订单详情页给一个新的红包接口(支持扩充),前端进入订单详情页调取红包充值接口,根据接口返回结果判断是否显弹屏满足领取条件且红包充值成功-显示弹屏已充值过红包-不显示弹屏不满足领取条件-不显示弹屏

5、cpcscan:cpc弹窗
热配条件:"cpcscan": {"sort": 8,"statusIds": [3, // 待确认14, // 已确认16, // 已入住17, // 已离店21 // 房费已结算],"cityIds": [],"orderSwitch": true,"amount": 1,"timeDay": 1}前端条件 cpcScan.showScan 为 TRUE数据来源:订单详情页主接口的cpcScan字段,热配 CPCSCAN_ORDERDETAIL,前端入参:cpcscan: {}作用:非房的广告位弹窗组成:图片: xapi吐 热配跳转链接: xapi吐 热配按钮:没有按钮,点击图片,跳浏览得钱页面点击图片跳转:浏览得钱页面限制条件:不是砍价单 不是扫码住订单 并且 免费住命中 B 或者 A 但是已经领去过免费住得权益 那么也展示

