From bc76d5d939eb36fd188baa65d359c2b7a393ca37 Mon Sep 17 00:00:00 2001 From: tianfeng <769204422@qq.com> Date: Mon, 8 Dec 2025 18:04:27 +0800 Subject: [PATCH] =?UTF-8?q?=E9=87=91=E5=B8=81=E4=BB=A3=E7=90=86=E6=B5=81?= =?UTF-8?q?=E6=B0=B4=E8=AE=B0=E5=BD=95=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../FreightBalanceRunningWaterClientApi.java | 2 +- .../dto/FreightBalanceRunningWaterDTO.java | 17 ++++++++++ ...FreightBalanceRunningWaterServiceImpl.java | 33 +++++++++++-------- ...tBalanceRunningWaterClientServiceImpl.java | 24 ++++++++++++-- 4 files changed, 58 insertions(+), 18 deletions(-) diff --git a/rc-service/rc-inner-api/wallet-inner/wallet-inner-api/src/main/java/com/red/circle/wallet/inner/endpoint/freight/api/FreightBalanceRunningWaterClientApi.java b/rc-service/rc-inner-api/wallet-inner/wallet-inner-api/src/main/java/com/red/circle/wallet/inner/endpoint/freight/api/FreightBalanceRunningWaterClientApi.java index 8a408caa..da37628f 100644 --- a/rc-service/rc-inner-api/wallet-inner/wallet-inner-api/src/main/java/com/red/circle/wallet/inner/endpoint/freight/api/FreightBalanceRunningWaterClientApi.java +++ b/rc-service/rc-inner-api/wallet-inner/wallet-inner-api/src/main/java/com/red/circle/wallet/inner/endpoint/freight/api/FreightBalanceRunningWaterClientApi.java @@ -29,7 +29,7 @@ public interface FreightBalanceRunningWaterClientApi { @GetMapping("/flowByUserId") ResultResponse> flowByUserId( @RequestParam("userId") Long userId, - @RequestParam(value = "type", required = false) Integer type, + @RequestParam(value = "type", required = true) Integer type, @RequestParam(value = "searchId", required = false) Long searchId, @RequestParam(value = "lastId",required = false) Long lastId ); diff --git a/rc-service/rc-inner-api/wallet-inner/wallet-inner-model/src/main/java/com/red/circle/wallet/inner/model/dto/FreightBalanceRunningWaterDTO.java b/rc-service/rc-inner-api/wallet-inner/wallet-inner-model/src/main/java/com/red/circle/wallet/inner/model/dto/FreightBalanceRunningWaterDTO.java index badb2ad4..3da6af95 100644 --- a/rc-service/rc-inner-api/wallet-inner/wallet-inner-model/src/main/java/com/red/circle/wallet/inner/model/dto/FreightBalanceRunningWaterDTO.java +++ b/rc-service/rc-inner-api/wallet-inner/wallet-inner-model/src/main/java/com/red/circle/wallet/inner/model/dto/FreightBalanceRunningWaterDTO.java @@ -60,6 +60,16 @@ public class FreightBalanceRunningWaterDTO extends DTO { @JsonSerialize(using = ToStringSerializer.class) private Long sellerId; + /** + * 接收人信息 + */ + private AccountItem acceptUserAccount; + + /** + * 发送人信息 + */ + private AccountItem userAccount; + /** * 类型0.收入 1.支出. */ @@ -110,4 +120,11 @@ public class FreightBalanceRunningWaterDTO extends DTO { @JsonSerialize(using = ToStringSerializer.class) private Long updateUser; + @Data + public static class AccountItem { + private String account; + private String userNickName; + private String userAvatar; + } + } diff --git a/rc-service/rc-service-wallet/wallet-infrastructure/src/main/java/com/red/circle/wallet/infra/database/rds/service/freight/impl/FreightBalanceRunningWaterServiceImpl.java b/rc-service/rc-service-wallet/wallet-infrastructure/src/main/java/com/red/circle/wallet/infra/database/rds/service/freight/impl/FreightBalanceRunningWaterServiceImpl.java index 27cbcb8c..51b91b82 100644 --- a/rc-service/rc-service-wallet/wallet-infrastructure/src/main/java/com/red/circle/wallet/infra/database/rds/service/freight/impl/FreightBalanceRunningWaterServiceImpl.java +++ b/rc-service/rc-service-wallet/wallet-infrastructure/src/main/java/com/red/circle/wallet/infra/database/rds/service/freight/impl/FreightBalanceRunningWaterServiceImpl.java @@ -3,6 +3,7 @@ package com.red.circle.wallet.infra.database.rds.service.freight.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.red.circle.framework.dto.PageResult; import com.red.circle.framework.mybatis.constant.PageConstant; +import com.red.circle.framework.mybatis.mybatisplus.LambdaQueryWrapperChain; import com.red.circle.framework.mybatis.service.impl.BaseServiceImpl; import com.red.circle.tool.core.collection.CollectionUtils; import com.red.circle.tool.core.date.TimestampUtils; @@ -38,20 +39,24 @@ public class FreightBalanceRunningWaterServiceImpl extends @Override public List flowByUserId(Long userId, Long acceptUserId, Integer type, Long lastId) { - return query() - .and(Objects.isNull(acceptUserId), wrapper -> wrapper - .eq(FreightBalanceRunningWater::getUserId, userId) - .or() - .eq(FreightBalanceRunningWater::getAcceptUserId, userId) - ) - .and(Objects.nonNull(acceptUserId), e -> e - .eq(FreightBalanceRunningWater::getUserId, userId) - .eq(FreightBalanceRunningWater::getAcceptUserId, acceptUserId)) - .and(Objects.nonNull(type), e -> e.eq(FreightBalanceRunningWater::getType, type)) - .lt(Objects.nonNull(lastId), FreightBalanceRunningWater::getId, lastId) - .orderByDesc(FreightBalanceRunningWater::getId) - .last(PageConstant.DEFAULT_LIMIT) - .list(); + LambdaQueryWrapperChain query = query(); + if (type == null || type == 0) { + query.eq(FreightBalanceRunningWater::getType, 0); + query.and(e -> { + e.eq(FreightBalanceRunningWater::getAcceptUserId, userId) + .eq(Objects.nonNull(acceptUserId), FreightBalanceRunningWater::getUserId, acceptUserId); + }); + } else { + query.eq(FreightBalanceRunningWater::getType, 1); + query.and(e -> { + e.eq(FreightBalanceRunningWater::getUserId, userId) + .eq(Objects.nonNull(acceptUserId), FreightBalanceRunningWater::getAcceptUserId, acceptUserId); + }); + } + return query.lt(Objects.nonNull(lastId), FreightBalanceRunningWater::getId, lastId) + .orderByDesc(FreightBalanceRunningWater::getId) + .last(PageConstant.DEFAULT_LIMIT) + .list(); } @Override diff --git a/rc-service/rc-service-wallet/wallet-inner-endpoint/src/main/java/com/red/circle/wallet/inner/service/freight/impl/FreightBalanceRunningWaterClientServiceImpl.java b/rc-service/rc-service-wallet/wallet-inner-endpoint/src/main/java/com/red/circle/wallet/inner/service/freight/impl/FreightBalanceRunningWaterClientServiceImpl.java index a88a6594..25f15926 100644 --- a/rc-service/rc-service-wallet/wallet-inner-endpoint/src/main/java/com/red/circle/wallet/inner/service/freight/impl/FreightBalanceRunningWaterClientServiceImpl.java +++ b/rc-service/rc-service-wallet/wallet-inner-endpoint/src/main/java/com/red/circle/wallet/inner/service/freight/impl/FreightBalanceRunningWaterClientServiceImpl.java @@ -17,6 +17,7 @@ import java.util.Set; import java.util.stream.Collectors; import lombok.RequiredArgsConstructor; +import org.jetbrains.annotations.Nullable; import org.springframework.stereotype.Service; /** @@ -41,17 +42,34 @@ public class FreightBalanceRunningWaterClientServiceImpl implements List runningWaterDTO = freightBalanceRunningWaterInnerConvertor.toListFreightBalanceRunningWaterDTO(runningWaters); Set acceptUserIdList = runningWaterDTO.stream().map(FreightBalanceRunningWaterDTO::getAcceptUserId).collect(Collectors.toSet()); + Set userIdList = runningWaterDTO.stream().map(FreightBalanceRunningWaterDTO::getUserId).collect(Collectors.toSet()); + acceptUserIdList.addAll(userIdList); + Map userProfileDTOMap = userProfileClient.mapByUserIds(acceptUserIdList).getBody(); runningWaterDTO.forEach(dto -> { UserProfileDTO profileDTO = userProfileDTOMap.get(dto.getAcceptUserId()); - if (profileDTO != null) { - dto.setAccount(profileDTO.getAccount()); - } + FreightBalanceRunningWaterDTO.AccountItem accountItem = getAcceptUserAccount(profileDTO); + dto.setAcceptUserAccount(accountItem); + + UserProfileDTO userProfileDTO = userProfileDTOMap.get(dto.getUserId()); + FreightBalanceRunningWaterDTO.AccountItem userAccount = getAcceptUserAccount(userProfileDTO); + dto.setUserAccount(userAccount); }); return runningWaterDTO; } + private static FreightBalanceRunningWaterDTO.AccountItem getAcceptUserAccount(UserProfileDTO profileDTO) { + FreightBalanceRunningWaterDTO.AccountItem accountItem = null; + if (profileDTO != null) { + accountItem = new FreightBalanceRunningWaterDTO.AccountItem(); + accountItem.setAccount(profileDTO.getAccount()); + accountItem.setUserAvatar(profileDTO.getUserAvatar()); + accountItem.setUserNickName(profileDTO.getUserNickname()); + } + return accountItem; + } + private Long getByUserId(Long searchId) { if (searchId == null || searchId <= 0) { return null;