From 2257a55a3eaf012957eb2c97ebf90a9873add821 Mon Sep 17 00:00:00 2001 From: dzc <2388224167@qq.com> Date: Wed, 9 Jul 2025 15:11:24 +0800 Subject: [PATCH 01/12] =?UTF-8?q?feat:=E5=8F=91=E7=A5=A8=E5=92=8C=E5=85=85?= =?UTF-8?q?=E5=80=BC=E7=94=B3=E8=AF=B7=E9=83=BD=E5=8F=AF=E4=BB=A5=E6=9F=A5?= =?UTF-8?q?=E7=9C=8B=E8=AF=A6=E6=83=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WalletRechargeApplyController.java | 10 +++++- .../recharge/WalletRechargeImportMapper.java | 1 + .../WalletRechargeApplyComposeService.java | 6 ++++ ...WalletRechargeApplyComposeServiceImpl.java | 32 +++++++++++++++++++ .../WalletRechargeInvoiceServiceImpl.java | 1 - 5 files changed, 48 insertions(+), 2 deletions(-) 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/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/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/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 Date: Wed, 9 Jul 2025 17:05:22 +0800 Subject: [PATCH 02/12] =?UTF-8?q?feat:=E4=BD=99=E9=A2=9D=E7=BB=9F=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../wallet/api/vo/WalletQbTotalVo.java | 23 ++++++++++ .../controller/WalletManageController.java | 7 +++ .../wallet/mapper/WalletManageMapper.java | 2 + .../wallet/service/WalletManageService.java | 3 ++ .../service/impl/WalletManageServiceImpl.java | 28 +++++++++++- .../resources/mapper/WalletManageMapper.xml | 43 +++++++++++++++++++ 6 files changed, 105 insertions(+), 1 deletion(-) create mode 100644 pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/WalletQbTotalVo.java 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..9622cda20 --- /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 Integer total = 0; + + /** + * 饭卡钱包余额 + */ + private Integer eatTotal = 0; + + /** + * 消费钱包余额 + */ + private Integer payTotal = 0; + +} 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/mapper/WalletManageMapper.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/WalletManageMapper.java index 062dd060a..9d3f095d4 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); + + Integer 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/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/impl/WalletManageServiceImpl.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/WalletManageServiceImpl.java index 303ad5262..8c27b724e 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()); + + Integer total = baseMapper.selectTotalBalance(walletBalanceDto); + if (ObjectUtil.isEmpty(total)) total = 0; + + 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/resources/mapper/WalletManageMapper.xml b/pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/WalletManageMapper.xml index ec06c85d2..44f7fb0f0 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 @@ -192,4 +192,47 @@ + + \ No newline at end of file From 97bd8814441216524ae5151a7981b350d988edd9 Mon Sep 17 00:00:00 2001 From: dzc <2388224167@qq.com> Date: Wed, 9 Jul 2025 17:23:51 +0800 Subject: [PATCH 03/12] feat:1 --- .../java/com/bsd/pjcloud/wallet/api/vo/WalletQbTotalVo.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) 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 index 9622cda20..5a633bb77 100644 --- 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 @@ -8,16 +8,16 @@ public class WalletQbTotalVo { /** * 总余额 */ - private Integer total = 0; + private Long total = 0L; /** * 饭卡钱包余额 */ - private Integer eatTotal = 0; + private Long eatTotal = 0L; /** * 消费钱包余额 */ - private Integer payTotal = 0; + private Long payTotal = 0L; } From d96b5419a0d3cbd56372999fbe31262564d62c32 Mon Sep 17 00:00:00 2001 From: dzc <2388224167@qq.com> Date: Wed, 9 Jul 2025 17:26:59 +0800 Subject: [PATCH 04/12] 111 --- .../com/bsd/pjcloud/wallet/mapper/WalletManageMapper.java | 2 +- .../pjcloud/wallet/service/impl/WalletManageServiceImpl.java | 4 ++-- .../src/main/resources/mapper/WalletManageMapper.xml | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) 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 9d3f095d4..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 @@ -168,5 +168,5 @@ public interface WalletManageMapper extends PjcloudBaseMapper activeBalanceList(@Param("dto") WalletTopupActionDto dto, @Param("unactiveDayNumberStr") String unactiveDayNumberStr); - Integer selectTotalBalance(@Param("dto") WalletManageBalanceDto dto); + 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/service/impl/WalletManageServiceImpl.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/WalletManageServiceImpl.java index 8c27b724e..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 @@ -318,8 +318,8 @@ public class WalletManageServiceImpl extends ServiceImpl - SELECT SUM(a.balance) FROM wallet_transaction a From 7a4cbd20fa309c353830cc56bec2c0336757a408 Mon Sep 17 00:00:00 2001 From: dzc <2388224167@qq.com> Date: Thu, 10 Jul 2025 11:19:02 +0800 Subject: [PATCH 05/12] =?UTF-8?q?feat:=E4=BD=99=E9=A2=9D=E7=BB=9F=E8=AE=A1?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E9=83=A8=E9=97=A8=E6=90=9C=E7=B4=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../resources/mapper/WalletManageMapper.xml | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) 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 0600cc435..4dc3b8ecc 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 @@ -216,6 +216,22 @@ #{v} + + + + and wallet.dept_id IN + + + and wallet.dept_id NOT IN + + + and wallet.dept_id IN + + + + #{v} + + AND wallet.wallet_type_id = #{dto.walletTypeId} @@ -233,6 +249,22 @@ #{v} + + + + and a.dept_id IN + + + and a.dept_id NOT IN + + + and a.dept_id IN + + + + #{v} + + \ No newline at end of file From 18018f838dd0ffc4f372fc27d8870ff9d85f7b0c Mon Sep 17 00:00:00 2001 From: dzc <2388224167@qq.com> Date: Thu, 10 Jul 2025 11:31:04 +0800 Subject: [PATCH 06/12] =?UTF-8?q?feat:=E5=95=86=E6=88=B7=E7=BB=9F=E8=AE=A1?= =?UTF-8?q?=E6=B2=A1=E6=9C=89=E6=B5=81=E6=B0=B4=E5=8F=AA=E6=9C=89=E9=80=80?= =?UTF-8?q?=E6=AC=BE=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/order/HardOrderTotalServiceImpl.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) 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 ce26a67e7..b70ed3f4a 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 @@ -165,7 +165,21 @@ public class HardOrderTotalServiceImpl implements HardOrderTotalService { refundDto.setRefundStatusCodes(List.of(HardSaleStatusEnum.COMPLETE.getStatus())); DataScope refundDataScope = DataScope.of(); refundDataScope.setScopeDeptName("merchant_dept_id"); + List refundList = hardOrderMapper.listRefundCs(refundDto, refundDataScope); + // 有退款没有流水的情况 + if (ObjectUtil.isAllNotEmpty(totalList, refundList)) { + for (HardOrderCsVo refund : refundList) { + for (HardOrderCsVo total : totalList) { + if (ObjectUtil.equals(refund.getMerchantId(), total.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)) { From 49eaeff2f663fd2ac74c9fb3cbd808590a9b025a Mon Sep 17 00:00:00 2001 From: dzc <2388224167@qq.com> Date: Thu, 10 Jul 2025 11:40:19 +0800 Subject: [PATCH 07/12] =?UTF-8?q?feat:=E5=95=86=E6=88=B7=E7=BB=9F=E8=AE=A1?= =?UTF-8?q?=E6=B2=A1=E6=9C=89=E6=B5=81=E6=B0=B4=E5=8F=AA=E6=9C=89=E9=80=80?= =?UTF-8?q?=E6=AC=BE=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/order/HardOrderTotalServiceImpl.java | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) 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 b70ed3f4a..4a6304e53 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 @@ -169,14 +169,13 @@ public class HardOrderTotalServiceImpl implements HardOrderTotalService { List refundList = hardOrderMapper.listRefundCs(refundDto, refundDataScope); // 有退款没有流水的情况 if (ObjectUtil.isAllNotEmpty(totalList, refundList)) { + List totalIds = totalList.stream().map(HardOrderCsVo::getMerchantId).toList(); for (HardOrderCsVo refund : refundList) { - for (HardOrderCsVo total : totalList) { - if (ObjectUtil.equals(refund.getMerchantId(), total.getMerchantId())) { - HardOrderCsVo entity = BeanUtils.toBean(refund, HardOrderCsVo.class); - entity.setTotalPayPrice(BigDecimal.ZERO); - entity.setTotalPayCount(BigDecimal.ZERO); - totalList.add(entity); - } + if (!totalIds.contains(refund.getMerchantId())) { + HardOrderCsVo entity = BeanUtils.toBean(refund, HardOrderCsVo.class); + entity.setTotalPayPrice(BigDecimal.ZERO); + entity.setTotalPayCount(BigDecimal.ZERO); + totalList.add(entity); } } } From ac591bd238ad7673d8ee772e26b11e21f5b7799c Mon Sep 17 00:00:00 2001 From: dzc <2388224167@qq.com> Date: Thu, 10 Jul 2025 11:41:23 +0800 Subject: [PATCH 08/12] 11 --- .../pjcloud/hard/service/impl/order/HardOrderServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 Date: Thu, 10 Jul 2025 14:44:19 +0800 Subject: [PATCH 09/12] 11 --- .../src/main/resources/mapper/WalletManageMapper.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) 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 4dc3b8ecc..998eacc44 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 @@ -252,13 +252,13 @@ - and a.dept_id IN + and m.dept_id IN - and a.dept_id NOT IN + and m.dept_id NOT IN - and a.dept_id IN + and m.dept_id IN From 877a9bb2ac7e5033f5cf7995a4a4ebfaade6d7c6 Mon Sep 17 00:00:00 2001 From: zjf <1799650030@qq.com> Date: Thu, 17 Jul 2025 10:23:53 +0800 Subject: [PATCH 10/12] =?UTF-8?q?=E5=9C=A8=E7=BA=BF=E5=95=86=E5=9F=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/AppShopSpuController.java | 34 ++++++++++++++++--- 1 file changed, 30 insertions(+), 4 deletions(-) diff --git a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/controller/AppShopSpuController.java b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/controller/AppShopSpuController.java index 7af325a39..2cee5c3eb 100644 --- a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/controller/AppShopSpuController.java +++ b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/controller/AppShopSpuController.java @@ -34,15 +34,41 @@ public class AppShopSpuController { @Operation(summary = "APP商品分页", description = "移动端商品分页") public R> page( @ParameterObject Page page, - @RequestParam(required = false) Integer categoryId, - @RequestParam(required = false) String keyword + @RequestParam(required = false) Long categoryId, + @RequestParam(required = false) String keyword, + @RequestParam(required = false) String merchantId ) { LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(); wrapper.eq(categoryId != null, ShopSpuEntity::getCategoryId, categoryId); - wrapper.like(StrUtil.isNotBlank(keyword), ShopSpuEntity::getProductName, keyword); + wrapper.like(cn.hutool.core.util.StrUtil.isNotBlank(keyword), ShopSpuEntity::getProductName, keyword); wrapper.eq(ShopSpuEntity::getStatus, 0); // 只查上架 + if (cn.hutool.core.util.StrUtil.isNotBlank(merchantId)) { + wrapper.apply("FIND_IN_SET({0}, merchant_ids)", merchantId.trim()); + } IPage spuPage = shopSpuService.page(page, wrapper); - IPage voPage = spuPage.convert(spu -> BeanUtils.toBean(spu, ShopSpuListAppVo.class)); + List spuIds = spuPage.getRecords().stream().map(ShopSpuEntity::getId).collect(java.util.stream.Collectors.toList()); + List skuList = spuIds.isEmpty() ? List.of() : shopSkuService.list( + Wrappers.lambdaQuery().in(ShopSkuEntity::getSpuId, spuIds) + ); + java.util.Map> skuMap = skuList.stream().collect(java.util.stream.Collectors.groupingBy(ShopSkuEntity::getSpuId)); + IPage voPage = spuPage.convert(spu -> { + ShopSpuListAppVo vo = com.bsd.pjcloud.common.core.util.BeanUtils.toBean(spu, ShopSpuListAppVo.class); + List skus = skuMap.getOrDefault(spu.getId(), List.of()); + vo.setMinPrice(skus.stream() + .map(ShopSkuEntity::getRetailPrice) + .filter(java.util.Objects::nonNull) + .map(price -> new java.math.BigDecimal(price).divide(new java.math.BigDecimal(100))) + .min(java.math.BigDecimal::compareTo) + .orElse(java.math.BigDecimal.ZERO)); + vo.setTotalStock( + skus.stream() + .map(ShopSkuEntity::getStock) + .filter(java.util.Objects::nonNull) + .mapToDouble(Double::doubleValue) + .sum() + ); + return vo; + }); return R.ok(voPage); } From 2bfe6b96d354ef7faf4576213dfcdb67ec930e3e Mon Sep 17 00:00:00 2001 From: zjf <1799650030@qq.com> Date: Thu, 17 Jul 2025 10:25:56 +0800 Subject: [PATCH 11/12] =?UTF-8?q?=E5=9C=A8=E7=BA=BF=E5=95=86=E5=9F=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pjcloud/supermarket/vo/app/ShopSpuListAppVo.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/vo/app/ShopSpuListAppVo.java b/pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/vo/app/ShopSpuListAppVo.java index fe6e1b535..05ae46501 100644 --- a/pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/vo/app/ShopSpuListAppVo.java +++ b/pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/vo/app/ShopSpuListAppVo.java @@ -37,4 +37,16 @@ public class ShopSpuListAppVo { @Schema(description="商品分类编号") private Long categoryId; + /** + * 最低价(元) + */ + @Schema(description="最低价(元)") + private java.math.BigDecimal minPrice; + + /** + * 总库存 + */ + @Schema(description="总库存") + private Double totalStock; + } \ No newline at end of file From 11f7fcb3436803311ae74cbdd38140870a39cd35 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E5=AE=B6=E5=AF=8C?= <1799650030@qq.com> Date: Thu, 17 Jul 2025 11:23:10 +0800 Subject: [PATCH 12/12] =?UTF-8?q?=E5=9C=A8=E7=BA=BF=E5=95=86=E5=9F=8E?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pjcloud/supermarket/entity/ShopSkuEntity.java | 6 ++++++ .../supermarket/vo/app/ShopSpuListAppVo.java | 4 ++-- .../controller/AppShopSpuController.java | 14 +++++++------- .../pjcloud/supermarket/mapper/ShopSpuMapper.java | 5 +++++ .../service/impl/ShopSkuServiceImpl.java | 14 ++++++++++++++ .../src/main/resources/mapper/ShopSkuMapper.xml | 3 ++- .../src/main/resources/mapper/ShopSpuMapper.xml | 5 +++++ 7 files changed, 41 insertions(+), 10 deletions(-) diff --git a/pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/entity/ShopSkuEntity.java b/pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/entity/ShopSkuEntity.java index 11407bd29..67f4da041 100644 --- a/pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/entity/ShopSkuEntity.java +++ b/pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/entity/ShopSkuEntity.java @@ -116,4 +116,10 @@ public class ShopSkuEntity extends Model { @Schema(description="版本号") private Integer version; + + /** + * 销量 + */ + @Schema(description="销量") + private Integer salesCount; } \ No newline at end of file diff --git a/pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/vo/app/ShopSpuListAppVo.java b/pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/vo/app/ShopSpuListAppVo.java index 05ae46501..16985be8a 100644 --- a/pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/vo/app/ShopSpuListAppVo.java +++ b/pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/vo/app/ShopSpuListAppVo.java @@ -46,7 +46,7 @@ public class ShopSpuListAppVo { /** * 总库存 */ - @Schema(description="总库存") - private Double totalStock; + @Schema(description="总销量") + private Double salesCount; } \ No newline at end of file diff --git a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/controller/AppShopSpuController.java b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/controller/AppShopSpuController.java index 2cee5c3eb..b356b60e8 100644 --- a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/controller/AppShopSpuController.java +++ b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/controller/AppShopSpuController.java @@ -60,13 +60,13 @@ public class AppShopSpuController { .map(price -> new java.math.BigDecimal(price).divide(new java.math.BigDecimal(100))) .min(java.math.BigDecimal::compareTo) .orElse(java.math.BigDecimal.ZERO)); - vo.setTotalStock( - skus.stream() - .map(ShopSkuEntity::getStock) - .filter(java.util.Objects::nonNull) - .mapToDouble(Double::doubleValue) - .sum() - ); +// vo.setTotalStock( +// skus.stream() +// .map(ShopSkuEntity::gets) +// .filter(java.util.Objects::nonNull) +// .mapToDouble(Double::doubleValue) +// .sum() +// ); return vo; }); return R.ok(voPage); diff --git a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/mapper/ShopSpuMapper.java b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/mapper/ShopSpuMapper.java index 01abd2060..05c7840b1 100644 --- a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/mapper/ShopSpuMapper.java +++ b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/mapper/ShopSpuMapper.java @@ -8,4 +8,9 @@ import org.apache.ibatis.annotations.Mapper; public interface ShopSpuMapper extends PjcloudBaseMapper { + /** + * 修改销量 + * @param num + */ + void updateSalesCount(Long spuId,Integer num); } \ No newline at end of file diff --git a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/service/impl/ShopSkuServiceImpl.java b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/service/impl/ShopSkuServiceImpl.java index 8c799075c..84e1b00c1 100644 --- a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/service/impl/ShopSkuServiceImpl.java +++ b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/service/impl/ShopSkuServiceImpl.java @@ -1,9 +1,12 @@ package com.bsd.pjcloud.supermarket.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.bsd.pjcloud.supermarket.entity.ShopSkuEntity; import com.bsd.pjcloud.supermarket.mapper.ShopSkuMapper; +import com.bsd.pjcloud.supermarket.mapper.ShopSpuMapper; import com.bsd.pjcloud.supermarket.service.ShopSkuService; +import lombok.AllArgsConstructor; import org.springframework.stereotype.Service; /** * sku @@ -12,7 +15,10 @@ import org.springframework.stereotype.Service; * @date 2025-06-19 12:43:40 */ @Service +@AllArgsConstructor public class ShopSkuServiceImpl extends ServiceImpl implements ShopSkuService { + + private final ShopSpuMapper shopSpuMapper; /** * 修改库存(乐观锁) * 正数:增加库存,负数:扣减库存 @@ -24,7 +30,15 @@ public class ShopSkuServiceImpl extends ServiceImpl shopSkuEntityLambdaQueryWrapper = new LambdaQueryWrapper<>(); + shopSkuEntityLambdaQueryWrapper.eq(ShopSkuEntity::getId, skuId); + ShopSkuEntity shopSkuEntity = baseMapper.selectOne(shopSkuEntityLambdaQueryWrapper); + if (null==shopSkuEntity){ + return false; + } int updated = baseMapper.deductStock(skuId, num, sku.getVersion()); + //更新spu已售总数 + shopSpuMapper.updateSalesCount(shopSkuEntity.getSpuId(),num); if (updated > 0) return true; } return false; diff --git a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/resources/mapper/ShopSkuMapper.xml b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/resources/mapper/ShopSkuMapper.xml index 8e2dd37cb..f0eee7c44 100644 --- a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/resources/mapper/ShopSkuMapper.xml +++ b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/resources/mapper/ShopSkuMapper.xml @@ -22,11 +22,12 @@ + UPDATE shop_sku - SET stock = stock + #{num}, version = version + 1 + SET stock = stock + #{num}, version = version + 1,sales_count=sales_count+#{num} WHERE id = #{skuId} AND stock + #{num} >= 0 AND version = #{version} \ No newline at end of file diff --git a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/resources/mapper/ShopSpuMapper.xml b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/resources/mapper/ShopSpuMapper.xml index 977244bc3..7ea83d126 100644 --- a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/resources/mapper/ShopSpuMapper.xml +++ b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/resources/mapper/ShopSpuMapper.xml @@ -28,4 +28,9 @@ + + UPDATE shop_spu + SET sales_count=sales_count+#{num} + WHERE id = #{spuId} + \ No newline at end of file