Commit cc453a8c by fanjiaxin

推客分佣单入库

parent a0528cf4
Pipeline #75635 passed with stages
in 1 minute 8 seconds
...@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; ...@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; 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.biz.service.ICommissionOrderService;
import com.netease.yanxuan.wx.store.sharer.common.exception.BizException;
import com.netease.yanxuan.wx.store.sharer.dal.mapper.*; 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.dal.meta.model.po.*;
import com.netease.yanxuan.wx.store.sharer.integration.handler.impl.WeChatCommissionOrderDetailRequest; import com.netease.yanxuan.wx.store.sharer.integration.handler.impl.WeChatCommissionOrderDetailRequest;
...@@ -54,13 +55,13 @@ public class CommissionOrderServiceImpl implements ICommissionOrderService { ...@@ -54,13 +55,13 @@ public class CommissionOrderServiceImpl implements ICommissionOrderService {
public Long getLatestCommissionSyncTimestamp() { public Long getLatestCommissionSyncTimestamp() {
// 同步成功最大时间戳记录 // 同步成功最大时间戳记录
LambdaQueryWrapper<SharerOrder> orderLqw = Wrappers.lambdaQuery(); LambdaQueryWrapper<SharerOrder> orderLqw = Wrappers.lambdaQuery();
orderLqw.select(SharerOrder::getOrderCreateTime); orderLqw.select(SharerOrder::getOrderUpdateTime);
orderLqw.orderByDesc(SharerOrder::getOrderCreateTime); orderLqw.orderByDesc(SharerOrder::getOrderUpdateTime);
orderLqw.last("LIMIT 1"); orderLqw.last("LIMIT 1");
SharerOrder sharerOrder = sharerOrderMapper.selectOne(orderLqw); SharerOrder sharerOrder = sharerOrderMapper.selectOne(orderLqw);
long maxTimeStamp = 0L; long maxTimeStamp = 0L;
if (null != sharerOrder && null != sharerOrder.getOrderCreateTime()) { if (null != sharerOrder && null != sharerOrder.getOrderUpdateTime()) {
maxTimeStamp = Math.max(maxTimeStamp, sharerOrder.getOrderCreateTime().getTime() / 1000); maxTimeStamp = Math.max(maxTimeStamp, sharerOrder.getOrderUpdateTime().getTime() / 1000);
} }
return maxTimeStamp; return maxTimeStamp;
} }
...@@ -89,7 +90,7 @@ public class CommissionOrderServiceImpl implements ICommissionOrderService { ...@@ -89,7 +90,7 @@ public class CommissionOrderServiceImpl implements ICommissionOrderService {
@Override @Override
public void doCommissionOrderFailRetry() { public void doCommissionOrderFailRetry() {
int pageNum = 1; int pageNum = 1;
int pageSize = 10; int pageSize = 20;
Page<SharerOrderSyncFail> pageData; Page<SharerOrderSyncFail> pageData;
LambdaQueryWrapper<SharerOrderSyncFail> failLqw = Wrappers.lambdaQuery(); LambdaQueryWrapper<SharerOrderSyncFail> failLqw = Wrappers.lambdaQuery();
failLqw.lt(SharerOrderSyncFail::getRetryCount, COMMISSION_ORDER_SYNC_MAX_RETRY_COUNT); failLqw.lt(SharerOrderSyncFail::getRetryCount, COMMISSION_ORDER_SYNC_MAX_RETRY_COUNT);
...@@ -100,15 +101,6 @@ public class CommissionOrderServiceImpl implements ICommissionOrderService { ...@@ -100,15 +101,6 @@ public class CommissionOrderServiceImpl implements ICommissionOrderService {
break; break;
} }
for (SharerOrderSyncFail fail : pageData.getRecords()) { 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()); doSyncCommissionOrder(fail.getOrderId(), fail.getSkuId());
} }
...@@ -120,26 +112,30 @@ public class CommissionOrderServiceImpl implements ICommissionOrderService { ...@@ -120,26 +112,30 @@ public class CommissionOrderServiceImpl implements ICommissionOrderService {
*/ */
private void doSyncCommissionOrder(String orderId, String skuId) { private void doSyncCommissionOrder(String orderId, String skuId) {
WeChatCommissionOrderDetailVO detailVO; WeChatCommissionOrderDetailVO detailVO;
WeChatCommissionOrderDetailVO.CommssionOrderDetailVO commssionOrder;
try { try {
detailVO = weChatCommissionOrderDetailRequest.handle(orderId, skuId); 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) { if (null == detailVO) {
log.info("[op:doSyncCommissionOrder] 推客分佣单不存在"); log.info("[op:doSyncCommissionOrder] 推客分佣单不存在");
return; throw new BizException("推客分佣单获取详情为空");
} }
WeChatCommissionOrderDetailVO.CommssionOrderDetailVO commssionOrder = detailVO.getCommssion_order(); commssionOrder = detailVO.getCommssion_order();
if (null == commssionOrder) { if (null == commssionOrder) {
log.info("[op:doSyncCommissionOrder] 推客分佣单明细不存在"); log.info("[op:doSyncCommissionOrder] 推客分佣单明细不存在");
return; throw new BizException("推客分佣单获取详情为空");
} }
log.info("[op:doSyncCommissionOrder] 推客分佣单获取详情 detailVO:{}", JSON.toJSONString(commssionOrder)); log.info("[op:doSyncCommissionOrder] 推客分佣单获取详情 detailVO:{}", JSON.toJSONString(commssionOrder));
} catch (Exception e) {
log.error("[op:doSyncCommissionOrder] 推客分佣单获取详情异常", e);
String failMsg = StringUtils.substring(e.getMessage(), 0, 5000);
doSaveCommissionOrderSyncFail(orderId, skuId, String.join("推客分佣单获取详情异常;", failMsg));
return;
}
try {
// 数据入库
doSaveCommissionOrder(commssionOrder); doSaveCommissionOrder(commssionOrder);
// 成功后删除错误记录
doDeleteCommissionOrderSyncFail(orderId, skuId);
} catch (Exception e) { } catch (Exception e) {
log.error("[op:doSyncCommissionOrder] 推客分佣单信息入库异常", e); log.error("[op:doSyncCommissionOrder] 推客分佣单信息入库异常", e);
String failMsg = StringUtils.substring(e.getMessage(), 0, 5000); String failMsg = StringUtils.substring(e.getMessage(), 0, 5000);
...@@ -150,6 +146,16 @@ public class CommissionOrderServiceImpl implements ICommissionOrderService { ...@@ -150,6 +146,16 @@ public class CommissionOrderServiceImpl implements ICommissionOrderService {
/** /**
* 保存分佣单同步失败记录 * 保存分佣单同步失败记录
*/ */
private void doDeleteCommissionOrderSyncFail(String orderId, String skuId) {
LambdaQueryWrapper<SharerOrderSyncFail> failLqw = Wrappers.lambdaQuery();
failLqw.eq(SharerOrderSyncFail::getOrderId, orderId);
failLqw.eq(SharerOrderSyncFail::getSkuId, skuId);
sharerOrderSyncFailMapper.delete(failLqw);
}
/**
* 保存分佣单同步失败记录
*/
private void doSaveCommissionOrderSyncFail(String orderId, String skuId, String failMsg) { private void doSaveCommissionOrderSyncFail(String orderId, String skuId, String failMsg) {
try { try {
LambdaQueryWrapper<SharerOrderSyncFail> failLqw = Wrappers.lambdaQuery(); LambdaQueryWrapper<SharerOrderSyncFail> failLqw = Wrappers.lambdaQuery();
......
...@@ -45,7 +45,7 @@ public class WeChatCommissionOrderListRequest implements IWeChatRequest { ...@@ -45,7 +45,7 @@ public class WeChatCommissionOrderListRequest implements IWeChatRequest {
*/ */
public WeChatCommissionOrderListVO handle(Long startTime, Long endTime, String nextKey, Integer pageSize) { public WeChatCommissionOrderListVO handle(Long startTime, Long endTime, String nextKey, Integer pageSize) {
WeChatCommissionOrderListBO params = WeChatCommissionOrderListBO.builder() WeChatCommissionOrderListBO params = WeChatCommissionOrderListBO.builder()
.create_time_range(WeChatTimeRangeBO.builder().start_time(startTime).end_time(endTime).build()) .update_time_range(WeChatTimeRangeBO.builder().start_time(startTime).end_time(endTime).build())
.next_key(nextKey) .next_key(nextKey)
.page_size(pageSize) .page_size(pageSize)
.build(); .build();
......
...@@ -16,9 +16,9 @@ public class WeChatCommissionOrderListBO implements Serializable { ...@@ -16,9 +16,9 @@ public class WeChatCommissionOrderListBO implements Serializable {
private static final long serialVersionUID = 1996751915518651231L; private static final long serialVersionUID = 1996751915518651231L;
/** /**
* 创建时间范围 * 佣金单更新时间范围
*/ */
private WeChatTimeRangeBO create_time_range; private WeChatTimeRangeBO update_time_range;
/** /**
* 是否还有剩余商品 * 是否还有剩余商品
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment