diff --git a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/dto/order/HardOrderDto.java b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/dto/order/HardOrderDto.java index a677caac5..6ab0fe157 100644 --- a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/dto/order/HardOrderDto.java +++ b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/dto/order/HardOrderDto.java @@ -11,11 +11,6 @@ import java.util.List; @Data public class HardOrderDto extends HardOrderEntity implements BaseIsIncludeTreeInterface { - /** - * 订单部门id极其子部门id - */ - private Long deptIdIdDeepen; - private List deptIds; private Boolean isInclude = false; 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 be5acfdcd..3f49abf34 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 @@ -163,7 +163,7 @@ public class HardOrderTotalController { if (ObjectUtil.isNotEmpty(dto.getCreateTimeList())) { map.put("timeSpan", " 到 "); map.put("startTime", LocalDateTimeUtil.format(dto.getCreateTimeList()[0], DatePattern.NORM_DATETIME_PATTERN)); - map.put("endTime", LocalDateTimeUtil.format(dto.getCreateTimeList()[0], DatePattern.NORM_DATETIME_PATTERN)); + map.put("endTime", LocalDateTimeUtil.format(dto.getCreateTimeList()[1], DatePattern.NORM_DATETIME_PATTERN)); } if (ObjectUtil.isNotEmpty(list)) { // 批量充值 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 3991e32e4..5bbbd35ba 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 @@ -24,12 +24,14 @@ import java.util.List; @Mapper public interface HardOrderMapper extends PjcloudBaseMapper { - default Page scopePageList(Page page, HardOrderDto dto) { + private LambdaQueryWrapper commonWrapper(HardOrderDto dto) { LambdaQueryWrapper wrapper = new LambdaQueryWrapper() .eq(ObjectUtil.isNotEmpty(dto.getOrderType()), HardOrderEntity::getOrderType, dto.getOrderType()) .eq(ObjectUtil.isNotEmpty(dto.getPayType()), HardOrderEntity::getPayType, dto.getPayType()) .eq(ObjectUtil.isNotEmpty(dto.getOrderStatus()), HardOrderEntity::getOrderStatus, dto.getOrderStatus()) .eq(ObjectUtil.isNotEmpty(dto.getHourType()), HardOrderEntity::getHourType, dto.getHourType()) + .eq(ObjectUtil.isNotEmpty(dto.getDeptId()), HardOrderEntity::getDeptId, dto.getDeptId()) + .eq(ObjectUtil.isNotEmpty(dto.getUserId()), HardOrderEntity::getUserId, dto.getUserId()) .in(ObjectUtil.isNotEmpty(dto.getOrderIds()), HardOrderEntity::getId, dto.getOrderIds()) .in(ObjectUtil.isNotEmpty(dto.getUserIds()), HardOrderEntity::getUserId, dto.getUserIds()) .in(ObjectUtil.isNotEmpty(dto.getHardIds()), HardOrderEntity::getHardId, dto.getHardIds()) @@ -48,7 +50,11 @@ public interface HardOrderMapper extends PjcloudBaseMapper { ObjectUtil.isNotEmpty(dto.getPayTimeList()) ? dto.getPayTimeList()[1] : null ) .orderByDesc(HardOrderEntity::getCreateTime); - Page list = selectPageByScope(page, wrapper, DataScope.of()); + return wrapper; + } + + default Page scopePageList(Page page, HardOrderDto dto) { + Page list = selectPageByScope(page, commonWrapper(dto), DataScope.of()); list.setRecords(BeanUtils.toBean(list.getRecords(), HardOrderVo.class)); return list; } @@ -60,6 +66,7 @@ public interface HardOrderMapper extends PjcloudBaseMapper { .selectAs(HardManagerEntity::getType, HardOrderVo::getHardType) .leftJoin(HardManagerEntity.class, HardManagerEntity::getId, HardOrderEntity::getHardId) .eqIfExists(HardOrderEntity::getUserId, dto.getUserId()) + .eqIfExists(HardOrderEntity::getDeptId, dto.getDeptId()) .eqIfExists(HardOrderEntity::getOrderType, dto.getOrderType()) .eqIfExists(HardOrderEntity::getPayType, dto.getPayType()) .eqIfExists(HardOrderEntity::getOrderStatus, dto.getOrderStatus()) @@ -79,30 +86,7 @@ public interface HardOrderMapper extends PjcloudBaseMapper { } default List list(HardOrderDto dto) { - LambdaQueryWrapper wrapper = new LambdaQueryWrapper() - .eq(ObjectUtil.isNotEmpty(dto.getOrderType()), HardOrderEntity::getOrderType, dto.getOrderType()) - .eq(ObjectUtil.isNotEmpty(dto.getPayType()), HardOrderEntity::getPayType, dto.getPayType()) - .eq(ObjectUtil.isNotEmpty(dto.getOrderStatus()), HardOrderEntity::getOrderStatus, dto.getOrderStatus()) - .eq(ObjectUtil.isNotEmpty(dto.getHourType()), HardOrderEntity::getHourType, dto.getHourType()) - .in(ObjectUtil.isNotEmpty(dto.getOrderIds()), HardOrderEntity::getId, dto.getOrderIds()) - .in(ObjectUtil.isNotEmpty(dto.getUserIds()), HardOrderEntity::getUserId, dto.getUserIds()) - .in(ObjectUtil.isNotEmpty(dto.getHardIds()), HardOrderEntity::getHardId, dto.getHardIds()) - .in(ObjectUtil.isNotEmpty(dto.getMchIds()), HardOrderEntity::getMerchantId, dto.getMchIds()) - .in(ObjectUtil.isNotEmpty(dto.getUserDeptIds()), HardOrderEntity::getDeptId, dto.getUserDeptIds()) - .between( - ObjectUtil.isNotEmpty(dto.getCreateTimeList()), - HardOrderEntity::getCreateTime, - ObjectUtil.isNotEmpty(dto.getCreateTimeList()) ? dto.getCreateTimeList()[0] : null, - ObjectUtil.isNotEmpty(dto.getCreateTimeList()) ? dto.getCreateTimeList()[1] : null - ) - .between( - ObjectUtil.isNotEmpty(dto.getPayTimeList()), - HardOrderEntity::getPayTime, - ObjectUtil.isNotEmpty(dto.getPayTimeList()) ? dto.getPayTimeList()[0] : null, - ObjectUtil.isNotEmpty(dto.getPayTimeList()) ? dto.getPayTimeList()[1] : null - ) - .orderByDesc(HardOrderEntity::getCreateTime); - return selectListByScope(wrapper, DataScope.of()); + return selectListByScope(commonWrapper(dto), DataScope.of()); } Page pageListSb(Page page, @Param("dto") HardOrderDto dto); 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 e5843ab36..cc82de11b 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 @@ -116,14 +116,6 @@ public class HardOrderServiceImpl extends ServiceImpl scopePageList(Page page, HardOrderDto dto) { - if (ObjectUtil.isNotEmpty(dto.getDeptIdIdDeepen())) { - List deptList = deptService.getDescendantList(dto.getDeptIdIdDeepen()).getData(); - if (ObjectUtil.isNotEmpty(deptList)) { - dto.setUserDeptIds(deptList.stream().map(SysDept::getDeptId).toList()); - } else { - dto.setUserDeptIds(List.of(-1L)); - } - } Page list = baseMapper.scopePageList(page, dto); if (ObjectUtil.isNotEmpty(list.getRecords())) { // 用户 diff --git a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/WalletManageBalanceDto.java b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/WalletManageBalanceDto.java new file mode 100644 index 000000000..9457a596c --- /dev/null +++ b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/WalletManageBalanceDto.java @@ -0,0 +1,23 @@ +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 WalletManageBalanceDto implements BaseIsIncludeTreeInterface { + + private String walletRecordMonth; + + private Long userId; + + private List userIds; + + private Long walletTypeId; + + private Boolean isInclude; + + private List deptIds; + +} diff --git a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/WalletManageBalanceVo.java b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/WalletManageBalanceVo.java new file mode 100644 index 000000000..e6cbe23a9 --- /dev/null +++ b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/WalletManageBalanceVo.java @@ -0,0 +1,22 @@ +package com.bsd.pjcloud.wallet.api.vo; + +import lombok.Data; + +import java.time.LocalDateTime; + +@Data +public class WalletManageBalanceVo { + + private Long userId; + + private Long walletId; + + private Long walletTypeId; + + private String walletTypeName; + + private Integer balance; + + private LocalDateTime createTime; + +} diff --git a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/WalletManageVo.java b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/WalletManageVo.java index 3965ec476..618419e43 100644 --- a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/WalletManageVo.java +++ b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/WalletManageVo.java @@ -6,6 +6,9 @@ import com.bsd.pjcloud.wallet.api.entity.WalletManageEntity; import com.bsd.pjcloud.wallet.api.vo.base.BaseWalletTypeInterface; import lombok.Data; +import java.time.LocalDateTime; +import java.util.List; + @Data public class WalletManageVo extends WalletManageEntity implements BaseUserInterface, BaseDeptInterface, BaseWalletTypeInterface { @@ -39,4 +42,9 @@ public class WalletManageVo extends WalletManageEntity implements BaseUserInterf * 导出相关 */ private Long lineNumber; + + /** + * 最后充值时间 + */ + private LocalDateTime lastTopUpTime; } 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 fb9b518ff..696e2207a 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 @@ -13,6 +13,7 @@ import com.bsd.pjcloud.common.security.annotation.Inner; import com.bsd.pjcloud.common.security.service.PjcloudUser; 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.entity.WalletManageEntity; import com.bsd.pjcloud.wallet.api.vo.WalletManageVo; @@ -148,6 +149,13 @@ public class WalletManageController { return R.ok(walletManageService.scopePageList(page, dto, DataScope.of())); } + @Operation(summary = "钱包记录分页", description = "钱包记录分页") + @PostMapping("/page-join-qb") + public R pageJoinQb(@ParameterObject Page page, @RequestBody WalletManageBalanceDto dto) { + DataScope dataScope = new DataScope(); + return R.ok(walletManageService.scopeQbPage(page, dto, dataScope)); + } + @Operation(summary = "通过id查询", description = "通过id查询") @GetMapping("/{id}") @PreAuthorize("@pms.hasPermission('wallet_walletManage_view')") @@ -179,16 +187,15 @@ public class WalletManageController { return R.ok(walletManageService.removeBatchByIds(CollUtil.toList(ids))); } - @Operation(summary = "钱包记录分页", description = "钱包记录分页") - @PostMapping("/page-qb") - public R pageQb(@ParameterObject Page page, @RequestBody WalletManageDto dto) { - DataScope dataScope = new DataScope(); - return R.ok(walletManageService.scopeQbPageList(page, dto, dataScope)); - } - @PostMapping("/export") @PreAuthorize("@pms.hasPermission('wallet_walletManage_export')") public void export(HttpServletResponse response, @ParameterObject Page page, @RequestBody WalletManageDto dto) { walletManageService.export(response, page, dto); } + + @PostMapping("/export-qb") + // @PreAuthorize("@pms.hasPermission('wallet_walletManage_export')") + public void exportQb(HttpServletResponse response, @ParameterObject Page page, @RequestBody WalletManageBalanceDto dto) { + walletManageService.exportQb(response, page, dto); + } } \ No newline at end of file diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/recharge/WalletRechargeImportController.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/recharge/WalletRechargeImportController.java index c01b1db70..f5f0f08e8 100644 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/recharge/WalletRechargeImportController.java +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/recharge/WalletRechargeImportController.java @@ -125,7 +125,7 @@ public class WalletRechargeImportController { if (ObjectUtil.isNotEmpty(dto.getCreateTimeList())) { map.put("timeSpan", " 到 "); map.put("startTime", LocalDateTimeUtil.format(dto.getCreateTimeList()[0], DatePattern.NORM_DATETIME_PATTERN)); - map.put("endTime", LocalDateTimeUtil.format(dto.getCreateTimeList()[0], DatePattern.NORM_DATETIME_PATTERN)); + map.put("endTime", LocalDateTimeUtil.format(dto.getCreateTimeList()[1], DatePattern.NORM_DATETIME_PATTERN)); } if (ObjectUtil.isNotEmpty(list)) { BigDecimal priceStrSum = BigDecimal.ZERO; 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 a4c1b34a0..6f7afb967 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 @@ -7,17 +7,48 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.bsd.pjcloud.common.core.util.BeanUtils; 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.entity.WalletManageEntity; import com.bsd.pjcloud.wallet.api.entity.WalletTypeEntity; +import com.bsd.pjcloud.wallet.api.vo.WalletManageBalanceVo; import com.bsd.pjcloud.wallet.api.vo.WalletManageVo; import com.github.yulichang.wrapper.MPJLambdaWrapper; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; import java.util.List; @Mapper public interface WalletManageMapper extends PjcloudBaseMapper { + + private LambdaQueryWrapper commonQuery(WalletManageDto dto) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper() + .eq(ObjectUtil.isNotEmpty(dto.getUserId()), WalletManageEntity::getUserId, dto.getUserId()) + .eq(ObjectUtil.isNotEmpty(dto.getDeptId()), WalletManageEntity::getDeptId, dto.getDeptId()) + .eq(ObjectUtil.isNotEmpty(dto.getWalletTypeId()), WalletManageEntity::getWalletTypeId, dto.getWalletTypeId()) + .eq(ObjectUtil.isNotEmpty(dto.getIsFreeze()), WalletManageEntity::getIsFreeze, dto.getIsFreeze()) + .in(ObjectUtil.isNotEmpty(dto.getWalletIds()), WalletManageEntity::getId, dto.getWalletIds()) + .in(ObjectUtil.isNotEmpty(dto.getUserIds()), WalletManageEntity::getUserId, dto.getUserIds()) + .between( + ObjectUtil.isNotEmpty(dto.getCreateTimeList()), + WalletManageEntity::getCreateTime, + ObjectUtil.isNotEmpty(dto.getCreateTimeList()) ? dto.getCreateTimeList()[0] : null, + ObjectUtil.isNotEmpty(dto.getCreateTimeList()) ? dto.getCreateTimeList()[1] : null + ) + .orderByDesc(WalletManageEntity::getCreateTime); + if (ObjectUtil.isNotEmpty(dto.getIsInclude())) { + if (dto.getIsInclude()) { + wrapper.in(ObjectUtil.isNotEmpty(dto.getDeptIds()), WalletManageEntity::getDeptId, dto.getDeptIds()); + } else { + wrapper.notIn(ObjectUtil.isNotEmpty(dto.getDeptIds()), WalletManageEntity::getDeptId, dto.getDeptIds()); + } + } else { + wrapper.in(ObjectUtil.isNotEmpty(dto.getDeptIds()), WalletManageEntity::getDeptId, dto.getDeptIds()); + } + return wrapper; + } + /** * 当消费时候, 更新钱包 * @@ -102,61 +133,20 @@ public interface WalletManageMapper extends PjcloudBaseMapper scopePageList(Page page, WalletManageDto dto, DataScope dataScope) { - LambdaQueryWrapper wrapper = new LambdaQueryWrapper() - .eq(ObjectUtil.isNotEmpty(dto.getUserId()), WalletManageEntity::getUserId, dto.getUserId()) - .eq(ObjectUtil.isNotEmpty(dto.getDeptId()), WalletManageEntity::getDeptId, dto.getDeptId()) - .eq(ObjectUtil.isNotEmpty(dto.getWalletTypeId()), WalletManageEntity::getWalletTypeId, dto.getWalletTypeId()) - .eq(ObjectUtil.isNotEmpty(dto.getIsFreeze()), WalletManageEntity::getIsFreeze, dto.getIsFreeze()) - .in(ObjectUtil.isNotEmpty(dto.getWalletIds()), WalletManageEntity::getId, dto.getWalletIds()) - .in(ObjectUtil.isNotEmpty(dto.getUserIds()), WalletManageEntity::getUserId, dto.getUserIds()) - .between( - ObjectUtil.isNotEmpty(dto.getCreateTimeList()), - WalletManageEntity::getCreateTime, - ObjectUtil.isNotEmpty(dto.getCreateTimeList()) ? dto.getCreateTimeList()[0] : null, - ObjectUtil.isNotEmpty(dto.getCreateTimeList()) ? dto.getCreateTimeList()[1] : null - ) - .orderByDesc(WalletManageEntity::getCreateTime); - if (ObjectUtil.isNotEmpty(dto.getIsInclude())) { - if (dto.getIsInclude()) { - wrapper.in(ObjectUtil.isNotEmpty(dto.getDeptIds()), WalletManageEntity::getDeptId, dto.getDeptIds()); - } else { - wrapper.notIn(ObjectUtil.isNotEmpty(dto.getDeptIds()), WalletManageEntity::getDeptId, dto.getDeptIds()); - } - } else { - wrapper.in(ObjectUtil.isNotEmpty(dto.getDeptIds()), WalletManageEntity::getDeptId, dto.getDeptIds()); - } - Page list = selectPageByScope(page, wrapper, dataScope); + default Page scopePage(Page page, WalletManageDto dto, DataScope dataScope) { + Page list = selectPageByScope(page, commonQuery(dto), dataScope); list.setRecords(BeanUtils.toBean(list.getRecords(), WalletManageVo.class)); return list; } default List scopeList(WalletManageDto dto, DataScope dataScope) { - LambdaQueryWrapper wrapper = new LambdaQueryWrapper() - .eq(ObjectUtil.isNotEmpty(dto.getUserId()), WalletManageEntity::getUserId, dto.getUserId()) - .eq(ObjectUtil.isNotEmpty(dto.getDeptId()), WalletManageEntity::getDeptId, dto.getDeptId()) - .eq(ObjectUtil.isNotEmpty(dto.getWalletTypeId()), WalletManageEntity::getWalletTypeId, dto.getWalletTypeId()) - .eq(ObjectUtil.isNotEmpty(dto.getIsFreeze()), WalletManageEntity::getIsFreeze, dto.getIsFreeze()) - .in(ObjectUtil.isNotEmpty(dto.getWalletIds()), WalletManageEntity::getId, dto.getWalletIds()) - .in(ObjectUtil.isNotEmpty(dto.getUserIds()), WalletManageEntity::getUserId, dto.getUserIds()) - .between( - ObjectUtil.isNotEmpty(dto.getCreateTimeList()), - WalletManageEntity::getCreateTime, - ObjectUtil.isNotEmpty(dto.getCreateTimeList()) ? dto.getCreateTimeList()[0] : null, - ObjectUtil.isNotEmpty(dto.getCreateTimeList()) ? dto.getCreateTimeList()[1] : null - ) - .orderByDesc(WalletManageEntity::getCreateTime); - if (ObjectUtil.isNotEmpty(dto.getIsInclude())) { - if (dto.getIsInclude()) { - wrapper.in(ObjectUtil.isNotEmpty(dto.getDeptIds()), WalletManageEntity::getDeptId, dto.getDeptIds()); - } else { - wrapper.notIn(ObjectUtil.isNotEmpty(dto.getDeptIds()), WalletManageEntity::getDeptId, dto.getDeptIds()); - } - } else { - wrapper.in(ObjectUtil.isNotEmpty(dto.getDeptIds()), WalletManageEntity::getDeptId, dto.getDeptIds()); - } - List list = selectListByScope(wrapper, dataScope); + List list = selectListByScope(commonQuery(dto), dataScope); return BeanUtils.toBean(list, WalletManageVo.class); } + Page scopeUserPage(Page page, @Param("dto") WalletManageDto dto, @Param("dataScope") DataScope dataScope); + + List scopeUserList(@Param("dto") WalletManageDto dto, @Param("dataScope") DataScope dataScope); + + List selectBalance(@Param("dto") WalletManageBalanceDto walletDto); } \ 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 722f6b3e8..0188713ce 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 @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; 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.entity.WalletManageEntity; import com.bsd.pjcloud.wallet.api.vo.WalletManageVo; @@ -82,10 +83,12 @@ public interface WalletManageService extends IService { Page scopePageList(Page page, WalletManageDto dto, DataScope dataScope); - Page scopeQbPageList(Page page, WalletManageDto dto, DataScope dataScope); - List scopeList(WalletManageDto dto, DataScope dataScope); + Page scopeQbPage(Page page, WalletManageBalanceDto dto, DataScope dataScope); + + List scopeQbList(WalletManageBalanceDto dto, DataScope dataScope); + WalletManageVo join(Long user, Long walletId); /** @@ -102,4 +105,13 @@ public interface WalletManageService extends IService { * @param dto */ void export(HttpServletResponse response, Page page, WalletManageDto dto); + + /** + * 钱包记录导出 + * + * @param response + * @param page + * @param dto + */ + void exportQb(HttpServletResponse response, Page page, 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 5cf51fa49..1fd34f771 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 @@ -32,11 +32,13 @@ import com.bsd.pjcloud.hard.api.constant.order.HardPayTypeEnum; import com.bsd.pjcloud.hard.api.dto.code.QRCodeDto; import com.bsd.pjcloud.hard.api.dto.code.QRCodeExtraDto; 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.WalletTypeDto; import com.bsd.pjcloud.wallet.api.entity.WalletManageEntity; import com.bsd.pjcloud.wallet.api.entity.WalletTypeEntity; import com.bsd.pjcloud.wallet.api.utils.WalletDataUtil; +import com.bsd.pjcloud.wallet.api.vo.WalletManageBalanceVo; import com.bsd.pjcloud.wallet.api.vo.WalletManageVo; import com.bsd.pjcloud.wallet.api.vo.WalletSettingVo; import com.bsd.pjcloud.wallet.mapper.WalletManageMapper; @@ -59,7 +61,6 @@ import java.math.RoundingMode; import java.time.LocalDateTime; import java.time.ZoneId; import java.util.*; -import java.util.stream.Collectors; /** * 钱包管理 @@ -226,7 +227,7 @@ public class WalletManageServiceImpl extends ServiceImpl scopePageList(Page page, WalletManageDto dto, DataScope dataScope) { - Page list = baseMapper.scopePageList(page, dto, dataScope); + Page list = baseMapper.scopePage(page, dto, dataScope); disposeList(list.getRecords(), dto); return list; } @@ -245,8 +246,75 @@ public class WalletManageServiceImpl extends ServiceImpl scopeQbPageList(Page page, WalletManageDto dto, DataScope dataScope) { - return null; + public Page scopeQbPage(Page page, WalletManageBalanceDto dto, DataScope dataScope) { + WalletManageDto walletDto = BeanUtils.toBean(dto, WalletManageDto.class); + Page walletPage = baseMapper.scopePage(page, walletDto, dataScope); + if (walletPage.getTotal() == 0) return walletPage; + walletPage.getRecords().forEach(v -> { + v.setBalance(0); + v.setTotalRecharge(0); + v.setTotalExpense(0); + }); + List userIds = walletPage.getRecords().stream().map(WalletManageVo::getUserId).distinct().toList(); + // 查询钱包类表 + List walletTypeList = walletTypeService.list(); + if (ObjectUtil.isEmpty(walletTypeList)) return walletPage; + // 查询所有钱包类型的流水记录 + for (WalletTypeEntity i : walletTypeList) { + dto.setWalletTypeId(i.getId()); + if (ObjectUtil.isEmpty(dto.getUserId())) { + dto.setUserIds(userIds); + } + List itemList = baseMapper.selectBalance(dto); + if (ObjectUtil.isEmpty(itemList)) continue; + for (WalletManageBalanceVo j : itemList) { + 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()); + v.setLastTopUpTime(j.getCreateTime()); + } + }); + } + } + disposeList(walletPage.getRecords(), walletDto); + return walletPage; + } + + @Override + public List scopeQbList(WalletManageBalanceDto dto, DataScope dataScope) { + WalletManageDto walletDto = BeanUtils.toBean(dto, WalletManageDto.class); + List walletList = baseMapper.scopeList(walletDto, dataScope); + if (ObjectUtil.isEmpty(walletList)) return walletList; + walletList.forEach(v -> { + v.setBalance(0); + v.setTotalRecharge(0); + v.setTotalExpense(0); + }); + List userIds = walletList.stream().map(WalletManageVo::getUserId).distinct().toList(); + // 查询钱包类表 + List walletTypeList = walletTypeService.list(); + if (ObjectUtil.isEmpty(walletTypeList)) return walletList; + // 查询所有钱包类型的流水记录 + for (WalletTypeEntity i : walletTypeList) { + dto.setWalletTypeId(i.getId()); + if (ObjectUtil.isEmpty(dto.getUserId())) { + dto.setUserIds(userIds); + } + List itemList = baseMapper.selectBalance(dto); + if (ObjectUtil.isEmpty(itemList)) continue; + for (WalletManageBalanceVo j : itemList) { + j.setWalletTypeName(i.getName()); + walletList.stream().filter(v -> ObjectUtil.equals(v.getUserId(), j.getUserId())).findFirst().ifPresent(v -> { + if (ObjectUtil.isNotEmpty(j.getBalance())) { + v.setBalance(j.getBalance()); + v.setLastTopUpTime(j.getCreateTime()); + } + }); + } + } + disposeList(walletList, walletDto); + return walletList; } @Override @@ -260,7 +328,7 @@ public class WalletManageServiceImpl extends ServiceImpl list = scopeQbList(dto, DataScope.of()); + try (ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream()).withTemplate(ResourceUtil.getStream(fileName)).build()) { + WriteSheet writeSheet = EasyExcel.writerSheet().build(); + FillConfig fillConfig = FillConfig.builder().forceNewRow(Boolean.TRUE).build(); + Map map = new HashMap(); + map.put("walletRecordMonth", dto.getWalletRecordMonth()); + if (ObjectUtil.isNotEmpty(list)) { + Long lineNumber = 1L; + BigDecimal balanceSum = BigDecimal.ZERO; + for (WalletManageVo v : list) { + v.setLineNumber(lineNumber); + lineNumber++; + if (ObjectUtil.isNotEmpty(v.getBalance())) { + balanceSum = balanceSum.add(BigDecimal.valueOf(v.getBalance())); + v.setBalance(BigDecimal.valueOf(v.getBalance()).divide(BigDecimal.valueOf(100)).setScale(2, RoundingMode.HALF_UP).intValue()); + } + } + map.put("balanceSum", balanceSum.divide(BigDecimal.valueOf(100)).setScale(2, RoundingMode.HALF_UP).toString()); + } + excelWriter.fill(map, writeSheet); + excelWriter.fill(list, fillConfig, writeSheet); + } catch (IOException e) { + e.printStackTrace(); + log.error("|{}|导入错误,dto:|{}|,fileName:|{}|,error:|{}|", TAG, JSON.toJSONString(dto), fileName, e.getMessage()); + } + } + private void disposeList(List list, WalletManageDto dto) { if (ObjectUtil.isNotEmpty(list)) { // 用户 diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/WalletTransactionServiceImpl.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/WalletTransactionServiceImpl.java index 0237f6b48..b03e31605 100644 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/WalletTransactionServiceImpl.java +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/WalletTransactionServiceImpl.java @@ -186,7 +186,7 @@ public class WalletTransactionServiceImpl extends ServiceImpl - - + @@ -21,6 +20,92 @@ - + + + select a.id, + a.user_id, + a.wallet_type_id, + a.dept_id, + a.card_number, + a.balance, + a.total_expense, + a.total_recharge, + a.freeze_price, + a.is_freeze, + a.active_bind_time, + a.active_bind_status, + a.create_by, + a.create_time, + a.update_by, + a.update_time, + a.del_flag, + a.tenant_id, + + + + + + + + + + select a.user_id from wallet_manage a + + a.del_flag = 0 + + + + and a.dept_id IN + + + and a.dept_id NOT IN + + + and a.dept_id IN + + + + #{v} + + + + group by a.user_id; + + + + + + + \ No newline at end of file