bd bdleader 金币记录修改

This commit is contained in:
tianfeng 2026-04-13 17:21:30 +08:00
parent b4867038c7
commit 2e0a8f0a43

View File

@ -21,9 +21,11 @@ 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.dto.UserBankWithdrawMoneyApplyDTO;
import com.red.circle.wallet.inner.model.enums.SalaryEvent;
import com.red.circle.wallet.inner.model.enums.SalaryType;
import com.red.circle.wallet.inner.model.enums.UserBankWaterEvent;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.jetbrains.annotations.Nullable;
import org.springframework.data.domain.Sort;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria;
@ -92,6 +94,7 @@ public class BdDetailsQryExe {
SalaryRunningWaterQueryInnerCmd qryCmd = new SalaryRunningWaterQueryInnerCmd();
qryCmd.setUserId(userId);
qryCmd.setPageSize(500);
qryCmd.setSalaryType(filterType);
// 调用 Wallet 服务查询流水
var response = userSalaryAccountClient.queryRunningWater(qryCmd);
@ -134,8 +137,9 @@ public class BdDetailsQryExe {
private BdDetailItemCO convertWalletRecord(SalaryRunningWaterDTO water, String filterType,
Map<Long, UserBankWithdrawMoneyApplyDTO> applyDTOMap,
Map<Long, FreightBalanceRunningWaterDTO> balanceRunningWaterDTOMap) {
String salaryType = water.getSalaryType();
String event = water.getSalaryEvent();
if (event == null) {
if (salaryType == null) {
return null;
}
@ -145,11 +149,64 @@ public class BdDetailsQryExe {
item.setTime(Timestamp.valueOf(water.getCreatedAt()));
item.setTimeText(TIME_FORMATTER.format(water.getCreatedAt()));
// Cash out (提现)
if (SalaryEvent.WITHDRAW.getCode().equals(event)) {
if (!shouldIncludeType(filterType, "CASH_OUT")) {
return null;
// BD 收入
if (SalaryType.BD_SALARY.getCode().equals(salaryType)) {
if (SalaryEvent.SALARY_BD.getCode().equals(event)) {
item.setType("BD_INCOME");
item.setTypeText("BD's income");
item.setAmount(water.getAmount());
item.setAmountText("+$" + water.getAmount().toString());
return item;
}
return getBdDetailItemCO(water, filterType, item, balanceRunningWaterDTOMap, applyDTOMap);
}
// BDLEADER 收入
if (SalaryType.BD_LEADER_SALARY.getCode().equals(salaryType)) {
if (SalaryEvent.SALARY_BD_LEADER.getCode().equals(event)) {
item.setType("BD_LEADER_INCOME");
item.setTypeText("BD Leader's income");
item.setAmount(water.getAmount());
item.setAmountText("+$" + water.getAmount().toString());
return item;
}
return getBdDetailItemCO(water, filterType, item, balanceRunningWaterDTOMap, applyDTOMap);
}
return null;
}
@Nullable
private BdDetailItemCO getBdDetailItemCO(SalaryRunningWaterDTO water, String filterType, BdDetailItemCO item,
Map<Long, FreightBalanceRunningWaterDTO> balanceRunningWaterDTOMap,
Map<Long, UserBankWithdrawMoneyApplyDTO> applyDTOMap) {
String event = water.getSalaryEvent();
if (SalaryEvent.SALARY_EXCHANGE.getCode().equals(event)) {
item.setType("EXCHANGE");
item.setTypeText("Exchange coins");
// 兑换是支出金额为负
item.setAmount(water.getAmount().negate());
item.setAmountText("-$" + water.getAmount().toString());
return item;
}
if (SalaryEvent.SALARY_TRANSFER.getCode().equals(event)) {
item.setType("TRANSFER");
item.setTypeText("Transfer");
FreightBalanceRunningWaterDTO runningWaterDTO = balanceRunningWaterDTOMap.get(Long.parseLong(water.getTrackId()));
if (runningWaterDTO != null) {
item.setAmount(runningWaterDTO.getQuantity());
item.setAmountText("+" + runningWaterDTO.getQuantity() + " coins");
} else {
item.setAmount(water.getAmount());
item.setAmountText("+" + water.getAmount() + " $");
}
item.setUserInfo(new BdDetailItemCO.BdDetailUserInfo().setUserId(water.getAcceptUserId()));
return item;
}
if (SalaryEvent.WITHDRAW.getCode().equals(event)) {
UserBankWithdrawMoneyApplyDTO moneyApplyDTO = applyDTOMap.get(Long.parseLong(water.getTrackId()));
item.setType("CASH_OUT");
@ -187,79 +244,10 @@ public class BdDetailsQryExe {
return item;
}
// Transfer (转账)
if (SalaryEvent.SALARY_TRANSFER.getCode().equals(event)) {
if (!shouldIncludeType(filterType, "TRANSFER")) {
return null;
}
item.setType("TRANSFER");
item.setTypeText("Transfer");
FreightBalanceRunningWaterDTO runningWaterDTO = balanceRunningWaterDTOMap.get(Long.parseLong(water.getTrackId()));
if (runningWaterDTO != null) {
item.setAmount(runningWaterDTO.getQuantity());
item.setAmountText("+" + runningWaterDTO.getQuantity() + " coins");
} else {
item.setAmount(water.getAmount());
item.setAmountText("+" + water.getAmount() + " $");
}
item.setUserInfo(new BdDetailItemCO.BdDetailUserInfo().setUserId(water.getAcceptUserId()));
return item;
}
// Exchange coins (兑换金币)
if (SalaryEvent.SALARY_EXCHANGE.getCode().equals(event)) {
if (!shouldIncludeType(filterType, "EXCHANGE")) {
return null;
}
item.setType("EXCHANGE");
item.setTypeText("Exchange coins");
// 兑换是支出金额为负
item.setAmount(water.getAmount().negate());
item.setAmountText("-$" + water.getAmount().toString());
return item;
}
// BD 收入
if (SalaryEvent.SALARY_BD.getCode().equals(event)) {
if (!shouldIncludeType(filterType, "BD_SALARY_SETTLEMENT")) {
return null;
}
item.setType("BD_INCOME");
item.setTypeText("BD's income");
item.setAmount(water.getAmount());
item.setAmountText("+$" + water.getAmount().toString());
return item;
}
// BDLEADER 收入
if (SalaryEvent.SALARY_BD_LEADER.getCode().equals(event)) {
if (!shouldIncludeType(filterType, "BD_LEADER_SALARY_SETTLEMENT")) {
return null;
}
item.setType("BD_LEADER_INCOME");
item.setTypeText("BD Leader's income");
item.setAmount(water.getAmount());
item.setAmountText("+$" + water.getAmount().toString());
return item;
}
// ADMIN 收入
if (SalaryEvent.SALARY_ADMIN.getCode().equals(event)) {
if (!shouldIncludeType(filterType, "ADMIN_SALARY_SETTLEMENT")) {
return null;
}
item.setType("ADMIN_INCOME");
item.setTypeText("Admin's income");
item.setAmount(water.getAmount());
item.setAmountText("+$" + water.getAmount().toString());
return item;
}
return null;
}
/**
* 查询 BD 收入记录
*/
@ -335,7 +323,9 @@ public class BdDetailsQryExe {
}
return filterType.equals("CASH_OUT") ||
filterType.equals("TRANSFER") ||
filterType.equals("EXCHANGE");
filterType.equals("EXCHANGE") ||
filterType.equals("BD_SALARY") ||
filterType.equals("BD_LEADER_SALARY") ;
}
/**