配置迁移到数据库表里
This commit is contained in:
@@ -3,6 +3,7 @@ package com.rj.service.impl;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.rj.dto.hxr.HxrAdminOrderApiContext;
|
||||
import com.rj.dto.hxr.HxrOrderRow;
|
||||
import com.rj.dto.hxr.HxrOrderSelectResponse;
|
||||
import com.rj.entity.LbDepartmentUser;
|
||||
@@ -35,9 +36,6 @@ import java.util.stream.Collectors;
|
||||
@Service
|
||||
public class LbOrderRowServiceImpl extends ServiceImpl<LbOrderRowMapper, LbOrderRow> implements ILbOrderRowService {
|
||||
|
||||
/** 与 hxr.admin.order-select-url 中 {@code limit} 一致,用于判断是否还有下一页 */
|
||||
private static final int HXR_ORDER_PAGE_SIZE = 90;
|
||||
|
||||
/** 从第三方同步的订单明细默认 data_type */
|
||||
private static final String SYNC_DATA_TYPE_DETAIL = "detail_data";
|
||||
|
||||
@@ -59,6 +57,9 @@ public class LbOrderRowServiceImpl extends ServiceImpl<LbOrderRowMapper, LbOrder
|
||||
@Autowired
|
||||
private HxrAdminOrderSelectService hxrAdminOrderSelectService;
|
||||
|
||||
@Autowired
|
||||
private ILbThirdIntegrationConfigService lbThirdIntegrationConfigService;
|
||||
|
||||
@Autowired
|
||||
private ILbDepartmentUserService lbDepartmentUserService;
|
||||
|
||||
@@ -290,6 +291,18 @@ public class LbOrderRowServiceImpl extends ServiceImpl<LbOrderRowMapper, LbOrder
|
||||
|
||||
|
||||
String tid = tenantId.trim();
|
||||
Optional<HxrAdminOrderApiContext> apiContextOpt =
|
||||
lbThirdIntegrationConfigService.resolveAdminOrderApiContext(tid);
|
||||
if (apiContextOpt.isEmpty()) {
|
||||
result.put("success", false);
|
||||
result.put("message",
|
||||
"未找到该租户的第三方集成配置,或配置未启用、URL/凭证不完整(请检查 lb_third_integration_config)");
|
||||
result.put("synced", 0);
|
||||
return result;
|
||||
}
|
||||
HxrAdminOrderApiContext apiContext = apiContextOpt.get();
|
||||
int orderPageLimit = apiContext.pageLimit() > 0 ? apiContext.pageLimit() : 90;
|
||||
|
||||
String previousTenantId = TenantContextHolder.getTenantId();
|
||||
TenantContextHolder.setTenantId(tid);
|
||||
try {
|
||||
@@ -298,11 +311,12 @@ public class LbOrderRowServiceImpl extends ServiceImpl<LbOrderRowMapper, LbOrder
|
||||
int totalSynced = 0;
|
||||
while (true) {
|
||||
Optional<HxrOrderSelectResponse> opt =
|
||||
fetchHxrOrderPage(buyTimeStart, buyTimeEnd, isResell, hxrOrderStatus, page);
|
||||
fetchHxrOrderPage(buyTimeStart, buyTimeEnd, isResell, hxrOrderStatus, page, apiContext);
|
||||
if (opt.isEmpty()) {
|
||||
if (page == 1) {
|
||||
result.put("success", false);
|
||||
result.put("message", "未拉取到订单(请检查 hxr.admin cookie/phpsid、网络或后台返回)");
|
||||
result.put("message",
|
||||
"未拉取到订单(请检查 lb_third_integration_config 中 cookie/phpsid、URL 或网络)");
|
||||
result.put("synced", 0);
|
||||
return result;
|
||||
}
|
||||
@@ -346,7 +360,7 @@ public class LbOrderRowServiceImpl extends ServiceImpl<LbOrderRowMapper, LbOrder
|
||||
}
|
||||
totalSynced += upserted;
|
||||
|
||||
if (rows.size() < HXR_ORDER_PAGE_SIZE ) {
|
||||
if (rows.size() < orderPageLimit) {
|
||||
break;
|
||||
}
|
||||
page++;
|
||||
@@ -389,17 +403,21 @@ public class LbOrderRowServiceImpl extends ServiceImpl<LbOrderRowMapper, LbOrder
|
||||
String buyTimeEnd,
|
||||
Integer isResell,
|
||||
Integer hxrOrderStatus,
|
||||
int page)
|
||||
int page,
|
||||
HxrAdminOrderApiContext apiContext)
|
||||
throws Exception {
|
||||
if (hxrOrderStatus != null) {
|
||||
if (hxrOrderStatus == 0) {
|
||||
return hxrAdminOrderSelectService.fetchUnpaidOrderSelect(buyTimeStart, buyTimeEnd, page);
|
||||
return hxrAdminOrderSelectService.fetchUnpaidOrderSelect(
|
||||
buyTimeStart, buyTimeEnd, page, apiContext);
|
||||
}
|
||||
if (hxrOrderStatus == 1) {
|
||||
return hxrAdminOrderSelectService.fetchPaidOrderSelect(buyTimeStart, buyTimeEnd, page);
|
||||
return hxrAdminOrderSelectService.fetchPaidOrderSelect(
|
||||
buyTimeStart, buyTimeEnd, page, apiContext);
|
||||
}
|
||||
}
|
||||
return hxrAdminOrderSelectService.fetchOrderSelect(buyTimeStart, buyTimeEnd, isResell, page);
|
||||
return hxrAdminOrderSelectService.fetchOrderSelect(
|
||||
buyTimeStart, buyTimeEnd, isResell, page, apiContext);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user