init
This commit is contained in:
@@ -16,6 +16,12 @@
|
||||
</description>
|
||||
|
||||
<dependencies>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.belerweb</groupId>
|
||||
<artifactId>pinyin4j</artifactId>
|
||||
<version>2.5.1</version>
|
||||
</dependency>
|
||||
<!-- spring-boot-devtools -->
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
|
||||
29
ruoyi-admin/src/main/java/com/ruoyi/test/RefreshArea.java
Normal file
29
ruoyi-admin/src/main/java/com/ruoyi/test/RefreshArea.java
Normal file
@@ -0,0 +1,29 @@
|
||||
package com.ruoyi.test;
|
||||
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.ruoyi.util.PinYinUtil;
|
||||
import com.ruoyi.xq.domain.AreaCode;
|
||||
import com.ruoyi.xq.service.AreaCodeService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Component
|
||||
public class RefreshArea {
|
||||
|
||||
@Autowired
|
||||
private AreaCodeService areaCodeService;
|
||||
|
||||
public void refreshPinyin(){
|
||||
List<AreaCode> list = areaCodeService.list();
|
||||
for (AreaCode areaCode : list) {
|
||||
String firstSpell = PinYinUtil.getFirstSpell(areaCode.getName());
|
||||
areaCodeService.update(Wrappers.lambdaUpdate(AreaCode.class)
|
||||
.eq(AreaCode::getCode, areaCode.getCode())
|
||||
.set(AreaCode::getFirstSpell, firstSpell));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
89
ruoyi-admin/src/main/java/com/ruoyi/util/PinYinUtil.java
Normal file
89
ruoyi-admin/src/main/java/com/ruoyi/util/PinYinUtil.java
Normal file
@@ -0,0 +1,89 @@
|
||||
package com.ruoyi.util;
|
||||
import net.sourceforge.pinyin4j.PinyinHelper;
|
||||
import net.sourceforge.pinyin4j.format.HanyuPinyinCaseType;
|
||||
import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat;
|
||||
import net.sourceforge.pinyin4j.format.HanyuPinyinToneType;
|
||||
import net.sourceforge.pinyin4j.format.HanyuPinyinVCharType;
|
||||
import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination;
|
||||
/**
|
||||
* 拼音工具类
|
||||
*/
|
||||
public class PinYinUtil {
|
||||
/**
|
||||
* 将字符串中的中文转化为拼音,其他字符不变
|
||||
*
|
||||
* @param inputString
|
||||
* @return
|
||||
*/
|
||||
public static String getPingYin(String inputString) {
|
||||
HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat();
|
||||
format.setCaseType(HanyuPinyinCaseType.LOWERCASE);
|
||||
format.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
|
||||
format.setVCharType(HanyuPinyinVCharType.WITH_V);
|
||||
char[] input = inputString.trim().toCharArray();
|
||||
String output = "";
|
||||
try {
|
||||
for (int i = 0; i < input.length; i++) {
|
||||
if (java.lang.Character.toString(input[i]).matches("[\\u4E00-\\u9FA5]+")) {
|
||||
String[] temp = PinyinHelper.toHanyuPinyinStringArray(input[i], format);
|
||||
output += temp[0];
|
||||
} else
|
||||
output += java.lang.Character.toString(input[i]);
|
||||
}
|
||||
} catch (BadHanyuPinyinOutputFormatCombination e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return output;
|
||||
}
|
||||
/**
|
||||
* 获取汉字串拼音首字母,英文字符不变
|
||||
* @param chinese 汉字串
|
||||
* @return 汉语拼音首字母
|
||||
*/
|
||||
public static String getFirstSpell(String chinese) {
|
||||
StringBuffer pybf = new StringBuffer();
|
||||
char[] arr = chinese.toCharArray();
|
||||
HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();
|
||||
defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);
|
||||
defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
|
||||
for (int i = 0; i < arr.length; i++) {
|
||||
if (arr[i] > 128) {
|
||||
try {
|
||||
String[] temp = PinyinHelper.toHanyuPinyinStringArray(arr[i], defaultFormat);
|
||||
if (temp != null) {
|
||||
pybf.append(temp[0].charAt(0));
|
||||
}
|
||||
} catch (BadHanyuPinyinOutputFormatCombination e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
} else {
|
||||
pybf.append(arr[i]);
|
||||
}
|
||||
}
|
||||
return pybf.toString().replaceAll("\\W", "").trim();
|
||||
}
|
||||
/**
|
||||
* 获取汉字串拼音,英文字符不变
|
||||
* @param chinese 汉字串
|
||||
* @return 汉语拼音
|
||||
*/
|
||||
public static String getFullSpell(String chinese) {
|
||||
StringBuffer pybf = new StringBuffer();
|
||||
char[] arr = chinese.toCharArray();
|
||||
HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();
|
||||
defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);
|
||||
defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
|
||||
for (int i = 0; i < arr.length; i++) {
|
||||
if (arr[i] > 128) {
|
||||
try {
|
||||
pybf.append(PinyinHelper.toHanyuPinyinStringArray(arr[i], defaultFormat)[0]);
|
||||
} catch (BadHanyuPinyinOutputFormatCombination e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
} else {
|
||||
pybf.append(arr[i]);
|
||||
}
|
||||
}
|
||||
return pybf.toString();
|
||||
}
|
||||
}
|
||||
@@ -12,7 +12,7 @@ import java.util.concurrent.TimeUnit;
|
||||
*
|
||||
* @author Lion Li
|
||||
*/
|
||||
@SpringBootTest // 此注解只能在 springboot 主包下使用 需包含 main 方法与 yml 配置文件
|
||||
@SpringBootTest
|
||||
@DisplayName("单元测试案例")
|
||||
public class DemoUnitTest {
|
||||
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
package com.ruoyi.test.business;
|
||||
|
||||
import com.ruoyi.test.RefreshArea;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.test.context.SpringBootTest;
|
||||
|
||||
@SpringBootTest
|
||||
@Slf4j
|
||||
public class RefreshTest {
|
||||
@Autowired
|
||||
private RefreshArea refreshArea;
|
||||
|
||||
@Test
|
||||
public void refresh(){
|
||||
refreshArea.refreshPinyin();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user