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 1/9] =?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 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 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} From 694f4b43cbb799ec032545ccc1e9d01716f08943 Mon Sep 17 00:00:00 2001 From: dzc <2388224167@qq.com> Date: Thu, 6 Mar 2025 19:42:58 +0800 Subject: [PATCH 2/9] =?UTF-8?q?feat:=E6=AD=A3=E5=85=83=E6=B5=8B=E8=AF=95?= =?UTF-8?q?=E7=8E=AF=E5=A2=83=E5=AF=B9=E6=8E=A5=E6=88=90=E5=8A=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/hard/HardThirdSelfZyServiceImpl.java | 3 - .../thirdparty/vo/zy/self/ZySelfPayVo.java | 4 +- .../impl/zy/ThirdZySelfServiceImpl.java | 92 +++++++++++-------- .../thirdparty/utils/zy/api/ZyApiTool.java | 12 ++- .../java/com/bsd/pjcloud/admin/ZyTest.java | 23 +++-- 5 files changed, 80 insertions(+), 54 deletions(-) diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/hard/HardThirdSelfZyServiceImpl.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/hard/HardThirdSelfZyServiceImpl.java index 63709cd1f..4488fb556 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/hard/HardThirdSelfZyServiceImpl.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/hard/HardThirdSelfZyServiceImpl.java @@ -119,9 +119,6 @@ public class HardThirdSelfZyServiceImpl implements HardThirdSelfZyService { try { // 校验订单是否可以退款 HardOrderVo order = hardAfterSaleService.validateOrderCanRefund(dto.getOrderId()); - if (!ObjectUtil.equals(dto.getSerialNum(), order.getOrderNo())) { - throw new RuntimeException("正元订单号不匹配"); - } // 用户 UserInfo user = remoteUserService.getByUserId(order.getUserId()).getData(); if (ObjectUtil.isEmpty(user)) throw new RuntimeException("用户不存在"); diff --git a/pjcloud-thirdparty/pjcloud-thirdparty-api/src/main/java/com/bsd/pjcloud/thirdparty/vo/zy/self/ZySelfPayVo.java b/pjcloud-thirdparty/pjcloud-thirdparty-api/src/main/java/com/bsd/pjcloud/thirdparty/vo/zy/self/ZySelfPayVo.java index 456d496af..be2f0fea3 100644 --- a/pjcloud-thirdparty/pjcloud-thirdparty-api/src/main/java/com/bsd/pjcloud/thirdparty/vo/zy/self/ZySelfPayVo.java +++ b/pjcloud-thirdparty/pjcloud-thirdparty-api/src/main/java/com/bsd/pjcloud/thirdparty/vo/zy/self/ZySelfPayVo.java @@ -13,7 +13,7 @@ import lombok.NoArgsConstructor; @Builder @AllArgsConstructor @NoArgsConstructor -public class ZySelfPayVo extends ZyBaseVo { +public class ZySelfPayVo { /** * 帐号 @@ -31,7 +31,7 @@ public class ZySelfPayVo extends ZyBaseVo { private String perCode; /** - * 订单流水号,全局唯一,第三方流水号 + * 订单流水号,全局唯一,第三方流水号 */ private String platformSerialNum; 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 bc44d2101..98161371f 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 @@ -103,8 +103,9 @@ public class ThirdZySelfServiceImpl implements ThirdZySelfService { ThirdZyLogEntity entity = new ThirdZyLogEntity(); entity.setBizType(bizType.getType()); entity.setApiUrl(ZyApi.Self.CORRECT); + entity.setEncipherReq(JSONUtil.toJsonStr(params)); long startTime = System.currentTimeMillis(); - ZySelfCorrectVo result = new ZySelfCorrectVo(); + ZyBaseVo result = new ZyBaseVo(); try { result.setCode(ZyBaseVo.errorCode); boolean isToken = checkIsToken(accessToken); @@ -126,7 +127,7 @@ public class ThirdZySelfServiceImpl implements ThirdZySelfService { result.setCode(ZyBaseVo.errorCode); result.setMsg(ZyBaseVo.defaultErrorMsg); ZySelfCorrectDto dto = JSONUtil.toBean(jsonRes, ZySelfCorrectDto.class); - entity.setEncipherReq(JSONUtil.toJsonStr(dto)); + entity.setOrgReq(JSONUtil.toJsonStr(dto)); // 获取参数 String correctSerialNum = dto.getCorrectSerialNum(); Long orderId = Long.parseLong(correctSerialNum); @@ -140,18 +141,25 @@ public class ThirdZySelfServiceImpl implements ThirdZySelfService { case SUCCESS -> { ThirdZyIdDictEntity userIdDict = thirdZyIdDictMapper.getBySelfId(ThirdZyBizEnumType.SYNC_ACCOUNT_INFO, String.valueOf(refundRes.getUserId())); String userZyId = userIdDict.getZyId(); - result.setAccNum(userZyId); - result.setAccName(refundRes.getUsername()); - result.setPerCode(userZyId); - result.setPlatformSerialNum(String.valueOf(refundRes.getRefundId())); - result.setSerialNum(refundRes.getOrderNo()); - result.setRecDate(LocalDateTimeUtil.format(refundRes.getRefundTime(), DatePattern.NORM_DATETIME_PATTERN)); - result.setAmount(dto.getAmount()); + ZySelfPayVo success = new ZySelfPayVo(); + success.setAccNum(userZyId); + success.setAccName(refundRes.getUsername()); + success.setPerCode(userZyId); + success.setPlatformSerialNum(String.valueOf(refundRes.getRefundId())); + success.setSerialNum(refundRes.getOrderNo()); + success.setRecDate(LocalDateTimeUtil.format(refundRes.getRefundTime(), DatePattern.NORM_DATETIME_PATTERN)); + success.setAmount(dto.getAmount()); result.setMsg(ZyBaseVo.selfSuccessMsg); - entity.setOrgReq(JSONUtil.toJsonStr(result)); - Map encryptionRes = zyApiTool.getSelfEncryptionMap(BeanUtil.beanToMap(result)); - entity.setEncipherReq(JSONUtil.toJsonStr(encryptionRes)); - return encryptionRes; + Map resMap = BeanUtil.beanToMap(result); + Map dataMap = BeanUtil.beanToMap(success); + dataMap.put("sign", zyApiTool.generateSign(dataMap, false)); + resMap.put("data", Base64.encode(JSONUtil.toJsonStr(dataMap))); + entity.setOrgRes(JSONUtil.toJsonStr(success)); + entity.setEncipherRes(JSONUtil.toJsonStr(resMap)); + long elapsedTime = System.currentTimeMillis() - startTime; + entity.setTimeConsuming(Long.toString(elapsedTime)); + thirdZyLogService.save(entity); + return resMap; } default -> throw new RuntimeException(); } @@ -159,11 +167,10 @@ public class ThirdZySelfServiceImpl implements ThirdZySelfService { String error = String.format("|%s||correct|意外的错误error|%s|stack|%s|", TAG, e.getMessage(), Arrays.toString(e.getStackTrace())); log.error(error); entity.setError(error); - return result.getErrorMap(); - } finally { long elapsedTime = System.currentTimeMillis() - startTime; entity.setTimeConsuming(Long.toString(elapsedTime)); thirdZyLogService.save(entity); + return result.getErrorMap(); } } @@ -178,7 +185,7 @@ public class ThirdZySelfServiceImpl implements ThirdZySelfService { entity.setBizType(bizType.getType()); entity.setEncipherReq(JSONUtil.toJsonStr(params)); long startTime = System.currentTimeMillis(); - ZySelfPayVo result = new ZySelfPayVo(); + ZyBaseVo result = new ZyBaseVo(); try { result.setCode(ZyBaseVo.errorCode); // 判断token @@ -200,7 +207,7 @@ public class ThirdZySelfServiceImpl implements ThirdZySelfService { result.setCode(ZyBaseVo.errorCode); result.setMsg(ZyBaseVo.defaultErrorMsg); ZySelfPayDto dto = JSONUtil.toBean(jsonRes, ZySelfPayDto.class); - entity.setEncipherReq(JSONUtil.toJsonStr(dto)); + entity.setOrgReq(JSONUtil.toJsonStr(dto)); // 获取参数 String accNum = dto.getAccNum(); ThirdZyIdDictEntity userIdDict = thirdZyIdDictMapper.getByZyIds(ThirdZyBizEnumType.SYNC_ACCOUNT_INFO, accNum); @@ -224,18 +231,25 @@ public class ThirdZySelfServiceImpl implements ThirdZySelfService { result.setCode(payRes.getCode().getType()); switch (payRes.getCode()) { case SUCCESS -> { - result.setAccNum(payRes.getUserId().toString()); - result.setAccName(payRes.getUsername()); - result.setPerCode(payRes.getUserId().toString()); - result.setPlatformSerialNum(dto.getSerialNum()); - result.setSerialNum(dto.getSerialNum()); - result.setAmount(amount); - result.setRecDate(LocalDateTimeUtil.format(payRes.getPayTime(), DatePattern.NORM_DATETIME_PATTERN)); + ZySelfPayVo success = new ZySelfPayVo(); + success.setAccNum(payRes.getUserId().toString()); + success.setAccName(payRes.getUsername()); + success.setPerCode(payRes.getUserId().toString()); + success.setPlatformSerialNum(payRes.getOrderId().toString()); + success.setSerialNum(dto.getSerialNum()); + success.setAmount(amount); + success.setRecDate(LocalDateTimeUtil.format(payRes.getPayTime(), DatePattern.NORM_DATETIME_PATTERN)); result.setMsg(ZyBaseVo.selfSuccessMsg); - entity.setOrgReq(JSONUtil.toJsonStr(result)); - Map encryptionRes = zyApiTool.getSelfEncryptionMap(BeanUtil.beanToMap(result)); - entity.setEncipherReq(JSONUtil.toJsonStr(encryptionRes)); - return encryptionRes; + Map resMap = BeanUtil.beanToMap(result); + Map dataMap = BeanUtil.beanToMap(success); + dataMap.put("sign", zyApiTool.generateSign(dataMap, false)); + resMap.put("data", Base64.encode(JSONUtil.toJsonStr(dataMap))); + entity.setOrgRes(JSONUtil.toJsonStr(success)); + entity.setEncipherRes(JSONUtil.toJsonStr(resMap)); + long elapsedTime = System.currentTimeMillis() - startTime; + entity.setTimeConsuming(Long.toString(elapsedTime)); + thirdZyLogService.save(entity); + return resMap; } default -> throw new RuntimeException(); } @@ -243,11 +257,10 @@ public class ThirdZySelfServiceImpl implements ThirdZySelfService { String error = String.format("|%s||pay|意外的错误error|%s|stack|%s|", TAG, e.getMessage(), Arrays.toString(e.getStackTrace())); log.error(error); entity.setError(error); - return result.getErrorMap(); - } finally { long elapsedTime = System.currentTimeMillis() - startTime; entity.setTimeConsuming(Long.toString(elapsedTime)); thirdZyLogService.save(entity); + return result.getErrorMap(); } } @@ -274,11 +287,11 @@ public class ThirdZySelfServiceImpl implements ThirdZySelfService { result.setMsg(msg); throw new RuntimeException(msg); } - String redisKey = CacheConstants.THIRDPARTY_ZY_SELF_TOKEN + "*"; - Set keys = redisTemplate.keys(redisKey); - if (ObjectUtil.isNotEmpty(keys)) { - redisTemplate.delete(keys); - } + // String redisKey = CacheConstants.THIRDPARTY_ZY_SELF_TOKEN + "*"; + // Set keys = redisTemplate.keys(redisKey); + // if (ObjectUtil.isNotEmpty(keys)) { + // redisTemplate.delete(keys); + // } try { // 生成token String token = generateToken(params); @@ -345,14 +358,17 @@ public class ThirdZySelfServiceImpl implements ThirdZySelfService { } for (Map.Entry entry : paramsMap.entrySet()) { Object value = entry.getValue(); + if (ObjectUtil.isEmpty(value)) continue; if (value instanceof String) { - entry.setValue(Base64.decodeStr((String) value)); + String str = Base64.decodeStr((String) value); + entry.setValue(URLUtil.decode(str)); } else { - entry.setValue(Base64.decodeStr(value.toString())); + String str = Base64.decodeStr((String) value); + entry.setValue(URLUtil.decode(str)); } } String string = zyApiTool.generateSign(paramsMap, false); - if (ObjectUtil.equals(sign, string)) { + if (ObjectUtil.equals(sign.toLowerCase(), string)) { for (Map.Entry entry : paramsMap.entrySet()) { Object value = entry.getValue(); if (value instanceof String) { 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 f79351e53..0d13a2ccd 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 @@ -174,7 +174,7 @@ public class ZyApiTool { return body; } - private void prePost(Map params, boolean isZy) { + public void prePost(Map params, boolean isZy) { for (Map.Entry entry : params.entrySet()) { Object value = entry.getValue(); if (value instanceof String) { @@ -187,10 +187,12 @@ public class ZyApiTool { String sign = generateSign(params, isZy); for (Map.Entry entry : params.entrySet()) { Object value = entry.getValue(); - if (value instanceof String) { - entry.setValue(Base64.encode((String) value)); - } else { - entry.setValue(Base64.encode(value.toString())); + if (ObjectUtil.isNotEmpty(value)) { + if (value instanceof String) { + entry.setValue(Base64.encode((String) value)); + } else { + entry.setValue(Base64.encode(value.toString())); + } } } params.put("sign", sign); diff --git a/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/test/java/com/bsd/pjcloud/admin/ZyTest.java b/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/test/java/com/bsd/pjcloud/admin/ZyTest.java index 0fe520c1e..c281b5329 100644 --- a/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/test/java/com/bsd/pjcloud/admin/ZyTest.java +++ b/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/test/java/com/bsd/pjcloud/admin/ZyTest.java @@ -80,15 +80,26 @@ public class ZyTest { ZySelfGetTokenVo token = zySelfService.getToken(tokenParams); String accessToken = token.getAccess_token(); +// ZySelfPayDto params = ZySelfPayDto +// .builder() +// .accNum(dzcUserDict.getZyId()) +// .cardAccNum(dzcWalletId) +// .amount("10") +// .serialNum("01234567890123456789") +// .dealTime(date) +// .opId("0123456789") +// .build(); + ZySelfPayDto params = ZySelfPayDto .builder() - .accNum(dzcUserDict.getZyId()) - .cardAccNum(dzcWalletId) - .amount("10") - .serialNum("01234567890123456789") - .dealTime(date) - .opId("0123456789") + .accNum("1741232987425846") + .cardAccNum("1877309001545244673") + .amount("0.01") + .serialNum("763") + .dealTime("2025-03-06 17:34:11") + .opId("") .build(); + String testJson = "{\"accNum\":\"MTc0MTIzMjk4NzQyNTg0Ng==\",\"amount\":\"MC4wMQ==\",\"cardAccNum\":\"MTg3NzMwOTAwMTU0NTI0NDY3Mw==\",\"dealTime\":\"MjAyNS0wMy0wNiAxNjo0NTowMA==\",\"opId\":\"\",\"serialNum\":\"NzYx\",\"sign\":\"3EFD38EA76BDC32165841852F0EEFD5E\"}"; Map paramsMap = BeanUtil.beanToMap(params); Map body = zyApiTool.getSelfEncryptionMap(paramsMap, "accNum", "cardAccNum", "amount", "serialNum", "dealTime", "opId"); ZySelfPayDto bodyObj = JSONUtil.toBean(JSONUtil.toJsonStr(body), ZySelfPayDto.class); From 09d8c12ec5475a35da5c19af0a49ceff6d4be29b Mon Sep 17 00:00:00 2001 From: dzc <2388224167@qq.com> Date: Thu, 6 Mar 2025 20:02:07 +0800 Subject: [PATCH 3/9] =?UTF-8?q?fix:=E8=AE=A2=E5=8D=95=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bsd/pjcloud/hard/controller/order/HardCarController.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/order/HardCarController.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/order/HardCarController.java index 841f2c9b5..1ad5dadcc 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/order/HardCarController.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/order/HardCarController.java @@ -78,8 +78,11 @@ public class HardCarController { @GetMapping("/order-id") @Operation(summary = "根据订单id查询购物车") public R> orderId(@ParameterObject Page page, @RequestParam Long orderId) { + if (ObjectUtil.isEmpty(orderId)) { + R.ok(null); + } HardOrderEntity order = hardOrderService.getById(orderId); - if (ObjectUtil.isEmpty(order)) return null; + if (ObjectUtil.isEmpty(order) || ObjectUtil.isEmpty(order.getParentCarId())) return null; HardCarDto dto = new HardCarDto(); dto.setParentCarId(order.getParentCarId()); return R.ok(hardCarService.pageJoin(page, dto)); From 0d95161f505ac989675512195b9a83094efe46e7 Mon Sep 17 00:00:00 2001 From: dzc <2388224167@qq.com> Date: Thu, 6 Mar 2025 20:18:15 +0800 Subject: [PATCH 4/9] =?UTF-8?q?feat:=E6=B7=BB=E5=8A=A0=E9=83=A8=E9=97=A8?= =?UTF-8?q?=E8=B4=A2=E5=8A=A1=E6=8A=A5=E8=A1=A8=E7=BA=AC=E5=BA=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hard/api/vo/order/HardDeptTotalVo.java | 6 +++++ .../order/HardOrderTotalController.java | 16 ++++++++++++ .../impl/order/HardOrderTotalServiceImpl.java | 23 +++++++++++++++++- .../main/resources/file/部门交易金额汇总.xlsx | Bin 10230 -> 10306 bytes 4 files changed, 44 insertions(+), 1 deletion(-) diff --git a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/order/HardDeptTotalVo.java b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/order/HardDeptTotalVo.java index 2c9f88ec6..1337eca32 100644 --- a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/order/HardDeptTotalVo.java +++ b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/order/HardDeptTotalVo.java @@ -48,6 +48,12 @@ public class HardDeptTotalVo { @Schema(description = "退款次数") private Long orderRefundCont = 0L; + @Schema(description = "盈利金额") + private Long orderProfitPrice = 0L; + + @Schema(description = "盈利次数") + private Long orderProfitCont = 0L; + /** * 导出相关 */ 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 13a25897f..84af93c8a 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 @@ -246,8 +246,12 @@ public class HardOrderTotalController { BigDecimal orderPayPriceSum = BigDecimal.ZERO; BigDecimal orderPayCountSum = BigDecimal.ZERO; + BigDecimal orderRefundPriceSum = BigDecimal.ZERO; BigDecimal orderRefundContSum = BigDecimal.ZERO; + // 盈利 + BigDecimal orderProfitPriceSum = BigDecimal.ZERO; + BigDecimal orderProfitContSum = BigDecimal.ZERO; Long lineNumber = 1L; for (HardDeptTotalVo v : list) { @@ -305,6 +309,14 @@ public class HardOrderTotalController { orderRefundContSum = orderRefundContSum.add(BigDecimal.valueOf(v.getOrderRefundCont())); v.setOrderRefundCont(BigDecimal.valueOf(v.getOrderRefundCont()).divide(BigDecimal.valueOf(100)).setScale(2, RoundingMode.HALF_UP).longValue()); } + if (ObjectUtil.isNotEmpty(v.getOrderProfitPrice())) { + orderProfitPriceSum = orderProfitPriceSum.add(BigDecimal.valueOf(v.getOrderProfitPrice())); + v.setOrderProfitPrice(BigDecimal.valueOf(v.getOrderProfitPrice()).divide(BigDecimal.valueOf(100)).setScale(2, RoundingMode.HALF_UP).longValue()); + } + if (ObjectUtil.isNotEmpty(v.getOrderProfitCont())) { + orderProfitContSum = orderProfitContSum.add(BigDecimal.valueOf(v.getOrderProfitCont())); + v.setOrderProfitCont(BigDecimal.valueOf(v.getOrderProfitCont()).divide(BigDecimal.valueOf(100)).setScale(2, RoundingMode.HALF_UP).longValue()); + } // 批量充值 map.put("walletPriceSum", walletPriceSum.divide(BigDecimal.valueOf(100)).setScale(2, RoundingMode.HALF_UP).toString()); map.put("walletCountSum", walletCountSum.toString()); @@ -320,8 +332,12 @@ public class HardOrderTotalController { map.put("orderPayPriceSum", orderPayPriceSum.divide(BigDecimal.valueOf(100)).setScale(2, RoundingMode.HALF_UP).toString()); map.put("orderPayCountSum", orderPayCountSum.toString()); + map.put("orderRefundPriceSum", orderRefundPriceSum.divide(BigDecimal.valueOf(100)).setScale(2, RoundingMode.HALF_UP).toString()); map.put("orderRefundContSum", orderRefundContSum.toString()); + + map.put("orderProfitPriceSum", orderProfitPriceSum.divide(BigDecimal.valueOf(100)).setScale(2, RoundingMode.HALF_UP).toString()); + map.put("orderProfitContSum", orderProfitContSum.toString()); } } excelWriter.fill(map, 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 ecb2799c2..a139bb132 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 @@ -273,7 +273,20 @@ public class HardOrderTotalServiceImpl implements HardOrderTotalService { } return hardOrderMapper.sumAndCount(refundDto); }); - CompletableFuture allFutures = CompletableFuture.allOf(walletBatchFuture, walletReduceFuture, payFuture, refundFuture, walletOnceBatchFuture, walletOnceReduceFuture); + // 查看盈利流水 + CompletableFuture> profitFuture = CompletableFuture.supplyAsync(() -> { + HardOrderSumAndCountDto refundDto = new HardOrderSumAndCountDto(); + refundDto.setDeptIds(deptIds); + refundDto.setOrderStatusCodes(HardOrderStatusEnum.getPaySuccessCodes()); + if (ObjectUtil.isNotEmpty(dto.getCreateTimeList())) { + refundDto.setCreateTimeList(dto.getCreateTimeList()); + } + if (ObjectUtil.isNotEmpty(dto.getWalletTypeId())) { + refundDto.setWalletTypeId(dto.getWalletTypeId()); + } + return hardOrderMapper.sumAndCount(refundDto); + }); + CompletableFuture allFutures = CompletableFuture.allOf(walletBatchFuture, walletReduceFuture, payFuture, refundFuture, walletOnceBatchFuture, walletOnceReduceFuture, profitFuture); allFutures.join(); List walletBatchList = walletBatchFuture.join(); List walletReduceList = walletReduceFuture.join(); @@ -281,6 +294,7 @@ public class HardOrderTotalServiceImpl implements HardOrderTotalService { List walletOnceReduceList = walletOnceReduceFuture.join(); List payList = payFuture.join(); List refundList = refundFuture.join(); + List profitList = profitFuture.join(); // 聚合一下数据 for (HardDeptTotalVo v : resultList) { if (ObjectUtil.isNotEmpty(walletBatchList)) { @@ -319,6 +333,13 @@ public class HardOrderTotalServiceImpl implements HardOrderTotalService { v.setOrderRefundCont(i.getCount()); }); } + // 查看盈利流水 + if (ObjectUtil.isNotEmpty(profitList)) { + profitList.stream().filter(i -> ObjectUtil.equals(i.getDeptId(), v.getDeptId())).findFirst().ifPresent(i -> { + v.setOrderProfitPrice(i.getSum()); + v.setOrderProfitCont(i.getCount()); + }); + } } return resultList; }); 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 51d149779be3c668ff24c9965f04425aa65dac64..26441d9e03327d36a1b33415591c311b04ada946 100644 GIT binary patch delta 2032 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 U03ZMW0HTu-C@TipBLDyZ0Q`)R9smFU From 945ff88cced07e68e1c9c246cc7be5636753acd7 Mon Sep 17 00:00:00 2001 From: dzc <2388224167@qq.com> Date: Thu, 6 Mar 2025 21:44:20 +0800 Subject: [PATCH 5/9] =?UTF-8?q?fix:=E6=8A=A5=E8=A1=A8=E8=A1=A8=E5=A4=B4?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/resources/file/个人钱包记录明细.xlsx | Bin 10004 -> 9986 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/file/个人钱包记录明细.xlsx b/pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/file/个人钱包记录明细.xlsx index 04782dec9fa5a149cddaa9d2fc7d78b5c27b6418..3c61b788477fb5c214d27de99b5ca8d5b340ad2c 100644 GIT binary patch delta 2229 zcmZ8iXH=655=}yAkz#0qbV)+*5=4qpq!WmMAWaCphoZ#y(9l9xfe%Db5D+OMg3_cD zq$9mbQ9zLnFM#y2xOPF4Zzn_;^XzEYS^3#NAl4Iwrb=N0wKqR83 z$Jlqmr$Uq5J{7Rpt(5B2o#9q*+@H7P^td@hfElqu5GvwPO%*?7x!-oP(|uB}V}Osr zietf*i)bpka#>{=6I#j0*_W8Bm)3>#F4mVtzok((n&BCYd5$^fF^#pb#O`3ko8W@y zB${qwBwJPcEm+~a2``Lve`QaCo46u5pt_!T&WOEsPxW(K3ncY4r5ldBU3agxWRxj! zw|3Uc_c%@YRFTnqxQ|DI4{g6)V>Cb3-l@ff5M$%ZlHIc^hgwrSt;2Ws@Ts$3KHhOK zcw}4a?R#-%>@Y0+ZG(rH_(Cezi8p>cyS0O6z1n7Je6FCbMX_og#tx5Rc^UCAIT@iR zJ(rwNb#e?GKIrumU=lq+wyE7t#*VWBt?>jXo96mZBQ}`I#DEIQcD80ZP!wkFI$WfT zhbk9LztyG8wsUrXHJ}qJNbK~PlsR92VeuMWole}^_c|la;L!S-4Xkm6q)ATJC z+$JnZMM~}AvoRZ$ZlRFPgzRKlB{B1!us4xUe4X(OH)zz*ACnC zX$TJswP+=b5_oP^i8$IM?FLh*0=sFai`2@gw0NW|Kw4Zv6w3|m?Zy$NZ~S^{tWj?B zble6O1pH|OOo%5SBLDjXd|h6aK^&*8VBT+N^i}T<4dA6=TmaReXxk1=uIZx;(#+Ca zjMTgv5+)?Kr9^30{F{Hn$R)kk4jn1JjN!H5Ao_3QIZP{fy(MF6GE<8cX70nMit9-X zJsxu3?Jp$ru0mSKt8z=oBeUhf?^#z@oFAlft&OL?;u0Ga@3WoREL;RPVEyc0Z~J#7 z$Zh-e(AD;TE}Khvk4s&vZl?ZP$4j{e{V4$)E zT4fsg*KGb3-e7!YR?BPx%OVsn=?@D>-W`0dkeo;Nw6Tu>(_urRaa15>t`Fjx)N zCOWL3`~aOXUPnrd)lHY$*zc_lTF3vI%QL9B`w!{UZLrbLOjYSB|EE`&U)70EO-P;(T)hUIcKV&4j zPY_>*_WLYfrUXvyAFi+0D&HDgsL}YQE`}mRXQVxX|6}+go?r8*+_)I2t#6t+q>rbg zFq`aM{p-|c1h#)<6z%H7f@hz*xq=eVaz+lD^=MH|)v;-ensHn3#dsk4ZBjrr?>dN6 zl_k1HT?3&(%s*()x|x^4n8Gh$HPhcp%vm8haXi822<611j-8i?zlb$@|b3so<&`<@YJ)fO=D5PDCdf-8GL zYVEPXNz-l)V@Xx?E^nIN?s{?I!m~LdSe}0q9rV{`M~7RAs_t+a-=gx))W&)IXpsIc zM+V{?rElE2t#YNW_{MVXXfwrI{Ba4#)70E|yJS5dwB3Q{i=FCj%Q~+6J#wPSBHI$I z3S4=|E`Gg9+g@1*h#pm~B0=l^8$$-$NK1y$xaCF|v^E#;cQ|F?I8Zqj-P?1QQqn>>$u!Q9u$Y z$@7PcXBPF_ynY85Byg5b837q44j>*W295@*kXONuPsj}qkhV}7(C5a;ifv-r>SEGWt!^lI zneUwZa?VG>(IU^BJ5V|;WQ6>lha8Z+5UHF+=sX#_L*!_~q+owpAt6Fb&}bCz?u5Lg zyihPzMG4BJpdCw+n({J2b7M-1vF3BgneJJKwBmK4a%SvN&2Y*14VwWbo;Scb7$%ru zxCXjqM?@>6;2pBORapZN976^5nWtu1+D@yun{2^bv2!nU z+8L{=>Q((FhRuKPlJ29n~B}_ zbqeBO8Gk*#emp#XzTCgRJ%#wUZmCU)77fC&v1nUjtz7gEkCHKpiAVNa&v!|X5T6Ep z>Umf7^IP}pnC&26h4`09Try1jfRX_X$Odr@h@0HoUn2tk2DADCv;hf4|8v~=0ssK& zleYvRf6I=WFcjTa>OUawhewi0CQ-CCRgfu3fqS}k6H0U0n23APIHObhIV zcs9f@2!%%55{x2cnxA0>Sr(Jc1iR?3Jp&){fS@_y`nf)BYn$dtdI_ZTluv%ontc%>n^ZyfSYu~*g62$i{WnV9c5?-+m3^~ zpxj{RAP@E;Qyvqi!jv8dwLvd;r@a_D_;NHuN9M|FHt_N(=>fh`dEkZeGDuM}^zoXJ z?n1NAT9g*WF53%@w|D(^#Gfc&T%nIONQKb#3m)S3wiYyJHh<~GKTt~pkpmmE>IWkR z2?wlXmTCb20Em+o4k~|}>Ow`*bRoFYg~kV%Cf7DFKQS}$hf*j=L{V$eMHN)gjUplx zM5R@qrjwetFrtX0>2l6@&YgQN*C=jLqHTaLT+Rw;GM7ghFq=CrD;LnJwJFBOcYQ>N^efrgwT}&iR<;~ z;UhY0^t-!;E=@!K4*Z1FUP~Rn45+uKs(F-Fqy2;EqLX2dckbfWUD_U>wAEqQZ+F$z zL7Mg6&*PiRF%^IAjHgj_QCH1|3PV+Yi(1cd>nZK1=7`H+DWE0rYlAQl;4@5N2wLPN zmt;W)Jh_ye``N6u?ZFU32@}lhtf~YHX>o7Wv)qi9RCDk1@p@o}-*PJf{WpZ3T$1?( zP)h>@6aWAK2mpsp;y@HP#W=kI0071V000jF004MwFL#r`4;p`x&;}H!LJ3->rmC_m z+ny#5j$jpRWSfy{+JB#c&~EB9@pRnz`|j?$JJvVnszg6PDkgYl%_nRrQi_YXHfVieE)9U3i)Izor3F+}%|s2{yyQYwR2x^G zh^i&fOcemSD#?G`wy#J<8OK8gUrxy(@|>j*i?peL>miARl4{ewDp;*>xXxJ#$3YRI zb^Smq)AzZ=sH947Go~R6@WQyFh1YlP@yLpHyQCYR_-FdqUJ)qfT6_i-oX!u}ud zqq)ZtCW1AS<3!-?!|t$~h`rw)zI{%nf;YP;-b}}D_WRA(!}iNqg8Xx!#O&PM)wp>w z{(|9eP)h>@lYk`}v!)Sg5dmM55FhAsa>ibKLm?008O-000;O0000000031AOHXWvXjv!D+c!> H00000RDBaS From 1f8d26d0c7e463b6693751f12876a8da59af78f8 Mon Sep 17 00:00:00 2001 From: dzc <2388224167@qq.com> Date: Fri, 7 Mar 2025 10:32:49 +0800 Subject: [PATCH 6/9] =?UTF-8?q?feta:=E6=AD=A3=E5=BC=8F=E7=9A=84=E6=AD=A3?= =?UTF-8?q?=E5=85=83=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/order/HardOrderTotalController.java | 2 -- .../src/main/resources/application.yml | 14 +++++++++++--- .../pjcloud/wallet/mapper/WalletManageMapper.java | 1 + .../service/impl/WalletManageServiceImpl.java | 2 +- 4 files changed, 13 insertions(+), 6 deletions(-) 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 84af93c8a..6a6ff9e54 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 @@ -8,7 +8,6 @@ import com.alibaba.excel.EasyExcel; import com.alibaba.excel.ExcelWriter; import com.alibaba.excel.write.metadata.WriteSheet; import com.alibaba.excel.write.metadata.fill.FillConfig; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.bsd.pjcloud.common.core.util.R; import com.bsd.pjcloud.common.log.annotation.SysLog; import com.bsd.pjcloud.hard.api.constant.HardTypeEnum; @@ -24,7 +23,6 @@ import io.swagger.v3.oas.annotations.security.SecurityRequirement; import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.servlet.http.HttpServletResponse; import lombok.RequiredArgsConstructor; -import org.springdoc.core.annotations.ParameterObject; import org.springframework.http.HttpHeaders; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; 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 5a0463b26..8b06521ca 100644 --- a/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/resources/application.yml +++ b/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/resources/application.yml @@ -44,12 +44,20 @@ oauth2: # 正元智慧 # https://gwyc.zj.gov.cn/API/%E7%9C%81%E5%B9%B3%E5%8F%B0API%E5%AF%B9%E6%8E%A5%E6%8E%A5%E5%8F%A3.html zy: - base-url: http://60.191.37.212:18079 - app-id: 689C8D6F5059A6F85B8BE45A49001ACB - app-secret: BD21DA0DEB8F0FC43246B0BD2FCAE6FF + # base-url: http://60.191.37.212:18079 + # 测试1 + # app-id: 689C8D6F5059A6F85B8BE45A49001ACB + # app-secret: BD21DA0DEB8F0FC43246B0BD2FCAE6FF + + # 测试2 # app-id: FC455B0A788E334AC08FB3E1D8385C75 # app-secret: E9131D0BCC9054808675DA1E2E199023 + # 正式 + base-url: http://10.146.63.216:8080 + app-id: 0BBF0D9A7F1B4BD5280E59197E259AC6 + app-secret: 434752786ACBB37214F6617CC37AD0E9 + 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 d988e1bf5..864b4b636 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 @@ -37,6 +37,7 @@ public interface WalletManageMapper extends PjcloudBaseMapper itemList = baseMapper.selectBalance(dto); if (ObjectUtil.isEmpty(itemList)) continue; for (WalletManageBalanceVo j : itemList) { - j.setWalletTypeName(i.getName()); + // j.setWalletTypeName(i.getName()); walletPage.getRecords().stream().filter(v -> ObjectUtil.equals(v.getUserId(), j.getUserId())).findFirst().ifPresent(v -> { if (ObjectUtil.isNotEmpty(j.getBalance())) { v.setBalance(j.getBalance()); From 214b2fa50dae13f471a388c67ffa0236a9109719 Mon Sep 17 00:00:00 2001 From: dzc <2388224167@qq.com> Date: Fri, 7 Mar 2025 12:36:06 +0800 Subject: [PATCH 7/9] =?UTF-8?q?fix:=E6=AD=A3=E5=85=83url?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pjcloud-thirdparty-biz/src/main/resources/application.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 8b06521ca..d75b6bcc3 100644 --- a/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/resources/application.yml +++ b/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/resources/application.yml @@ -54,7 +54,7 @@ zy: # app-secret: E9131D0BCC9054808675DA1E2E199023 # 正式 - base-url: http://10.146.63.216:8080 + base-url: https://gwycport.zj.gov.cn app-id: 0BBF0D9A7F1B4BD5280E59197E259AC6 app-secret: 434752786ACBB37214F6617CC37AD0E9 From 8145d9de40f861ec8415f288bf9b71ec20ca095d Mon Sep 17 00:00:00 2001 From: dzc <2388224167@qq.com> Date: Fri, 7 Mar 2025 13:04:52 +0800 Subject: [PATCH 8/9] =?UTF-8?q?feat:=E6=AD=A3=E5=85=83=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/bsd/pjcloud/thirdparty/utils/zy/api/ZyApiTool.java | 5 +++++ 1 file changed, 5 insertions(+) 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 0d13a2ccd..8a0ddec2c 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 @@ -116,6 +116,11 @@ public class ZyApiTool { item.setZyId(zyId); list.add(item); result.put(v, zyId); + try { + Thread.sleep(100); + } catch (Exception e) { + log.error("{}generateZyId休眠失败", TAG, e); + } } List zyIds = list.stream().map(ThirdZyIdDictEntity::getZyId).toList(); if (zyIds.isEmpty()) { From 20e184538705016b4d968553e375d2ed13c3a116 Mon Sep 17 00:00:00 2001 From: dzc <2388224167@qq.com> Date: Fri, 7 Mar 2025 13:06:10 +0800 Subject: [PATCH 9/9] =?UTF-8?q?bug=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/bsd/pjcloud/thirdparty/utils/zy/api/ZyApiTool.java | 2 -- 1 file changed, 2 deletions(-) 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 8a0ddec2c..0ce58dbf5 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 @@ -124,13 +124,11 @@ public class ZyApiTool { } List zyIds = list.stream().map(ThirdZyIdDictEntity::getZyId).toList(); if (zyIds.isEmpty()) { - hasDuplicate = true; break; } List repetitionList = thirdZyIdDictMapper.getByZyIds(type, zyIds); if (ObjectUtil.isNotEmpty(repetitionList)) { hasDuplicate = true; - break; } } while (hasDuplicate); if (ObjectUtil.isNotEmpty(list)) {