Commit db1a1367 authored by 施翔轲's avatar 施翔轲

角色管理新增权限字符自动生成功能

parent faca6d41
...@@ -5,6 +5,7 @@ import com.dsk.common.annotation.Log; ...@@ -5,6 +5,7 @@ import com.dsk.common.annotation.Log;
import com.dsk.common.core.controller.BaseController; import com.dsk.common.core.controller.BaseController;
import com.dsk.common.core.domain.PageQuery; import com.dsk.common.core.domain.PageQuery;
import com.dsk.common.core.domain.R; import com.dsk.common.core.domain.R;
import com.dsk.common.utils.Chinese2PinyinUtils;
import com.dsk.system.domain.SysDept; import com.dsk.system.domain.SysDept;
import com.dsk.system.domain.SysRole; import com.dsk.system.domain.SysRole;
import com.dsk.system.domain.SysUser; import com.dsk.system.domain.SysUser;
...@@ -81,13 +82,16 @@ public class SysRoleController extends BaseController { ...@@ -81,13 +82,16 @@ public class SysRoleController extends BaseController {
@PostMapping @PostMapping
public R<Void> add(@Validated @RequestBody SysRole role) { public R<Void> add(@Validated @RequestBody SysRole role) {
roleService.checkRoleAllowed(role); roleService.checkRoleAllowed(role);
//应产品经理强!烈!要求,让后台自动生成权限字符,为方便后期排查bug,经考虑后将角色名的拼音设置为权限字符
role.setRoleKey(Chinese2PinyinUtils.toLowerPinyin(role.getRoleName()));
if (!roleService.checkRoleNameUnique(role)) { if (!roleService.checkRoleNameUnique(role)) {
return R.fail("新增角色'" + role.getRoleName() + "'失败,角色名称已存在"); return R.fail("新增角色'" + role.getRoleName() + "'失败,角色名称已存在");
} else if (!roleService.checkRoleKeyUnique(role)) { } else if (!roleService.checkRoleKeyUnique(role)) {
return R.fail("新增角色'" + role.getRoleName() + "'失败,角色权限已存在"); return R.fail("新增角色'" + role.getRoleName() + "'失败,角色权限已存在");
} }
return toAjax(roleService.insertRole(role)); return toAjax(roleService.insertRole(role));
} }
/** /**
......
...@@ -187,6 +187,12 @@ ...@@ -187,6 +187,12 @@
<scope>compile</scope> <scope>compile</scope>
</dependency> </dependency>
<!--中文转拼音-->
<dependency>
<groupId>com.belerweb</groupId>
<artifactId>pinyin4j</artifactId>
</dependency>
</dependencies> </dependencies>
</project> </project>
package com.dsk.common.utils;
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.exception.BadHanyuPinyinOutputFormatCombination;
/**
* 中文转拼音工具类
*
* @author sxk
* @date 2023.11.13
*/
public class Chinese2PinyinUtils {
/**
* 中文转小写拼音
* @param chinese 待转义中文
* @return 转义后的拼音
*/
public static String toLowerPinyin(String chinese) {
StringBuilder pinyin = new StringBuilder();
HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat();
format.setCaseType(HanyuPinyinCaseType.LOWERCASE);
format.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
char[] chars = chinese.toCharArray();
for (char c : chars) {
try {
String[] arr = PinyinHelper.toHanyuPinyinStringArray(c, format);
if (arr == null || arr.length == 0) {
pinyin.append(c);
} else {
pinyin.append(arr[0]);
}
} catch (BadHanyuPinyinOutputFormatCombination e) {
e.printStackTrace();
}
}
return pinyin.toString();
}
/**
* 中文转大写拼音
* @param chinese 待转义中文
* @return 转义后的拼音
*/
public static String toUpperPinyin(String chinese) {
StringBuilder pinyin = new StringBuilder();
HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat();
format.setCaseType(HanyuPinyinCaseType.UPPERCASE);
format.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
char[] chars = chinese.toCharArray();
for (char c : chars) {
try {
String[] arr = PinyinHelper.toHanyuPinyinStringArray(c, format);
if (arr == null || arr.length == 0) {
pinyin.append(c);
} else {
pinyin.append(arr[0]);
}
} catch (BadHanyuPinyinOutputFormatCombination e) {
e.printStackTrace();
}
}
return pinyin.toString();
}
}
...@@ -37,7 +37,8 @@ module.exports = { ...@@ -37,7 +37,8 @@ module.exports = {
target: `http://47.104.91.229:9099/prod-api`,//测试 target: `http://47.104.91.229:9099/prod-api`,//测试
// target: `https://szhapi.jiansheku.com`,//线上 // target: `https://szhapi.jiansheku.com`,//线上
// target: `http://122.9.160.122:9011`, //线上 // target: `http://122.9.160.122:9011`, //线上
// target: `http://192.168.0.165:9098`,//施 // target: `http://192.168.0.165:9098`,//施-无线
// target: `http://192.168.60.46:9098`,//施-有线
// target: `http://192.168.60.6:9098`,//谭 // target: `http://192.168.60.6:9098`,//谭
changeOrigin: true, changeOrigin: true,
pathRewrite: { pathRewrite: {
......
...@@ -51,7 +51,7 @@ public class SysRole extends TenantEntity { ...@@ -51,7 +51,7 @@ public class SysRole extends TenantEntity {
* 角色权限 * 角色权限
*/ */
@ExcelProperty(value = "角色权限") @ExcelProperty(value = "角色权限")
@NotBlank(message = "权限字符不能为空") //@NotBlank(message = "权限字符不能为空")
@Size(min = 0, max = 100, message = "权限字符长度不能超过{max}个字符") @Size(min = 0, max = 100, message = "权限字符长度不能超过{max}个字符")
private String roleKey; private String roleKey;
......
...@@ -48,6 +48,9 @@ ...@@ -48,6 +48,9 @@
<aws-java-sdk-s3.version>1.12.400</aws-java-sdk-s3.version> <aws-java-sdk-s3.version>1.12.400</aws-java-sdk-s3.version>
<!-- SMS 配置 --> <!-- SMS 配置 -->
<sms4j.version>2.2.0</sms4j.version> <sms4j.version>2.2.0</sms4j.version>
<!--中文转拼音-->
<pinyin4j.version>2.5.1</pinyin4j.version>
</properties> </properties>
<profiles> <profiles>
...@@ -324,6 +327,13 @@ ...@@ -324,6 +327,13 @@
<version>${dsk-operate-sys.version}</version> <version>${dsk-operate-sys.version}</version>
</dependency> </dependency>
<!--中文转拼音-->
<dependency>
<groupId>com.belerweb</groupId>
<artifactId>pinyin4j</artifactId>
<version>${pinyin4j.version}</version>
</dependency>
</dependencies> </dependencies>
</dependencyManagement> </dependencyManagement>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment