From 0b0e859fcc37b8cdc9e15531686595fa76824041 Mon Sep 17 00:00:00 2001 From: tianfeng <769204422@qq.com> Date: Sun, 4 Jan 2026 15:11:12 +0800 Subject: [PATCH] =?UTF-8?q?bd=20bdleader=20admin=20=E5=8F=91=E6=94=BE?= =?UTF-8?q?=E5=B7=A5=E8=B5=84=E5=A2=9E=E5=8A=A0=E5=B9=82=E7=AD=89=E6=A0=A1?= =?UTF-8?q?=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/UserSalaryAccountClientApi.java | 11 +++++--- .../cmd/SalaryRunningWaterQueryInnerCmd.java | 5 ++++ .../AdminSalarySettlementServiceImpl.java | 21 ++++++++++----- .../BdLeaderSalarySettlementServiceImpl.java | 13 +++++++-- .../BdSalarySettlementServiceImpl.java | 17 +++++++++--- .../query/SalaryRunningWaterQryExe.java | 4 +++ .../dto/cmd/SalaryRunningWaterQueryCmd.java | 5 ++++ .../SalaryAccountInnerConvertor.java | 27 +++++++++++++++++++ .../UserSalaryAccountClientEndpoint.java | 5 ++++ .../UserSalaryAccountClientService.java | 2 ++ .../UserSalaryAccountClientServiceImpl.java | 11 ++++++++ 11 files changed, 106 insertions(+), 15 deletions(-) diff --git a/rc-service/rc-inner-api/wallet-inner/wallet-inner-api/src/main/java/com/red/circle/wallet/inner/endpoint/salary/api/UserSalaryAccountClientApi.java b/rc-service/rc-inner-api/wallet-inner/wallet-inner-api/src/main/java/com/red/circle/wallet/inner/endpoint/salary/api/UserSalaryAccountClientApi.java index 16cae6d2..220d7daa 100644 --- a/rc-service/rc-inner-api/wallet-inner/wallet-inner-api/src/main/java/com/red/circle/wallet/inner/endpoint/salary/api/UserSalaryAccountClientApi.java +++ b/rc-service/rc-inner-api/wallet-inner/wallet-inner-api/src/main/java/com/red/circle/wallet/inner/endpoint/salary/api/UserSalaryAccountClientApi.java @@ -8,10 +8,7 @@ import com.red.circle.wallet.inner.model.cmd.SalaryWithdrawInnerCmd; import com.red.circle.wallet.inner.model.dto.SalaryAccountBalanceDTO; import com.red.circle.wallet.inner.model.dto.SalaryIssueResultDTO; import com.red.circle.wallet.inner.model.dto.SalaryRunningWaterDTO; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.*; import java.math.BigDecimal; @@ -47,6 +44,12 @@ public interface UserSalaryAccountClientApi { ResultResponse> queryRunningWater( @RequestBody SalaryRunningWaterQueryInnerCmd cmd); + /** + * 是否存在记录 + */ + @PostMapping("/exist") + ResultResponse existRunningWater(@RequestParam("trackId") String trackId); + /** * 查询用户累计收入. */ diff --git a/rc-service/rc-inner-api/wallet-inner/wallet-inner-model/src/main/java/com/red/circle/wallet/inner/model/cmd/SalaryRunningWaterQueryInnerCmd.java b/rc-service/rc-inner-api/wallet-inner/wallet-inner-model/src/main/java/com/red/circle/wallet/inner/model/cmd/SalaryRunningWaterQueryInnerCmd.java index 087939f0..ddc53707 100644 --- a/rc-service/rc-inner-api/wallet-inner/wallet-inner-model/src/main/java/com/red/circle/wallet/inner/model/cmd/SalaryRunningWaterQueryInnerCmd.java +++ b/rc-service/rc-inner-api/wallet-inner/wallet-inner-model/src/main/java/com/red/circle/wallet/inner/model/cmd/SalaryRunningWaterQueryInnerCmd.java @@ -26,6 +26,11 @@ public class SalaryRunningWaterQueryInnerCmd implements Serializable { */ private Integer type; + /** + * 跟踪ID + */ + private String trackId; + /** * 账单归属(YYYYMM). */ diff --git a/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/service/AdminSalarySettlementServiceImpl.java b/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/service/AdminSalarySettlementServiceImpl.java index 240919e0..98985e47 100644 --- a/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/service/AdminSalarySettlementServiceImpl.java +++ b/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/service/AdminSalarySettlementServiceImpl.java @@ -1,9 +1,9 @@ package com.red.circle.other.app.service; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.red.circle.common.business.core.enums.SysOriginPlatformEnum; import com.red.circle.common.business.dto.cmd.AppExtCommand; +import com.red.circle.framework.dto.PageResult; +import com.red.circle.framework.dto.ResultResponse; import com.red.circle.other.app.command.bd.query.BdTeamSummaryQryExe; import com.red.circle.other.app.dto.clientobject.AdminSalarySettlementCO; import com.red.circle.other.app.dto.clientobject.BdTeamSummaryCO; @@ -15,7 +15,6 @@ import com.red.circle.other.infra.database.mongo.entity.bd.BdSalarySettlementRec import com.red.circle.other.infra.database.mongo.service.bd.AdminSalaryPolicyService; import com.red.circle.other.infra.database.mongo.service.bd.AdminSalarySettlementRecordService; import com.red.circle.other.infra.database.mongo.service.bd.BdSalarySettlementRecordService; -import com.red.circle.other.infra.database.rds.dao.sys.AdministratorDAO; import com.red.circle.other.infra.database.rds.entity.sys.Administrator; import com.red.circle.other.infra.database.rds.service.sys.AdministratorService; import com.red.circle.other.infra.enums.AdminPolicyType; @@ -24,6 +23,8 @@ import com.red.circle.tool.core.collection.CollectionUtils; import com.red.circle.tool.core.sequence.IdWorkerUtils; import com.red.circle.wallet.inner.endpoint.salary.UserSalaryAccountClient; import com.red.circle.wallet.inner.model.cmd.SalaryIssueInnerCmd; +import com.red.circle.wallet.inner.model.cmd.SalaryRunningWaterQueryInnerCmd; +import com.red.circle.wallet.inner.model.dto.SalaryRunningWaterDTO; import com.red.circle.wallet.inner.model.enums.SalaryEvent; import com.red.circle.wallet.inner.model.enums.SalaryType; import lombok.RequiredArgsConstructor; @@ -33,7 +34,6 @@ import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; import java.math.RoundingMode; -import java.sql.Timestamp; import java.util.List; /** @@ -150,7 +150,7 @@ public class AdminSalarySettlementServiceImpl implements AdminSalarySettlementSe if (record.getTotalSalary().compareTo(BigDecimal.ZERO) > 0) { try { issueSalary(adminUserId, record); - log.info("管理员 {} 工资发放成功,金额:{} USD", adminUserId, record.getTotalSalary()); + } catch (Exception e) { log.error("管理员 {} 工资发放失败", adminUserId, e); adminSalarySettlementRecordService.updateStatus(record.getId(), BdSettlementStatus.FAILED, e.getMessage()); @@ -377,6 +377,13 @@ public class AdminSalarySettlementServiceImpl implements AdminSalarySettlementSe * 发放工资到工资账户. */ private void issueSalary(Long adminUserId, AdminSalarySettlementRecord record) { + String bizNo = record.getBizNo(); + + SalaryRunningWaterDTO runningWaterDTO = userSalaryAccountClient.existRunningWater(bizNo).getBody(); + if (runningWaterDTO != null) { + return; + } + SalaryIssueInnerCmd innerCmd = new SalaryIssueInnerCmd(); innerCmd.setBillBelong(record.getBillBelong()); innerCmd.setUserId(adminUserId); @@ -384,9 +391,11 @@ public class AdminSalarySettlementServiceImpl implements AdminSalarySettlementSe innerCmd.setSalaryType(SalaryType.ADMIN_SALARY.getCode()); innerCmd.setEventDesc(SalaryEvent.SALARY_ADMIN.getCode()); innerCmd.setAmount(record.getTotalSalary()); - innerCmd.setTrackId(record.getId()); + innerCmd.setTrackId(bizNo); innerCmd.setBdId(adminUserId); userSalaryAccountClient.issueSalary(innerCmd); + + log.info("管理员 {} 工资发放成功,金额:{} USD", adminUserId, record.getTotalSalary()); } /** diff --git a/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/service/BdLeaderSalarySettlementServiceImpl.java b/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/service/BdLeaderSalarySettlementServiceImpl.java index dad31880..4157a6bb 100644 --- a/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/service/BdLeaderSalarySettlementServiceImpl.java +++ b/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/service/BdLeaderSalarySettlementServiceImpl.java @@ -22,6 +22,7 @@ import com.red.circle.tool.core.sequence.IdWorkerUtils; import com.red.circle.wallet.inner.endpoint.bank.UserBankBalanceClient; import com.red.circle.wallet.inner.endpoint.salary.UserSalaryAccountClient; import com.red.circle.wallet.inner.model.cmd.SalaryIssueInnerCmd; +import com.red.circle.wallet.inner.model.dto.SalaryRunningWaterDTO; import com.red.circle.wallet.inner.model.enums.SalaryType; import com.red.circle.wallet.inner.model.enums.SalaryEvent; import lombok.RequiredArgsConstructor; @@ -193,7 +194,6 @@ public class BdLeaderSalarySettlementServiceImpl implements BdLeaderSalarySettle // 调用钱包服务发放工资 issueSalary(bdLeaderUserId, record); - log.info("BD Leader {} 工资发放成功,金额:{} USD", bdLeaderUserId, record.getSettlementSalary()); } catch (Exception e) { log.error("BD Leader {} 工资发放失败", bdLeaderUserId, e); bdLeaderSalarySettlementRecordService.updateStatus(record.getId(), BdSettlementStatus.FAILED, e.getMessage()); @@ -270,6 +270,13 @@ public class BdLeaderSalarySettlementServiceImpl implements BdLeaderSalarySettle * 发放工资到美元账户. */ private void issueSalary(Long bdLeaderUserId, BdLeaderSalarySettlementRecord record) { + String bizNo = record.getBizNo(); + + SalaryRunningWaterDTO runningWaterDTO = userSalaryAccountClient.existRunningWater(bizNo).getBody(); + if (runningWaterDTO != null) { + return; + } + SalaryIssueInnerCmd innerCmd = new SalaryIssueInnerCmd(); innerCmd.setBillBelong(record.getBillBelong()); innerCmd.setUserId(bdLeaderUserId); @@ -277,9 +284,11 @@ public class BdLeaderSalarySettlementServiceImpl implements BdLeaderSalarySettle innerCmd.setSalaryType(SalaryType.BD_LEADER_SALARY.getCode()); innerCmd.setEventDesc(SalaryEvent.SALARY_BD_LEADER.getCode()); innerCmd.setAmount(record.getSettlementSalary()); - innerCmd.setTrackId(record.getId()); + innerCmd.setTrackId(record.getBizNo()); innerCmd.setBdId(bdLeaderUserId); userSalaryAccountClient.issueSalary(innerCmd); + + log.info("BD Leader {} 工资发放成功,金额:{} USD", bdLeaderUserId, record.getSettlementSalary()); } /** diff --git a/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/service/BdSalarySettlementServiceImpl.java b/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/service/BdSalarySettlementServiceImpl.java index eb78c203..9fb3b0b4 100644 --- a/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/service/BdSalarySettlementServiceImpl.java +++ b/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/service/BdSalarySettlementServiceImpl.java @@ -3,6 +3,7 @@ package com.red.circle.other.app.service; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.red.circle.common.business.core.enums.ReceiptType; import com.red.circle.common.business.core.enums.SysOriginPlatformEnum; +import com.red.circle.framework.dto.PageResult; import com.red.circle.framework.dto.ResultResponse; import com.red.circle.other.app.dto.clientobject.BdSalarySettlementCO; import com.red.circle.other.app.dto.clientobject.BdTeamStatisticsCO; @@ -33,7 +34,9 @@ import com.red.circle.wallet.inner.endpoint.bank.UserBankBalanceClient; import com.red.circle.wallet.inner.endpoint.bank.UserBankRunningWaterClient; import com.red.circle.wallet.inner.endpoint.salary.UserSalaryAccountClient; import com.red.circle.wallet.inner.model.cmd.SalaryIssueInnerCmd; +import com.red.circle.wallet.inner.model.cmd.SalaryRunningWaterQueryInnerCmd; import com.red.circle.wallet.inner.model.cmd.UserBankBalanceIncrCmd; +import com.red.circle.wallet.inner.model.dto.SalaryRunningWaterDTO; import com.red.circle.wallet.inner.model.dto.UserBankRunningWaterDTO; import com.red.circle.wallet.inner.model.enums.SalaryEvent; import com.red.circle.wallet.inner.model.enums.SalaryType; @@ -149,8 +152,7 @@ public class BdSalarySettlementServiceImpl implements BdSalarySettlementService try { // 调用钱包服务发放工资 issueSalary(bdUserId, record); - - log.info("BD {} 工资发放成功,金额:{} USD", bdUserId, record.getSettlementSalary()); + } catch (Exception e) { log.error("BD {} 工资发放失败", bdUserId, e); bdSalarySettlementRecordService.updateStatus(record.getId(), BdSettlementStatus.FAILED, e.getMessage()); @@ -455,6 +457,13 @@ public class BdSalarySettlementServiceImpl implements BdSalarySettlementService * 发放工资到美元账户. */ private void issueSalary(Long bdUserId, BdSalarySettlementRecord record) { + String bizNo = record.getBizNo(); + + SalaryRunningWaterDTO runningWaterDTO = userSalaryAccountClient.existRunningWater(bizNo).getBody(); + if (runningWaterDTO != null) { + return; + } + SalaryIssueInnerCmd innerCmd = new SalaryIssueInnerCmd(); innerCmd.setBillBelong(record.getBillBelong()); innerCmd.setUserId(bdUserId); @@ -462,9 +471,11 @@ public class BdSalarySettlementServiceImpl implements BdSalarySettlementService innerCmd.setSalaryType(SalaryType.BD_SALARY.getCode()); innerCmd.setEventDesc(SalaryEvent.SALARY_BD.getCode()); innerCmd.setAmount(record.getSettlementSalary()); - innerCmd.setTrackId(record.getId()); + innerCmd.setTrackId(record.getBizNo()); innerCmd.setBdId(bdUserId); userSalaryAccountClient.issueSalary(innerCmd); + + log.info("BD {} 工资发放成功,金额:{} USD", bdUserId, record.getSettlementSalary()); } /** diff --git a/rc-service/rc-service-wallet/wallet-application/src/main/java/com/red/circle/wallet/app/command/salary/query/SalaryRunningWaterQryExe.java b/rc-service/rc-service-wallet/wallet-application/src/main/java/com/red/circle/wallet/app/command/salary/query/SalaryRunningWaterQryExe.java index 50f0032d..5906ee97 100644 --- a/rc-service/rc-service-wallet/wallet-application/src/main/java/com/red/circle/wallet/app/command/salary/query/SalaryRunningWaterQryExe.java +++ b/rc-service/rc-service-wallet/wallet-application/src/main/java/com/red/circle/wallet/app/command/salary/query/SalaryRunningWaterQryExe.java @@ -58,6 +58,10 @@ public class SalaryRunningWaterQryExe { DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); wrapper.le(SalaryAccountRunningWater::getCreateTime, endTime); } + + if (StringUtils.isNotBlank(cmd.getTrackId())) { + wrapper.eq(SalaryAccountRunningWater::getTrackId, cmd.getTrackId()); + } wrapper.orderByDesc(SalaryAccountRunningWater::getCreateTime); diff --git a/rc-service/rc-service-wallet/wallet-client/src/main/java/com/red/circle/wallet/app/dto/cmd/SalaryRunningWaterQueryCmd.java b/rc-service/rc-service-wallet/wallet-client/src/main/java/com/red/circle/wallet/app/dto/cmd/SalaryRunningWaterQueryCmd.java index e5ef32ed..7ebb6cc9 100644 --- a/rc-service/rc-service-wallet/wallet-client/src/main/java/com/red/circle/wallet/app/dto/cmd/SalaryRunningWaterQueryCmd.java +++ b/rc-service/rc-service-wallet/wallet-client/src/main/java/com/red/circle/wallet/app/dto/cmd/SalaryRunningWaterQueryCmd.java @@ -26,6 +26,11 @@ public class SalaryRunningWaterQueryCmd extends PageQueryCmd { */ private Integer type; + /** + * 跟踪ID + */ + private String trackId; + /** * 账单归属(YYYYMM). */ diff --git a/rc-service/rc-service-wallet/wallet-inner-endpoint/src/main/java/com/red/circle/wallet/inner/convertor/SalaryAccountInnerConvertor.java b/rc-service/rc-service-wallet/wallet-inner-endpoint/src/main/java/com/red/circle/wallet/inner/convertor/SalaryAccountInnerConvertor.java index 51ce9779..e250780a 100644 --- a/rc-service/rc-service-wallet/wallet-inner-endpoint/src/main/java/com/red/circle/wallet/inner/convertor/SalaryAccountInnerConvertor.java +++ b/rc-service/rc-service-wallet/wallet-inner-endpoint/src/main/java/com/red/circle/wallet/inner/convertor/SalaryAccountInnerConvertor.java @@ -7,6 +7,7 @@ import com.red.circle.wallet.app.dto.clientobject.SalaryRunningWaterCO; import com.red.circle.wallet.app.dto.cmd.SalaryIssueCmd; import com.red.circle.wallet.app.dto.cmd.SalaryRunningWaterQueryCmd; import com.red.circle.wallet.app.dto.cmd.SalaryWithdrawCmd; +import com.red.circle.wallet.infra.database.rds.entity.salary.SalaryAccountRunningWater; import com.red.circle.wallet.inner.model.cmd.SalaryIssueInnerCmd; import com.red.circle.wallet.inner.model.cmd.SalaryRunningWaterQueryInnerCmd; import com.red.circle.wallet.inner.model.cmd.SalaryWithdrawInnerCmd; @@ -70,6 +71,7 @@ public class SalaryAccountInnerConvertor { cmd.setUserId(innerCmd.getUserId()); cmd.setSalaryType(innerCmd.getSalaryType()); cmd.setType(innerCmd.getType()); + cmd.setTrackId(innerCmd.getTrackId()); cmd.setBillBelong(innerCmd.getBillBelong()); cmd.setStartTime(innerCmd.getStartTime()); cmd.setEndTime(innerCmd.getEndTime()); @@ -129,4 +131,29 @@ public class SalaryAccountInnerConvertor { dto.setCreatedAt(co.getCreatedAt()); return dto; } + + public SalaryRunningWaterDTO toRunningWaterDTO(SalaryAccountRunningWater runningWater) { + if (Objects.isNull(runningWater)) { + return null; + } + SalaryRunningWaterDTO dto = new SalaryRunningWaterDTO(); + dto.setId(runningWater.getId()); + dto.setUserId(runningWater.getUserId()); + dto.setAcceptUserId(runningWater.getAcceptUserId()); + dto.setType(runningWater.getType()); + dto.setSalaryType(runningWater.getSalaryType()); + dto.setAmount(runningWater.getAmount()); + dto.setBalance(runningWater.getBalance()); + dto.setAvailableBalance(runningWater.getAvailableBalance()); + dto.setSalaryEvent(runningWater.getSalaryEvent()); + dto.setEventDesc(runningWater.getEventDesc()); + dto.setTrackId(runningWater.getTrackId()); + dto.setBillBelong(runningWater.getBillBelong()); + dto.setTeamId(runningWater.getTeamId()); + dto.setBdId(runningWater.getBdId()); + dto.setAgentId(runningWater.getAgentId()); + dto.setRemark(runningWater.getRemark()); + return dto; + } + } diff --git a/rc-service/rc-service-wallet/wallet-inner-endpoint/src/main/java/com/red/circle/wallet/inner/endpoint/salary/UserSalaryAccountClientEndpoint.java b/rc-service/rc-service-wallet/wallet-inner-endpoint/src/main/java/com/red/circle/wallet/inner/endpoint/salary/UserSalaryAccountClientEndpoint.java index 117871a2..65036bef 100644 --- a/rc-service/rc-service-wallet/wallet-inner-endpoint/src/main/java/com/red/circle/wallet/inner/endpoint/salary/UserSalaryAccountClientEndpoint.java +++ b/rc-service/rc-service-wallet/wallet-inner-endpoint/src/main/java/com/red/circle/wallet/inner/endpoint/salary/UserSalaryAccountClientEndpoint.java @@ -51,6 +51,11 @@ public class UserSalaryAccountClientEndpoint implements UserSalaryAccountClientA return ResultResponse.success(userSalaryAccountClientService.queryRunningWater(cmd)); } + @Override + public ResultResponse existRunningWater(String trackId) { + return ResultResponse.success(userSalaryAccountClientService.existRunningWater(trackId)); + } + @Override public ResultResponse getTotalIncome(Long userId, String salaryType, String salaryEvent, String startTime, String endTime) { return ResultResponse.success(userSalaryAccountClientService.getTotalIncome(userId, salaryType, salaryEvent, startTime, endTime)); diff --git a/rc-service/rc-service-wallet/wallet-inner-endpoint/src/main/java/com/red/circle/wallet/inner/service/salary/UserSalaryAccountClientService.java b/rc-service/rc-service-wallet/wallet-inner-endpoint/src/main/java/com/red/circle/wallet/inner/service/salary/UserSalaryAccountClientService.java index 3db2c654..64a1841d 100644 --- a/rc-service/rc-service-wallet/wallet-inner-endpoint/src/main/java/com/red/circle/wallet/inner/service/salary/UserSalaryAccountClientService.java +++ b/rc-service/rc-service-wallet/wallet-inner-endpoint/src/main/java/com/red/circle/wallet/inner/service/salary/UserSalaryAccountClientService.java @@ -35,6 +35,8 @@ public interface UserSalaryAccountClientService { */ PageResult queryRunningWater(SalaryRunningWaterQueryInnerCmd cmd); + SalaryRunningWaterDTO existRunningWater(String trackId); + /** * 查询用户累计收入. */ diff --git a/rc-service/rc-service-wallet/wallet-inner-endpoint/src/main/java/com/red/circle/wallet/inner/service/salary/impl/UserSalaryAccountClientServiceImpl.java b/rc-service/rc-service-wallet/wallet-inner-endpoint/src/main/java/com/red/circle/wallet/inner/service/salary/impl/UserSalaryAccountClientServiceImpl.java index 6c4997bc..afdc0eb5 100644 --- a/rc-service/rc-service-wallet/wallet-inner-endpoint/src/main/java/com/red/circle/wallet/inner/service/salary/impl/UserSalaryAccountClientServiceImpl.java +++ b/rc-service/rc-service-wallet/wallet-inner-endpoint/src/main/java/com/red/circle/wallet/inner/service/salary/impl/UserSalaryAccountClientServiceImpl.java @@ -1,5 +1,6 @@ package com.red.circle.wallet.inner.service.salary.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.red.circle.framework.dto.PageResult; import com.red.circle.wallet.app.dto.clientobject.SalaryAccountBalanceCO; import com.red.circle.wallet.app.dto.clientobject.SalaryIssueResultCO; @@ -8,6 +9,8 @@ import com.red.circle.wallet.app.dto.cmd.SalaryIssueCmd; import com.red.circle.wallet.app.dto.cmd.SalaryRunningWaterQueryCmd; import com.red.circle.wallet.app.dto.cmd.SalaryWithdrawCmd; import com.red.circle.wallet.app.service.SalaryAccountService; +import com.red.circle.wallet.infra.database.rds.entity.salary.SalaryAccountRunningWater; +import com.red.circle.wallet.infra.database.rds.service.salary.SalaryAccountRunningWaterService; import com.red.circle.wallet.inner.convertor.SalaryAccountInnerConvertor; import com.red.circle.wallet.inner.model.cmd.SalaryIssueInnerCmd; import com.red.circle.wallet.inner.model.cmd.SalaryRunningWaterQueryInnerCmd; @@ -32,6 +35,7 @@ public class UserSalaryAccountClientServiceImpl implements UserSalaryAccountClie private final SalaryAccountService salaryAccountService; private final SalaryAccountInnerConvertor salaryAccountInnerConvertor; + private final SalaryAccountRunningWaterService salaryAccountRunningWaterService; @Override public SalaryAccountBalanceDTO getBalance(Long userId, String salaryType) { @@ -69,6 +73,13 @@ public class UserSalaryAccountClientServiceImpl implements UserSalaryAccountClie return pageResult; } + @Override + public SalaryRunningWaterDTO existRunningWater(String trackId) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + SalaryAccountRunningWater one = salaryAccountRunningWaterService.getOne(wrapper.eq(SalaryAccountRunningWater::getTrackId, trackId)); + return salaryAccountInnerConvertor.toRunningWaterDTO(one); + } + @Override public BigDecimal getTotalIncome(Long userId, String salaryType, String salaryEvent, String startTime, String endTime) { BigDecimal totalIncome = salaryAccountService.getTotalIncome(userId, salaryType, salaryEvent, startTime, endTime);