package com.example.demo.serviceImpl.coin; import com.example.demo.domain.entity.Translation; import com.example.demo.mapper.coin.TranslationMapper; import com.example.demo.service.coin.TranslationService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.HashMap; import java.util.List; import java.util.Map; @Service public class TranslationServiceImpl implements TranslationService { @Autowired private TranslationMapper translationMapper; @Override public List findAll() { return translationMapper.findAll(); } @Override public boolean add(Translation translation) { // 使用精确匹配检查是否存在相同的 chineseSimplified Translation existingTranslation = translationMapper.findByChineseSimplified(translation.getChineseSimplified()); if (existingTranslation != null) { throw new RuntimeException("简体中文已存在"); } return translationMapper.insert(translation) > 0; } @Override public boolean update(Translation translation) { return translationMapper.update(translation) > 0; } @Override public boolean deleteById(Integer id) { return translationMapper.deleteById(id) > 0; } @Override public List findByChineseSimplifiedLike(String chineseSimplified) { return translationMapper.findByChineseSimplifiedLike(chineseSimplified); } @Override public Translation findByChineseSimplified(String chineseSimplified) { return translationMapper.findByChineseSimplified(chineseSimplified); } @Override public List findByLanguageAndTranslationStatus(String language, boolean isTranslated) { // 语言字段映射关系 Map languageColumnMap = new HashMap<>(); languageColumnMap.put("en", "english"); // 英语 languageColumnMap.put("th", "thai"); // 泰语 languageColumnMap.put("zh_TW", "chinese_traditional"); // 繁体中文 languageColumnMap.put("ms", "malay"); // 马来语 languageColumnMap.put("vi", "vietnamese"); // 越南语 String columnName = languageColumnMap.get(language.toLowerCase()); if (columnName == null) { throw new IllegalArgumentException("不支持的语言类型: " + language); } return translationMapper.findByLanguageAndTranslationStatus(columnName, isTranslated); } @Override public List findByChineseSimplifiedAndLanguageStatus( String chineseSimplified, String language, boolean isTranslated) { // 语言字段映射关系 Map languageColumnMap = new HashMap<>(); languageColumnMap.put("en", "english"); // 英语 languageColumnMap.put("th", "thai"); // 泰语 languageColumnMap.put("zh_TW", "chinese_traditional"); // 繁体中文 languageColumnMap.put("ms", "malay"); // 马来语 languageColumnMap.put("vi", "vietnamese"); // 越南语 String columnName = languageColumnMap.get(language.toLowerCase()); if (columnName == null) { throw new IllegalArgumentException("不支持的语言类型: " + language); } return translationMapper.findByChineseSimplifiedAndLanguageStatus( chineseSimplified, columnName, isTranslated); } @Override public Translation findById(Integer id) { return translationMapper.findById(id); } }