Browse Source

20260309 钱包余额导出优化pro

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

28
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 pageNum = userWalletDTONode.path("page").asInt(1);
Integer pageSize = userWalletDTONode.path("pageSize").asInt(20); 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);
}
}
}
JsonNode marketNode = userWalletDTONode.path("market");
if (!marketNode.isMissingNode() && !marketNode.isNull()) {
String marketStr = marketNode.asText();
if (!marketStr.isEmpty()) {
market = marketStr.trim();
} }
if (!userWalletDTONode.path("market").isMissingNode()) {
market = userWalletDTONode.path("market").asText();
} }
// 从请求数据中获取语言设置 // 从请求数据中获取语言设置
@ -572,6 +586,8 @@ public class ExportExcelServiceImpl implements ExportExcelService {
if (vo.getWalletList() != null && !vo.getWalletList().isEmpty()) { if (vo.getWalletList() != null && !vo.getWalletList().isEmpty()) {
// 为每个钱包创建一个独立的 UserWalletVO 对象 // 为每个钱包创建一个独立的 UserWalletVO 对象
for (WalletItem wallet : vo.getWalletList()) { for (WalletItem wallet : vo.getWalletList()) {
// 只添加 walletId 不为 null 的钱包
if (wallet.getWalletId() != null) {
UserWalletVO flatVO = new UserWalletVO(); UserWalletVO flatVO = new UserWalletVO();
flatVO.setJwcode(vo.getJwcode()); flatVO.setJwcode(vo.getJwcode());
flatVO.setUserName(vo.getUserName()); flatVO.setUserName(vo.getUserName());
@ -581,9 +597,7 @@ public class ExportExcelServiceImpl implements ExportExcelService {
flatVO.setCurrentPermanentGold(wallet.getCurrentPermanentGold()); flatVO.setCurrentPermanentGold(wallet.getCurrentPermanentGold());
flatList.add(flatVO); flatList.add(flatVO);
} }
} else {
// 如果没有钱包也保留该用户记录
flatList.add(vo);
}
} }
} }

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

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

Loading…
Cancel
Save