Browse Source

20260308 钱包明细导出优化

huangqizheng/feature-20260309142559-钱包退款
wangguorui 1 month ago
parent
commit
347184b665
  1. 2
      src/main/java/com/example/demo/Export/ExportService.java
  2. 34
      src/main/java/com/example/demo/Export/ExportServiceImpl.java
  3. 6
      src/main/java/com/example/demo/controller/coin/ExportController.java
  4. 30
      src/main/java/com/example/demo/domain/DTO/UserWalletRecordDTO.java
  5. 4
      src/main/java/com/example/demo/domain/vo/coin/Page.java
  6. 2
      src/main/java/com/example/demo/serviceImpl/coin/ExportExcelServiceImpl.java

2
src/main/java/com/example/demo/Export/ExportService.java

@ -38,5 +38,5 @@ public interface ExportService {
Result addExportFundDTO(FundDTO dto); Result addExportFundDTO(FundDTO dto);
// 用户钱包明细导出 // 用户钱包明细导出
Result addExportUserWallet(UserWalletDTO dto);
Result addExportUserWalletRecord(UserWalletRecordDTO dto);
} }

34
src/main/java/com/example/demo/Export/ExportServiceImpl.java

@ -149,11 +149,11 @@ public class ExportServiceImpl implements ExportService {
fundDTO.setUrl(""); fundDTO.setUrl("");
fundDTO.setFileName(generateFileName("资金明细", adminName, lang)); fundDTO.setFileName(generateFileName("资金明细", adminName, lang));
fundDTO.setDataNum(0); fundDTO.setDataNum(0);
} else if(dto instanceof UserWalletDTO userWalletDTO){
userWalletDTO.setAccount(Integer.valueOf(account));
userWalletDTO.setUrl("");
userWalletDTO.setFileName(generateFileName("用户钱包明细", adminName, lang));
userWalletDTO.setDataNum(0);
} else if(dto instanceof UserWalletRecordDTO UserWalletRecordDTO){
UserWalletRecordDTO.setAccount(Integer.valueOf(account));
UserWalletRecordDTO.setUrl("");
UserWalletRecordDTO.setFileName(generateFileName("用户钱包明细", adminName, lang));
UserWalletRecordDTO.setDataNum(0);
} }
} }
@ -281,15 +281,15 @@ public class ExportServiceImpl implements ExportService {
fundDTO.getFileName(), fundDTO.getFileName(),
fundDTO.getDataNum() fundDTO.getDataNum()
); );
}else if (dto instanceof UserWalletDTO userWalletDTO){
}else if (dto instanceof UserWalletRecordDTO UserWalletRecordDTO){
goldDetailMapper.insertExportRecord( goldDetailMapper.insertExportRecord(
idHolder, idHolder,
account, account,
userWalletDTO.getType(),
userWalletDTO.getState(),
userWalletDTO.getUrl(),
userWalletDTO.getFileName(),
userWalletDTO.getDataNum()
UserWalletRecordDTO.getType(),
UserWalletRecordDTO.getState(),
UserWalletRecordDTO.getUrl(),
UserWalletRecordDTO.getFileName(),
UserWalletRecordDTO.getDataNum()
); );
} }
} }
@ -328,13 +328,13 @@ public class ExportServiceImpl implements ExportService {
requestData.put(requestDataKey, performanceDTO); requestData.put(requestDataKey, performanceDTO);
}else if (dto instanceof FundDTO fundDTO){ }else if (dto instanceof FundDTO fundDTO){
requestData.put(requestDataKey, fundDTO.getFundsDTO()); requestData.put(requestDataKey, fundDTO.getFundsDTO());
}else if (dto instanceof UserWalletDTO userWalletDTO){
}else if (dto instanceof UserWalletRecordDTO UserWalletRecordDTO){
// 特殊处理优先使用 userWalletRecordVO如果为空则尝试从其他字段获取 // 特殊处理优先使用 userWalletRecordVO如果为空则尝试从其他字段获取
if (userWalletDTO.getUserWalletRecordVO() != null) {
requestData.put("userWalletRecordVO", userWalletDTO.getUserWalletRecordVO());
} else if (userWalletDTO.getUserWalletRecord() != null) {
if (UserWalletRecordDTO.getUserWalletRecordVO() != null) {
requestData.put("userWalletRecordVO", UserWalletRecordDTO.getUserWalletRecordVO());
} else if (UserWalletRecordDTO.getUserWalletRecord() != null) {
// 如果前端传的是 userWalletRecord转换为 VO // 如果前端传的是 userWalletRecord转换为 VO
com.example.demo.domain.entity.UserWalletRecord record = userWalletDTO.getUserWalletRecord();
com.example.demo.domain.entity.UserWalletRecord record = UserWalletRecordDTO.getUserWalletRecord();
com.example.demo.domain.vo.cash.UserWalletRecordVO vo = new com.example.demo.domain.vo.cash.UserWalletRecordVO(); com.example.demo.domain.vo.cash.UserWalletRecordVO vo = new com.example.demo.domain.vo.cash.UserWalletRecordVO();
vo.setJwcode(record.getJwcode()); vo.setJwcode(record.getJwcode());
vo.setWalletId(record.getWalletId()); vo.setWalletId(record.getWalletId());
@ -422,7 +422,7 @@ public class ExportServiceImpl implements ExportService {
} }
@Override @Override
public Result addExportUserWallet(UserWalletDTO dto) {
public Result addExportUserWalletRecord(UserWalletRecordDTO dto) {
return addExport(dto, "用户钱包明细", "user_wallet_record:queue:export_queue", "userWalletRecordVO", dto.getLang()); return addExport(dto, "用户钱包明细", "user_wallet_record:queue:export_queue", "userWalletRecordVO", dto.getLang());
} }

6
src/main/java/com/example/demo/controller/coin/ExportController.java

@ -309,8 +309,8 @@ public class ExportController {
/** /**
* 用户钱包明细导出 * 用户钱包明细导出
*/ */
@PostMapping("/exportUserWallet")
public Result exportUserWallet(@Valid @RequestBody UserWalletDTO dto, @RequestHeader(defaultValue = "zh_CN") String lang) {
@PostMapping("/exportUserWalletRecord")
public Result exportUserWalletRecord(@Valid @RequestBody UserWalletRecordDTO dto, @RequestHeader(defaultValue = "zh_CN") String lang) {
String lockKey = "export:lock:" + dto.getToken(); String lockKey = "export:lock:" + dto.getToken();
String requestId = UUID.randomUUID().toString(); String requestId = UUID.randomUUID().toString();
long expireTime = 5000; long expireTime = 5000;
@ -321,7 +321,7 @@ public class ExportController {
throw new BusinessException("操作太频繁,请稍后重试"); throw new BusinessException("操作太频繁,请稍后重试");
} }
// 执行业务逻辑 // 执行业务逻辑
return exportService.addExportUserWallet(dto);
return exportService.addExportUserWalletRecord(dto);
} finally { } finally {
// 释放锁 // 释放锁
redisLockUtil.unlock(lockKey, requestId); redisLockUtil.unlock(lockKey, requestId);

30
src/main/java/com/example/demo/domain/DTO/UserWalletRecordDTO.java

@ -0,0 +1,30 @@
package com.example.demo.domain.DTO;
import com.example.demo.domain.entity.UserWalletRecord;
import com.example.demo.domain.vo.cash.UserWalletRecordVO;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
// 用户钱包明细导出
@Data
public class UserWalletRecordDTO {
private String token;
private String url = "";
private String fileName = "";
private Integer sort = 0;
private String field = "";
private Integer account;
private Integer type = 16; //类型
private Integer state = 0; //状态
private String text = ""; //关键词搜索
private Integer dataNum = 0;
private String deptid = "";
private String lang;
private UserWalletRecordVO userWalletRecordVO;
private UserWalletRecord userWalletRecord;
@NotNull(message = "page不能为空")
private Integer page = 1;
@NotNull(message = "pageSize不能为空")
private Integer pageSize = 20;
}

4
src/main/java/com/example/demo/domain/vo/coin/Page.java

@ -2,7 +2,7 @@ package com.example.demo.domain.vo.coin;
import com.example.demo.domain.DTO.BeanConsumeCartDTO; import com.example.demo.domain.DTO.BeanConsumeCartDTO;
import com.example.demo.domain.DTO.PerformanceDTO; import com.example.demo.domain.DTO.PerformanceDTO;
import com.example.demo.domain.DTO.UserWalletDTO;
import com.example.demo.domain.DTO.UserWalletRecordDTO;
import com.example.demo.domain.entity.User; import com.example.demo.domain.entity.User;
import com.example.demo.domain.entity.UserWalletRecord; import com.example.demo.domain.entity.UserWalletRecord;
import com.example.demo.domain.vo.bean.*; import com.example.demo.domain.vo.bean.*;
@ -58,6 +58,6 @@ public class Page {
private PerformanceDTO performanceDTO;//业绩归属 private PerformanceDTO performanceDTO;//业绩归属
private FundsDTO fundsDTO;//现金收款 private FundsDTO fundsDTO;//现金收款
private PerformanceVO performanceVO;//业绩归属 private PerformanceVO performanceVO;//业绩归属
private UserWalletDTO userWalletDTO; //用户钱包明细查询条件
private UserWalletRecordDTO UserWalletRecordDTO; //用户钱包明细查询条件
private UserWalletRecord userWalletRecord; //用户钱包明细查询条件 private UserWalletRecord userWalletRecord; //用户钱包明细查询条件
} }

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

@ -17,7 +17,7 @@ import com.example.demo.controller.coin.GoldDetailController;
import com.example.demo.controller.coin.RechargeController; import com.example.demo.controller.coin.RechargeController;
import com.example.demo.controller.coin.RefundController; import com.example.demo.controller.coin.RefundController;
import com.example.demo.domain.DTO.PerformanceDTO; import com.example.demo.domain.DTO.PerformanceDTO;
import com.example.demo.domain.DTO.UserWalletDTO;
import com.example.demo.domain.DTO.UserWalletRecordDTO;
import com.example.demo.domain.entity.Admin; import com.example.demo.domain.entity.Admin;
import com.example.demo.domain.entity.Export; import com.example.demo.domain.entity.Export;
import com.example.demo.domain.entity.User; import com.example.demo.domain.entity.User;

Loading…
Cancel
Save