diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/publicapi/PublicPromoterOrderController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/publicapi/PublicPromoterOrderController.java index b0eda5b..2f8c04e 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/publicapi/PublicPromoterOrderController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/publicapi/PublicPromoterOrderController.java @@ -125,6 +125,13 @@ public class PublicPromoterOrderController { vo.setCosPrice(formatPrice(row)); vo.setOrderTime(formatDate(row.getOrderTime())); vo.setFinishTime(formatDate(row.getFinishTime())); + Double proPrice = row.getProPriceAmount(); + if (proPrice != null && proPrice > 0) { + vo.setProPriceAmount(String.format("%.2f", proPrice)); + vo.setProPriceTime(formatDate(row.getModifyTime())); + } else { + vo.setProPriceAmount("0.00"); + } return vo; } diff --git a/ruoyi-system/src/main/java/com/ruoyi/jarvis/domain/dto/PromoterOrderInfoVO.java b/ruoyi-system/src/main/java/com/ruoyi/jarvis/domain/dto/PromoterOrderInfoVO.java index 3dc9982..4cf150b 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/jarvis/domain/dto/PromoterOrderInfoVO.java +++ b/ruoyi-system/src/main/java/com/ruoyi/jarvis/domain/dto/PromoterOrderInfoVO.java @@ -20,6 +20,10 @@ public class PromoterOrderInfoVO { private String cosPrice; private String orderTime; private String finishTime; + /** 价保/赔付金额 */ + private String proPriceAmount; + /** 价保/赔付更新时间(有金额时取订单 modify_time) */ + private String proPriceTime; public String getShopName() { return shopName; @@ -140,4 +144,20 @@ public class PromoterOrderInfoVO { public void setFinishTime(String finishTime) { this.finishTime = finishTime; } + + public String getProPriceAmount() { + return proPriceAmount; + } + + public void setProPriceAmount(String proPriceAmount) { + this.proPriceAmount = proPriceAmount; + } + + public String getProPriceTime() { + return proPriceTime; + } + + public void setProPriceTime(String proPriceTime) { + this.proPriceTime = proPriceTime; + } } diff --git a/ruoyi-system/src/main/java/com/ruoyi/jarvis/service/IJDOrderProfitService.java b/ruoyi-system/src/main/java/com/ruoyi/jarvis/service/IJDOrderProfitService.java index 6e90187..5af073a 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/jarvis/service/IJDOrderProfitService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/jarvis/service/IJDOrderProfitService.java @@ -11,8 +11,8 @@ public interface IJDOrderProfitService { /** * 根据分销标识、型号配置、手动标记等,填充售价(自动时)并计算利润。 - * F / H-TF:利润 = 对客实收(直款=售价,闲鱼=扣点后的到账)-(下单付款 - 后返金额); - * H-TF 未配置型号直款价时回退为固定 15 / 凡- 开头 65。 + * F:利润 = 对客实收(直款=售价,闲鱼=扣点后的到账)-(下单付款 - 后返金额); + * H-TF:固定利润 15,再扣额外成本。 * 会修改传入的 {@code order}。 */ void recalculate(JDOrder order); diff --git a/ruoyi-system/src/main/java/com/ruoyi/jarvis/service/impl/JDOrderProfitServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/jarvis/service/impl/JDOrderProfitServiceImpl.java index 3239f52..2378681 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/jarvis/service/impl/JDOrderProfitServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/jarvis/service/impl/JDOrderProfitServiceImpl.java @@ -46,25 +46,9 @@ public class JDOrderProfitServiceImpl implements IJDOrderProfitService { if ("H-TF".equals(mark)) { if (!profitLocked) { - // 与 F 单一致:利润 = 对客实收 − (下单付款 − 后返) − 额外成本。列表未填售价时默认直款并从型号配置取价。 - String type = order.getSellingPriceType(); - if (type == null || type.isEmpty()) { - order.setSellingPriceType("direct"); - } - if (!sellingLocked && order.getSellingPrice() == null) { - fillSellingPriceFromConfig(order); - } - String effType = order.getSellingPriceType(); - Double sp = order.getSellingPrice(); - if (effType != null && !effType.isEmpty() && sp != null) { - computeProfitForF(order); - } else { - String buyer = order.getBuyer(); - boolean fan = buyer != null && buyer.trim().startsWith("凡-"); - double base = fan ? 65.0 : 15.0; - order.setProfit(BigDecimal.valueOf(base - extraCostOrZero(order)) - .setScale(2, RoundingMode.HALF_UP).doubleValue()); - } + // H-TF 固定利润 15,再扣额外成本(不走 F 单售价公式) + order.setProfit(BigDecimal.valueOf(15.0 - extraCostOrZero(order)) + .setScale(2, RoundingMode.HALF_UP).doubleValue()); } return; } diff --git a/sql/backfill_goods_info_preview.sql b/sql/backfill_goods_info_preview.sql index 1600f26..aa69dcf 100644 --- a/sql/backfill_goods_info_preview.sql +++ b/sql/backfill_goods_info_preview.sql @@ -1,7 +1,8 @@ -- 预览:待回填 goods_info 的订单号(goods_info_id 为空) -SELECT DISTINCT order_id +SELECT order_id FROM order_rows WHERE goods_info_id IS NULL AND order_id IS NOT NULL -ORDER BY order_time DESC +GROUP BY order_id +ORDER BY MAX(order_time) DESC LIMIT 100;