Browse Source

12月10日现金管理多语言配置,金豆模块和工作台模块

huangqizheng/feature-20260106155423-红包修改
wangguorui 1 month ago
parent
commit
35712d1804
  1. 143
      src/main/java/com/example/demo/controller/bean/BeanAuditController.java
  2. 605
      src/main/java/com/example/demo/controller/bean/BeanConsumeController.java
  3. 298
      src/main/java/com/example/demo/controller/bean/BeanRechargeController.java
  4. 203
      src/main/java/com/example/demo/controller/bean/BeanUserController.java
  5. 4
      src/main/java/com/example/demo/controller/coin/WorkbenchController.java
  6. 56
      src/main/java/com/example/demo/serviceImpl/coin/ExportExcelServiceImpl.java

143
src/main/java/com/example/demo/controller/bean/BeanAuditController.java

@ -1,23 +1,22 @@
package com.example.demo.controller.bean;
import com.example.demo.Util.LanguageTranslationUtil;
import com.example.demo.domain.vo.bean.BeanAuditInfo;
import com.example.demo.domain.vo.bean.BeanRechargeInfo;
import com.example.demo.domain.vo.bean.GoldBean;
import com.example.demo.domain.vo.coin.Page;
import com.example.demo.domain.vo.coin.Result;
import com.example.demo.service.bean.BeanAuditService;
import com.example.demo.service.coin.TranslationService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.ObjectUtils;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* @program: gold-java
* @ClassName BeanAuditController
* @description:
* @description: 金豆审核
* @author: Double
* @create: 202508-01 11:03
* @Version 1.0
@ -33,65 +32,169 @@ public class BeanAuditController {
@Autowired
private BeanAuditService beanAuditService;
@Autowired
private LanguageTranslationUtil languageTranslationUtil;
@Autowired
private TranslationService translationService;
//审核查找
@PostMapping("/selectBy")
public Result selectBy(@RequestBody Page page) {
public Result selectBy(@RequestBody Page page, @RequestHeader(defaultValue = "zh_CN") String lang) {
try {
// 解析语言代码
String languageCode = parseLanguageCode(lang);
// 如果不是中文环境将查询条件中的翻译文本转换为中文简体
if (!"zh".equalsIgnoreCase(languageCode) && !"zh_cn".equalsIgnoreCase(languageCode)) {
convertTranslatedFieldsToChinese(page.getBeanAuditInfo(), 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 {
if (page.getBeanAuditInfo().getStatus() == null) {
return Result.error("状态不能为空");
String errorMsg = languageTranslationUtil.translate("状态不能为空", lang);
return Result.error(errorMsg);
}
return Result.success(beanAuditService.selectBy(page.getPageNum(), page.getPageSize(), page.getBeanAuditInfo()));
Result result = Result.success(beanAuditService.selectBy(page.getPageNum(), page.getPageSize(), page.getBeanAuditInfo()));
// 对返回结果进行多语言转换
if (result.getCode() == 200 && result.getData() instanceof com.github.pagehelper.PageInfo) {
com.github.pagehelper.PageInfo<BeanAuditInfo> pageInfo = (com.github.pagehelper.PageInfo<BeanAuditInfo>) result.getData();
translateBeanAuditInfos(pageInfo, lang);
}
return result;
}
} catch (Exception e) {
e.printStackTrace();
return Result.error("请检查筛选数据的格式");
String errorMsg = languageTranslationUtil.translate("请检查筛选数据的格式", lang);
return Result.error(errorMsg);
}
}
@PostMapping("/status1")
public Result updateStatus1(@RequestBody BeanAuditInfo beanAuditInfo) {
public Result updateStatus1(@RequestBody BeanAuditInfo beanAuditInfo, @RequestHeader(defaultValue = "zh_CN") String lang) {
try {
// 解析语言代码
String languageCode = parseLanguageCode(lang);
// 如果不是中文环境将查询条件中的翻译文本转换为中文简体
if (!"zh".equalsIgnoreCase(languageCode) && !"zh_cn".equalsIgnoreCase(languageCode)) {
convertTranslatedFieldsToChinese(beanAuditInfo, languageCode);
}
if (ObjectUtils.isEmpty(beanAuditInfo.getId())) {
return Result.error("id不能为空");
String errorMsg = languageTranslationUtil.translate("id不能为空", lang);
return Result.error(errorMsg);
}
return beanAuditService.updateStatus1(beanAuditInfo);
} catch (Exception e) {
e.printStackTrace();
return Result.error("更新失败,查看id");
String errorMsg = languageTranslationUtil.translate("更新失败,查看id", lang);
return Result.error(errorMsg);
}
}
@PostMapping("/status2")
public Result updateStatus2(@RequestBody BeanAuditInfo beanAuditInfo) {
public Result updateStatus2(@RequestBody BeanAuditInfo beanAuditInfo, @RequestHeader(defaultValue = "zh_CN") String lang) {
try {
// 解析语言代码
String languageCode = parseLanguageCode(lang);
// 如果不是中文环境将查询条件中的翻译文本转换为中文简体
if (!"zh".equalsIgnoreCase(languageCode) && !"zh_cn".equalsIgnoreCase(languageCode)) {
convertTranslatedFieldsToChinese(beanAuditInfo, languageCode);
}
if (ObjectUtils.isEmpty(beanAuditInfo.getId())) {
return Result.error("id不能为空");
String errorMsg = languageTranslationUtil.translate("id不能为空", lang);
return Result.error(errorMsg);
}
if (ObjectUtils.isEmpty(beanAuditInfo.getReason())) {
return Result.error("审核意见不能为空");
String errorMsg = languageTranslationUtil.translate("审核意见不能为空", lang);
return Result.error(errorMsg);
}
beanAuditService.updateStatus2(beanAuditInfo);
return Result.success();
String successMsg = languageTranslationUtil.translate("操作成功", lang);
return Result.success(successMsg);
} catch (Exception e) {
return Result.error("更新失败,查看id");
String errorMsg = languageTranslationUtil.translate("更新失败,查看id", lang);
return Result.error(errorMsg);
}
}
//金豆统计
@PostMapping("/statsBean")
public Result statsBean(@RequestBody BeanAuditInfo beanAuditInfo) {
public Result statsBean(@RequestBody BeanAuditInfo beanAuditInfo, @RequestHeader(defaultValue = "zh_CN") String lang) {
try {
// 解析语言代码
String languageCode = parseLanguageCode(lang);
// 如果不是中文环境将查询条件中的翻译文本转换为中文简体
if (!"zh".equalsIgnoreCase(languageCode) && !"zh_cn".equalsIgnoreCase(languageCode)) {
convertTranslatedFieldsToChinese(beanAuditInfo, languageCode);
}
GoldBean goldBean = beanAuditService.statsBean(beanAuditInfo);
return Result.success(goldBean);
} catch (Exception e) {
return Result.error("请检查数据的格式");
String errorMsg = languageTranslationUtil.translate("请检查数据的格式", lang);
return Result.error(errorMsg);
}
}
/**
* 转换Bean审核信息的多语言字段
*/
private void translateBeanAuditInfos(com.github.pagehelper.PageInfo<BeanAuditInfo> pageInfo, String lang) {
if (pageInfo != null && pageInfo.getList() != null) {
for (BeanAuditInfo info : pageInfo.getList()) {
// 翻译市场名称
if (info.getMarket() != null) {
info.setMarket(languageTranslationUtil.translate(info.getMarket(), lang));
}
}
}
}
/**
* 解析语言代码
*/
private String parseLanguageCode(String langHeader) {
if (langHeader == null || langHeader.isEmpty()) {
return "zh";
}
// 处理类似 "en-US" "zh-TW" 的情况
if (langHeader.contains("-")) {
String[] parts = langHeader.split("-");
// 特殊处理中文繁体
if ("zh".equalsIgnoreCase(parts[0]) && "TW".equalsIgnoreCase(parts[1])) {
return "zh_TW";
}
return parts[0].toLowerCase();
}
return langHeader.toLowerCase();
}
/**
* 将查询条件中的翻译字段转换为中文简体
*/
private void convertTranslatedFieldsToChinese(BeanAuditInfo beanAuditInfo, String languageCode) {
if (beanAuditInfo != null) {
// 转换市场名称
if (beanAuditInfo.getMarket() != null && !beanAuditInfo.getMarket().isEmpty()) {
String chineseMarket = translationService.findChineseSimplifiedByTranslation(
beanAuditInfo.getMarket(), languageCode);
beanAuditInfo.setMarket(chineseMarket);
}
}
}
}

605
src/main/java/com/example/demo/controller/bean/BeanConsumeController.java

@ -7,6 +7,8 @@ import com.example.demo.domain.vo.bean.BeanRecharge;
import com.example.demo.domain.vo.coin.Page;
import com.example.demo.domain.vo.coin.Result;
import com.example.demo.service.bean.BeanConsumeService;
import com.example.demo.Util.LanguageTranslationUtil;
import com.example.demo.service.coin.TranslationService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
@ -18,7 +20,7 @@ import java.util.List;
/**
* @program: gold-java
* @ClassName BeanConsumeController
* @description:
* @description: 金豆消耗
* @author: Ethan
* @create: 202507-30 11:30
* @Version 1.0
@ -32,122 +34,647 @@ public class BeanConsumeController {
@Autowired
private BeanConsumeService beanConsumeService;
@Autowired
private LanguageTranslationUtil languageTranslationUtil;
@Autowired
private TranslationService translationService;
//获取消费用户分部信息
@PostMapping("/getDept")
public Result getDept(){
public Result getDept(@RequestHeader(defaultValue = "zh_CN") String lang){
try {
List<String> deptList = beanConsumeService.getDept();
// 解析语言代码
String languageCode = parseLanguageCode(lang);
// 如果不是中文环境先将翻译后的分部名称转换为中文简体进行处理
if (!"zh".equalsIgnoreCase(languageCode) && !"zh_cn".equalsIgnoreCase(languageCode)) {
convertTranslatedDeptNamesToChinese(deptList, languageCode);
}
// 对分部名称进行多语言转换
translateDeptNames(deptList, lang);
return Result.success(deptList);
} catch (Exception e) {
String errorMsg = languageTranslationUtil.translate("获取分部信息失败", lang);
return Result.error(errorMsg);
}
}
//获取直播消费用户分部信息
@PostMapping("/getLiveDept")
public Result getLiveDept(){
public Result getLiveDept(@RequestHeader(defaultValue = "zh_CN") String lang){
try {
List<String> deptList = beanConsumeService.getLiveDept();
// 解析语言代码
String languageCode = parseLanguageCode(lang);
// 如果不是中文环境先将翻译后的分部名称转换为中文简体进行处理
if (!"zh".equalsIgnoreCase(languageCode) && !"zh_cn".equalsIgnoreCase(languageCode)) {
convertTranslatedLiveDeptNamesToChinese(deptList, languageCode);
}
// 对分部名称进行多语言转换
translateLiveDeptNames(deptList, lang);
return Result.success(deptList);
} catch (Exception e) {
String errorMsg = languageTranslationUtil.translate("获取直播分部信息失败", lang);
return Result.error(errorMsg);
}
}
//减少金豆
@PostMapping("/reduce")
public Result reduce(@RequestBody BeanConsume consume) {
public Result reduce(@RequestBody BeanConsume consume, @RequestHeader(defaultValue = "zh_CN") String lang) {
try {
// 解析语言代码
String languageCode = parseLanguageCode(lang);
// 如果不是中文环境将查询条件中的翻译文本转换为中文简体
if (!"zh".equalsIgnoreCase(languageCode) && !"zh_cn".equalsIgnoreCase(languageCode)) {
convertTranslatedConsumeFieldsToChinese(consume, languageCode);
}
return beanConsumeService.reduce(consume);
} catch (Exception e) {
return Result.error("减少失败");
String errorMsg = languageTranslationUtil.translate("减少失败", lang);
return Result.error(errorMsg);
}
}
//筛选查询直播消费记录
@Log("查询直播消费记录")
@PostMapping("/selectLiveBy")
public Result selectLiveBy(@RequestBody Page page){
public Result selectLiveBy(@RequestBody Page page, @RequestHeader(defaultValue = "zh_CN") String lang){
try {
// 解析语言代码
String languageCode = parseLanguageCode(lang);
// 如果不是中文环境将查询条件中的翻译文本转换为中文简体
if (!"zh".equalsIgnoreCase(languageCode) && !"zh_cn".equalsIgnoreCase(languageCode)) {
convertTranslatedLiveFieldsToChinese(page.getBeanConsumeLive(), 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(beanConsumeService.selectLiveBy(page.getPageNum(), page.getPageSize(), page.getBeanConsumeLive()));
// 对返回结果进行多语言转换
if (result.getCode() == 200 && result.getData() instanceof com.github.pagehelper.PageInfo) {
com.github.pagehelper.PageInfo<?> pageInfo = (com.github.pagehelper.PageInfo<?>) result.getData();
translateBeanConsumeLives(pageInfo, lang);
}
return Result.success(beanConsumeService.selectLiveBy(page.getPageNum(), page.getPageSize(), page.getBeanConsumeLive()));
return result;
}
} catch (Exception e) {
e.printStackTrace();
//返回堆栈信息
return Result.error(e.toString());
}}
//筛选查询铁粉消费记录
String errorMsg = languageTranslationUtil.translate("查询直播消费记录失败", lang);
return Result.error(errorMsg);
}
}
//筛选查询铁粉消费记录
@Log("查询铁粉消费记录")
@PostMapping("/selectFanBy")
public Result selectFanBy(@RequestBody Page page){
public Result selectFanBy(@RequestBody Page page, @RequestHeader(defaultValue = "zh_CN") String lang){
try {
// 解析语言代码
String languageCode = parseLanguageCode(lang);
// 如果不是中文环境将查询条件中的翻译文本转换为中文简体
if (!"zh".equalsIgnoreCase(languageCode) && !"zh_cn".equalsIgnoreCase(languageCode)) {
convertTranslatedFanFieldsToChinese(page.getBeanConsumeFan(), 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(beanConsumeService.selectFanBy(page.getPageNum(), page.getPageSize(), page.getBeanConsumeFan()));
// 对返回结果进行多语言转换
if (result.getCode() == 200 && result.getData() instanceof com.github.pagehelper.PageInfo) {
com.github.pagehelper.PageInfo<?> pageInfo = (com.github.pagehelper.PageInfo<?>) result.getData();
translateBeanConsumeFans(pageInfo, lang);
}
return Result.success(beanConsumeService.selectFanBy(page.getPageNum(), page.getPageSize(), page.getBeanConsumeFan()));
return result;
}
} catch (Exception e) {
e.printStackTrace();
return Result.error(e.toString());
}}
String errorMsg = languageTranslationUtil.translate("查询铁粉消费记录失败", lang);
return Result.error(errorMsg);
}
}
//筛选查询文章消费记录
@Log("查询文章消费记录")
@PostMapping("/selectArticleBy")
public Result selectArticleBy(@RequestBody Page page){
public Result selectArticleBy(@RequestBody Page page, @RequestHeader(defaultValue = "zh_CN") String lang){
try {
// 解析语言代码
String languageCode = parseLanguageCode(lang);
// 如果不是中文环境将查询条件中的翻译文本转换为中文简体
if (!"zh".equalsIgnoreCase(languageCode) && !"zh_cn".equalsIgnoreCase(languageCode)) {
convertTranslatedArticleFieldsToChinese(page.getBeanConsumeArticle(), 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(beanConsumeService.selectArticleBy(page.getPageNum(), page.getPageSize(), page.getBeanConsumeArticle()));
return Result.success(beanConsumeService.selectArticleBy(page.getPageNum(), page.getPageSize(), page.getBeanConsumeArticle()));
// 对返回结果进行多语言转换
if (result.getCode() == 200 && result.getData() instanceof com.github.pagehelper.PageInfo) {
com.github.pagehelper.PageInfo<?> pageInfo = (com.github.pagehelper.PageInfo<?>) result.getData();
translateBeanConsumeArticles(pageInfo, lang);
}
return result;
}
} catch (Exception e) {
e.printStackTrace();
return Result.error(e.toString());
}}
String errorMsg = languageTranslationUtil.translate("查询文章消费记录失败", lang);
return Result.error(errorMsg);
}
}
//筛选查询小黄车消费记录
@Log("查询小黄车消费记录")
@PostMapping("/selectCartBy")
public Result selectCartBy(@RequestBody Page page){
public Result selectCartBy(@RequestBody Page page, @RequestHeader(defaultValue = "zh_CN") String lang){
try {
// 解析语言代码
String languageCode = parseLanguageCode(lang);
// 如果不是中文环境将查询条件中的翻译文本转换为中文简体
if (!"zh".equalsIgnoreCase(languageCode) && !"zh_cn".equalsIgnoreCase(languageCode)) {
convertTranslatedCartFieldsToChinese(page.getBeanConsumeCartDTO(), 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(beanConsumeService.selectCartBy(page.getPageNum(), page.getPageSize(), page.getBeanConsumeCartDTO()));
return Result.success(beanConsumeService.selectCartBy(page.getPageNum(), page.getPageSize(), page.getBeanConsumeCartDTO()));
// 对返回结果进行多语言转换
if (result.getCode() == 200 && result.getData() instanceof com.github.pagehelper.PageInfo) {
com.github.pagehelper.PageInfo<?> pageInfo = (com.github.pagehelper.PageInfo<?>) result.getData();
translateBeanConsumeCarts(pageInfo, lang);
}
return result;
}
} catch (Exception e) {
e.printStackTrace();
return Result.error(e.toString());
String errorMsg = languageTranslationUtil.translate("查询小黄车消费记录失败", lang);
return Result.error(errorMsg);
}
}
//消费合计数
@PostMapping("sumConsumeGold")
public BeanConsumeGold sumConsumeGold(@RequestBody Page page) {
public BeanConsumeGold sumConsumeGold(@RequestBody Page page, @RequestHeader(defaultValue = "zh_CN") String lang) {
try {
// 解析语言代码
String languageCode = parseLanguageCode(lang);
// 如果不是中文环境将查询条件中的翻译文本转换为中文简体
if (!"zh".equalsIgnoreCase(languageCode) && !"zh_cn".equalsIgnoreCase(languageCode)) {
convertTranslatedSumFieldsToChinese(page, languageCode);
}
return beanConsumeService.sumConsumeGold( page);
return beanConsumeService.sumConsumeGold(page);
} catch (Exception e) {
String errorMsg = languageTranslationUtil.translate("计算消费合计数失败", lang);
throw new RuntimeException(errorMsg, e);
}
}
//查询所有直播礼物
@PostMapping("/getLiveGift")
public Result getLiveGift(){
return Result.success(beanConsumeService.getLiveGift());
public Result getLiveGift(@RequestHeader(defaultValue = "zh_CN") String lang){
try {
List<String> giftList = beanConsumeService.getLiveGift();
// 解析语言代码
String languageCode = parseLanguageCode(lang);
// 如果不是中文环境先将翻译后的礼物名称转换为中文简体进行处理
if (!"zh".equalsIgnoreCase(languageCode) && !"zh_cn".equalsIgnoreCase(languageCode)) {
convertTranslatedGiftNamesToChinese(giftList, languageCode);
}
// 对礼物名称进行多语言转换
translateGiftNames(giftList, lang);
return Result.success(giftList);
} catch (Exception e) {
String errorMsg = languageTranslationUtil.translate("获取直播礼物失败", lang);
return Result.error(errorMsg);
}
}
//查询所有直播频道
@PostMapping("/getLiveChannel")
public Result getLiveChannel(){
return Result.success(beanConsumeService.getLiveChannel());
public Result getLiveChannel(@RequestHeader(defaultValue = "zh_CN") String lang){
try {
List<String> channelList = beanConsumeService.getLiveChannel();
// 解析语言代码
String languageCode = parseLanguageCode(lang);
// 如果不是中文环境先将翻译后的频道名称转换为中文简体进行处理
if (!"zh".equalsIgnoreCase(languageCode) && !"zh_cn".equalsIgnoreCase(languageCode)) {
convertTranslatedChannelNamesToChinese(channelList, languageCode);
}
// 对频道名称进行多语言转换
translateChannelNames(channelList, lang);
return Result.success(channelList);
} catch (Exception e) {
String errorMsg = languageTranslationUtil.translate("获取直播频道失败", lang);
return Result.error(errorMsg);
}
}
/**
* 转换直播消费记录的多语言字段
*/
private void translateBeanConsumeLives(com.github.pagehelper.PageInfo<?> pageInfo, String lang) {
if (pageInfo != null && pageInfo.getList() != null) {
for (Object obj : pageInfo.getList()) {
if (obj instanceof com.example.demo.domain.vo.bean.BeanConsumeLive) {
com.example.demo.domain.vo.bean.BeanConsumeLive live = (com.example.demo.domain.vo.bean.BeanConsumeLive) obj;
// 翻译分部名称
if (live.getDept() != null) {
live.setDept(languageTranslationUtil.translate(live.getDept(), lang));
}
// 翻译礼物名称
if (live.getGift() != null) {
live.setGift(languageTranslationUtil.translate(live.getGift(), lang));
}
// 翻译直播频道
if (live.getLiveChannel() != null) {
live.setLiveChannel(languageTranslationUtil.translate(live.getLiveChannel(), lang));
}
// 翻译直播名称
if (live.getLiveName() != null) {
live.setLiveName(languageTranslationUtil.translate(live.getLiveName(), lang));
}
}
}
}
}
/**
* 转换铁粉消费记录的多语言字段
*/
private void translateBeanConsumeFans(com.github.pagehelper.PageInfo<?> pageInfo, String lang) {
if (pageInfo != null && pageInfo.getList() != null) {
for (Object obj : pageInfo.getList()) {
if (obj instanceof com.example.demo.domain.vo.bean.BeanConsumeFan) {
com.example.demo.domain.vo.bean.BeanConsumeFan fan = (com.example.demo.domain.vo.bean.BeanConsumeFan) obj;
// 翻译分部名称
if (fan.getDept() != null) {
fan.setDept(languageTranslationUtil.translate(fan.getDept(), lang));
}
// 翻译频道名称
if (fan.getChannel() != null) {
fan.setChannel(languageTranslationUtil.translate(fan.getChannel(), lang));
}
}
}
}
}
/**
* 转换文章消费记录的多语言字段
*/
private void translateBeanConsumeArticles(com.github.pagehelper.PageInfo<?> pageInfo, String lang) {
if (pageInfo != null && pageInfo.getList() != null) {
for (Object obj : pageInfo.getList()) {
if (obj instanceof com.example.demo.domain.vo.bean.BeanConsumeArticle) {
com.example.demo.domain.vo.bean.BeanConsumeArticle article = (com.example.demo.domain.vo.bean.BeanConsumeArticle) obj;
// 翻译分部名称
if (article.getDept() != null) {
article.setDept(languageTranslationUtil.translate(article.getDept(), lang));
}
// 翻译文章名称
if (article.getArticleName() != null) {
article.setArticleName(languageTranslationUtil.translate(article.getArticleName(), lang));
}
}
}
}
}
/**
* 转换小黄车消费记录的多语言字段
*/
private void translateBeanConsumeCarts(com.github.pagehelper.PageInfo<?> pageInfo, String lang) {
if (pageInfo != null && pageInfo.getList() != null) {
for (Object obj : pageInfo.getList()) {
if (obj instanceof com.example.demo.domain.vo.bean.BeanConsumeCartVo) {
com.example.demo.domain.vo.bean.BeanConsumeCartVo cart = (com.example.demo.domain.vo.bean.BeanConsumeCartVo) obj;
// 翻译分部名称
if (cart.getMarket() != null) {
cart.setMarket(languageTranslationUtil.translate(cart.getMarket(), lang));
}
// 翻译产品名称
if (cart.getProductName() != null) {
cart.setProductName(languageTranslationUtil.translate(cart.getProductName(), lang));
}
}
}
}
}
/**
* 转换分部名称为指定语言
*/
private void translateDeptNames(List<String> deptNames, String lang) {
if (deptNames != null && !deptNames.isEmpty()) {
for (int i = 0; i < deptNames.size(); i++) {
String translatedName = languageTranslationUtil.translate(deptNames.get(i), lang);
deptNames.set(i, translatedName);
}
}
}
/**
* 转换直播分部名称为指定语言
*/
private void translateLiveDeptNames(List<String> deptNames, String lang) {
if (deptNames != null && !deptNames.isEmpty()) {
for (int i = 0; i < deptNames.size(); i++) {
String translatedName = languageTranslationUtil.translate(deptNames.get(i), lang);
deptNames.set(i, translatedName);
}
}
}
/**
* 转换礼物名称为指定语言
*/
private void translateGiftNames(List<String> giftNames, String lang) {
if (giftNames != null && !giftNames.isEmpty()) {
for (int i = 0; i < giftNames.size(); i++) {
String translatedName = languageTranslationUtil.translate(giftNames.get(i), lang);
giftNames.set(i, translatedName);
}
}
}
/**
* 转换频道名称为指定语言
*/
private void translateChannelNames(List<String> channelNames, String lang) {
if (channelNames != null && !channelNames.isEmpty()) {
for (int i = 0; i < channelNames.size(); i++) {
String translatedName = languageTranslationUtil.translate(channelNames.get(i), lang);
channelNames.set(i, translatedName);
}
}
}
/**
* 解析语言代码
*/
private String parseLanguageCode(String langHeader) {
if (langHeader == null || langHeader.isEmpty()) {
return "zh";
}
// 处理类似 "en-US" "zh-TW" 的情况
if (langHeader.contains("-")) {
String[] parts = langHeader.split("-");
// 特殊处理中文繁体
if ("zh".equalsIgnoreCase(parts[0]) && "TW".equalsIgnoreCase(parts[1])) {
return "zh_TW";
}
return parts[0].toLowerCase();
}
return langHeader.toLowerCase();
}
/**
* 将消费查询条件中的翻译字段转换为中文简体
*/
private void convertTranslatedConsumeFieldsToChinese(BeanConsume consume, String languageCode) {
if (consume != null) {
// 转换备注信息
if (consume.getRemark() != null && !consume.getRemark().isEmpty()) {
String chineseRemark = translationService.findChineseSimplifiedByTranslation(
consume.getRemark(), languageCode);
consume.setRemark(chineseRemark);
}
}
}
/**
* 将直播消费查询条件中的翻译字段转换为中文简体
*/
private void convertTranslatedLiveFieldsToChinese(com.example.demo.domain.vo.bean.BeanConsumeLive beanConsumeLive, String languageCode) {
if (beanConsumeLive != null) {
// 转换分部名称
if (beanConsumeLive.getDept() != null && !beanConsumeLive.getDept().isEmpty()) {
String chineseDept = translationService.findChineseSimplifiedByTranslation(
beanConsumeLive.getDept(), languageCode);
beanConsumeLive.setDept(chineseDept);
}
// 转换礼物名称
if (beanConsumeLive.getGift() != null && !beanConsumeLive.getGift().isEmpty()) {
String chineseGift = translationService.findChineseSimplifiedByTranslation(
beanConsumeLive.getGift(), languageCode);
beanConsumeLive.setGift(chineseGift);
}
// 转换直播频道
if (beanConsumeLive.getLiveChannel() != null && !beanConsumeLive.getLiveChannel().isEmpty()) {
String chineseChannel = translationService.findChineseSimplifiedByTranslation(
beanConsumeLive.getLiveChannel(), languageCode);
beanConsumeLive.setLiveChannel(chineseChannel);
}
// 转换直播名称
if (beanConsumeLive.getLiveName() != null && !beanConsumeLive.getLiveName().isEmpty()) {
String chineseName = translationService.findChineseSimplifiedByTranslation(
beanConsumeLive.getLiveName(), languageCode);
beanConsumeLive.setLiveName(chineseName);
}
}
}
/**
* 将铁粉消费查询条件中的翻译字段转换为中文简体
*/
private void convertTranslatedFanFieldsToChinese(com.example.demo.domain.vo.bean.BeanConsumeFan beanConsumeFan, String languageCode) {
if (beanConsumeFan != null) {
// 转换分部名称
if (beanConsumeFan.getDept() != null && !beanConsumeFan.getDept().isEmpty()) {
String chineseDept = translationService.findChineseSimplifiedByTranslation(
beanConsumeFan.getDept(), languageCode);
beanConsumeFan.setDept(chineseDept);
}
// 转换频道名称
if (beanConsumeFan.getChannel() != null && !beanConsumeFan.getChannel().isEmpty()) {
String chineseChannel = translationService.findChineseSimplifiedByTranslation(
beanConsumeFan.getChannel(), languageCode);
beanConsumeFan.setChannel(chineseChannel);
}
}
}
/**
* 将文章消费查询条件中的翻译字段转换为中文简体
*/
private void convertTranslatedArticleFieldsToChinese(com.example.demo.domain.vo.bean.BeanConsumeArticle beanConsumeArticle, String languageCode) {
if (beanConsumeArticle != null) {
// 转换分部名称
if (beanConsumeArticle.getDept() != null && !beanConsumeArticle.getDept().isEmpty()) {
String chineseDept = translationService.findChineseSimplifiedByTranslation(
beanConsumeArticle.getDept(), languageCode);
beanConsumeArticle.setDept(chineseDept);
}
// 转换文章名称
if (beanConsumeArticle.getArticleName() != null && !beanConsumeArticle.getArticleName().isEmpty()) {
String chineseName = translationService.findChineseSimplifiedByTranslation(
beanConsumeArticle.getArticleName(), languageCode);
beanConsumeArticle.setArticleName(chineseName);
}
}
}
/**
* 将小黄车消费查询条件中的翻译字段转换为中文简体
*/
private void convertTranslatedCartFieldsToChinese(com.example.demo.domain.DTO.BeanConsumeCartDTO beanConsumeCartDTO, String languageCode) {
if (beanConsumeCartDTO != null) {
// 转换产品名称
if (beanConsumeCartDTO.getProductName() != null && !beanConsumeCartDTO.getProductName().isEmpty()) {
String chineseName = translationService.findChineseSimplifiedByTranslation(
beanConsumeCartDTO.getProductName(), languageCode);
beanConsumeCartDTO.setProductName(chineseName);
}
// 转换直播名称
if (beanConsumeCartDTO.getLiveName() != null && !beanConsumeCartDTO.getLiveName().isEmpty()) {
String chineseName = translationService.findChineseSimplifiedByTranslation(
beanConsumeCartDTO.getLiveName(), languageCode);
beanConsumeCartDTO.setLiveName(chineseName);
}
// 转换来源名称
if (beanConsumeCartDTO.getSourceName() != null && !beanConsumeCartDTO.getSourceName().isEmpty()) {
String chineseName = translationService.findChineseSimplifiedByTranslation(
beanConsumeCartDTO.getSourceName(), languageCode);
beanConsumeCartDTO.setSourceName(chineseName);
}
}
}
/**
* 将分部名称转换为中文简体
*/
private void convertTranslatedDeptNamesToChinese(List<String> deptNames, String languageCode) {
if (deptNames != null && !deptNames.isEmpty()) {
for (int i = 0; i < deptNames.size(); i++) {
String chineseName = translationService.findChineseSimplifiedByTranslation(
deptNames.get(i), languageCode);
deptNames.set(i, chineseName);
}
}
}
/**
* 将直播分部名称转换为中文简体
*/
private void convertTranslatedLiveDeptNamesToChinese(List<String> deptNames, String languageCode) {
if (deptNames != null && !deptNames.isEmpty()) {
for (int i = 0; i < deptNames.size(); i++) {
String chineseName = translationService.findChineseSimplifiedByTranslation(
deptNames.get(i), languageCode);
deptNames.set(i, chineseName);
}
}
}
/**
* 将礼物名称转换为中文简体
*/
private void convertTranslatedGiftNamesToChinese(List<String> giftNames, String languageCode) {
if (giftNames != null && !giftNames.isEmpty()) {
for (int i = 0; i < giftNames.size(); i++) {
String chineseName = translationService.findChineseSimplifiedByTranslation(
giftNames.get(i), languageCode);
giftNames.set(i, chineseName);
}
}
}
/**
* 将频道名称转换为中文简体
*/
private void convertTranslatedChannelNamesToChinese(List<String> channelNames, String languageCode) {
if (channelNames != null && !channelNames.isEmpty()) {
for (int i = 0; i < channelNames.size(); i++) {
String chineseName = translationService.findChineseSimplifiedByTranslation(
channelNames.get(i), languageCode);
channelNames.set(i, chineseName);
}
}
}
/**
* 将合计数查询条件中的翻译字段转换为中文简体
*/
private void convertTranslatedSumFieldsToChinese(Page page, String languageCode) {
if (page != null) {
// 转换直播消费条件
if (page.getBeanConsumeLive() != null) {
convertTranslatedLiveFieldsToChinese(page.getBeanConsumeLive(), languageCode);
}
// 转换铁粉消费条件
if (page.getBeanConsumeFan() != null) {
convertTranslatedFanFieldsToChinese(page.getBeanConsumeFan(), languageCode);
}
// 转换文章消费条件
if (page.getBeanConsumeArticle() != null) {
convertTranslatedArticleFieldsToChinese(page.getBeanConsumeArticle(), languageCode);
}
}
}
}

298
src/main/java/com/example/demo/controller/bean/BeanRechargeController.java

@ -1,5 +1,6 @@
package com.example.demo.controller.bean;
import com.example.demo.Util.LanguageTranslationUtil;
import com.example.demo.domain.vo.bean.BeanOnlineRechargeInfo;
import com.example.demo.domain.vo.bean.BeanRecharge;
import com.example.demo.domain.vo.bean.BeanSystemRechargeInfo;
@ -7,6 +8,7 @@ import com.example.demo.domain.vo.bean.GoldBean;
import com.example.demo.domain.vo.coin.Page;
import com.example.demo.domain.vo.coin.Result;
import com.example.demo.service.bean.BeanRechargeService;
import com.example.demo.service.coin.TranslationService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
@ -17,8 +19,8 @@ import java.util.List;
/**
* @program: gold-java
* @ClassName BeanRechrageController
* @description:
* @ClassName BeanRechargeController
* @description: 金豆充值
* @author: Double
* @create: 202507-29 16:46
* @Version 1.0
@ -34,89 +36,331 @@ public class BeanRechargeController {
@Autowired
private BeanRechargeService beanRechargeService;
@Autowired
private LanguageTranslationUtil languageTranslationUtil;
@Autowired
private TranslationService translationService;
//添加金豆
@PostMapping("/add")
public Result add(@RequestBody BeanRecharge recharge) {
public Result add(@RequestBody BeanRecharge recharge, @RequestHeader(defaultValue = "zh_CN") String lang) {
try {
// 解析语言代码
String languageCode = parseLanguageCode(lang);
// 如果不是中文环境将查询条件中的翻译文本转换为中文简体
if (!"zh".equalsIgnoreCase(languageCode) && !"zh_cn".equalsIgnoreCase(languageCode)) {
convertTranslatedFieldsToChinese(recharge, languageCode);
}
return beanRechargeService.add(recharge);
} catch (Exception e) {
return Result.error("添加失败");
String errorMsg = languageTranslationUtil.translate("添加失败", lang);
return Result.error(errorMsg);
}
}
//系统充值
@PostMapping("/selectBySystem")
public Result selectBySystem(@RequestBody Page page) {
public Result selectBySystem(@RequestBody Page page, @RequestHeader(defaultValue = "zh_CN") String lang) {
try {
// 解析语言代码
String languageCode = parseLanguageCode(lang);
// 如果不是中文环境将查询条件中的翻译文本转换为中文简体
if (!"zh".equalsIgnoreCase(languageCode) && !"zh_cn".equalsIgnoreCase(languageCode)) {
convertTranslatedSystemFieldsToChinese(page.getBeanSystemRechargeInfo(), 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 {
return Result.success(beanRechargeService.selectBySystem(page.getPageNum(), page.getPageSize(), page.getBeanSystemRechargeInfo()));
Result result = Result.success(beanRechargeService.selectBySystem(page.getPageNum(), page.getPageSize(), page.getBeanSystemRechargeInfo()));
// 对返回结果进行多语言转换
if (result.getCode() == 200 && result.getData() instanceof com.github.pagehelper.PageInfo) {
com.github.pagehelper.PageInfo<BeanSystemRechargeInfo> pageInfo = (com.github.pagehelper.PageInfo<BeanSystemRechargeInfo>) result.getData();
translateBeanSystemRechargeInfos(pageInfo, lang);
}
return result;
}
} catch (Exception e) {
e.printStackTrace();
return Result.error("请检查筛选数据的格式");
String errorMsg = languageTranslationUtil.translate("请检查筛选数据的格式", lang);
return Result.error(errorMsg);
}
}
//系统金豆统计
@PostMapping("/statsSystemBean")
public Result statsSystemBean(@RequestBody BeanSystemRechargeInfo beanSystemRechargeInfo) {
public Result statsSystemBean(@RequestBody BeanSystemRechargeInfo beanSystemRechargeInfo, @RequestHeader(defaultValue = "zh_CN") String lang) {
try {
// 解析语言代码
String languageCode = parseLanguageCode(lang);
// 如果不是中文环境将查询条件中的翻译文本转换为中文简体
if (!"zh".equalsIgnoreCase(languageCode) && !"zh_cn".equalsIgnoreCase(languageCode)) {
convertTranslatedSystemFieldsToChinese(beanSystemRechargeInfo, languageCode);
}
GoldBean goldBean = beanRechargeService.statsSystemBean(beanSystemRechargeInfo);
return Result.success(goldBean);
} catch (Exception e) {
e.printStackTrace();
return Result.error("请检查数据的格式");
String errorMsg = languageTranslationUtil.translate("请检查数据的格式", lang);
return Result.error(errorMsg);
}
}
//获取系统充值地区
@PostMapping("/systemMarket")
public Result systemMarket()
{
List<String> list = beanRechargeService.systemMarket();
return Result.success(list);
public Result systemMarket(@RequestHeader(defaultValue = "zh_CN") String lang) {
try {
List<String> list = beanRechargeService.systemMarket();
// 解析语言代码
String languageCode = parseLanguageCode(lang);
// 如果不是中文环境先将翻译后的地区名称转换为中文简体进行处理
if (!"zh".equalsIgnoreCase(languageCode) && !"zh_cn".equalsIgnoreCase(languageCode)) {
convertTranslatedSystemMarketNamesToChinese(list, languageCode);
}
// 对地区名称进行多语言转换
translateSystemMarketNames(list, lang);
return Result.success(list);
} catch (Exception e) {
String errorMsg = languageTranslationUtil.translate("获取地区信息失败", lang);
return Result.error(errorMsg);
}
}
//线上充值
@PostMapping("/selectByOnline")
public Result selectByOnline(@RequestBody Page page) {
public Result selectByOnline(@RequestBody Page page, @RequestHeader(defaultValue = "zh_CN") String lang) {
try {
// 解析语言代码
String languageCode = parseLanguageCode(lang);
// 如果不是中文环境将查询条件中的翻译文本转换为中文简体
if (!"zh".equalsIgnoreCase(languageCode) && !"zh_cn".equalsIgnoreCase(languageCode)) {
convertTranslatedOnlineFieldsToChinese(page.getBeanOnlineRechargeInfo(), 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 {
return Result.success(beanRechargeService.selectByOnline(page.getPageNum(), page.getPageSize(), page.getBeanOnlineRechargeInfo()));
Result result = Result.success(beanRechargeService.selectByOnline(page.getPageNum(), page.getPageSize(), page.getBeanOnlineRechargeInfo()));
// 对返回结果进行多语言转换
if (result.getCode() == 200 && result.getData() instanceof com.github.pagehelper.PageInfo) {
com.github.pagehelper.PageInfo<BeanOnlineRechargeInfo> pageInfo = (com.github.pagehelper.PageInfo<BeanOnlineRechargeInfo>) result.getData();
translateBeanOnlineRechargeInfos(pageInfo, lang);
}
return result;
}
} catch (Exception e) {
e.printStackTrace();
return Result.error("请检查筛选数据的格式");
String errorMsg = languageTranslationUtil.translate("请检查筛选数据的格式", lang);
return Result.error(errorMsg);
}
}
//线上金豆统计
@PostMapping("/statsOnlineBean")
public Result statsOnlineBean(@RequestBody BeanOnlineRechargeInfo beanOnlineRechargeInfo) {
public Result statsOnlineBean(@RequestBody BeanOnlineRechargeInfo beanOnlineRechargeInfo, @RequestHeader(defaultValue = "zh_CN") String lang) {
try {
// 解析语言代码
String languageCode = parseLanguageCode(lang);
// 如果不是中文环境将查询条件中的翻译文本转换为中文简体
if (!"zh".equalsIgnoreCase(languageCode) && !"zh_cn".equalsIgnoreCase(languageCode)) {
convertTranslatedOnlineFieldsToChinese(beanOnlineRechargeInfo, languageCode);
}
GoldBean goldBean = beanRechargeService.statsOnlineBean(beanOnlineRechargeInfo);
return Result.success(goldBean);
} catch (Exception e) {
return Result.error("请检查数据的格式");
String errorMsg = languageTranslationUtil.translate("请检查数据的格式", lang);
return Result.error(errorMsg);
}
}
//获取线上充值地区
@PostMapping("/onlineMarket")
public Result onlineMarket()
{
List<String> list = beanRechargeService.onlineMarket();
return Result.success(list);
public Result onlineMarket(@RequestHeader(defaultValue = "zh_CN") String lang) {
try {
List<String> list = beanRechargeService.onlineMarket();
// 解析语言代码
String languageCode = parseLanguageCode(lang);
// 如果不是中文环境先将翻译后的地区名称转换为中文简体进行处理
if (!"zh".equalsIgnoreCase(languageCode) && !"zh_cn".equalsIgnoreCase(languageCode)) {
convertTranslatedOnlineMarketNamesToChinese(list, languageCode);
}
// 对地区名称进行多语言转换
translateOnlineMarketNames(list, lang);
return Result.success(list);
} catch (Exception e) {
String errorMsg = languageTranslationUtil.translate("获取地区信息失败", lang);
return Result.error(errorMsg);
}
}
/**
* 转换Bean系统充值信息的多语言字段
*/
private void translateBeanSystemRechargeInfos(com.github.pagehelper.PageInfo<BeanSystemRechargeInfo> pageInfo, String lang) {
if (pageInfo != null && pageInfo.getList() != null) {
for (BeanSystemRechargeInfo info : pageInfo.getList()) {
// 翻译市场名称
if (info.getMarket() != null) {
info.setMarket(languageTranslationUtil.translate(info.getMarket(), lang));
}
}
}
}
/**
* 转换Bean线上充值信息的多语言字段
*/
private void translateBeanOnlineRechargeInfos(com.github.pagehelper.PageInfo<BeanOnlineRechargeInfo> pageInfo, String lang) {
if (pageInfo != null && pageInfo.getList() != null) {
for (BeanOnlineRechargeInfo info : pageInfo.getList()) {
// 翻译市场名称
if (info.getMarket() != null) {
info.setMarket(languageTranslationUtil.translate(info.getMarket(), lang));
}
}
}
}
/**
* 转换系统市场名称为指定语言
*/
private void translateSystemMarketNames(List<String> marketNames, String lang) {
if (marketNames != null && !marketNames.isEmpty()) {
for (int i = 0; i < marketNames.size(); i++) {
String translatedName = languageTranslationUtil.translate(marketNames.get(i), lang);
marketNames.set(i, translatedName);
}
}
}
/**
* 转换线上市场名称为指定语言
*/
private void translateOnlineMarketNames(List<String> marketNames, String lang) {
if (marketNames != null && !marketNames.isEmpty()) {
for (int i = 0; i < marketNames.size(); i++) {
String translatedName = languageTranslationUtil.translate(marketNames.get(i), lang);
marketNames.set(i, translatedName);
}
}
}
/**
* 解析语言代码
*/
private String parseLanguageCode(String langHeader) {
if (langHeader == null || langHeader.isEmpty()) {
return "zh";
}
// 处理类似 "en-US" "zh-TW" 的情况
if (langHeader.contains("-")) {
String[] parts = langHeader.split("-");
// 特殊处理中文繁体
if ("zh".equalsIgnoreCase(parts[0]) && "TW".equalsIgnoreCase(parts[1])) {
return "zh_TW";
}
return parts[0].toLowerCase();
}
return langHeader.toLowerCase();
}
/**
* 将金豆充值查询条件中的翻译字段转换为中文简体
*/
private void convertTranslatedFieldsToChinese(BeanRecharge recharge, String languageCode) {
if (recharge != null) {
// 转换备注信息如果需要的话
if (recharge.getRemark() != null && !recharge.getRemark().isEmpty()) {
String chineseRemark = translationService.findChineseSimplifiedByTranslation(
recharge.getRemark(), languageCode);
recharge.setRemark(chineseRemark);
}
}
}
/**
* 将系统充值查询条件中的翻译字段转换为中文简体
*/
private void convertTranslatedSystemFieldsToChinese(BeanSystemRechargeInfo beanSystemRechargeInfo, String languageCode) {
if (beanSystemRechargeInfo != null) {
// 转换市场名称
if (beanSystemRechargeInfo.getMarket() != null && !beanSystemRechargeInfo.getMarket().isEmpty()) {
String chineseMarket = translationService.findChineseSimplifiedByTranslation(
beanSystemRechargeInfo.getMarket(), languageCode);
beanSystemRechargeInfo.setMarket(chineseMarket);
}
}
}
/**
* 将线上充值查询条件中的翻译字段转换为中文简体
*/
private void convertTranslatedOnlineFieldsToChinese(BeanOnlineRechargeInfo beanOnlineRechargeInfo, String languageCode) {
if (beanOnlineRechargeInfo != null) {
// 转换市场名称
if (beanOnlineRechargeInfo.getMarket() != null && !beanOnlineRechargeInfo.getMarket().isEmpty()) {
String chineseMarket = translationService.findChineseSimplifiedByTranslation(
beanOnlineRechargeInfo.getMarket(), languageCode);
beanOnlineRechargeInfo.setMarket(chineseMarket);
}
}
}
/**
* 将翻译后的系统市场名称转换为中文简体
*/
private void convertTranslatedSystemMarketNamesToChinese(List<String> marketNames, String languageCode) {
if (marketNames != null && !marketNames.isEmpty()) {
for (int i = 0; i < marketNames.size(); i++) {
String chineseName = translationService.findChineseSimplifiedByTranslation(
marketNames.get(i), languageCode);
marketNames.set(i, chineseName);
}
}
}
/**
* 将翻译后的线上市场名称转换为中文简体
*/
private void convertTranslatedOnlineMarketNamesToChinese(List<String> marketNames, String languageCode) {
if (marketNames != null && !marketNames.isEmpty()) {
for (int i = 0; i < marketNames.size(); i++) {
String chineseName = translationService.findChineseSimplifiedByTranslation(
marketNames.get(i), languageCode);
marketNames.set(i, chineseName);
}
}
}
}
}

203
src/main/java/com/example/demo/controller/bean/BeanUserController.java

@ -6,6 +6,8 @@ import com.example.demo.domain.vo.bean.BeanUserCard;
import com.example.demo.domain.vo.coin.Page;
import com.example.demo.domain.vo.coin.Result;
import com.example.demo.service.bean.BeanUserService;
import com.example.demo.Util.LanguageTranslationUtil;
import com.example.demo.service.coin.TranslationService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
@ -17,7 +19,7 @@ import java.util.List;
/**
* @program: gold-java
* @ClassName BeanUserController
* @description:
* @description: 金豆客户账户明细
* @author: Double
* @create: 202507-29 17:03
* @Version 1.0
@ -33,47 +35,212 @@ public class BeanUserController {
@Autowired
private BeanUserService beanUserService;
@Autowired
private LanguageTranslationUtil languageTranslationUtil;
@Autowired
private TranslationService translationService;
//查询用户卡片
@PostMapping("/userCard")
public Result userCard(@RequestBody BeanUserCard user) {
public Result userCard(@RequestBody BeanUserCard user, @RequestHeader(defaultValue = "zh_CN") String lang) {
try {
return beanUserService.userCard(user.getJwcode().toString());
// 解析语言代码
String languageCode = parseLanguageCode(lang);
// 如果不是中文环境将查询条件中的翻译文本转换为中文简体
if (!"zh".equalsIgnoreCase(languageCode) && !"zh_cn".equalsIgnoreCase(languageCode)) {
convertTranslatedUserFieldsToChinese(user, languageCode);
}
Result result = beanUserService.userCard(user.getJwcode().toString());
// 对返回结果进行多语言转换
if (result.getCode() == 200 && result.getData() instanceof BeanUserCard) {
BeanUserCard userCard = (BeanUserCard) result.getData();
if (userCard.getMarket() != null) {
userCard.setMarket(languageTranslationUtil.translate(userCard.getMarket(), lang));
}
}
return result;
} catch (Exception e) {
return Result.error("请检查输入精网号格式");
String errorMsg = languageTranslationUtil.translate("请检查输入精网号格式", lang);
return Result.error(errorMsg);
}
}
//客户金豆余额
@PostMapping("/userBean")
public Result userBean(@RequestBody Page page) {
public Result userBean(@RequestBody Page page, @RequestHeader(defaultValue = "zh_CN") String lang) {
try {
// 解析语言代码
String languageCode = parseLanguageCode(lang);
// 如果不是中文环境将查询条件中的翻译文本转换为中文简体
if (!"zh".equalsIgnoreCase(languageCode) && !"zh_cn".equalsIgnoreCase(languageCode)) {
convertTranslatedBeanUserFieldsToChinese(page.getBeanUser(), 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(beanUserService.selectUserBy(page.getPageNum(), page.getPageSize(), page.getBeanUser()));
// 对返回结果进行多语言转换
if (result.getCode() == 200 && result.getData() instanceof com.github.pagehelper.PageInfo) {
com.github.pagehelper.PageInfo<BeanUser> pageInfo = (com.github.pagehelper.PageInfo<BeanUser>) result.getData();
translateBeanUsers(pageInfo, lang);
}
return Result.success(beanUserService.selectUserBy(page.getPageNum(), page.getPageSize(), page.getBeanUser()));
return result;
}
} catch (Exception e) {
e.printStackTrace();
return Result.error(e.toString());
}}
//客户金币余额合计数
@PostMapping("/userBeanSum")
public Result userBeanSum(@RequestBody Page page) {
String errorMsg = languageTranslationUtil.translate("查询失败", lang);
return Result.error(errorMsg);
}
}
//客户金币余额合计数
@PostMapping("/userBeanSum")
public Result userBeanSum(@RequestBody Page page, @RequestHeader(defaultValue = "zh_CN") String lang) {
try {
// 解析语言代码
String languageCode = parseLanguageCode(lang);
// 如果不是中文环境将查询条件中的翻译文本转换为中文简体
if (!"zh".equalsIgnoreCase(languageCode) && !"zh_cn".equalsIgnoreCase(languageCode)) {
convertTranslatedBeanUserFieldsToChinese(page.getBeanUser(), languageCode);
}
Result result = Result.success(beanUserService.sumUserGold(page));
return Result.success(beanUserService.sumUserGold(page));
// 对返回结果进行多语言转换
if (result.getCode() == 200 && result.getData() instanceof BeanUserCard) {
BeanUserCard userCard = (BeanUserCard) result.getData();
// 此处可根据需要添加对合计数据的多语言处理
}
return result;
} catch (Exception e) {
String errorMsg = languageTranslationUtil.translate("查询合计数失败", lang);
return Result.error(errorMsg);
}
}
//查询客户分部
@PostMapping("/getDept")
public Result getDept() {
List<String> deptList = beanUserService.getDept();
return Result.success(deptList);
public Result getDept(@RequestHeader(defaultValue = "zh_CN") String lang) {
try {
List<String> deptList = beanUserService.getDept();
// 解析语言代码
String languageCode = parseLanguageCode(lang);
// 如果不是中文环境先将翻译后的分部名称转换为中文简体进行处理
if (!"zh".equalsIgnoreCase(languageCode) && !"zh_cn".equalsIgnoreCase(languageCode)) {
convertTranslatedDeptNamesToChinese(deptList, languageCode);
}
// 对分部名称进行多语言转换
translateDeptNames(deptList, lang);
return Result.success(deptList);
} catch (Exception e) {
String errorMsg = languageTranslationUtil.translate("获取分部信息失败", lang);
return Result.error(errorMsg);
}
}
}
/**
* 转换Bean用户信息的多语言字段
*/
private void translateBeanUsers(com.github.pagehelper.PageInfo<BeanUser> pageInfo, String lang) {
if (pageInfo != null && pageInfo.getList() != null) {
for (BeanUser user : pageInfo.getList()) {
// 翻译部门名称
if (user.getDept() != null) {
user.setDept(languageTranslationUtil.translate(user.getDept(), lang));
}
}
}
}
/**
* 转换分部名称为指定语言
*/
private void translateDeptNames(List<String> deptNames, String lang) {
if (deptNames != null && !deptNames.isEmpty()) {
for (int i = 0; i < deptNames.size(); i++) {
String translatedName = languageTranslationUtil.translate(deptNames.get(i), lang);
deptNames.set(i, translatedName);
}
}
}
/**
* 解析语言代码
*/
private String parseLanguageCode(String langHeader) {
if (langHeader == null || langHeader.isEmpty()) {
return "zh";
}
// 处理类似 "en-US" "zh-TW" 的情况
if (langHeader.contains("-")) {
String[] parts = langHeader.split("-");
// 特殊处理中文繁体
if ("zh".equalsIgnoreCase(parts[0]) && "TW".equalsIgnoreCase(parts[1])) {
return "zh_TW";
}
return parts[0].toLowerCase();
}
return langHeader.toLowerCase();
}
/**
* 将用户查询条件中的翻译字段转换为中文简体
*/
private void convertTranslatedUserFieldsToChinese(BeanUserCard user, String languageCode) {
if (user != null) {
// 转换部门信息
if (user.getMarket() != null && !user.getMarket().isEmpty()) {
String chineseMarket = translationService.findChineseSimplifiedByTranslation(
user.getMarket(), languageCode);
user.setMarket(chineseMarket);
}
}
}
/**
* 将Bean用户查询条件中的翻译字段转换为中文简体
*/
private void convertTranslatedBeanUserFieldsToChinese(BeanUser beanUser, String languageCode) {
if (beanUser != null) {
// 转换部门信息
if (beanUser.getDept() != null && !beanUser.getDept().isEmpty()) {
String chineseDept = translationService.findChineseSimplifiedByTranslation(
beanUser.getDept(), languageCode);
beanUser.setDept(chineseDept);
}
}
}
/**
* 将分部名称转换为中文简体
*/
private void convertTranslatedDeptNamesToChinese(List<String> deptNames, String languageCode) {
if (deptNames != null && !deptNames.isEmpty()) {
for (int i = 0; i < deptNames.size(); i++) {
String chineseName = translationService.findChineseSimplifiedByTranslation(
deptNames.get(i), languageCode);
deptNames.set(i, chineseName);
}
}
}
}

4
src/main/java/com/example/demo/controller/coin/WorkbenchController.java

@ -38,12 +38,8 @@ public class WorkbenchController {
private GeneralService generalService;
@Autowired
private StatisticsMapper statisticsMapper;
// 注入 TranslationService
@Autowired
private TranslationService translationService;
// 注入多语言转换工具类
@Autowired
private LanguageTranslationUtil languageTranslationUtil;

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

@ -199,7 +199,13 @@ public class ExportExcelServiceImpl implements ExportExcelService {
JsonNode beanConsumeLiveNode = requestDataNode.path("beanConsumeLive");
BeanConsumeLive beanConsumeLive = objectMapper.treeToValue(beanConsumeLiveNode, BeanConsumeLive.class);
page.setBeanConsumeLive(beanConsumeLive);
return beanConsumeController.selectLiveBy(page);
// 从请求数据中获取语言设置如果没有则使用默认值
String lang = "zh_CN";
JsonNode langNode = requestDataNode.path("lang");
if (langNode != null && !langNode.asText().isEmpty()) {
lang = langNode.asText();
}
return beanConsumeController.selectLiveBy(page, lang);
} catch (Exception e) {
throw new RuntimeException(e);
}
@ -215,7 +221,13 @@ public class ExportExcelServiceImpl implements ExportExcelService {
JsonNode beanConsumeFanNode = requestDataNode.path("beanConsumeFan");
BeanConsumeFan beanConsumeFan = objectMapper.treeToValue(beanConsumeFanNode, BeanConsumeFan.class);
page.setBeanConsumeFan(beanConsumeFan);
return beanConsumeController.selectFanBy(page);
// 从请求数据中获取语言设置如果没有则使用默认值
String lang = "zh_CN";
JsonNode langNode = requestDataNode.path("lang");
if (langNode != null && !langNode.asText().isEmpty()) {
lang = langNode.asText();
}
return beanConsumeController.selectFanBy(page, lang);
} catch (Exception e) {
throw new RuntimeException(e);
}
@ -231,7 +243,13 @@ public class ExportExcelServiceImpl implements ExportExcelService {
JsonNode beanConsumeArticleNode = requestDataNode.path("beanConsumeArticle");
BeanConsumeArticle beanConsumeArticle = objectMapper.treeToValue(beanConsumeArticleNode, BeanConsumeArticle.class);
page.setBeanConsumeArticle(beanConsumeArticle);
return beanConsumeController.selectArticleBy(page);
// 从请求数据中获取语言设置如果没有则使用默认值
String lang = "zh_CN";
JsonNode langNode = requestDataNode.path("lang");
if (langNode != null && !langNode.asText().isEmpty()) {
lang = langNode.asText();
}
return beanConsumeController.selectArticleBy(page, lang);
} catch (Exception e) {
throw new RuntimeException(e);
}
@ -247,7 +265,13 @@ public class ExportExcelServiceImpl implements ExportExcelService {
JsonNode beanRechargeNode = requestDataNode.path("beanSystemRechargeInfo");
BeanSystemRechargeInfo beanSystemRechargeInfo = objectMapper.treeToValue(beanRechargeNode, BeanSystemRechargeInfo.class);
page.setBeanSystemRechargeInfo(beanSystemRechargeInfo);
return beanRechargeController.selectBySystem(page);
// 从请求数据中获取语言设置如果没有则使用默认值
String lang = "zh_CN";
JsonNode langNode = requestDataNode.path("lang");
if (langNode != null && !langNode.asText().isEmpty()) {
lang = langNode.asText();
}
return beanRechargeController.selectBySystem(page, lang);
} catch (Exception e) {
throw new RuntimeException(e);
}
@ -263,7 +287,13 @@ public class ExportExcelServiceImpl implements ExportExcelService {
JsonNode beanRechargeNode = requestDataNode.path("beanOnlineRechargeInfo");
BeanOnlineRechargeInfo beanOnlineRechargeInfo = objectMapper.treeToValue(beanRechargeNode, BeanOnlineRechargeInfo.class);
page.setBeanOnlineRechargeInfo(beanOnlineRechargeInfo);
return beanRechargeController.selectByOnline(page);
// 从请求数据中获取语言设置如果没有则使用默认值
String lang = "zh_CN";
JsonNode langNode = requestDataNode.path("lang");
if (langNode != null && !langNode.asText().isEmpty()) {
lang = langNode.asText();
}
return beanRechargeController.selectByOnline(page, lang);
} catch (Exception e) {
throw new RuntimeException(e);
}
@ -279,7 +309,13 @@ public class ExportExcelServiceImpl implements ExportExcelService {
JsonNode beanRechargeNode = requestDataNode.path("cashRecordDTO");
CashRecordDTO cashRecordDTO = objectMapper.treeToValue(beanRechargeNode, CashRecordDTO.class);
page.setCashRecordDTO(cashRecordDTO);
return cashRefundController.export(page);
// 从请求数据中获取语言设置如果没有则使用默认值
String lang = "zh_CN";
JsonNode langNode = requestDataNode.path("lang");
if (langNode != null && !langNode.asText().isEmpty()) {
lang = langNode.asText();
}
return cashRefundController.export(page, lang);
} catch (Exception e) {
throw new RuntimeException(e);
}
@ -295,7 +331,13 @@ public class ExportExcelServiceImpl implements ExportExcelService {
JsonNode beanRechargeNode = requestDataNode.path("cashCollection");
CashCollection cashCollection = objectMapper.treeToValue(beanRechargeNode, CashCollection.class);
page.setCashCollection(cashCollection);
return cashCollectionController.export(page);
// 从请求数据中获取语言设置如果没有则使用默认值
String lang = "zh_CN";
JsonNode langNode = requestDataNode.path("lang");
if (langNode != null && !langNode.asText().isEmpty()) {
lang = langNode.asText();
}
return cashCollectionController.export(page, lang);
} catch (Exception e) {
throw new RuntimeException(e);
}

Loading…
Cancel
Save