diff --git a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/order/HardOrderCsVo.java b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/order/HardOrderCsVo.java index 5802e4793..423b24842 100644 --- a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/order/HardOrderCsVo.java +++ b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/order/HardOrderCsVo.java @@ -61,6 +61,12 @@ public class HardOrderCsVo implements BaseMchInterface, BaseHardInterface { @Schema(description = "日期") private String day; + @Schema(description = "平台抽成比例") + private Double mchPlatformRanke; + + @Schema(description = "平台抽成(元)") + private BigDecimal mchPlatformRankePrice; + /** * 导出相关 */ diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/order/HardOrderTotalController.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/order/HardOrderTotalController.java index 0fe1d8eec..6a5975bae 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/order/HardOrderTotalController.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/order/HardOrderTotalController.java @@ -376,6 +376,8 @@ public class HardOrderTotalController { // 总盈利 BigDecimal totalProfitPrice = BigDecimal.ZERO; BigDecimal totalProfitCount = BigDecimal.ZERO; + // 总抽成 + BigDecimal mchPlatformRankeTotalPrice = BigDecimal.ZERO; Long lineNumber = 1L; for (HardOrderCsVo v : list) { v.setLineNumber(lineNumber); @@ -407,6 +409,11 @@ public class HardOrderTotalController { if (ObjectUtil.isNotEmpty(v.getTotalProfitCount())) { totalProfitCount = totalProfitCount.add(v.getTotalProfitCount()); } + // 平台抽成 + if (ObjectUtil.isNotEmpty(v.getMchPlatformRankePrice())) { + mchPlatformRankeTotalPrice = mchPlatformRankeTotalPrice.add(v.getMchPlatformRankePrice()); + v.setMchPlatformRankePrice(v.getMchPlatformRankePrice().divide(BigDecimal.valueOf(100)).setScale(2, RoundingMode.HALF_UP)); + } } // 总消费 map.put("computeTotalPayPrice", totalPayPrice.divide(BigDecimal.valueOf(100)).setScale(2, RoundingMode.HALF_UP).toString()); @@ -417,6 +424,8 @@ public class HardOrderTotalController { // 总盈利 map.put("computeTotalProfitPrice", totalProfitPrice.divide(BigDecimal.valueOf(100)).setScale(2, RoundingMode.HALF_UP).toString()); map.put("computeTotalProfitCount", totalProfitCount.toString()); + // 总抽成 + map.put("mchPlatformRankeTotalPrice", mchPlatformRankeTotalPrice.divide(BigDecimal.valueOf(100)).setScale(2, RoundingMode.HALF_UP).toString()); } excelWriter.fill(map, writeSheet); excelWriter.fill(list, fillConfig, writeSheet); diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardOrderTotalServiceImpl.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardOrderTotalServiceImpl.java index 921b071ea..d5edfb18d 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardOrderTotalServiceImpl.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardOrderTotalServiceImpl.java @@ -224,6 +224,7 @@ public class HardOrderTotalServiceImpl implements HardOrderTotalService { List mchList = getMchListByIds(mchIds); if (ObjectUtil.isNotEmpty(mchList)) { WalletDataUtil.convertMchList(totalList, CollectionUtils.convertMap(mchList, MchManageVo::getId)); + computeMchPlatformRanke(totalList, mchList); } } // 商户部门 @@ -323,6 +324,7 @@ public class HardOrderTotalServiceImpl implements HardOrderTotalService { List mchList = getMchListByIds(mchIds); if (ObjectUtil.isNotEmpty(mchList)) { WalletDataUtil.convertMchList(totalList, CollectionUtils.convertMap(mchList, MchManageVo::getId)); + computeMchPlatformRanke(totalList, mchList); } } // 商户部门 @@ -971,6 +973,23 @@ public class HardOrderTotalServiceImpl implements HardOrderTotalService { return listMap; } + private void computeMchPlatformRanke(List totalList, List mchList) { + // 平台抽成计算 + for (HardOrderCsVo item : totalList) { + MchManageVo targetMch = mchList.stream().filter(v -> ObjectUtil.equals(v.getId(), item.getMerchantId())).findFirst().orElse(null); + if (ObjectUtil.isEmpty(targetMch)) continue; + Double mchPlatformRanke = targetMch.getPlatformRanke(); + if (ObjectUtil.isNotEmpty(mchPlatformRanke) && ObjectUtil.isNotEmpty(item.getTotalProfitPrice())) { + BigDecimal mchPlatformRankePrice = BigDecimal.valueOf(mchPlatformRanke).divide(BigDecimal.valueOf(100)).multiply(item.getTotalProfitPrice()).setScale(2, RoundingMode.HALF_UP); + item.setMchPlatformRankePrice(mchPlatformRankePrice); + item.setMchPlatformRanke(mchPlatformRanke); + } + if (ObjectUtil.isEmpty(mchPlatformRanke)) { + item.setMchPlatformRanke((double) 0); + } + } + } + private List getMchListByIds(List mchIds) { return RemoteBatchQueryUtil.queryByIds(mchIds, ids -> remoteMchService.getByIds(ids).getData()); } diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/file/商户交易金额汇总.xlsx b/pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/file/商户交易金额汇总.xlsx index 41c27a79e..af0f926a0 100644 Binary files a/pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/file/商户交易金额汇总.xlsx and b/pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/file/商户交易金额汇总.xlsx differ diff --git a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/entity/mch/MchManageEntity.java b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/entity/mch/MchManageEntity.java index d18f5feb5..723f236f9 100644 --- a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/entity/mch/MchManageEntity.java +++ b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/entity/mch/MchManageEntity.java @@ -159,6 +159,12 @@ public class MchManageEntity extends Model { @Schema(description = "分店数量") private Long mchCount; + /** + * 平台抽成 + */ + @Schema(description = "平台抽成") + private Double platformRanke; + /** * 创建人 */ diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/mch/MchManageMapper.xml b/pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/mch/MchManageMapper.xml index 61d63a7a8..56f4396a9 100644 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/mch/MchManageMapper.xml +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/mch/MchManageMapper.xml @@ -49,6 +49,7 @@ a.discounts_price, a.cooperation_status, a.mch_count, + a.platform_ranke, a.create_by, a.create_time, a.update_by,