Browse Source

12月11日现金管理多语言配置,权限管理,频道管理,活动管理的多语言配置

huangqizheng/feature-20260106155423-红包修改
wangguorui 1 month ago
parent
commit
bdcbc7300f
  1. 128
      src/main/java/com/example/demo/controller/coin/GeneralController.java
  2. 129
      src/main/java/com/example/demo/controller/coin/HistoryRecordController.java
  3. 283
      src/main/java/com/example/demo/controller/coin/PermissionController.java
  4. 228
      src/main/java/com/example/demo/controller/coin/RechargeActivityCenterController.java
  5. 325
      src/main/java/com/example/demo/controller/coin/RoleController.java

128
src/main/java/com/example/demo/controller/coin/GeneralController.java

@ -1,6 +1,5 @@
package com.example.demo.controller.coin;
import com.example.demo.config.interfac.Log;
import com.example.demo.domain.entity.Rate;
import com.example.demo.domain.vo.coin.AdminVo;
import com.example.demo.domain.vo.coin.Result;
@ -33,7 +32,6 @@ public class GeneralController {
@Autowired
private GeneralService generalService;
// 注入多语言转换工具类
@Autowired
private LanguageTranslationUtil languageTranslationUtil;
@ -42,47 +40,91 @@ public class GeneralController {
// @Log("获取全部地区")
@PostMapping("/market")
public Result getMarket()
{
public Result getMarket(@RequestHeader(defaultValue = "zh_CN") String lang) {
List<String> list = generalService.getMarket();
// 解析语言代码
String languageCode = parseLanguageCode(lang);
// 如果不是中文环境先将翻译后的地区名称转换为中文简体进行处理
if (!"zh".equalsIgnoreCase(languageCode) && !"zh_cn".equalsIgnoreCase(languageCode)) {
convertTranslatedMarketNamesToChinese(list, languageCode);
}
// 对地区名称进行多语言转换
translateMarketNames(list, lang);
return Result.success(list);
}
//获取用户地区权限列表
// @Log("获取用户地区权限列表")
@PostMapping("/adminMarkets")
public Result getAdminMarkets(@RequestBody AdminVo adminVo) throws Exception {
public Result getAdminMarkets(@RequestBody AdminVo adminVo, @RequestHeader(defaultValue = "zh_CN") String lang) throws Exception {
String account = adminVo.getAccount();
List<String> list = generalService.getAdminMarket(account);
// 解析语言代码
String languageCode = parseLanguageCode(lang);
// 如果不是中文环境先将翻译后的地区名称转换为中文简体进行处理
if (!"zh".equalsIgnoreCase(languageCode) && !"zh_cn".equalsIgnoreCase(languageCode)) {
convertTranslatedMarketNamesToChinese(list, languageCode);
}
// 对地区名称进行多语言转换
translateMarketNames(list, lang);
return Result.success(list);
}
//获取角色地区权限
// @Log("获取角色地区权限")
@PostMapping("/roleMarket")
public Result getroleMarkets(@RequestBody RoleVo roleVo) throws Exception {
public Result getroleMarkets(@RequestBody RoleVo roleVo, @RequestHeader(defaultValue = "zh_CN") String lang) throws Exception {
List<String> market = generalService.getRoleMarket(roleVo.getId());
// 解析语言代码
String languageCode = parseLanguageCode(lang);
// 如果不是中文环境先将翻译后的地区名称转换为中文简体进行处理
if (!"zh".equalsIgnoreCase(languageCode) && !"zh_cn".equalsIgnoreCase(languageCode)) {
convertTranslatedMarketNamesToChinese(market, languageCode);
}
// 对地区名称进行多语言转换
translateMarketNames(market, lang);
return Result.success(market);
}
//获取全部的角色地区
// @Log("获取全部的角色地区")
@PostMapping("/allRoleMarket")
public Result getAllRoleMarket(){
public Result getAllRoleMarket(@RequestHeader(defaultValue = "zh_CN") String lang) {
List<String> list = generalService.getAllRoleMarket();
// 解析语言代码
String languageCode = parseLanguageCode(lang);
// 如果不是中文环境先将翻译后的地区名称转换为中文简体进行处理
if (!"zh".equalsIgnoreCase(languageCode) && !"zh_cn".equalsIgnoreCase(languageCode)) {
convertTranslatedMarketNamesToChinese(list, languageCode);
}
// 对地区名称进行多语言转换
translateMarketNames(list, lang);
return Result.success(list);
}
// @Log("获取平台信息")
@PostMapping("/platform")
public Result getPlatform(@RequestHeader(defaultValue = "zh_CN") String lang)
{
public Result getPlatform() {
List<String> list = generalService.getPlatform();
// // 对平台名称进行多语言转换
// translatePlatformNames(list, lang);
return Result.success(list);
}
//获取商品名称
// @Log("获取商品名称")
@PostMapping("/goods")
public Result getGoods(@RequestHeader(defaultValue = "zh_CN") String lang)
{
public Result getGoods(@RequestHeader(defaultValue = "zh_CN") String lang) {
// 解析语言代码
String languageCode = parseLanguageCode(lang);
@ -97,20 +139,18 @@ public class GeneralController {
translateGoodsNames(list, lang);
return Result.success(list);
}
//获取活动名称
// @Log("获取活动名称")
@PostMapping("/activity")
public Result getActivity(@RequestHeader(defaultValue = "zh_CN") String lang)
{
public Result getActivity() {
List<String> list = generalService.getActivity();
// // 对活动名称进行多语言转换
// translateActivityNames(list, lang);
return Result.success(list);
}
//获取汇率
@PostMapping("/getRate")
public Result getRate(@RequestHeader(defaultValue = "zh_CN") String lang)
{
public Result getRate(@RequestHeader(defaultValue = "zh_CN") String lang) {
// 解析语言代码
String languageCode = parseLanguageCode(lang);
@ -134,6 +174,18 @@ public class GeneralController {
}
/**
* 转换地区名称为指定语言
*/
private void translateMarketNames(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 translateGoodsNames(List<String> goodsNames, String lang) {
@ -145,30 +197,6 @@ public class GeneralController {
}
}
// /**
// * 转换平台名称为指定语言
// */
// private void translatePlatformNames(List<String> platformNames, String lang) {
// if (platformNames != null && !platformNames.isEmpty()) {
// for (int i = 0; i < platformNames.size(); i++) {
// String translatedName = languageTranslationUtil.translate(platformNames.get(i), lang);
// platformNames.set(i, translatedName);
// }
// }
// }
// /**
// * 转换活动名称为指定语言
// */
// private void translateActivityNames(List<String> activityNames, String lang) {
// if (activityNames != null && !activityNames.isEmpty()) {
// for (int i = 0; i < activityNames.size(); i++) {
// String translatedName = languageTranslationUtil.translate(activityNames.get(i), lang);
// activityNames.set(i, translatedName);
// }
// }
// }
/**
* 转换汇率名称为指定语言
*/
@ -182,6 +210,7 @@ public class GeneralController {
}
}
}
/**
* 解析语言代码
*/
@ -229,4 +258,17 @@ public class GeneralController {
}
}
/**
* 将翻译后的地区名称转换为中文简体
*/
private void convertTranslatedMarketNamesToChinese(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);
}
}
}
}

129
src/main/java/com/example/demo/controller/coin/HistoryRecordController.java

@ -1,26 +1,20 @@
package com.example.demo.controller.coin;
import com.example.demo.Util.JWTUtil;
import com.example.demo.config.interfac.Log;
import com.example.demo.domain.entity.Admin;
import com.example.demo.domain.vo.coin.HistoryRecord;
import com.example.demo.domain.vo.coin.Page;
import com.example.demo.domain.vo.coin.Result;
import com.example.demo.service.coin.HistoryRecordService;
import jakarta.servlet.http.HttpServletRequest;
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;
import org.springframework.util.ObjectUtils;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import java.util.Arrays;
import java.util.List;
/**
* @program: gold-java
@ -40,54 +34,143 @@ public class HistoryRecordController {
@Autowired
private HistoryRecordService historyRecordService;
@Autowired
private LanguageTranslationUtil languageTranslationUtil;
@Autowired
private TranslationService translationService;
//获取旧的历史记录
@Log("获取旧的历史记录")
@RequestMapping("/getOldHistoryRecord")
public Result getOldHistoryRecord(@RequestBody HistoryRecord historyRecord){
public Result getOldHistoryRecord(@RequestBody HistoryRecord historyRecord, @RequestHeader(defaultValue = "zh_CN") String lang){
try {
// 解析语言代码
String languageCode = parseLanguageCode(lang);
// 如果不是中文环境将查询条件中的翻译文本转换为中文简体
if (!"zh".equalsIgnoreCase(languageCode) && !"zh_cn".equalsIgnoreCase(languageCode)) {
convertTranslatedFieldsToChinese();
}
//页码校验
if (ObjectUtils.isEmpty(historyRecord.getPageNum())) {
return Result.error("页码数为空!");
String errorMsg = languageTranslationUtil.translate("页码数为空!", lang);
return Result.error(errorMsg);
}
//页面大小校验
if (ObjectUtils.isEmpty(historyRecord.getPageSize())) {
return Result.error("页大小为空!");
String errorMsg = languageTranslationUtil.translate("页大小为空!", lang);
return Result.error(errorMsg);
}
if((historyRecord.getJwcode()==null|| historyRecord.getJwcode().isEmpty())&&(historyRecord.getName()==null|| historyRecord.getName().isEmpty())){
// return Result.success(historyRecordService.getOldHistoryRecord(historyRecord.getPageNum(), historyRecord.getPageSize(),historyRecord));
return Result.error("姓名,精网号不能都为空");
String errorMsg = languageTranslationUtil.translate("姓名,精网号不能都为空", lang);
return Result.error(errorMsg);
}
else {
return Result.success(historyRecordService.getOldHistoryRecord(historyRecord.getPageNum(), historyRecord.getPageSize(),historyRecord));
Result result = Result.success(historyRecordService.getOldHistoryRecord(historyRecord.getPageNum(), historyRecord.getPageSize(),historyRecord));
// 对返回结果进行多语言转换
if (result.getCode() == 200 && result.getData() instanceof com.github.pagehelper.PageInfo) {
com.github.pagehelper.PageInfo<HistoryRecord> pageInfo = (com.github.pagehelper.PageInfo<HistoryRecord>) result.getData();
translateHistoryRecords(pageInfo, lang);
}
return result;
}
} catch (Exception e) {
e.printStackTrace();
return Result.error(e.getMessage());
String errorMsg = languageTranslationUtil.translate("查询失败", lang);
return Result.error(errorMsg + ": " + e.getMessage());
}
}
//获取新的历史记录
@Log("获取新的历史记录")
@RequestMapping("/getNewHistoryRecord")
public Result getNewHistoryRecord(@RequestBody HistoryRecord historyRecord){
public Result getNewHistoryRecord(@RequestBody HistoryRecord historyRecord, @RequestHeader(defaultValue = "zh_CN") String lang){
try {
// 解析语言代码
String languageCode = parseLanguageCode(lang);
// 如果不是中文环境将查询条件中的翻译文本转换为中文简体
if (!"zh".equalsIgnoreCase(languageCode) && !"zh_cn".equalsIgnoreCase(languageCode)) {
convertTranslatedFieldsToChinese();
}
//页码校验
if (ObjectUtils.isEmpty(historyRecord.getPageNum())) {
return Result.error("页码数为空!");
String errorMsg = languageTranslationUtil.translate("页码数为空!", lang);
return Result.error(errorMsg);
}
//页面大小校验
if (ObjectUtils.isEmpty(historyRecord.getPageSize())) {
return Result.error("页大小为空!");
String errorMsg = languageTranslationUtil.translate("页大小为空!", lang);
return Result.error(errorMsg);
}
if((historyRecord.getJwcode()==null|| historyRecord.getJwcode().isEmpty())&&(historyRecord.getName()==null|| historyRecord.getName().isEmpty())){
// return Result.success(historyRecordService.getNewHistoryRecord(historyRecord.getPageNum(), historyRecord.getPageSize(),historyRecord));
return Result.error("姓名,精网号不能都为空");
String errorMsg = languageTranslationUtil.translate("姓名,精网号不能都为空", lang);
return Result.error(errorMsg);
}
else {
return Result.success(historyRecordService.getNewHistoryRecord(historyRecord.getPageNum(), historyRecord.getPageSize(),historyRecord));
Result result = Result.success(historyRecordService.getNewHistoryRecord(historyRecord.getPageNum(), historyRecord.getPageSize(),historyRecord));
// 对返回结果进行多语言转换
if (result.getCode() == 200 && result.getData() instanceof com.github.pagehelper.PageInfo) {
com.github.pagehelper.PageInfo<HistoryRecord> pageInfo = (com.github.pagehelper.PageInfo<HistoryRecord>) result.getData();
translateHistoryRecords(pageInfo, lang);
}
return result;
}
} catch (Exception e) {
e.printStackTrace();
return Result.error(e.getMessage());
String errorMsg = languageTranslationUtil.translate("查询失败", lang);
return Result.error(errorMsg + ": " + e.getMessage());
}
}
/**
* 转换历史记录的多语言字段
*/
private void translateHistoryRecords(com.github.pagehelper.PageInfo<HistoryRecord> pageInfo, String lang) {
if (pageInfo != null && pageInfo.getList() != null) {
for (HistoryRecord record : pageInfo.getList()) {
// 翻译更新类型
if (record.getUpdateType() != null) {
record.setUpdateType(languageTranslationUtil.translate(record.getUpdateType(), lang));
}
// 翻译备注
if (record.getRemark() != null) {
record.setRemark(languageTranslationUtil.translate(record.getRemark(), 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() {
}
}

283
src/main/java/com/example/demo/controller/coin/PermissionController.java

@ -1,6 +1,7 @@
package com.example.demo.controller.coin;
import com.example.demo.Util.JWTUtil;
import com.example.demo.Util.LanguageTranslationUtil;
import com.example.demo.config.interfac.Log;
import com.example.demo.domain.entity.Admin;
import com.example.demo.domain.entity.AdminRole;
@ -8,9 +9,11 @@ import com.example.demo.domain.vo.coin.AdminVo;
import com.example.demo.domain.vo.coin.Page;
import com.example.demo.domain.vo.coin.Result;
import com.example.demo.service.coin.PermissionService;
import com.example.demo.service.coin.TranslationService;
import jakarta.servlet.http.HttpServletRequest;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
@ -33,19 +36,55 @@ import java.util.List;
@CrossOrigin
public class PermissionController {
private final PermissionService permissionService;
// @Log("获取职位名称列表")
// 注入多语言转换工具类
@Autowired
private LanguageTranslationUtil languageTranslationUtil;
@Autowired
private TranslationService translationService;
// @Log("获取职位名称列表")
@PostMapping("/getposition")
public Result getposition(@RequestBody String token){
return Result.success(permissionService.getposition(token));
public Result getposition(@RequestBody String token, @RequestHeader(defaultValue = "zh_CN") String lang){
try {
List<String> positions = permissionService.getposition(token);
// 解析语言代码
String languageCode = parseLanguageCode(lang);
// 对职位名称进行多语言转换
translatePositions(positions, lang);
return Result.success(positions);
} catch (Exception e) {
String errorMsg = languageTranslationUtil.translate("获取职位列表失败", lang);
return Result.error(errorMsg);
}
}
// @Log("获取市场名称列表")
// @Log("获取市场名称列表")
@PostMapping("/getmarket")
public Result getmarket(@RequestBody String token){
return Result.success(permissionService.getmarket(token));
public Result getmarket(@RequestBody String token, @RequestHeader(defaultValue = "zh_CN") String lang){
try {
List<String> markets = permissionService.getmarket(token);
// 解析语言代码
String languageCode = parseLanguageCode(lang);
// 对市场名称进行多语言转换
translateMarkets(markets, lang);
return Result.success(markets);
} catch (Exception e) {
String errorMsg = languageTranslationUtil.translate("获取市场列表失败", lang);
return Result.error(errorMsg);
}
}
@Log("获取用户列表")
@PostMapping("/getPermission")
public Result getPermission(@RequestBody Page page){
public Result getPermission(@RequestBody Page page, @RequestHeader(defaultValue = "zh_CN") String lang){
try {
//解token权限
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
@ -56,58 +95,250 @@ public class PermissionController {
page.getPermission().setMarkets(list);
}
else{
return Result.error("角色为空");
String errorMsg = languageTranslationUtil.translate("角色为空", lang);
return Result.error(errorMsg);
}
Result result = Result.success(permissionService.getpermission(page.getPageNum(), page.getPageSize(), page.getPermission()));
// 对返回结果进行多语言转换
if (result.getCode() == 200 && result.getData() instanceof com.github.pagehelper.PageInfo) {
com.github.pagehelper.PageInfo<com.example.demo.domain.vo.coin.Permission> pageInfo =
(com.github.pagehelper.PageInfo<com.example.demo.domain.vo.coin.Permission>) result.getData();
translatePermissions(pageInfo, lang);
}
return result;
} catch (Exception e) {
e.printStackTrace();
return Result.error("获取地区失败");
String errorMsg = languageTranslationUtil.translate("获取地区失败", lang);
return Result.error(errorMsg);
}
return Result.success(permissionService.getpermission(page.getPageNum(), page.getPageSize(), page.getPermission()));
}
//新增用户
@Log("新增用户")
@PostMapping("/addPermission")
public Result addPermission(@RequestBody Admin admin) throws Exception {
// System.out.println( admin);
public Result addPermission(@RequestBody Admin admin, @RequestHeader(defaultValue = "zh_CN") String lang) throws Exception {
try {
return Result.success(permissionService.addpermission(admin));
// 解析语言代码
String languageCode = parseLanguageCode(lang);
// 如果不是中文环境将查询条件中的翻译文本转换为中文简体
if (!"zh".equalsIgnoreCase(languageCode) && !"zh_cn".equalsIgnoreCase(languageCode)) {
convertTranslatedAdminFieldsToChinese(admin, languageCode);
}
Integer result = permissionService.addpermission(admin);
String successMsg = languageTranslationUtil.translate("添加成功", lang);
return Result.success(successMsg);
}
catch (Exception e) {
log.error(Arrays.toString(e.getStackTrace()));
return Result.error(e.getMessage());
log.error(Arrays.toString(e.getStackTrace()));
String errorMsg = languageTranslationUtil.translate(e.getMessage(), lang);
return Result.error(errorMsg);
}
}
//编辑用户
@Log("编辑用户")
@PostMapping("/updateAdmin")
public Result updateAdmin(@RequestBody AdminVo adminVo) throws Exception {
public Result updateAdmin(@RequestBody AdminVo adminVo, @RequestHeader(defaultValue = "zh_CN") String lang) throws Exception {
try {
return Result.success(permissionService.updateAdmin(adminVo));
// 解析语言代码
String languageCode = parseLanguageCode(lang);
// 如果不是中文环境将查询条件中的翻译文本转换为中文简体
if (!"zh".equalsIgnoreCase(languageCode) && !"zh_cn".equalsIgnoreCase(languageCode)) {
convertTranslatedAdminVoFieldsToChinese(adminVo, languageCode);
}
Result result = permissionService.updateAdmin(adminVo);
String successMsg = languageTranslationUtil.translate("更新成功", lang);
return Result.success(successMsg);
}
catch (Exception e) {
log.error(Arrays.toString(e.getStackTrace()));
return Result.error(e.getMessage());
String errorMsg = languageTranslationUtil.translate(e.getMessage(), lang);
return Result.error(errorMsg);
}
}
@Log("获取角色列表")
@PostMapping("/getRole")
public Result getRole(@RequestBody String token){
return Result.success(permissionService.getRole(token));
public Result getRole(@RequestBody String token, @RequestHeader(defaultValue = "zh_CN") String lang){
try {
List<com.example.demo.domain.entity.Role> roles = permissionService.getRole(token);
// 解析语言代码
String languageCode = parseLanguageCode(lang);
// 对角色名称进行多语言转换
translateRoles(roles, lang);
return Result.success(roles);
} catch (Exception e) {
String errorMsg = languageTranslationUtil.translate("获取角色列表失败", lang);
return Result.error(errorMsg);
}
}
@Log("删除用户")
@PostMapping("/deleteAdmin")
public Result deleteAdmin(@RequestBody Admin admin){
return Result.success(permissionService.deleteAdmin(admin.getId()));
public Result deleteAdmin(@RequestBody Admin admin, @RequestHeader(defaultValue = "zh_CN") String lang){
try {
Integer result = permissionService.deleteAdmin(admin.getId());
String successMsg = languageTranslationUtil.translate("删除成功", lang);
return Result.success(successMsg);
} catch (Exception e) {
String errorMsg = languageTranslationUtil.translate("删除失败", lang);
return Result.error(errorMsg);
}
}
@Log("更新用户角色")
@PostMapping("/updateAdminRole")
public Result updateAdminRole(@RequestBody AdminRole adminrole){
return Result.success(permissionService.updateAdminRole(adminrole));
public Result updateAdminRole(@RequestBody AdminRole adminrole, @RequestHeader(defaultValue = "zh_CN") String lang){
try {
Integer result = permissionService.updateAdminRole(adminrole);
String successMsg = languageTranslationUtil.translate("更新成功", lang);
return Result.success(successMsg);
} catch (Exception e) {
String errorMsg = languageTranslationUtil.translate("更新失败", lang);
return Result.error(errorMsg);
}
}
@Log("更新用户权限")
@PostMapping("/upadatePermission")
public Result upadatePermission(@RequestBody Admin admin) throws Exception {
return Result.success(permissionService.upadatePermission(admin));
public Result upadatePermission(@RequestBody Admin admin, @RequestHeader(defaultValue = "zh_CN") String lang) throws Exception {
try {
Integer result = permissionService.upadatePermission(admin);
String successMsg = languageTranslationUtil.translate("更新成功", lang);
return Result.success(successMsg);
} catch (Exception e) {
String errorMsg = languageTranslationUtil.translate("更新失败", lang);
return Result.error(errorMsg);
}
}
/**
* 转换权限列表的多语言字段
*/
private void translatePermissions(com.github.pagehelper.PageInfo<com.example.demo.domain.vo.coin.Permission> pageInfo, String lang) {
if (pageInfo != null && pageInfo.getList() != null) {
for (com.example.demo.domain.vo.coin.Permission permission : pageInfo.getList()) {
// 翻译市场名称
if (permission.getMarket() != null) {
permission.setMarket(languageTranslationUtil.translate(permission.getMarket(), lang));
}
// 翻译职位
if (permission.getPostiton() != null) {
permission.setPostiton(languageTranslationUtil.translate(permission.getPostiton(), lang));
}
// 翻译角色名称
if (permission.getRoleName() != null) {
permission.setRoleName(languageTranslationUtil.translate(permission.getRoleName(), lang));
}
}
}
}
/**
* 转换职位名称为指定语言
*/
private void translatePositions(List<String> positions, String lang) {
if (positions != null && !positions.isEmpty()) {
for (int i = 0; i < positions.size(); i++) {
String translatedName = languageTranslationUtil.translate(positions.get(i), lang);
positions.set(i, translatedName);
}
}
}
/**
* 转换市场名称为指定语言
*/
private void translateMarkets(List<String> markets, String lang) {
if (markets != null && !markets.isEmpty()) {
for (int i = 0; i < markets.size(); i++) {
String translatedName = languageTranslationUtil.translate(markets.get(i), lang);
markets.set(i, translatedName);
}
}
}
/**
* 转换角色名称为指定语言
*/
private void translateRoles(List<com.example.demo.domain.entity.Role> roles, String lang) {
if (roles != null && !roles.isEmpty()) {
for (com.example.demo.domain.entity.Role role : roles) {
if (role.getRoleName() != null) {
role.setRoleName(languageTranslationUtil.translate(role.getRoleName(), 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 convertTranslatedAdminFieldsToChinese(Admin admin, String languageCode) {
if (admin != null) {
// 转换职位
if (admin.getPostiton() != null && !admin.getPostiton().isEmpty()) {
String chinesePosition = translationService.findChineseSimplifiedByTranslation(
admin.getPostiton(), languageCode);
admin.setPostiton(chinesePosition);
}
// 转换备注
if (admin.getRemark() != null && !admin.getRemark().isEmpty()) {
String chineseRemark = translationService.findChineseSimplifiedByTranslation(
admin.getRemark(), languageCode);
admin.setRemark(chineseRemark);
}
}
}
/**
* 将管理员VO查询条件中的翻译字段转换为中文简体
*/
private void convertTranslatedAdminVoFieldsToChinese(AdminVo adminVo, String languageCode) {
if (adminVo != null) {
// 转换职位
if (adminVo.getPostiton() != null && !adminVo.getPostiton().isEmpty()) {
String chinesePosition = translationService.findChineseSimplifiedByTranslation(
adminVo.getPostiton(), languageCode);
adminVo.setPostiton(chinesePosition);
}
// 转换备注
if (adminVo.getRemark() != null && !adminVo.getRemark().isEmpty()) {
String chineseRemark = translationService.findChineseSimplifiedByTranslation(
adminVo.getRemark(), languageCode);
adminVo.setRemark(chineseRemark);
}
}
}
}

228
src/main/java/com/example/demo/controller/coin/RechargeActivityCenterController.java

@ -5,6 +5,8 @@ import com.example.demo.domain.vo.coin.Page;
import com.example.demo.domain.vo.coin.RechargeActivity;
import com.example.demo.domain.vo.coin.Result;
import com.example.demo.service.coin.RechargeActivityCenterService;
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;
@ -32,6 +34,12 @@ public class RechargeActivityCenterController {
@Autowired
private RechargeActivityCenterService rechargeActivityCenterService;
// 注入多语言转换工具类
@Autowired
private LanguageTranslationUtil languageTranslationUtil;
@Autowired
private TranslationService translationService;
/**
* 导出用户权限数据
@ -43,25 +51,47 @@ public class RechargeActivityCenterController {
*/
@Log("条件查询充值活动")
@PostMapping("/queryActivity")
public Result queryActivity(@RequestBody Page page) {
public Result queryActivity(@RequestBody Page page, @RequestHeader(defaultValue = "zh_CN") String lang) {
try {
// 解析语言代码
String languageCode = parseLanguageCode(lang);
// 如果不是中文环境将查询条件中的翻译文本转换为中文简体
if (!"zh".equalsIgnoreCase(languageCode) && !"zh_cn".equalsIgnoreCase(languageCode)) {
convertTranslatedQueryFieldsToChinese(page.getRechargeActivity(), 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);
}
if (page.getRechargeActivity() == null) {
return Result.error("查询失败:活动信息不能为空");
String errorMsg = languageTranslationUtil.translate("查询失败:活动信息不能为空", lang);
return Result.error(errorMsg);
}
return Result.success(rechargeActivityCenterService.queryActivity(page.getPageNum(), page.getPageSize(),page.getRechargeActivity()));
Result result = Result.success(rechargeActivityCenterService.queryActivity(page.getPageNum(), page.getPageSize(), page.getRechargeActivity()));
// 对返回结果进行多语言转换
if (result.getCode() == 200 && result.getData() instanceof com.github.pagehelper.PageInfo) {
com.github.pagehelper.PageInfo<RechargeActivity> pageInfo = (com.github.pagehelper.PageInfo<RechargeActivity>) result.getData();
translateRechargeActivities(pageInfo, lang);
}
return result;
} catch (NullPointerException e) {
log.error("查询活动失败:空指针异常", e);
return Result.error("查询失败:数据为空");
String errorMsg = languageTranslationUtil.translate("查询失败:数据为空", lang);
return Result.error(errorMsg);
} catch (IllegalArgumentException e) {
log.error("查询活动失败:参数异常", e);
return Result.error("查询失败:" + e.getMessage());
String errorMsg = languageTranslationUtil.translate("查询失败:" + e.getMessage(), lang);
return Result.error(errorMsg);
}
}
@ -75,41 +105,60 @@ public class RechargeActivityCenterController {
*/
@Log("新增充值活动")
@PostMapping("/addActivity")
public Result addActivity(@RequestBody RechargeActivity activity) {
public Result addActivity(@RequestBody RechargeActivity activity, @RequestHeader(defaultValue = "zh_CN") String lang) {
try {
// 解析语言代码
String languageCode = parseLanguageCode(lang);
// 如果不是中文环境将查询条件中的翻译文本转换为中文简体
if (!"zh".equalsIgnoreCase(languageCode) && !"zh_cn".equalsIgnoreCase(languageCode)) {
convertTranslatedActivityFieldsToChinese(activity, languageCode);
}
if (activity == null) {
return Result.error("添加失败:活动信息不能为空");
String errorMsg = languageTranslationUtil.translate("添加失败:活动信息不能为空", lang);
return Result.error(errorMsg);
}
if (activity.getActivityName() == null || activity.getActivityName().trim().isEmpty()) {
return Result.error("添加失败:活动名称不能为空");
String errorMsg = languageTranslationUtil.translate("添加失败:活动名称不能为空", lang);
return Result.error(errorMsg);
}
if (activity.getBusinessBelong() == null || activity.getBusinessBelong().trim().isEmpty()) {
return Result.error("添加失败:业绩归属地不能为空");
String errorMsg = languageTranslationUtil.translate("添加失败:业绩归属地不能为空", lang);
return Result.error(errorMsg);
}else if (activity.getBusinessBelong().equals("活动归属地")) {
if (activity.getArea() == null || activity.getArea().trim().isEmpty()) {
return Result.error("添加失败:地区不能为空");
String errorMsg = languageTranslationUtil.translate("添加失败:地区不能为空", lang);
return Result.error(errorMsg);
}
}
if (activity.getStartTime() == null) {
return Result.error("添加失败:活动开始时间不能为空");
String errorMsg = languageTranslationUtil.translate("添加失败:活动开始时间不能为空", lang);
return Result.error(errorMsg);
}
if (activity.getEndTime() == null) {
return Result.error("添加失败:活动结束时间不能为空");
String errorMsg = languageTranslationUtil.translate("添加失败:活动结束时间不能为空", lang);
return Result.error(errorMsg);
}
if (activity.getEndTime().before(activity.getStartTime())) {
return Result.error("添加失败:活动结束时间必须晚于活动开始时间");
String errorMsg = languageTranslationUtil.translate("添加失败:活动结束时间必须晚于活动开始时间", lang);
return Result.error(errorMsg);
}
if (activity.getCreator() == null || activity.getCreator().trim().isEmpty()) {
return Result.error("添加失败:添加人不能为空");
String errorMsg = languageTranslationUtil.translate("添加失败:添加人不能为空", lang);
return Result.error(errorMsg);
}
rechargeActivityCenterService.addActivity(activity);
return Result.success("添加活动成功");
String successMsg = languageTranslationUtil.translate("添加活动成功", lang);
return Result.success(successMsg);
} catch (NullPointerException e) {
log.error("添加活动失败:空指针异常", e);
return Result.error("添加失败:数据为空");
String errorMsg = languageTranslationUtil.translate("添加失败:数据为空", lang);
return Result.error(errorMsg);
} catch (IllegalArgumentException e) {
log.error("添加活动失败:参数异常", e);
return Result.error("添加失败:" + e.getMessage());
String errorMsg = languageTranslationUtil.translate("添加失败:" + e.getMessage(), lang);
return Result.error(errorMsg);
}
}
@ -123,44 +172,64 @@ public class RechargeActivityCenterController {
*/
@Log("更新充值活动")
@PostMapping("/updateActivity")
public Result updateActivity(@RequestBody RechargeActivity activity) {
public Result updateActivity(@RequestBody RechargeActivity activity, @RequestHeader(defaultValue = "zh_CN") String lang) {
try {
// 解析语言代码
String languageCode = parseLanguageCode(lang);
// 如果不是中文环境将查询条件中的翻译文本转换为中文简体
if (!"zh".equalsIgnoreCase(languageCode) && !"zh_cn".equalsIgnoreCase(languageCode)) {
convertTranslatedActivityFieldsToChinese(activity, languageCode);
}
if (activity == null) {
return Result.error("添加失败:活动信息不能为空");
String errorMsg = languageTranslationUtil.translate("添加失败:活动信息不能为空", lang);
return Result.error(errorMsg);
}
if (activity.getId() == null) {
return Result.error("添加失败:活动ID不能为空");
String errorMsg = languageTranslationUtil.translate("添加失败:活动ID不能为空", lang);
return Result.error(errorMsg);
}
if (activity.getActivityName() == null || activity.getActivityName().trim().isEmpty()) {
return Result.error("添加失败:活动名称不能为空");
String errorMsg = languageTranslationUtil.translate("添加失败:活动名称不能为空", lang);
return Result.error(errorMsg);
}
if (activity.getBusinessBelong() == null || activity.getBusinessBelong().trim().isEmpty()) {
return Result.error("添加失败:业绩归属地不能为空");
String errorMsg = languageTranslationUtil.translate("添加失败:业绩归属地不能为空", lang);
return Result.error(errorMsg);
}else if (activity.getBusinessBelong().equals("活动归属地")) {
if (activity.getArea() == null || activity.getArea().trim().isEmpty()) {
return Result.error("添加失败:地区不能为空");
String errorMsg = languageTranslationUtil.translate("添加失败:地区不能为空", lang);
return Result.error(errorMsg);
}
}
if (activity.getStartTime() == null) {
return Result.error("添加失败:活动开始时间不能为空");
String errorMsg = languageTranslationUtil.translate("添加失败:活动开始时间不能为空", lang);
return Result.error(errorMsg);
}
if (activity.getEndTime() == null) {
return Result.error("添加失败:活动结束时间不能为空");
String errorMsg = languageTranslationUtil.translate("添加失败:活动结束时间不能为空", lang);
return Result.error(errorMsg);
}
if (activity.getEndTime().before(activity.getStartTime())) {
return Result.error("添加失败:活动结束时间必须晚于活动开始时间");
String errorMsg = languageTranslationUtil.translate("添加失败:活动结束时间必须晚于活动开始时间", lang);
return Result.error(errorMsg);
}
if (activity.getCreator() == null || activity.getCreator().trim().isEmpty()) {
return Result.error("添加失败:添加人不能为空");
String errorMsg = languageTranslationUtil.translate("添加失败:添加人不能为空", lang);
return Result.error(errorMsg);
}
rechargeActivityCenterService.updateActivity(activity);
return Result.success("更新活动成功");
String successMsg = languageTranslationUtil.translate("更新活动成功", lang);
return Result.success(successMsg);
} catch (NullPointerException e) {
log.error("更新活动失败:空指针异常", e);
return Result.error("更新失败:数据为空");
String errorMsg = languageTranslationUtil.translate("更新失败:数据为空", lang);
return Result.error(errorMsg);
} catch (IllegalArgumentException e) {
log.error("更新活动失败:参数异常", e);
return Result.error("更新失败:" + e.getMessage());
String errorMsg = languageTranslationUtil.translate("更新失败:" + e.getMessage(), lang);
return Result.error(errorMsg);
}
}
@ -174,19 +243,102 @@ public class RechargeActivityCenterController {
*/
@Log("删除充值活动")
@PostMapping("/deleteActivity")
public Result deleteActivity(@RequestBody RechargeActivity activity) {
public Result deleteActivity(@RequestBody RechargeActivity activity, @RequestHeader(defaultValue = "zh_CN") String lang) {
try {
if (activity.getId() == null) {
return Result.error("删除失败:活动ID不能为空");
String errorMsg = languageTranslationUtil.translate("删除失败:活动ID不能为空", lang);
return Result.error(errorMsg);
}
rechargeActivityCenterService.deleteActivity(activity);
return Result.success("删除活动成功");
String successMsg = languageTranslationUtil.translate("删除活动成功", lang);
return Result.success(successMsg);
} catch (NullPointerException e) {
log.error("删除活动失败:空指针异常", e);
return Result.error("删除失败:数据为空");
String errorMsg = languageTranslationUtil.translate("删除失败:数据为空", lang);
return Result.error(errorMsg);
} catch (IllegalArgumentException e) {
log.error("删除活动失败:参数异常", e);
return Result.error("删除失败:" + e.getMessage());
String errorMsg = languageTranslationUtil.translate("删除失败:" + e.getMessage(), lang);
return Result.error(errorMsg);
}
}
/**
* 转换充值活动的多语言字段
*/
private void translateRechargeActivities(com.github.pagehelper.PageInfo<RechargeActivity> pageInfo, String lang) {
if (pageInfo != null && pageInfo.getList() != null) {
for (RechargeActivity activity : pageInfo.getList()) {
// 翻译业务归属
if (activity.getBusinessBelong() != null) {
activity.setBusinessBelong(languageTranslationUtil.translate(activity.getBusinessBelong(), lang));
}
// 翻译地区名称
if (activity.getAreaName() != null) {
activity.setAreaName(languageTranslationUtil.translate(activity.getAreaName(), 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 convertTranslatedQueryFieldsToChinese(RechargeActivity activity, String languageCode) {
if (activity != null) {
// 转换业务归属
if (activity.getBusinessBelong() != null && !activity.getBusinessBelong().isEmpty()) {
String chineseBelong = translationService.findChineseSimplifiedByTranslation(
activity.getBusinessBelong(), languageCode);
activity.setBusinessBelong(chineseBelong);
}
// 转换地区
if (activity.getAreaName() != null && !activity.getAreaName().isEmpty()) {
String chineseArea = translationService.findChineseSimplifiedByTranslation(
activity.getAreaName(), languageCode);
activity.setAreaName(chineseArea);
}
}
}
/**
* 将活动字段中的翻译字段转换为中文简体
*/
private void convertTranslatedActivityFieldsToChinese(RechargeActivity activity, String languageCode) {
if (activity != null) {
// 转换业务归属
if (activity.getBusinessBelong() != null && !activity.getBusinessBelong().isEmpty()) {
String chineseBelong = translationService.findChineseSimplifiedByTranslation(
activity.getBusinessBelong(), languageCode);
activity.setBusinessBelong(chineseBelong);
}
// 转换地区
if (activity.getArea() != null && !activity.getArea().isEmpty()) {
String chineseArea = translationService.findChineseSimplifiedByTranslation(
activity.getArea(), languageCode);
activity.setArea(chineseArea);
}
}
}
}
}

325
src/main/java/com/example/demo/controller/coin/RoleController.java

@ -1,12 +1,14 @@
package com.example.demo.controller.coin;
import com.example.demo.Util.JWTUtil;
import com.example.demo.Util.LanguageTranslationUtil;
import com.example.demo.config.interfac.Log;
import com.example.demo.domain.entity.Admin;
import com.example.demo.domain.vo.coin.Page;
import com.example.demo.domain.vo.coin.Result;
import com.example.demo.domain.vo.coin.RoleVo;
import com.example.demo.service.coin.RoleService;
import com.example.demo.service.coin.TranslationService;
import jakarta.servlet.http.HttpServletRequest;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@ -38,63 +40,163 @@ public class RoleController {
@Autowired
private RoleService roleService;
// 注入多语言转换工具类
@Autowired
private LanguageTranslationUtil languageTranslationUtil;
@Autowired
private TranslationService translationService;
//新增角色
@Log("新增角色")
@PostMapping("/add")
public Result addRole(@RequestBody RoleVo roleVo) {
public Result addRole(@RequestBody RoleVo roleVo, @RequestHeader(defaultValue = "zh_CN") String lang) {
try {
// 解析语言代码
String languageCode = parseLanguageCode(lang);
// 如果不是中文环境将查询条件中的翻译文本转换为中文简体
if (!"zh".equalsIgnoreCase(languageCode) && !"zh_cn".equalsIgnoreCase(languageCode)) {
convertTranslatedRoleFieldsToChinese(roleVo, languageCode);
}
return roleService.addRole(roleVo);
Result result = roleService.addRole(roleVo);
// 对返回结果进行多语言转换
if (result.getCode() == 200) {
String successMsg = languageTranslationUtil.translate("创建成功", lang);
return Result.success(successMsg);
} else {
String errorMsg = languageTranslationUtil.translate(result.getMsg(), lang);
return Result.error(errorMsg);
}
} catch (Exception e) {
String errorMsg = languageTranslationUtil.translate("添加失败", lang);
return Result.error(errorMsg);
}
}
//新增角色二期替补
@Log("新增角色二期替补")
@PostMapping("/add2")
public Result addRole2(@RequestBody RoleVo roleVo) {
public Result addRole2(@RequestBody RoleVo roleVo, @RequestHeader(defaultValue = "zh_CN") String lang) {
try {
// 解析语言代码
String languageCode = parseLanguageCode(lang);
// 如果不是中文环境将查询条件中的翻译文本转换为中文简体
if (!"zh".equalsIgnoreCase(languageCode) && !"zh_cn".equalsIgnoreCase(languageCode)) {
convertTranslatedRoleFieldsToChinese(roleVo, languageCode);
}
return roleService.addRole2(roleVo);
Result result = roleService.addRole2(roleVo);
// 对返回结果进行多语言转换
if (result.getCode() == 200) {
String successMsg = languageTranslationUtil.translate("创建成功", lang);
return Result.success(successMsg);
} else {
String errorMsg = languageTranslationUtil.translate(result.getMsg(), lang);
return Result.error(errorMsg);
}
} catch (Exception e) {
String errorMsg = languageTranslationUtil.translate("添加失败", lang);
return Result.error(errorMsg);
}
}
//删除角色
@Log("删除角色")
@PostMapping("/delete")
public Result deleteRole(@RequestBody RoleVo roleVo) {
public Result deleteRole(@RequestBody RoleVo roleVo, @RequestHeader(defaultValue = "zh_CN") String lang) {
try {
Result result = roleService.deleteRole(roleVo);
return roleService.deleteRole(roleVo);
// 对返回结果进行多语言转换
if (result.getCode() == 200) {
String successMsg = languageTranslationUtil.translate("删除成功", lang);
return Result.success(successMsg);
} else {
String errorMsg = languageTranslationUtil.translate(result.getMsg(), lang);
return Result.error(errorMsg);
}
} catch (Exception e) {
String errorMsg = languageTranslationUtil.translate("删除失败", lang);
return Result.error(errorMsg);
}
}
//查找全部角色
@Log("查询全部角色")
@PostMapping("/selectAll")
public Result selectRole() {
return roleService.selectAllRole();
public Result selectRole(@RequestHeader(defaultValue = "zh_CN") String lang) {
try {
Result result = roleService.selectAllRole();
// 对返回结果进行多语言转换
if (result.getCode() == 200 && result.getData() instanceof List) {
List<RoleVo> roleList = (List<RoleVo>) result.getData();
translateRoleList(roleList, lang);
}
return result;
} catch (Exception e) {
String errorMsg = languageTranslationUtil.translate("查找失败", lang);
return Result.error(errorMsg);
}
}
//获取上级角色的下属角色列表
@Log("获取当前角色的下属角色列表")
@PostMapping("/selectSub")
public Result selectSub(@RequestBody RoleVo roleVo) {
Integer id = roleVo.getId();
List<RoleVo> list=roleService.selectSubRole(id);
return Result.success(list);
public Result selectSub(@RequestBody RoleVo roleVo, @RequestHeader(defaultValue = "zh_CN") String lang) {
try {
Integer id = roleVo.getId();
List<RoleVo> list = roleService.selectSubRole(id);
// 对返回结果进行多语言转换
translateRoleList(list, lang);
return Result.success(list);
} catch (Exception e) {
String errorMsg = languageTranslationUtil.translate("查询失败", lang);
return Result.error(errorMsg);
}
}
//获取当前角色的上级角色
// @Log("获取当前角色的上级角色")
@PostMapping("/selectFather")
public Result selectFather(@RequestBody RoleVo roleVo) {
Integer id = roleVo.getId();
RoleVo role = roleService.selectFather(id);
return Result.success(role);
public Result selectFather(@RequestBody RoleVo roleVo, @RequestHeader(defaultValue = "zh_CN") String lang) {
try {
Integer id = roleVo.getId();
RoleVo role = roleService.selectFather(id);
// 对返回结果进行多语言转换
if (role != null) {
translateSingleRole(role, lang);
}
return Result.success(role);
} catch (Exception e) {
String errorMsg = languageTranslationUtil.translate("查询失败", lang);
return Result.error(errorMsg);
}
}
//角色明细筛选
@Log("角色明细筛选")
@PostMapping("/selectBy")
public Result selectBy(@RequestBody Page page) {
public Result selectBy(@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 {
//解token权限
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
@ -103,33 +205,198 @@ public class RoleController {
if (admin != null) {
List<String> list = Arrays.asList(admin.getMarkets().split(","));
page.getRoleVo().setMarkets(list);
// 解析语言代码
String languageCode = parseLanguageCode(lang);
// 如果不是中文环境将查询条件中的翻译文本转换为中文简体
if (!"zh".equalsIgnoreCase(languageCode) && !"zh_cn".equalsIgnoreCase(languageCode)) {
convertTranslatedRoleVoFieldsToChinese(page.getRoleVo(), languageCode);
}
}
else{
return Result.error("角色为空");
String errorMsg = languageTranslationUtil.translate("角色为空", lang);
return Result.error(errorMsg);
}
return Result.success(roleService.selectBy(page.getPageNum(), page.getPageSize(), page.getRoleVo()));
Result result = Result.success(roleService.selectBy(page.getPageNum(), page.getPageSize(), page.getRoleVo()));
// 对返回结果进行多语言转换
if (result.getCode() == 200 && result.getData() instanceof com.github.pagehelper.PageInfo) {
com.github.pagehelper.PageInfo<RoleVo> pageInfo = (com.github.pagehelper.PageInfo<RoleVo>) result.getData();
translateRolePageInfo(pageInfo, lang);
}
return result;
}
} catch (Exception e) {
e.printStackTrace();
return Result.error(e.getMessage());
String errorMsg = languageTranslationUtil.translate("查询失败", lang);
return Result.error(errorMsg);
}
}
//查询所有直播渠道
@PostMapping("/getChannel")
public Result getChannel(){
return Result.success(roleService.getChannel());
public Result getChannel(@RequestHeader(defaultValue = "zh_CN") String lang){
try {
List<String> channels = roleService.getChannel();
// 解析语言代码
String languageCode = parseLanguageCode(lang);
// 对频道名称进行多语言转换
translateChannels(channels, lang);
return Result.success(channels);
} catch (Exception e) {
String errorMsg = languageTranslationUtil.translate("获取频道失败", lang);
return Result.error(errorMsg);
}
}
@Log("获取频道列表")
@PostMapping("/selectChannel")
public Result selectChannel(@RequestBody RoleVo roleVo) {
Integer id = roleVo.getId();
List<RoleVo> list=roleService.selectSubRole(id);
return Result.success(list);
public Result selectChannel(@RequestBody RoleVo roleVo, @RequestHeader(defaultValue = "zh_CN") String lang) {
try {
Integer id = roleVo.getId();
List<RoleVo> list = roleService.selectSubRole(id);
// 对返回结果进行多语言转换
translateRoleList(list, lang);
return Result.success(list);
} catch (Exception e) {
String errorMsg = languageTranslationUtil.translate("查询失败", lang);
return Result.error(errorMsg);
}
}
/**
* 转换角色列表的多语言字段
*/
private void translateRoleList(List<RoleVo> roleList, String lang) {
if (roleList != null && !roleList.isEmpty()) {
for (RoleVo role : roleList) {
translateSingleRole(role, lang);
}
}
}
/**
* 转换单个角色的多语言字段
*/
private void translateSingleRole(RoleVo role, String lang) {
if (role != null) {
// 翻译角色名称
if (role.getRoleName() != null) {
role.setRoleName(languageTranslationUtil.translate(role.getRoleName(), lang));
}
// 翻译市场
if (role.getMarket() != null) {
role.setMarket(languageTranslationUtil.translate(role.getMarket(), lang));
}
// 翻译父角色名称
if (role.getFatherName() != null) {
role.setFatherName(languageTranslationUtil.translate(role.getFatherName(), lang));
}
// 翻译频道
if (role.getChannel() != null) {
role.setChannel(languageTranslationUtil.translate(role.getChannel(), lang));
}
}
}
/**
* 转换角色分页信息的多语言字段
*/
private void translateRolePageInfo(com.github.pagehelper.PageInfo<RoleVo> pageInfo, String lang) {
if (pageInfo != null && pageInfo.getList() != null) {
for (RoleVo role : pageInfo.getList()) {
translateSingleRole(role, lang);
}
}
}
/**
* 转换频道名称为指定语言
*/
private void translateChannels(List<String> channels, String lang) {
if (channels != null && !channels.isEmpty()) {
for (int i = 0; i < channels.size(); i++) {
String translatedName = languageTranslationUtil.translate(channels.get(i), lang);
channels.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 convertTranslatedRoleFieldsToChinese(RoleVo roleVo, String languageCode) {
if (roleVo != null) {
// 转换角色名称
if (roleVo.getRoleName() != null && !roleVo.getRoleName().isEmpty()) {
String chineseRoleName = translationService.findChineseSimplifiedByTranslation(
roleVo.getRoleName(), languageCode);
roleVo.setRoleName(chineseRoleName);
}
// 转换市场
if (roleVo.getMarket() != null && !roleVo.getMarket().isEmpty()) {
String chineseMarket = translationService.findChineseSimplifiedByTranslation(
roleVo.getMarket(), languageCode);
roleVo.setMarket(chineseMarket);
}
// 转换频道
if (roleVo.getChannel() != null && !roleVo.getChannel().isEmpty()) {
String chineseChannel = translationService.findChineseSimplifiedByTranslation(
roleVo.getChannel(), languageCode);
roleVo.setChannel(chineseChannel);
}
}
}
/**
* 将角色VO查询条件中的翻译字段转换为中文简体
*/
private void convertTranslatedRoleVoFieldsToChinese(RoleVo roleVo, String languageCode) {
if (roleVo != null) {
// 转换角色名称
if (roleVo.getRoleName() != null && !roleVo.getRoleName().isEmpty()) {
String chineseRoleName = translationService.findChineseSimplifiedByTranslation(
roleVo.getRoleName(), languageCode);
roleVo.setRoleName(chineseRoleName);
}
// 转换市场
if (roleVo.getMarket() != null && !roleVo.getMarket().isEmpty()) {
String chineseMarket = translationService.findChineseSimplifiedByTranslation(
roleVo.getMarket(), languageCode);
roleVo.setMarket(chineseMarket);
}
}
}
}
Loading…
Cancel
Save