Browse Source

12月11日现金管理多语言配置,导出时显示对应语言

huangqizheng/feature-20260106155423-红包修改
wangguorui 1 month ago
parent
commit
673d226814
  1. 42
      src/main/java/com/example/demo/controller/coin/ConsumeController.java
  2. 41
      src/main/java/com/example/demo/controller/coin/ExportController.java
  3. 67
      src/main/java/com/example/demo/controller/coin/GoldDetailController.java
  4. 58
      src/main/java/com/example/demo/controller/coin/RechargeController.java
  5. 16
      src/main/java/com/example/demo/controller/coin/RefundController.java
  6. 41
      src/main/java/com/example/demo/serviceImpl/coin/ExportExcelServiceImpl.java

42
src/main/java/com/example/demo/controller/coin/ConsumeController.java

@ -43,7 +43,6 @@ public class ConsumeController {
@Autowired
private ConsumeService consumeService;
// 注入多语言转换工具类
@Autowired
private LanguageTranslationUtil languageTranslationUtil;
@ -213,24 +212,41 @@ public class ConsumeController {
// }
// }
public Result select(@RequestBody Page page) {
public Result select(@RequestBody Page page, @RequestHeader(defaultValue = "zh_CN") String lang) {
try {
//页码校验
if (ObjectUtils.isEmpty(page.getPageNum())) {
return Result.error("页码数为空!");
String errorMsg = languageTranslationUtil.translate("页码数为空!", lang);
return Result.error(errorMsg);
}
//页面大小校验
if (ObjectUtils.isEmpty(page.getPageSize())) {
return Result.error("页大小为空!");
String errorMsg = languageTranslationUtil.translate("页大小为空!", lang);
return Result.error(errorMsg);
} else {
// 解析语言参数提取语言代码
String languageCode = parseLanguageCode(lang);
// 如果不是中文则尝试将查询条件中的翻译文本转换为中文简体
if (!"zh".equalsIgnoreCase(languageCode) && !"zh_cn".equalsIgnoreCase(languageCode)) {
convertTranslatedFieldsToChinese(page.getConsumeUser(), languageCode);
}
return Result.success(consumeService.selectBy(page.getPageNum(), page.getPageSize(), page.getConsumeUser()));
Result result = Result.success(consumeService.selectBy(page.getPageNum(), page.getPageSize(), page.getConsumeUser()));
// 对返回结果进行多语言转换
if (result.getCode() == 200 && result.getData() instanceof PageInfo) {
PageInfo<ConsumeUser> pageInfo = (PageInfo<ConsumeUser>) result.getData();
translateConsumeUsers(pageInfo, lang);
}
return result;
}
} catch (Exception e) {
e.printStackTrace();
return Result.error("请检查筛选数据的格式");
String errorMsg = languageTranslationUtil.translate("请检查筛选数据的格式", lang);
return Result.error(errorMsg);
}
}
/**
@ -247,10 +263,6 @@ public class ConsumeController {
if (user.getGoodsName() != null) {
user.setGoodsName(languageTranslationUtil.translate(user.getGoodsName(), lang));
}
// // 翻译支付平台
// if (user.getPayPlatform() != null) {
// user.setPayPlatform(languageTranslationUtil.translate(user.getPayPlatform(), lang));
// }
// 翻译退款状态
if (user.getIsRefund() != null) {
if (user.getIsRefund() == 1) {
@ -299,14 +311,6 @@ public class ConsumeController {
consumeUser.getMarket(), languageCode);
consumeUser.setMarket(chineseMarket);
}
// // 转换支付平台
// if (consumeUser.getPayPlatform() != null && !consumeUser.getPayPlatform().isEmpty()) {
// String chinesePlatform = translationService.findChineseSimplifiedByTranslation(
// consumeUser.getPayPlatform(), languageCode);
// consumeUser.setPayPlatform(chinesePlatform);
// }
}
}
}

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

@ -87,7 +87,8 @@ public class ExportController {
try {
// 尝试获取锁
if (!redisLockUtil.tryLock(lockKey, requestId, expireTime)) {
throw new BusinessException("操作太频繁,请稍后重试");
String errorMsg = languageTranslationUtil.translate("操作太频繁,请稍后重试", lang);
throw new BusinessException(errorMsg);
}
// 执行业务逻辑
return exportService.addExportRecharge(dto);
@ -117,7 +118,8 @@ public class ExportController {
try {
// 尝试获取锁
if (!redisLockUtil.tryLock(lockKey, requestId, expireTime)) {
throw new BusinessException("操作太频繁,请稍后重试");
String errorMsg = languageTranslationUtil.translate("操作太频繁,请稍后重试", lang);
throw new BusinessException(errorMsg);
}
// 执行业务逻辑
return exportService.addExportRefund(dto);
@ -153,14 +155,15 @@ public class ExportController {
}
@PostMapping("/exportLive")
public Result export(@Valid @RequestBody LiveDTO dto) {
public Result export(@Valid @RequestBody LiveDTO dto, @RequestHeader(defaultValue = "zh_CN") String lang) {
String lockKey = "export:lock:" + dto.getToken();
String requestId = UUID.randomUUID().toString();
long expireTime = 5000;
try {
// 尝试获取锁
if (!redisLockUtil.tryLock(lockKey, requestId, expireTime)) {
throw new BusinessException("操作太频繁,请稍后重试");
String errorMsg = languageTranslationUtil.translate("操作太频繁,请稍后重试", lang);
throw new BusinessException(errorMsg);
}
// 执行业务逻辑
return exportService.addExportLive(dto);
@ -171,14 +174,15 @@ public class ExportController {
}
@PostMapping("/exportFan")
public Result export(@Valid @RequestBody FanDTO dto){
public Result export(@Valid @RequestBody FanDTO dto, @RequestHeader(defaultValue = "zh_CN") String lang){
String lockKey = "export:lock:" + dto.getToken();
String requestId = UUID.randomUUID().toString();
long expireTime = 5000;
try {
// 尝试获取锁
if (!redisLockUtil.tryLock(lockKey, requestId, expireTime)) {
throw new BusinessException("操作太频繁,请稍后重试");
String errorMsg = languageTranslationUtil.translate("操作太频繁,请稍后重试", lang);
throw new BusinessException(errorMsg);
}
// 执行业务逻辑
return exportService.addExportFan(dto);
@ -189,14 +193,15 @@ public class ExportController {
}
@PostMapping("/exportArticle")
public Result export(@Valid @RequestBody ArticleDTO dto){
public Result export(@Valid @RequestBody ArticleDTO dto, @RequestHeader(defaultValue = "zh_CN") String lang){
String lockKey = "export:lock:" + dto.getToken();
String requestId = UUID.randomUUID().toString();
long expireTime = 5000;
try {
// 尝试获取锁
if (!redisLockUtil.tryLock(lockKey, requestId, expireTime)) {
throw new BusinessException("操作太频繁,请稍后重试");
String errorMsg = languageTranslationUtil.translate("操作太频繁,请稍后重试", lang);
throw new BusinessException(errorMsg);
}
// 执行业务逻辑
return exportService.addExportArticle(dto);
@ -207,14 +212,15 @@ public class ExportController {
}
@PostMapping("/exportBean")
public Result export(@Valid @RequestBody BeanRechargeDTO dto){
public Result export(@Valid @RequestBody BeanRechargeDTO dto, @RequestHeader(defaultValue = "zh_CN") String lang){
String lockKey = "export:lock:" + dto.getToken();
String requestId = UUID.randomUUID().toString();
long expireTime = 5000;
try {
// 尝试获取锁
if (!redisLockUtil.tryLock(lockKey, requestId, expireTime)) {
throw new BusinessException("操作太频繁,请稍后重试");
String errorMsg = languageTranslationUtil.translate("操作太频繁,请稍后重试", lang);
throw new BusinessException(errorMsg);
}
// 执行业务逻辑
return exportService.addExportBean(dto);
@ -225,14 +231,15 @@ public class ExportController {
}
@PostMapping("/exportol")
public Result exportol(@Valid @RequestBody OnlineDTO dto) throws Exception {
public Result exportol(@Valid @RequestBody OnlineDTO dto, @RequestHeader(defaultValue = "zh_CN") String lang) throws Exception {
String lockKey = "export:lock:" + dto.getToken();
String requestId = UUID.randomUUID().toString();
long expireTime = 5000;
try {
// 尝试获取锁
if (!redisLockUtil.tryLock(lockKey, requestId, expireTime)) {
throw new BusinessException("操作太频繁,请稍后重试");
String errorMsg = languageTranslationUtil.translate("操作太频繁,请稍后重试", lang);
throw new BusinessException(errorMsg);
}
// 执行业务逻辑
return exportService.addExportOnline(dto);
@ -246,14 +253,15 @@ public class ExportController {
* 负责人退款导出
*/
@PostMapping("/exportFinance")
public Result exportFinance(@Valid @RequestBody FinanceDTO dto) {
public Result exportFinance(@Valid @RequestBody FinanceDTO dto, @RequestHeader(defaultValue = "zh_CN") String lang) {
String lockKey = "export:lock:" + dto.getToken();
String requestId = UUID.randomUUID().toString();
long expireTime = 5000;
try {
// 尝试获取锁
if (!redisLockUtil.tryLock(lockKey, requestId, expireTime)) {
throw new BusinessException("操作太频繁,请稍后重试");
String errorMsg = languageTranslationUtil.translate("操作太频繁,请稍后重试", lang);
throw new BusinessException(errorMsg);
}
// 执行业务逻辑
return exportService.addExportFinance(dto);
@ -264,14 +272,15 @@ public class ExportController {
}
@PostMapping("/exportCash")
public Result exportCash(@Valid @RequestBody CashDTO dto) {
public Result exportCash(@Valid @RequestBody CashDTO dto, @RequestHeader(defaultValue = "zh_CN") String lang) {
String lockKey = "export:lock:" + dto.getToken();
String requestId = UUID.randomUUID().toString();
long expireTime = 5000;
try {
// 尝试获取锁
if (!redisLockUtil.tryLock(lockKey, requestId, expireTime)) {
throw new BusinessException("操作太频繁,请稍后重试");
String errorMsg = languageTranslationUtil.translate("操作太频繁,请稍后重试", lang);
throw new BusinessException(errorMsg);
}
// 执行业务逻辑
return exportService.addExportCash(dto);

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

@ -50,11 +50,8 @@ import java.util.UUID;
public class GoldDetailController {
@Autowired
private GoldDetailService goldDetailService;
// 注入多语言转换工具类
@Autowired
private LanguageTranslationUtil languageTranslationUtil;
@Autowired
private RedisLockUtil redisLockUtil;
@Autowired
@ -303,31 +300,66 @@ public class GoldDetailController {
}
}
@PostMapping("/exportqqq")
public Result ExcelGoldDetail(@RequestBody Page page) throws Exception {
public Result ExcelGoldDetail(@RequestBody Page page, @RequestHeader(defaultValue = "zh_CN") String lang) throws Exception {
// 解析语言代码
String languageCode = parseLanguageCode(lang);
// 如果不是中文环境将查询条件中的翻译文本转换为中文简体
if (!"zh".equalsIgnoreCase(languageCode) && !"zh_cn".equalsIgnoreCase(languageCode)) {
convertGoldDetailTranslatedFieldsToChinese(page.getGoldDetail(), languageCode);
}
if(ObjectUtils.isEmpty(page.getPageNum())){
return Result.error("页码数为空!");
String errorMsg = languageTranslationUtil.translate("页码数为空!", lang);
return Result.error(errorMsg);
}
if(ObjectUtils.isEmpty(page.getPageSize())){
return Result.error("页大小为空!");
String errorMsg = languageTranslationUtil.translate("页大小为空!", lang);
return Result.error(errorMsg);
}
else{
Result result = Result.success(goldDetailService.getGoldDetail(page.getPageNum(), page.getPageSize(), page.getGoldDetail()));
return Result.success(goldDetailService.getGoldDetail(page.getPageNum(), page.getPageSize(), page.getGoldDetail()));
// 对返回结果进行多语言转换
if (result.getCode() == 200 && result.getData() instanceof PageInfo) {
PageInfo<GoldDetail> pageInfo = (PageInfo<GoldDetail>) result.getData();
translateGoldDetails(pageInfo, lang);
}
return result;
}
}
public Result ExcelGold(@RequestBody Page page) throws Exception {
// System.out.println( page);
public Result ExcelGold(@RequestBody Page page, @RequestHeader(defaultValue = "zh_CN") String lang) throws Exception {
// 解析语言代码
String languageCode = parseLanguageCode(lang);
// 如果不是中文环境将查询条件中的翻译文本转换为中文简体
if (!"zh".equalsIgnoreCase(languageCode) && !"zh_cn".equalsIgnoreCase(languageCode)) {
convertUserTranslatedFieldsToChinese(page.getUser(), languageCode);
}
if(ObjectUtils.isEmpty(page.getPageNum())){
return Result.error("页码数为空!");
String errorMsg = languageTranslationUtil.translate("页码数为空!", lang);
return Result.error(errorMsg);
}
if(ObjectUtils.isEmpty(page.getPageSize())){
return Result.error("页大小为空!");
String errorMsg = languageTranslationUtil.translate("页大小为空!", lang);
return Result.error(errorMsg);
}
Result result = Result.success(goldDetailService.getGold(page.getPageNum(), page.getPageSize(), page.getUser()));
// 对返回结果进行多语言转换
if (result.getCode() == 200 && result.getData() instanceof PageInfo) {
PageInfo<User> pageInfo = (PageInfo<User>) result.getData();
translateUsers(pageInfo, lang);
}
return Result.success(goldDetailService.getGold(page.getPageNum(), page.getPageSize(), page.getUser()));
return result;
}
/*
更新用户消费次数
*/
@ -346,10 +378,6 @@ public class GoldDetailController {
if (detail.getMarket() != null) {
detail.setMarket(languageTranslationUtil.translate(detail.getMarket(), lang));
}
// // 翻译支付平台("平台信息")
// if (detail.getPayPlatform() != null) {
// detail.setPayPlatform(languageTranslationUtil.translate(detail.getPayPlatform(), lang));
// }
// 翻译类型("更新类型") - 需要根据type的值进行转换
if (detail.getType() != null) {
String typeDesc = convertTypeToString(detail.getType());
@ -425,13 +453,6 @@ public class GoldDetailController {
goldDetail.getGoodsName(), languageCode);
goldDetail.setGoodsName(chineseGoodsName);
}
// 转换支付平台
if (goldDetail.getPayPlatform() != null && !goldDetail.getPayPlatform().isEmpty()) {
String chinesePayPlatform = translationService.findChineseSimplifiedByTranslation(
goldDetail.getPayPlatform(), languageCode);
goldDetail.setPayPlatform(chinesePayPlatform);
}
}
}

58
src/main/java/com/example/demo/controller/coin/RechargeController.java

@ -36,12 +36,8 @@ import java.util.List;
@Slf4j
@CrossOrigin
public class RechargeController {
@Autowired
private RechargeService rechargeService;
// 注入多语言转换工具类
@Autowired
private LanguageTranslationUtil languageTranslationUtil;
@Autowired
@ -165,23 +161,42 @@ public class RechargeController {
}
public Result select(@RequestBody Page page) {
public Result select(@RequestBody Page page, @RequestHeader(defaultValue = "zh_CN") String lang) {
try {
if (ObjectUtils.isEmpty(page.getPageNum())) {
return Result.error("页码数为空!");
String errorMsg = languageTranslationUtil.translate("页码数为空!", lang);
return Result.error(errorMsg);
}
if (ObjectUtils.isEmpty(page.getPageSize())) {
return Result.error("页大小为空!");
String errorMsg = languageTranslationUtil.translate("页大小为空!", lang);
return Result.error(errorMsg);
} else {
// 解析语言代码
String languageCode = parseLanguageCode(lang);
// 如果不是中文环境将查询条件中的翻译文本转换为中文简体
if (!"zh".equalsIgnoreCase(languageCode) && !"zh_cn".equalsIgnoreCase(languageCode)) {
convertRechargeTranslatedFieldsToChinese(page.getRechargeUser(), languageCode);
}
//解token权限
return Result.success(rechargeService.selectBy(page.getPageNum(), page.getPageSize(), page.getRechargeUser()));
Result result = Result.success(rechargeService.selectBy(page.getPageNum(), page.getPageSize(), page.getRechargeUser()));
// 对返回结果进行多语言转换
if (result.getCode() == 200 && result.getData() instanceof PageInfo) {
PageInfo<RechargeUser> pageInfo = (PageInfo<RechargeUser>) result.getData();
translateRechargeUsers(pageInfo, lang);
}
return result;
}
} catch (Exception e) {
return Result.error(e.getMessage());
String errorMsg = languageTranslationUtil.translate("查询失败", lang);
return Result.error(errorMsg + ": " + e.getMessage());
}
}
/**
* 转换充值用户信息的多语言字段
*/
@ -192,10 +207,6 @@ public class RechargeController {
if (user.getMarket() != null) {
user.setMarket(languageTranslationUtil.translate(user.getMarket(), lang));
}
// // 翻译活动名称
// if (user.getActivity() != null) {
// user.setActivity(languageTranslationUtil.translate(user.getActivity(), lang));
// }
// 翻译汇率名称
if (user.getRateName() != null) {
user.setRateName(languageTranslationUtil.translate(user.getRateName(), lang));
@ -204,10 +215,6 @@ public class RechargeController {
if (user.getPayModel() != null) {
user.setPayModel(languageTranslationUtil.translate(user.getPayModel(), lang));
}
// // 翻译支付平台
// if (user.getPayPlatform() != null) {
// user.setPayPlatform(languageTranslationUtil.translate(user.getPayPlatform(), lang));
// }
// 翻译备注
if (user.getRemark() != null) {
user.setRemark(languageTranslationUtil.translate(user.getRemark(), lang));
@ -246,13 +253,6 @@ public class RechargeController {
rechargeUser.setMarket(chineseMarket);
}
// 转换活动名称
if (rechargeUser.getActivity() != null && !rechargeUser.getActivity().isEmpty()) {
String chineseActivity = translationService.findChineseSimplifiedByTranslation(
rechargeUser.getActivity(), languageCode);
rechargeUser.setActivity(chineseActivity);
}
// 转换汇率名称
if (rechargeUser.getRateName() != null && !rechargeUser.getRateName().isEmpty()) {
String chineseRateName = translationService.findChineseSimplifiedByTranslation(
@ -267,13 +267,6 @@ public class RechargeController {
rechargeUser.setPayModel(chinesePayModel);
}
// 转换支付平台
if (rechargeUser.getPayPlatform() != null && !rechargeUser.getPayPlatform().isEmpty()) {
String chinesePayPlatform = translationService.findChineseSimplifiedByTranslation(
rechargeUser.getPayPlatform(), languageCode);
rechargeUser.setPayPlatform(chinesePayPlatform);
}
// 转换备注
if (rechargeUser.getRemark() != null && !rechargeUser.getRemark().isEmpty()) {
String chineseRemark = translationService.findChineseSimplifiedByTranslation(
@ -282,5 +275,4 @@ public class RechargeController {
}
}
}
}

16
src/main/java/com/example/demo/controller/coin/RefundController.java

@ -39,18 +39,16 @@ public class RefundController {
@Autowired
private RefundService refundService;
// 注入 TranslationService
@Autowired
private TranslationService translationService;
// 注入多语言转换工具类
@Autowired
private LanguageTranslationUtil languageTranslationUtil;
//退款明细
@Log("获取全部退款明细")
@PostMapping("/selectAll")
public Result selectAll(@RequestBody Page page, @RequestHeader(defaultValue = "zh") String lang) {
public Result selectAll(@RequestBody Page page, @RequestHeader(defaultValue = "zh_CN") String lang) {
try {
// 解析语言代码
String languageCode = parseLanguageCode(lang);
@ -99,7 +97,7 @@ public class RefundController {
//退款筛选
@Log("退款明细筛选")
@PostMapping("/selectBy")
public Result selectBy(@RequestBody Page page, @RequestHeader(defaultValue = "zh") String lang) {
public Result selectBy(@RequestBody Page page, @RequestHeader(defaultValue = "zh_CN") String lang) {
try {
// 解析语言代码
String languageCode = parseLanguageCode(lang);
@ -143,7 +141,7 @@ public class RefundController {
//退款金币统计
@Log("退款金币合计数统计")
@PostMapping("/statsGold")
public Result statsGold(@RequestBody RefundUser refundUser, @RequestHeader(defaultValue = "zh") String lang) {
public Result statsGold(@RequestBody RefundUser refundUser, @RequestHeader(defaultValue = "zh_CN") String lang) {
try {
// 解析语言代码
String languageCode = parseLanguageCode(lang);
@ -172,7 +170,7 @@ public class RefundController {
//获取退款类型
@Log("获取退款类型")
@PostMapping("/refundType")
public Result getRefundType(@RequestHeader(defaultValue = "zh") String lang) {
public Result getRefundType(@RequestHeader(defaultValue = "zh_CN") String lang) {
// 解析语言代码
String languageCode = parseLanguageCode(lang);
@ -191,7 +189,7 @@ public class RefundController {
//筛选产品
// @Log("筛选商品")
@PostMapping("/selectGoods")
public Result getSelectGoods(@RequestBody RefundUser refundUser, @RequestHeader(defaultValue = "zh") String lang) {
public Result getSelectGoods(@RequestBody RefundUser refundUser, @RequestHeader(defaultValue = "zh_CN") String lang) {
// 解析语言代码
String languageCode = parseLanguageCode(lang);
@ -207,7 +205,7 @@ public class RefundController {
//消耗金币退款
@Log("新增金币退款")
@PostMapping("/add")
public Result add(@RequestBody RefundUser refundUser, @RequestHeader(defaultValue = "zh") String lang) {
public Result add(@RequestBody RefundUser refundUser, @RequestHeader(defaultValue = "zh_CN") String lang) {
try {
// 解析语言代码
String languageCode = parseLanguageCode(lang);
@ -225,7 +223,7 @@ public class RefundController {
}
}
public Result select(@RequestBody Page page, @RequestHeader(defaultValue = "zh") String lang) {
public Result select(@RequestBody Page page, @RequestHeader(defaultValue = "zh_CN") String lang) {
try {
// 解析语言代码
String languageCode = parseLanguageCode(lang);

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

@ -100,7 +100,15 @@ public class ExportExcelServiceImpl implements ExportExcelService {
JsonNode GoldDetailNode = requestDataNode.path("goldDetail");
GoldDetail goldDetail = objectMapper.treeToValue(GoldDetailNode, GoldDetail.class);
page.setGoldDetail(goldDetail);
return goldDetailController.ExcelGoldDetail(page);
// 从请求数据中获取语言设置如果没有则使用默认值
String lang = "zh_CN";
JsonNode langNode = requestDataNode.path("lang");
if (langNode != null && !langNode.asText().isEmpty()) {
lang = langNode.asText();
}
return goldDetailController.ExcelGoldDetail(page, lang);
} catch (Exception e) {
throw new RuntimeException(e);
}
@ -117,7 +125,15 @@ public class ExportExcelServiceImpl implements ExportExcelService {
JsonNode UserNode = requestDataNode.path("user");
User user = objectMapper.treeToValue(UserNode, User.class);
page.setUser(user);
return goldDetailController.ExcelGold(page);
// 从请求数据中获取语言设置如果没有则使用默认值
String lang = "zh_CN";
JsonNode langNode = requestDataNode.path("lang");
if (langNode != null && !langNode.asText().isEmpty()) {
lang = langNode.asText();
}
return goldDetailController.ExcelGold(page, lang);
} catch (Exception e) {
throw new RuntimeException(e);
}
@ -139,7 +155,15 @@ public class ExportExcelServiceImpl implements ExportExcelService {
List<String> markets = Arrays.asList(StringUtils.split(admin.getMarkets(), ","));
rechargeUser.setMarkets(markets);
page.setRechargeUser(rechargeUser);
return rechargeController.select(page);
// 从请求数据中获取语言设置如果没有则使用默认值
String lang = "zh_CN";
JsonNode langNode = requestDataNode.path("lang");
if (langNode != null && !langNode.asText().isEmpty()) {
lang = langNode.asText();
}
return rechargeController.select(page, lang);
} catch (Exception e) {
throw new RuntimeException(e);
}
@ -161,13 +185,22 @@ public class ExportExcelServiceImpl implements ExportExcelService {
List<String> markets = Arrays.asList(StringUtils.split(admin.getMarkets(), ","));
consumeUser.setMarkets(markets);
page.setConsumeUser(consumeUser);
return consumeController.select(page);
// 从请求数据中获取语言设置如果没有则使用默认值
String lang = "zh_CN";
JsonNode langNode = requestDataNode.path("lang");
if (langNode != null && !langNode.asText().isEmpty()) {
lang = langNode.asText();
}
return consumeController.select(page, lang);
} catch (Exception e) {
throw new RuntimeException(e);
}
});
}
@Transactional
@Override
public Exception refundExcel(String message) throws Exception {

Loading…
Cancel
Save