diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardOrderServiceImpl.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardOrderServiceImpl.java index 264151c03..df9b829c8 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardOrderServiceImpl.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardOrderServiceImpl.java @@ -501,7 +501,7 @@ public class HardOrderServiceImpl extends ServiceImpl refundList = hardOrderMapper.listRefundCs(refundDto, refundDataScope); + // 有退款没有流水的情况 + if (ObjectUtil.isAllNotEmpty(totalList, refundList)) { + List totalIds = totalList.stream().map(HardOrderCsVo::getMerchantId).toList(); + for (HardOrderCsVo refund : refundList) { + if (!totalIds.contains(refund.getMerchantId())) { + HardOrderCsVo entity = BeanUtils.toBean(refund, HardOrderCsVo.class); + entity.setTotalPayPrice(BigDecimal.ZERO); + entity.setTotalPayCount(BigDecimal.ZERO); + totalList.add(entity); + } + } + } for (HardOrderCsVo v : totalList) { // 退款 if (ObjectUtil.isNotEmpty(refundList)) { diff --git a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/WalletQbTotalVo.java b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/WalletQbTotalVo.java new file mode 100644 index 000000000..5a633bb77 --- /dev/null +++ b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/WalletQbTotalVo.java @@ -0,0 +1,23 @@ +package com.bsd.pjcloud.wallet.api.vo; + +import lombok.Data; + +@Data +public class WalletQbTotalVo { + + /** + * 总余额 + */ + private Long total = 0L; + + /** + * 饭卡钱包余额 + */ + private Long eatTotal = 0L; + + /** + * 消费钱包余额 + */ + private Long payTotal = 0L; + +} diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/WalletManageController.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/WalletManageController.java index ec4fc31d3..3cd81035a 100644 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/WalletManageController.java +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/WalletManageController.java @@ -18,6 +18,7 @@ import com.bsd.pjcloud.wallet.api.dto.WalletManageDto; import com.bsd.pjcloud.wallet.api.dto.WalletTopupActionDto; import com.bsd.pjcloud.wallet.api.entity.WalletManageEntity; import com.bsd.pjcloud.wallet.api.vo.WalletManageVo; +import com.bsd.pjcloud.wallet.api.vo.WalletQbTotalVo; import com.bsd.pjcloud.wallet.mapper.WalletManageMapper; import com.bsd.pjcloud.wallet.service.WalletCodeUseService; import com.bsd.pjcloud.wallet.service.WalletManageService; @@ -201,6 +202,12 @@ public class WalletManageController { return R.ok(walletManageService.scopePageList(page, dto, DataScope.of())); } + @Operation(summary = "分页查询", description = "分页查询") + @PostMapping("/qb-total") + public R qbTotal(@RequestBody WalletManageBalanceDto dto) { + return R.ok(walletManageService.qbTotal(dto, DataScope.of())); + } + @Operation(summary = "钱包记录分页", description = "钱包记录分页") @PostMapping("/page-join-qb") public R> pageJoinQb(@ParameterObject Page page, @RequestBody WalletManageBalanceDto dto) { diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/recharge/WalletRechargeApplyController.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/recharge/WalletRechargeApplyController.java index 8790d0f48..15f46f01a 100644 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/recharge/WalletRechargeApplyController.java +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/recharge/WalletRechargeApplyController.java @@ -17,6 +17,8 @@ import com.bsd.pjcloud.wallet.api.dto.recharge.WalletRechargeImportDto; import com.bsd.pjcloud.wallet.api.dto.recharge.WalletRechargeSaveTopupDto; import com.bsd.pjcloud.wallet.api.dto.recharge.excel.WalletRechargeExcelDto; import com.bsd.pjcloud.wallet.api.entity.recharge.WalletRechargeApplyEntity; +import com.bsd.pjcloud.wallet.api.vo.recharge.WalletRechargeApplyCompareAceVo; +import com.bsd.pjcloud.wallet.api.vo.recharge.WalletRechargeImportVo; import com.bsd.pjcloud.wallet.api.vo.recharge.excel.WalletRechargeByApplyExcelVo; import com.bsd.pjcloud.wallet.service.WalletRechargeApplyService; import com.bsd.pjcloud.wallet.service.WalletRechargeApplyComposeService; @@ -61,10 +63,16 @@ public class WalletRechargeApplyController { @GetMapping("/compare-page-join") @Operation(summary = "批量充值/扣款记录") - public R comparePageJoin(@ParameterObject Page page, @ParameterObject WalletRechargeApplyDto dto) { + public R comparePageJoin(@ParameterObject Page page, @ParameterObject WalletRechargeApplyDto dto) { return R.ok(walletTransactionComposeService.pageJoin(page, dto)); } + @GetMapping("/compare-invoice-page-join") + @Operation(summary = "批量充值/扣款记录发票查询") + public R> compareInvoicePageJoin(@ParameterObject Page page, @ParameterObject WalletRechargeApplyDto dto) { + return R.ok(walletTransactionComposeService.compareInvoicePageJoin(page, dto)); + } + @Operation(summary = "提交申请", description = "提交申请") @SysLog("提交申请") @GetMapping("/apply") 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 062dd060a..fc1774cf9 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 @@ -167,4 +167,6 @@ public interface WalletManageMapper extends PjcloudBaseMapper activeBalancePage(Page page, @Param("dto") WalletTopupActionDto dto, @Param("unactiveDayNumberStr") String unactiveDayNumberStr); List activeBalanceList(@Param("dto") WalletTopupActionDto dto, @Param("unactiveDayNumberStr") String unactiveDayNumberStr); + + Long selectTotalBalance(@Param("dto") WalletManageBalanceDto dto); } \ No newline at end of file diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/recharge/WalletRechargeImportMapper.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/recharge/WalletRechargeImportMapper.java index fd5bca6f7..2082ea2f5 100644 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/recharge/WalletRechargeImportMapper.java +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/recharge/WalletRechargeImportMapper.java @@ -25,6 +25,7 @@ public interface WalletRechargeImportMapper extends PjcloudBaseMapper wrapper = new MPJLambdaWrapper() .eqIfExists(WalletRechargeImportEntity::getId, dto.getId()) .eqIfExists(WalletRechargeImportEntity::getApplyId, dto.getApplyId()) + .eqIfExists(WalletRechargeImportEntity::getInvoiceId, dto.getInvoiceId()) .orderByDesc(WalletRechargeImportEntity::getCreateTime) .orderByDesc(WalletRechargeImportEntity::getUserId); return selectJoinPage(page, WalletRechargeImportVo.class, wrapper); diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/WalletManageService.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/WalletManageService.java index 11a6bbfec..1af969ced 100644 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/WalletManageService.java +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/WalletManageService.java @@ -9,6 +9,7 @@ import com.bsd.pjcloud.wallet.api.dto.WalletManageDto; import com.bsd.pjcloud.wallet.api.dto.WalletTopupActionDto; import com.bsd.pjcloud.wallet.api.entity.WalletManageEntity; import com.bsd.pjcloud.wallet.api.vo.WalletManageVo; +import com.bsd.pjcloud.wallet.api.vo.WalletQbTotalVo; import jakarta.servlet.http.HttpServletResponse; import jakarta.validation.constraints.NotNull; @@ -68,6 +69,8 @@ public interface WalletManageService extends IService { Page scopeQbPage(Page page, WalletManageBalanceDto dto, DataScope dataScope); + WalletQbTotalVo qbTotal(WalletManageBalanceDto dto, DataScope dataScope); + /** * 不活跃用户钱包 */ diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/WalletRechargeApplyComposeService.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/WalletRechargeApplyComposeService.java index c25cc80e5..30b662e04 100644 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/WalletRechargeApplyComposeService.java +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/WalletRechargeApplyComposeService.java @@ -4,8 +4,14 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.bsd.pjcloud.wallet.api.dto.recharge.WalletRechargeApplyDto; import com.bsd.pjcloud.wallet.api.dto.recharge.WalletRechargeSaveTopupDto; import com.bsd.pjcloud.wallet.api.vo.recharge.WalletRechargeApplyCompareAceVo; +import com.bsd.pjcloud.wallet.api.vo.recharge.WalletRechargeImportVo; public interface WalletRechargeApplyComposeService { WalletRechargeApplyCompareAceVo pageJoin(Page page, WalletRechargeApplyDto dto); + + /** + * 批量充值/扣款记录发票查询 + */ + Page compareInvoicePageJoin(Page page, WalletRechargeApplyDto dto); } diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/WalletManageServiceImpl.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/WalletManageServiceImpl.java index 303ad5262..0759bbd0b 100644 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/WalletManageServiceImpl.java +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/WalletManageServiceImpl.java @@ -40,6 +40,7 @@ import com.bsd.pjcloud.wallet.api.utils.WalletDataUtil; import com.bsd.pjcloud.wallet.api.vo.MchManageVo; import com.bsd.pjcloud.wallet.api.vo.WalletManageBalanceVo; import com.bsd.pjcloud.wallet.api.vo.WalletManageVo; +import com.bsd.pjcloud.wallet.api.vo.WalletQbTotalVo; import com.bsd.pjcloud.wallet.mapper.WalletManageMapper; import com.bsd.pjcloud.wallet.mapper.WalletTransactionMapper; import com.bsd.pjcloud.wallet.mapper.WalletTypeMapper; @@ -51,7 +52,6 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.context.annotation.Lazy; import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; @@ -59,6 +59,8 @@ import java.io.IOException; import java.math.BigDecimal; import java.math.RoundingMode; import java.util.*; +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.CopyOnWriteArrayList; /** * 钱包管理 @@ -306,6 +308,30 @@ public class WalletManageServiceImpl extends ServiceImpl walletTypeList = walletTypeService.list(); + // 查询所有钱包类型的流水记录 + for (WalletTypeEntity i : walletTypeList) { + WalletManageBalanceDto walletBalanceDto = BeanUtils.toBean(dto, WalletManageBalanceDto.class); + walletBalanceDto.setWalletTypeId(i.getId()); + + Long total = baseMapper.selectTotalBalance(walletBalanceDto); + if (ObjectUtil.isEmpty(total)) total = 0L; + + if (ObjectUtil.equals(i.getUniqueCode(), WalletTypeEnum.EAT.getCode())) { + result.setEatTotal(total); + } + if (ObjectUtil.equals(i.getUniqueCode(), WalletTypeEnum.PAY.getCode())) { + result.setPayTotal(total); + } + } + result.setTotal(result.getEatTotal() + result.getPayTotal()); + return result; + } + /** * 不活跃用户钱包 */ diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/recharge/WalletRechargeApplyComposeServiceImpl.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/recharge/WalletRechargeApplyComposeServiceImpl.java index 88e536a58..1fa7746b8 100644 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/recharge/WalletRechargeApplyComposeServiceImpl.java +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/recharge/WalletRechargeApplyComposeServiceImpl.java @@ -3,6 +3,7 @@ package com.bsd.pjcloud.wallet.service.impl.recharge; import cn.hutool.core.date.DatePattern; import cn.hutool.core.date.LocalDateTimeUtil; import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.bsd.pjcloud.common.core.util.BeanUtils; @@ -164,6 +165,37 @@ public class WalletRechargeApplyComposeServiceImpl implements WalletRechargeAppl } + @Override + public Page compareInvoicePageJoin(Page page, WalletRechargeApplyDto dto) { + WalletRechargeImportDto importDto = new WalletRechargeImportDto(); + WalletRechargeApplyEntity applyEntity = null; + + if (ObjectUtil.isNotEmpty(dto.getInvoiceId())) { + importDto.setInvoiceId(dto.getInvoiceId()); + } else if (ObjectUtil.isNotEmpty(dto.getId())) { + importDto.setApplyId(dto.getId()); + applyEntity = rechargeApplyService.getById(dto.getId()); + } else { + return null; + } + + Page list = rechargeImportService.pageJoin(page, importDto); + + if (ObjectUtil.isNotEmpty(list.getRecords())) { + for (WalletRechargeImportVo v : list.getRecords()) { + if (ObjectUtil.isNotEmpty(dto.getInvoiceId())) { + v.setBizType(WalletBizRechargeEnum.ADD.getCode()); + } else if (ObjectUtil.isNotEmpty(dto.getId())) { + if (ObjectUtil.isNotEmpty(applyEntity)) { + v.setBizType(dto.getBizType()); + } + } + } + } + + return list; + } + private void getItem(WalletRechargeImportVo user, List monthList, List prenMonthList, diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/recharge/WalletRechargeInvoiceServiceImpl.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/recharge/WalletRechargeInvoiceServiceImpl.java index 5fe8f9a63..d3a3ce843 100644 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/recharge/WalletRechargeInvoiceServiceImpl.java +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/recharge/WalletRechargeInvoiceServiceImpl.java @@ -103,7 +103,6 @@ public class WalletRechargeInvoiceServiceImpl extends ServiceImpl + + \ No newline at end of file