From 05d4c03cd615f1f563c7e51dd6c2cbd25c5c7511 Mon Sep 17 00:00:00 2001 From: "kuang.yifei@iwhalecloud.com" Date: Fri, 10 Jun 2022 18:06:26 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B8=88=E5=82=85=E7=AB=AF=E6=B4=BE=E5=8D=95?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../web/controller/order/OrderController.java | 39 ++++++++++--------- .../order/request/AppOrderAssignRequest.java | 4 ++ 2 files changed, 24 insertions(+), 19 deletions(-) diff --git a/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderController.java b/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderController.java index 0abf45b8..7db1f472 100644 --- a/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderController.java +++ b/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderController.java @@ -2,6 +2,7 @@ package com.ghy.web.controller.order; import com.ghy.common.core.controller.BaseController; import com.ghy.common.core.domain.AjaxResult; +import com.ghy.common.enums.FinancialDetailType; import com.ghy.common.enums.OrderStatus; import com.ghy.common.enums.PayStatus; import com.ghy.common.utils.StringUtils; @@ -124,7 +125,7 @@ public class OrderController extends BaseController { Assert.notNull(acceptWorker, "查询接单师傅信息失败"); // 校验接单师傅和派单师傅是不是同一个Team boolean checkInTeam = workerService.checkInTeam(assignWorker.getWorkerId(), acceptWorker.getWorkerId()); - Assert.isTrue(checkInTeam, "找不到接单师傅信息"); + Assert.isTrue(checkInTeam, "接单师傅不在本团队"); // 创建子订单 OrderDetail od = new OrderDetail(); @@ -134,7 +135,7 @@ public class OrderController extends BaseController { od.setOrderMasterCode(om.getCode()); od.setCustomerId(om.getCustomerId()); od.setOrderType(om.getOrderType()); - od.setOrderStatus(om.getOrderStatus()); + od.setOrderStatus(OrderStatus.PLAIN.code()); od.setWorkerId(request.getWorkerId()); od.setRevTime(new Date()); orderDetailService.insertOrderDetail(od); @@ -144,49 +145,49 @@ public class OrderController extends BaseController { OrderGoods orderGoods = new OrderGoods(); orderGoods.setGoodsStandardId(goods.getGoodsStandardId()); orderGoods.setGoodsNum(goods.getNum()); - orderGoods.setOrderId(od.getId()); + orderGoods.setOrderDetailId(od.getId()); orderGoods.setServerGoodsNum(0); orderGoodsService.insertOrderGoods(orderGoods); }); String leaderTeamMoney = assignWorker.getLeaderTeamMoney(); String leaderTeamRate = assignWorker.getLeaderTeamRate(); + // 派单师傅的钱 - BigDecimal assignWorkerMoney; - // 接单师傅的钱 - BigDecimal acceptWorkerMoney; + BigDecimal assignWorkerMoney = BigDecimal.ZERO; + // 固定抽成 if (StringUtils.isNotBlank(leaderTeamMoney)) { - assignWorkerMoney = new BigDecimal(leaderTeamMoney); - } else if (StringUtils.isNotBlank(leaderTeamRate)) { + assignWorkerMoney = assignWorkerMoney.add(new BigDecimal(leaderTeamMoney)); + } + // 比例抽成 + if (StringUtils.isNotBlank(leaderTeamRate)) { BigDecimal rate = new BigDecimal(leaderTeamRate); - assignWorkerMoney = rate.multiply(fm.getPayMoney()); - } else { - assignWorkerMoney = BigDecimal.ZERO; + assignWorkerMoney = rate.multiply(request.getTotalPay()).add(assignWorkerMoney); } // 如果派单师傅的抽成金额>0 则为派单师傅生成子财务单 if (BigDecimal.ZERO.compareTo(assignWorkerMoney) < 0) { FinancialDetail fd = new FinancialDetail(fm.getDeptId(), financialDetailService.createCode(), fm.getId(), - fm.getCode(), od.getId(), od.getCode(), assignWorkerMoney, 1, assignWorker.getWorkerId(), + fm.getCode(), od.getId(), od.getCode(), assignWorkerMoney, FinancialDetailType.WORKER_FEE.getCode(), assignWorker.getWorkerId(), fm.getPayType(), fm.getPayStatus(), fm.getPayTime()); financialDetailService.insertFinancialDetail(fd); } + // 接单师傅的钱 + BigDecimal acceptWorkerMoney; + // 减掉派单师傅的抽成 - acceptWorkerMoney = fm.getPayMoney().subtract(assignWorkerMoney); - List fds = financialDetailService.selectFinancialDetailList(new FinancialDetail(fm.getId())); - // 减掉所有的平台和分销抽成 - for (FinancialDetail fd : fds) { - acceptWorkerMoney = acceptWorkerMoney.subtract(fd.getPayMoney()); - } + acceptWorkerMoney = request.getTotalPay().subtract(assignWorkerMoney); Assert.isTrue(BigDecimal.ZERO.compareTo(acceptWorkerMoney) < 0, "订单计算出错 请联系管理员"); //为接单师傅生成子财务单 FinancialDetail fd = new FinancialDetail(fm.getDeptId(), financialDetailService.createCode(), fm.getId(), - fm.getCode(), od.getId(), od.getCode(), acceptWorkerMoney, 1, acceptWorker.getWorkerId(), + fm.getCode(), od.getId(), od.getCode(), acceptWorkerMoney, FinancialDetailType.ORDER_FEE.getCode(), acceptWorker.getWorkerId(), fm.getPayType(), fm.getPayStatus(), fm.getPayTime()); financialDetailService.insertFinancialDetail(fd); + // TODO 检查是否商品全部消耗完成,如果完成则还要给派单师傅生成一条财务细单,并更新orderMaster的状态。 + return AjaxResult.success(); } diff --git a/ghy-order/src/main/java/com/ghy/order/request/AppOrderAssignRequest.java b/ghy-order/src/main/java/com/ghy/order/request/AppOrderAssignRequest.java index e394d5d0..fe92df2a 100644 --- a/ghy-order/src/main/java/com/ghy/order/request/AppOrderAssignRequest.java +++ b/ghy-order/src/main/java/com/ghy/order/request/AppOrderAssignRequest.java @@ -3,6 +3,7 @@ package com.ghy.order.request; import com.ghy.goods.request.AppGoodsRequest; import lombok.Data; +import java.math.BigDecimal; import java.util.List; /** @@ -19,6 +20,9 @@ public class AppOrderAssignRequest { // 接受分配的师傅ID private Long workerId; + // 价格 + private BigDecimal totalPay; + // 分配的商品及数量 private List goodsList; }