Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
Y
yanxuan-wx-store-sharer
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wx
yanxuan-wx-store-sharer
Commits
993e1323
Commit
993e1323
authored
May 15, 2025
by
fanjiaxin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
推客分佣单入库
parent
b0ee19e7
Pipeline
#75499
failed with stages
in 26 seconds
Changes
33
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
33 changed files
with
1722 additions
and
0 deletions
+1722
-0
WeChatCommissionOrderFailRetryJob.java
...ore/sharer/biz/job/WeChatCommissionOrderFailRetryJob.java
+32
-0
WeChatCommissionOrderSyncJob.java
...wx/store/sharer/biz/job/WeChatCommissionOrderSyncJob.java
+34
-0
ICommissionOrderService.java
.../wx/store/sharer/biz/service/ICommissionOrderService.java
+24
-0
CommissionOrderServiceImpl.java
...e/sharer/biz/service/impl/CommissionOrderServiceImpl.java
+378
-0
SharerOrderBuyerMapper.java
...an/wx/store/sharer/dal/mapper/SharerOrderBuyerMapper.java
+11
-0
SharerOrderCommissionFinderMapper.java
.../sharer/dal/mapper/SharerOrderCommissionFinderMapper.java
+12
-0
SharerOrderCommissionMapper.java
.../store/sharer/dal/mapper/SharerOrderCommissionMapper.java
+12
-0
SharerOrderCommissionPromoterAgencyMapper.java
...dal/mapper/SharerOrderCommissionPromoterAgencyMapper.java
+12
-0
SharerOrderCommissionSharerMapper.java
.../sharer/dal/mapper/SharerOrderCommissionSharerMapper.java
+12
-0
SharerOrderCommissionSubAgencyMapper.java
...arer/dal/mapper/SharerOrderCommissionSubAgencyMapper.java
+12
-0
SharerOrderCommissionTalentMapper.java
.../sharer/dal/mapper/SharerOrderCommissionTalentMapper.java
+11
-0
SharerOrderMapper.java
...yanxuan/wx/store/sharer/dal/mapper/SharerOrderMapper.java
+11
-0
SharerOrderProductMapper.java
.../wx/store/sharer/dal/mapper/SharerOrderProductMapper.java
+11
-0
SharerOrderSyncFailMapper.java
...wx/store/sharer/dal/mapper/SharerOrderSyncFailMapper.java
+11
-0
SharerOrder.java
...anxuan/wx/store/sharer/dal/meta/model/po/SharerOrder.java
+57
-0
SharerOrderBuyer.java
...n/wx/store/sharer/dal/meta/model/po/SharerOrderBuyer.java
+35
-0
SharerOrderCommission.java
...store/sharer/dal/meta/model/po/SharerOrderCommission.java
+52
-0
SharerOrderCommissionFinder.java
...sharer/dal/meta/model/po/SharerOrderCommissionFinder.java
+50
-0
SharerOrderCommissionPromoterAgency.java
...al/meta/model/po/SharerOrderCommissionPromoterAgency.java
+57
-0
SharerOrderCommissionSharer.java
...sharer/dal/meta/model/po/SharerOrderCommissionSharer.java
+55
-0
SharerOrderCommissionSubAgency.java
...rer/dal/meta/model/po/SharerOrderCommissionSubAgency.java
+57
-0
SharerOrderCommissionTalent.java
...sharer/dal/meta/model/po/SharerOrderCommissionTalent.java
+55
-0
SharerOrderProduct.java
...wx/store/sharer/dal/meta/model/po/SharerOrderProduct.java
+50
-0
SharerOrderSyncFail.java
...x/store/sharer/dal/meta/model/po/SharerOrderSyncFail.java
+52
-0
WeChatApi.java
...nxuan/wx/store/sharer/integration/constant/WeChatApi.java
+13
-0
WeChatCommissionOrderDetailRequest.java
...tion/handler/impl/WeChatCommissionOrderDetailRequest.java
+55
-0
WeChatCommissionOrderListRequest.java
...ration/handler/impl/WeChatCommissionOrderListRequest.java
+59
-0
WeChatCommssionOrderDetailBO.java
...tegration/meta/model/bo/WeChatCommssionOrderDetailBO.java
+27
-0
WeChatCommssionOrderListBO.java
...integration/meta/model/bo/WeChatCommssionOrderListBO.java
+36
-0
WeChatTimeRangeBO.java
...e/sharer/integration/meta/model/bo/WeChatTimeRangeBO.java
+26
-0
WeChatCommissionOrderDetailVO.java
...egration/meta/model/vo/WeChatCommissionOrderDetailVO.java
+348
-0
WeChatCommissionOrderItemVO.java
...ntegration/meta/model/vo/WeChatCommissionOrderItemVO.java
+25
-0
WeChatCommissionOrderListVO.java
...ntegration/meta/model/vo/WeChatCommissionOrderListVO.java
+30
-0
No files found.
yanxuan-wx-store-sharer-biz/src/main/java/com/netease/yanxuan/wx/store/sharer/biz/job/WeChatCommissionOrderFailRetryJob.java
0 → 100644
View file @
993e1323
package
com
.
netease
.
yanxuan
.
wx
.
store
.
sharer
.
biz
.
job
;
import
com.netease.mail.yanxuan.dschedule.core.biz.model.ReturnT
;
import
com.netease.mail.yanxuan.dschedule.core.handler.IJobHandler
;
import
com.netease.mail.yanxuan.dschedule.core.handler.annotation.JobHandler
;
import
com.netease.yanxuan.wx.store.sharer.biz.service.ICommissionOrderService
;
import
lombok.RequiredArgsConstructor
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.stereotype.Component
;
/**
* @Description 微信小店佣金订单数据同步失败重试任务
* @Author fanjiaxin
* @Date 2025/3/27 19:08
*/
@Slf4j
@RequiredArgsConstructor
@Component
@JobHandler
(
"weChatCommissionOrderFailRetryJob"
)
public
class
WeChatCommissionOrderFailRetryJob
extends
IJobHandler
{
private
final
ICommissionOrderService
iCommissionOrderService
;
@Override
public
ReturnT
<
String
>
execute
(
String
...
strings
)
{
log
.
info
(
"[op:weChatCommissionOrderFailRetryJob] start..."
);
iCommissionOrderService
.
doCommissionOrderFailRetry
();
log
.
info
(
"[op:weChatCommissionOrderFailRetryJob] end..."
);
return
ReturnT
.
SUCCESS
;
}
}
yanxuan-wx-store-sharer-biz/src/main/java/com/netease/yanxuan/wx/store/sharer/biz/job/WeChatCommissionOrderSyncJob.java
0 → 100644
View file @
993e1323
package
com
.
netease
.
yanxuan
.
wx
.
store
.
sharer
.
biz
.
job
;
import
com.netease.mail.yanxuan.dschedule.core.biz.model.ReturnT
;
import
com.netease.mail.yanxuan.dschedule.core.handler.IJobHandler
;
import
com.netease.mail.yanxuan.dschedule.core.handler.annotation.JobHandler
;
import
com.netease.yanxuan.wx.store.sharer.biz.service.ICommissionOrderService
;
import
lombok.RequiredArgsConstructor
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.stereotype.Component
;
/**
* @Description 微信小店佣金单数据同步任务
* @Author fanjiaxin
* @Date 2025/3/27 19:08
*/
@Slf4j
@RequiredArgsConstructor
@Component
@JobHandler
(
"weChatCommissionOrderSyncJob"
)
public
class
WeChatCommissionOrderSyncJob
extends
IJobHandler
{
private
final
ICommissionOrderService
iCommissionOrderService
;
@Override
public
ReturnT
<
String
>
execute
(
String
...
strings
)
{
log
.
info
(
"[op:weChatCommissionOrderSyncJob] start..."
);
Long
syncStartTimestamp
=
iCommissionOrderService
.
getLatestCommissionSyncTimestamp
();
long
syncEndTimestamp
=
System
.
currentTimeMillis
()
/
1000
;
iCommissionOrderService
.
doCommissionOrderSync
(
syncStartTimestamp
,
syncEndTimestamp
);
log
.
info
(
"[op:weChatCommissionOrderSyncJob] end..."
);
return
ReturnT
.
SUCCESS
;
}
}
yanxuan-wx-store-sharer-biz/src/main/java/com/netease/yanxuan/wx/store/sharer/biz/service/ICommissionOrderService.java
0 → 100644
View file @
993e1323
package
com
.
netease
.
yanxuan
.
wx
.
store
.
sharer
.
biz
.
service
;
/**
* @Description 订单-业务层
* @Author fanjiaxin
* @Date 2025/3/10 12:28
*/
public
interface
ICommissionOrderService
{
/**
* 获取最新分佣单同步时间戳
*/
Long
getLatestCommissionSyncTimestamp
();
/**
* 佣金订单列表同步
*/
void
doCommissionOrderSync
(
Long
startTime
,
Long
endTime
);
/**
* 佣金订单失败重试
*/
void
doCommissionOrderFailRetry
();
}
yanxuan-wx-store-sharer-biz/src/main/java/com/netease/yanxuan/wx/store/sharer/biz/service/impl/CommissionOrderServiceImpl.java
0 → 100644
View file @
993e1323
package
com
.
netease
.
yanxuan
.
wx
.
store
.
sharer
.
biz
.
service
.
impl
;
import
com.alibaba.fastjson.JSON
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.netease.yanxuan.wx.store.sharer.biz.service.ICommissionOrderService
;
import
com.netease.yanxuan.wx.store.sharer.dal.mapper.*
;
import
com.netease.yanxuan.wx.store.sharer.dal.meta.model.po.*
;
import
com.netease.yanxuan.wx.store.sharer.integration.config.WeChatConfig
;
import
com.netease.yanxuan.wx.store.sharer.integration.handler.impl.WeChatCommissionOrderDetailRequest
;
import
com.netease.yanxuan.wx.store.sharer.integration.handler.impl.WeChatCommissionOrderListRequest
;
import
com.netease.yanxuan.wx.store.sharer.integration.meta.model.vo.WeChatCommissionOrderDetailVO
;
import
com.netease.yanxuan.wx.store.sharer.integration.meta.model.vo.WeChatCommissionOrderItemVO
;
import
com.netease.yanxuan.wx.store.sharer.integration.meta.model.vo.WeChatCommissionOrderListVO
;
import
lombok.RequiredArgsConstructor
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang.StringUtils
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.CollectionUtils
;
import
java.util.Date
;
/**
* @Description 订单-业务实现类
* @Author fanjiaxin
* @Date 2025/3/10 12:31
*/
@Slf4j
@RequiredArgsConstructor
@Service
public
class
CommissionOrderServiceImpl
implements
ICommissionOrderService
{
private
final
SharerOrderSyncFailMapper
sharerOrderSyncFailMapper
;
private
final
SharerOrderMapper
sharerOrderMapper
;
private
final
SharerOrderProductMapper
sharerOrderProductMapper
;
private
final
SharerOrderCommissionMapper
sharerOrderCommissionMapper
;
private
final
SharerOrderCommissionSharerMapper
sharerOrderCommissionSharerMapper
;
private
final
SharerOrderCommissionSubAgencyMapper
sharerOrderCommissionSubAgencyMapper
;
private
final
SharerOrderCommissionPromoterAgencyMapper
sharerOrderCommissionPromoterAgencyMapper
;
private
final
SharerOrderCommissionFinderMapper
sharerOrderCommissionFinderMapper
;
private
final
SharerOrderCommissionTalentMapper
sharerOrderCommissionTalentMapper
;
private
final
SharerOrderBuyerMapper
sharerOrderBuyerMapper
;
private
final
WeChatConfig
weChatConfig
;
private
final
WeChatCommissionOrderListRequest
weChatCommissionOrderListRequest
;
private
final
WeChatCommissionOrderDetailRequest
weChatCommissionOrderDetailRequest
;
private
static
final
int
COMMISSION_ORDER_SYNC_PAGE_SIZE
=
30
;
private
static
final
int
COMMISSION_ORDER_SYNC_MAX_RETRY_COUNT
=
5
;
@Override
public
Long
getLatestCommissionSyncTimestamp
()
{
// 同步成功最大时间戳记录
LambdaQueryWrapper
<
SharerOrder
>
orderLqw
=
Wrappers
.
lambdaQuery
();
orderLqw
.
select
(
SharerOrder:
:
getOrderCreateTime
);
orderLqw
.
orderByDesc
(
SharerOrder:
:
getOrderCreateTime
);
orderLqw
.
last
(
"LIMIT 1"
);
SharerOrder
sharerOrder
=
sharerOrderMapper
.
selectOne
(
orderLqw
);
long
maxTimeStamp
=
0L
;
if
(
null
!=
sharerOrder
&&
null
!=
sharerOrder
.
getOrderCreateTime
()){
maxTimeStamp
=
Math
.
max
(
maxTimeStamp
,
sharerOrder
.
getOrderCreateTime
().
getTime
()
/
1000
);
}
return
maxTimeStamp
;
}
@Override
public
void
doCommissionOrderSync
(
Long
startTime
,
Long
endTime
)
{
WeChatCommissionOrderListVO
listVO
;
String
nextKey
=
null
;
while
(
true
){
listVO
=
weChatCommissionOrderListRequest
.
handle
(
weChatConfig
.
getShopAppid
(),
startTime
,
endTime
,
nextKey
,
COMMISSION_ORDER_SYNC_PAGE_SIZE
);
if
(
null
==
listVO
||
CollectionUtils
.
isEmpty
(
listVO
.
getList
())){
return
;
}
nextKey
=
listVO
.
getNext_key
();
for
(
WeChatCommissionOrderItemVO
itemVO
:
listVO
.
getList
())
{
// 推客分佣单入库
doSyncCommissionOrder
(
itemVO
.
getOrder_id
(),
itemVO
.
getSku_id
());
}
}
}
@Override
public
void
doCommissionOrderFailRetry
()
{
int
pageNum
=
1
;
int
pageSize
=
10
;
Page
<
SharerOrderSyncFail
>
pageData
;
LambdaQueryWrapper
<
SharerOrderSyncFail
>
failLqw
=
Wrappers
.
lambdaQuery
();
failLqw
.
lt
(
SharerOrderSyncFail:
:
getRetryCount
,
COMMISSION_ORDER_SYNC_MAX_RETRY_COUNT
);
while
(
true
)
{
pageData
=
sharerOrderSyncFailMapper
.
selectPage
(
new
Page
<>(
pageNum
++,
pageSize
),
failLqw
);
if
(
null
==
pageData
||
CollectionUtils
.
isEmpty
(
pageData
.
getRecords
()))
{
// 如果返回值为空,直接终止循环
break
;
}
for
(
SharerOrderSyncFail
fail
:
pageData
.
getRecords
())
{
LambdaQueryWrapper
<
SharerOrder
>
orderLqw
=
Wrappers
.
lambdaQuery
();
orderLqw
.
eq
(
SharerOrder:
:
getOrderId
,
fail
.
getOrderId
());
orderLqw
.
eq
(
SharerOrder:
:
getSkuId
,
fail
.
getSkuId
());
Long
count
=
sharerOrderMapper
.
selectCount
(
orderLqw
);
if
(
null
!=
count
&&
count
>
0
){
// 已经同步,溢出失败记录
sharerOrderSyncFailMapper
.
deleteById
(
fail
.
getId
());
continue
;
}
// 推客分佣单入库
doSyncCommissionOrder
(
fail
.
getOrderId
(),
fail
.
getSkuId
());
}
}
}
/**
* 推客分佣单信息入库
*/
private
void
doSyncCommissionOrder
(
String
orderId
,
String
skuId
)
{
WeChatCommissionOrderDetailVO
detailVO
;
try
{
detailVO
=
weChatCommissionOrderDetailRequest
.
handle
(
orderId
,
skuId
);
}
catch
(
Exception
e
)
{
log
.
error
(
"[op:doSyncCommissionOrder] 推客分佣单获取详情异常"
,
e
);
String
failMsg
=
StringUtils
.
substring
(
e
.
getMessage
(),
0
,
5000
);
doSaveCommissionOrderSyncFail
(
orderId
,
skuId
,
String
.
join
(
"推客分佣单获取详情异常;"
,
failMsg
));
return
;
}
try
{
if
(
null
==
detailVO
){
log
.
info
(
"[op:doSyncCommissionOrder] 推客分佣单不存在"
);
return
;
}
doSaveCommissionOrder
(
detailVO
);
}
catch
(
Exception
e
)
{
log
.
error
(
"[op:doSyncCommissionOrder] 推客分佣单信息入库异常"
,
e
);
String
failMsg
=
StringUtils
.
substring
(
e
.
getMessage
(),
0
,
5000
);
doSaveCommissionOrderSyncFail
(
orderId
,
skuId
,
String
.
join
(
"推客分佣单信息入库异常;"
,
failMsg
));
}
}
/**
* 保存分佣单同步失败记录
*/
private
void
doSaveCommissionOrderSyncFail
(
String
orderId
,
String
skuId
,
String
failMsg
)
{
try
{
LambdaQueryWrapper
<
SharerOrderSyncFail
>
failLqw
=
Wrappers
.
lambdaQuery
();
failLqw
.
eq
(
SharerOrderSyncFail:
:
getOrderId
,
orderId
);
failLqw
.
eq
(
SharerOrderSyncFail:
:
getSkuId
,
skuId
);
failLqw
.
last
(
"LIMIT 1"
);
SharerOrderSyncFail
sharerOrderSyncFail
=
sharerOrderSyncFailMapper
.
selectOne
(
failLqw
);
Date
date
=
new
Date
();
if
(
null
==
sharerOrderSyncFail
){
sharerOrderSyncFail
=
new
SharerOrderSyncFail
();
sharerOrderSyncFail
.
setOrderId
(
orderId
);
sharerOrderSyncFail
.
setSkuId
(
skuId
);
sharerOrderSyncFail
.
setRetryCount
(
0
);
sharerOrderSyncFail
.
setFailMsg
(
failMsg
);
sharerOrderSyncFail
.
setCreateTime
(
date
);
sharerOrderSyncFail
.
setUpdateTime
(
date
);
sharerOrderSyncFailMapper
.
insert
(
sharerOrderSyncFail
);
}
else
{
LambdaUpdateWrapper
<
SharerOrderSyncFail
>
failLuw
=
Wrappers
.
lambdaUpdate
();
failLuw
.
setSql
(
"retry_count = retry_count + 1"
);
failLuw
.
set
(
SharerOrderSyncFail:
:
getFailMsg
,
failMsg
);
failLuw
.
set
(
SharerOrderSyncFail:
:
getUpdateTime
,
date
);
failLuw
.
eq
(
SharerOrderSyncFail:
:
getId
,
sharerOrderSyncFail
.
getId
());
sharerOrderSyncFailMapper
.
update
(
null
,
failLuw
);
}
}
catch
(
Exception
e
)
{
log
.
error
(
"[op:doSaveCommissionOrderSyncFail] 保存分佣单同步失败记录异常"
,
e
);
}
}
/**
* 保存分佣单
*/
private
void
doSaveCommissionOrder
(
WeChatCommissionOrderDetailVO
detailVO
){
if
(
null
==
detailVO
){
return
;
}
SharerOrder
sharerOrder
=
new
SharerOrder
();
sharerOrder
.
setOrderId
(
detailVO
.
getOrder_id
());
sharerOrder
.
setSkuId
(
String
.
valueOf
(
detailVO
.
getSku_id
()));
sharerOrder
.
setCommissionStatus
(
String
.
valueOf
(
detailVO
.
getStatus
()));
String
orderStatus
=
null
;
try
{
orderStatus
=
String
.
valueOf
(
detailVO
.
getOrder_detail
().
getOrder_info
().
getStatus
());
}
catch
(
Exception
e
){
log
.
error
(
"[op:doSaveCommissionOrder] 分佣单状态转换异常"
,
e
);
}
sharerOrder
.
setOrderStatus
(
orderStatus
);
sharerOrder
.
setOrderCreateTime
(
getDate
(
detailVO
.
getCreate_time
()));
sharerOrder
.
setOrderUpdateTime
(
getDate
(
detailVO
.
getUpdate_time
()));
sharerOrder
.
setCreateTime
(
new
Date
());
sharerOrderMapper
.
insert
(
sharerOrder
);
WeChatCommissionOrderDetailVO
.
OrderDetailVO
orderDetail
=
detailVO
.
getOrder_detail
();
if
(
null
==
orderDetail
){
log
.
info
(
"[op:doSaveCommissionOrder] orderDetail is null"
);
return
;
}
// 商品信息
doSaveCommissionOrderProduct
(
orderDetail
,
sharerOrder
.
getId
());
// 分佣信息
doSaveCommissionOrderCommission
(
orderDetail
.
getCommission_info
(),
sharerOrder
.
getId
());
// 买家信息
doSaveCommissionOrderBuyer
(
orderDetail
.
getBuyer_info
(),
sharerOrder
.
getId
());
}
/**
* 商品信息
*/
private
void
doSaveCommissionOrderProduct
(
WeChatCommissionOrderDetailVO
.
OrderDetailVO
detailVO
,
Long
sharerOrderId
){
WeChatCommissionOrderDetailVO
.
ProductInfoVO
productInfo
=
detailVO
.
getProduct_info
();
if
(
null
==
productInfo
){
log
.
info
(
"[op:doSaveCommissionOrderProduct] productInfo is null"
);
return
;
}
SharerOrderProduct
productInfoPO
=
new
SharerOrderProduct
();
productInfoPO
.
setSharerOrderId
(
sharerOrderId
);
productInfoPO
.
setShopAppid
(
null
!=
detailVO
.
getShop_info
()
?
detailVO
.
getShop_info
().
getAppid
()
:
null
);
productInfoPO
.
setProductId
(
productInfo
.
getProduct_id
());
productInfoPO
.
setThumbImg
(
productInfo
.
getThumb_img
());
productInfoPO
.
setActualPayment
(
productInfo
.
getActual_payment
());
productInfoPO
.
setTitle
(
productInfo
.
getTitle
());
sharerOrderProductMapper
.
insert
(
productInfoPO
);
}
/**
* 分佣信息
*/
private
void
doSaveCommissionOrderCommission
(
WeChatCommissionOrderDetailVO
.
CommissionInfoVO
commissionInfo
,
Long
sharerOrderId
){
if
(
null
==
commissionInfo
){
log
.
info
(
"[op:doSaveCommissionOrderCommission] commissionInfo is null"
);
return
;
}
SharerOrderCommission
commissionInfoPO
=
new
SharerOrderCommission
();
commissionInfoPO
.
setSharerOrderId
(
sharerOrderId
);
commissionInfoPO
.
setServiceRatio
(
commissionInfo
.
getService_ratio
());
commissionInfoPO
.
setServiceAmount
(
commissionInfo
.
getService_amount
());
commissionInfoPO
.
setProfitShardingSucTime
(
getDate
(
commissionInfo
.
getProfit_sharding_suc_time
()));
commissionInfoPO
.
setPromotionChannel
(
commissionInfo
.
getPromotion_channel
());
commissionInfoPO
.
setPromotionInfo
(
JSON
.
toJSONString
(
commissionInfo
.
getPromotion_info
()));
sharerOrderCommissionMapper
.
insert
(
commissionInfoPO
);
// 分佣推客
doSaveCommissionOrderCommissionSharer
(
commissionInfo
.
getSharer_info
(),
sharerOrderId
,
commissionInfoPO
.
getId
());
// 分佣带货机构
doSaveCommissionOrderCommissionSubAgency
(
commissionInfo
.
getSub_agency_info
(),
sharerOrderId
,
commissionInfoPO
.
getId
());
// 分佣推客机构
doSaveCommissionOrderCommissionPromoterAgency
(
commissionInfo
.
getPromoter_agency_info
(),
sharerOrderId
,
commissionInfoPO
.
getId
());
// 分佣视频号达人信息
doSaveCommissionOrderCommissionFinder
(
commissionInfo
.
getFinder_info
(),
sharerOrderId
,
commissionInfoPO
.
getId
());
// 分佣新带货达人信息
doSaveCommissionOrderCommissionTalent
(
commissionInfo
.
getTalent_info
(),
sharerOrderId
,
commissionInfoPO
.
getId
());
}
/**
* 分佣推客
*/
private
void
doSaveCommissionOrderCommissionSharer
(
WeChatCommissionOrderDetailVO
.
SharerInfoVO
sharerInfo
,
Long
sharerOrderId
,
Long
sharerOrderCommissionId
){
if
(
null
==
sharerInfo
){
log
.
info
(
"[op:doSaveCommissionOrderCommissionSharer] sharerInfo is null"
);
return
;
}
SharerOrderCommissionSharer
sharerInfoPO
=
new
SharerOrderCommissionSharer
();
sharerInfoPO
.
setSharerOrderId
(
sharerOrderId
);
sharerInfoPO
.
setSharerOrderCommissionId
(
sharerOrderCommissionId
);
sharerInfoPO
.
setSharerAppid
(
sharerInfo
.
getSharer_appid
());
sharerInfoPO
.
setNickname
(
sharerInfo
.
getNickname
());
sharerInfoPO
.
setRatio
(
sharerInfo
.
getRatio
());
sharerInfoPO
.
setAmount
(
sharerInfo
.
getAmount
());
sharerInfoPO
.
setOpensharerid
(
sharerInfo
.
getOpensharerid
());
sharerOrderCommissionSharerMapper
.
insert
(
sharerInfoPO
);
}
/**
* 分佣带货机构
*/
private
void
doSaveCommissionOrderCommissionSubAgency
(
WeChatCommissionOrderDetailVO
.
AgencyInfoVO
agencyInfo
,
Long
sharerOrderId
,
Long
sharerOrderCommissionId
){
if
(
null
==
agencyInfo
){
log
.
info
(
"[op:doSaveCommissionOrderCommissionSubAgency] agencyInfo is null"
);
return
;
}
SharerOrderCommissionSubAgency
agencyInfoPO
=
new
SharerOrderCommissionSubAgency
();
agencyInfoPO
.
setSharerOrderId
(
sharerOrderId
);
agencyInfoPO
.
setSharerOrderCommissionId
(
sharerOrderCommissionId
);
agencyInfoPO
.
setAppid
(
agencyInfo
.
getAppid
());
agencyInfoPO
.
setNickname
(
agencyInfo
.
getNickname
());
agencyInfoPO
.
setRatio
(
agencyInfo
.
getRatio
());
agencyInfoPO
.
setAmount
(
agencyInfo
.
getAmount
());
agencyInfoPO
.
setProfitShardingSucTime
(
getDate
(
agencyInfo
.
getProfit_sharding_suc_time
()));
sharerOrderCommissionSubAgencyMapper
.
insert
(
agencyInfoPO
);
}
/**
* 分佣推客机构
*/
private
void
doSaveCommissionOrderCommissionPromoterAgency
(
WeChatCommissionOrderDetailVO
.
AgencyInfoVO
agencyInfo
,
Long
sharerOrderId
,
Long
sharerOrderCommissionId
){
if
(
null
==
agencyInfo
){
log
.
info
(
"[op:doSaveCommissionOrderCommissionPromoterAgency] agencyInfo is null"
);
return
;
}
SharerOrderCommissionPromoterAgency
agencyInfoPO
=
new
SharerOrderCommissionPromoterAgency
();
agencyInfoPO
.
setSharerOrderId
(
sharerOrderId
);
agencyInfoPO
.
setSharerOrderCommissionId
(
sharerOrderCommissionId
);
agencyInfoPO
.
setAppid
(
agencyInfo
.
getAppid
());
agencyInfoPO
.
setNickname
(
agencyInfo
.
getNickname
());
agencyInfoPO
.
setRatio
(
agencyInfo
.
getRatio
());
agencyInfoPO
.
setAmount
(
agencyInfo
.
getAmount
());
agencyInfoPO
.
setProfitShardingSucTime
(
getDate
(
agencyInfo
.
getProfit_sharding_suc_time
()));
sharerOrderCommissionPromoterAgencyMapper
.
insert
(
agencyInfoPO
);
}
/**
* 分佣视频号达人信息
*/
private
void
doSaveCommissionOrderCommissionFinder
(
WeChatCommissionOrderDetailVO
.
FinderInfoVO
finderInfo
,
Long
sharerOrderId
,
Long
sharerOrderCommissionId
){
if
(
null
==
finderInfo
){
log
.
info
(
"[op:doSaveCommissionOrderCommissionFinder] finderInfo is null"
);
return
;
}
SharerOrderCommissionFinder
finderInfoPO
=
new
SharerOrderCommissionFinder
();
finderInfoPO
.
setSharerOrderId
(
sharerOrderId
);
finderInfoPO
.
setSharerOrderCommissionId
(
sharerOrderCommissionId
);
finderInfoPO
.
setNickname
(
finderInfo
.
getNickname
());
finderInfoPO
.
setRatio
(
finderInfo
.
getRatio
());
finderInfoPO
.
setAmount
(
finderInfo
.
getAmount
());
finderInfoPO
.
setOpenfinderid
(
finderInfo
.
getOpenfinderid
());
sharerOrderCommissionFinderMapper
.
insert
(
finderInfoPO
);
}
/**
* 分佣新带货达人信息
*/
private
void
doSaveCommissionOrderCommissionTalent
(
WeChatCommissionOrderDetailVO
.
TalentInfoVO
talentInfo
,
Long
sharerOrderId
,
Long
sharerOrderCommissionId
){
if
(
null
==
talentInfo
){
log
.
info
(
"[op:doSaveCommissionOrderCommissionTalent] talentInfo is null"
);
return
;
}
SharerOrderCommissionTalent
sharerOrderCommissionTalent
=
new
SharerOrderCommissionTalent
();
sharerOrderCommissionTalent
.
setSharerOrderId
(
sharerOrderId
);
sharerOrderCommissionTalent
.
setSharerOrderCommissionId
(
sharerOrderCommissionId
);
sharerOrderCommissionTalent
.
setTalent_appid
(
talentInfo
.
getTalent_appid
());
sharerOrderCommissionTalent
.
setNickname
(
talentInfo
.
getNickname
());
sharerOrderCommissionTalent
.
setRatio
(
talentInfo
.
getRatio
());
sharerOrderCommissionTalent
.
setAmount
(
talentInfo
.
getAmount
());
sharerOrderCommissionTalent
.
setOpentalentid
(
talentInfo
.
getOpentalentid
());
sharerOrderCommissionTalentMapper
.
insert
(
sharerOrderCommissionTalent
);
}
/**
* 买家信息
*/
private
void
doSaveCommissionOrderBuyer
(
WeChatCommissionOrderDetailVO
.
BuyerInfoVO
buyerInfo
,
Long
sharerOrderId
){
if
(
null
==
buyerInfo
){
log
.
info
(
"[op:doSaveCommissionOrderBuyer] buyerInfo is null"
);
return
;
}
SharerOrderBuyer
buyerInfoPO
=
new
SharerOrderBuyer
();
buyerInfoPO
.
setSharerOrderId
(
sharerOrderId
);
buyerInfoPO
.
setOpenId
(
buyerInfo
.
getOpen_id
());
buyerInfoPO
.
setUnionId
(
buyerInfo
.
getUnion_id
());
sharerOrderBuyerMapper
.
insert
(
buyerInfoPO
);
}
private
Date
getDate
(
Long
wechatTime
){
return
new
Date
(
wechatTime
*
1000
);
}
}
yanxuan-wx-store-sharer-dal/src/main/java/com/netease/yanxuan/wx/store/sharer/dal/mapper/SharerOrderBuyerMapper.java
0 → 100644
View file @
993e1323
package
com
.
netease
.
yanxuan
.
wx
.
store
.
sharer
.
dal
.
mapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.netease.yanxuan.wx.store.sharer.dal.meta.model.po.SharerOrderBuyer
;
/**
* 推客佣金单买家表Mapper
*/
public
interface
SharerOrderBuyerMapper
extends
BaseMapper
<
SharerOrderBuyer
>
{
}
\ No newline at end of file
yanxuan-wx-store-sharer-dal/src/main/java/com/netease/yanxuan/wx/store/sharer/dal/mapper/SharerOrderCommissionFinderMapper.java
0 → 100644
View file @
993e1323
package
com
.
netease
.
yanxuan
.
wx
.
store
.
sharer
.
dal
.
mapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.netease.yanxuan.wx.store.sharer.dal.meta.model.po.SharerOrderCommissionFinder
;
/**
* 推客佣金单分佣视频号达人表Mapper
*/
public
interface
SharerOrderCommissionFinderMapper
extends
BaseMapper
<
SharerOrderCommissionFinder
>
{
}
\ No newline at end of file
yanxuan-wx-store-sharer-dal/src/main/java/com/netease/yanxuan/wx/store/sharer/dal/mapper/SharerOrderCommissionMapper.java
0 → 100644
View file @
993e1323
package
com
.
netease
.
yanxuan
.
wx
.
store
.
sharer
.
dal
.
mapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.netease.yanxuan.wx.store.sharer.dal.meta.model.po.SharerOrderCommission
;
/**
* 推客佣金单分佣表Mapper
*/
public
interface
SharerOrderCommissionMapper
extends
BaseMapper
<
SharerOrderCommission
>
{
}
\ No newline at end of file
yanxuan-wx-store-sharer-dal/src/main/java/com/netease/yanxuan/wx/store/sharer/dal/mapper/SharerOrderCommissionPromoterAgencyMapper.java
0 → 100644
View file @
993e1323
package
com
.
netease
.
yanxuan
.
wx
.
store
.
sharer
.
dal
.
mapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.netease.yanxuan.wx.store.sharer.dal.meta.model.po.SharerOrderCommissionPromoterAgency
;
/**
* 推客佣金单分佣推客机构表Mapper
*/
public
interface
SharerOrderCommissionPromoterAgencyMapper
extends
BaseMapper
<
SharerOrderCommissionPromoterAgency
>
{
}
\ No newline at end of file
yanxuan-wx-store-sharer-dal/src/main/java/com/netease/yanxuan/wx/store/sharer/dal/mapper/SharerOrderCommissionSharerMapper.java
0 → 100644
View file @
993e1323
package
com
.
netease
.
yanxuan
.
wx
.
store
.
sharer
.
dal
.
mapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.netease.yanxuan.wx.store.sharer.dal.meta.model.po.SharerOrderCommissionSharer
;
/**
* 推客佣金单分佣推客表Mapper
*/
public
interface
SharerOrderCommissionSharerMapper
extends
BaseMapper
<
SharerOrderCommissionSharer
>
{
}
\ No newline at end of file
yanxuan-wx-store-sharer-dal/src/main/java/com/netease/yanxuan/wx/store/sharer/dal/mapper/SharerOrderCommissionSubAgencyMapper.java
0 → 100644
View file @
993e1323
package
com
.
netease
.
yanxuan
.
wx
.
store
.
sharer
.
dal
.
mapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.netease.yanxuan.wx.store.sharer.dal.meta.model.po.SharerOrderCommissionSubAgency
;
/**
* 推客佣金单分佣帮卖机构表Mapper
*/
public
interface
SharerOrderCommissionSubAgencyMapper
extends
BaseMapper
<
SharerOrderCommissionSubAgency
>
{
}
\ No newline at end of file
yanxuan-wx-store-sharer-dal/src/main/java/com/netease/yanxuan/wx/store/sharer/dal/mapper/SharerOrderCommissionTalentMapper.java
0 → 100644
View file @
993e1323
package
com
.
netease
.
yanxuan
.
wx
.
store
.
sharer
.
dal
.
mapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.netease.yanxuan.wx.store.sharer.dal.meta.model.po.SharerOrderCommissionTalent
;
/**
* 推客佣金单分佣达人表Mapper
*/
public
interface
SharerOrderCommissionTalentMapper
extends
BaseMapper
<
SharerOrderCommissionTalent
>
{
}
\ No newline at end of file
yanxuan-wx-store-sharer-dal/src/main/java/com/netease/yanxuan/wx/store/sharer/dal/mapper/SharerOrderMapper.java
0 → 100644
View file @
993e1323
package
com
.
netease
.
yanxuan
.
wx
.
store
.
sharer
.
dal
.
mapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.netease.yanxuan.wx.store.sharer.dal.meta.model.po.SharerOrder
;
/**
* 推客佣金单表Mapper
*/
public
interface
SharerOrderMapper
extends
BaseMapper
<
SharerOrder
>
{
}
\ No newline at end of file
yanxuan-wx-store-sharer-dal/src/main/java/com/netease/yanxuan/wx/store/sharer/dal/mapper/SharerOrderProductMapper.java
0 → 100644
View file @
993e1323
package
com
.
netease
.
yanxuan
.
wx
.
store
.
sharer
.
dal
.
mapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.netease.yanxuan.wx.store.sharer.dal.meta.model.po.SharerOrderProduct
;
/**
* 推客佣金单商品表Mapper
*/
public
interface
SharerOrderProductMapper
extends
BaseMapper
<
SharerOrderProduct
>
{
}
\ No newline at end of file
yanxuan-wx-store-sharer-dal/src/main/java/com/netease/yanxuan/wx/store/sharer/dal/mapper/SharerOrderSyncFailMapper.java
0 → 100644
View file @
993e1323
package
com
.
netease
.
yanxuan
.
wx
.
store
.
sharer
.
dal
.
mapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.netease.yanxuan.wx.store.sharer.dal.meta.model.po.SharerOrderSyncFail
;
/**
* 推客佣金单同步失败表Mapper
*/
public
interface
SharerOrderSyncFailMapper
extends
BaseMapper
<
SharerOrderSyncFail
>
{
}
\ No newline at end of file
yanxuan-wx-store-sharer-dal/src/main/java/com/netease/yanxuan/wx/store/sharer/dal/meta/model/po/SharerOrder.java
0 → 100644
View file @
993e1323
package
com
.
netease
.
yanxuan
.
wx
.
store
.
sharer
.
dal
.
meta
.
model
.
po
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
lombok.Data
;
import
java.util.Date
;
/**
* 推客佣金单表
*/
@Data
@TableName
(
"SHARER_ORDER"
)
public
class
SharerOrder
{
/**
* 主键ID
*/
@TableId
(
type
=
IdType
.
AUTO
)
private
Long
id
;
/**
* 订单号
*/
private
String
orderId
;
/**
* 商品skuid
*/
private
String
skuId
;
/**
* 佣金单状态
*/
private
String
commissionStatus
;
/**
* 订单状态
*/
private
String
orderStatus
;
/**
* 订单创建时间
*/
private
Date
orderCreateTime
;
/**
* 订单更新时间
*/
private
Date
orderUpdateTime
;
/**
* 创建时间
*/
private
Date
createTime
;
}
\ No newline at end of file
yanxuan-wx-store-sharer-dal/src/main/java/com/netease/yanxuan/wx/store/sharer/dal/meta/model/po/SharerOrderBuyer.java
0 → 100644
View file @
993e1323
package
com
.
netease
.
yanxuan
.
wx
.
store
.
sharer
.
dal
.
meta
.
model
.
po
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
lombok.Data
;
/**
* 推客佣金单买家表
*/
@Data
@TableName
(
"SHARER_ORDER_BUYER"
)
public
class
SharerOrderBuyer
{
/**
* 主键ID
*/
@TableId
(
type
=
IdType
.
AUTO
)
private
Long
id
;
/**
* 佣金单ID
*/
private
Long
sharerOrderId
;
/**
* 购买者的openid
*/
private
String
openId
;
/**
* 购买者的unionid
*/
private
String
unionId
;
}
\ No newline at end of file
yanxuan-wx-store-sharer-dal/src/main/java/com/netease/yanxuan/wx/store/sharer/dal/meta/model/po/SharerOrderCommission.java
0 → 100644
View file @
993e1323
package
com
.
netease
.
yanxuan
.
wx
.
store
.
sharer
.
dal
.
meta
.
model
.
po
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
lombok.Data
;
import
java.util.Date
;
/**
* 推客佣金单分佣表
*/
@Data
@TableName
(
"SHARER_ORDER_COMMSSION"
)
public
class
SharerOrderCommission
{
/**
* 主键ID
*/
@TableId
(
type
=
IdType
.
AUTO
)
private
Long
id
;
/**
* 佣金单ID
*/
private
Long
sharerOrderId
;
/**
* 服务费率[0, 1000000]
*/
private
Integer
serviceRatio
;
/**
* 服务费金额
*/
private
Integer
serviceAmount
;
/**
* 服务费结算时间
*/
private
Date
profitShardingSucTime
;
/**
* 0-橱窗带货,1-推客带货
*/
private
Integer
promotionChannel
;
/**
* 作为推客的时候,推广的一些参数
*/
private
String
promotionInfo
;
}
\ No newline at end of file
yanxuan-wx-store-sharer-dal/src/main/java/com/netease/yanxuan/wx/store/sharer/dal/meta/model/po/SharerOrderCommissionFinder.java
0 → 100644
View file @
993e1323
package
com
.
netease
.
yanxuan
.
wx
.
store
.
sharer
.
dal
.
meta
.
model
.
po
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
lombok.Data
;
/**
* 推客佣金单分佣视频号达人表
*/
@Data
@TableName
(
"SHARER_ORDER_COMMSSION_FINDER"
)
public
class
SharerOrderCommissionFinder
{
/**
* 主键ID
*/
@TableId
(
type
=
IdType
.
AUTO
)
private
Long
id
;
/**
* 佣金单ID
*/
private
Long
sharerOrderId
;
/**
* 佣金单分佣ID
*/
private
Long
sharerOrderCommissionId
;
/**
* 视频号昵称
*/
private
String
nickname
;
/**
* 佣金率[0, 1000000]
*/
private
Integer
ratio
;
/**
* 佣金
*/
private
Integer
amount
;
/**
* 视频号openfinderid
*/
private
String
openfinderid
;
}
\ No newline at end of file
yanxuan-wx-store-sharer-dal/src/main/java/com/netease/yanxuan/wx/store/sharer/dal/meta/model/po/SharerOrderCommissionPromoterAgency.java
0 → 100644
View file @
993e1323
package
com
.
netease
.
yanxuan
.
wx
.
store
.
sharer
.
dal
.
meta
.
model
.
po
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
lombok.Data
;
import
java.util.Date
;
/**
* 推客佣金单分佣推客机构表
*/
@Data
@TableName
(
"SHARER_ORDER_COMMSSION_PROMOTER_AGENCY"
)
public
class
SharerOrderCommissionPromoterAgency
{
/**
* 主键ID
*/
@TableId
(
type
=
IdType
.
AUTO
)
private
Long
id
;
/**
* 佣金单ID
*/
private
Long
sharerOrderId
;
/**
* 佣金单分佣ID
*/
private
Long
sharerOrderCommissionId
;
/**
* 推客机构appid
*/
private
String
appid
;
/**
* 推客机构昵称
*/
private
String
nickname
;
/**
* 推客机构服务费率[0, 1000000]
*/
private
Integer
ratio
;
/**
* 推客机构服务费
*/
private
Integer
amount
;
/**
* 推客机构服务费结算时间
*/
private
Date
profitShardingSucTime
;
}
\ No newline at end of file
yanxuan-wx-store-sharer-dal/src/main/java/com/netease/yanxuan/wx/store/sharer/dal/meta/model/po/SharerOrderCommissionSharer.java
0 → 100644
View file @
993e1323
package
com
.
netease
.
yanxuan
.
wx
.
store
.
sharer
.
dal
.
meta
.
model
.
po
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
lombok.Data
;
/**
* 推客佣金单分佣推客表
*/
@Data
@TableName
(
"SHARER_ORDER_COMMSSION_SHARER"
)
public
class
SharerOrderCommissionSharer
{
/**
* 主键ID
*/
@TableId
(
type
=
IdType
.
AUTO
)
private
Long
id
;
/**
* 佣金单ID
*/
private
Long
sharerOrderId
;
/**
* 佣金单分佣ID
*/
private
Long
sharerOrderCommissionId
;
/**
* 推客appid
*/
private
String
sharerAppid
;
/**
* 推客昵称
*/
private
String
nickname
;
/**
* 推客佣金率[0, 1000000]
*/
private
Integer
ratio
;
/**
* 推客佣金
*/
private
Integer
amount
;
/**
* 推客的opensharerid
*/
private
String
opensharerid
;
}
\ No newline at end of file
yanxuan-wx-store-sharer-dal/src/main/java/com/netease/yanxuan/wx/store/sharer/dal/meta/model/po/SharerOrderCommissionSubAgency.java
0 → 100644
View file @
993e1323
package
com
.
netease
.
yanxuan
.
wx
.
store
.
sharer
.
dal
.
meta
.
model
.
po
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
lombok.Data
;
import
java.util.Date
;
/**
* 推客佣金单分佣帮卖机构表
*/
@Data
@TableName
(
"SHARER_ORDER_COMMSSION_SUB_AGENCY"
)
public
class
SharerOrderCommissionSubAgency
{
/**
* 主键ID
*/
@TableId
(
type
=
IdType
.
AUTO
)
private
Long
id
;
/**
* 佣金单ID
*/
private
Long
sharerOrderId
;
/**
* 佣金单分佣ID
*/
private
Long
sharerOrderCommissionId
;
/**
* 帮卖机构appid
*/
private
String
appid
;
/**
* 帮卖机构昵称
*/
private
String
nickname
;
/**
* 帮卖机构服务费率[0, 1000000]
*/
private
Integer
ratio
;
/**
* 帮卖机构服务费
*/
private
Integer
amount
;
/**
* 帮卖机构服务费结算时间
*/
private
Date
profitShardingSucTime
;
}
\ No newline at end of file
yanxuan-wx-store-sharer-dal/src/main/java/com/netease/yanxuan/wx/store/sharer/dal/meta/model/po/SharerOrderCommissionTalent.java
0 → 100644
View file @
993e1323
package
com
.
netease
.
yanxuan
.
wx
.
store
.
sharer
.
dal
.
meta
.
model
.
po
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
lombok.Data
;
/**
* 推客佣金单分佣达人表
*/
@Data
@TableName
(
"SHARER_ORDER_COMMSSION_TALENT"
)
public
class
SharerOrderCommissionTalent
{
/**
* 主键ID
*/
@TableId
(
type
=
IdType
.
AUTO
)
private
Long
id
;
/**
* 佣金单ID
*/
private
Long
sharerOrderId
;
/**
* 佣金单分佣ID
*/
private
Long
sharerOrderCommissionId
;
/**
* 新带货达人appid
*/
private
String
talent_appid
;
/**
* 达人昵称
*/
private
String
nickname
;
/**
* 达人佣金率[0, 1000000]
*/
private
Integer
ratio
;
/**
* 达人佣金
*/
private
Integer
amount
;
/**
* 带货助手的opentalentid
*/
private
String
opentalentid
;
}
\ No newline at end of file
yanxuan-wx-store-sharer-dal/src/main/java/com/netease/yanxuan/wx/store/sharer/dal/meta/model/po/SharerOrderProduct.java
0 → 100644
View file @
993e1323
package
com
.
netease
.
yanxuan
.
wx
.
store
.
sharer
.
dal
.
meta
.
model
.
po
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
lombok.Data
;
/**
* 推客佣金单商品表
*/
@Data
@TableName
(
"SHARER_ORDER_PRODUCT"
)
public
class
SharerOrderProduct
{
/**
* 主键ID
*/
@TableId
(
type
=
IdType
.
AUTO
)
private
Long
id
;
/**
* 佣金单ID
*/
private
Long
sharerOrderId
;
/**
* 店铺ID
*/
private
String
shopAppid
;
/**
* 商品id
*/
private
String
productId
;
/**
* sku小图
*/
private
String
thumbImg
;
/**
* 可分佣金额
*/
private
Integer
actualPayment
;
/**
* 商品标题
*/
private
String
title
;
}
\ No newline at end of file
yanxuan-wx-store-sharer-dal/src/main/java/com/netease/yanxuan/wx/store/sharer/dal/meta/model/po/SharerOrderSyncFail.java
0 → 100644
View file @
993e1323
package
com
.
netease
.
yanxuan
.
wx
.
store
.
sharer
.
dal
.
meta
.
model
.
po
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
lombok.Data
;
import
java.util.Date
;
/**
* 推客佣金单同步失败表
*/
@Data
@TableName
(
"SHARER_ORDER_SYNC_FAIL"
)
public
class
SharerOrderSyncFail
{
/**
* 主键ID
*/
@TableId
(
type
=
IdType
.
AUTO
)
private
Long
id
;
/**
* 订单号
*/
private
String
orderId
;
/**
* 商品skuid
*/
private
String
skuId
;
/**
* 重试次数
*/
private
Integer
retryCount
;
/**
* 失败信息
*/
private
String
failMsg
;
/**
* 创建时间
*/
private
Date
createTime
;
/**
* 更新时间
*/
private
Date
updateTime
;
}
\ No newline at end of file
yanxuan-wx-store-sharer-integration/src/main/java/com/netease/yanxuan/wx/store/sharer/integration/constant/WeChatApi.java
View file @
993e1323
...
@@ -68,4 +68,17 @@ public class WeChatApi {
...
@@ -68,4 +68,17 @@ public class WeChatApi {
* 设置推客的单个商品的分佣比例信息
* 设置推客的单个商品的分佣比例信息
*/
*/
public
static
final
String
SET_SHARER_PRODUCT_COMMISSION_INFO
=
"/channels/ec/promoter/set_sharer_product_commission_info"
;
public
static
final
String
SET_SHARER_PRODUCT_COMMISSION_INFO
=
"/channels/ec/promoter/set_sharer_product_commission_info"
;
// -------------------------------------- 分佣单 --------------------------------------
/**
* 获取分佣单列表
*/
public
static
final
String
GET_COMMISSION_ORDER_LIST
=
"/channels/ec/league/headsupplier/order/list/get"
;
/**
* 获取分佣单详情
*/
public
static
final
String
GET_COMMISSION_ORDER_DETAIL
=
"/channels/ec/league/headsupplier/order/get"
;
}
}
yanxuan-wx-store-sharer-integration/src/main/java/com/netease/yanxuan/wx/store/sharer/integration/handler/impl/WeChatCommissionOrderDetailRequest.java
0 → 100644
View file @
993e1323
package
com
.
netease
.
yanxuan
.
wx
.
store
.
sharer
.
integration
.
handler
.
impl
;
import
com.alibaba.fastjson.JSONObject
;
import
com.netease.yanxuan.wx.store.sharer.integration.config.WeChatConfig
;
import
com.netease.yanxuan.wx.store.sharer.integration.constant.WeChatApi
;
import
com.netease.yanxuan.wx.store.sharer.integration.core.WeChatContextHolder
;
import
com.netease.yanxuan.wx.store.sharer.integration.handler.IWeChatRequest
;
import
com.netease.yanxuan.wx.store.sharer.integration.handler.WeChatRestTemplateHandler
;
import
com.netease.yanxuan.wx.store.sharer.integration.meta.model.bo.WeChatCommissionOrderDetailBO
;
import
com.netease.yanxuan.wx.store.sharer.integration.meta.model.vo.WeChatCommissionOrderDetailVO
;
import
lombok.RequiredArgsConstructor
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.http.HttpMethod
;
import
org.springframework.stereotype.Service
;
/**
* @Description 微信小店-分佣单详情请求
* @Author fanjiaxin
* @Date 2025/3/11 17:33
*/
@Slf4j
@Service
@RequiredArgsConstructor
public
class
WeChatCommissionOrderDetailRequest
implements
IWeChatRequest
{
private
final
WeChatContextHolder
weChatContextHolder
;
private
final
WeChatRestTemplateHandler
weChatRestTemplateHandler
;
private
final
WeChatConfig
weChatConfig
;
@Override
public
HttpMethod
getRequestMethod
()
{
return
HttpMethod
.
POST
;
}
@Override
public
String
getRequestUrl
()
{
return
weChatConfig
.
getUrl
()
+
WeChatApi
.
GET_COMMISSION_ORDER_DETAIL
+
"?"
+
WeChatApi
.
WECHAT_REQUEST_TOKEN_FIELD_NAME
+
"="
+
weChatContextHolder
.
getShopAccessToken
();
}
/**
* 处理
*/
public
WeChatCommissionOrderDetailVO
handle
(
String
orderId
,
String
skuId
)
{
WeChatCommissionOrderDetailBO
params
=
WeChatCommissionOrderDetailBO
.
builder
()
.
order_id
(
orderId
)
.
sku_id
(
skuId
)
.
build
();
log
.
info
(
"[op:WeChatCommissionOrderDetailRequest.handle] requestParam={}"
,
JSONObject
.
toJSONString
(
params
));
WeChatCommissionOrderDetailVO
res
=
weChatRestTemplateHandler
.
execute
(
getRequestUrl
(),
getRequestMethod
(),
params
,
WeChatCommissionOrderDetailVO
.
class
);
log
.
info
(
"[op:WeChatCommissionOrderDetailRequest.res] res={}"
,
JSONObject
.
toJSONString
(
res
));
return
res
;
}
}
yanxuan-wx-store-sharer-integration/src/main/java/com/netease/yanxuan/wx/store/sharer/integration/handler/impl/WeChatCommissionOrderListRequest.java
0 → 100644
View file @
993e1323
package
com
.
netease
.
yanxuan
.
wx
.
store
.
sharer
.
integration
.
handler
.
impl
;
import
com.alibaba.fastjson.JSONObject
;
import
com.netease.yanxuan.wx.store.sharer.integration.config.WeChatConfig
;
import
com.netease.yanxuan.wx.store.sharer.integration.constant.WeChatApi
;
import
com.netease.yanxuan.wx.store.sharer.integration.core.WeChatContextHolder
;
import
com.netease.yanxuan.wx.store.sharer.integration.handler.IWeChatRequest
;
import
com.netease.yanxuan.wx.store.sharer.integration.handler.WeChatRestTemplateHandler
;
import
com.netease.yanxuan.wx.store.sharer.integration.meta.model.bo.WeChatCommissionOrderListBO
;
import
com.netease.yanxuan.wx.store.sharer.integration.meta.model.bo.WeChatTimeRangeBO
;
import
com.netease.yanxuan.wx.store.sharer.integration.meta.model.vo.WeChatCommissionOrderListVO
;
import
lombok.RequiredArgsConstructor
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.http.HttpMethod
;
import
org.springframework.stereotype.Service
;
/**
* @Description 微信小店-分佣单列表请求
* @Author fanjiaxin
* @Date 2025/3/11 17:33
*/
@Slf4j
@Service
@RequiredArgsConstructor
public
class
WeChatCommissionOrderListRequest
implements
IWeChatRequest
{
private
final
WeChatContextHolder
weChatContextHolder
;
private
final
WeChatRestTemplateHandler
weChatRestTemplateHandler
;
private
final
WeChatConfig
weChatConfig
;
@Override
public
HttpMethod
getRequestMethod
()
{
return
HttpMethod
.
POST
;
}
@Override
public
String
getRequestUrl
()
{
return
weChatConfig
.
getUrl
()
+
WeChatApi
.
GET_COMMISSION_ORDER_LIST
+
"?"
+
WeChatApi
.
WECHAT_REQUEST_TOKEN_FIELD_NAME
+
"="
+
weChatContextHolder
.
getShopAccessToken
();
}
/**
* 处理
*/
public
WeChatCommissionOrderListVO
handle
(
String
shopAppid
,
Long
startTime
,
Long
endTime
,
String
nextKey
,
Integer
pageSize
)
{
WeChatCommissionOrderListBO
params
=
WeChatCommissionOrderListBO
.
builder
()
.
appid
(
shopAppid
)
.
create_time_range
(
WeChatTimeRangeBO
.
builder
().
start_time
(
startTime
).
end_time
(
endTime
).
build
())
.
next_key
(
nextKey
)
.
page_size
(
pageSize
)
.
build
();
log
.
info
(
"[op:WeChatCommissionOrderListRequest.handle] requestParam={}"
,
JSONObject
.
toJSONString
(
params
));
WeChatCommissionOrderListVO
res
=
weChatRestTemplateHandler
.
execute
(
getRequestUrl
(),
getRequestMethod
(),
params
,
WeChatCommissionOrderListVO
.
class
);
log
.
info
(
"[op:WeChatCommissionOrderListRequest.res] res={}"
,
JSONObject
.
toJSONString
(
res
));
return
res
;
}
}
yanxuan-wx-store-sharer-integration/src/main/java/com/netease/yanxuan/wx/store/sharer/integration/meta/model/bo/WeChatCommssionOrderDetailBO.java
0 → 100644
View file @
993e1323
package
com
.
netease
.
yanxuan
.
wx
.
store
.
sharer
.
integration
.
meta
.
model
.
bo
;
import
lombok.Builder
;
import
lombok.Data
;
import
java.io.Serializable
;
/**
* @Description 分佣单详情-业务对象
* @Author fanjiaxin
* @Date 2025/3/11 18:43
*/
@Data
@Builder
public
class
WeChatCommissionOrderDetailBO
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1996751915518651231L
;
/**
* 订单ID
*/
private
String
order_id
;
/**
* 商品SKU ID
*/
private
String
sku_id
;
}
yanxuan-wx-store-sharer-integration/src/main/java/com/netease/yanxuan/wx/store/sharer/integration/meta/model/bo/WeChatCommssionOrderListBO.java
0 → 100644
View file @
993e1323
package
com
.
netease
.
yanxuan
.
wx
.
store
.
sharer
.
integration
.
meta
.
model
.
bo
;
import
lombok.Builder
;
import
lombok.Data
;
import
java.io.Serializable
;
/**
* @Description 分佣单列表-业务对象
* @Author fanjiaxin
* @Date 2025/3/11 18:43
*/
@Data
@Builder
public
class
WeChatCommissionOrderListBO
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1996751915518651231L
;
/**
* 佣金单所属小店appid
*/
private
String
appid
;
/**
* 创建时间范围
*/
private
WeChatTimeRangeBO
create_time_range
;
/**
* 分页参数,第一页为空,后面返回前面一页返回的数据
*/
private
String
next_key
;
/**
* 一页获取多少个推客,最大 30
*/
private
Integer
page_size
;
}
yanxuan-wx-store-sharer-integration/src/main/java/com/netease/yanxuan/wx/store/sharer/integration/meta/model/bo/WeChatTimeRangeBO.java
0 → 100644
View file @
993e1323
package
com
.
netease
.
yanxuan
.
wx
.
store
.
sharer
.
integration
.
meta
.
model
.
bo
;
import
lombok.Builder
;
import
lombok.Data
;
import
java.io.Serializable
;
/**
* @Description 时间范围-业务对象
* @Author fanjiaxin
* @Date 2025/3/11 18:43
*/
@Data
@Builder
public
class
WeChatTimeRangeBO
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1996751915518651231L
;
/**
* 开始时间,秒级时间戳
*/
private
Long
start_time
;
/**
* 结束时间,秒级时间戳
*/
private
Long
end_time
;
}
yanxuan-wx-store-sharer-integration/src/main/java/com/netease/yanxuan/wx/store/sharer/integration/meta/model/vo/WeChatCommissionOrderDetailVO.java
0 → 100644
View file @
993e1323
package
com
.
netease
.
yanxuan
.
wx
.
store
.
sharer
.
integration
.
meta
.
model
.
vo
;
import
lombok.Data
;
import
lombok.Getter
;
import
lombok.RequiredArgsConstructor
;
/**
* @Description 分佣单列表项-视图对象
* @Author fanjiaxin
* @Date 2025/5/11 19:05
*/
@Data
public
class
WeChatCommissionOrderDetailVO
extends
WeChatCoreVO
{
private
static
final
long
serialVersionUID
=
8529644543147459802L
;
/**
* 订单号
*/
private
String
order_id
;
/**
* 商品skuid
*/
private
Long
sku_id
;
/**
* 秒级时间戳
*/
private
Long
create_time
;
/**
* 秒级时间戳
*/
private
Long
update_time
;
/**
* 佣金单状态,枚举值详情请参考 CommissionOrderStatus
*/
private
Integer
status
;
/**
* 订单详情,结构体详情请参考OrderDetail
*/
private
OrderDetailVO
order_detail
;
@Data
public
class
OrderDetailVO
{
/**
* 小店商家信息,结构体详情请参考BizInfo
*/
private
BizInfoVO
shop_info
;
/**
* 佣金单商品信息,结构体详情请参考 ProductInfo
*/
private
ProductInfoVO
product_info
;
/**
* 订单信息,结构体详情请参考 OrderInfo
*/
private
OrderInfoVO
order_info
;
/**
* 分佣信息,结构体详情请参考 CommissionInfo
*/
private
CommissionInfoVO
commission_info
;
/**
* 买家信息,结构体详情请参考 BuyerInfo
*/
private
BuyerInfoVO
buyer_info
;
}
@Data
public
class
BizInfoVO
{
/**
* 所属小店appid
*/
private
String
appid
;
}
@Data
public
class
ProductInfoVO
{
/**
* 商品id
*/
private
String
product_id
;
/**
* sku小图
*/
private
String
thumb_img
;
/**
* 可分佣金额
*/
private
Integer
actual_payment
;
/**
* 商品标题
*/
private
String
title
;
}
@Data
public
class
OrderInfoVO
{
/**
* 订单状态,枚举值详情请参考OrderStatus
*/
private
Integer
status
;
}
@Data
public
class
CommissionInfoVO
{
/**
* 视频号达人信息,结构体详情请参考 FinderInfo
*/
private
FinderInfoVO
finder_info
;
/**
* 服务费率[0, 1000000]
*/
private
Integer
service_ratio
;
/**
* 服务费金额
*/
private
Integer
service_amount
;
/**
* 服务费结算时间
*/
private
Long
profit_sharding_suc_time
;
/**
* 0-橱窗带货,1-推客带货
*/
private
Integer
promotion_channel
;
/**
* 推客分佣信息,结构体详情请参考 SharerInfo
*/
private
SharerInfoVO
sharer_info
;
/**
* 新带货达人信息,结构体详情请参考 TalentInfo
*/
private
TalentInfoVO
talent_info
;
/**
* 作为推客的时候,推广的一些参数,结构体详情请参考 PromotionInfo
*/
private
PromotionInfoVO
promotion_info
;
/**
* 帮卖机构分佣,结构体详情请参考 AgencyInfo
*/
private
AgencyInfoVO
sub_agency_info
;
/**
* 推客机构分佣,结构体详情请参考 AgencyInfo
*/
private
AgencyInfoVO
promoter_agency_info
;
}
@Data
public
class
BuyerInfoVO
{
/**
* 购买者的openid
*/
private
String
open_id
;
/**
* 购买者的unionid
*/
private
String
union_id
;
}
@Data
public
class
FinderInfoVO
{
/**
* 视频号昵称
*/
private
String
nickname
;
/**
* 佣金率[0, 1000000]
*/
private
Integer
ratio
;
/**
* 佣金
*/
private
Integer
amount
;
/**
* 视频号openfinderid
*/
private
String
openfinderid
;
}
@Data
public
class
SharerInfoVO
{
/**
* 推客appid
*/
private
String
sharer_appid
;
/**
* 推客昵称
*/
private
String
nickname
;
/**
* 佣金率[0, 1000000]
*/
private
Integer
ratio
;
/**
* 佣金
*/
private
Integer
amount
;
/**
* 推客的opensharerid
*/
private
String
opensharerid
;
}
@Data
public
class
TalentInfoVO
{
/**
* 新带货达人appid
*/
private
String
talent_appid
;
/**
* 达人昵称
*/
private
String
nickname
;
/**
* 佣金率[0, 1000000]
*/
private
Integer
ratio
;
/**
* 佣金
*/
private
Integer
amount
;
/**
* 带货助手的opentalentid
*/
private
String
opentalentid
;
}
@Data
public
class
AgencyInfoVO
{
/**
* 机构appid
*/
private
String
appid
;
/**
* 帮卖机构昵称
*/
private
String
nickname
;
/**
* 服务费率[0, 1000000]
*/
private
Integer
ratio
;
/**
* 服务费
*/
private
Integer
amount
;
/**
* 服务费结算时间
*/
private
Long
profit_sharding_suc_time
;
}
@Data
public
class
PromotionInfoVO
{
/**
* 推客推广的类型 【0:无 3:私域商品推广 4:带货内容推广 6:自营内容推广】
*/
private
Integer
channel_type
;
/**
* 推广渠道来自视频号时的视频号信息
*/
private
PromotionFinderInfoVO
finder_info
;
/**
* 推广渠道来自公众号的公众号信息
*/
private
PromotionMpInfoVO
mp_info
;
/**
* 推广渠道来自带货内容推广时的带货助手信息
*/
private
PromotionTalentInfoVO
talent_info
;
}
@Data
public
class
PromotionTalentInfoVO
{
/**
* 带货助手的appid
*/
private
String
talent_appid
;
/**
* 达人昵称
*/
private
String
nickname
;
/**
* 带货助手的opentalentid
*/
private
String
opentalentid
;
}
@Data
public
class
PromotionFinderInfoVO
{
/**
* 视频号 id
*/
private
String
finder_id
;
/**
* 昵称
*/
private
String
nickname
;
/**
* 视频号的openfinderid
*/
private
String
openfinderid
;
}
@Data
public
class
PromotionMpInfoVO
{
/**
* 公众号的 appid
*/
private
String
appid
;
/**
* 昵称
*/
private
String
nickname
;
}
/**
* 佣金单状态枚举类
*/
@Getter
@RequiredArgsConstructor
public
enum
CommissionOrderStatus
{
WAITING_SETTLEMENT
(
20
,
"待结算"
),
SETTLED
(
100
,
"已结算"
),
CANCELED
(
200
,
"取消结算"
);
private
final
Integer
code
;
private
final
String
description
;
}
/**
* 订单状态枚举类
*/
@Getter
@RequiredArgsConstructor
public
enum
OrderStatus
{
PENDING_PAYMENT
(
10
,
"待付款"
),
AWAITING_GIFT_RECEIPT
(
12
,
"待收礼"
),
PENDING_SHIPMENT
(
20
,
"待发货"
),
PARTIALLY_SHIPPED
(
21
,
"部分发货"
),
PENDING_DELIVERY
(
30
,
"待收货"
),
COMPLETED
(
100
,
"完成"
),
CANCELLED_AFTER_FULL_AFTERSALES
(
200
,
"全部商品售后之后,订单取消"
),
CANCELLED_DUE_TO_NON_PAYMENT
(
250
,
"未付款用户主动取消或超时未付款订单自动取消"
);
private
final
Integer
code
;
private
final
String
description
;
}
}
\ No newline at end of file
yanxuan-wx-store-sharer-integration/src/main/java/com/netease/yanxuan/wx/store/sharer/integration/meta/model/vo/WeChatCommissionOrderItemVO.java
0 → 100644
View file @
993e1323
package
com
.
netease
.
yanxuan
.
wx
.
store
.
sharer
.
integration
.
meta
.
model
.
vo
;
import
lombok.Data
;
import
java.io.Serializable
;
/**
* @Description 分佣单列表项-视图对象
* @Author fanjiaxin
* @Date 2025/5/11 19:05
*/
@Data
public
class
WeChatCommissionOrderItemVO
implements
Serializable
{
private
static
final
long
serialVersionUID
=
8529644543147459802L
;
/**
* 订单ID
*/
private
String
order_id
;
/**
* 商品SKU ID
*/
private
String
sku_id
;
}
yanxuan-wx-store-sharer-integration/src/main/java/com/netease/yanxuan/wx/store/sharer/integration/meta/model/vo/WeChatCommissionOrderListVO.java
0 → 100644
View file @
993e1323
package
com
.
netease
.
yanxuan
.
wx
.
store
.
sharer
.
integration
.
meta
.
model
.
vo
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
java.util.List
;
/**
* @Description 分佣单列表-视图对象
* @Author fanjiaxin
* @Date 2025/5/11 19:05
*/
@Data
@EqualsAndHashCode
(
callSuper
=
true
)
public
class
WeChatCommissionOrderListVO
extends
WeChatCoreVO
{
private
static
final
long
serialVersionUID
=
8529644543147459802L
;
/**
* 是否还有剩余商品
*/
private
Boolean
has_more
;
/**
* 分页参数,第一页为空,后面返回前面一页返回的数据
*/
private
String
next_key
;
/**
* 集合
*/
private
List
<
WeChatCommissionOrderItemVO
>
list
;
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment