技术文档
方法相同入参 AOP 使用说明
Shopee 刊登业务梳理文档
亚马逊刊登相关业务知识
刊登监控设计方案
亚马逊跟卖设计
Fanno 刊登业务梳理文档
日志收集 方案设计
PIB 刊登方案设计
Temu 刊登方案设计
ShopTokenInfo Aop集成MBC方案
香港定时卡刊登任务方案
push-message 、receive-message 省流方案
OZON 刊登方案设计
Lazada视频上传方案
广州同步店铺框架搭建
Shopify翻版
Amazon交接
TikTok 由global模式切换replicate模式调研
tiktok 折扣活动对接方案
Target 初期调研
本文档使用 MrDoc 发布
-
+
首页
广州同步店铺框架搭建
## 一. 业务背景     后续广州侧会引进类似Shein, Bukalapak, Otto等其它平台做同步店铺,商品详情业务。因此为了更效率的提高产出,特此封装模板框架 源码: http://git.mabangerp.com:2280/mc/product/mdc-sync-product-modules.git ## 二. 依赖工具 ### 1. redis(核心, 不可替换) ### 2. tidb(核心, 不可替换) ### 3. cos (不可替换, 存放7天过期的全量商品列表excel文件) ### 4. mongodb(默认, 可替换) ### 5. rocketmq(默认, 可替换) ## 三. 业务 ### 1. 流程图  ### 2. UML类图  #### ==必须实现接口==: **调用平台店铺列表接口: ISyncShopThirdCall 调用平台接口获取商详接口: ISyncProductThirdCall 商品详情convert对象转换, 持久化: ISyncProductDataIntermediateHandler** #### ==可配置接口==: **校验消息: IValidHandler 存入中间表: ISyncShopDataIntermediateHandler 推送删除, 删除商品: IPushDeleteHandler 批量推送同步: IPushProductHandler** ## 四. 对象模型 ### 1. 同步店铺消息模型 ```java package com.mabang.product.common.dto.message; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; import org.apache.commons.lang3.StringUtils; import java.util.Map; /** * 类<code>SyncShopMessage</code>说明:同步店铺消息对象 后续会写到mc-product-base-modules * * @author fangluo * @email fangluo@mabangerp.com * @since 2023/6/12 */ @AllArgsConstructor @NoArgsConstructor @Builder @Data public class SyncShopMessage { /** * 店铺Id */ private Integer shopId; /** * 企业编号 */ private Integer companyId; /** * cloudType */ private String cloudType; /** * 平台id */ private Integer platFormId; /** * 重试次数 */ private Integer retryNum; /** * currentPage */ private Integer offset; /** * limit for per request */ private Integer limit; /** * 有些平台会以这种方式获取下一页 */ private String nextUrl; /** * 商品详情topic */ private String productDetailTopicName; /** * 同步店铺topic */ private String syncShopTopicName; /** * 备用业务Map */ private Map<String, Object> remark; /** * 校验 * * @return true 失败 false 成功往下 */ public boolean valid() { return shopId == null || companyId == null || platFormId == null || StringUtils.isBlank(cloudType) || StringUtils.isBlank(syncShopTopicName); } } ``` ### 2. 同步商品消息模型 ```java package com.mabang.product.common.dto.message; import com.mabang.product.mongo.CommonIntermediaDto; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; import org.apache.commons.lang3.StringUtils; import org.springframework.util.CollectionUtils; import java.util.List; /** * 类<code>SyncProductMessage</code>说明:同步商品消息对象 后续会写到mc-product-base-modules * * @author fangluo * @email fangluo@mabangerp.com * @since 2023/7/26 */ @AllArgsConstructor @NoArgsConstructor @Builder @Data public class SyncProductMessage { /** * 店铺Id */ private Integer shopId; /** * 企业编号 */ private Integer companyId; /** * cloudType */ private String cloudType; /** * 平台id */ private Integer platFormId; /** * 店铺状态 */ private ShopStatus shopStatus; /** * 版本 */ private Long version; /** * ActionType add: 新增,delete: 删除 {@link com.mabang.product.common.enums.ActionTypeEnum} */ private String actionType; /** * sku */ private List<String> primaryIds; /** * detail */ private List<CommonIntermediaDto> productDetailList; /** * 商品详情topic */ private String productDetailTopicName; /** * 校验 * * @return 结果 */ public boolean valid() { return shopId == null || platFormId == null || companyId == null || StringUtils.isBlank(cloudType) || CollectionUtils.isEmpty(primaryIds) || StringUtils.isBlank(actionType) || StringUtils.isBlank(productDetailTopicName); } /** * 最后一批携带的店铺状态对象 */ @Data public static class ShopStatus { /** * 店铺结果 */ private String resultMessage; /** * 店铺状态 */ private Integer shopStatus; } } ``` ## 五. 优化讨论 ### 1. 消息对象是否开放延时重试等级设置? ### 2. 同步店铺消息对象是否开发COS过期天数设置?
thread
2023年8月21日 15:50
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码