Browse Source

1月7日现金管理多语言配置,导出文件的名称进行多语言配置以及各模块优化

milestone-20251209-多语言二期
wangguorui 4 days ago
parent
commit
e0aaa582d7
  1. 33
      src/main/java/com/example/demo/Export/ExportServiceImpl.java
  2. 3
      src/main/java/com/example/demo/Util/ExcelHeaderTranslator.java
  3. 15
      src/main/java/com/example/demo/controller/coin/GoldDetailController.java
  4. 2
      src/main/java/com/example/demo/domain/entity/User.java
  5. 6
      src/main/java/com/example/demo/domain/vo/bean/BeanConsumeArticle.java
  6. 5
      src/main/java/com/example/demo/domain/vo/bean/BeanConsumeFan.java
  7. 2
      src/main/java/com/example/demo/domain/vo/bean/BeanConsumeLive.java
  8. 2
      src/main/java/com/example/demo/domain/vo/cash/CashCollection.java
  9. 3
      src/main/java/com/example/demo/domain/vo/coin/ConsumeUser.java
  10. 5
      src/main/java/com/example/demo/domain/vo/coin/GoldDetail.java
  11. 3
      src/main/java/com/example/demo/domain/vo/coin/RechargeUser.java
  12. 4
      src/main/java/com/example/demo/domain/vo/coin/RefundUser.java
  13. 2
      src/main/java/com/example/demo/serviceImpl/coin/ExportExcelServiceImpl.java
  14. 17
      src/main/java/com/example/demo/serviceImpl/coin/GoldDetailServiceImpl.java

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

@ -1,6 +1,7 @@
package com.example.demo.Export; package com.example.demo.Export;
import com.example.demo.Util.JWTUtil; import com.example.demo.Util.JWTUtil;
import com.example.demo.Util.LanguageTranslationUtil;
import com.example.demo.domain.DTO.*; import com.example.demo.domain.DTO.*;
import com.example.demo.domain.entity.Admin; import com.example.demo.domain.entity.Admin;
import com.example.demo.domain.vo.coin.Result; import com.example.demo.domain.vo.coin.Result;
@ -37,6 +38,8 @@ public class ExportServiceImpl implements ExportService {
private RedisUtil redisUtil; private RedisUtil redisUtil;
@Autowired @Autowired
private AdminService adminService; private AdminService adminService;
@Autowired
private LanguageTranslationUtil languageTranslationUtil;
/** /**
* 通用导出逻辑 * 通用导出逻辑
@ -59,7 +62,7 @@ public class ExportServiceImpl implements ExportService {
String adminName = admin.getAdminName(); String adminName = admin.getAdminName();
// 设置 DTO 的通用字段 // 设置 DTO 的通用字段
setCommonFields(dto, account, adminName);
setCommonFields(dto, account, adminName, exportType, lang);
// 插入导出记录并获取主键 // 插入导出记录并获取主键
GoldDetailMapper.ExportRecordIdHolder idHolder = new GoldDetailMapper.ExportRecordIdHolder(); GoldDetailMapper.ExportRecordIdHolder idHolder = new GoldDetailMapper.ExportRecordIdHolder();
@ -84,56 +87,56 @@ public class ExportServiceImpl implements ExportService {
/** /**
* 设置 DTO 的通用字段 * 设置 DTO 的通用字段
*/ */
private void setCommonFields(Object dto, Integer account,String adminName) throws Exception {
private void setCommonFields(Object dto, Integer account,String adminName, String exportType, String lang) throws Exception {
if (dto instanceof RechargeDTO rechargeDTO) { if (dto instanceof RechargeDTO rechargeDTO) {
rechargeDTO.setAccount(Integer.valueOf(account)); rechargeDTO.setAccount(Integer.valueOf(account));
rechargeDTO.setUrl(""); rechargeDTO.setUrl("");
rechargeDTO.setFileName(generateFileName("充值明细", adminName));
rechargeDTO.setFileName(generateFileName("充值明细", adminName, lang));
rechargeDTO.setDataNum(0); rechargeDTO.setDataNum(0);
} else if (dto instanceof RefundDTO refundDTO) { } else if (dto instanceof RefundDTO refundDTO) {
refundDTO.setAccount(Integer.valueOf(account)); refundDTO.setAccount(Integer.valueOf(account));
refundDTO.setUrl(""); refundDTO.setUrl("");
refundDTO.setFileName(generateFileName("退款明细", adminName));
refundDTO.setFileName(generateFileName("退款明细", adminName, lang));
refundDTO.setDataNum(0); refundDTO.setDataNum(0);
} else if (dto instanceof ConsumeDTO consumeDTO) { } else if (dto instanceof ConsumeDTO consumeDTO) {
consumeDTO.setAccount(Integer.valueOf(account)); consumeDTO.setAccount(Integer.valueOf(account));
consumeDTO.setUrl(""); consumeDTO.setUrl("");
consumeDTO.setFileName(generateFileName("消耗明细", adminName));
consumeDTO.setFileName(generateFileName("消耗明细", adminName, lang));
consumeDTO.setDataNum(0); consumeDTO.setDataNum(0);
} else if (dto instanceof LiveDTO liveDTO) { } else if (dto instanceof LiveDTO liveDTO) {
liveDTO.setAccount(Integer.valueOf(account)); liveDTO.setAccount(Integer.valueOf(account));
liveDTO.setUrl(""); liveDTO.setUrl("");
liveDTO.setFileName(generateFileName("直播明细", adminName));
liveDTO.setFileName(generateFileName("直播明细", adminName, lang));
liveDTO.setDataNum(0); liveDTO.setDataNum(0);
} else if (dto instanceof FanDTO fanDTO) { } else if (dto instanceof FanDTO fanDTO) {
fanDTO.setAccount(Integer.valueOf(account)); fanDTO.setAccount(Integer.valueOf(account));
fanDTO.setUrl(""); fanDTO.setUrl("");
fanDTO.setFileName(generateFileName("铁粉明细", adminName));
fanDTO.setFileName(generateFileName("铁粉明细", adminName, lang));
fanDTO.setDataNum(0); fanDTO.setDataNum(0);
} else if (dto instanceof BeanRechargeDTO beanRechargeDTO){ } else if (dto instanceof BeanRechargeDTO beanRechargeDTO){
beanRechargeDTO.setAccount(Integer.valueOf(account)); beanRechargeDTO.setAccount(Integer.valueOf(account));
beanRechargeDTO.setUrl(""); beanRechargeDTO.setUrl("");
beanRechargeDTO.setFileName(generateFileName("金豆充值明细", adminName));
beanRechargeDTO.setFileName(generateFileName("金豆充值明细", adminName, lang));
beanRechargeDTO.setDataNum(0); beanRechargeDTO.setDataNum(0);
} else if(dto instanceof OnlineDTO onlineDTO){ } else if(dto instanceof OnlineDTO onlineDTO){
onlineDTO.setAccount(Integer.valueOf(account)); onlineDTO.setAccount(Integer.valueOf(account));
onlineDTO.setUrl(""); onlineDTO.setUrl("");
onlineDTO.setFileName(generateFileName("在线明细", adminName));
onlineDTO.setFileName(generateFileName("在线明细", adminName, lang));
onlineDTO.setDataNum(0); onlineDTO.setDataNum(0);
} else if(dto instanceof ArticleDTO articleDTO){ } else if(dto instanceof ArticleDTO articleDTO){
articleDTO.setAccount(Integer.valueOf(account)); articleDTO.setAccount(Integer.valueOf(account));
articleDTO.setUrl(""); articleDTO.setUrl("");
articleDTO.setFileName(generateFileName("文章明细", adminName));
articleDTO.setFileName(generateFileName("文章明细", adminName, lang));
articleDTO.setDataNum(0); articleDTO.setDataNum(0);
} else if(dto instanceof FinanceDTO financeDTO){ } else if(dto instanceof FinanceDTO financeDTO){
financeDTO.setAccount(Integer.valueOf(account)); financeDTO.setAccount(Integer.valueOf(account));
financeDTO.setUrl(""); financeDTO.setUrl("");
financeDTO.setFileName(generateFileName("现金退款明细", adminName));
financeDTO.setFileName(generateFileName("现金退款明细", adminName, lang));
financeDTO.setDataNum(0); financeDTO.setDataNum(0);
} else if(dto instanceof CashDTO cashDTO){ } else if(dto instanceof CashDTO cashDTO){
cashDTO.setAccount(Integer.valueOf(account)); cashDTO.setAccount(Integer.valueOf(account));
cashDTO.setUrl(""); cashDTO.setUrl("");
cashDTO.setFileName(generateFileName("现金收款明细", adminName));
cashDTO.setFileName(generateFileName("现金收款明细", adminName, lang));
cashDTO.setDataNum(0); cashDTO.setDataNum(0);
} }
} }
@ -284,9 +287,11 @@ public class ExportServiceImpl implements ExportService {
/** /**
* 生成文件名 * 生成文件名
*/ */
private String generateFileName(String exportType, String adminName) {
private String generateFileName(String exportType, String adminName,String lang) {
// 对导出类型进行多语言转换
String translatedExportType = languageTranslationUtil.translate(exportType, lang);
return String.format("%s_%s_%s.xlsx", return String.format("%s_%s_%s.xlsx",
exportType,
translatedExportType,
adminName, adminName,
LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss"))); LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss")));
} }

3
src/main/java/com/example/demo/Util/ExcelHeaderTranslator.java

@ -192,6 +192,7 @@ public class ExcelHeaderTranslator {
Map<String, String> headers = new LinkedHashMap<>(); Map<String, String> headers = new LinkedHashMap<>();
// 定义所有表头的原始中文名称对应 BeanOnlineRechargeInfo 类的字段 // 定义所有表头的原始中文名称对应 BeanOnlineRechargeInfo 类的字段
headers.put("id", "ID");
headers.put("jwcode", "精网号"); headers.put("jwcode", "精网号");
headers.put("name", "姓名"); headers.put("name", "姓名");
headers.put("market", "所属地区"); headers.put("market", "所属地区");
@ -214,7 +215,7 @@ public class ExcelHeaderTranslator {
*/ */
public List<String> getBeanOnlineRechargeColumnOrder() { public List<String> getBeanOnlineRechargeColumnOrder() {
return Arrays.asList( return Arrays.asList(
"jwcode", "name", "market", "money", "num", "orderNo", "platform", "rechargeTime"
"id","jwcode", "name", "market", "money", "num", "orderNo", "platform", "rechargeTime"
); );
} }

15
src/main/java/com/example/demo/controller/coin/GoldDetailController.java

@ -127,7 +127,6 @@ public class GoldDetailController {
return result; return result;
} }
@Log("客户金币明细金币合计数统计") @Log("客户金币明细金币合计数统计")
@PostMapping("/getTotal") @PostMapping("/getTotal")
public Result getTotal(@RequestBody Page page) throws Exception { public Result getTotal(@RequestBody Page page) throws Exception {
@ -166,6 +165,7 @@ public class GoldDetailController {
return Result.success(goldDetailService.sumGold(pageNum,pageSize,goldDetail)); return Result.success(goldDetailService.sumGold(pageNum,pageSize,goldDetail));
} }
@Log("客户金币余额金币合计数统计") @Log("客户金币余额金币合计数统计")
@PostMapping("/goldTotal") @PostMapping("/goldTotal")
public Result GoldTotal(@RequestBody User user) throws Exception { public Result GoldTotal(@RequestBody User user) throws Exception {
@ -203,6 +203,7 @@ public class GoldDetailController {
return Result.success(goldDetailService.GoldTotal(user)); return Result.success(goldDetailService.GoldTotal(user));
} }
@Log("获取客户金币余额记录") @Log("获取客户金币余额记录")
@PostMapping("/getGold") @PostMapping("/getGold")
public Result getGold(@RequestBody Page page, @RequestHeader(defaultValue = "zh_CN") String lang) throws Exception { public Result getGold(@RequestBody Page page, @RequestHeader(defaultValue = "zh_CN") String lang) throws Exception {
@ -264,7 +265,6 @@ public class GoldDetailController {
return result; return result;
} }
@PostMapping("/export") @PostMapping("/export")
public Result export(@Valid @RequestBody GoldDetailDTO dto, @RequestHeader(defaultValue = "zh_CN") String lang) { public Result export(@Valid @RequestBody GoldDetailDTO dto, @RequestHeader(defaultValue = "zh_CN") String lang) {
String lockKey = "export:lock:" + dto.getToken(); // 锁的 Key可按用户/业务区分 String lockKey = "export:lock:" + dto.getToken(); // 锁的 Key可按用户/业务区分
@ -292,6 +292,7 @@ public class GoldDetailController {
redisLockUtil.unlock(lockKey, requestId); redisLockUtil.unlock(lockKey, requestId);
} }
} }
@PostMapping("/exportGold") @PostMapping("/exportGold")
public Result export(@Valid @RequestBody GoldUserDTO dto, @RequestHeader(defaultValue = "zh_CN") String lang) { public Result export(@Valid @RequestBody GoldUserDTO dto, @RequestHeader(defaultValue = "zh_CN") String lang) {
String lockKey = "export:lock:" + dto.getToken(); // 锁的 Key可按用户/业务区分 String lockKey = "export:lock:" + dto.getToken(); // 锁的 Key可按用户/业务区分
@ -319,6 +320,7 @@ public class GoldDetailController {
redisLockUtil.unlock(lockKey, requestId); redisLockUtil.unlock(lockKey, requestId);
} }
} }
@PostMapping("/exportqqq") @PostMapping("/exportqqq")
public Result ExcelGoldDetail(@RequestBody Page page, @RequestHeader(defaultValue = "zh_CN") String lang) throws Exception { public Result ExcelGoldDetail(@RequestBody Page page, @RequestHeader(defaultValue = "zh_CN") String lang) throws Exception {
// 解析语言代码 // 解析语言代码
@ -350,7 +352,6 @@ public class GoldDetailController {
} }
} }
public Result ExcelGold(@RequestBody Page page, @RequestHeader(defaultValue = "zh_CN") String lang) throws Exception { public Result ExcelGold(@RequestBody Page page, @RequestHeader(defaultValue = "zh_CN") String lang) throws Exception {
// 解析语言代码 // 解析语言代码
String languageCode = parseLanguageCode(lang); String languageCode = parseLanguageCode(lang);
@ -380,9 +381,7 @@ public class GoldDetailController {
return result; return result;
} }
/*
更新用户消费次数
*/
//更新用户消费次数
@PostMapping("/updateConsumeNum") @PostMapping("/updateConsumeNum")
public Result updateConsumeNum() { public Result updateConsumeNum() {
return goldDetailService.updateConsumeNum(); return goldDetailService.updateConsumeNum();
@ -420,9 +419,10 @@ public class GoldDetailController {
case 0: return "充值"; case 0: return "充值";
case 1: return "消耗"; case 1: return "消耗";
case 2: return "退款"; case 2: return "退款";
default: return "未知类型";
default: return "其他";
} }
} }
/** /**
* 转换用户信息的多语言字段 * 转换用户信息的多语言字段
*/ */
@ -436,6 +436,7 @@ public class GoldDetailController {
} }
} }
} }
/** /**
* 解析语言代码 * 解析语言代码
*/ */

2
src/main/java/com/example/demo/domain/entity/User.java

@ -7,6 +7,7 @@ import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import java.io.Serial;
import java.io.Serializable; import java.io.Serializable;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Date; import java.util.Date;
@ -18,6 +19,7 @@ import java.util.Set;
@NoArgsConstructor @NoArgsConstructor
@JsonIgnoreProperties(ignoreUnknown = true) @JsonIgnoreProperties(ignoreUnknown = true)
public class User implements Serializable { public class User implements Serializable {
@Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
private Integer id; // 客户id private Integer id; // 客户id

6
src/main/java/com/example/demo/domain/vo/bean/BeanConsumeArticle.java

@ -1,12 +1,13 @@
package com.example.demo.domain.vo.bean; package com.example.demo.domain.vo.bean;
import com.alibaba.excel.annotation.ExcelIgnore; import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import java.io.Serial;
import java.io.Serializable;
import java.util.Date; import java.util.Date;
/** /**
@ -20,7 +21,8 @@ import java.util.Date;
@Data @Data
@NoArgsConstructor @NoArgsConstructor
@JsonIgnoreProperties(ignoreUnknown = true) @JsonIgnoreProperties(ignoreUnknown = true)
public class BeanConsumeArticle {
public class BeanConsumeArticle implements Serializable {
@Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
private Integer id; private Integer id;
private String name; //姓名 private String name; //姓名

5
src/main/java/com/example/demo/domain/vo/bean/BeanConsumeFan.java

@ -8,6 +8,8 @@ import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import java.io.Serial;
import java.io.Serializable;
import java.util.Date; import java.util.Date;
/** /**
@ -21,7 +23,8 @@ import java.util.Date;
@Data @Data
@NoArgsConstructor @NoArgsConstructor
@JsonIgnoreProperties(ignoreUnknown = true) @JsonIgnoreProperties(ignoreUnknown = true)
public class BeanConsumeFan {
public class BeanConsumeFan implements Serializable {
@Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
private Integer id; private Integer id;
private String name; //姓名 private String name; //姓名

2
src/main/java/com/example/demo/domain/vo/bean/BeanConsumeLive.java

@ -10,6 +10,7 @@ import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import java.io.Serial;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
@ -26,6 +27,7 @@ import java.util.List;
@NoArgsConstructor @NoArgsConstructor
@JsonIgnoreProperties(ignoreUnknown = true) @JsonIgnoreProperties(ignoreUnknown = true)
public class BeanConsumeLive implements Serializable { public class BeanConsumeLive implements Serializable {
@Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
private Integer id; private Integer id;
@ExcelIgnore @ExcelIgnore

2
src/main/java/com/example/demo/domain/vo/cash/CashCollection.java

@ -8,6 +8,7 @@ import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import java.io.Serial;
import java.io.Serializable; import java.io.Serializable;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.time.LocalDateTime; import java.time.LocalDateTime;
@ -26,6 +27,7 @@ import java.util.List;
@NoArgsConstructor @NoArgsConstructor
@AllArgsConstructor @AllArgsConstructor
public class CashCollection implements Serializable { public class CashCollection implements Serializable {
@Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
private Integer id; private Integer id;
@ExcelIgnore @ExcelIgnore

3
src/main/java/com/example/demo/domain/vo/coin/ConsumeUser.java

@ -9,6 +9,7 @@ import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import java.io.Serial;
import java.io.Serializable; import java.io.Serializable;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Date; import java.util.Date;
@ -27,7 +28,7 @@ import java.util.List;
@NoArgsConstructor @NoArgsConstructor
@AllArgsConstructor @AllArgsConstructor
public class ConsumeUser implements Serializable { public class ConsumeUser implements Serializable {
@Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
private String name; // 客户姓名 private String name; // 客户姓名

5
src/main/java/com/example/demo/domain/vo/coin/GoldDetail.java

@ -7,6 +7,8 @@ import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat; import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serial;
import java.io.Serializable;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
@ -21,7 +23,8 @@ import java.util.List;
**/ **/
@Data @Data
@NoArgsConstructor @NoArgsConstructor
public class GoldDetail {
public class GoldDetail implements Serializable {
@Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@ExcelIgnore @ExcelIgnore

3
src/main/java/com/example/demo/domain/vo/coin/RechargeUser.java

@ -7,6 +7,7 @@ import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import java.io.Serial;
import java.io.Serializable; import java.io.Serializable;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Date; import java.util.Date;
@ -24,7 +25,7 @@ import java.util.List;
@Data @Data
@NoArgsConstructor @NoArgsConstructor
public class RechargeUser implements Serializable { public class RechargeUser implements Serializable {
@Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
private String name; // 客户姓名 private String name; // 客户姓名

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

@ -1,12 +1,12 @@
package com.example.demo.domain.vo.coin; package com.example.demo.domain.vo.coin;
import com.alibaba.excel.annotation.ExcelIgnore; import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import java.io.Serial;
import java.io.Serializable; import java.io.Serializable;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Date; import java.util.Date;
@ -25,7 +25,7 @@ import java.util.List;
@NoArgsConstructor @NoArgsConstructor
@AllArgsConstructor @AllArgsConstructor
public class RefundUser implements Serializable { public class RefundUser implements Serializable {
@Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
private String orderCode; // 订单号 private String orderCode; // 订单号

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

@ -972,7 +972,7 @@ public class ExportExcelServiceImpl implements ExportExcelService {
case 0: return "充值"; case 0: return "充值";
case 1: return "消耗"; case 1: return "消耗";
case 2: return "退款"; case 2: return "退款";
default: return "未知类型";
default: return "其他";
} }
} }

17
src/main/java/com/example/demo/serviceImpl/coin/GoldDetailServiceImpl.java

@ -1,6 +1,7 @@
package com.example.demo.serviceImpl.coin; package com.example.demo.serviceImpl.coin;
import com.example.demo.Util.JWTUtil; import com.example.demo.Util.JWTUtil;
import com.example.demo.Util.LanguageTranslationUtil;
import com.example.demo.Util.RedisUtil; import com.example.demo.Util.RedisUtil;
import com.example.demo.domain.DTO.GoldDetailDTO; import com.example.demo.domain.DTO.GoldDetailDTO;
import com.example.demo.domain.DTO.GoldUserDTO; import com.example.demo.domain.DTO.GoldUserDTO;
@ -45,6 +46,8 @@ public class GoldDetailServiceImpl implements GoldDetailService {
private RedisUtil redisUtil; private RedisUtil redisUtil;
@Autowired @Autowired
private AdminService adminService; private AdminService adminService;
@Autowired
private LanguageTranslationUtil languageTranslationUtil;
@Override @Override
public PageInfo<GoldDetail> getGoldDetail(Integer pageNum, Integer pageSize, GoldDetail goldDetail) { public PageInfo<GoldDetail> getGoldDetail(Integer pageNum, Integer pageSize, GoldDetail goldDetail) {
@ -95,9 +98,11 @@ public class GoldDetailServiceImpl implements GoldDetailService {
throw new RuntimeException(e.getMessage()); throw new RuntimeException(e.getMessage());
} }
String admin = adminService.getName(String.valueOf(dto.getAccount())); String admin = adminService.getName(String.valueOf(dto.getAccount()));
// 生成文件名
// 生成文件名多语言转换
String exportType = "客户金币明细";
String translatedExportType = languageTranslationUtil.translate(exportType, dto.getLang());
String fileName = String.format("%s_%s_%s.xlsx", String fileName = String.format("%s_%s_%s.xlsx",
"客户金币明细",
translatedExportType,
admin, admin,
LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss"))); LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss")));
System.out.println(fileName); System.out.println(fileName);
@ -153,9 +158,11 @@ public class GoldDetailServiceImpl implements GoldDetailService {
throw new RuntimeException(e.getMessage()); throw new RuntimeException(e.getMessage());
} }
String admin = adminService.getName(String.valueOf(dto.getAccount())); String admin = adminService.getName(String.valueOf(dto.getAccount()));
// 生成文件名
// 生成文件名(多语言转换)
String exportType = "金币余额明细";
String translatedExportType = languageTranslationUtil.translate(exportType, dto.getLang());
String fileName = String.format("%s_%s_%s.xlsx", String fileName = String.format("%s_%s_%s.xlsx",
"金币余额明细",
translatedExportType,
admin, admin,
LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss"))); LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss")));
System.out.println(fileName); System.out.println(fileName);
@ -207,7 +214,7 @@ public class GoldDetailServiceImpl implements GoldDetailService {
case 0: return "充值"; case 0: return "充值";
case 1: return "消耗"; case 1: return "消耗";
case 2: return "退款"; case 2: return "退款";
default: return "未知类型";
default: return "其他";
} }
} }

Loading…
Cancel
Save