Browse Source

1.25 修改现金退款导出

milestone-20260113-现金管理0109
huangqizhen 1 month ago
parent
commit
70c5cbdb59
  1. 2
      src/main/java/com/example/demo/controller/cash/CashRefundController.java
  2. 1
      src/main/java/com/example/demo/service/cash/RefundService.java
  3. 82
      src/main/java/com/example/demo/serviceImpl/cash/CashRefundServiceImpl.java
  4. 33
      src/main/java/com/example/demo/serviceImpl/coin/ExportExcelServiceImpl.java

2
src/main/java/com/example/demo/controller/cash/CashRefundController.java

@ -381,7 +381,7 @@ public class CashRefundController {
return Result.error(errorMsg);
}
Result result = Result.success(refundService.financeSelect(page.getPageNum(), page.getPageSize(), page.getCashRecordDTO()));
Result result = Result.success(refundService.financeSelect2(page.getPageNum(), page.getPageSize(), page.getCashRecordDTO()));
// 对返回结果进行多语言转换
if (result.getCode() == 200 && result.getData() instanceof com.github.pagehelper.PageInfo) {

1
src/main/java/com/example/demo/service/cash/RefundService.java

@ -32,6 +32,7 @@ public interface RefundService {
int finalreview(CashRecordDone cashRecordDone, String lang);
PageInfo<CashRecordDTO> financeSelect(Integer pageNum, Integer pageSize, CashRecordDTO cashRecordDTO);
PageInfo<CashRecordDTO> financeSelect2(Integer pageNum, Integer pageSize, CashRecordDTO cashRecordDTO);
PageInfo<CashRecordDTO> exSelect(Integer pageNum, Integer pageSize, CashRecordDTO cashRecordDTO);
//新增线上退款记录

82
src/main/java/com/example/demo/serviceImpl/cash/CashRefundServiceImpl.java

@ -361,7 +361,14 @@ CashRecordDone cashRecordDone1 = new CashRecordDone();
userGoldRecord.setType((byte) 2);
userGoldRecord.setIsRefund((byte) 1);
userGoldRecord.setRefundType("金币退款");
userGoldRecord.setCrefundModel(cashRecordDone.getRefundModel());
if (cashRecordDone.getRefundModel() == 1){
userGoldRecord.setRefundModel(Byte.valueOf("1"));
}
else if (cashRecordDone.getRefundModel() == 0){
userGoldRecord.setRefundModel(Byte.valueOf("0"));
}
userGoldRecord.setJwcode(cashRecordDone.getJwcode());
userGoldRecord.setSumGold(cashRecordDone.getPermanentGold()+cashRecordDone.getFreeGold());
userGoldRecord.setPermanentGold(cashRecordDone.getPermanentGold());
@ -418,6 +425,79 @@ CashRecordDone cashRecordDone1 = new CashRecordDone();
@Override
public PageInfo<CashRecordDTO> financeSelect(Integer pageNum, Integer pageSize, CashRecordDTO cashRecordDTO) {
List<String> markets = marketMapper.getMarketIds(cashRecordDTO.getMarkets());
if (markets.contains("9") || markets.contains("9999")){
markets=null;
}
cashRecordDTO.setMarkets(markets);
PageHelper.startPage(pageNum, pageSize); //必须要直接跟mapper
// System.out.println(goldDetail.getMarkets());
List<CashRecordDTO> list = cashRefundMapper.financeSelect(cashRecordDTO);
if (list.isEmpty()) {
return new PageInfo<>(list);
}
// 批量收集ID
Set<Integer> relatedIds = new HashSet<>();
Set<Integer> marketIds = new HashSet<>();
Set<Integer> submitterIds = new HashSet<>();
Set<Integer> auditIds = new HashSet<>();
Set<Integer> executorIds = new HashSet<>();
list.forEach(item -> {
if (item.getRelatedId() != null) relatedIds.add(item.getRelatedId());
if (item.getMarket() != null) marketIds.add(item.getMarket());
if (item.getSubmitterId() != null) submitterIds.add(item.getSubmitterId());
if (item.getAuditId() != null) auditIds.add(item.getAuditId());
if (item.getExecutor() != null) executorIds.add(item.getExecutor());
});
// 批量查询
Map<Integer, CashCollection> cashCollectionMap = cashCollectionMapper.selectBatchIds(relatedIds)
.stream().collect(Collectors.toMap(CashCollection::getId, Function.identity()));
Map<Integer, String> marketNameMap = marketMapper.getMarketByIds(marketIds)
.stream().collect(Collectors.toMap(Market::getId, Market::getName));
Map<Integer, String> submitterNameMap = auditMapper.getNamesByIds(submitterIds)
.stream().collect(Collectors.toMap(Admin::getId, Admin::getAdminName));
Map<Integer, LhlAudit> auditMap = cashRefundMapper.getAuditBatch(auditIds)
.stream().collect(Collectors.toMap(LhlAudit::getId, Function.identity()));
Map<String, String> executorNameMap = auditMapper.getNamesByJwcodes(executorIds)
.stream().collect(Collectors.toMap(Admin::getAccount, Admin::getAdminName));
// 处理数据
list.forEach(item -> {
CashCollection cashCollection = cashCollectionMap.get(item.getRelatedId());
if (cashCollection != null) {
processCashCollection(item, cashCollection);
}
String marketName = marketNameMap.get(item.getMarket());
String submitter = submitterNameMap.get(item.getSubmitterId());
LhlAudit lhlAudit = auditMap.get(item.getAuditId());
String executorName = executorNameMap.get(String.valueOf(item.getExecutor()));
item.setMarketName(marketName != null ? marketName : "");
item.setSubmitter(submitter != null ? submitter : "");
item.setExecutorName(executorName != null ? executorName : "");
if (lhlAudit != null) {
item.setAreaServise(lhlAudit.getAreaServise());
item.setAreaFinance(lhlAudit.getAreaFinance());
item.setAreaCharge(lhlAudit.getAreaCharge());
item.setHeadFinance(lhlAudit.getHeadFinance());
}
});
return new PageInfo<>(list);
}
@Override
public PageInfo<CashRecordDTO> financeSelect2(Integer pageNum, Integer pageSize, CashRecordDTO cashRecordDTO) {
List<String> markets = marketMapper.getMarketIds(cashRecordDTO.getMarkets());
PageHelper.startPage(pageNum, pageSize); //必须要直接跟mapper
// System.out.println(goldDetail.getMarkets());
List<CashRecordDTO> list = cashRefundMapper.financeSelect(cashRecordDTO);

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

@ -29,7 +29,9 @@ import com.example.demo.domain.vo.cash.PerformanceVO;
import com.example.demo.domain.vo.coin.*;
import com.example.demo.mapper.coin.ExportMapper;
import com.example.demo.mapper.coin.MarketMapper;
import com.example.demo.service.coin.ExportExcelService;
import com.example.demo.service.coin.MarketService;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
@ -43,6 +45,7 @@ import org.springframework.beans.factory.annotation.Value;
import org.springframework.security.authentication.AuthenticationManager;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.ObjectUtils;
import java.io.*;
import java.util.*;
@ -88,6 +91,8 @@ public class ExportExcelServiceImpl implements ExportExcelService {
private static final int PAGE_SIZE = 5000;
@Autowired
private ExportMapper exportMapper;
@Autowired
private MarketService marketService;
@Transactional
@Override
@ -352,8 +357,36 @@ public class ExportExcelServiceImpl implements ExportExcelService {
JsonNode rootNode = objectMapper.readTree(message);
JsonNode requestDataNode = rootNode.path("requestData");
JsonNode beanRechargeNode = requestDataNode.path("cashRecordDTO");
String token = rootNode.path("token").asText();
CashRecordDTO cashRecordDTO = objectMapper.treeToValue(beanRechargeNode, CashRecordDTO.class);
page.setCashRecordDTO(cashRecordDTO);
Admin admin = (Admin) JWTUtil.getUserDetailsList(String.valueOf(token), Admin.class);
List<String> userMarkets = Arrays.asList(StringUtils.split(admin.getMarkets(), ","));
List<String> markets = marketService.getMarketIds(userMarkets);
// 获取传入的市场列表
List<String> requestedMarkets = page.getCashRecordDTO() != null ? page.getCashRecordDTO().getMarkets() : null;
// 权限校验逻辑
if (markets.contains("9") || markets.contains("9999")) {
// 特权市场9 9999跳过权限校验直接放行传入的 markets
// 如果业务需要也可以在这里做空值处理
if (page.getCashRecordDTO() != null) {
// 保持 requestedMarkets 不变原样接受
// 可选如果 requestedMarkets null可设为默认值或保持 null
}
} else {
// 普通用户必须校验权限
if (requestedMarkets == null || requestedMarkets.isEmpty()) {
page.getCashRecordDTO().setMarkets(markets);
}
if (!markets.containsAll(requestedMarkets)) {
String errorMsg = "无权限!请求的市场不在授权范围内。";
return Result.error(errorMsg);
}
// 校验通过保持 requestedMarkets 不变
}
// 从请求数据中获取语言设置如果没有则使用默认值
String lang = "zh_CN";
JsonNode langNode = requestDataNode.path("lang");

Loading…
Cancel
Save