Browse Source

20260309 钱包余额导出优化pro

huangqizheng/feature-20260309142559-钱包退款
wangguorui 1 month ago
parent
commit
7ae4a56dbc
  1. 44
      src/main/java/com/example/demo/serviceImpl/coin/ExportExcelServiceImpl.java
  2. 3
      src/main/resources/cashMapper/CashCollectionMapper.xml

44
src/main/java/com/example/demo/serviceImpl/coin/ExportExcelServiceImpl.java

@ -545,11 +545,25 @@ public class ExportExcelServiceImpl implements ExportExcelService {
Integer pageNum = userWalletDTONode.path("page").asInt(1);
Integer pageSize = userWalletDTONode.path("pageSize").asInt(20);
if (!userWalletDTONode.path("jwcode").isMissingNode()) {
jwcode = userWalletDTONode.path("jwcode").asInt();
JsonNode jwcodeNode = userWalletDTONode.path("jwcode");
if (!jwcodeNode.isMissingNode() && !jwcodeNode.isNull()) {
String jwcodeStr = jwcodeNode.asText();
if (!jwcodeStr.isEmpty()) {
try {
jwcode = Integer.parseInt(jwcodeStr.trim());
} catch (NumberFormatException e) {
// 如果转换失败保持为 null
log.warn("精网号格式错误:{}", jwcodeStr);
}
}
}
if (!userWalletDTONode.path("market").isMissingNode()) {
market = userWalletDTONode.path("market").asText();
JsonNode marketNode = userWalletDTONode.path("market");
if (!marketNode.isMissingNode() && !marketNode.isNull()) {
String marketStr = marketNode.asText();
if (!marketStr.isEmpty()) {
market = marketStr.trim();
}
}
// 从请求数据中获取语言设置
@ -572,18 +586,18 @@ public class ExportExcelServiceImpl implements ExportExcelService {
if (vo.getWalletList() != null && !vo.getWalletList().isEmpty()) {
// 为每个钱包创建一个独立的 UserWalletVO 对象
for (WalletItem wallet : vo.getWalletList()) {
UserWalletVO flatVO = new UserWalletVO();
flatVO.setJwcode(vo.getJwcode());
flatVO.setUserName(vo.getUserName());
flatVO.setMarketName(vo.getMarketName());
flatVO.setWalletId(wallet.getWalletId());
flatVO.setWalletName(wallet.getWalletName());
flatVO.setCurrentPermanentGold(wallet.getCurrentPermanentGold());
flatList.add(flatVO);
// 只添加 walletId 不为 null 的钱包
if (wallet.getWalletId() != null) {
UserWalletVO flatVO = new UserWalletVO();
flatVO.setJwcode(vo.getJwcode());
flatVO.setUserName(vo.getUserName());
flatVO.setMarketName(vo.getMarketName());
flatVO.setWalletId(wallet.getWalletId());
flatVO.setWalletName(wallet.getWalletName());
flatVO.setCurrentPermanentGold(wallet.getCurrentPermanentGold());
flatList.add(flatVO);
}
}
} else {
// 如果没有钱包也保留该用户记录
flatList.add(vo);
}
}

3
src/main/resources/cashMapper/CashCollectionMapper.xml

@ -468,7 +468,7 @@
m.name as marketName,
wr.wallet_id as walletId,
w.wallet_name as walletName,
COALESCE(wr.current_permanent_gold, 0) as currentPermanentGold
COALESCE(wr.current_permanent_gold, 0)/100 as currentPermanentGold
FROM user u
LEFT JOIN market m ON u.market = m.id
LEFT JOIN user_region_wallet wr ON u.jwcode = wr.jwcode
@ -480,6 +480,7 @@
<if test="market != null and market != ''">
AND u.market = #{market}
</if>
AND wr.wallet_id IS NOT NULL
</where>
ORDER BY u.jwcode, wr.wallet_id
</select>

Loading…
Cancel
Save