From 35e0f6fad9e7302a26ae683f641c4e765f9a0fff Mon Sep 17 00:00:00 2001 From: dzc <2388224167@qq.com> Date: Thu, 6 Mar 2025 16:46:12 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E5=A2=9E=E5=8A=A0=E9=92=B1=E5=8C=85?= =?UTF-8?q?=E7=BB=9F=E8=AE=A1=E7=BA=AC=E5=BA=A6=EF=BC=8C=E6=AD=A3=E5=85=83?= =?UTF-8?q?=E5=AF=B9=E6=8E=A5=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- db/1000pjcloudx_thirdparty.sql | 2 +- .../hard/api/vo/order/HardOrderCsVo.java | 12 ++ .../hard/api/vo/order/HardOrderSbVo.java | 14 +- .../order/HardOrderTotalController.java | 97 +++++++++--- .../hard/mapper/order/HardOrderMapper.java | 3 +- .../hard/service/HardOrderTotalService.java | 4 - .../impl/order/HardOrderTotalServiceImpl.java | 147 +++++++++++------- .../main/resources/file/商户交易金额汇总.xlsx | Bin 9897 -> 10027 bytes .../main/resources/file/设备交易金额汇总.xlsx | Bin 10005 -> 10079 bytes .../main/resources/file/部门交易金额汇总.xlsx | Bin 10274 -> 10230 bytes .../mapper/order/HardOrderMapper.xml | 2 +- .../controller/zy/ThirdZySelfController.java | 4 +- .../impl/zy/ThirdZyMerServiceImpl.java | 12 +- .../impl/zy/ThirdZySelfServiceImpl.java | 2 +- .../thirdparty/utils/zy/api/ZyApiTool.java | 4 + .../src/main/resources/application.yml | 3 + .../wallet/mapper/WalletManageMapper.java | 3 +- .../impl/thrid/WalletThirdZyServiceImpl.java | 53 ++++--- .../resources/mapper/WalletManageMapper.xml | 2 +- 19 files changed, 248 insertions(+), 116 deletions(-) diff --git a/db/1000pjcloudx_thirdparty.sql b/db/1000pjcloudx_thirdparty.sql index a22f984e7..93fbde67b 100644 --- a/db/1000pjcloudx_thirdparty.sql +++ b/db/1000pjcloudx_thirdparty.sql @@ -39,7 +39,7 @@ CREATE TABLE `third_zy_id_dict` `id` bigint NOT NULL COMMENT '主键', `self_id` varchar(64) NOT NULL COMMENT '自己这边的id映射', `zy_id` varchar(64) NOT NULL COMMENT '正元id映射', - `biz_type` tinytext(16) NOT NULL COMMENT '同步类型', + `biz_type` tinytext NOT NULL COMMENT '同步类型', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_time` datetime DEFAULT NULL COMMENT '更新时间', `create_by` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '创建人', 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 f611cabec..b0c40293b 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 @@ -39,6 +39,18 @@ public class HardOrderCsVo implements BaseMchInterface, BaseHardInterface { @Schema(description = "总消费次数") private BigDecimal totalPayCount; + @Schema(description = "总退款金额(元)") + private BigDecimal totalRefundPrice; + + @Schema(description = "总退款次数") + private BigDecimal totalRefundCount; + + @Schema(description = "总盈利金额(元)") + private BigDecimal totalProfitPrice; + + @Schema(description = "总盈利次数") + private BigDecimal totalProfitCount; + /** * 导出相关 */ diff --git a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/order/HardOrderSbVo.java b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/order/HardOrderSbVo.java index 2d6c1a0a1..f6b825e8e 100644 --- a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/order/HardOrderSbVo.java +++ b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/order/HardOrderSbVo.java @@ -38,7 +38,19 @@ public class HardOrderSbVo implements BaseMchInterface, BaseHardInterface { @Schema(description = "总消费次数") private BigDecimal totalPayCount; - + + @Schema(description = "总退款金额(元)") + private BigDecimal totalRefundPrice; + + @Schema(description = "总退款次数") + private BigDecimal totalRefundCount; + + @Schema(description = "总盈利金额(元)") + private BigDecimal totalProfitPrice; + + @Schema(description = "总盈利次数") + private BigDecimal totalProfitCount; + /** * 导出相关 */ 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 4902b4f02..13a25897f 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 @@ -13,13 +13,11 @@ import com.bsd.pjcloud.common.core.util.R; import com.bsd.pjcloud.common.log.annotation.SysLog; import com.bsd.pjcloud.hard.api.constant.HardTypeEnum; import com.bsd.pjcloud.hard.api.constant.order.HardOrderStatusEnum; -import com.bsd.pjcloud.hard.api.constant.order.HardOrderTypeEnum; import com.bsd.pjcloud.hard.api.dto.order.HardDeptTotalDto; import com.bsd.pjcloud.hard.api.dto.order.HardOrderDto; import com.bsd.pjcloud.hard.api.vo.order.HardDeptTotalVo; import com.bsd.pjcloud.hard.api.vo.order.HardOrderCsVo; import com.bsd.pjcloud.hard.api.vo.order.HardOrderSbVo; -import com.bsd.pjcloud.hard.api.vo.order.HardZyCardSyncVo; import com.bsd.pjcloud.hard.service.HardOrderTotalService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.security.SecurityRequirement; @@ -53,16 +51,15 @@ public class HardOrderTotalController { @PostMapping("/page-list-sb") @Operation(summary = "设备交易记录") - public R> pageListSb(@ParameterObject Page page, @RequestBody HardOrderDto dto) { - dto.setOrderStatusCodes(HardOrderStatusEnum.getPaySuccessCodes()); - return R.ok(HardOrderTotalService.pageListSb(page, dto)); + public R> pageListSb(@RequestBody HardOrderDto dto) { + return R.ok(HardOrderTotalService.listSb(dto)); } @PostMapping("/page-list-cs") @Operation(summary = "商户交易记录") - public R> pageListCs(@ParameterObject Page page, @RequestBody HardOrderDto dto) { + public R> pageListCs(@RequestBody HardOrderDto dto) { dto.setOrderStatusCodes(HardOrderStatusEnum.getPaySuccessCodes()); - return R.ok(HardOrderTotalService.pageListCs(page, dto)); + return R.ok(HardOrderTotalService.listCs(dto)); } @PostMapping("/page-list-dept") @@ -88,8 +85,15 @@ public class HardOrderTotalController { map.put("endTime", LocalDateTimeUtil.format(dto.getPayTimeList()[1], DatePattern.NORM_DATETIME_PATTERN)); } if (ObjectUtil.isNotEmpty(list)) { - BigDecimal priceTotal = BigDecimal.ZERO; - BigDecimal countTotal = BigDecimal.ZERO; + // 总消费 + BigDecimal totalPayPrice = BigDecimal.ZERO; + BigDecimal totalPayCount = BigDecimal.ZERO; + // 总退款 + BigDecimal totalRefundPrice = BigDecimal.ZERO; + BigDecimal totalRefundCount = BigDecimal.ZERO; + // 总盈利 + BigDecimal totalProfitPrice = BigDecimal.ZERO; + BigDecimal totalProfitCount = BigDecimal.ZERO; Long lineNumber = 1L; for (HardOrderSbVo v : list) { v.setLineNumber(lineNumber); @@ -97,16 +101,40 @@ public class HardOrderTotalController { if (ObjectUtil.isNotEmpty(v.getHardType())) { v.setHardType(HardTypeEnum.valueOfByType(v.getHardType()).getDescription()); } + // 总消费 if (ObjectUtil.isNotEmpty(v.getTotalPayPrice())) { - priceTotal = priceTotal.add(v.getTotalPayPrice()); + totalPayPrice = totalPayPrice.add(v.getTotalPayPrice()); v.setTotalPayPrice(v.getTotalPayPrice().divide(BigDecimal.valueOf(100)).setScale(2, RoundingMode.HALF_UP)); } if (ObjectUtil.isNotEmpty(v.getTotalPayCount())) { - countTotal = countTotal.add(v.getTotalPayCount()); + totalPayCount = totalPayCount.add(v.getTotalPayCount()); + } + // 总退款 + if (ObjectUtil.isNotEmpty(v.getTotalRefundPrice())) { + totalRefundPrice = totalRefundPrice.add(v.getTotalRefundPrice()); + v.setTotalRefundPrice(v.getTotalRefundPrice().divide(BigDecimal.valueOf(100)).setScale(2, RoundingMode.HALF_UP)); + } + if (ObjectUtil.isNotEmpty(v.getTotalRefundCount())) { + totalRefundCount = totalRefundCount.add(v.getTotalRefundCount()); + } + // 总盈利 + if (ObjectUtil.isNotEmpty(v.getTotalProfitPrice())) { + totalProfitPrice = totalProfitPrice.add(v.getTotalProfitPrice()); + v.setTotalProfitPrice(v.getTotalProfitPrice().divide(BigDecimal.valueOf(100)).setScale(2, RoundingMode.HALF_UP)); + } + if (ObjectUtil.isNotEmpty(v.getTotalProfitCount())) { + totalProfitCount = totalProfitCount.add(v.getTotalProfitCount()); } } - map.put("computeTotalPayPrice", priceTotal.divide(BigDecimal.valueOf(100)).setScale(2, RoundingMode.HALF_UP).toString()); - map.put("computeTotalPayCount", countTotal.toString()); + // 总消费 + map.put("computeTotalPayPrice", totalPayPrice.divide(BigDecimal.valueOf(100)).setScale(2, RoundingMode.HALF_UP).toString()); + map.put("computeTotalPayCount", totalPayCount.toString()); + // 总退款 + map.put("computeTotalRefundPrice", totalRefundPrice.divide(BigDecimal.valueOf(100)).setScale(2, RoundingMode.HALF_UP).toString()); + map.put("computeTotalRefundCount", totalRefundCount.toString()); + // 总盈利 + map.put("computeTotalProfitPrice", totalProfitPrice.divide(BigDecimal.valueOf(100)).setScale(2, RoundingMode.HALF_UP).toString()); + map.put("computeTotalProfitCount", totalProfitCount.toString()); } excelWriter.fill(map, writeSheet); excelWriter.fill(list, fillConfig, writeSheet); @@ -131,8 +159,15 @@ public class HardOrderTotalController { map.put("endTime", LocalDateTimeUtil.format(dto.getPayTimeList()[1], DatePattern.NORM_DATETIME_PATTERN)); } if (ObjectUtil.isNotEmpty(list)) { - BigDecimal priceTotal = BigDecimal.ZERO; - BigDecimal countTotal = BigDecimal.ZERO; + // 总消费 + BigDecimal totalPayPrice = BigDecimal.ZERO; + BigDecimal totalPayCount = BigDecimal.ZERO; + // 总退款 + BigDecimal totalRefundPrice = BigDecimal.ZERO; + BigDecimal totalRefundCount = BigDecimal.ZERO; + // 总盈利 + BigDecimal totalProfitPrice = BigDecimal.ZERO; + BigDecimal totalProfitCount = BigDecimal.ZERO; Long lineNumber = 1L; for (HardOrderCsVo v : list) { v.setLineNumber(lineNumber); @@ -140,16 +175,40 @@ public class HardOrderTotalController { if (ObjectUtil.isNotEmpty(v.getHardType())) { v.setHardType(HardTypeEnum.valueOfByType(v.getHardType()).getDescription()); } + // 总消费 if (ObjectUtil.isNotEmpty(v.getTotalPayPrice())) { - priceTotal = priceTotal.add(v.getTotalPayPrice()); + totalPayPrice = totalPayPrice.add(v.getTotalPayPrice()); v.setTotalPayPrice(v.getTotalPayPrice().divide(BigDecimal.valueOf(100)).setScale(2, RoundingMode.HALF_UP)); } if (ObjectUtil.isNotEmpty(v.getTotalPayCount())) { - countTotal = countTotal.add(v.getTotalPayCount()); + totalPayCount = totalPayCount.add(v.getTotalPayCount()); + } + // 总退款 + if (ObjectUtil.isNotEmpty(v.getTotalRefundPrice())) { + totalRefundPrice = totalRefundPrice.add(v.getTotalRefundPrice()); + v.setTotalRefundPrice(v.getTotalRefundPrice().divide(BigDecimal.valueOf(100)).setScale(2, RoundingMode.HALF_UP)); + } + if (ObjectUtil.isNotEmpty(v.getTotalRefundCount())) { + totalRefundCount = totalRefundCount.add(v.getTotalRefundCount()); + } + // 总盈利 + if (ObjectUtil.isNotEmpty(v.getTotalProfitPrice())) { + totalProfitPrice = totalProfitPrice.add(v.getTotalProfitPrice()); + v.setTotalProfitPrice(v.getTotalProfitPrice().divide(BigDecimal.valueOf(100)).setScale(2, RoundingMode.HALF_UP)); + } + if (ObjectUtil.isNotEmpty(v.getTotalProfitCount())) { + totalProfitCount = totalProfitCount.add(v.getTotalProfitCount()); } } - map.put("computeTotalPayPrice", priceTotal.divide(BigDecimal.valueOf(100)).setScale(2, RoundingMode.HALF_UP).toString()); - map.put("computeTotalPayCount", countTotal.toString()); + // 总消费 + map.put("computeTotalPayPrice", totalPayPrice.divide(BigDecimal.valueOf(100)).setScale(2, RoundingMode.HALF_UP).toString()); + map.put("computeTotalPayCount", totalPayCount.toString()); + // 总退款 + map.put("computeTotalRefundPrice", totalRefundPrice.divide(BigDecimal.valueOf(100)).setScale(2, RoundingMode.HALF_UP).toString()); + map.put("computeTotalRefundCount", totalRefundCount.toString()); + // 总盈利 + map.put("computeTotalProfitPrice", totalProfitPrice.divide(BigDecimal.valueOf(100)).setScale(2, RoundingMode.HALF_UP).toString()); + map.put("computeTotalProfitCount", totalProfitCount.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/mapper/order/HardOrderMapper.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/mapper/order/HardOrderMapper.java index fc2ca74f9..7f07035f9 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/mapper/order/HardOrderMapper.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/mapper/order/HardOrderMapper.java @@ -9,7 +9,6 @@ import com.bsd.pjcloud.common.data.datascope.PjcloudBaseMapper; import com.bsd.pjcloud.hard.api.dto.order.HardOrderDto; import com.bsd.pjcloud.hard.api.dto.order.HardOrderSumAndCountDto; import com.bsd.pjcloud.hard.api.entity.HardManagerEntity; -import com.bsd.pjcloud.hard.api.entity.order.HardAfterSaleEntity; import com.bsd.pjcloud.hard.api.entity.order.HardOrderEntity; import com.bsd.pjcloud.hard.api.vo.order.*; import com.github.yulichang.wrapper.MPJLambdaWrapper; @@ -86,7 +85,7 @@ public interface HardOrderMapper extends PjcloudBaseMapper { return selectListByScope(commonWrapper(dto), DataScope.of()); } - Page pageListSb(Page page, @Param("dto") HardOrderDto dto); + Page listSb(Page page, @Param("dto") HardOrderDto dto); List listSb(@Param("dto") HardOrderDto dto); diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardOrderTotalService.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardOrderTotalService.java index 8ec4f0f38..9c4c00d04 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardOrderTotalService.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardOrderTotalService.java @@ -12,12 +12,8 @@ import java.util.List; public interface HardOrderTotalService { - Page pageListSb(Page page, HardOrderDto dto); - List listSb(HardOrderDto dto); - Page pageListCs(Page page, HardOrderDto dto); - List listCs(HardOrderDto dto); List pageListDept(HardDeptTotalDto dto); 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 26442ff10..ecb2799c2 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 @@ -1,6 +1,7 @@ package com.bsd.pjcloud.hard.service.impl.order; +import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.bsd.pjcloud.admin.api.dto.DeptAllListDto; @@ -8,7 +9,6 @@ import com.bsd.pjcloud.admin.api.entity.SysDept; import com.bsd.pjcloud.admin.api.feign.RemoteDeptService; import com.bsd.pjcloud.common.core.util.CollectionUtils; import com.bsd.pjcloud.hard.api.constant.order.HardOrderStatusEnum; -import com.bsd.pjcloud.hard.api.constant.order.HardOrderTypeEnum; import com.bsd.pjcloud.hard.api.dto.HardManagerDto; import com.bsd.pjcloud.hard.api.dto.order.HardDeptTotalDto; import com.bsd.pjcloud.hard.api.dto.order.HardOrderDto; @@ -33,7 +33,6 @@ import org.springframework.validation.annotation.Validated; import java.util.List; import java.util.concurrent.CompletableFuture; -import java.util.stream.Collectors; @Validated @Slf4j @@ -48,88 +47,124 @@ public class HardOrderTotalServiceImpl implements HardOrderTotalService { private final RemoteWalletTransactionService remoteWalletTransactionService; private final RemoteDeptService remoteDeptService; - @Override - public Page pageListSb(Page page, HardOrderDto dto) { - Page list = hardOrderMapper.pageListSb(page, dto); - if (ObjectUtil.isNotEmpty(list)) { - // 商户 - List mchIds = list.getRecords().stream().map(HardOrderSbVo::getMerchantId).distinct().toList(); - if (ObjectUtil.isNotEmpty(mchIds)) { - List mchList = remoteMchService.getByIds(mchIds).getData(); - if (ObjectUtil.isNotEmpty(mchList)) { - WalletDataUtil.convertMchList(list.getRecords(), CollectionUtils.convertMap(mchList, MchManageVo::getId)); - } - } - // 设备 - List hardIds = list.getRecords().stream().map(HardOrderSbVo::getHardId).filter(ObjectUtil::isNotEmpty).distinct().toList(); - if (ObjectUtil.isNotEmpty(mchIds)) { - HardManagerDto hardManagerDto = new HardManagerDto(); - hardManagerDto.setIds(hardIds); - List hardList = hardManagerMapper.list(hardManagerDto); - if (ObjectUtil.isNotEmpty(hardList)) { - HardUtil.convertHardList(list.getRecords(), CollectionUtils.convertMap(hardList, HardManagerEntity::getId)); - } - } - } - return list; - } - @Override public List listSb(HardOrderDto dto) { - List list = hardOrderMapper.listSb(dto); - if (ObjectUtil.isNotEmpty(list)) { + // 查询总流水 + CompletableFuture> totalListFuture = CompletableFuture.supplyAsync(() -> { + HardOrderDto totalDto = BeanUtil.toBean(dto, HardOrderDto.class); + totalDto.setOrderStatusCodes(HardOrderStatusEnum.getPayPrice()); + return hardOrderMapper.listSb(totalDto); + }); + // 扣款总流水 + CompletableFuture> refundListFuture = CompletableFuture.supplyAsync(() -> { + HardOrderDto refundDto = BeanUtil.toBean(dto, HardOrderDto.class); + refundDto.setOrderStatusCodes(HardOrderStatusEnum.getPayErrorCodes()); + return hardOrderMapper.listSb(refundDto); + }); + // 盈利 + CompletableFuture> profitListFuture = CompletableFuture.supplyAsync(() -> { + HardOrderDto profitDto = BeanUtil.toBean(dto, HardOrderDto.class); + profitDto.setOrderStatusCodes(HardOrderStatusEnum.getPaySuccessCodes()); + return hardOrderMapper.listSb(profitDto); + }); + CompletableFuture allFutures = CompletableFuture.allOf(totalListFuture, refundListFuture, profitListFuture); + allFutures.join(); + List totalList = totalListFuture.join(); + List refundList = refundListFuture.join(); + List profitList = profitListFuture.join(); + // 聚合一下数据 + for (HardOrderSbVo v : totalList) { + // 退款 + if (ObjectUtil.isNotEmpty(refundList)) { + refundList.stream().filter(i -> ObjectUtil.equals(i.getHardId(), v.getHardId())).findFirst().ifPresent(i -> { + v.setTotalRefundPrice(i.getTotalPayPrice()); + v.setTotalRefundCount(i.getTotalPayCount()); + }); + } + // 盈利 + if (ObjectUtil.isNotEmpty(profitList)) { + profitList.stream().filter(i -> ObjectUtil.equals(i.getHardId(), v.getHardId())).findFirst().ifPresent(i -> { + v.setTotalProfitPrice(i.getTotalPayPrice()); + v.setTotalProfitCount(i.getTotalPayCount()); + }); + } + } + if (ObjectUtil.isNotEmpty(totalList)) { // 商户 - List mchIds = list.stream().map(HardOrderSbVo::getMerchantId).distinct().toList(); + List mchIds = totalList.stream().map(HardOrderSbVo::getMerchantId).distinct().toList(); if (ObjectUtil.isNotEmpty(mchIds)) { List mchList = remoteMchService.getByIds(mchIds).getData(); if (ObjectUtil.isNotEmpty(mchList)) { - WalletDataUtil.convertMchList(list, CollectionUtils.convertMap(mchList, MchManageVo::getId)); + WalletDataUtil.convertMchList(totalList, CollectionUtils.convertMap(mchList, MchManageVo::getId)); } } // 设备 - List hardIds = list.stream().map(HardOrderSbVo::getHardId).filter(ObjectUtil::isNotEmpty).distinct().toList(); + List hardIds = totalList.stream().map(HardOrderSbVo::getHardId).filter(ObjectUtil::isNotEmpty).distinct().toList(); if (ObjectUtil.isNotEmpty(mchIds)) { HardManagerDto hardManagerDto = new HardManagerDto(); hardManagerDto.setIds(hardIds); List hardList = hardManagerMapper.list(hardManagerDto); if (ObjectUtil.isNotEmpty(hardList)) { - HardUtil.convertHardList(list, CollectionUtils.convertMap(hardList, HardManagerEntity::getId)); + HardUtil.convertHardList(totalList, CollectionUtils.convertMap(hardList, HardManagerEntity::getId)); } } } - return list; - } - - @Override - public Page pageListCs(Page page, HardOrderDto dto) { - Page list = hardOrderMapper.pageListCs(page, dto); - if (ObjectUtil.isNotEmpty(list)) { - // 商户 - List mchIds = list.getRecords().stream().map(HardOrderCsVo::getMerchantId).distinct().toList(); - if (ObjectUtil.isNotEmpty(mchIds)) { - List mchList = remoteMchService.getByIds(mchIds).getData(); - if (ObjectUtil.isNotEmpty(mchList)) { - WalletDataUtil.convertMchList(list.getRecords(), CollectionUtils.convertMap(mchList, MchManageVo::getId)); - } - } - } - return list; + return totalList; } @Override public List listCs(HardOrderDto dto) { - List list = hardOrderMapper.listCs(dto); - if (ObjectUtil.isNotEmpty(list)) { + // 查询总流水 + CompletableFuture> totalListFuture = CompletableFuture.supplyAsync(() -> { + HardOrderDto totalDto = BeanUtil.toBean(dto, HardOrderDto.class); + totalDto.setOrderStatusCodes(HardOrderStatusEnum.getPayPrice()); + return hardOrderMapper.listCs(totalDto); + }); + // 扣款总流水 + CompletableFuture> refundListFuture = CompletableFuture.supplyAsync(() -> { + HardOrderDto refundDto = BeanUtil.toBean(dto, HardOrderDto.class); + refundDto.setOrderStatusCodes(HardOrderStatusEnum.getPayErrorCodes()); + return hardOrderMapper.listCs(refundDto); + }); + // 盈利 + CompletableFuture> profitListFuture = CompletableFuture.supplyAsync(() -> { + HardOrderDto profitDto = BeanUtil.toBean(dto, HardOrderDto.class); + profitDto.setOrderStatusCodes(HardOrderStatusEnum.getPaySuccessCodes()); + return hardOrderMapper.listCs(profitDto); + }); + CompletableFuture allFutures = CompletableFuture.allOf(totalListFuture, refundListFuture, profitListFuture); + allFutures.join(); + List totalList = totalListFuture.join(); + List refundList = refundListFuture.join(); + List profitList = profitListFuture.join(); + for (HardOrderCsVo v : totalList) { + // 退款 + if (ObjectUtil.isNotEmpty(refundList)) { + refundList.stream().filter(i -> ObjectUtil.equals(i.getMerchantId(), v.getMerchantId())).findFirst().ifPresent(i -> { + v.setTotalRefundPrice(i.getTotalPayPrice()); + v.setTotalRefundCount(i.getTotalPayCount()); + }); + } + // 盈利 + if (ObjectUtil.isNotEmpty(profitList)) { + profitList.stream().filter(i -> ObjectUtil.equals(i.getMerchantId(), v.getMerchantId())).findFirst().ifPresent(i -> { + v.setTotalProfitPrice(i.getTotalPayPrice()); + v.setTotalProfitCount(i.getTotalPayCount()); + }); + } + } + // 聚合一下数据 + if (ObjectUtil.isNotEmpty(totalList)) { // 商户 - List mchIds = list.stream().map(HardOrderCsVo::getMerchantId).distinct().toList(); + List mchIds = totalList.stream().map(HardOrderCsVo::getMerchantId).distinct().toList(); if (ObjectUtil.isNotEmpty(mchIds)) { List mchList = remoteMchService.getByIds(mchIds).getData(); if (ObjectUtil.isNotEmpty(mchList)) { - WalletDataUtil.convertMchList(list, CollectionUtils.convertMap(mchList, MchManageVo::getId)); + WalletDataUtil.convertMchList(totalList, CollectionUtils.convertMap(mchList, MchManageVo::getId)); } } } - return list; + return totalList; } @Override 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 aedbeea5f413fbfd2dd3094b642c1a220a61cb95..831e78567c2323c78ed3206feb9aece09ce1d46d 100644 GIT binary patch delta 2320 zcmZ9O2{hDi7sqE~L}4&7$c$~!A}ae5h8Q$iGHJ1!5QZpG7&9TenqRht2}u#Ag#M&P zLW5+B>0eqbQDQ9F#`5>){lDjZ&-*^lInO!wIrrXk&pr3^eV(%8j|h*`!ITpT(Srmq z2;>g|fe;`N$T!5tAuJ>`{Gd-r7)diSI4FVcX7^f4CSgWk6W1QYhz-J7d>V#BUkx{< zjJVl+scpsX!q+g^Uur&2Cem`Ey4!(pce>`4;yF`uMne`Vg(e<_Io%m}`uvZ2SNqwv+*=6=4%A{Q<8iqi4x~yY895@g5F0A`vnBYEKrQc~ zU4{C!2ddxncS^g)-OoRha;=bsRWigFFm6ub^q_HvckU9pIrvRIX*QEf+dbYbay@KB zs`m3f?oaXM+g*RE6LYChb{<~cjH&;2FDu0k^t%VQ6$xoMkGqB>AsvJZnV$4-AF zehXHZagIL3JN3cAhfDtSNp_{nbOO`KO6ln1lTs*h@)7>p)zoX6(x|iYSvg}%Rjx(G zqNDZbW3k2ui{sx)NF;`Atobdk<&T=lJFVN-I8A&$_kVx?muC=I!WOm=Y zOp(XY(dVeJ_!d%1IFT;&0zp+E-aUFCu+5_-S^Osmr=fI-UVSE#X+tP!Y9=8yhE;qT zDNPcl{9Z|;nzTS`2+2(%9M%z^n)8JMV_qpXa0RbU4S4KYSA7x5(@n#apOLO0WERdYn?D;?bTk z7AjNZ$Q4vU+}S&^qw|$y1;N~~33jxXa7>VNZd=)a*%T7Pw;A>)M%wdMm*Tugb z8mhAM2SgX-d&&xr&C=gi>e}}dHcytpQc*Tp>I=$ESpo*3)^Ur~^EqDxPU62HPVBO< zs;a68e%+=U6pRa!i>ULW_)umsfNsI;W*=C;1RBU7c;4@~j(2Nm$dtK^V3>LjSp}^n zt!XOpl(B9tRhhXFh&5C1K_$bz76;2qg=UTpN`c@=uV9z_XN?VT=4w*YBx4cOQr>zV zncG8YzAthr`iTCk zP+)egKf2&s2uPZWAAgQ=(YRTIqoKwrVBL&^C+4c!oEUY(DLQW%~SB2S3@U6TDM` zEmJ2w29`>daOTGLjY2+C7*XVgP91r(xq+5exz8QK|FRs#j^3eNuJ*n^!`!AhFL}_8 zR04ilkE6JDTEf#m*B&UrC*)l>dDmq50OL4t#!b8AGV%Ip>8CxENIp8^_9#_Dok!-wC9m4%f7CJ%+ z5fA$=e|=N22NGU-|Bq|gmiJiC-i$3>HI`{ZyWuFOvWqsWQD|$uxmN!o!|&sd@DnCc z$!*;%;P<2U*Bed-KbPsePBzG#fEpq86+U`?rYuGj07Gw-+oKKE8%f$)I7w? zf^o?Cs6&rBGyGlFSH=9x$ajtY>(<`G>ra#U&k7$>&)!84HcRbb67FFx=9`o=C2=5^7EAlMUFWA!eT5*s_##BSwe>z zr7Q+d%AHb3zM#@`E(_F9#i0zq?f4apqv@On8E$Ro0g=dz^wd_mAQPZrqJq#yWG!F5?4NrVX&YsT_DfK4F?_ z{>Xi_AoWaJcyBB$Vt*~FXhL&3!|t!9<>FneXGzO@^6<;N%Cd>v5eoP)dS3U+)p-ub zKg-1CeV)P(qotu4@zB95w#&NwKb&o=`_)}(HCZy)JQut#gS9(5r=)866`ri? zz8aXnRNv{^h>Geuq;Xq)VZWpfs&wQ0#dq|Dpu$y^E)&Z~if4PQ`t24}U3XGbC)vWV z=OsXx*QVHtKko@G`J48F79uj7{W(Ol=i~DDu6)1EtTB>LRl69MFR(v={x@Oe*iej z4v=*SAggi|?gIN4l>h=O4@9eoLiS;RG!-3)69$+<%L89k#O42=;Vq0oU=U{O+#?Ez zsG5PR0ee+L@FZ|URTqK~0@$jma@&*iVvGB>E$+p(1Gd&bF&to1)fgNB7-JRX|NEAL hKr;V0{oAV;2E2pG?sl*f5Zt~;Y;E{fp`yy$*56r&A({XH delta 2167 zcmZ8ic{tPy7oNp3N(>px#aPA+*-2bWAxjuEX~+_?j-^6WpXZ)G&L8JF=lt=W_kB;LW4S|hI+(g;&(rS(27w3= z5J&_B0{Msf;YgujWG%l?Qh+Aqa!69vxLupJWHO8QYvF8@165zDaAoag{8ZQlt95my ze2*FjtmsMv|L&A5<#1kf*!(7(z zeW)vW_RAu*cS{n6s8w)yAwos(c4Xv97f~0R2R$^N^0T;m3IbNHQiVw$(63x;cxUm3 zoeF6b&+gn{@?G+IrwEJrxR{agHp8Gd&?!L+K10}(>Uqj` zSEc#fBI{uKJMvt)S9Zye5i!5tO)X-TZfET0?Cglp)3J}G3VS=A9>}SPP+j!YF$?dO z@)0f5^lu7fYrf2RjJ(-k@buh+GxXBHPa{Xx5}kK8w|}g!?QlqYyIW$@lgvVWw7Xtd zZ@c2<)O3=F3=(}=JxWH0F~WW+F}yDw=k! z{g6D76iQ8pY)jYeK;4To`2Z%59M#z&bVeTD%&6Z3hcisG^e)nVcb2YX zXGhS3O<7`h4&y&j;@iimtMiHDvPqMKtafF2BUO9{OH zHs2Kal&JDH`514dKUC`H!JG-=iCEW2r{hb<;}p6F7t&VKFP;mp;vj=dP@^Xk)#&(R z)T7(w5j8|a_3O(Om6R-{jfOy4VV)0tqD`UKDXbf9`hHOIG_AmwZ*!?R=qhW=sp%F2 zSJmboeVialZWY~rH)`Xp(U9eS4>MhRySY9*yO&~ERyT*D8RR%0-Mk*e$Y|)8&a*`K zd7mR{!TM55mzZUjuC_lqhaeoXlhAoUT``w-oA1+Rx-}lA;MW5^Vav4R*JuTO3!cn3 z1hE;Rb*xz_Yp%Vz^eYZ*fGcoTsS&4S{WS_P^;4-C6S^QJWiSo%D62@DJMzPBFWh!n z=4`t{7pIB!eJW(5%m$1$#s{iZPSUiwX_^=1xR}P%@)6OAzH=f!@JM^~Z`)MJsj@Jg zq9Gqa+Ymv3?B;`!vDK(rIZ{4~wI;X%EL{g0hotKu9(x}5+LPbgs`x2{HN9BaXSE@BsUr*k13sG31VB(*B8M&EEIJ`d4? za@^#t5$11Z_lo6Z=u?u##Z(EW&XgW_jV!9f!t#W5AH=r+$zth~NIzSw6=jBJB;R}U zdyPEj>iC|p4CzYgfM?zjF#zk}?hr{6=Pfr3Sh6E$G;f=)>cXR5Aj4N=mIj)IbDtGU zc)j9Ya?|m<;BcC-u*s>M*YHSWzra=q+`riwA*~@vD~){RwyS%>!(zPgyQ0uR$`kiz zi46M{%OYD|v=c_eOa3#X;*sbXYalrsE+IJY$eRhlOI}9a6iyY)b3h+OBg>;cfApbI%m`n%kzR7fb zO_(g4T{Vh?XFfBAA-i63z`oodsDl$wI<1oEsUQ8Mf z?jO+^ds?mYr$tMnUZIv`?glzF_&2&Ji^IJ6>~pEi*)nqVpIG&DJda)$^MG-hg_czvvJ?N!3I0kqC+0*y2Dq->&7JJ{In27U@NvO# zE1$~!IzQ?e`}2(LsW!#RVk@e96Jg^yqvP|+^m?KCldyFYO>0I#?gvFoLH3#-u32@q zU?<~1$Qg3Bs&%Sf@DR~Mhbrscg6m*~)^d6qbcgSoIKqvV2=^Vcr9(DGCbV!^D9x z^Wz7Ji+bx<#yH&7)kfnF2J;n`re>-bO5Edz=^|@*|FnF_&X){VwY0k>CPnlq_!I%R zjk&%@96!MM=9!}GFB*oJI=RGFwxsjo@%@&E#+qhNy5ObH<)u`h2kj9crfLs$>>0zx zN~+6(&)cy_;jdge{8oK=+>%1-jjZ6I7FE|LVGRRr0$t`Jw5vbO)P}ylXfG?a3q4w* zaB%H)11)JJ?p9{VVwn#;YEyhm23WJ2Ez)x=-RdrIW~>ibY0NwfG6fkU*lA%=&9%mw z9O&dN{iX@UiAaCUcw=Nqp5Gr-Zr}Cp#=b8-C=@;5hsqhkwSxJNWQN5{w@I~ekM}m> zQ~8;Ve=H{%JinI;xMI8No~SV0-HEyCW0#a$#+f~gaQ3{W-)`V60!zm!j@04t{tvbu zbr`C>tBYT>&WVPNSm?Lj!rWiLYRf?+hN+0P@8QayU+>DT6}{*Z#U$teGnP{;ZL8If zQko}`EisNI2?mWS6ZT!9TipJUwyj>*gdK80`|{Y>a6^>tZo+>;>uN=kMIhhg0V9+t z*b}&hItqzL0t{4^!2cgMV5fwG2tt8eB~x$!Fs7spDVGC;(8nNyasW|YMjeL*L&W~4 zxWAe4ZyoNF0|W-i?`QTQARTQ6)&>U9M&MFF0HY5X;0MexXz72m>7N;EARc1^P6k>q h3NruvE)YoaSId6+<*#;?DCS*yr$xb?kWSQ)YjFd*QX3g&~P1YPsicHB6 zl_i91h3wlT6o#=hw)nWtcYWvjoum?KK&o?IB#q5KMaLeS8dV}`cS+B>7qiG*>d7*Jp$6Kn? z#;RISN+uy$c@wY4z2l-%-^|UB322i{?JKwQ@+}6Q3deviz)nrXn;w@7?{?Tjt|oby zQfsZ!3eJnZ?(FUnBu!XP;KTYYct-49F~-)htLjEYRZ1;GD}o5MdxTT6{^ClMo5s#l znM|TRD24NiD_16$rx+vhuD0N3u-s<6uWraV8}y^)eW=G#zWe<9VM_QLdvALcgi6X5 z-`~vP3o7w#In-Jdew=#i8AHdRM-&{wUvQwdjx}hMdT!l+s~#hmciaDe@4{ z0D4nrH7R{p%(-qYOz6Iu{C<*sHI44#wg?!((D*wSJ`6{PLER%5ef19`*euQ1puz`> z<^;uI>3WsoY{g*i2(#r-aW)VrfD7n=!bzFV0a+@-vCFbcx{{ORiaTemE>$5d0B_(~ z1WwyE%C4a^RDWlg=zBtt7pRrsz`;^_n765wZ*R*5&zaZcmnB(FZMR8zbP77bWY*U{ z{+boh)Tf_r)KoBu#wF+xpQpkz&wlHXmNC@gey&xnD0YBfvl>j4MphOk=0BFjNU)Np8v0*li6@nuVi$(&q$5IC>rE zskw&EAB1t*A2)8QP1;v?2@wU;={D#=#eEAQiV;3Vd`aRtF&d`E)o$)gnzso}*Hmgh z5scErB=ugh5UxB~&@?Y>Tcr`qy$h*Nv+~oA6(VXKGv4b=Qk!WGe>3698&Zo(!a6B^ z^KQSgq?dRBlhMf8M5!Lh&Zl!fSC(;Xa8HYB(gjx_W*W>O{c9aA;a-mSHwKt5?IQF*!=4MZamL=}P_(jlQC*zz&m-eOazSm1hWDBRjGZtjI&_2|?tV zWg!6la!IHU&Fq!+baoq*^{;Dwf4Q@+`Fb8F+Tsh-&HXK>?DC?{R3ne5GH%F|SCS^d z7Vq~Fnq-43q&Ky3{G8h!eqe4SR(|Fh^^GD4C zAT+9K(`zIn8FT|z;MD5J!T+fy4%~d&|6HVF>(T+z(7-R+^D4JeQ0Kg&hy8h)Qn$|t zU^}tMe$ghz@G~--dB7k|2iFi@YEu#c^3sn4QX|rDCo?$<| zqou+HH^vjljk;oxtjgu4sFI}iS$33a56#JzKqF1eeTD>%Z52UovZXp1fNAbl}@Y5n8bLWc_b1CPX#2GcL!qTK9YEiV*o zz#8eQkp&5LWB&CwFMZYzxXK5>z)0&e?3sh4hgK6xr7Jyr`H@@O>)Uq5vcch-tx#e0X8IxV8NwF)0i;08j4f**Tw*LD%mA;UteWanhHL5ckjFN5~T zDZi9zzVE|#A^&fHktojZK=UzqlKwn|+x7{x+}g(O#$&(B0EaP^Tm4ne!y6-{ynDU= zKhH2j#7d^sN8(_r46%YbH5fZ6Jo54GA3rs4Pb7A zH3cz)k#P?(XPF6hvjfB>P1NVaHjW$F*rj_Hp5wmdBs#ScKHr6gDprX-nL{t7nC&&N z3XWD($Fu&Rn6Mb-rE`zyB(NHMRh<~V+SZ28IDe_10-M+VHMYzj_?2kN63IdEFnfls zw$c`Q%8h;&er;m( zPG9%U-$rzuH+(L2wb!W6Y#r&ydoS^4JvX$j5D31ue{2)aco~&2rMj*n5JspU50G_R zR^O?}`%*f!p^p99$6Ofq|Lsw~g~^oMKY2=3`yBDCe{NE}>$*f`wm_@^_!%H0qX!X! z10FJ`A?M%#MJAo=e}4+#48jt!3jtygx*T>;5Gc%78Hhlg1m+QZU>AUePzT2XXrz+F zze)yy4zuyFz#z$k6A6SOFMwx(8l)C@6<9;6gT(-O6iVXo*}OZ@e(OPM9y_ET)ISru nfDZ}-4h5c~q)z^ut00i*KcxS%3ZOtYR2Is;`Hl29Qn zW3dy;}(sS}muS(Nt9ki|yF4VL6D`7HEN>>zSq~n}{T;ByA;s-yvzq79|wvg`gfEXWlFv%^zR$ z%sW#d882cK`62RXL3qN7LyUg@*xo%LPbyp_IO7G4(HoWMaq;oPyyD_T9w}8GSSVzS zj!KoYAduupb1Z#c(gIFWE`M^Y;8Pp|Sqh31b1Bb)K^TsM9J2yh3p4Q^8$3-Jp=(Y~ zIW3emB4~yc=$A)U%G%m%@-BOcz!k(=>$#D*wkM6fXw=b{Ga|U;sqzWW11qf?=0MP*1XQEM89K9T+YlxIN35dNbkHf~dOMsjAAaO6im0qT(h&(SIbMYITx|=WDDm zTFgxao<*>jCk(QvOYaGq#^@=U?M4W2!}!H$C2#hg!u#(uqeRgJS_OH!1@@f3XyRvp zLT%d+v_(u5JJS`-vKTFO7yU6lU<(d{#>4Ht_O>-m^DMlCrudYp70-UNL>*%^MK$(~ zSDz?592H0z`(U4+RDZ?_`h}ip28S^kwlOdgqp@~Qcm|$e^>U`09(g%_jnM=mvR;Ov zKb{VT;l!?RKurEFBBF~CdmUVx>maSZe&2T?ux?G@x)6)G;FSkW3jTEzLwI`DO%oR+ zt;G6mMY9RymT2}9&^3ZQxFZ2QFT#0nhBT53V_7qFsQSvv1%K8quyKK{3+!%y0E9Q{ z2mhxY=%60fMt$U{?=l8$#;VI0wi)X#W7KABx{UiaW7}nn+l*b8F=-gB96=}Q3J;pT z_;-bY4mpCg$Nyn$ zGYh3h_^Hs%08h6;ujALu78f7QK%<_T%>m4>5+CSSEDo%YUPeR6v-#04{s97z9k0eI<7zN4^q|7JSR9Cf zHdKXifL#y}3{ABTnOe4%mkh?ZB3;Z()#E(e)PHs6cn|@mkq}}@4hThn%Pp;8rZ-DYtzD8!?ybZU}HAhS;5! z#{I9f*ZltIiM#7b^J?;NF9uCtgiyT;L6c zX@BQD%f#79I_RYBQ<3EIp?ydjSvS@^K;0d; z091gyzr~JS4;LW>spA363rtQp2&$l7rM|OBpY!R1=91G^GVXVC^Ed>B5r_8wy)&n> z3A+56)(=oi0|XQR000O8hfd-^6gR~L_a_(CU}6InT-+fRAh{w0{rQaSSyT_raYsi z;1J+vQ1~W%|8Ct1`Se|gCu9NYSX?dSgmll&RGe^K@p;L{Xi?z_qoKV zq)KlyrXdUP!nmS^*MN(WZ0e|CrFr!h_8gP&MdYJ2PN(+BpjEH&&P6TbnP@)%I~CfD zaCyD5J1+SH--|Z9-Xh+2WG3Caccz|Wihujee8{`Z>B%D_rDggkQD=If=h${x>{OpoGjdHC%)af$**zR=PqOZX5+$Z73wSEMHA^VTG3>Qms1yXQ8$8#V$7k z`eoF>>x*ZTTKB-BFJVMJv$x91DyXnXZ~hh8WCR49=HgIEAiLxI={Sz$nwZ5IyW zVr=M@F&ArHdj~rGrLGPtV`gd~PRsyONz}+?gq}#y3SHp;o@hGR|5)@X&)@Z^X4@}L z(OE|_0UhEzJT&KTHKCzKlUazvjuNL0XT(iAMSw`5q;eZo(v~FsTFV8J4+F7n?Bo4J zDiP10{T?9}ksp>S7)>rr5$TGZ33#ul9y(D?S*`IkJNv{^0^`?3rzdGK&<}gpe)njw zK4^|(=kp?-!H&-IR*UYI9cQwiIAl)>P_x}EyM<#&rE4{~)I6m%)FCBfzIta$K&(Da z8QRE6iUD5Bt#~CGLJ9zcpohu$kvKW}m|Y8*%kJ{CV^T^QW(k=U{#0c*w*cq$>Nyh2 zdeK@aV*Q(e4wbCuc4|B2boghtcCUrmgKdj~AT~jV;Y5!3^VGoVxS*G;0~{y#-P3(G z+A1tP%hGUdHdg)Yo z>d_n`8doW3U}_p}s;z_+TdI1;AoLfxuIShUeCT}^f&EJFL%E9Hprwm?qxP>wRiV$Vv_-e3%*)xDZ63+;S826O zBApn*Xm!Yb|J8!U{+`8nbWn@if`Z3BM>=;-spmU6=)S4%3~I7P{=k-i{x8mhj>R79*+g zgk!_FTLkE80(BY(ZR)t6f^{+up5!^r+lV69qj)P2U1%pf^hu_Bdo{l&-E ztlA11x=;di)d(A85-C`&t{Wvv2gh|W(fvf&q>zr^MghpGOt*;!GZCN}n`+aP*3jCd;F5i6>qT?LuSPYsH^`AC8O`_M27VmxbA z7ONYCfDEQ3k*Z+axhbXACQ;IuEVgkpsmj*Q)xiO~%BkB@{+W+2O@K`SZe#b-n+ zz*ZcO&&tyEfb~@y>pEG0{nzVZ4kJ@2h=my)*?hxO$Y2Ht6zM)MNAEB)dxi3FQ#Py( zp`?+`S*-K&^w6V@M4Ht1h|LL1w>hVT%jc$xh5bn4!MZNj=#Xl#q!OD%CFt>#!WS;5 zPZgX4Af`<~7)hm9*GW;?z2*vB7VFf=9PmNRT`sa`cOGXw>C<6~4w$BXh{$_?q1auS z(H*OBP@DqJtJ>x@?_ILUEwXOBD?5G(Fw}WL!qxbKlAq$*$JO(D%U7*Y0o_i=g-p}a zSyblg-;EBBl{oTjexR<+2v$uI?g)*LJlUprd0*j{tB9?wiUT&Px;)MreoXQkQXV}u z#dhkNGZ~sV=7eZlcf>jJ?ZYp>!B3QIYx)9gZ9V{p&*SDcgDMhfAfDe(90oLVIcp0< zAyMACa4vN+_qWtEq6!9u=Fh#=kYkKar92yWooNS8u<9oTBN}z#1qNEl%oM)?2TAgu z^*jJDsqdSG{M%|jnH=63slH3H{=~=6cd<>DfdM7=g%05Kg=;H9d%(qoJ|}HF_EQF^ zz&@jnfc!$sOJb0KzS8%eqm#buV=3mS#~DN1BYE`90-X5{tGjE)GWp!x$ffXe%h}%U zlu)^`!=uJ-FO6CG-qBV$Pn)=?5qG&+$+Xgf7u-BLDw+1P#rB&%LNQ{o$FlFwgda-H zdpj~kn;`@4vd85r{r1(aD%4R#8Q92QYl%1n^L^~S$ z=VkU7*$&9oCVkDcI2~~=NN2d<__MNcW+U*X@RCPxZAkkKgW}rmr>byK)khiEKZ;O~ zC2Iy0j)|m?N;elgORqHfp&^!Zx3S#pA?K4Xc`?$z-t_Iivn;=G%RZuI*~Tj5e5+lw zyS0u?0pG!#?*?1||Gzay2vV-KUsb>VsxN~90Q3?)FH&`rgvz9ttmc8SscVjh0UC6# zj!L#6|Ap%pWFcz8b4wcUw|H{4v(u(%hTV9t`b|YxFfcAZJBeXW_xp2RwezbiRFdciDa z*EiZoBYo++t{RUW_FYLdHX`-~Tm~O+x;_)|OI~m?aS-I1r~eD3Qf0lGpZIsb?_@aH z)0<5k#T#P3l65Y+j!I~2TjGwmv+p16)KqR{;gG;vyad^RV8Y;_OZpwH&)GbiiieB4 z^oZF2?IYHFC^de3&Z570d%Q+tt8Dfo-a{n0mNg@@?9Ea4eNS2I(pBz!06h$6g+|7o9>!@2FStSxjh5>l_G})1VT!I;qIo%FsTxm*8WUo%+c5 zWvv4VhCtuWuU;^_UD>nR!l}yT-?I9%)A;SLoeBr z5(!668MGm9?+ZsP_fhgJhT+e<&o`75Lw0WiIUxCb{F%aJ7O|o76_>$M$U}4lK!8*j zRM?p~9CQ*pt}=-8DyC2KyFq(bm$f|m*88y9izwy4dZUYbH_#<%>UUx&{E_jM(xGz# zn)|yU&S0g-=Ud(okiX##+SXV6xR?_dZ(%{G_u=OEwUFIB%^ybC7gMXECq~(c$cwd~ z7i}oz&xxgE5DI zX&5icCsENL&^2&4eM&YOc?`joNlcc=(3;(|{Tx~%(bl~akgUZnTPXBN9C423XY3z^ zMV6GsjKJ>>G7P)a=_?`SI@wCp)>nYWtR*hMA)HA!; zNqyhF09Iru9J#k}(%zN`zDw;IWZ6}IpTwJtAo(|(R4uBSa{B;@<2_;vxL}IwndYO3 zr#Ido81Es#q0D^H^}@VoYeCXNs?vF1Pktmi8>lhzP$$q+?~mWTLp-zUIzInV+6exp zMC==2ZVnV0or6~QY7<2sm})!r*ptVwM{2#AcMm-8Vps0Mq>si7n2_!glI^r@^v%Ut zc+4k|teY=3(^HYOJg!C?FR7DCf}z3D4e`o zwaNCqo3% zTvqiv)dv##{dSUSa|+c@f>-xikz8Q5lb!q{S;Ww{##Djhf^OVO54u}Ebx;y50Z+|yJBDfnmfY$rVgKD7{h|&JU1P+k-$b1+SIbqPH^a-a zoQP0o5SL}E5sDq0M0*- zj%~nJL)?2=YHh=pM?#B`;d+#@C?P1f*d#1|CZ3#b%qm_W^OXnc(d{~tEiVPio}byE z`d0{HiScaJ#6Dimvni3RPFoF5f$?c;mhGR5UDPx50+)-U`ofteuP!>}6b#z$q+}Y_ zpu$^XcghAfYmSX(tFT3djFRg-klD^ywKcn< zbhSlnUCqjrQVKo>M+V}ef-f8)51GczXHDg9)DsYizwU|M3d&F(+Kw;Cfw>c@X@Kwr~o0gaY;sHYcl? z22Q3`&Zn(0sD;g$s<%E|&7mQ=HeK(nfyPVMX;;-WDSXv$D&Gz@8GBQVzBLpVvh{x=WP zEbzlg$9oQCbZ$`^D2682V|&=bC28tkjeERGWIz?P1XLOL8to0e1sp?{L($j%HMeLL z0Yj2A5;R&s31mtJ00g>=qZ43U=y50=$sq(yE+_-!Mk@-6a{fE>Q2+pcY}%gy0w7mw z3_3~>#`*6T;s^lH{vog8A3hS@C#V24ehHHW2BUAo1j+sk5NKN%D=-Tk2!jKkqMKlR aoc}sKY5;)!ANl|EC1^ZMgkqlm5BML`d~}=u delta 4058 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 - select a.hard_id, a.merchant_id, diff --git a/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/java/com/bsd/pjcloud/thirdparty/controller/zy/ThirdZySelfController.java b/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/java/com/bsd/pjcloud/thirdparty/controller/zy/ThirdZySelfController.java index 1e7b4393f..eb5fd2cf8 100644 --- a/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/java/com/bsd/pjcloud/thirdparty/controller/zy/ThirdZySelfController.java +++ b/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/java/com/bsd/pjcloud/thirdparty/controller/zy/ThirdZySelfController.java @@ -27,7 +27,7 @@ public class ThirdZySelfController { @Inner(value = false) @GetMapping("/checkSystemStatus") @Operation(summary = "第三方url健康探测", description = "第三方url健康探测") - @Idempotent(expireTime = 3, info = "请勿重复调用") + // @Idempotent(expireTime = 3, info = "请勿重复调用") public Map checkSystemStatus() { return zySelfService.checkSystemStatus(); } @@ -35,7 +35,7 @@ public class ThirdZySelfController { @Inner(value = false) @GetMapping("/getToken") @Operation(summary = "第三方提供获取token", description = "第三方提供获取token") - @Idempotent(expireTime = 3, info = "请勿重复调用") + // @Idempotent(expireTime = 3, info = "请勿重复调用") public ZySelfGetTokenVo getToken(ZySelfGetTokenDto params) { return zySelfService.getToken(params); } diff --git a/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/java/com/bsd/pjcloud/thirdparty/service/impl/zy/ThirdZyMerServiceImpl.java b/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/java/com/bsd/pjcloud/thirdparty/service/impl/zy/ThirdZyMerServiceImpl.java index 972170600..ed30f5c19 100644 --- a/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/java/com/bsd/pjcloud/thirdparty/service/impl/zy/ThirdZyMerServiceImpl.java +++ b/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/java/com/bsd/pjcloud/thirdparty/service/impl/zy/ThirdZyMerServiceImpl.java @@ -155,7 +155,7 @@ public class ThirdZyMerServiceImpl implements ThirdZyMerService { Map userIdDict = zyApiTool.generateZyId(bizType, userList); // 转换身份编号 List roleList = dto.stream().map(ZyMerSyncAccountInfoDto::getAccClassID).distinct().toList(); - Map roleIdDict = zyApiTool.generateZyId(bizType, roleList); + Map roleIdDict = zyApiTool.generateZyId(ThirdZyBizEnumType.SYNC_ACC_CLASS_INFO, roleList); for (ZyMerSyncAccountInfoDto v : dto) { v.setEPID(deptIdDict.get(v.getEPID())); v.setPerCode(userIdDict.get(v.getPerCode())); @@ -215,10 +215,14 @@ public class ThirdZyMerServiceImpl implements ThirdZyMerService { String url = zyConfig.getBaseUrl() + ZyApi.Mer.SYNC_ACC_CLASS_INFO; try { // 转换zyId - List roleList = dto.stream().map(ZyMerSyncAccClassInfoDto::getEPID).distinct().toList(); - Map roleIdDict = zyApiTool.generateZyId(bizType, roleList); + List deptList = dto.stream().map(ZyMerSyncAccClassInfoDto::getEPID).distinct().toList(); + Map deptIdDict = zyApiTool.generateZyId(ThirdZyBizEnumType.SYNC_ENTERPRISE_INFO, deptList); + // 转换身份id + List roleList = dto.stream().map(ZyMerSyncAccClassInfoDto::getAccClassID).distinct().toList(); + Map roleIdDict = zyApiTool.generateZyId(ThirdZyBizEnumType.SYNC_ACC_CLASS_INFO, roleList); for (ZyMerSyncAccClassInfoDto v : dto) { - v.setEPID(roleIdDict.get(v.getEPID())); + v.setEPID(deptIdDict.get(v.getEPID())); + v.setAccClassID(roleIdDict.get(v.getAccClassID())); } url = String.format(url, zyApiTool.getToken()); Map encryptionBody = new HashMap<>(); diff --git a/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/java/com/bsd/pjcloud/thirdparty/service/impl/zy/ThirdZySelfServiceImpl.java b/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/java/com/bsd/pjcloud/thirdparty/service/impl/zy/ThirdZySelfServiceImpl.java index 9ecb7b4cf..bc44d2101 100644 --- a/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/java/com/bsd/pjcloud/thirdparty/service/impl/zy/ThirdZySelfServiceImpl.java +++ b/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/java/com/bsd/pjcloud/thirdparty/service/impl/zy/ThirdZySelfServiceImpl.java @@ -393,6 +393,6 @@ public class ThirdZySelfServiceImpl implements ThirdZySelfService { dto.setLoginTime(System.currentTimeMillis()); dto.setExpireTime(dto.getLoginTime() + zyConfig.getSelfExpiresIn() + 100); String redisKey = CacheConstants.THIRDPARTY_ZY_SELF_TOKEN + dto.getToken(); - redisTemplate.opsForValue().set(redisKey, JSONUtil.toJsonStr(dto), zyConfig.getSelfExpiresIn(), TimeUnit.MINUTES); + redisTemplate.opsForValue().set(redisKey, JSONUtil.toJsonStr(dto), zyConfig.getSelfExpiresIn(), TimeUnit.SECONDS); } } diff --git a/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/java/com/bsd/pjcloud/thirdparty/utils/zy/api/ZyApiTool.java b/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/java/com/bsd/pjcloud/thirdparty/utils/zy/api/ZyApiTool.java index 934a0afb4..f79351e53 100644 --- a/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/java/com/bsd/pjcloud/thirdparty/utils/zy/api/ZyApiTool.java +++ b/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/java/com/bsd/pjcloud/thirdparty/utils/zy/api/ZyApiTool.java @@ -98,6 +98,10 @@ public class ZyApiTool { list.clear(); result.clear(); for (String v : selfIds) { + if (v.length() <= 16) { + result.put(v, v); + continue; + } Optional first = bySelfIdList.stream().filter(i -> ObjectUtil.equals(v, i.getSelfId()) && ObjectUtil.equals(type.getType(), i.getBizType())).findFirst(); if (first.isPresent()) { result.put(v, first.get().getZyId()); diff --git a/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/resources/application.yml b/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/resources/application.yml index 53d9fde2b..5a0463b26 100644 --- a/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/resources/application.yml +++ b/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/resources/application.yml @@ -47,6 +47,9 @@ zy: base-url: http://60.191.37.212:18079 app-id: 689C8D6F5059A6F85B8BE45A49001ACB app-secret: BD21DA0DEB8F0FC43246B0BD2FCAE6FF + # app-id: FC455B0A788E334AC08FB3E1D8385C75 + # app-secret: E9131D0BCC9054808675DA1E2E199023 + self-base-url: http://60.191.37.212:18079 self-app-id: xA5jF2vX4zO5mQ8tR9yE7rC7iI0fK0kI diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/WalletManageMapper.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/WalletManageMapper.java index 6f7afb967..d988e1bf5 100644 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/WalletManageMapper.java +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/WalletManageMapper.java @@ -36,7 +36,8 @@ public interface WalletManageMapper extends PjcloudBaseMapper mchList = mchManageService.list(new MchManageDto()); - if (ObjectUtil.isEmpty(mchList)) { - log.info("|{}| syncAllRole 错误 mchList为空", TAG); + // 查询部门信息 + List deptList = remoteDeptService.getAllDept(null).getData(); + if (ObjectUtil.isEmpty(deptList)) { + log.info("|{}| syncAllRole 错误 deptList为空", TAG); return; } - for (MchManageVo i : mchList) { - List syncList = new ArrayList<>(); + List syncList = new ArrayList<>(); + for (SysDept i : deptList) { String syncAllMchVersion = getSyncAllMchVersion(); for (SysRole j : roleList) { ZyMerSyncAccClassInfoDto entity = new ZyMerSyncAccClassInfoDto(); @@ -174,14 +174,14 @@ public class WalletThirdZyServiceImpl implements WalletThirdZyService { entity.setFixId(syncAllMchVersion); syncList.add(entity); } - try { - if (ObjectUtil.isNotEmpty(syncList)) { - ZyMerSyncAccClassInfoVo res = thirdZyService.syncAccClassInfoApi(syncList).getData(); - if (ObjectUtil.isEmpty(res)) return; - } - } catch (Exception e) { - log.error("|{}syncAllRole 调用第三方接口错误|", TAG); + } + try { + if (ObjectUtil.isNotEmpty(syncList)) { + ZyMerSyncAccClassInfoVo res = thirdZyService.syncAccClassInfoApi(syncList).getData(); + if (ObjectUtil.isEmpty(res)) return; } + } catch (Exception e) { + log.error("|{}syncAllRole 调用第三方接口错误|", TAG); } } @@ -208,22 +208,27 @@ public class WalletThirdZyServiceImpl implements WalletThirdZyService { log.error("|{}|syncAllUser 同步到正元全部身份信息错误walletType为空", TAG); return; } + int total = 0; while (true) { - boolean isNotEmpty = syncAllUserGroup(page, userId, defaultUserRole.get().getRoleId(), walletType.getId()); - if (!isNotEmpty) break; + int syncCount = syncAllUserGroup(page, userId, defaultUserRole.get().getRoleId(), walletType.getId()); + if (syncCount > 0) { + total += syncCount; + } + if (syncCount <= 0) break; page.setCurrent(page.getCurrent() + 1); } + log.info("|{}|总共同步|{}|条数据", TAG, total); } - private boolean syncAllUserGroup(Page page, Long userId, Long roleId, Long walletTypeId) { + private int syncAllUserGroup(Page page, Long userId, Long roleId, Long walletTypeId) { WalletManageDto query = new WalletManageDto(); query.setWalletTypeId(walletTypeId); if (ObjectUtil.isNotEmpty(userId)) query.setUserId(userId); DataScope dataScope = DataScope.of(); dataScope.func(DataScopeFuncEnum.ALL); Page userPage = walletManageService.scopePageList(page, query, dataScope); - if (ObjectUtil.isEmpty(userPage.getRecords())) return false; + if (ObjectUtil.isEmpty(userPage.getRecords())) return 0; List syncList = new ArrayList<>(); String syncAllMchVersion = getSyncAllMchVersion(); for (WalletManageVo v : userPage.getRecords()) { @@ -241,8 +246,10 @@ public class WalletThirdZyServiceImpl implements WalletThirdZyService { if (ObjectUtil.isEmpty(v.getCardNumber())) { walletManageService.createWallet(v.getUserId()); WalletManageEntity wallet = walletManageService.getWallet(v.getId()); - if (ObjectUtil.isNotEmpty(wallet)) { + if (ObjectUtil.isNotEmpty(wallet) && ObjectUtil.isNotEmpty(wallet.getCardNumber())) { v.setCardNumber(wallet.getCardNumber()); + } else { + continue; } } ZyMerSyncAccountInfoDto item = new ZyMerSyncAccountInfoDto(); @@ -261,13 +268,13 @@ public class WalletThirdZyServiceImpl implements WalletThirdZyService { try { if (ObjectUtil.isNotEmpty(syncList)) { ZyMerSyncAccountInfoVo.DataVo res = thirdZyService.syncAccountInfoApi(syncList).getData(); - if (ObjectUtil.isEmpty(res)) return false; + if (ObjectUtil.isEmpty(res)) return 0; } } catch (Exception e) { log.error("|{}syncAllUserGroup 调用第三方接口错误|", TAG); - return false; + return 0; } - return userPage.getTotal() > 0; + return syncList.size(); } @@ -291,8 +298,8 @@ public class WalletThirdZyServiceImpl implements WalletThirdZyService { try { WalleCardStatusEnum walleCardStatusEnum = WalleCardStatusEnum.valueOfByType(cardStatus); return switch (walleCardStatusEnum) { - case NONE_ACTIVE, LOCK -> 5; - case ACTIVE -> 1; + case LOCK -> 5; + case ACTIVE, NONE_ACTIVE -> 1; case REPORT -> 2; case FREEZE -> 3; case CANCEL -> 0; diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/WalletManageMapper.xml b/pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/WalletManageMapper.xml index 7fd723753..102d93f19 100644 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/WalletManageMapper.xml +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/WalletManageMapper.xml @@ -59,7 +59,7 @@ a.del_flag = 0 AND a.create_time = (SELECT MAX(sub.create_time) FROM wallet_transaction sub WHERE sub.user_id = a.user_id AND - DATE_FORMAT(sub.create_time, '%Y-%m') = #{dto.walletRecordMonth}) + DATE_FORMAT(sub.create_time, '%Y-%m') <= #{dto.walletRecordMonth}) AND a.user_id = #{dto.userId}