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