You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

97 lines
3.6 KiB

  1. package com.example.demo.serviceImpl.coin;
  2. import com.example.demo.domain.entity.Translation;
  3. import com.example.demo.mapper.coin.TranslationMapper;
  4. import com.example.demo.service.coin.TranslationService;
  5. import org.springframework.beans.factory.annotation.Autowired;
  6. import org.springframework.stereotype.Service;
  7. import java.util.HashMap;
  8. import java.util.List;
  9. import java.util.Map;
  10. @Service
  11. public class TranslationServiceImpl implements TranslationService {
  12. @Autowired
  13. private TranslationMapper translationMapper;
  14. @Override
  15. public List<Translation> findAll() {
  16. return translationMapper.findAll();
  17. }
  18. @Override
  19. public boolean add(Translation translation) {
  20. // 使用精确匹配检查是否存在相同的 chineseSimplified
  21. Translation existingTranslation = translationMapper.findByChineseSimplified(translation.getChineseSimplified());
  22. if (existingTranslation != null) {
  23. throw new RuntimeException("简体中文已存在");
  24. }
  25. return translationMapper.insert(translation) > 0;
  26. }
  27. @Override
  28. public boolean update(Translation translation) {
  29. return translationMapper.update(translation) > 0;
  30. }
  31. @Override
  32. public boolean deleteById(Integer id) {
  33. return translationMapper.deleteById(id) > 0;
  34. }
  35. @Override
  36. public List<Translation> findByChineseSimplifiedLike(String chineseSimplified) {
  37. return translationMapper.findByChineseSimplifiedLike(chineseSimplified);
  38. }
  39. @Override
  40. public Translation findByChineseSimplified(String chineseSimplified) {
  41. return translationMapper.findByChineseSimplified(chineseSimplified);
  42. }
  43. @Override
  44. public List<Translation> findByLanguageAndTranslationStatus(String language, boolean isTranslated) {
  45. // 语言字段映射关系
  46. Map<String, String> languageColumnMap = new HashMap<>();
  47. languageColumnMap.put("en", "english"); // 英语
  48. languageColumnMap.put("th", "thai"); // 泰语
  49. languageColumnMap.put("zh_TW", "chinese_traditional"); // 繁体中文
  50. languageColumnMap.put("ms", "malay"); // 马来语
  51. languageColumnMap.put("vi", "vietnamese"); // 越南语
  52. String columnName = languageColumnMap.get(language.toLowerCase());
  53. if (columnName == null) {
  54. throw new IllegalArgumentException("不支持的语言类型: " + language);
  55. }
  56. return translationMapper.findByLanguageAndTranslationStatus(columnName, isTranslated);
  57. }
  58. @Override
  59. public List<Translation> findByChineseSimplifiedAndLanguageStatus(
  60. String chineseSimplified,
  61. String language,
  62. boolean isTranslated) {
  63. // 语言字段映射关系
  64. Map<String, String> languageColumnMap = new HashMap<>();
  65. languageColumnMap.put("en", "english"); // 英语
  66. languageColumnMap.put("th", "thai"); // 泰语
  67. languageColumnMap.put("zh_TW", "chinese_traditional"); // 繁体中文
  68. languageColumnMap.put("ms", "malay"); // 马来语
  69. languageColumnMap.put("vi", "vietnamese"); // 越南语
  70. String columnName = languageColumnMap.get(language.toLowerCase());
  71. if (columnName == null) {
  72. throw new IllegalArgumentException("不支持的语言类型: " + language);
  73. }
  74. return translationMapper.findByChineseSimplifiedAndLanguageStatus(
  75. chineseSimplified, columnName, isTranslated);
  76. }
  77. @Override
  78. public Translation findById(Integer id) {
  79. return translationMapper.findById(id);
  80. }
  81. }