门店Pos拉单
2021-06-02 14:49:10 0 举报
AI智能生成
工作流程梳理
作者其他创作
大纲/内容
攻略
机票
杭州到重庆
2020-11-27 23:15-01:55
川航 3U8936
江北国际机场T2
成都到杭州
2020-12-02 16:05-18:35
天津航 GS6508
双流机场T2
注意点
成都东
重庆北/ 沙坪坝站
重庆
景点/废弃
解放碑
附近
洪崖洞
亮灯时间是晚上 8点到10点
朝天门
磁器口
李子坝站
南山一棵树
看夜景的地方
-------------------以下是郊区--------------------
武隆天坑
仙女山
路线
1、从江北机场坐轻轨到重庆北站南广场,坐重庆到武隆的火车,可以直接到达武隆火车站
2、从江北机场坐轻轨到四公里,在四公里坐重庆到武隆的汽车,可以直接到武隆汽车站
需要武隆县城的火车站或者汽车站买专线的车票 乘坐专门旅游大巴才能进入
需要三小时
重庆北->武隆
7:12
8:10
12:22
天生三桥
九黎宫
龚滩古镇
乌江画廊
龙水峡地缝
长江索道
若水无边
网上攻略路线
2
解放碑(2小时) → 洪崖洞民俗风貌区(1.5小时) → 千厮门大桥(30分钟) → 八一路好吃街(1小时)
磁器口古镇(2.5小时) → 重庆白公馆(0.5小时) → 渣滓洞监狱旧址(0.5小时) → 长江索道(15分钟) → 南山一棵树景区(2小时)
四川美术学院(黄桷坪校区)(1小时) → 重庆涂鸦一条街(1小时) → 单轨李子坝站(10分钟) → 两路口皇冠大扶梯(20分钟) → 重庆朝天门广场(2小时)
http://www.mafengwo.cn/mdd/cityroute/10208_265.html
武隆龙水峡地缝(2小时) → 武隆天生三桥(2小时) → 印象武隆(1.5小时)
芙蓉洞(1.5小时) → 芙蓉江过江速滑(1小时)
3
川美虎溪校区,磁器口古镇,鹅岭二厂,皇冠大扶梯,李子坝
一条路线
住宿推荐
偏贵
解放碑
洪崖洞
一般
观音桥
两路口
七星岗地铁口的汉庭
吃
莺花渡火锅
成都
景点
武侯祠
不好玩
锦里
春熙路太古里
商业街
杜甫草堂
不咋地
如果你是个古镇范儿,这里有黄龙溪、洛带、街子古镇可以游玩
喜欢美食和美女,那一定不能错过宽窄巷子、锦里、春熙路
宽窄巷子
别买吃的
有 直通车到 都江堰
春熙路
吃的可以
太古里/ifs/春熙路/王府井 都在一块
你是个文青,相信武侯祠、杜甫草堂、东郊记忆都是你喜欢的地方
九寨沟
黄龙五景区全景游
黄龙
天府广场
市中心
春熙路和宽窄巷子都有直达基地的旅游巴士
都江堰
门票:90元
青城山
前山90元/后山20元
后山游玩
成都夜生活:九眼桥
三岔湖景区
住宿
如果住酒店,位置可以选在锦江区或者青羊区、武侯区都是蛮方便的,强烈推荐住在春熙路附近,市中心,交通方便,晚上可以九眼桥或者小酒馆其实都是蛮方便的。
春熙路附近的民宿
网上攻略
1
第一天:到达成都—天府广场—人民公园—春熙路太古里商圈
第二天:宽窄巷子—成都大熊猫基地—锦里
第三天:都江堰—青城山
http://www.k1u.com/trip/43106.html
2
四姑娘山、夹金山“纯玩”三日游
3
春熙路 → 武侯祠 → 杜甫草堂 → 青羊宫→ 望江 楼公园 → 黄龙溪 古镇(天府锦绣梨园看川剧(*^▽^*))——机场线
4
1、锦江区:春熙路、太古里、九眼桥、天府广场
2、武侯区:锦里、武侯祠
不好玩
3、青羊区:宽窄巷子、人民公园、杜甫草堂、青羊宫、文殊院、金沙遗址博物馆
4、成华区:成都大熊猫繁衍基地、东郊记忆
5、成都周边:都江堰、西岭雪山、青城山
DAY1:宽窄巷子-锦里-武侯祠-春熙路-太古里
DAY2:熊猫基地-东郊记忆-九眼桥
DAY3:金沙遗址博物馆-杜甫草堂-青羊宫-文殊院
吃
赵二火锅 天府三街店
青年火锅
燕来小火锅
电台巷火锅
西安南路重庆老火锅王
杀牛场火锅
成都地道美食:香香巷
154路-吃货最喜欢坐的公交车
川大附近
计划安排
重庆江北机场
11-28 1:55到
住宿
重庆Une
金港国际22号楼3单元10-1
19112120930
计划游玩顺序
---------------------------重庆---------------------------
第一天有点多,考虑下 下飞机第一天的状态情况 调整
第一天
到达解放碑交通 1小时17分钟
10号
红土地站
换乘6号
小什字站
解放碑
白天
吃
渝宗老灶火锅
黄姐火锅
好吃便宜
珮姐老火锅
邓莽子老火锅
1、店历史久,非新店;2、不太注重装横;3、问本地人
临江门洞子老火锅
赵二火锅
朱氏胖子烂火锅
临江门洞子老火锅
渣渣
朝天门
确定是否好玩
坐船
长江索道
门票来回30
摇摆景点,来不及就换明天
南山一棵树
傍晚去
门票30
洪崖洞
晚上
亮灯时间是晚上 8点到10点
住宿
第二天
鹅岭二厂
李子坝
2号线
磁器口
高铁-成都
沙坪坝站
成都东
时间
7:45-9:28
G8542
13:29-15:12
G8566
17:38-19:18
G8560
17:56-19:25
G8556
19:15-20:37
G8558
重庆北
成都东
便宜 50/人
---------------------------成都---------------------------
住宿
第三天
大熊猫基地:每天8:30-16:00
上午最好
暂定
宽窄巷子
不好吃
吃的没花头
人民公园
三岔湖景区
可能租车->周边藏区玩
第四天
第五天
成都计划设计
青城山
泡温泉
8:00-17:00
都江堰
宽窄巷子→都江堰:
发车时间:10:30
乘车地点:长顺上街127号窄巷子口
犀浦站
转车
吃
一品天下大街
154路-吃货最喜欢坐的公交车
川大附近
小吃找一找“苍蝇馆子”
吃火锅点牛油,口味中辣起步。
租车计划
成都周边藏区,雪山,很近,很美!
巴朗山
四姑娘山
西岭雪山
冬天滑雪,可以去西岭雪山
平时为100元;春节等节日价格为120元。上山交通费:60元(往返)。观景索道:单程50元,往返80元。
西岭雪山位于四川省成都市西郊,距成都市区约120公里,到景区均为高等级路面公路。成都金沙汽车站每天9:00和9:30各有一班旅游车直达景区;返程时间为:14:00和15:30。也可以从成都乘车先到大邑后转车到景区。
http://www.xiling.cn/website/survey/introduction
自助游交通
成都——西岭雪山滑雪场
A、成都茶店子客运站—西岭雪山滑雪场;时间:早上09:00,09:30,直达西岭雪山滑雪场(景区旺季时茶店子客运站会增加班次,具体的发班时间请咨询茶店子车站)。
成都――大邑——西岭镇——大飞水景区/滑雪场景区
A、成都茶店子客运站 ——大邑车站,滚动发车;
B1、大邑车站——西岭镇(滚动发车) ——西岭雪山大飞水景区/西岭雪山滑雪场景区:自助坐车;
B2、大邑车站——西岭雪山滑雪场,每天08:30、10:30、13:30、15:00固定班次直达滑雪场景区。
大邑客运中心电话:028-88294217
茶店子客运站电话:028-87506610
景区咨询电话:4000289695 028-88309080
达古冰川
路线1
1成都——2都江堰——3映秀——4四姑娘山——5夹金山——6达瓦更扎——7神木垒——8宝兴——9碧峰峡——10上里古镇——11平乐古镇——成都
https://zhuanlan.zhihu.com/p/67001720
设想路线
1.西岭雪山景区
2.青城山
3.都江堰
4.回家
穿
冬天的衣服带一套
成都双流机场
犀浦站->双流机场
1小时
12-02 16:05-18:35
接机
需要买去上海票
订单工作
门店Pos拉单
pos_backend_service服务
/order/orderList/get
调用基础服务 shared-order-service
order/v2/pullOrders
默认8小时前订单
先查redis / redis出问题查数据库
redis的key
obs:{partnerId}:{storeId}:{yyyyMMdd}
obs:{partnerId}:{storeId}:{orderClient}:{yyyyMMdd}
zset类型
order_operation_history
订单id,订单号分组
轮询订单
订单生命周期链路
聚合层/order/createOrder
创建订单
校验用户信息
saas:user:info:sessionId:{sessionId}
门店信息
/api/v2/organization/get
logstash-k8s-openstore-*
trackingNo
购物车检查
/collage/getShoppingCartGoodsApportion?lang=zh_CN
/getShoppingCartGoodsApportion?lang=zh_CN
logstash-k8s-openstore-*
trackingNo
小程序自提/外卖校验
下订单发送到基础服务
/order/v2/create
链路追踪
落库
Orders
主订单
order_item
订单商品
order_item_user
订单商品加购关系
order_cost_detail
创建订单费用
delivery_contact_info
创建配送信息
order_invoice
发票信息
order_extended
订单扩展信息
order_send_coupon
买一赠一寄杯送券明细
order_trace_info
状态变化历史
更新缓存
发送MQ
到shared-order-stream服务的OriginMsgHandlerConsumer
事件类型1
ORDER_CREATE
ORDER_CREATE(1, "待支付",null,DelayMsgEventType.PRE_REMIND_UNPAID,MsgOperateType.FORWARD.getIndex()),
日志
log.info("ORDER_CREATE event process :{}",orderChangeMsg.toString());
业务操作
刷新redis缓存
hgetall obs:OrderHashCache:{orderId}
订单是否支付
payState
已经支付 推送拉单队列
不带渠道号
obs:{partnerId}:{storeId}:yyyyMMdd
带渠道号
obs:{partnerId}:{storeId}:{orderClient}:yyyyMMdd
48小时过期
未支付
MQ进行超时前提醒
超时提醒
状态变更提醒 /callback/order
发送MQ
到shared-order-stream服务的 CallBackConsumer服务
消费发送http请求
需要查看 systemConfig配置表确定回调地址
/callback/order
到call-back-service服务
业务操作
发送MQ
到task-center-order-consumer服务的OrderCallBackListener消费者
创建订单,无任何操作
订单状态变更通知开放平台
未支付不通知
停车场订单关闭状态不通知
微信数据上传(创建新订单&支付成功时上传)
上报发票信息
有数订单数据上报 & 每日下单门店统计
有数进行上报
下单门店统计不触发逻辑
发送rocketMQ
发送死信队列
发送MQ同步ES
事件类型2
PAY_COMPLETE
PAY_COMPLETE(2, "已下单",DelayMsgEventType.DELAYED_REMIND_UNACCEPT, DelayMsgEventType.PRE_REMIND_UNACCEPT,MsgOperateType.FORWARD.getIndex()),
触发机制,可能是POS接单,直接传递 订单状态为2
日志
log.info("PAY_COMPLETE_NEW event process :{}",orderChangeMsg.toString());
业务操作
刷新redis缓存
hgetall obs:OrderHashCache:{orderId}
推送拉单队列
不带渠道号
obs:{partnerId}:{storeId}:yyyyMMdd
带渠道号
obs:{partnerId}:{storeId}:{orderClient}:yyyyMMdd
48小时过期
成功日志
send mq msg for origin producer msg success!data=
拉起预支付
设置预支付信息
获取回调地址 redis
@Value("${saas.reverseNotifyiDcUrl}")
主体名称
kgd:open:platform:partner:{partnerId}
支付方式不同的操作
电子风味卡支付
普通支付
混合支付
/payment/application/pay
0元订单
/paymentcenter/unifiedOrder
日志
支付SDK返回信息错误
买券订单 微信 支付宝
/paymentcenter/pay
预支付成功订单放入延迟队列
没有找到死信队列
支付失败
/order/v2/cancel
存入redis
key
obs:AfterListRedis:afterList:{orderId}
zset
创建售后单
AfterSalesOrder
设置超时任务
OrderTask
并落库
删除售后单缓存
发送MQ
到shared-order-stream服务的OriginMsgHandlerConsumer
事件类型
AFTER_SALES_CREATE
AFTER_SALES_CREATE(9, "售后单创建","AFTER_SALES_CREATE"),
shared-order-stream日志
AFTER_SALES_CREATE event process
业务操作
刷新redis
推送拉单队列
状态变更提醒 /callback/order
发送MQ
到shared-order-stream服务的 CallBackConsumer服务
消费发送http请求
/callback/order
到call-back-service服务
业务操作
发送MQ
到task-center-order-consumer服务的OrderCallBackListener消费者
订单超时处理
外面配送单/分配骑手保存骑手信息
服务端自动接单
推送接单MQ
/createMessage
卖券订单发券
买一赠一寄杯送券
下单送积点
订单完成送积点
三方外卖订单处理
coco订阅消息
聚合外卖订单,发生状态变更需要推送消息中心通知pos拉单
麦咖啡订阅消息
订单状态变更通知开放平台
未支付不通知
停车场订单关闭状态不通知
微信数据上传(创建新订单&支付成功时上传)
上报发票信息
未支付超时关单,发送队列冲正积分、券码等,停车场订单走单独逻辑
有数订单数据上报 & 每日下单门店统计
发送rocketMQ
不知道干嘛的
发送死信队列
发送MQ同步ES
成功日志
send mq msg for origin producer msg success!data=
删除队列
/payment/application/pay
调用支付获取支付信息
可以查看 支付成功回调的 地址设置
更新订单 extinfo信息
order/v2/updateOrder
更新DB
更新order表 extinfo
更新order表 混合支付信息
更新 orderPayItem 支付详情
更新redis
发送MQ
到shared-order-stream服务的OriginMsgHandlerConsumer
事件类型1
ES_SYNC
ES_SYNC(12, "同步ES数据",false,false),
业务操作
发送MQ同步ES
事件类型2
NORMAL_CHANGE
NORMAL_CHANGE(0, "普通修改",null,null,MsgOperateType.NORMAL.getIndex()),
业务操作
状态变更提醒 /callback/order
发送死信队列
发送MQ同步ES
这里的链路更新为事件1更新ES类型
失败的情况下
order/v2/cancel
已有链路书写
买券订单
APP订单拉起预支付
/order/createPrepay
基础服务 redis获取订单数据
/order/v2/queryRelatedOrderByCode
校验是否存在预支付
/paymentcenter/query
redis存 支付关系
1小时TTL
kgd:payment:transid:order:{transId}
拉起预支付
有重复
商城订单
聚合层/order/paySuccessCallback
退款
用户申请退款
聚合层 /order/refund
一系列校验
if 未接单
直接退款
冲正
else发送基础服务
/order/v2/cancel
已有链路书写
if发送微信模板
发送pos给前段 && 微信模板消息
有云打印,则打印退款申请小票
小助手同意退款
/assistant/order/orderRefund/agree
组装参数
ORDER_AGREE_REFUND
调用order-group的履单接口
order/statusOperate
场景
三方外卖订单
saas订单
总体操作
if三方配送取消配送单
调用配送取消配送
/delivery/cancel
支付退款
混合支付
批量退款
/payment/application/refund
存入redis
TTL
1天
key
kgd:payment:transid:sequence:{orderId}
单支付
/afterSales/v2/queryByOrder
获取退款金额
调用支付 退款
订单同意退款
支付退款成功调用
/afterSales/v2/adultApproveWithRefundComplete
业务操作
状态机操作
更新 after_sales_order 库
更新 orders 库
订单状态 orderState = 7
已关闭
更新 order_pay_item
paystate=3
已退款
保存操作记录
order_operation_history
删除售后单redis
key
obs:AfterSalesRedis:{afterSaleId}
刷新订单redis
key
obs:OrderHashCache:{orderId}
ZSET
发送MQ到stream
AFTER_SALES_CHANGE
cn.freemud.shard.order.listeners.AfterMsgListener#processAfterChange
业务操作
刷新缓存
key
obs:OrderHashCache:{orderId}
ZSET
!if未支付
重新丢入拉单队列
key
重新丢入售后单队列
key
if关闭订单的状态
redis操作
移出排队队列
key
obs:queue:{partnerId}:{storeId}:{yyyy-MM-dd}
ZSET
移除当前商户门店订单
key
obs:queue:lineuporder:{partnerId}:{storeId}:{yyyy-MM-dd}
ZSET
支付退款失败
/afterSales/v2/adultApproveWithGoodsReturned
业务操作
和上面的业务操作流程一直
区别点 AfterSalesStatusEvent不一致
支付退款成功调用
APPROVE_WITH_REFUND_COMPLETE
支付退款失败
APPROVE_WITH_GOODS_RETURNED
推送pos
推送给pos前端,小程序前端消息
action
createMessage
取消订单
if 发送微信模板消息
冲正库存
发送MQ到 task-center-order-consumer
MQ
program.backorders_notify_activity_exchange
program.backorders_change_order_status_consumer_queue
消费者 ChangeOrderStatusListener
获取订单详情信息
/order/v2/queryByCode
if取消订单&配置的orderclient(补偿机制)
查询支付,是否有支付过
/paymentcenter/query
if麦咖啡订单
else其他订单
活动库存冲正
3次冲正
促销接口
/activity/stock/cancelStock
!if停车场订单
优惠券冲正
OPEN-STORE-OFFLINE-COUPON-SERVICE
/api
3次重试
优惠券解锁
OPEN-STORE-OFFLINE-COUPON-SERVICE
coupon/unlock
3次重试
商品库存冲正
门店接口
/inv/reduceStocks
积分冲正(普通订单适用)
customer-application-service服务
/user/useScore
if停车场订单
积分回退
/propertyservice/score/returnScore
积分积点冲正
促销重新计算价格
/calculation/discount
customer-property-service
/propertyservice/point/returnPoint
积分扣减
coco定制
移出卡包
会员消费冲正
买一赠一寄杯送券作废
超时关单,取消预支付
感觉这里需要移出去??
和上面的逻辑是否有关联
商城订单
麦咖啡订单
聚合层 /callback/order
推开放平台
获取商户需要推送的queue列表
走redis
key
saas:order:push:config
{partnerId}
hash
ttl
30 分钟
走db
库
B端后台
saas_micro_progeram
表
order_push_queue_config
根据 partnerId查询
过滤数据
过滤数据状态不推送的 status
过滤非saas订单
orderclient
2
saas
3
自营支付宝
12
自营app
27
抖音小程序
过滤支付金额为0的订单
过滤 售后单
订单目前走 Ver=2逻辑
根据队列名+ partnerId获取配置
redis
key
kgd:queue:partner:config:{partnerId}
hash
db
表
queue_partner_config
根据queueName获取Queue配置
redis
key
kgd:queue:config:{queueName}
db
表
queue_config
if走常规队列
else走多队列
---------------
final最终走到开放平台的 消费者
项目 open-store-platform
消费者 orderDiversPushListener
推送的层级
门店级别
SELECT c.appid,c.client_public_key,c.client_private_key,c.server_private_key,c.server_public_key,u.callback_url,p.company_name,c.app_name FROM open_api_encrypt_config c
INNER JOIN open_api_encrypt_partner_config p on c.appid=p.appid
INNER JOIN open_api_encrypt_url_config u on u.appid=c.appid
where p.partner_id= #{partnerId} and u.url_type= #{urlType} and p.store_id = #{storeId} and p.push_type = 3 and p.`status`=1
limit 1
INNER JOIN open_api_encrypt_partner_config p on c.appid=p.appid
INNER JOIN open_api_encrypt_url_config u on u.appid=c.appid
where p.partner_id= #{partnerId} and u.url_type= #{urlType} and p.store_id = #{storeId} and p.push_type = 3 and p.`status`=1
limit 1
区域级别
SELECT c.appid,c.client_public_key,c.client_private_key,c.server_private_key,c.server_public_key,u.callback_url,p.company_name,c.app_name FROM open_api_encrypt_config c
INNER JOIN open_api_encrypt_partner_config p on c.appid=p.appid
INNER JOIN open_api_encrypt_url_config u on u.appid=c.appid
where p.partner_id= #{partnerId} and u.url_type= #{urlType} and p.org_id = #{orgId} and p.push_type = 2 and p.`status`=1
limit 1
商户级别
SELECT c.appid,c.client_public_key,c.client_private_key,c.server_private_key,c.server_public_key,u.callback_url FROM open_api_encrypt_config c
INNER JOIN open_api_encrypt_partner_config p on c.appid=p.appid
INNER JOIN open_api_encrypt_url_config u on u.appid=c.appid
where p.partner_id= #{partnerId} and u.url_type= #{urlType} and p.`status`=1
limit 1
促销工作
促销算价
接口
/calculation/discount
业务
if白名单调用 券码服务计算
条件
商户号
是 isaas
优惠券list不为null
业务
取商户信息
redis
key
promotion:partner_info:{partnerCode}
string
db
表
t_partner_info
库
promotion-platform
调用券码 获取可用券
url
/batchCodeDetails
参数关键字
券
foreach 计算
卡券是否可用
商品券
代金券
折扣券
换购券
运费券
--------以上内部参数组装
最终计算 doCouponCalculate()
else
0 条评论
下一页