Files
smartDriveEE/src/main/java/com/rj/service/impl/LbThirdIntegrationConfigServiceImpl.java

771 lines
32 KiB
Java

package com.rj.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.rj.common.LbThirdIntegrationConstants;
import com.rj.dto.LbThirdIntegrationCredentialUpdateRequest;
import com.rj.dto.hxr.BuyerOrderListEndpoint;
import com.rj.dto.hxr.HxrAdminOrderApiContext;
import com.rj.dto.hxr.HxrAdminUserApiContext;
import com.rj.dto.hxr.HxrBuyerOrderApiContext;
import com.rj.dto.hxr.HxrFansApiContext;
import com.rj.dto.hxr.HxrGoodsApiContext;
import com.rj.dto.hxr.HxrMoneyCouponApiContext;
import com.rj.dto.hxr.HxrUserLoginApiContext;
import com.rj.entity.LbThirdIntegrationConfig;
import com.rj.mapper.LbThirdIntegrationConfigMapper;
import com.rj.service.ILbThirdIntegrationConfigService;
import com.rj.util.LbThirdIntegrationConfigUtil;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
import java.time.LocalDateTime;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.UUID;
/**
* 租户第三方集成配置服务实现
*/
@Service
public class LbThirdIntegrationConfigServiceImpl
extends ServiceImpl<LbThirdIntegrationConfigMapper, LbThirdIntegrationConfig>
implements ILbThirdIntegrationConfigService {
@Override
public Map<String, Object> add(LbThirdIntegrationConfig entity) {
Map<String, Object> result = new HashMap<>();
try {
String validationError = validateRequiredForAdd(entity);
if (validationError != null) {
result.put("success", false);
result.put("message", validationError);
return result;
}
String tenantId = entity.getTenantId().trim();
if (this.count(new LambdaQueryWrapper<LbThirdIntegrationConfig>()
.eq(LbThirdIntegrationConfig::getTenantId, tenantId)) > 0) {
result.put("success", false);
result.put("message", "该租户已存在集成配置,不能重复添加");
return result;
}
applyDefaults(entity);
entity.setTenantId(tenantId);
entity.setId(UUID.randomUUID().toString());
LocalDateTime now = LocalDateTime.now();
entity.setCreateTime(now);
entity.setUpdateTime(now);
if (entity.getCredentialVersion() == null) {
entity.setCredentialVersion(1);
}
boolean ok = this.save(entity);
result.put("success", ok);
result.put("message", ok ? "添加成功" : "添加失败");
if (ok) {
result.put("data", maskForResponse(this.getById(entity.getId())));
}
return result;
} catch (Exception e) {
result.put("success", false);
result.put("message", "添加异常:" + e.getMessage());
return result;
}
}
@Override
public Map<String, Object> update(LbThirdIntegrationConfig entity) {
Map<String, Object> result = new HashMap<>();
try {
if (!StringUtils.hasText(entity.getId())) {
result.put("success", false);
result.put("message", "ID不能为空");
return result;
}
LbThirdIntegrationConfig existing = this.getById(entity.getId().trim());
if (existing == null) {
result.put("success", false);
result.put("message", "记录不存在");
return result;
}
if (StringUtils.hasText(entity.getTenantId())
&& !entity.getTenantId().trim().equals(existing.getTenantId())) {
String newTenantId = entity.getTenantId().trim();
long dup = this.count(new LambdaQueryWrapper<LbThirdIntegrationConfig>()
.eq(LbThirdIntegrationConfig::getTenantId, newTenantId)
.ne(LbThirdIntegrationConfig::getId, existing.getId()));
if (dup > 0) {
result.put("success", false);
result.put("message", "目标租户已存在集成配置");
return result;
}
}
boolean credentialUpdated = applyCredentials(entity, existing);
if (credentialUpdated) {
int version = existing.getCredentialVersion() == null ? 1 : existing.getCredentialVersion();
entity.setCredentialVersion(version + 1);
}
entity.setUpdateTime(LocalDateTime.now());
boolean ok = this.updateById(entity);
result.put("success", ok);
result.put("message", ok ? "更新成功" : "更新失败");
if (ok) {
result.put("data", maskForResponse(this.getById(entity.getId())));
}
return result;
} catch (Exception e) {
result.put("success", false);
result.put("message", "更新异常:" + e.getMessage());
return result;
}
}
@Override
public Map<String, Object> deleteById(String id) {
Map<String, Object> result = new HashMap<>();
try {
if (!StringUtils.hasText(id)) {
result.put("success", false);
result.put("message", "ID不能为空");
return result;
}
boolean ok = this.removeById(id.trim());
result.put("success", ok);
result.put("message", ok ? "删除成功" : "删除失败");
return result;
} catch (Exception e) {
result.put("success", false);
result.put("message", "删除异常:" + e.getMessage());
return result;
}
}
@Override
public Map<String, Object> pageQuery(Integer current,
Integer size,
String tenantId,
String providerCode,
Integer enabled) {
Map<String, Object> result = new HashMap<>();
try {
if (current == null || current < 1) {
current = 1;
}
if (size == null || size < 1) {
size = 10;
}
LambdaQueryWrapper<LbThirdIntegrationConfig> q = new LambdaQueryWrapper<>();
if (StringUtils.hasText(tenantId)) {
q.eq(LbThirdIntegrationConfig::getTenantId, tenantId.trim());
}
if (StringUtils.hasText(providerCode)) {
q.eq(LbThirdIntegrationConfig::getProviderCode, providerCode.trim());
}
if (enabled != null) {
q.eq(LbThirdIntegrationConfig::getEnabled, enabled);
}
q.orderByDesc(LbThirdIntegrationConfig::getUpdateTime)
.orderByDesc(LbThirdIntegrationConfig::getCreateTime);
Page<LbThirdIntegrationConfig> page = this.page(new Page<>(current, size), q);
List<LbThirdIntegrationConfig> records = page.getRecords().stream()
.map(this::maskForResponse)
.toList();
result.put("success", true);
result.put("message", "查询成功");
result.put("data", records);
result.put("total", page.getTotal());
result.put("current", page.getCurrent());
result.put("size", page.getSize());
result.put("pages", page.getPages());
return result;
} catch (Exception e) {
result.put("success", false);
result.put("message", "查询异常:" + e.getMessage());
return result;
}
}
@Override
public Map<String, Object> getDetailById(String id) {
Map<String, Object> result = new HashMap<>();
try {
if (!StringUtils.hasText(id)) {
result.put("success", false);
result.put("message", "ID不能为空");
return result;
}
LbThirdIntegrationConfig data = this.getById(id.trim());
if (data == null) {
result.put("success", false);
result.put("message", "记录不存在");
return result;
}
result.put("success", true);
result.put("message", "查询成功");
result.put("data", maskForResponse(data));
return result;
} catch (Exception e) {
result.put("success", false);
result.put("message", "查询异常:" + e.getMessage());
return result;
}
}
@Override
public Map<String, Object> getCredentialStatusByTenantId(String tenantId) {
Map<String, Object> result = new HashMap<>();
try {
if (!StringUtils.hasText(tenantId)) {
result.put("success", false);
result.put("message", "tenantId不能为空");
return result;
}
LbThirdIntegrationConfig config = getByTenantIdOrNull(tenantId.trim());
if (config == null) {
result.put("success", false);
result.put("message", "该租户未配置第三方集成");
return result;
}
result.put("success", true);
result.put("message", "查询成功");
result.put("data", buildCredentialStatus(config, true));
return result;
} catch (Exception e) {
result.put("success", false);
result.put("message", "查询异常:" + e.getMessage());
return result;
}
}
@Override
public Map<String, Object> updateCredentialByTenantId(
String tenantId, LbThirdIntegrationCredentialUpdateRequest request) {
Map<String, Object> result = new HashMap<>();
try {
if (!StringUtils.hasText(tenantId)) {
result.put("success", false);
result.put("message", "tenantId不能为空");
return result;
}
if (request == null) {
result.put("success", false);
result.put("message", "请求体不能为空");
return result;
}
LbThirdIntegrationConfig existing = getByTenantIdOrNull(tenantId.trim());
if (existing == null) {
result.put("success", false);
result.put("message", "该租户未配置第三方集成,请先新增配置");
return result;
}
String validationError = validateCredentialUpdateRequest(request);
if (validationError != null) {
result.put("success", false);
result.put("message", validationError);
return result;
}
LambdaUpdateWrapper<LbThirdIntegrationConfig> uw = new LambdaUpdateWrapper<>();
uw.eq(LbThirdIntegrationConfig::getId, existing.getId());
applyCredentialUpdateWrapper(uw, request);
if (request.getCredentialExpireTime() != null) {
uw.set(LbThirdIntegrationConfig::getCredentialExpireTime, request.getCredentialExpireTime());
}
if (StringUtils.hasText(request.getUpdatedBy())) {
uw.set(LbThirdIntegrationConfig::getUpdatedBy, request.getUpdatedBy().trim());
}
int version = existing.getCredentialVersion() == null ? 1 : existing.getCredentialVersion();
uw.set(LbThirdIntegrationConfig::getCredentialVersion, version + 1);
uw.set(LbThirdIntegrationConfig::getUpdateTime, LocalDateTime.now());
boolean ok = this.update(uw);
result.put("success", ok);
result.put("message", ok ? "凭证更新成功" : "凭证更新失败");
if (ok) {
LbThirdIntegrationConfig latest = this.getById(existing.getId());
result.put("data", buildCredentialStatus(latest, true));
}
return result;
} catch (Exception e) {
result.put("success", false);
result.put("message", "凭证更新异常:" + e.getMessage());
return result;
}
}
@Override
public Optional<HxrGoodsApiContext> resolveGoodsApiContext(String tenantId, String tokenOverride) {
if (!StringUtils.hasText(tenantId)) {
return Optional.empty();
}
LbThirdIntegrationConfig config = getByTenantIdOrNull(tenantId.trim());
if (config == null) {
return Optional.empty();
}
if (config.getEnabled() == null || config.getEnabled() != 1) {
return Optional.empty();
}
String token = StringUtils.hasText(tokenOverride)
? tokenOverride.trim()
: config.getGoodsApiToken();
String appStr = config.getGoodsApiAppStr();
if (!StringUtils.hasText(token) || !StringUtils.hasText(appStr)) {
return Optional.empty();
}
try {
return Optional.of(new HxrGoodsApiContext(
LbThirdIntegrationConfigUtil.resolveGoodsApiBaseUrl(config),
LbThirdIntegrationConfigUtil.resolveBuyApiUrl(config),
LbThirdIntegrationConfigUtil.resolveGoodsPageLimit(config),
LbThirdIntegrationConfigUtil.resolveGoodsApiOrigin(config),
LbThirdIntegrationConfigUtil.resolveGoodsApiReferer(config),
token.trim(),
appStr.trim()));
} catch (IllegalStateException e) {
return Optional.empty();
}
}
@Override
public Optional<HxrAdminUserApiContext> resolveAdminUserApiContext(String tenantId) {
if (!StringUtils.hasText(tenantId)) {
return Optional.empty();
}
LbThirdIntegrationConfig config = getByTenantIdOrNull(tenantId.trim());
if (config == null) {
return Optional.empty();
}
if (config.getEnabled() == null || config.getEnabled() != 1) {
return Optional.empty();
}
String cookieHeader = LbThirdIntegrationConfigUtil.resolveCookieHeader(config);
if (!StringUtils.hasText(cookieHeader)) {
return Optional.empty();
}
try {
return Optional.of(new HxrAdminUserApiContext(
LbThirdIntegrationConfigUtil.resolveUserSelectBaseUrl(config),
LbThirdIntegrationConfigUtil.resolveUserUpdateUrl(config),
LbThirdIntegrationConfigUtil.resolveUserPageLimit(config),
cookieHeader.trim(),
LbThirdIntegrationConfigUtil.resolveUserReferer(config)));
} catch (IllegalStateException e) {
return Optional.empty();
}
}
@Override
public Optional<HxrUserLoginApiContext> resolveUserLoginApiContext(String tenantId) {
if (!StringUtils.hasText(tenantId)) {
return Optional.empty();
}
LbThirdIntegrationConfig config = getByTenantIdOrNull(tenantId.trim());
if (config == null) {
return Optional.empty();
}
if (config.getEnabled() == null || config.getEnabled() != 1) {
return Optional.empty();
}
try {
String appStr = config.getGoodsApiAppStr();
return Optional.of(new HxrUserLoginApiContext(
LbThirdIntegrationConfigUtil.resolveLoginApiUrl(config),
LbThirdIntegrationConfigUtil.resolveGoodsApiOrigin(config),
LbThirdIntegrationConfigUtil.resolveGoodsApiReferer(config),
StringUtils.hasText(appStr) ? appStr.trim() : null));
} catch (IllegalStateException e) {
return Optional.empty();
}
}
@Override
public Optional<HxrBuyerOrderApiContext> resolveBuyerOrderApiContext(String tenantId, String token) {
if (!StringUtils.hasText(tenantId) || !StringUtils.hasText(token)) {
return Optional.empty();
}
LbThirdIntegrationConfig config = getByTenantIdOrNull(tenantId.trim());
if (config == null) {
return Optional.empty();
}
if (config.getEnabled() == null || config.getEnabled() != 1) {
return Optional.empty();
}
String appStr = config.getGoodsApiAppStr();
if (!StringUtils.hasText(appStr)) {
return Optional.empty();
}
try {
BuyerOrderListEndpoint endpoint =
LbThirdIntegrationConfigUtil.resolveBuyerOrderListEndpoint(config);
return Optional.of(new HxrBuyerOrderApiContext(
endpoint.baseUrl(),
endpoint.pageLimit(),
endpoint.cate(),
endpoint.type(),
LbThirdIntegrationConfigUtil.resolveGoodsApiOrigin(config),
LbThirdIntegrationConfigUtil.resolveGoodsApiReferer(config),
token.trim(),
appStr.trim()));
} catch (IllegalStateException e) {
return Optional.empty();
}
}
@Override
public Optional<HxrFansApiContext> resolveFansApiContext(String tenantId, String token) {
if (!StringUtils.hasText(tenantId) || !StringUtils.hasText(token)) {
return Optional.empty();
}
LbThirdIntegrationConfig config = getByTenantIdOrNull(tenantId.trim());
if (config == null) {
return Optional.empty();
}
if (config.getEnabled() == null || config.getEnabled() != 1) {
return Optional.empty();
}
String appStr = config.getGoodsApiAppStr();
if (!StringUtils.hasText(appStr)) {
return Optional.empty();
}
try {
return Optional.of(new HxrFansApiContext(
LbThirdIntegrationConfigUtil.resolveFansApiBaseUrl(config),
LbThirdIntegrationConfigUtil.resolveFansPageLimit(config),
LbThirdIntegrationConfigUtil.resolveGoodsApiOrigin(config),
LbThirdIntegrationConfigUtil.resolveGoodsApiReferer(config),
token.trim(),
appStr.trim()));
} catch (IllegalStateException e) {
return Optional.empty();
}
}
@Override
public Optional<HxrMoneyCouponApiContext> resolveMoneyCouponApiContext(String tenantId, String token) {
if (!StringUtils.hasText(tenantId) || !StringUtils.hasText(token)) {
return Optional.empty();
}
LbThirdIntegrationConfig config = getByTenantIdOrNull(tenantId.trim());
if (config == null) {
return Optional.empty();
}
if (config.getEnabled() == null || config.getEnabled() != 1) {
return Optional.empty();
}
String appStr = config.getGoodsApiAppStr();
if (!StringUtils.hasText(appStr)) {
return Optional.empty();
}
try {
return Optional.of(new HxrMoneyCouponApiContext(
LbThirdIntegrationConfigUtil.resolveMoneyCouponApiBaseUrl(config),
LbThirdIntegrationConfigUtil.resolveMoneyCouponListLimit(config),
LbThirdIntegrationConfigUtil.resolveGoodsApiOrigin(config),
LbThirdIntegrationConfigUtil.resolveGoodsApiReferer(config),
token.trim(),
appStr.trim()));
} catch (IllegalStateException e) {
return Optional.empty();
}
}
@Override
public Optional<HxrAdminOrderApiContext> resolveAdminOrderApiContext(String tenantId) {
return resolveAdminOrderApiContext(tenantId, false);
}
@Override
public Optional<HxrAdminOrderApiContext> resolveAdminBuyerOrderApiContext(String tenantId) {
return resolveAdminOrderApiContext(tenantId, true);
}
private Optional<HxrAdminOrderApiContext> resolveAdminOrderApiContext(String tenantId, boolean buyerOrderList) {
if (!StringUtils.hasText(tenantId)) {
return Optional.empty();
}
LbThirdIntegrationConfig config = getByTenantIdOrNull(tenantId.trim());
if (config == null) {
return Optional.empty();
}
if (config.getEnabled() == null || config.getEnabled() != 1) {
return Optional.empty();
}
String cookieHeader = LbThirdIntegrationConfigUtil.resolveCookieHeader(config);
if (!StringUtils.hasText(cookieHeader)) {
return Optional.empty();
}
try {
String baseUrl = buyerOrderList
? LbThirdIntegrationConfigUtil.resolveBuyerOrderListBaseUrl(config)
: LbThirdIntegrationConfigUtil.resolveOrderSelectBaseUrl(config);
int pageLimit = buyerOrderList
? LbThirdIntegrationConfigUtil.resolveBuyerOrderListLimit(config)
: LbThirdIntegrationConfigUtil.resolveOrderPageLimit(config);
return Optional.of(new HxrAdminOrderApiContext(
baseUrl,
pageLimit,
cookieHeader.trim(),
LbThirdIntegrationConfigUtil.resolveOrderReferer(config)));
} catch (IllegalStateException e) {
return Optional.empty();
}
}
private LbThirdIntegrationConfig getByTenantIdOrNull(String tenantId) {
return this.getOne(new LambdaQueryWrapper<LbThirdIntegrationConfig>()
.eq(LbThirdIntegrationConfig::getTenantId, tenantId)
.last("LIMIT 1"));
}
private static String validateCredentialUpdateRequest(LbThirdIntegrationCredentialUpdateRequest request) {
boolean hasUpdate = StringUtils.hasText(request.getCookie())
|| StringUtils.hasText(request.getPhpsid())
|| StringUtils.hasText(request.getGoodsApiToken())
|| StringUtils.hasText(request.getGoodsApiAppStr());
boolean hasClear = Boolean.TRUE.equals(request.getClearCookie())
|| Boolean.TRUE.equals(request.getClearPhpsid())
|| Boolean.TRUE.equals(request.getClearGoodsApiToken())
|| Boolean.TRUE.equals(request.getClearGoodsApiAppStr());
if (!hasUpdate && !hasClear) {
return "请至少提供一项凭证,或指定一项 clear* 清除操作";
}
if (Boolean.TRUE.equals(request.getClearCookie()) && StringUtils.hasText(request.getCookie())) {
return "clearCookie 与 cookie 不能同时传";
}
if (Boolean.TRUE.equals(request.getClearPhpsid()) && StringUtils.hasText(request.getPhpsid())) {
return "clearPhpsid 与 phpsid 不能同时传";
}
if (Boolean.TRUE.equals(request.getClearGoodsApiToken()) && StringUtils.hasText(request.getGoodsApiToken())) {
return "clearGoodsApiToken 与 goodsApiToken 不能同时传";
}
if (Boolean.TRUE.equals(request.getClearGoodsApiAppStr()) && StringUtils.hasText(request.getGoodsApiAppStr())) {
return "clearGoodsApiAppStr 与 goodsApiAppStr 不能同时传";
}
return null;
}
private void applyCredentialUpdateWrapper(
LambdaUpdateWrapper<LbThirdIntegrationConfig> uw,
LbThirdIntegrationCredentialUpdateRequest request) {
if (Boolean.TRUE.equals(request.getClearCookie())) {
uw.set(LbThirdIntegrationConfig::getCookie, null);
} else if (StringUtils.hasText(request.getCookie())) {
uw.set(LbThirdIntegrationConfig::getCookie, request.getCookie().trim());
}
if (Boolean.TRUE.equals(request.getClearPhpsid())) {
uw.set(LbThirdIntegrationConfig::getPhpsid, null);
} else if (StringUtils.hasText(request.getPhpsid())) {
uw.set(LbThirdIntegrationConfig::getPhpsid, request.getPhpsid().trim());
}
if (Boolean.TRUE.equals(request.getClearGoodsApiToken())) {
uw.set(LbThirdIntegrationConfig::getGoodsApiToken, null);
} else if (StringUtils.hasText(request.getGoodsApiToken())) {
uw.set(LbThirdIntegrationConfig::getGoodsApiToken, request.getGoodsApiToken().trim());
}
if (Boolean.TRUE.equals(request.getClearGoodsApiAppStr())) {
uw.set(LbThirdIntegrationConfig::getGoodsApiAppStr, null);
} else if (StringUtils.hasText(request.getGoodsApiAppStr())) {
uw.set(LbThirdIntegrationConfig::getGoodsApiAppStr, request.getGoodsApiAppStr().trim());
}
}
private Map<String, Object> buildCredentialStatus(LbThirdIntegrationConfig config, boolean includePlaintext) {
Map<String, Object> data = new HashMap<>();
data.put("id", config.getId());
data.put("tenantId", config.getTenantId());
data.put("providerCode", config.getProviderCode());
data.put("authType", config.getAuthType());
data.put("cookieConfigured", isConfigured(config.getCookie()));
data.put("phpsidConfigured", isConfigured(config.getPhpsid()));
data.put("goodsApiTokenConfigured", isConfigured(config.getGoodsApiToken()));
data.put("goodsApiAppStrConfigured", isConfigured(config.getGoodsApiAppStr()));
data.put("credentialVersion", config.getCredentialVersion());
data.put("credentialExpireTime", config.getCredentialExpireTime());
data.put("lastVerifiedTime", config.getLastVerifiedTime());
data.put("lastVerifiedOk", config.getLastVerifiedOk());
data.put("updateTime", config.getUpdateTime());
if (includePlaintext) {
data.put("cookie", config.getCookie());
data.put("phpsid", config.getPhpsid());
data.put("goodsApiToken", config.getGoodsApiToken());
data.put("goodsApiAppStr", config.getGoodsApiAppStr());
}
return data;
}
private String validateRequiredForAdd(LbThirdIntegrationConfig entity) {
if (entity == null) {
return "请求体不能为空";
}
if (!StringUtils.hasText(entity.getTenantId())) {
return "tenantId不能为空";
}
if (!StringUtils.hasText(entity.getAdminBaseUrl())) {
return "adminBaseUrl不能为空";
}
if (!StringUtils.hasText(entity.getWebBaseUrl())) {
return "webBaseUrl不能为空";
}
return null;
}
private void applyDefaults(LbThirdIntegrationConfig entity) {
if (!StringUtils.hasText(entity.getProviderCode())) {
entity.setProviderCode(LbThirdIntegrationConstants.PROVIDER_HXR_ADMIN);
}
if (entity.getEnabled() == null) {
entity.setEnabled(1);
}
if (!StringUtils.hasText(entity.getOrderSelectPath())) {
entity.setOrderSelectPath(LbThirdIntegrationConstants.DEFAULT_ORDER_SELECT_PATH);
}
if (!StringUtils.hasText(entity.getUserSelectPath())) {
entity.setUserSelectPath(LbThirdIntegrationConstants.DEFAULT_USER_SELECT_PATH);
}
if (!StringUtils.hasText(entity.getUserUpdatePath())) {
entity.setUserUpdatePath(LbThirdIntegrationConstants.DEFAULT_USER_UPDATE_PATH);
}
if (!StringUtils.hasText(entity.getGoodsApiPath())) {
entity.setGoodsApiPath(LbThirdIntegrationConstants.DEFAULT_GOODS_API_PATH);
}
if (!StringUtils.hasText(entity.getBuyApiPath())) {
entity.setBuyApiPath(LbThirdIntegrationConstants.DEFAULT_BUY_API_PATH);
}
if (!StringUtils.hasText(entity.getBuyerOrderListPath())) {
entity.setBuyerOrderListPath(LbThirdIntegrationConstants.DEFAULT_BUYER_ORDER_LIST_PATH);
}
if (!StringUtils.hasText(entity.getFansApiPath())) {
entity.setFansApiPath(LbThirdIntegrationConstants.DEFAULT_FANS_API_PATH);
}
if (!StringUtils.hasText(entity.getLoginApiPath())) {
entity.setLoginApiPath(LbThirdIntegrationConstants.DEFAULT_LOGIN_API_PATH);
}
if (entity.getOrderPageLimit() == null) {
entity.setOrderPageLimit(LbThirdIntegrationConstants.DEFAULT_ORDER_PAGE_LIMIT);
}
if (entity.getBuyerOrderListLimit() == null) {
entity.setBuyerOrderListLimit(LbThirdIntegrationConstants.DEFAULT_BUYER_ORDER_LIST_LIMIT);
}
if (entity.getUserPageLimit() == null) {
entity.setUserPageLimit(LbThirdIntegrationConstants.DEFAULT_USER_PAGE_LIMIT);
}
if (entity.getGoodsPageLimit() == null) {
entity.setGoodsPageLimit(LbThirdIntegrationConstants.DEFAULT_GOODS_PAGE_LIMIT);
}
if (entity.getFansPageLimit() == null) {
entity.setFansPageLimit(LbThirdIntegrationConstants.DEFAULT_FANS_PAGE_LIMIT);
}
if (!StringUtils.hasText(entity.getAuthType())) {
entity.setAuthType(LbThirdIntegrationConstants.AUTH_COOKIE_PHPSID);
}
if (entity.getSyncOrderResellEnabled() == null) {
entity.setSyncOrderResellEnabled(0);
}
if (entity.getSyncOrderUnpaidEnabled() == null) {
entity.setSyncOrderUnpaidEnabled(0);
}
if (entity.getSyncOrderPaidEnabled() == null) {
entity.setSyncOrderPaidEnabled(0);
}
if (entity.getSyncUserEnabled() == null) {
entity.setSyncUserEnabled(0);
}
if (entity.getCredentialVersion() == null) {
entity.setCredentialVersion(1);
}
}
/**
* 更新场景下保留未传凭证字段的已有值。
*
* @return 是否有任一凭证字段被更新
*/
private boolean applyCredentials(LbThirdIntegrationConfig entity, LbThirdIntegrationConfig existing) {
boolean updated = false;
if (StringUtils.hasText(entity.getCookie())) {
entity.setCookie(entity.getCookie().trim());
updated = true;
} else if (existing != null) {
entity.setCookie(existing.getCookie());
}
if (StringUtils.hasText(entity.getPhpsid())) {
entity.setPhpsid(entity.getPhpsid().trim());
updated = true;
} else if (existing != null) {
entity.setPhpsid(existing.getPhpsid());
}
if (StringUtils.hasText(entity.getGoodsApiToken())) {
entity.setGoodsApiToken(entity.getGoodsApiToken().trim());
updated = true;
} else if (existing != null) {
entity.setGoodsApiToken(existing.getGoodsApiToken());
}
if (StringUtils.hasText(entity.getGoodsApiAppStr())) {
entity.setGoodsApiAppStr(entity.getGoodsApiAppStr().trim());
updated = true;
} else if (existing != null) {
entity.setGoodsApiAppStr(existing.getGoodsApiAppStr());
}
return updated;
}
private LbThirdIntegrationConfig maskForResponse(LbThirdIntegrationConfig entity) {
if (entity == null) {
return null;
}
entity.setCookieConfigured(isConfigured(entity.getCookie()));
entity.setPhpsidConfigured(isConfigured(entity.getPhpsid()));
entity.setGoodsApiTokenConfigured(isConfigured(entity.getGoodsApiToken()));
entity.setGoodsApiAppStrConfigured(isConfigured(entity.getGoodsApiAppStr()));
entity.setCookie(null);
entity.setPhpsid(null);
entity.setGoodsApiToken(null);
entity.setGoodsApiAppStr(null);
return entity;
}
private static boolean isConfigured(String value) {
return StringUtils.hasText(value);
}
}