diff --git a/jero-boot/jero-boot-module-system/pom.xml b/jero-boot/jero-boot-module-system/pom.xml
index c00599e8f..902831bae 100644
--- a/jero-boot/jero-boot-module-system/pom.xml
+++ b/jero-boot/jero-boot-module-system/pom.xml
@@ -50,7 +50,13 @@
-
+
+ com.belerweb
+ pinyin4j
+ 2.5.1
+ compile
+
+
\ No newline at end of file
diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysDictController.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysDictController.java
index 585aa4081..6d06a5737 100644
--- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysDictController.java
+++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysDictController.java
@@ -344,12 +344,17 @@ public class SysDictController {
Result result = new Result();
try {
if(StringUtils.isEmpty(sysDict.getDictName())){
- sysDict.setDictCode(sysDict.getDictName());
- }else {
- sysDict.setCreateTime(new Date());
- sysDict.setDelFlag(CommonConstant.DEL_FLAG_0);
+ String pinYin = sysDictService.getAllPinyin(sysDict.getDictName());
+ sysDict.setDictCode(pinYin);
- sysDictService.save(sysDict);
+ }else {
+ Integer count = sysDictService.queryExitData(sysDict);
+ if (count > 0) {
+ sysDict.setDelFlag(CommonConstant.DEL_FLAG_0);
+ } else {
+ sysDict.setCreateTime(new Date());
+ sysDictService.save(sysDict);
+ }
result.success("保存成功!");
//添加成功后需要刷新缓存
sysDictService.refreshCache();
@@ -362,6 +367,7 @@ public class SysDictController {
return result;
}
+
/**
* @功能:编辑
* @param sysDict
@@ -377,7 +383,7 @@ public class SysDictController {
result.error500("未找到对应实体");
}else {
if (org.apache.commons.lang3.StringUtils.isNotBlank(String.valueOf(sysDict.getIsReadOnly()))) {
- if (sysDict.getIsReadOnly() == 1) {
+ if (FixedFieldEnum.FIXED_FIELD_ENUM.getValue().equals(sysDict.getIsReadOnly())) {
result.error500("固定字段,不可删除");
}else{
sysDict.setUpdateTime(new Date());
@@ -420,6 +426,37 @@ public class SysDictController {
}
return result;
}
+
+ /**
+ * @功能:删除
+ * @param id
+ * @return
+ */
+ @ApiOperation(value = "字典控制器-逻辑删除字典", notes = "字典控制器-逻辑删除字典")
+ @RequiresRoles({"admin"})
+ @DeleteMapping(value = "/logicDelete")
+ @CacheEvict(value=CacheConstant.SYS_DICT_CACHE, allEntries=true)
+ public Result logicDelete(@RequestParam(name="id",required=true) String id) {
+
+ Result result = new Result();
+ try{
+ SysDict sysDict = sysDictService.queryById(id);
+ if (StringUtils.isNotBlank(String.valueOf(sysDict.getIsReadOnly()))) {
+ if (FixedFieldEnum.FIXED_FIELD_ENUM.getValue().equals(sysDict.getIsReadOnly())) {
+ result.error500("固定字段,不可删除");
+ } else {
+ sysDict.setDelFlag(CommonConstant.DEL_FLAG_1);
+ result.success("删除成功!");
+ //添加成功后需要刷新缓存
+ sysDictService.refreshCache();
+ }
+ }
+ }catch (Exception e) {
+ log.error(e.getMessage(),e);
+ result.error500("删除失败");
+ }
+ return result;
+ }
/**
* @功能:批量删除
* @param ids
diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysDictItemController.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysDictItemController.java
index 127cd74a8..97f0c4fb7 100644
--- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysDictItemController.java
+++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysDictItemController.java
@@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jero.common.api.vo.Result;
import com.jero.common.constant.CacheConstant;
+import com.jero.common.constant.CommonConstant;
import com.jero.common.system.query.QueryGenerator;
import com.jero.modules.enums.FixedFieldEnum;
import com.jero.modules.system.entity.SysDictItem;
@@ -73,6 +74,7 @@ public class SysDictItemController {
Result result = new Result();
try {
sysDictItem.setCreateTime(new Date());
+ sysDictItem.setDelFlag(CommonConstant.DEL_FLAG_0);
sysDictItemService.save(sysDictItem);
result.success("保存成功!");
} catch (Exception e) {
@@ -143,6 +145,34 @@ public class SysDictItemController {
return result;
}
+ /**
+ * @功能:逻辑删除字典数据
+ * @param id
+ * @return
+ */
+ //@RequiresRoles({"admin"})
+ @RequiresPermissions("sys:dict:list")
+ @RequestMapping(value = "/logicDelete", method = RequestMethod.DELETE)
+ @CacheEvict(value=CacheConstant.SYS_DICT_CACHE, allEntries=true)
+ public Result logicDelete(@RequestParam(name="id",required=true) String id) {
+ Result result = new Result();
+ SysDictItem joinSystem = sysDictItemService.getById(id);
+ if (joinSystem == null) {
+ result.error500("未找到对应实体");
+ }else {
+ if (org.apache.commons.lang3.StringUtils.isNotBlank(String.valueOf(joinSystem.getIsReadOnly()))) {
+ if (FixedFieldEnum.FIXED_FIELD_ENUM.getValue().equals(joinSystem.getIsReadOnly())) {
+ result.error500("固定字段,不可删除");
+ }
+ else {
+ joinSystem.setDelFlag(CommonConstant.DEL_FLAG_1);
+ result.success("删除成功!");
+ }
+ }
+ }
+ return result;
+ }
+
/**
* @功能:批量删除字典数据
* @param ids
diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/entity/SysDict.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/entity/SysDict.java
index d1d3dfa8a..b89bac4fb 100644
--- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/entity/SysDict.java
+++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/entity/SysDict.java
@@ -91,8 +91,9 @@ public class SysDict implements Serializable {
/**
* 是否为标签内容-数据字典(1是 0否)
*/
- @Excel(name = "是否为标签内容-数据字典(1是 0否)", width = 15, dictTable = "onl_cgform_field",dicText = "is_tag_dict", dicCode = "is_tag_dict")
+ @Excel(name = "是否为标签内容-数据字典(1是 0否)", width = 15, dicText = "is_tag_dict", dicCode = "is_tag_dict")
@Dict(dictTable = "onl_cgform_field", dicText = "is_tag_dict", dicCode = "is_tag_dict")
+ @ApiModelProperty(value = "是否为标签内容-数据字典(1是 0否)")
private java.lang.Integer isTagDict;
/**
diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/entity/SysDictItem.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/entity/SysDictItem.java
index 8e568e8bc..77d098f5e 100644
--- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/entity/SysDictItem.java
+++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/entity/SysDictItem.java
@@ -3,6 +3,7 @@ package com.jero.modules.system.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
import com.jero.common.aspect.annotation.Dict;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -47,7 +48,7 @@ public class SysDictItem implements Serializable {
private String itemText;
/**
- * 字典项值
+ * 字典项值-英文名
*/
@Excel(name = "字典项值", width = 30)
private String itemValue;
@@ -82,7 +83,9 @@ public class SysDictItem implements Serializable {
private Date updateTime;
/**是否为标签内容-数据字典(1是 0否)*/
- @Excel(name = "是否为标签内容", width = 15)
+ @Excel(name = "是否为标签内容-数据字典(1是 0否)", width = 15, dicText = "is_tag_dict", dicCode = "is_tag_dict")
+ @Dict(dictTable = "onl_cgform_field", dicText = "is_tag_dict", dicCode = "is_tag_dict")
+ @ApiModelProperty(value = "是否为标签内容-数据字典(1是 0否)")
private java.lang.Integer isTagDict;
/**是否是只读(2字段固定,内部可配1固定字段 0非固定字段)*/
@@ -97,4 +100,7 @@ public class SysDictItem implements Serializable {
@Dict(dicCode = "attribute_type")
private java.lang.String attributeType;
+ /**逻辑删除标识*/
+ @TableLogic
+ public Integer delFlag;
}
diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/ISysDictService.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/ISysDictService.java
index 8735f66d0..dfef477b9 100644
--- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/ISysDictService.java
+++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/ISysDictService.java
@@ -157,4 +157,7 @@ public interface ISysDictService extends IService {
* @return
*/
Integer queryExitData(SysDict sysDict);
+
+
+ String getAllPinyin(String dictName);
}
diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysDictItemServiceImpl.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysDictItemServiceImpl.java
index b1e9a426f..3597c2798 100644
--- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysDictItemServiceImpl.java
+++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysDictItemServiceImpl.java
@@ -1,9 +1,9 @@
package com.jero.modules.system.service.impl;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.modules.system.entity.SysDictItem;
import com.jero.modules.system.mapper.SysDictItemMapper;
import com.jero.modules.system.service.ISysDictItemService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysDictServiceImpl.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysDictServiceImpl.java
index 47c5339a5..59cd37496 100644
--- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysDictServiceImpl.java
+++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysDictServiceImpl.java
@@ -5,7 +5,6 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import lombok.extern.slf4j.Slf4j;
import com.jero.common.constant.CacheConstant;
import com.jero.common.constant.CommonConstant;
import com.jero.common.system.vo.DictModel;
@@ -17,6 +16,13 @@ import com.jero.modules.system.mapper.SysDictItemMapper;
import com.jero.modules.system.mapper.SysDictMapper;
import com.jero.modules.system.model.TreeSelectModel;
import com.jero.modules.system.service.ISysDictService;
+import lombok.extern.slf4j.Slf4j;
+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;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cache.annotation.Cacheable;
@@ -341,10 +347,66 @@ public class SysDictServiceImpl extends ServiceImpl impl
@Override
public Integer queryExitData(SysDict sysDict) {
LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>();
- if (StringUtils.isNotBlank(sysDict.getDictName())) {// && StringUtils.isNotBlank(onlCgformTag.getDbFieldName())) {
+ if (StringUtils.isNotBlank(sysDict.getDictName())) {
queryWrapper.eq(SysDict::getDictName, sysDict.getDictName()).and(wq -> wq.eq(SysDict::getAttributeType, sysDict.getAttributeType()));
}
Integer count = sysDictMapper.selectCount(queryWrapper);
return count;
}
+
+ /**
+ * 将Code值设为字典名称的中文拼音
+ */
+ public String getAllPinyin(String hanzi) {
+ //输出格式设置
+ HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat();
+ /**
+ * 输出大小写设置
+ *
+ * LOWERCASE:输出小写
+ * UPPERCASE:输出大写
+ */
+ format.setCaseType(HanyuPinyinCaseType.LOWERCASE);
+
+ /**
+ * 输出音标设置
+ *
+ * WITH_TONE_MARK:直接用音标符(必须设置WITH_U_UNICODE,否则会抛出异常)
+ * WITH_TONE_NUMBER:1-4数字表示音标
+ * WITHOUT_TONE:没有音标
+ */
+ format.setToneType(HanyuPinyinToneType.WITH_TONE_MARK);
+
+ /**
+ * 特殊音标ü设置
+ *
+ * WITH_V:用v表示ü
+ * WITH_U_AND_COLON:用"u:"表示ü
+ * WITH_U_UNICODE:直接用ü
+ */
+ format.setVCharType(HanyuPinyinVCharType.WITH_U_UNICODE);
+
+ char[] hanYuArr = hanzi.trim().toCharArray();
+ StringBuilder pinYin = new StringBuilder();
+
+ try {
+ for (int i = 0, len = hanYuArr.length; i < len; i++) {
+ //匹配是否是汉字
+ if (Character.toString(hanYuArr[i]).matches("[\\u4E00-\\u9FA5]+")) {
+ //如果是多音字,返回多个拼音,这里只取第一个
+ String[] pys = PinyinHelper.toHanyuPinyinStringArray(hanYuArr[i], format);
+ pinYin.append(pys[0]).append(" ");
+ } else {
+ pinYin.append(hanYuArr[i]).append(" ");
+ }
+ }
+ } catch (BadHanyuPinyinOutputFormatCombination badHanyuPinyinOutputFormatCombination) {
+ badHanyuPinyinOutputFormatCombination.printStackTrace();
+ }
+ return pinYin.toString();
+ }
+
+
+
+
}
diff --git a/jero-boot/jero-boot-modules/pom.xml b/jero-boot/jero-boot-modules/pom.xml
index 531616feb..df7d93333 100644
--- a/jero-boot/jero-boot-modules/pom.xml
+++ b/jero-boot/jero-boot-modules/pom.xml
@@ -107,6 +107,11 @@
org.springframework.cloud
spring-cloud-starter-openfeign
+
+ com.belerweb
+ pinyin4j
+ 2.5.1
+