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

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<Translation> 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<Translation> findByChineseSimplifiedLike(String chineseSimplified) {
return translationMapper.findByChineseSimplifiedLike(chineseSimplified);
}
@Override
public Translation findByChineseSimplified(String chineseSimplified) {
return translationMapper.findByChineseSimplified(chineseSimplified);
}
@Override
public List<Translation> findByLanguageAndTranslationStatus(String language, boolean isTranslated) {
// 语言字段映射关系
Map<String, String> 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<Translation> findByChineseSimplifiedAndLanguageStatus(
String chineseSimplified,
String language,
boolean isTranslated) {
// 语言字段映射关系
Map<String, String> 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);
}
}