From 0228b998442436fdc653129c6283b4c065a3b611 Mon Sep 17 00:00:00 2001 From: dzc <2388224167@qq.com> Date: Fri, 25 Apr 2025 12:00:35 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E4=B8=8D=E6=B4=BB=E8=B7=83=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../wallet/api/dto/WalletTopupActionDto.java | 31 ++++++++++++ .../controller/WalletManageController.java | 10 +++- .../wallet/mapper/WalletManageMapper.java | 3 ++ .../wallet/service/WalletManageService.java | 6 +++ .../service/impl/WalletManageServiceImpl.java | 26 ++++++++-- .../resources/mapper/WalletManageMapper.xml | 48 +++++++++++++++++++ 6 files changed, 118 insertions(+), 6 deletions(-) create mode 100644 pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/WalletTopupActionDto.java diff --git a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/WalletTopupActionDto.java b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/WalletTopupActionDto.java new file mode 100644 index 000000000..b63a56124 --- /dev/null +++ b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/WalletTopupActionDto.java @@ -0,0 +1,31 @@ +package com.bsd.pjcloud.wallet.api.dto; + +import com.bsd.pjcloud.admin.api.vo.base.BaseIsIncludeTreeInterface; +import lombok.Data; + +import java.util.List; + +@Data +public class WalletTopupActionDto implements BaseIsIncludeTreeInterface { + + /** + * 用户id + */ + private Long userId; + + /** + * 不活跃天数 + */ + private Long unactiveMonthsNumber; + + /** + * 部门ids + */ + private List deptIds; + + /** + * 是否包含部门ids + */ + private Boolean isInclude; + +} 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 0ec0aea09..08a9f8848 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 @@ -15,6 +15,7 @@ import com.bsd.pjcloud.common.security.util.SecurityUtils; import com.bsd.pjcloud.wallet.api.constant.WalletTypeEnum; import com.bsd.pjcloud.wallet.api.dto.WalletManageBalanceDto; 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.mapper.WalletManageMapper; @@ -195,11 +196,18 @@ public class WalletManageController { @Operation(summary = "钱包记录分页", description = "钱包记录分页") @PostMapping("/page-join-qb") - public R pageJoinQb(@ParameterObject Page page, @RequestBody WalletManageBalanceDto dto) { + public R> pageJoinQb(@ParameterObject Page page, @RequestBody WalletManageBalanceDto dto) { DataScope dataScope = new DataScope(); return R.ok(walletManageService.scopeQbPage(page, dto, dataScope)); } + @Operation(summary = "不活跃用户钱包", description = "不活跃用户钱包") + @PostMapping("/page-join-active") + public R> pageJoinActive(@ParameterObject Page page, @RequestBody WalletTopupActionDto dto) { + DataScope dataScope = new DataScope(); + return R.ok(walletManageService.pageJoinActive(page, dto, dataScope)); + } + @Operation(summary = "通过id查询", description = "通过id查询") @GetMapping("/{id}") @PreAuthorize("@pms.hasPermission('wallet_walletManage_view')") 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 d3944ba12..2ee615a43 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 @@ -10,6 +10,7 @@ import com.bsd.pjcloud.common.data.datascope.DataScope; import com.bsd.pjcloud.common.data.datascope.PjcloudBaseMapper; import com.bsd.pjcloud.wallet.api.dto.WalletManageBalanceDto; 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.entity.WalletTypeEntity; import com.bsd.pjcloud.wallet.api.vo.WalletManageBalanceVo; @@ -159,4 +160,6 @@ public interface WalletManageMapper extends PjcloudBaseMapper scopeUserList(@Param("dto") WalletManageDto dto, @Param("dataScope") DataScope dataScope); List selectBalance(@Param("dto") WalletManageBalanceDto walletDto); + + Page activeBalancePage(Page page, @Param("dto") WalletTopupActionDto dto, @Param("unactiveDayNumberStr") String unactiveDayNumberStr); } \ 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 7d5524869..3dd3d8fd8 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 @@ -6,6 +6,7 @@ import com.bsd.pjcloud.common.data.datascope.DataScope; import com.bsd.pjcloud.wallet.api.constant.WalletTypeEnum; import com.bsd.pjcloud.wallet.api.dto.WalletManageBalanceDto; 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 jakarta.servlet.http.HttpServletResponse; @@ -62,6 +63,11 @@ public interface WalletManageService extends IService { Page scopeQbPage(Page page, WalletManageBalanceDto dto, DataScope dataScope); + /** + * 不活跃用户钱包 + */ + Page pageJoinActive(Page page, WalletTopupActionDto dto, DataScope dataScope); + List scopeQbList(WalletManageBalanceDto dto, DataScope dataScope); WalletManageVo join(Long walletId); 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 e3b91f3e1..71967b394 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 @@ -30,6 +30,7 @@ import com.bsd.pjcloud.common.data.resolver.ParamResolver; import com.bsd.pjcloud.wallet.api.constant.WalletTypeEnum; import com.bsd.pjcloud.wallet.api.dto.WalletManageBalanceDto; import com.bsd.pjcloud.wallet.api.dto.WalletManageDto; +import com.bsd.pjcloud.wallet.api.dto.WalletTopupActionDto; import com.bsd.pjcloud.wallet.api.dto.WalletTypeDto; import com.bsd.pjcloud.wallet.api.entity.*; import com.bsd.pjcloud.wallet.api.utils.WalletDataUtil; @@ -53,6 +54,7 @@ import org.springframework.validation.annotation.Validated; import java.io.IOException; import java.math.BigDecimal; import java.math.RoundingMode; +import java.time.LocalDate; import java.util.*; /** @@ -201,14 +203,14 @@ public class WalletManageServiceImpl extends ServiceImpl scopeList(WalletManageDto dto, DataScope dataScope) { List list = baseMapper.scopeList(dto, dataScope); - disposeList(list, dto); + disposeList(list); return list; } @Override public Page scopePageList(Page page, WalletManageDto dto, DataScope dataScope) { Page list = baseMapper.scopePage(page, dto, dataScope); - disposeList(list.getRecords(), dto); + disposeList(list.getRecords()); return list; } @@ -278,10 +280,24 @@ public class WalletManageServiceImpl extends ServiceImpl pageJoinActive(Page page, WalletTopupActionDto dto, DataScope dataScope) { + if (ObjectUtil.isNotEmpty(dto.getUnactiveMonthsNumber())) { + dto.setUnactiveMonthsNumber(3L); + } + String unactiveDayNumberStr = LocalDateTimeUtil.format(LocalDateTimeUtil.now().minusMonths(dto.getUnactiveMonthsNumber()), DatePattern.NORM_DATE_PATTERN); + Page pageList = baseMapper.activeBalancePage(page, dto, unactiveDayNumberStr); + disposeList(pageList.getRecords()); + return pageList; + } + @Override public List scopeQbList(WalletManageBalanceDto dto, DataScope dataScope) { WalletManageDto walletDto = BeanUtils.toBean(dto, WalletManageDto.class); @@ -314,7 +330,7 @@ public class WalletManageServiceImpl extends ServiceImpl list, WalletManageDto dto) { + private void disposeList(List list) { if (ObjectUtil.isNotEmpty(list)) { // 用户 List userIds = list.stream().map(WalletManageVo::getUserId).distinct().toList(); 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 5e7bc203a..e6b6e29f8 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 @@ -125,4 +125,52 @@ + + \ No newline at end of file