diff --git a/mall-common/src/main/java/com/suisung/mall/common/pojo/dto/LklSeparateWithTotalAmountDTO.java b/mall-common/src/main/java/com/suisung/mall/common/pojo/dto/LklSeparateWithTotalAmountDTO.java index c99bc491..8721b4a1 100644 --- a/mall-common/src/main/java/com/suisung/mall/common/pojo/dto/LklSeparateWithTotalAmountDTO.java +++ b/mall-common/src/main/java/com/suisung/mall/common/pojo/dto/LklSeparateWithTotalAmountDTO.java @@ -62,12 +62,12 @@ public class LklSeparateWithTotalAmountDTO { // 测试用例1: 所有参与方都参与分账(符合比例要求) System.out.println("=== 测试用例1: 所有参与方都参与分账 ==="); LklSeparateWithTotalAmountDTO dto1 = new LklSeparateWithTotalAmountDTO(); - dto1.setTotalSeparateAmount(1500); // 总金额100元(10000分) - dto1.setShippingFee(600); + dto1.setTotalSeparateAmount(5500); // 总金额100元(10000分) + dto1.setShippingFee(500); // dto1.setRefCanSeparateAmount(1496); dto1.setLklRatio(new BigDecimal("0.0025")); // 拉卡拉分账比例0.25% - dto1.setMchRatio(new BigDecimal("0.95")); // 商家分账比例94.75% - dto1.setPlatRatio(new BigDecimal("0.01")); // 平台分账比例1% + dto1.setMchRatio(new BigDecimal("0.96")); // 商家分账比例94.75% + dto1.setPlatRatio(new BigDecimal("0.04")); // 平台分账比例1% // dto1.setAgent2ndRatio(new BigDecimal("0.04")); // 二级代理商分账比例4% // dto1.setAgent1stRatio(new BigDecimal("0.01")); // 一级代理商分账比例1% diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/lakala/service/impl/LakalaApiServiceImpl.java b/mall-shop/src/main/java/com/suisung/mall/shop/lakala/service/impl/LakalaApiServiceImpl.java index a2ecccbf..9a34c6f8 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/lakala/service/impl/LakalaApiServiceImpl.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/lakala/service/impl/LakalaApiServiceImpl.java @@ -2639,13 +2639,42 @@ public class LakalaApiServiceImpl implements LakalaApiService { receiver.setSeparateValue(Convert.toStr(merchantAmount)); recvDatas.add(receiver); } + + // 是否有二级代理商? + boolean has2ndAgent = CheckUtil.isNotEmpty(agent2ndSplitRatio) && agent2ndReceiver != null && + StrUtil.isNotBlank(agent2ndReceiver.getReceiver_no()) && + CheckUtil.isNotEmpty(agent2ndAmount) && agent2ndAmount > 0; // 平台分账参数 if (CheckUtil.isNotEmpty(platformAmount) && platformAmount > 0) { - V3SacsSeparateRecvDatas receiver = new V3SacsSeparateRecvDatas(); - receiver.setRecvNo(platformReceiver.getReceiver_no()); - receiver.setSeparateValue(Convert.toStr(platformAmount)); - recvDatas.add(receiver); + if (!has2ndAgent && CheckUtil.isNotEmpty(shoppingFeeInner)) { + // 没有县级代理商的时候,配送费暂由平台代收 add 2025-10-11 + V3SacsSeparateRecvDatas receiver = new V3SacsSeparateRecvDatas(); + receiver.setRecvNo(platformReceiver.getReceiver_no()); + receiver.setSeparateValue(Convert.toStr(platformAmount + shoppingFeeInner)); + recvDatas.add(receiver); + } else { + V3SacsSeparateRecvDatas receiver = new V3SacsSeparateRecvDatas(); + receiver.setRecvNo(platformReceiver.getReceiver_no()); + receiver.setSeparateValue(Convert.toStr(platformAmount)); + recvDatas.add(receiver); + } + } + + // 县级代理商分账参数 + if (has2ndAgent) { + if (CheckUtil.isNotEmpty(shoppingFeeInner)) { + // 有县级代理商的时候,配送费暂由它代收 add 2025-10-11 + V3SacsSeparateRecvDatas shippingFeeReceiver = new V3SacsSeparateRecvDatas(); + shippingFeeReceiver.setRecvNo(agent2ndReceiver.getReceiver_no()); + shippingFeeReceiver.setSeparateValue(Convert.toStr(agent2ndAmount + shoppingFeeInner)); + recvDatas.add(shippingFeeReceiver); + } else { + V3SacsSeparateRecvDatas receiver = new V3SacsSeparateRecvDatas(); + receiver.setRecvNo(agent2ndReceiver.getReceiver_no()); + receiver.setSeparateValue(Convert.toStr(agent2ndAmount)); + recvDatas.add(receiver); + } } // 省级代理商分账参数 @@ -2658,28 +2687,6 @@ public class LakalaApiServiceImpl implements LakalaApiService { recvDatas.add(receiver); } - // 县级代理商分账参数 - if (CheckUtil.isNotEmpty(agent2ndSplitRatio) && agent2ndReceiver != null && - StrUtil.isNotBlank(agent2ndReceiver.getReceiver_no()) && - CheckUtil.isNotEmpty(agent2ndAmount) && agent2ndAmount > 0) { - V3SacsSeparateRecvDatas receiver = new V3SacsSeparateRecvDatas(); - receiver.setRecvNo(agent2ndReceiver.getReceiver_no()); - receiver.setSeparateValue(Convert.toStr(agent2ndAmount)); - recvDatas.add(receiver); - - // 有县级代理商的时候,配送费暂由它代收 add 2025-10-11 - V3SacsSeparateRecvDatas shippingFeeReceiver = new V3SacsSeparateRecvDatas(); - shippingFeeReceiver.setRecvNo(agent2ndReceiver.getReceiver_no()); - shippingFeeReceiver.setSeparateValue(Convert.toStr(shoppingFeeInner)); - recvDatas.add(shippingFeeReceiver); - } else { - // 没有县级代理商的时候,配送费暂由平台代收 add 2025-10-11 - V3SacsSeparateRecvDatas shippingFeeReceiver = new V3SacsSeparateRecvDatas(); - shippingFeeReceiver.setRecvNo(platformReceiver.getReceiver_no()); - shippingFeeReceiver.setSeparateValue(Convert.toStr(shoppingFeeInner)); - recvDatas.add(shippingFeeReceiver); - } - // 初始化拉卡拉SDK initLKLSDK(); @@ -2758,7 +2765,7 @@ public class LakalaApiServiceImpl implements LakalaApiService { } catch (Exception e) { String errorMsg = String.format("[分账操作] 系统异常, receiveLogNo=%s, 错误=%s", receiveLogNo, e.getMessage()); log.error(errorMsg, e); - + if (shopOrderLkl != null) { shopOrderLkl.setSeparate_msg(errorMsg); shopOrderLkl.setSeparate_status(CommonConstant.Sta_Separate_Fail); diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/store/service/impl/ShopStorePrinterServiceImpl.java b/mall-shop/src/main/java/com/suisung/mall/shop/store/service/impl/ShopStorePrinterServiceImpl.java index bf7f484e..f597f44d 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/store/service/impl/ShopStorePrinterServiceImpl.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/store/service/impl/ShopStorePrinterServiceImpl.java @@ -132,7 +132,10 @@ public class ShopStorePrinterServiceImpl extends BaseServiceImpl pair = feieUtil.delPrinter(record.getPrinter_sn()); + if (pair.getFirst()) { + logger.info("已从厂家删除打印机:{}, 详细信息:{}", record.getPrinter_sn(), pair.getSecond()); + } if (add(record)) { return CommonResult.success(null, "添加成功"); @@ -271,7 +274,10 @@ public class ShopStorePrinterServiceImpl extends BaseServiceImpl retPair = feieUtil.delPrinter(record.getPrinter_sn()); if (!retPair.getFirst()) { + logger.error("从厂家删除打印机失败,SN: {}, 错误信息: {}", record.getPrinter_sn(), retPair.getSecond()); return CommonResult.failed(retPair.getSecond()); + } else { + logger.info("已从厂家删除打印机:{}, 详细信息:{}", record.getPrinter_sn(), retPair.getSecond()); } }