背景
当前微信小店的实现(视频号小店)在 WxJava 中以 weixin-java-channel 模块存在,与视频号直播、联盟分销等功能耦合在一起。
问题
- 模块语义混淆:
channel 模块既包含视频号直播数据(WxChannelLiveDashboardService、WxFinderLiveService)、联盟/分销功能(League 系列),又包含微信小店的商品/订单/售后等功能
- 功能耦合:微信小店的商品管理(Product)、售后管理(AfterSale)、资金管理(Fund)、店铺主页(HomePage)与视频号能力混在同一模块
- 命名不直观:对只想使用微信小店的开发者来说,
weixin-java-channel 这个名字无法直观反映模块功能
- 依赖臃肿:若只需微信小店能力,当前必须引入整个 channel 模块及其所有传递依赖
建议
将 weixin-java-channel 拆分为两个独立模块:
方案 A:按能力拆分
| 新模块 |
包含内容 |
weixin-java-store |
微信小店(商品/订单/售后/资金/品牌/类目/优惠券/店铺管理) |
weixin-java-channel(保留) |
视频号(直播数据/联盟/分销/引流组件/Compass数据分析) |
方案 B:微信小店独立,直播归并
| 新模块 |
包含内容 |
weixin-java-store |
微信小店全栈(商品/订单/售后/资金/主页/品牌/类目/优惠券/仓库/物流) |
weixin-java-live |
视频号直播数据 + FinderLive + Compass + 联盟/分销 |
优点
- 语义清晰:模块名直接反映功能,开发者快速定位所需能力
- 按需引入:只需微信小店的场景可单独依赖
weixin-java-store,减少依赖体积
- 职责单一:各模块边界清晰,利于维护和扩展
- 利于社区贡献:独立模块降低贡献者门槛
影响范围
需要重构的主要内容(预计):
weixin-java-channel/src/main/java/me/chanjar/weixin/channel/ 下的代码按上述方案重分布
- Maven
pom.xml 增加 weixin-java-store 模块
- 现有
WxChannelService 等跨能力聚合接口需要拆分或重构
相关模块
当前 weixin-java-channel 下应拆分的 Service:
- 微信小店:WxChannelProductService、WxChannelOrderService、WxChannelAfterSaleService、WxChannelFundService、WxChannelBrandService、WxChannelCategoryService、WxChannelCouponService、WxChannelBasicService、WxStoreHomePageService、WxChannelAddressService、WxChannelWarehouseService、WxChannelFreightTemplateService、WxChannelSharerService、WxChannelVipService、WxStoreCooperationService
- 视频号:WxChannelLiveDashboardService、WxFinderLiveService、WxLeagueService、WxChannelCompassService、WxLeadComponentService
建议优先考虑 方案 A,改动范围相对可控。
背景
当前微信小店的实现(视频号小店)在 WxJava 中以
weixin-java-channel模块存在,与视频号直播、联盟分销等功能耦合在一起。问题
channel模块既包含视频号直播数据(WxChannelLiveDashboardService、WxFinderLiveService)、联盟/分销功能(League 系列),又包含微信小店的商品/订单/售后等功能weixin-java-channel这个名字无法直观反映模块功能建议
将
weixin-java-channel拆分为两个独立模块:方案 A:按能力拆分
weixin-java-storeweixin-java-channel(保留)方案 B:微信小店独立,直播归并
weixin-java-storeweixin-java-live优点
weixin-java-store,减少依赖体积影响范围
需要重构的主要内容(预计):
weixin-java-channel/src/main/java/me/chanjar/weixin/channel/下的代码按上述方案重分布pom.xml增加weixin-java-store模块WxChannelService等跨能力聚合接口需要拆分或重构相关模块
当前
weixin-java-channel下应拆分的 Service:建议优先考虑 方案 A,改动范围相对可控。