support pinyin search

This commit is contained in:
Timi
2026-08-21 13:51:26 +08:00
parent a523df6a07
commit acc3f05f12
10 changed files with 248 additions and 0 deletions
@@ -1,6 +1,8 @@
package com.imyeyu.api.modules.common.entity;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.imyeyu.java.bean.Language;
import com.imyeyu.spring.annotation.table.Column;
import com.imyeyu.spring.entity.UUIDEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
@@ -15,6 +17,18 @@ public class Multilingual extends UUIDEntity {
protected String zhCN;
@Column("zh_cn_pinyin_full")
@JsonIgnore
protected String zhCNPinyinFull;
@Column("zh_cn_pinyin_initial")
@JsonIgnore
protected String zhCNPinyinInitial;
@Column("zh_cn_pinyin_mixed")
@JsonIgnore
protected String zhCNPinyinMixed;
protected String zhTW;
protected String enUS;
@@ -3,6 +3,7 @@ package com.imyeyu.api.modules.common.service.implement;
import com.imyeyu.api.modules.common.entity.Multilingual;
import com.imyeyu.api.modules.common.mapper.MultilingualMapper;
import com.imyeyu.api.modules.common.service.MultilingualService;
import com.imyeyu.api.util.PinyinUtil;
import com.imyeyu.spring.mapper.BaseMapper;
import com.imyeyu.spring.service.AbstractEntityService;
import com.imyeyu.spring.util.Redis;
@@ -34,6 +35,18 @@ public class MultilingualServiceImplement extends AbstractEntityService<Multilin
return mapper;
}
@Override
public void create(Multilingual multilingual) {
fillPinyin(multilingual);
super.create(multilingual);
}
@Override
public void update(Multilingual multilingual) {
fillPinyin(multilingual);
super.update(multilingual);
}
@Override
public Multilingual get(String id) {
Multilingual result = redisLanguage.get(getKey(id));
@@ -81,4 +94,14 @@ public class MultilingualServiceImplement extends AbstractEntityService<Multilin
private String getKey(String id) {
return "%s%s".formatted(KEY_PREFIX, id);
}
private void fillPinyin(Multilingual multilingual) {
if (multilingual == null) {
return;
}
String zhCN = multilingual.getZhCN();
multilingual.setZhCNPinyinFull(PinyinUtil.full(zhCN));
multilingual.setZhCNPinyinInitial(PinyinUtil.initial(zhCN));
multilingual.setZhCNPinyinMixed(PinyinUtil.mixed(zhCN));
}
}