diff --git a/ghy-admin/src/main/java/com/ghy/callback/PayCallbackService.java b/ghy-admin/src/main/java/com/ghy/callback/PayCallbackService.java index 7645e1c8..76ab6794 100644 --- a/ghy-admin/src/main/java/com/ghy/callback/PayCallbackService.java +++ b/ghy-admin/src/main/java/com/ghy/callback/PayCallbackService.java @@ -106,14 +106,14 @@ public class PayCallbackService implements CallBackService { FinancialDetail fd = financialDetailService.selectByOrderDetailId(fc.getOrderDetailId()); FinancialDetail fd2Update = new FinancialDetail(); fd2Update.setId(fd.getId()); - fd2Update.setPayMoney(fd.getPayMoney().add(fc.getChangeMoney())); + fd2Update.setPayMoney(fd.getPayMoney()); fd2Update.setPayStatus(PayStatus.PAID.getCode()); financialDetailService.updateFinancialDetail(fd2Update); // 修改主单的payMoney FinancialMaster financialMaster = financialMasterService.selectById(fd.getFinancialMasterId()); FinancialMaster financialMaster2Update = new FinancialMaster(); financialMaster2Update.setId(financialMaster.getId()); - financialMaster2Update.setPayMoney(financialMaster.getPayMoney().add(fc.getChangeMoney())); + financialMaster2Update.setPayMoney(financialMaster.getPayMoney()); financialMaster2Update.setPayStatus(PayStatus.PAID.getCode()); financialMasterService.updateFinancialMaster(financialMaster2Update); // 更新主订单的支付信息 @@ -128,14 +128,14 @@ public class PayCallbackService implements CallBackService { FinancialDetail fd = financialDetailService.selectByOrderDetailId(orderAdd.getOrderDetailId()); FinancialDetail fd2Update = new FinancialDetail(); fd2Update.setId(fd.getId()); - fd2Update.setPayMoney(fd.getPayMoney().add(orderAdd.getMoney())); + fd2Update.setPayMoney(fd.getPayMoney()); fd2Update.setPayStatus(PayStatus.PAID.getCode()); financialDetailService.updateFinancialDetail(fd2Update); // 修改主单的payMoney FinancialMaster financialMaster = financialMasterService.selectById(fd.getFinancialMasterId()); FinancialMaster financialMaster2Update = new FinancialMaster(); financialMaster2Update.setId(financialMaster.getId()); - financialMaster2Update.setPayMoney(financialMaster.getPayMoney().add(orderAdd.getMoney())); + financialMaster2Update.setPayMoney(financialMaster.getPayMoney()); financialMaster2Update.setPayStatus(PayStatus.PAID.getCode()); financialMasterService.updateFinancialMaster(financialMaster2Update); log.info("订单追加[{}]支付成功", relationId); diff --git a/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderDetailController.java b/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderDetailController.java index 43c81c3e..fe1be86f 100644 --- a/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderDetailController.java +++ b/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderDetailController.java @@ -612,18 +612,28 @@ public class OrderDetailController extends BaseController { masterFee = BigDecimal.ZERO; } // 上门师傅应得加价的报酬 - BigDecimal workerFee = totalAdd.subtract(platformFee).subtract(masterFee).subtract(customerFee); + BigDecimal workerFee = financialChangeRecords.stream() + .filter(record -> record != null && record.getPayStatus() == 1) + .map(record -> { + BigDecimal money = record.getWorkerMoney(); + return money != null ? money : BigDecimal.ZERO; // 处理 getWorkerMoney() 返回 null 的情况 + }).reduce(BigDecimal.ZERO, BigDecimal::add); OrderAttachmentRecord orderAttachmentRecord=new OrderAttachmentRecord(); orderAttachmentRecord.setOrderDetailId(detail.getId()); List orderAttachmentRecords=orderAttachmentRecordService.selectOrderAttachmentRecordList(orderAttachmentRecord); //配件费的实际获取金额计算费率 BigDecimal rate = BigDecimal.valueOf(0.99); - BigDecimal attachmentMoney = orderAttachmentRecords.stream() - .filter(record -> StringUtils.isNotEmpty(record.getPaymentId())) - .map(OrderAttachmentRecord::getAttachMoney) - .map(attachMoney ->attachMoney.multiply(rate).setScale(2, RoundingMode.DOWN)) - .reduce(BigDecimal.ZERO, BigDecimal::add); - logger.info("加价的金额{}配件费{}总服务金额为{}",workerFee,attachmentMoney,orderListResponse.getPayMoney().add(workerFee).add(attachmentMoney)); + List changeRecords= financialChangeRecords.stream() + .filter(record -> record.getPayStatus() == 1).collect(Collectors.toList()); + BigDecimal attachmentMoney=BigDecimal.ZERO; + if (!changeRecords.isEmpty()){ + attachmentMoney = orderAttachmentRecords.stream() + .filter(record -> StringUtils.isNotEmpty(record.getPaymentId())) + .map(OrderAttachmentRecord::getAttachMoney) + .map(attachMoney ->attachMoney.multiply(rate).setScale(2, RoundingMode.DOWN)) + .reduce(BigDecimal.ZERO, BigDecimal::add); + } + logger.info("是否支付{}加价的金额{}配件费{}总服务金额为{}",changeRecords,workerFee,attachmentMoney,orderListResponse.getPayMoney().add(workerFee).add(attachmentMoney)); orderListResponse.setPayAddMoney(orderListResponse.getPayMoney().add(workerFee).add(attachmentMoney)); } diff --git a/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderMasterController.java b/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderMasterController.java index 6d6d12ad..ae45498c 100644 --- a/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderMasterController.java +++ b/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderMasterController.java @@ -1206,12 +1206,10 @@ public class OrderMasterController extends BaseController { BigDecimal attachmentMoney= BigDecimal.ZERO; List orderAttachmentRecords=orderAttachmentRecordService.selectOrderAttachmentRecordList(param1); if(orderAttachmentRecords!=null&&orderAttachmentRecords.size()>0){ - logger.info("配件金额为{}",orderAttachmentRecords.get(0).getAttachMoney()); attachmentMoney= attachmentMoney.add(orderAttachmentRecords.get(0).getAttachMoney()); financialChangeRecord.setAttachmentMoney(attachmentMoney); } if (financialChangeRecord.getPayStatus()==1){ - logger.info("加价的订单{}",financialChangeRecord); if (financialChangeRecord.getLeaderMoney().compareTo(BigDecimal.ZERO)>0){ leaderMoney=leaderMoney.add(financialChangeRecord.getLeaderMoney()); } 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 b4691cf4..c4ef2768 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 @@ -1120,13 +1120,6 @@ public class OrderDetailServiceImpl implements OrderDetailService { BigDecimal saleThreeMoney = financialChangeRecord.getChangeMoney().multiply(saleRateThree); financialChangeRecord.setThreeMoney(saleThreeMoney); - // 大师傅提成 - BigDecimal teamRete = new BigDecimal(workerMaster.getLeaderTeamRate()); - teamRete = MoneyUtil.lt0(teamRete) ? BigDecimal.ZERO : teamRete; - BigDecimal teamMoney = new BigDecimal(workerMaster.getLeaderTeamMoney()); - teamMoney = MoneyUtil.lt0(teamMoney) ? BigDecimal.ZERO : teamMoney; - BigDecimal leaderMoney = financialChangeRecord.getChangeMoney().multiply(teamRete).add(teamMoney); - financialChangeRecord.setLeaderMoney(leaderMoney); // 平台加价抽成 BigDecimal deptRate = new BigDecimal(deptGoodsCategory.getDeptRate()); @@ -1135,7 +1128,18 @@ public class OrderDetailServiceImpl implements OrderDetailService { BigDecimal deptChangeMoney = deptMoney.add(financialChangeRecord.getChangeMoney().multiply(deptRate)); financialChangeRecord.setDeptMoney(deptChangeMoney); - // 截留扣点 + // 大师傅提成 + BigDecimal teamRete = new BigDecimal(workerMaster.getLeaderTeamRate()); + teamRete = MoneyUtil.lt0(teamRete) ? BigDecimal.ZERO : teamRete; + BigDecimal teamMoney = new BigDecimal(workerMaster.getLeaderTeamMoney()); + teamMoney = MoneyUtil.lt0(teamMoney) ? BigDecimal.ZERO : teamMoney; + BigDecimal endMoney=financialChangeRecord.getChangeMoney().subtract(saleOneMoney) + .subtract(saleTwoMoney).subtract(saleThreeMoney).subtract(deptChangeMoney); + BigDecimal workerMoney=endMoney.multiply(BigDecimal.ONE.subtract(teamRete).setScale(2, RoundingMode.DOWN)); + BigDecimal leaderMoney = endMoney.subtract(workerMoney).add(teamMoney); + financialChangeRecord.setLeaderMoney(leaderMoney); + + // 截留扣点 暂不需要 BigDecimal pcDeptRate = new BigDecimal(deptGoodsCategory.getPcDeptRate()); pcDeptRate = MoneyUtil.lt0(pcDeptRate) ? BigDecimal.ZERO : pcDeptRate; BigDecimal pcDeptMoney = MoneyUtil.lt0(deptGoodsCategory.getPcDeptMoney()) ? BigDecimal.ZERO : deptGoodsCategory.getPcDeptMoney(); @@ -1143,9 +1147,7 @@ public class OrderDetailServiceImpl implements OrderDetailService { financialChangeRecord.setDeptAddMoney(deptAddMoney); // 师傅剩余服务金额 - financialChangeRecord.setWorkerMoney(financialChangeRecord.getChangeMoney().subtract(saleOneMoney) - .subtract(saleTwoMoney).subtract(saleThreeMoney).subtract(leaderMoney) - .subtract(deptChangeMoney).subtract(deptAddMoney)); + financialChangeRecord.setWorkerMoney(workerMoney); } diff --git a/ghy-payment/src/main/resources/mapper/financial/FinancialChangeRecordMapper.xml b/ghy-payment/src/main/resources/mapper/financial/FinancialChangeRecordMapper.xml index 14c4c9a0..3bcd03ad 100644 --- a/ghy-payment/src/main/resources/mapper/financial/FinancialChangeRecordMapper.xml +++ b/ghy-payment/src/main/resources/mapper/financial/FinancialChangeRecordMapper.xml @@ -28,7 +28,7 @@ SELECT id, order_detail_id, order_master_id, payment_id, reverse_id, - change_money, leader_money,status, pay_status, type, left_money, remark,urls ,file_names,reason FROM financial_change_record + change_money, leader_money,status, pay_status, type, left_money, remark,urls ,file_names,reason,worker_money FROM financial_change_record