清除配置文件无用的配置
This commit is contained in:
parent
d9dd08e6d8
commit
0e94c5d24e
@ -103,5 +103,8 @@ public class CommonConstant {
|
|||||||
public static final Integer Sta_Separate_Undone = 2;
|
public static final Integer Sta_Separate_Undone = 2;
|
||||||
public static final Integer Sta_Separate_Fail = 3;
|
public static final Integer Sta_Separate_Fail = 3;
|
||||||
|
|
||||||
|
// 最低平台内部配送费 配置key
|
||||||
|
public static final String Inner_Min_DeliveryFee_Key = "inner_min_delivery_fee";
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -37,4 +37,5 @@ public class RedisConstant {
|
|||||||
public static final String SF_Order_Proc_WillExpire_Key = ConstantRedis.Cache_NameSpace + "sf_order_proc_will_expire_key__";
|
public static final String SF_Order_Proc_WillExpire_Key = ConstantRedis.Cache_NameSpace + "sf_order_proc_will_expire_key__";
|
||||||
|
|
||||||
public static final String Order_Pay_Retry_Count_Key = ConstantRedis.Cache_NameSpace + "order_pay_retry_count:";
|
public static final String Order_Pay_Retry_Count_Key = ConstantRedis.Cache_NameSpace + "order_pay_retry_count:";
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -6,6 +6,7 @@ import lombok.Data;
|
|||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
import org.springframework.data.util.Pair;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.math.RoundingMode;
|
import java.math.RoundingMode;
|
||||||
@ -116,9 +117,9 @@ public class LklSeparateDTO implements java.io.Serializable {
|
|||||||
dto2.getTotalSeparateAmount(), dto2.getShippingFee(), dto2.getLklRatio(),
|
dto2.getTotalSeparateAmount(), dto2.getShippingFee(), dto2.getLklRatio(),
|
||||||
dto2.getMchRatio(), dto2.getPlatRatio());
|
dto2.getMchRatio(), dto2.getPlatRatio());
|
||||||
|
|
||||||
boolean result2 = dto2.calcOnCanAmount();
|
Pair<Boolean, String> result2 = dto2.calcOnCanSeparateAmount();
|
||||||
logger.info("分账计算结果: {}", (result2 ? "成功" : "失败"));
|
logger.info("分账计算结果: {}", (result2.getFirst() ? "成功" : "失败"));
|
||||||
if (result2) {
|
if (result2.getFirst()) {
|
||||||
logger.info("分账结果: 总金额={}分, 拉卡拉={}分, 配送费={}分, 可分账={}分, 参考可分账={}分, 商户={}分, 平台={}分, 一级代理商={}分, 二级代理商={}分",
|
logger.info("分账结果: 总金额={}分, 拉卡拉={}分, 配送费={}分, 可分账={}分, 参考可分账={}分, 商户={}分, 平台={}分, 一级代理商={}分, 二级代理商={}分",
|
||||||
dto2.getTotalSeparateAmount(), dto2.getLklAmount(), dto2.getShippingFee(), dto2.getCanSeparateAmount(), dto2.getRefCanSeparateAmount(),
|
dto2.getTotalSeparateAmount(), dto2.getLklAmount(), dto2.getShippingFee(), dto2.getCanSeparateAmount(), dto2.getRefCanSeparateAmount(),
|
||||||
dto2.getMchAmount(), dto2.getPlatAmount(), dto2.getAgent1stAmount(), dto2.getAgent2ndAmount());
|
dto2.getMchAmount(), dto2.getPlatAmount(), dto2.getAgent1stAmount(), dto2.getAgent2ndAmount());
|
||||||
@ -182,15 +183,15 @@ public class LklSeparateDTO implements java.io.Serializable {
|
|||||||
* 5. 按优先级计算各参与方分账金额(商户 > 平台 > 一级代理商 > 二级代理商)
|
* 5. 按优先级计算各参与方分账金额(商户 > 平台 > 一级代理商 > 二级代理商)
|
||||||
* 6. 确保总额平衡并保障各参与方分账比例
|
* 6. 确保总额平衡并保障各参与方分账比例
|
||||||
*
|
*
|
||||||
* @return 分账结果是否成功
|
* @return Pair<Boolean, String> 分账结果是否成功和失败的原因
|
||||||
*/
|
*/
|
||||||
public boolean calcOnCanAmount() {
|
public Pair<Boolean, String> calcOnCanSeparateAmount() {
|
||||||
// 设置分账计算方法类型
|
// 设置分账计算方法类型
|
||||||
isBasedOnTotalAmount = false;
|
isBasedOnTotalAmount = false;
|
||||||
|
|
||||||
// 检查前提条件
|
// 检查前提条件
|
||||||
if (!validateInputs()) {
|
if (!validateInputs()) {
|
||||||
return false;
|
return Pair.of(false, "分账参数不全");
|
||||||
}
|
}
|
||||||
|
|
||||||
logger.info("开始基于可分账金额的分账计算,总金额={}分,配送费={}分", totalSeparateAmount, shippingFee);
|
logger.info("开始基于可分账金额的分账计算,总金额={}分,配送费={}分", totalSeparateAmount, shippingFee);
|
||||||
@ -201,8 +202,9 @@ public class LklSeparateDTO implements java.io.Serializable {
|
|||||||
// 计算可分账金额
|
// 计算可分账金额
|
||||||
calculateCanSeparateAmount();
|
calculateCanSeparateAmount();
|
||||||
if (canSeparateAmount <= 0) {
|
if (canSeparateAmount <= 0) {
|
||||||
logger.info("分账计算失败:可分账金额必须大于0,当前值={}", canSeparateAmount);
|
String errorMsg = "分账计算失败:可分账金额必须大于0,当前值=" + canSeparateAmount;
|
||||||
return false;
|
logger.info(errorMsg);
|
||||||
|
return Pair.of(false, errorMsg);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 检查并应用参考可分账金额
|
// 检查并应用参考可分账金额
|
||||||
@ -220,9 +222,10 @@ public class LklSeparateDTO implements java.io.Serializable {
|
|||||||
// 保障各参与方分账比例
|
// 保障各参与方分账比例
|
||||||
guaranteeRatios();
|
guaranteeRatios();
|
||||||
|
|
||||||
logger.info("基于可分账金额的分账计算完成:拉卡拉={}分, 平台={}分, 一级代理商={}分, 二级代理商={}分, 商户={}分",
|
String successMsg = String.format("基于可分账金额的分账计算完成:拉卡拉=%d分, 平台=%d分, 一级代理商=%d分, 二级代理商=%d分, 商户=%d分",
|
||||||
lklAmount, platAmount, agent1stAmount, agent2ndAmount, mchAmount);
|
lklAmount, platAmount, agent1stAmount, agent2ndAmount, mchAmount);
|
||||||
return true;
|
logger.info(successMsg);
|
||||||
|
return Pair.of(true, successMsg);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -236,15 +239,15 @@ public class LklSeparateDTO implements java.io.Serializable {
|
|||||||
* 5. 按优先级计算各参与方分账金额(平台 > 一级代理商 > 二级代理商 > 商户),基于可分账金额进行分账
|
* 5. 按优先级计算各参与方分账金额(平台 > 一级代理商 > 二级代理商 > 商户),基于可分账金额进行分账
|
||||||
* 6. 确保总额平衡并保障各参与方分账比例
|
* 6. 确保总额平衡并保障各参与方分账比例
|
||||||
*
|
*
|
||||||
* @return 分账结果是否成功
|
* @return Pair<Boolean, String> 分账结果是否成功和失败的原因
|
||||||
*/
|
*/
|
||||||
public boolean calcOnTotalAmount() {
|
public Pair<Boolean, String> calcOnTotalAmount() {
|
||||||
// 设置分账计算方法类型
|
// 设置分账计算方法类型
|
||||||
isBasedOnTotalAmount = true;
|
isBasedOnTotalAmount = true;
|
||||||
|
|
||||||
// 检查前提条件
|
// 检查前提条件
|
||||||
if (!validateInputsForTotalAmount()) {
|
if (!validateInputsForTotalAmount()) {
|
||||||
return false;
|
return Pair.of(false, "分账参数不全");
|
||||||
}
|
}
|
||||||
|
|
||||||
logger.info("开始基于总金额的分账计算,总金额={}分,配送费={}分", totalSeparateAmount, shippingFee);
|
logger.info("开始基于总金额的分账计算,总金额={}分,配送费={}分", totalSeparateAmount, shippingFee);
|
||||||
@ -255,8 +258,9 @@ public class LklSeparateDTO implements java.io.Serializable {
|
|||||||
// 计算可分账金额
|
// 计算可分账金额
|
||||||
calculateCanSeparateAmount();
|
calculateCanSeparateAmount();
|
||||||
if (canSeparateAmount <= 0) {
|
if (canSeparateAmount <= 0) {
|
||||||
logger.info("基于总金额的分账计算失败:可分账金额必须大于0,当前值={}", canSeparateAmount);
|
String errorMsg = "基于总金额的分账计算失败:可分账金额必须大于0,当前值=" + canSeparateAmount;
|
||||||
return false;
|
logger.info(errorMsg);
|
||||||
|
return Pair.of(false, errorMsg);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 调整分账比例
|
// 调整分账比例
|
||||||
@ -274,9 +278,10 @@ public class LklSeparateDTO implements java.io.Serializable {
|
|||||||
// 保障各参与方分账比例(忽略商户比例保障)
|
// 保障各参与方分账比例(忽略商户比例保障)
|
||||||
guaranteeRatiosForTotalAmount();
|
guaranteeRatiosForTotalAmount();
|
||||||
|
|
||||||
logger.info("基于总金额的分账计算完成:拉卡拉={}分, 平台={}分, 一级代理商={}分, 二级代理商={}分, 商户={}分",
|
String successMsg = String.format("基于总金额的分账计算完成:拉卡拉=%d分, 平台=%d分, 一级代理商=%d分, 二级代理商=%d分, 商户=%d分",
|
||||||
lklAmount, platAmount, agent1stAmount, agent2ndAmount, mchAmount);
|
lklAmount, platAmount, agent1stAmount, agent2ndAmount, mchAmount);
|
||||||
return true;
|
logger.info(successMsg);
|
||||||
|
return Pair.of(true, successMsg);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -257,4 +257,5 @@ public class CommonService {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -39,4 +39,19 @@ public interface AccountBaseConfigService extends IBaseService<AccountBaseConfig
|
|||||||
|
|
||||||
boolean getTradeModePlantform();
|
boolean getTradeModePlantform();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取系统配置
|
||||||
|
*
|
||||||
|
* @param configKey
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
String getSystemConfig(String configKey);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取平台内部最低配送费,单位(分)
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
Integer getInnerMinDeliveryFee();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -7,6 +7,7 @@ import cn.hutool.core.util.ObjectUtil;
|
|||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import cn.hutool.json.JSONUtil;
|
import cn.hutool.json.JSONUtil;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
|
import com.suisung.mall.common.constant.CommonConstant;
|
||||||
import com.suisung.mall.common.constant.RedisConstant;
|
import com.suisung.mall.common.constant.RedisConstant;
|
||||||
import com.suisung.mall.common.feignService.AccountService;
|
import com.suisung.mall.common.feignService.AccountService;
|
||||||
import com.suisung.mall.common.modules.account.AccountBaseConfig;
|
import com.suisung.mall.common.modules.account.AccountBaseConfig;
|
||||||
@ -226,6 +227,43 @@ public class AccountBaseConfigServiceImpl extends BaseServiceImpl<AccountBaseCon
|
|||||||
return getTradeMode();
|
return getTradeMode();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取系统配置值
|
||||||
|
* <p>
|
||||||
|
* 根据配置键获取对应的配置值,如果配置值为空则返回空字符串。
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @param configKey 配置键
|
||||||
|
* @return 配置值,如果找不到或为空则返回空字符串
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public String getSystemConfig(String configKey) {
|
||||||
|
// 参数校验
|
||||||
|
if (StrUtil.isBlank(configKey)) {
|
||||||
|
log.warn("[系统配置] 参数校验失败:配置键不能为空");
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
String configValue = accountService.getAccountBaseConfigValue(configKey);
|
||||||
|
return StrUtil.blankToDefault(configValue, "0");
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error("[系统配置] 获取配置值异常,configKey={}", configKey, e);
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取平台内部最低配送费,单位(分)
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public Integer getInnerMinDeliveryFee() {
|
||||||
|
String v = getSystemConfig(CommonConstant.Inner_Min_DeliveryFee_Key);
|
||||||
|
return NumberUtil.isNumber(v) ? Convert.toInt(v) : 0;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 交易模式 2直接交易:商家直接收款; 1担保交易:平台收款,平台和商家结算。
|
* 交易模式 2直接交易:商家直接收款; 1担保交易:平台收款,平台和商家结算。
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -28,10 +28,8 @@ import com.suisung.mall.common.modules.store.ShopStoreBase;
|
|||||||
import com.suisung.mall.common.utils.DateTimeUtils;
|
import com.suisung.mall.common.utils.DateTimeUtils;
|
||||||
import com.suisung.mall.common.utils.I18nUtil;
|
import com.suisung.mall.common.utils.I18nUtil;
|
||||||
import com.suisung.mall.common.utils.RestTemplateHttpUtil;
|
import com.suisung.mall.common.utils.RestTemplateHttpUtil;
|
||||||
|
import com.suisung.mall.pay.service.AccountBaseConfigService;
|
||||||
import com.suisung.mall.pay.service.LakalaPayService;
|
import com.suisung.mall.pay.service.LakalaPayService;
|
||||||
import com.suisung.mall.pay.service.LklLedgerMemberService;
|
|
||||||
import com.suisung.mall.pay.service.LklLedgerMerReceiverBindService;
|
|
||||||
import com.suisung.mall.pay.service.LklLedgerReceiverService;
|
|
||||||
import com.suisung.mall.pay.utils.LakalaUtil;
|
import com.suisung.mall.pay.utils.LakalaUtil;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
@ -81,14 +79,9 @@ public class LakalaPayServiceImpl implements LakalaPayService {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private ShopService shopService;
|
private ShopService shopService;
|
||||||
|
|
||||||
|
@Lazy
|
||||||
@Autowired
|
@Autowired
|
||||||
private LklLedgerMemberService lklLedgerMemberService;
|
private AccountBaseConfigService accountBaseConfigService;
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private LklLedgerReceiverService lklLedgerReceiverService;
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private LklLedgerMerReceiverBindService lklLedgerMerReceiverBindService;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 初始化 拉卡拉SDK
|
* 初始化 拉卡拉SDK
|
||||||
@ -254,6 +247,10 @@ public class LakalaPayServiceImpl implements LakalaPayService {
|
|||||||
return respBody;
|
return respBody;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 平台最低配送费,单位(分)
|
||||||
|
Integer innerMinDeliverFee = accountBaseConfigService.getInnerMinDeliveryFee();
|
||||||
|
reqData.set("shopping_fee_inner", innerMinDeliverFee); // 平台内部最低配送费,单位(分)
|
||||||
|
|
||||||
log.info("[拉卡拉预下单] 支付成功,准备保存订单记录, orderId={}", orderId);
|
log.info("[拉卡拉预下单] 支付成功,准备保存订单记录, orderId={}", orderId);
|
||||||
// 新增一个拉卡拉订单记录 shop_order_lkl 表
|
// 新增一个拉卡拉订单记录 shop_order_lkl 表
|
||||||
JSONObject lklPayReqAndRespJson = new JSONObject();
|
JSONObject lklPayReqAndRespJson = new JSONObject();
|
||||||
@ -479,7 +476,7 @@ public class LakalaPayServiceImpl implements LakalaPayService {
|
|||||||
log.info("[拉卡拉合单预下单] 支付成功,准备保存订单记录, orderId={} shopping_fee_inner={}", orderId, agentAmountInt);
|
log.info("[拉卡拉合单预下单] 支付成功,准备保存订单记录, orderId={} shopping_fee_inner={}", orderId, agentAmountInt);
|
||||||
// 新增一个拉卡拉订单记录 shop_order_lkl 表
|
// 新增一个拉卡拉订单记录 shop_order_lkl 表
|
||||||
JSONObject lklPayReqAndRespJson = new JSONObject();
|
JSONObject lklPayReqAndRespJson = new JSONObject();
|
||||||
reqData.set("shopping_fee_inner", agentAmountInt); // 内部配送费
|
reqData.set("shopping_fee_inner", agentAmountInt); // 平台内部最低配送费,单位(分)
|
||||||
|
|
||||||
lklPayReqAndRespJson.put("req", reqData);
|
lklPayReqAndRespJson.put("req", reqData);
|
||||||
lklPayReqAndRespJson.put("resp", respBody); // 返回原始响应数据
|
lklPayReqAndRespJson.put("resp", respBody); // 返回原始响应数据
|
||||||
|
|||||||
@ -130,10 +130,6 @@ public class PayUserPayServiceImpl extends BaseServiceImpl<PayUserPayMapper, Pay
|
|||||||
@Value("${lakala.delivery_term_no}")
|
@Value("${lakala.delivery_term_no}")
|
||||||
private String delivery_term_no;
|
private String delivery_term_no;
|
||||||
|
|
||||||
// 最低内部配送费要求,单位(分)
|
|
||||||
@Value("${lakala.min_delivery_fee_inner}")
|
|
||||||
private Integer min_delivery_fee_inner;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取支付密码
|
* 获取支付密码
|
||||||
*
|
*
|
||||||
@ -683,10 +679,14 @@ public class PayUserPayServiceImpl extends BaseServiceImpl<PayUserPayMapper, Pay
|
|||||||
if (shippingFee == null || shippingFee.intValue() <= 0) {
|
if (shippingFee == null || shippingFee.intValue() <= 0) {
|
||||||
shippingFee = BigDecimal.ZERO;
|
shippingFee = BigDecimal.ZERO;
|
||||||
}
|
}
|
||||||
logger.debug("预支付时,查到的订单{},商家配送费:{}元,平台最低配送费要求:{}分", out_trade_no, shippingFee, min_delivery_fee_inner);
|
|
||||||
|
|
||||||
// 平台最低配送费,单位(分)
|
// 平台最低配送费,单位(分)
|
||||||
if (min_delivery_fee_inner == null || min_delivery_fee_inner.intValue() <= 0) {
|
Integer innerMinDeliverFee = accountBaseConfigService.getInnerMinDeliveryFee();
|
||||||
|
|
||||||
|
logger.debug("预支付时,查到的订单{},商家配送费:{}元,平台最低配送费要求:{}分", out_trade_no, shippingFee, innerMinDeliverFee);
|
||||||
|
|
||||||
|
// 平台最低配送费,单位(分)
|
||||||
|
if (innerMinDeliverFee == null || innerMinDeliverFee.intValue() <= 0) {
|
||||||
// 没有运费
|
// 没有运费
|
||||||
// 拉卡拉预支付返回参数
|
// 拉卡拉预支付返回参数
|
||||||
lakalaRespJSON = lakalaPayService.lklTransPreOrder(shopStoreBase.getLkl_merchant_no(), shopStoreBase.getLkl_term_no(),
|
lakalaRespJSON = lakalaPayService.lklTransPreOrder(shopStoreBase.getLkl_merchant_no(), shopStoreBase.getLkl_term_no(),
|
||||||
@ -700,7 +700,7 @@ public class PayUserPayServiceImpl extends BaseServiceImpl<PayUserPayMapper, Pay
|
|||||||
delivery_merchant_no, delivery_term_no, // 以后根据代理商动态分配
|
delivery_merchant_no, delivery_term_no, // 以后根据代理商动态分配
|
||||||
appId, openId, storeIdStr, out_trade_no, subject, total_amt,
|
appId, openId, storeIdStr, out_trade_no, subject, total_amt,
|
||||||
// Convert.toStr(shippingFee.multiply(BigDecimal.valueOf(100)).intValue()),
|
// Convert.toStr(shippingFee.multiply(BigDecimal.valueOf(100)).intValue()),
|
||||||
Convert.toStr(min_delivery_fee_inner),
|
Convert.toStr(innerMinDeliverFee),
|
||||||
notifyUrl,
|
notifyUrl,
|
||||||
requestIP, trade_remark);
|
requestIP, trade_remark);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -127,8 +127,6 @@ lakala:
|
|||||||
lkl_platform_cer_path: payKey/lakala/dev/lkl_notify_cert_v2.cer
|
lkl_platform_cer_path: payKey/lakala/dev/lkl_notify_cert_v2.cer
|
||||||
# 机构代码
|
# 机构代码
|
||||||
org_code: 1
|
org_code: 1
|
||||||
#最低内部配送费要求,单位(分)
|
|
||||||
min_delivery_fee_inner: 0
|
|
||||||
#运费代理商商户号(深圳立挚)
|
#运费代理商商户号(深圳立挚)
|
||||||
delivery_merchant_no: 822584059990FYP
|
delivery_merchant_no: 822584059990FYP
|
||||||
#运费代理商终端号码(深圳立挚),M0780629(B2B收银台) M0780798(专业化扫码)
|
#运费代理商终端号码(深圳立挚),M0780629(B2B收银台) M0780798(专业化扫码)
|
||||||
|
|||||||
@ -129,8 +129,6 @@ lakala:
|
|||||||
lkl_platform_cer_path: payKey/lakala/dev/lkl_notify_cert_v2.cer
|
lkl_platform_cer_path: payKey/lakala/dev/lkl_notify_cert_v2.cer
|
||||||
# 机构代码
|
# 机构代码
|
||||||
org_code: 1
|
org_code: 1
|
||||||
#最低内部配送费要求,单位(分)
|
|
||||||
min_delivery_fee_inner: 0
|
|
||||||
#运费代理商商户号(深圳立挚)
|
#运费代理商商户号(深圳立挚)
|
||||||
delivery_merchant_no: 822584059990FYP
|
delivery_merchant_no: 822584059990FYP
|
||||||
#运费代理商终端号码(深圳立挚),M0780629(B2B收银台) M0780798(专业化扫码)
|
#运费代理商终端号码(深圳立挚),M0780629(B2B收银台) M0780798(专业化扫码)
|
||||||
|
|||||||
@ -151,8 +151,6 @@ lakala:
|
|||||||
lkl_platform_cer_path: payKey/lakala/prod/lkl_platform.cer
|
lkl_platform_cer_path: payKey/lakala/prod/lkl_platform.cer
|
||||||
#机构代码
|
#机构代码
|
||||||
org_code: 980688
|
org_code: 980688
|
||||||
#最低内部配送费要求,单位(分)
|
|
||||||
min_delivery_fee_inner: 0
|
|
||||||
#运费代理商商户号(深圳立挚)
|
#运费代理商商户号(深圳立挚)
|
||||||
delivery_merchant_no: 822584059990FYP
|
delivery_merchant_no: 822584059990FYP
|
||||||
#运费代理商终端号码(深圳立挚),M0780629(B2B收银台) M0780798(专业化扫码)
|
#运费代理商终端号码(深圳立挚),M0780629(B2B收银台) M0780798(专业化扫码)
|
||||||
|
|||||||
@ -127,8 +127,6 @@ lakala:
|
|||||||
lkl_platform_cer_path: payKey/lakala/dev/lkl_notify_cert_v2.cer
|
lkl_platform_cer_path: payKey/lakala/dev/lkl_notify_cert_v2.cer
|
||||||
# 机构代码
|
# 机构代码
|
||||||
org_code: 1
|
org_code: 1
|
||||||
#最低内部配送费要求,单位(分)
|
|
||||||
min_delivery_fee_inner: 0
|
|
||||||
#运费代理商商户号(深圳立挚)
|
#运费代理商商户号(深圳立挚)
|
||||||
delivery_merchant_no: 822584059990FYP
|
delivery_merchant_no: 822584059990FYP
|
||||||
#运费代理商终端号码(深圳立挚),M0780629(B2B收银台) M0780798(专业化扫码)
|
#运费代理商终端号码(深圳立挚),M0780629(B2B收银台) M0780798(专业化扫码)
|
||||||
|
|||||||
@ -127,8 +127,6 @@ lakala:
|
|||||||
lkl_platform_cer_path: payKey/lakala/dev/lkl_notify_cert_v2.cer
|
lkl_platform_cer_path: payKey/lakala/dev/lkl_notify_cert_v2.cer
|
||||||
# 机构代码
|
# 机构代码
|
||||||
org_code: 1
|
org_code: 1
|
||||||
#最低内部配送费要求,单位(分)
|
|
||||||
min_delivery_fee_inner: 0
|
|
||||||
#运费代理商商户号(深圳立挚)
|
#运费代理商商户号(深圳立挚)
|
||||||
delivery_merchant_no: 822584059990FYP
|
delivery_merchant_no: 822584059990FYP
|
||||||
#运费代理商终端号码(深圳立挚),M0780629(B2B收银台) M0780798(专业化扫码)
|
#运费代理商终端号码(深圳立挚),M0780629(B2B收银台) M0780798(专业化扫码)
|
||||||
|
|||||||
@ -9,6 +9,7 @@
|
|||||||
package com.suisung.mall.shop.lakala.service.impl;
|
package com.suisung.mall.shop.lakala.service.impl;
|
||||||
|
|
||||||
|
|
||||||
|
import cn.hutool.core.collection.CollUtil;
|
||||||
import cn.hutool.core.collection.CollectionUtil;
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
import cn.hutool.core.convert.Convert;
|
import cn.hutool.core.convert.Convert;
|
||||||
import cn.hutool.core.util.NumberUtil;
|
import cn.hutool.core.util.NumberUtil;
|
||||||
@ -2131,83 +2132,80 @@ public class LakalaApiServiceImpl implements LakalaApiService {
|
|||||||
@Override
|
@Override
|
||||||
public Pair<Boolean, String> innerDoOrderSeparateByMerchantAndLogNo(String lklMerchantNo, String receiveTradeNo, String receiveLogNo) {
|
public Pair<Boolean, String> innerDoOrderSeparateByMerchantAndLogNo(String lklMerchantNo, String receiveTradeNo, String receiveLogNo) {
|
||||||
// 1. 输入参数校验
|
// 1. 输入参数校验
|
||||||
if (StrUtil.isBlank(lklMerchantNo) || StrUtil.isBlank(receiveTradeNo) || StrUtil.isBlank(receiveLogNo)) {
|
if (StrUtil.hasBlank(lklMerchantNo, receiveTradeNo, receiveLogNo)) {
|
||||||
log.warn("[分账操作] 参数校验失败:缺少必要参数, lklMerchantNo={}, receiveTradeNo={}, receiveLogNo={}",
|
log.warn("[分账操作] 参数校验失败:缺少必要参数, lklMerchantNo={}, receiveTradeNo={}, receiveLogNo={}",
|
||||||
lklMerchantNo, receiveTradeNo, receiveLogNo);
|
lklMerchantNo, receiveTradeNo, receiveLogNo);
|
||||||
return Pair.of(false, "缺少必要参数");
|
return Pair.of(false, "缺少必要参数");
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
log.info("[分账操作] 开始处理分账请求, lklMerchantNo={}, receiveTradeNo={}, receiveLogNo={}",
|
|
||||||
lklMerchantNo, receiveTradeNo, receiveLogNo);
|
|
||||||
|
|
||||||
// 2. 查询订单信息
|
// 2. 查询订单信息
|
||||||
ShopOrderLkl shopOrderLkl = shopOrderLklService.getByLklMchNoAndReceiveTradeNoAndReceiveLogNo(lklMerchantNo, receiveTradeNo, receiveLogNo);
|
ShopOrderLkl shopOrderLkl = shopOrderLklService.getByLklMchNoAndReceiveTradeNoAndReceiveLogNo(lklMerchantNo, receiveTradeNo, receiveLogNo);
|
||||||
if (shopOrderLkl == null) {
|
if (shopOrderLkl == null) {
|
||||||
log.warn("[分账操作] 失败:对账流水号[{}]不存在", receiveLogNo);
|
log.warn("[分账操作] lklMerchantNo={}, receiveTradeNo={}, receiveLogNo={} 查询订单不存在", lklMerchantNo, receiveTradeNo, receiveLogNo);
|
||||||
return Pair.of(false, "订单不存在");
|
return Pair.of(false, "订单不存在");
|
||||||
}
|
}
|
||||||
|
|
||||||
String orderId = shopOrderLkl.getOrder_id();
|
String orderId = shopOrderLkl.getOrder_id();
|
||||||
log.info("[分账操作] 开始处理订单[{}]的分账", orderId);
|
log.info("[分账操作] 开始处理分账请求, lklMerchantNo={}, receiveTradeNo={}, receiveLogNo={},orderId={}",
|
||||||
|
lklMerchantNo, receiveTradeNo, receiveLogNo, orderId);
|
||||||
|
|
||||||
// 3. 检查订单状态
|
// 3. 检查订单状态
|
||||||
if (!CommonConstant.Enable.equals(shopOrderLkl.getReceive_status())) {
|
if (!CommonConstant.Enable.equals(shopOrderLkl.getReceive_status())) {
|
||||||
log.warn("[分账操作] 订单[{}]交易流水号[{}]未被确认收货,跳过处理", orderId, receiveTradeNo);
|
log.warn("[分账操作] 订单{}交易流水号{}未被确认收货,跳过处理", orderId, receiveTradeNo);
|
||||||
return Pair.of(false, "订单未确认收货,暂无法分账");
|
return Pair.of(false, "订单未确认收货,暂无法分账");
|
||||||
}
|
}
|
||||||
|
|
||||||
// 4. 检查分账状态,避免重复处理
|
// 4. 检查分账状态,避免重复处理
|
||||||
LklOrderSeparate existingSeparateRecord = lklOrderSeparateService.getByLogNoAndOutTradeNo(shopOrderLkl.getLkl_receive_log_no(), shopOrderLkl.getOut_separate_no());
|
LklOrderSeparate existingSeparateRecord = lklOrderSeparateService.getByLogNoAndOutTradeNo(
|
||||||
|
shopOrderLkl.getLkl_receive_log_no(), shopOrderLkl.getOut_separate_no());
|
||||||
|
|
||||||
if (existingSeparateRecord != null) {
|
if (existingSeparateRecord != null) {
|
||||||
String status = existingSeparateRecord.getStatus();
|
String status = existingSeparateRecord.getStatus();
|
||||||
if ("SUCCESS".equals(status)) {
|
switch (status) {
|
||||||
log.info("[分账操作] 订单[{}]交易对账流水号[{}]已完成分账,跳过处理", orderId, shopOrderLkl.getLkl_receive_log_no());
|
case "SUCCESS":
|
||||||
return Pair.of(true, "订单已处理");
|
log.info("[分账操作] 订单[{}]交易对账流水号[{}]已完成分账,跳过处理", orderId, shopOrderLkl.getLkl_receive_log_no());
|
||||||
}
|
return Pair.of(true, "订单已处理");
|
||||||
if ("PROCESSING".equals(status) || "ACCEPTED".equals(status)) {
|
case "PROCESSING":
|
||||||
log.info("[分账操作] 订单[{}]交易对账流水号[{}]分账处理中或已受理,跳过处理", orderId, shopOrderLkl.getLkl_receive_log_no());
|
case "ACCEPTED":
|
||||||
return Pair.of(true, "订单已处理中或已受理");
|
log.info("[分账操作] 订单[{}]交易对账流水号[{}]分账处理中或已受理,跳过处理", orderId, shopOrderLkl.getLkl_receive_log_no());
|
||||||
}
|
return Pair.of(true, "订单已处理中或已受理");
|
||||||
} else {
|
|
||||||
if (CommonConstant.Enable.equals(shopOrderLkl.getSeparate_status())) {
|
|
||||||
log.warn("[分账操作] 订单[{}]交易流水号[{}]订单已分账,跳过处理", orderId, receiveTradeNo);
|
|
||||||
return Pair.of(true, "订单已分账,请勿重复操作");
|
|
||||||
}
|
}
|
||||||
|
} else if (CommonConstant.Enable.equals(shopOrderLkl.getSeparate_status())) {
|
||||||
|
log.warn("[分账操作] 订单[{}]交易流水号[{}]订单已分账,跳过处理", orderId, receiveTradeNo);
|
||||||
|
return Pair.of(true, "订单已分账,请勿重复操作");
|
||||||
}
|
}
|
||||||
|
|
||||||
// 可分账金额
|
|
||||||
Integer canSeparateAmt = null;
|
|
||||||
// 5. 检查可分账余额
|
// 5. 检查可分账余额
|
||||||
|
Integer canSeparateAmt = null;
|
||||||
Pair<String, String> mchCanSplitAmt = queryMchCanSplitAmt(lklMerchantNo, receiveLogNo, shopOrderLkl.getLkl_log_date());
|
Pair<String, String> mchCanSplitAmt = queryMchCanSplitAmt(lklMerchantNo, receiveLogNo, shopOrderLkl.getLkl_log_date());
|
||||||
if (mchCanSplitAmt != null) {
|
if (mchCanSplitAmt != null) {
|
||||||
log.error("[分账操作] 查询可分账余额失败:lklMerchantNo={} logDate={} receiveLogNo={}", lklMerchantNo, shopOrderLkl.getLkl_log_date(), receiveLogNo);
|
log.info("[分账操作] 查询拉卡拉可分账余额接口:lklMerchantNo={} logDate={} receiveLogNo={}",
|
||||||
|
lklMerchantNo, shopOrderLkl.getLkl_log_date(), receiveLogNo);
|
||||||
|
|
||||||
// 可分账金额
|
// 可分账金额
|
||||||
canSeparateAmt = Convert.toInt(mchCanSplitAmt.getSecond());
|
canSeparateAmt = Convert.toInt(mchCanSplitAmt.getSecond());
|
||||||
if (canSeparateAmt == null || canSeparateAmt <= 0) {
|
if (canSeparateAmt == null || canSeparateAmt <= 0) {
|
||||||
log.warn("[分账操作] lklMerchantNo={} receiveTradeNo={} receiveLogNo={} 查询拉卡拉返回的可分账金额={}分,系统将自动计算可分账金额",
|
log.warn("[分账操作] lklMerchantNo={} receiveTradeNo={} receiveLogNo={} 拉卡拉可分账金额无值或0,系统将自动计算可分账金额",
|
||||||
lklMerchantNo, receiveTradeNo, receiveLogNo, canSeparateAmt);
|
lklMerchantNo, receiveTradeNo, receiveLogNo);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// 6. 获取订单分账相关参数
|
// 6. 获取订单分账相关参数
|
||||||
String merchantNo = shopOrderLkl.getLkl_merchant_no();
|
String merchantNo = shopOrderLkl.getLkl_merchant_no();
|
||||||
|
|
||||||
// 获取商家分账比例并校验
|
// 获取商家分账比例并校验
|
||||||
BigDecimal merchantSplitRatioRaw = shopOrderLkl.getSplit_ratio();
|
BigDecimal mchSplitRatioRaw = shopOrderLkl.getSplit_ratio();
|
||||||
boolean canSplitForMerchant = merchantSplitRatioRaw != null
|
if (mchSplitRatioRaw == null ||
|
||||||
&& merchantSplitRatioRaw.compareTo(BigDecimal.ZERO) > 0
|
mchSplitRatioRaw.compareTo(BigDecimal.ZERO) <= 0 ||
|
||||||
&& merchantSplitRatioRaw.compareTo(new BigDecimal(100)) <= 0;
|
mchSplitRatioRaw.compareTo(new BigDecimal(100)) > 0) {
|
||||||
if (!canSplitForMerchant) {
|
|
||||||
log.error("[分账操作] 店铺[{}]商家分账比例[{}]不在(0-100]范围内,无法分账",
|
log.error("[分账操作] 店铺[{}]商家分账比例[{}]不在(0-100]范围内,无法分账",
|
||||||
shopOrderLkl.getStore_id(), merchantSplitRatioRaw);
|
shopOrderLkl.getStore_id(), mchSplitRatioRaw);
|
||||||
return Pair.of(false, "商家分账比例有误");
|
return Pair.of(false, "商家分账比例有误");
|
||||||
}
|
}
|
||||||
|
|
||||||
// 计算商家分账比例(转换为小数)
|
// 计算商家分账比例(转换为小数)
|
||||||
BigDecimal merchantSplitRatio = merchantSplitRatioRaw.divide(new BigDecimal(100));
|
BigDecimal mchSplitRatio = mchSplitRatioRaw.divide(new BigDecimal(100));
|
||||||
|
|
||||||
// 获取分账平台接收方信息
|
// 获取分账平台接收方信息
|
||||||
LklLedgerMerReceiverBind platformReceiver = lklLedgerMerReceiverBindService.getPlatformByMerCupNo(merchantNo);
|
LklLedgerMerReceiverBind platformReceiver = lklLedgerMerReceiverBindService.getPlatformByMerCupNo(merchantNo);
|
||||||
@ -2221,8 +2219,8 @@ public class LakalaApiServiceImpl implements LakalaApiService {
|
|||||||
BigDecimal distributorSplitRatio = BigDecimal.ZERO;
|
BigDecimal distributorSplitRatio = BigDecimal.ZERO;
|
||||||
|
|
||||||
List<LklLedgerMerReceiverBind> distributorReceivers = lklLedgerMerReceiverBindService.selectDistributorByMerCupNo(merchantNo);
|
List<LklLedgerMerReceiverBind> distributorReceivers = lklLedgerMerReceiverBindService.selectDistributorByMerCupNo(merchantNo);
|
||||||
if (distributorReceivers != null && !distributorReceivers.isEmpty()) {
|
if (CollUtil.isNotEmpty(distributorReceivers)) {
|
||||||
distributorSplitRatio = BigDecimal.valueOf(1).subtract(platformSplitRatio).subtract(merchantSplitRatio);
|
distributorSplitRatio = BigDecimal.valueOf(1).subtract(platformSplitRatio).subtract(mchSplitRatio);
|
||||||
log.debug("[分账操作] 检测到代理商存在,调整分账比例: 代理商比例={}, 平台比例={}", distributorSplitRatio, platformSplitRatio);
|
log.debug("[分账操作] 检测到代理商存在,调整分账比例: 代理商比例={}, 平台比例={}", distributorSplitRatio, platformSplitRatio);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2235,30 +2233,31 @@ public class LakalaApiServiceImpl implements LakalaApiService {
|
|||||||
lklSeparateDTO.setTotalSeparateAmount(shopOrderLkl.getTotal_amt());
|
lklSeparateDTO.setTotalSeparateAmount(shopOrderLkl.getTotal_amt());
|
||||||
lklSeparateDTO.setShippingFee(shoppingFeeInner);
|
lklSeparateDTO.setShippingFee(shoppingFeeInner);
|
||||||
lklSeparateDTO.setLklRatio(wxFeeRatio); // 拉卡拉给的微信分账比例 0.0025 千分之2.5
|
lklSeparateDTO.setLklRatio(wxFeeRatio); // 拉卡拉给的微信分账比例 0.0025 千分之2.5
|
||||||
lklSeparateDTO.setMchRatio(merchantSplitRatio);
|
lklSeparateDTO.setMchRatio(mchSplitRatio);
|
||||||
lklSeparateDTO.setPlatRatio(platformSplitRatio);
|
lklSeparateDTO.setPlatRatio(platformSplitRatio);
|
||||||
if (distributorSplitRatio.compareTo(BigDecimal.ZERO) > 0) { // 二级代理商参与分账
|
if (distributorSplitRatio.compareTo(BigDecimal.ZERO) > 0) { // 二级代理商参与分账
|
||||||
lklSeparateDTO.setAgent2ndRatio(distributorSplitRatio);
|
lklSeparateDTO.setAgent2ndRatio(distributorSplitRatio);
|
||||||
}
|
}
|
||||||
lklSeparateDTO.setRefCanSeparateAmount(canSeparateAmt); // 拉卡拉实时返回的可分账金额
|
lklSeparateDTO.setRefCanSeparateAmount(canSeparateAmt); // 拉卡拉实时返回的可分账金额
|
||||||
|
|
||||||
|
|
||||||
// 分账方式:根据可分账金额分账
|
// 分账方式:根据可分账金额分账
|
||||||
if (!lklSeparateDTO.calcOnCanAmount()) {
|
Pair<Boolean, String> canSeparateAmtResult = lklSeparateDTO.calcOnCanSeparateAmount();
|
||||||
log.error("[分账操作] 分账系统评估各项参数,发现无法分账 {}", lklSeparateDTO);
|
if (!canSeparateAmtResult.getFirst()) {
|
||||||
return Pair.of(false, "分账系统评估各项参数,发现无法分账");
|
log.error("[分账操作] 分账参数评估,结果无法分账 {}", lklSeparateDTO);
|
||||||
}
|
return Pair.of(false, "分账参数评估,结果无法分账");
|
||||||
|
|
||||||
if (CheckUtil.isEmpty(canSeparateAmt)) {
|
|
||||||
canSeparateAmt = lklSeparateDTO.getCanSeparateAmount();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
log.debug("[分账操作] 分账参数计算结果:{}", lklSeparateDTO);
|
log.debug("[分账操作] 分账参数计算结果:{}", lklSeparateDTO);
|
||||||
|
|
||||||
// 更新分账计算结果
|
// 更新分账计算结果
|
||||||
shopOrderLkl.setSeparate_remark(lklSeparateDTO.toString());
|
shopOrderLkl.setSeparate_remark(lklSeparateDTO.toString());
|
||||||
shopOrderLkl.setSplit_amt(canSeparateAmt);
|
if (CheckUtil.isEmpty(canSeparateAmt)) {
|
||||||
shopOrderLklService.updateById(shopOrderLkl);
|
shopOrderLkl.setSplit_amt(lklSeparateDTO.getCanSeparateAmount());
|
||||||
|
canSeparateAmt = lklSeparateDTO.getCanSeparateAmount();
|
||||||
|
} else {
|
||||||
|
shopOrderLkl.setSplit_amt_ref(canSeparateAmt);
|
||||||
|
}
|
||||||
|
shopOrderLklService.safeUpdate(shopOrderLkl);
|
||||||
|
|
||||||
// 分账金额校验
|
// 分账金额校验
|
||||||
if (canSeparateAmt <= 0) {
|
if (canSeparateAmt <= 0) {
|
||||||
@ -2279,11 +2278,12 @@ public class LakalaApiServiceImpl implements LakalaApiService {
|
|||||||
Integer agentAmount = lklSeparateDTO.getAgent2ndAmount();
|
Integer agentAmount = lklSeparateDTO.getAgent2ndAmount();
|
||||||
|
|
||||||
log.info("[分账操作] 金额计算结果:订单={}, 商户={}, 总金额={}分, 可分金额={}分, 商家比例={}, 商家分得={}分, 平台比例={}, 平台分得={}分, 代理商比例={}, 代理商分得={}分",
|
log.info("[分账操作] 金额计算结果:订单={}, 商户={}, 总金额={}分, 可分金额={}分, 商家比例={}, 商家分得={}分, 平台比例={}, 平台分得={}分, 代理商比例={}, 代理商分得={}分",
|
||||||
orderId, merchantNo, shopOrderLkl.getTotal_amt(), canSeparateAmt, merchantSplitRatio, merchantAmount, platformSplitRatio, platformAmount, distributorSplitRatio, agentAmount);
|
orderId, merchantNo, shopOrderLkl.getTotal_amt(), canSeparateAmt, mchSplitRatio, merchantAmount,
|
||||||
|
platformSplitRatio, platformAmount, distributorSplitRatio, agentAmount);
|
||||||
|
|
||||||
// 构建分账接收方分账参数
|
// 构建分账接收方分账参数
|
||||||
// 商家分账参数
|
// 商家分账参数
|
||||||
if (merchantAmount > 0) {
|
if (merchantAmount != null && merchantAmount > 0) {
|
||||||
V3SacsSeparateRecvDatas receiver = new V3SacsSeparateRecvDatas();
|
V3SacsSeparateRecvDatas receiver = new V3SacsSeparateRecvDatas();
|
||||||
receiver.setRecvMerchantNo(merchantNo);
|
receiver.setRecvMerchantNo(merchantNo);
|
||||||
receiver.setSeparateValue(merchantAmount.toString());
|
receiver.setSeparateValue(merchantAmount.toString());
|
||||||
@ -2292,7 +2292,7 @@ public class LakalaApiServiceImpl implements LakalaApiService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 平台分账参数
|
// 平台分账参数
|
||||||
if (platformAmount > 0) {
|
if (platformAmount != null && platformAmount > 0) {
|
||||||
V3SacsSeparateRecvDatas receiver = new V3SacsSeparateRecvDatas();
|
V3SacsSeparateRecvDatas receiver = new V3SacsSeparateRecvDatas();
|
||||||
receiver.setRecvNo(platformReceiver.getReceiver_no());
|
receiver.setRecvNo(platformReceiver.getReceiver_no());
|
||||||
receiver.setSeparateValue(platformAmount.toString());
|
receiver.setSeparateValue(platformAmount.toString());
|
||||||
@ -2301,7 +2301,7 @@ public class LakalaApiServiceImpl implements LakalaApiService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 二级代理商(县级)分账参数
|
// 二级代理商(县级)分账参数
|
||||||
if (agentAmount > 0 && distributorReceivers != null && !distributorReceivers.isEmpty()) {
|
if (agentAmount != null && agentAmount > 0 && CollUtil.isNotEmpty(distributorReceivers)) {
|
||||||
V3SacsSeparateRecvDatas receiver = new V3SacsSeparateRecvDatas();
|
V3SacsSeparateRecvDatas receiver = new V3SacsSeparateRecvDatas();
|
||||||
receiver.setRecvNo(distributorReceivers.get(0).getReceiver_no());
|
receiver.setRecvNo(distributorReceivers.get(0).getReceiver_no());
|
||||||
receiver.setSeparateValue(agentAmount.toString());
|
receiver.setSeparateValue(agentAmount.toString());
|
||||||
|
|||||||
@ -104,4 +104,13 @@ public interface ShopOrderLklService extends IBaseService<ShopOrderLkl> {
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
Boolean updateSeparateStatusByReceiveLogNo(String lklReceiveLogNo, Integer separateStatus, String separateRemark);
|
Boolean updateSeparateStatusByReceiveLogNo(String lklReceiveLogNo, Integer separateStatus, String separateRemark);
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 不抛异常更新
|
||||||
|
*
|
||||||
|
* @param record
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
Boolean safeUpdate(ShopOrderLkl record);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -534,6 +534,9 @@ public class ShopOrderLklServiceImpl extends BaseServiceImpl<ShopOrderLklMapper,
|
|||||||
UpdateWrapper<ShopOrderLkl> updateWrapper = new UpdateWrapper<>();
|
UpdateWrapper<ShopOrderLkl> updateWrapper = new UpdateWrapper<>();
|
||||||
updateWrapper.eq("lkl_receive_log_no", lklReceiveLogNo);
|
updateWrapper.eq("lkl_receive_log_no", lklReceiveLogNo);
|
||||||
updateWrapper.set("separate_status", separateStatus);
|
updateWrapper.set("separate_status", separateStatus);
|
||||||
|
if (StrUtil.isNotBlank(separateRemark)) {
|
||||||
|
updateWrapper.set("separate_remark", separateRemark);
|
||||||
|
}
|
||||||
|
|
||||||
boolean result = update(updateWrapper);
|
boolean result = update(updateWrapper);
|
||||||
|
|
||||||
@ -549,4 +552,48 @@ public class ShopOrderLklServiceImpl extends BaseServiceImpl<ShopOrderLklMapper,
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 安全更新拉卡拉订单记录
|
||||||
|
* <p>
|
||||||
|
* 该方法用于更新拉卡拉订单记录,不会抛出异常,而是在出现错误时返回false。
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @param record 拉卡拉订单记录
|
||||||
|
* @return 更新结果 true-成功 false-失败
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public Boolean safeUpdate(ShopOrderLkl record) {
|
||||||
|
// 参数校验
|
||||||
|
if (record == null) {
|
||||||
|
log.warn("[安全更新] 参数校验失败:记录不能为空");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (record.getId() == null) {
|
||||||
|
log.warn("[安全更新] 参数校验失败:记录ID不能为空");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
log.debug("[安全更新] 开始更新拉卡拉订单记录, orderId={}, id={}",
|
||||||
|
record.getOrder_id(), record.getId());
|
||||||
|
|
||||||
|
boolean result = updateById(record);
|
||||||
|
|
||||||
|
if (result) {
|
||||||
|
log.info("[安全更新] 拉卡拉订单记录更新成功, orderId={}, id={}",
|
||||||
|
record.getOrder_id(), record.getId());
|
||||||
|
} else {
|
||||||
|
log.warn("[安全更新] 拉卡拉订单记录更新失败, orderId={}, id={}",
|
||||||
|
record.getOrder_id(), record.getId());
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error("[安全更新] 拉卡拉订单记录更新异常, orderId={}, id={}",
|
||||||
|
record.getOrder_id(), record.getId(), e);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -161,10 +161,6 @@ lakala:
|
|||||||
#机构代码
|
#机构代码
|
||||||
org_code: 1951582
|
org_code: 1951582
|
||||||
is_prod: false
|
is_prod: false
|
||||||
# 是否收内部邮费
|
|
||||||
has_shopping_fee_inner: true
|
|
||||||
# 内部邮费,单位(分)
|
|
||||||
shopping_fee_inner: 500
|
|
||||||
# 拉卡拉拓客进件配置
|
# 拉卡拉拓客进件配置
|
||||||
tk:
|
tk:
|
||||||
#服务地址
|
#服务地址
|
||||||
|
|||||||
@ -161,10 +161,6 @@ lakala:
|
|||||||
#机构代码
|
#机构代码
|
||||||
org_code: 1951582
|
org_code: 1951582
|
||||||
is_prod: false
|
is_prod: false
|
||||||
# 是否收内部邮费
|
|
||||||
has_shopping_fee_inner: true
|
|
||||||
# 内部邮费,单位(分)
|
|
||||||
shopping_fee_inner: 500
|
|
||||||
# 拉卡拉拓客进件配置
|
# 拉卡拉拓客进件配置
|
||||||
tk:
|
tk:
|
||||||
#服务地址
|
#服务地址
|
||||||
|
|||||||
@ -177,10 +177,6 @@ lakala:
|
|||||||
#机构代码
|
#机构代码
|
||||||
org_code: 980688
|
org_code: 980688
|
||||||
is_prod: true
|
is_prod: true
|
||||||
# 是否收内部邮费
|
|
||||||
has_shopping_fee_inner: false
|
|
||||||
# 内部邮费,单位(分)
|
|
||||||
shopping_fee_inner: 500
|
|
||||||
tk:
|
tk:
|
||||||
#服务地址
|
#服务地址
|
||||||
server_url: https://tkapi.lakala.com
|
server_url: https://tkapi.lakala.com
|
||||||
|
|||||||
@ -165,10 +165,6 @@ lakala:
|
|||||||
#机构代码
|
#机构代码
|
||||||
org_code: 1951582
|
org_code: 1951582
|
||||||
is_prod: false
|
is_prod: false
|
||||||
# 是否收内部邮费
|
|
||||||
has_shopping_fee_inner: true
|
|
||||||
# 内部邮费,单位(分)
|
|
||||||
shopping_fee_inner: 500
|
|
||||||
# 拉卡拉拓客进件配置
|
# 拉卡拉拓客进件配置
|
||||||
tk:
|
tk:
|
||||||
#服务地址
|
#服务地址
|
||||||
|
|||||||
@ -165,10 +165,6 @@ lakala:
|
|||||||
#机构代码
|
#机构代码
|
||||||
org_code: 1951582
|
org_code: 1951582
|
||||||
is_prod: false
|
is_prod: false
|
||||||
# 是否收内部邮费
|
|
||||||
has_shopping_fee_inner: true
|
|
||||||
# 内部邮费,单位(分)
|
|
||||||
shopping_fee_inner: 500
|
|
||||||
# 拉卡拉拓客进件配置
|
# 拉卡拉拓客进件配置
|
||||||
tk:
|
tk:
|
||||||
#服务地址
|
#服务地址
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user