师傅端派单接口
This commit is contained in:
parent
297e441c75
commit
05d4c03cd6
|
|
@ -2,6 +2,7 @@ package com.ghy.web.controller.order;
|
||||||
|
|
||||||
import com.ghy.common.core.controller.BaseController;
|
import com.ghy.common.core.controller.BaseController;
|
||||||
import com.ghy.common.core.domain.AjaxResult;
|
import com.ghy.common.core.domain.AjaxResult;
|
||||||
|
import com.ghy.common.enums.FinancialDetailType;
|
||||||
import com.ghy.common.enums.OrderStatus;
|
import com.ghy.common.enums.OrderStatus;
|
||||||
import com.ghy.common.enums.PayStatus;
|
import com.ghy.common.enums.PayStatus;
|
||||||
import com.ghy.common.utils.StringUtils;
|
import com.ghy.common.utils.StringUtils;
|
||||||
|
|
@ -124,7 +125,7 @@ public class OrderController extends BaseController {
|
||||||
Assert.notNull(acceptWorker, "查询接单师傅信息失败");
|
Assert.notNull(acceptWorker, "查询接单师傅信息失败");
|
||||||
// 校验接单师傅和派单师傅是不是同一个Team
|
// 校验接单师傅和派单师傅是不是同一个Team
|
||||||
boolean checkInTeam = workerService.checkInTeam(assignWorker.getWorkerId(), acceptWorker.getWorkerId());
|
boolean checkInTeam = workerService.checkInTeam(assignWorker.getWorkerId(), acceptWorker.getWorkerId());
|
||||||
Assert.isTrue(checkInTeam, "找不到接单师傅信息");
|
Assert.isTrue(checkInTeam, "接单师傅不在本团队");
|
||||||
|
|
||||||
// 创建子订单
|
// 创建子订单
|
||||||
OrderDetail od = new OrderDetail();
|
OrderDetail od = new OrderDetail();
|
||||||
|
|
@ -134,7 +135,7 @@ public class OrderController extends BaseController {
|
||||||
od.setOrderMasterCode(om.getCode());
|
od.setOrderMasterCode(om.getCode());
|
||||||
od.setCustomerId(om.getCustomerId());
|
od.setCustomerId(om.getCustomerId());
|
||||||
od.setOrderType(om.getOrderType());
|
od.setOrderType(om.getOrderType());
|
||||||
od.setOrderStatus(om.getOrderStatus());
|
od.setOrderStatus(OrderStatus.PLAIN.code());
|
||||||
od.setWorkerId(request.getWorkerId());
|
od.setWorkerId(request.getWorkerId());
|
||||||
od.setRevTime(new Date());
|
od.setRevTime(new Date());
|
||||||
orderDetailService.insertOrderDetail(od);
|
orderDetailService.insertOrderDetail(od);
|
||||||
|
|
@ -144,49 +145,49 @@ public class OrderController extends BaseController {
|
||||||
OrderGoods orderGoods = new OrderGoods();
|
OrderGoods orderGoods = new OrderGoods();
|
||||||
orderGoods.setGoodsStandardId(goods.getGoodsStandardId());
|
orderGoods.setGoodsStandardId(goods.getGoodsStandardId());
|
||||||
orderGoods.setGoodsNum(goods.getNum());
|
orderGoods.setGoodsNum(goods.getNum());
|
||||||
orderGoods.setOrderId(od.getId());
|
orderGoods.setOrderDetailId(od.getId());
|
||||||
orderGoods.setServerGoodsNum(0);
|
orderGoods.setServerGoodsNum(0);
|
||||||
orderGoodsService.insertOrderGoods(orderGoods);
|
orderGoodsService.insertOrderGoods(orderGoods);
|
||||||
});
|
});
|
||||||
|
|
||||||
String leaderTeamMoney = assignWorker.getLeaderTeamMoney();
|
String leaderTeamMoney = assignWorker.getLeaderTeamMoney();
|
||||||
String leaderTeamRate = assignWorker.getLeaderTeamRate();
|
String leaderTeamRate = assignWorker.getLeaderTeamRate();
|
||||||
|
|
||||||
// 派单师傅的钱
|
// 派单师傅的钱
|
||||||
BigDecimal assignWorkerMoney;
|
BigDecimal assignWorkerMoney = BigDecimal.ZERO;
|
||||||
// 接单师傅的钱
|
// 固定抽成
|
||||||
BigDecimal acceptWorkerMoney;
|
|
||||||
if (StringUtils.isNotBlank(leaderTeamMoney)) {
|
if (StringUtils.isNotBlank(leaderTeamMoney)) {
|
||||||
assignWorkerMoney = new BigDecimal(leaderTeamMoney);
|
assignWorkerMoney = assignWorkerMoney.add(new BigDecimal(leaderTeamMoney));
|
||||||
} else if (StringUtils.isNotBlank(leaderTeamRate)) {
|
}
|
||||||
|
// 比例抽成
|
||||||
|
if (StringUtils.isNotBlank(leaderTeamRate)) {
|
||||||
BigDecimal rate = new BigDecimal(leaderTeamRate);
|
BigDecimal rate = new BigDecimal(leaderTeamRate);
|
||||||
assignWorkerMoney = rate.multiply(fm.getPayMoney());
|
assignWorkerMoney = rate.multiply(request.getTotalPay()).add(assignWorkerMoney);
|
||||||
} else {
|
|
||||||
assignWorkerMoney = BigDecimal.ZERO;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// 如果派单师傅的抽成金额>0 则为派单师傅生成子财务单
|
// 如果派单师傅的抽成金额>0 则为派单师傅生成子财务单
|
||||||
if (BigDecimal.ZERO.compareTo(assignWorkerMoney) < 0) {
|
if (BigDecimal.ZERO.compareTo(assignWorkerMoney) < 0) {
|
||||||
FinancialDetail fd = new FinancialDetail(fm.getDeptId(), financialDetailService.createCode(), fm.getId(),
|
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());
|
fm.getPayType(), fm.getPayStatus(), fm.getPayTime());
|
||||||
financialDetailService.insertFinancialDetail(fd);
|
financialDetailService.insertFinancialDetail(fd);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 接单师傅的钱
|
||||||
|
BigDecimal acceptWorkerMoney;
|
||||||
|
|
||||||
// 减掉派单师傅的抽成
|
// 减掉派单师傅的抽成
|
||||||
acceptWorkerMoney = fm.getPayMoney().subtract(assignWorkerMoney);
|
acceptWorkerMoney = request.getTotalPay().subtract(assignWorkerMoney);
|
||||||
List<FinancialDetail> fds = financialDetailService.selectFinancialDetailList(new FinancialDetail(fm.getId()));
|
|
||||||
// 减掉所有的平台和分销抽成
|
|
||||||
for (FinancialDetail fd : fds) {
|
|
||||||
acceptWorkerMoney = acceptWorkerMoney.subtract(fd.getPayMoney());
|
|
||||||
}
|
|
||||||
Assert.isTrue(BigDecimal.ZERO.compareTo(acceptWorkerMoney) < 0, "订单计算出错 请联系管理员");
|
Assert.isTrue(BigDecimal.ZERO.compareTo(acceptWorkerMoney) < 0, "订单计算出错 请联系管理员");
|
||||||
|
|
||||||
//为接单师傅生成子财务单
|
//为接单师傅生成子财务单
|
||||||
FinancialDetail fd = new FinancialDetail(fm.getDeptId(), financialDetailService.createCode(), fm.getId(),
|
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());
|
fm.getPayType(), fm.getPayStatus(), fm.getPayTime());
|
||||||
financialDetailService.insertFinancialDetail(fd);
|
financialDetailService.insertFinancialDetail(fd);
|
||||||
|
|
||||||
|
// TODO 检查是否商品全部消耗完成,如果完成则还要给派单师傅生成一条财务细单,并更新orderMaster的状态。
|
||||||
|
|
||||||
return AjaxResult.success();
|
return AjaxResult.success();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@ package com.ghy.order.request;
|
||||||
import com.ghy.goods.request.AppGoodsRequest;
|
import com.ghy.goods.request.AppGoodsRequest;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -19,6 +20,9 @@ public class AppOrderAssignRequest {
|
||||||
// 接受分配的师傅ID
|
// 接受分配的师傅ID
|
||||||
private Long workerId;
|
private Long workerId;
|
||||||
|
|
||||||
|
// 价格
|
||||||
|
private BigDecimal totalPay;
|
||||||
|
|
||||||
// 分配的商品及数量
|
// 分配的商品及数量
|
||||||
private List<AppGoodsRequest> goodsList;
|
private List<AppGoodsRequest> goodsList;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue