|
|
|
@ -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); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |