pc发单扣点

This commit is contained in:
kuang.yife 2023-05-28 22:43:18 +08:00
parent a3168fdb6d
commit cea7d3301a
1 changed files with 44 additions and 53 deletions

View File

@ -244,7 +244,7 @@ public class OrderController extends BaseController {
Assert.notNull(financialMaster.getId(), "FinancialMaster.id is null!");
// 生成提成类子财务单
// createDeptFinancialDetail(standard, deptId, financialMaster);
createDeptFinancialDetail(goodsStandards.get(0), deptId, financialMaster);
// 生成商品订单
goodsStandards.forEach(goodsStandard -> {
@ -253,60 +253,51 @@ public class OrderController extends BaseController {
orderGoodsService.insertOrderGoods(orderGoods);
});
// 选择消费者(消费者类型为渠道商不需要) --
// 生成消费者下单地址
// 生成主单
// 生成财务单
// 生成财务细单 -- 平台扣点提成
return AjaxResult.success("下单成功");
}
// /**
// * 平台下单时生成子财务单的方法
// * 只有平台扣点和截流扣点
// *
// * @param goodsStandard 商品
// * @param deptId 企业ID
// * @param financialMaster 主财务单
// */
// private void createDeptFinancialDetail(List<GoodsStandard> goodsStandard, Long deptId, FinancialMaster financialMaster) {
// // 平台
// BigDecimal deptMoney = BigDecimal.ZERO;
// // 截流扣点
// BigDecimal specialMoney = BigDecimal.ZERO;
// // 服务金额
// BigDecimal serverMoney = financialMaster.getServerMoney();
// // 扣点设置类目
// DeptGoodsCategory deptGoodsCategory = deptGoodsCategoryService.get(goodsStandard.get(0).getDeptGoodsCategoryId());
// // 平台扣点 = 平台金额 + 商品单价 * 扣点比例
// deptMoney = deptMoney.add(deptGoodsCategory.getDeptMoney())
// .add(goodsStandard.getGoodsPrice().multiply(BigDecimal.valueOf(Double.parseDouble(deptGoodsCategory.getDeptRate()))));
// // 截流扣点 = 截流金额 + 商品单价 * 扣点比例
// specialMoney = specialMoney.add(deptGoodsCategory.getRetainMoney())
// .add(goodsStandard.getGoodsPrice().multiply(BigDecimal.valueOf(Double.parseDouble(deptGoodsCategory.getRetainRate()))));
// // 平台扣点记录
// FinancialDetail deptDetail = new FinancialDetail(deptId, financialDetailService.createCode(),
// financialMaster.getId(), financialMaster.getCode(), deptMoney, FinancialDetailType.PLATFORM_FEE.getCode(), null);
// financialDetailService.insertFinancialDetail(deptDetail);
// // 剩余服务金额
// serverMoney = serverMoney.subtract(deptMoney);
//
// // 截流扣点记录
// FinancialDetail retainDetail = new FinancialDetail(deptId, financialDetailService.createCode(),
// financialMaster.getId(), financialMaster.getCode(), specialMoney, FinancialDetailType.PLATFORM_FEE.getCode(), null);
// financialDetailService.insertFinancialDetail(retainDetail);
// // 剩余服务金额
// serverMoney = serverMoney.subtract(specialMoney);
//
// FinancialMaster fmUpdate = new FinancialMaster();
// fmUpdate.setId(financialMaster.getId());
// fmUpdate.setServerMoney(serverMoney);
// financialMasterService.updateFinancialMaster(financialMaster);
// }
/**
* 平台下单时生成子财务单的方法
* 只有平台扣点和截流扣点
*
* @param goodsStandard 商品 -- 第一个商品的规格来设置扣点
* @param deptId 企业ID
* @param financialMaster 主财务单
*/
private void createDeptFinancialDetail(GoodsStandard goodsStandard, Long deptId, FinancialMaster financialMaster) {
// 平台
BigDecimal deptMoney = BigDecimal.ZERO;
// 截流扣点
BigDecimal specialMoney = BigDecimal.ZERO;
// 服务金额
BigDecimal serverMoney = financialMaster.getServerMoney();
// 扣点设置类目
DeptGoodsCategory deptGoodsCategory = deptGoodsCategoryService.get(goodsStandard.getDeptGoodsCategoryId());
// 平台扣点 = 平台金额 + 商品单价 * 扣点比例
deptMoney = deptMoney.add(deptGoodsCategory.getDeptMoney())
.add(financialMaster.getPayMoney().multiply(BigDecimal.valueOf(Double.parseDouble(deptGoodsCategory.getDeptRate()))));
// 截流扣点 = 截流金额 + 商品单价 * 扣点比例
specialMoney = specialMoney.add(deptGoodsCategory.getRetainMoney())
.add(financialMaster.getPayMoney().multiply(BigDecimal.valueOf(Double.parseDouble(deptGoodsCategory.getRetainRate()))));
// 平台扣点记录
FinancialDetail deptDetail = new FinancialDetail(deptId, financialDetailService.createCode(),
financialMaster.getId(), financialMaster.getCode(), deptMoney, FinancialDetailType.PLATFORM_FEE.getCode(), null);
financialDetailService.insertFinancialDetail(deptDetail);
// 剩余服务金额
serverMoney = serverMoney.subtract(deptMoney);
// 截流扣点记录
FinancialDetail retainDetail = new FinancialDetail(deptId, financialDetailService.createCode(),
financialMaster.getId(), financialMaster.getCode(), specialMoney, FinancialDetailType.PLATFORM_FEE.getCode(), null);
financialDetailService.insertFinancialDetail(retainDetail);
// 剩余服务金额
serverMoney = serverMoney.subtract(specialMoney);
FinancialMaster fmUpdate = new FinancialMaster();
fmUpdate.setId(financialMaster.getId());
fmUpdate.setServerMoney(serverMoney);
financialMasterService.updateFinancialMaster(financialMaster);
}
/**
* 分配订单