diff --git a/ghy-admin/src/main/resources/application-druid.yml b/ghy-admin/src/main/resources/application-druid.yml index e228b87b..062030f5 100644 --- a/ghy-admin/src/main/resources/application-druid.yml +++ b/ghy-admin/src/main/resources/application-druid.yml @@ -45,8 +45,8 @@ spring: druid: # 主库数据源 master: - url: jdbc:mysql://103.39.234.64:3306/gqz?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 - username: admin + url: jdbc:mysql://211.99.98.27:3306/gqz?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 + username: root password: Clunt@12345 # 从库数据源 slave: diff --git a/ghy-order/src/main/java/com/ghy/order/service/impl/OrderDetailServiceImpl.java b/ghy-order/src/main/java/com/ghy/order/service/impl/OrderDetailServiceImpl.java index b6d0437c..c9a1ef3b 100644 --- a/ghy-order/src/main/java/com/ghy/order/service/impl/OrderDetailServiceImpl.java +++ b/ghy-order/src/main/java/com/ghy/order/service/impl/OrderDetailServiceImpl.java @@ -528,10 +528,12 @@ public class OrderDetailServiceImpl implements OrderDetailService { // 一级分销售 if(customer.getCustomerPlace() != null && customer.getParentCustomerPlace() == null){ placeId = AdapayUtils.getCustomerMemberId(customer.getCustomerPlace(), deptId); - saleRateOne = saleRateOne.add(saleRateTwo).add(saleRateThree); + saleRateThree = saleRateThree.add(saleRateTwo).add(saleRateOne); + saleRateTwo = BigDecimal.ZERO; }else if(customer.getCustomerPlace() != null && customer.getParentCustomerPlace() != null){ + placeId = AdapayUtils.getCustomerMemberId(customer.getCustomerPlace(), deptId); parentPlaceId = AdapayUtils.getCustomerMemberId(customer.getParentCustomerPlace(), deptId); - saleRateTwo = saleRateTwo.add(saleRateThree); + saleRateTwo = saleRateTwo.add(saleRateOne); } // 大师傅提成 @@ -568,7 +570,7 @@ public class OrderDetailServiceImpl implements OrderDetailService { if (paid || payedAdd) { changeMoney = fcRecord.getChangeMoney(); BigDecimal dtx2 = changePaymentConfirm(fcRecord, orderDetailId, orderDetail.getWorkerId(), deptId, memberId, - masterMemberId, teamRete, teamMoney, deptRate, deptMoney); + masterMemberId, teamRete, teamMoney, deptRate, deptMoney, saleRateThree, placeId, saleRateTwo, parentPlaceId); dtx = dtx.add(dtx2); } } @@ -661,8 +663,12 @@ public class OrderDetailServiceImpl implements OrderDetailService { */ private BigDecimal changePaymentConfirm(FinancialChangeRecord fcRecord, Long orderDetailId, Long workerId, Long deptId, String memberId, String masterMemberId, BigDecimal teamRete, BigDecimal teamMoney, - BigDecimal deptRate, BigDecimal deptMoney) throws BaseAdaPayException { + BigDecimal deptRate, BigDecimal deptMoney, + BigDecimal oneRate, String placeOne, BigDecimal twoRate, String placeTwo) throws BaseAdaPayException { BigDecimal changeMoney = fcRecord.getChangeMoney(); + // 分销金额 + BigDecimal placeOneMoney = BigDecimal.ZERO; + BigDecimal placeTwoMoney = BigDecimal.ZERO; // 平台抽成 BigDecimal platformFee = changeMoney.multiply(deptRate).add(deptMoney).setScale(2, RoundingMode.UP); // 大师傅抽成 @@ -672,12 +678,23 @@ public class OrderDetailServiceImpl implements OrderDetailService { platformFee = changeMoney.multiply(deptRate).setScale(2, RoundingMode.UP); masterFee = changeMoney.multiply(teamRete).setScale(2, RoundingMode.UP); } + + // 分销抽成 + // 1级分销 + if (MoneyUtil.lt(oneRate, changeMoney)) { + placeOneMoney = changeMoney.multiply(oneRate).setScale(2, RoundingMode.UP); + } + // 2级分销 + if (MoneyUtil.lt(twoRate, changeMoney)) { + placeTwoMoney = changeMoney.multiply(twoRate).setScale(2, RoundingMode.UP); + } + // 如果是大师傅自己接单,则不需要抽成 if(AdapayUtils.getWorkerMemberId(workerId, deptId).equals(masterMemberId)){ masterFee = BigDecimal.ZERO; } // 上门师傅的报酬 - BigDecimal workerFee = changeMoney.subtract(platformFee).subtract(masterFee); + BigDecimal workerFee = changeMoney; BigDecimal fineMoney = BigDecimal.ZERO; // 查询师傅的超时扣款记录 List fineRecords = orderFineRecordMapper.selectUnFine(workerId, deptId); @@ -705,12 +722,22 @@ public class OrderDetailServiceImpl implements OrderDetailService { boolean feeFlag = false; if (MoneyUtil.gt0(platformFee)) { divMembers.add(new DivMember("0", MoneyUtil.toS(platformFee), true)); + workerFee = workerFee.subtract(platformFee); feeFlag = true; } if (MoneyUtil.gt0(masterFee)) { divMembers.add(new DivMember(masterMemberId, MoneyUtil.toS(masterFee), !feeFlag)); + workerFee = workerFee.subtract(masterFee); feeFlag = true; } + if (MoneyUtil.gt0(placeOneMoney)) { + divMembers.add(new DivMember(placeOne, MoneyUtil.toS(placeOneMoney), !feeFlag)); + workerFee = workerFee.subtract(placeOneMoney); + } + if (MoneyUtil.gt0(placeTwoMoney)) { + divMembers.add(new DivMember(placeTwo, MoneyUtil.toS(placeTwoMoney), !feeFlag)); + workerFee = workerFee.subtract(placeTwoMoney); + } if (MoneyUtil.gt0(workerFee)) { divMembers.add(new DivMember(memberId, MoneyUtil.toS(workerFee), !feeFlag)); }