diff --git a/jero-boot-modules/src/main/java/com/jero/modules/tag/controller/LawsTagController.java b/jero-boot-modules/src/main/java/com/jero/modules/tag/controller/LawsTagController.java index 9f3ac86c..d3d5ccf4 100644 --- a/jero-boot-modules/src/main/java/com/jero/modules/tag/controller/LawsTagController.java +++ b/jero-boot-modules/src/main/java/com/jero/modules/tag/controller/LawsTagController.java @@ -8,7 +8,7 @@ import com.jero.common.constant.CommonConstant; import com.jero.common.constant.enums.LanguageEnum; import com.jero.common.exception.JeroBootException; import com.jero.common.system.base.controller.JeroController; -import com.jero.common.system.vo.LoginUser; +import com.jero.common.util.MessageUtils; import com.jero.modules.enums.FixedFieldEnum; import com.jero.modules.tag.entity.LawsTag; import com.jero.modules.tag.entity.LawsArea; @@ -18,7 +18,6 @@ import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; -import org.apache.shiro.SecurityUtils; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; @@ -121,11 +120,7 @@ public class LawsTagController extends JeroController } }else{ //中英切换提示语 - if(LanguageEnum.CN.getValue().equals(lawsTag.getCut())) { - throw new JeroBootException("属性已存在,请检查"); - }else{ - throw new JeroBootException("Attribute already exists, please check!"); - } + return Result.error(MessageUtils.getMessage("tag.edit.属性已存在,请检查")); } }else { lawsTagService.add(lawsTag); @@ -150,50 +145,50 @@ public class LawsTagController extends JeroController @PostMapping(value = "/edit") @RequiresPermissions("tag:edit") public Result edit(@Validated @RequestBody LawsTag lawsTag) { - if (FixedFieldEnum.FIXED_FIELD_ENUM.getValue().equals(lawsTag.getIsReadOnly()) || FixedFieldEnum.CONFIGURABLE_FIELD.getValue().equals(lawsTag.getIsReadOnly())) { - //中英切换提示语 - if(LanguageEnum.CN.getValue().equals(lawsTag.getCut())) { - return Result.error("固定字段,不可修改"); - }else{ - return Result.error("Fixed field, which cannot be modified."); - } + if (FixedFieldEnum.FIXED_FIELD_ENUM.getValue().equals(lawsTag.getIsReadOnly().toString()) || + FixedFieldEnum.CONFIGURABLE_FIELD.getValue().equals(lawsTag.getIsReadOnly().toString())) { + return Result.error(MessageUtils.getMessage("tag.edit.固定字段,不可修改")); }else { + String isModel = lawsTag.getIsModel(); + String tableName = FileTableIdEnum.getTableName(isModel); QueryWrapper queryWrapper=new QueryWrapper<>(); //查询同一模块下,同名数据 - queryWrapper.eq("db_Field_txt", lawsTag.getDbFieldTxt()).eq("is_model", lawsTag.getIsModel()); - List existCgformTagList= lawsTagService.list(queryWrapper); - if(!existCgformTagList.isEmpty()){//有同名数据 - if(existCgformTagList.get(0).getId().equals(lawsTag.getId())){//已存在同名的数据,就是正在编辑的这个 + queryWrapper.eq("db_Field_txt", lawsTag.getDbFieldTxt()) + .eq("is_model", isModel) + .last("limit 1"); + LawsTag lawsTagOld = lawsTagService.getOne(queryWrapper); + //有同名数据 + if(lawsTagOld != null) { + //已存在同名的数据,就是正在编辑的这个 + if (lawsTagOld.getId().equals(lawsTag.getId())) { lawsTagService.editById(lawsTag); - if(lawsTag.getIsModel().equals(FileTableIdEnum.DOMESTIC_REGULATIONS.getValue())) {//同步文档库 + //同步文档库 + if (isModel.equals(FileTableIdEnum.DOMESTIC_REGULATIONS.getValue())) { + //this.onlCgformApiController.h(String.valueOf(FileTableIdEnum.FILE_TABLE_ID.getValue()), "normal"); - }else {//同步文档拆分 + } else {//同步文档拆分 //this.onlCgformApiController.h(String.valueOf(FileTableIdEnum.FILE_SPLIT_ID.getValue()), "normal"); } - - }else{//已存在同名的数据,不是正在编辑的这个 - LawsTag lawsTagDB = existCgformTagList.get(0); - if(lawsTagDB.getIsDelete()==CommonConstant.DEL_FLAG_1){//有已删数据,恢复 - lawsTagService.updateDictDelFlag(CommonConstant.DEL_FLAG_0, lawsTagDB.getId()); - lawsTag.setId(lawsTagDB.getId()); + //已存在同名的数据,不是正在编辑的这个 + } else { + //有已删数据,恢复 + if (Objects.equals(lawsTagOld.getIsDelete(), CommonConstant.DEL_FLAG_1)) { + lawsTagService.updateDictDelFlag(CommonConstant.DEL_FLAG_0, lawsTagOld.getId()); + lawsTag.setId(lawsTagOld.getId()); lawsTagService.editById(lawsTag); - if(lawsTag.getIsModel().equals(FileTableIdEnum.DOMESTIC_REGULATIONS.getValue())) {//同步文档库 + if (isModel.equals(FileTableIdEnum.DOMESTIC_REGULATIONS.getValue())) {//同步文档库 //this.onlCgformApiController.h(String.valueOf(FileTableIdEnum.FILE_TABLE_ID.getValue()), "normal"); - }else {//同步文档拆分 + } else {//同步文档拆分 //this.onlCgformApiController.h(String.valueOf(FileTableIdEnum.FILE_SPLIT_ID.getValue()), "normal"); } - }else {//有未删数据,报错 - //中英切换提示语 - if(LanguageEnum.CN.getValue().equals(lawsTag.getCut())) { - return Result.error("属性已存在,请检查"); - }else{ - return Result.error("Attribute already exists, please check!"); - } + //有未删数据,报错 + } else { + return Result.error(MessageUtils.getMessage("tag.edit.属性已存在,请检查")); } } }else{ lawsTagService.editById(lawsTag); - if(lawsTag.getIsModel().equals(FileTableIdEnum.DOMESTIC_REGULATIONS.getValue())) {//同步文档库 + if(isModel.equals(FileTableIdEnum.DOMESTIC_REGULATIONS.getValue())) {//同步文档库 //this.onlCgformApiController.h(String.valueOf(FileTableIdEnum.FILE_TABLE_ID.getValue()), "normal"); }else {//同步文档拆分 //this.onlCgformApiController.h(String.valueOf(FileTableIdEnum.FILE_SPLIT_ID.getValue()), "normal"); @@ -217,13 +212,10 @@ public class LawsTagController extends JeroController Result result = new Result<>(); LawsTag lawsTag = lawsTagService.queryById(id); if(StringUtils.isNotBlank(String.valueOf(lawsTag.getIsReadOnly()))) { - if (FixedFieldEnum.FIXED_FIELD_ENUM.getValue().equals(lawsTag.getIsReadOnly()) || FixedFieldEnum.CONFIGURABLE_FIELD.getValue().equals(lawsTag.getIsReadOnly())) { + if (FixedFieldEnum.FIXED_FIELD_ENUM.getValue().equals(lawsTag.getIsReadOnly().toString()) || + FixedFieldEnum.CONFIGURABLE_FIELD.getValue().equals(lawsTag.getIsReadOnly().toString())) { //中英切换提示语 - if(LanguageEnum.CN.getValue().equals(lawsTag.getCut())) { - result.error500("固定字段,不可删除"); - }else{ - result.error500("Fixed field, cannot be deleted."); - } + return Result.error(MessageUtils.getMessage("tag.edit.固定字段,不可删除")); } else { lawsTagService.updateDictDelFlag(CommonConstant.DEL_FLAG_1,id); ////onlCgformApiController.h(String.valueOf(FileTableIdEnum.FILE_TABLE_ID),"normal");//逻辑删除-->改变状态,数据库不删 @@ -250,11 +242,7 @@ public class LawsTagController extends JeroController LawsTag midTag= lawsTagService.getById(list); if (FixedFieldEnum.FIXED_FIELD_ENUM.getValue().equals(String.valueOf(midTag.getIsReadOnly())) || FixedFieldEnum.CONFIGURABLE_FIELD.getValue().equals(String.valueOf(midTag.getIsReadOnly()))) { //中英切换提示语 - if(LanguageEnum.CN.getValue().equals(midTag.getCut())) { - result.error500("包含固定字段,不可删除"); - }else{ - result.error500("It contains fixed fields and cannot be deleted."); - } + return Result.error(MessageUtils.getMessage("tag.delete.包含固定字段,不可删除")); }else { if (StringUtils.isNotBlank(String.valueOf(midTag.getIsReadOnly()))) { if (FixedFieldEnum.FIXED_FIELD_ENUM.getValue().equals(String.valueOf(midTag.getIsReadOnly()))) { diff --git a/jero-boot-modules/src/main/java/com/jero/modules/tag/enums/FileTableIdEnum.java b/jero-boot-modules/src/main/java/com/jero/modules/tag/enums/FileTableIdEnum.java index e268d422..0133b6e4 100644 --- a/jero-boot-modules/src/main/java/com/jero/modules/tag/enums/FileTableIdEnum.java +++ b/jero-boot-modules/src/main/java/com/jero/modules/tag/enums/FileTableIdEnum.java @@ -1,5 +1,6 @@ package com.jero.modules.tag.enums; +import com.jero.common.exception.JeroBootException; import lombok.AllArgsConstructor; import lombok.Getter; @@ -15,7 +16,15 @@ public enum FileTableIdEnum { ; String name; - String table_name; + String tableName; String value; + public static String getTableName(String value){ + for (FileTableIdEnum fileTableIdEnum : values()) { + if (fileTableIdEnum.getValue().equals(value)) { + return fileTableIdEnum.getTableName(); + } + } + throw new JeroBootException("标签类型不存在"); + } } \ No newline at end of file diff --git a/jero-boot-modules/src/main/java/com/jero/modules/tag/mapper/LawsTagMapper.java b/jero-boot-modules/src/main/java/com/jero/modules/tag/mapper/LawsTagMapper.java index 3e747ad8..465f80e5 100644 --- a/jero-boot-modules/src/main/java/com/jero/modules/tag/mapper/LawsTagMapper.java +++ b/jero-boot-modules/src/main/java/com/jero/modules/tag/mapper/LawsTagMapper.java @@ -29,4 +29,6 @@ public interface LawsTagMapper extends BaseMapper { */ @Update("update onl_cgform_field set is_delete = #{isDelete,jdbcType=INTEGER} where id = #{id,jdbcType=VARCHAR}") public void updateDictDelFlag(@Param("isDelete") int isDelete, @Param("id") String id); + + void executeDDL(@Param("sqlStr") String var1); } diff --git a/jero-boot-modules/src/main/java/com/jero/modules/tag/mapper/xml/LawsTagMapper.xml b/jero-boot-modules/src/main/java/com/jero/modules/tag/mapper/xml/LawsTagMapper.xml index 0f66b782..8ef59a81 100644 --- a/jero-boot-modules/src/main/java/com/jero/modules/tag/mapper/xml/LawsTagMapper.xml +++ b/jero-boot-modules/src/main/java/com/jero/modules/tag/mapper/xml/LawsTagMapper.xml @@ -72,4 +72,8 @@ order by f.order_num + + + ${sqlStr} + \ No newline at end of file diff --git a/jero-boot-modules/src/main/java/com/jero/modules/tag/service/impl/ILawsTagServiceImpl.java b/jero-boot-modules/src/main/java/com/jero/modules/tag/service/impl/ILawsTagServiceImpl.java index 7214ab67..d75b1c9e 100644 --- a/jero-boot-modules/src/main/java/com/jero/modules/tag/service/impl/ILawsTagServiceImpl.java +++ b/jero-boot-modules/src/main/java/com/jero/modules/tag/service/impl/ILawsTagServiceImpl.java @@ -26,6 +26,7 @@ import org.apache.shiro.SecurityUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import javax.annotation.Resource; import java.util.Date; import java.util.List; import java.util.Map; @@ -39,7 +40,7 @@ import java.util.stream.Collectors; */ @Service public class ILawsTagServiceImpl extends ServiceImpl implements ILawsTagService { - @Autowired + @Resource private LawsTagMapper lawsTagMapper; @Autowired @@ -141,6 +142,7 @@ public class ILawsTagServiceImpl extends ServiceImpl imp } } save(lawsTag); + executeDDL(lawsTag,"add"); } @@ -162,7 +164,8 @@ public class ILawsTagServiceImpl extends ServiceImpl imp .map(e -> e.getOrderNum()).collect(Collectors.toList()).get(0); queryWrapper.eq("order_num", inputOrderNum); Integer orderNumCount = lawsTagMapper.selectCount(queryWrapper); - if(orderNumCount > 0 && !orderNumData.equals(inputOrderNum)) {//有重复展示顺序的,后面的号全+1 + //有重复展示顺序的,后面的号全+1 + if(orderNumCount > 0 && !orderNumData.equals(inputOrderNum)) { //设置排序 QueryWrapper orderNumQueryWrapper = new QueryWrapper<>(); orderNumQueryWrapper.ge("order_num", inputOrderNum) @@ -189,10 +192,11 @@ public class ILawsTagServiceImpl extends ServiceImpl imp } //字段名称设置成拼音+下划线,存入数据库 - String pinYin = HanYuPinYinUtil.changeToNumberPinYin(lawsTag.getDbFieldTxt()); + String pinYin = HanYuPinYinUtil.changeToNumberPinYin(lawsTag.getDbFieldName()); lawsTag.setDbFieldName(pinYin.replace(" ","_")); //处理DBLength为null的情况,默认为100 - if (lawsTag.getDbLength() == null){ + Integer dbLength = lawsTag.getDbLength(); + if (dbLength == null){ lawsTag.setDbLength(100); } Date now = new Date(); @@ -207,9 +211,11 @@ public class ILawsTagServiceImpl extends ServiceImpl imp }else{ lawsTag.setDbType("String"); if(lawsTag.getFieldShowType().equals(FieldTypeEnum.PULL_SINGLE.getValue())){ - lawsTag.setDbLength(36); //单个ID的最大长度是36,所以单选默认设置为36 + //单个ID的最大长度是36,所以单选默认设置为36 + lawsTag.setDbLength(36); }else if(lawsTag.getFieldShowType().equals(FieldTypeEnum.PULL_MORE.getValue())){ - lawsTag.setDbLength(2000); // 多选默认设置为2000,即可选择2000/36=55个属性 + // 多选默认设置为2000,即可选择2000/36=55个属性 + lawsTag.setDbLength(2000); } } lawsTag.setIsDelete(CommonConstant.DEL_FLAG_0); @@ -220,10 +226,32 @@ public class ILawsTagServiceImpl extends ServiceImpl imp lawsTag.setIsShowForm(Integer.valueOf(YesOrNoEnum.YES.getValue())); // 数据库的字段名称必须以字母开头,若不以字母开头加上固定的grp前缀 - if (!Validator.isMatchRegex("^[a-zA-Z].*$", lawsTag.getDbFieldName())){ - lawsTag.setDbFieldName("grp_" + lawsTag.getDbFieldName()); + String dbFieldName = lawsTag.getDbFieldName(); + if (!Validator.isMatchRegex("^[a-zA-Z].*$", dbFieldName)){ + lawsTag.setDbFieldName("grp_" + dbFieldName); } saveOrUpdate(lawsTag); + executeDDL(lawsTag,"modify"); + + } + + private void executeDDL(LawsTag lawsTag, String modifyOrAdd) { + String isModel = lawsTag.getIsModel(); + String dbType = lawsTag.getDbType(); + Integer dbLength = lawsTag.getDbLength(); + String dbFieldName = lawsTag.getDbFieldName(); + String type; + if ("Double".equals(dbType)) { + type = "BigDecimal(100)"; + }else if ("Date".equals(dbType)){ + type = "Date"; + }else { + type = "varchar("+dbLength+")"; + } + String tableName = FileTableIdEnum.getTableName(isModel); + String dbFieldTxt = lawsTag.getDbFieldTxt(); + String sql = "alter table " + tableName + " " + modifyOrAdd + " " + dbFieldName + " " + type + " null comment '"+dbFieldTxt+"'"; + lawsTagMapper.executeDDL(sql); } /** diff --git a/jero-boot-single-startup/src/main/resources/i18n/messages.properties b/jero-boot-single-startup/src/main/resources/i18n/messages.properties index c0367056..b9e21dcd 100644 --- a/jero-boot-single-startup/src/main/resources/i18n/messages.properties +++ b/jero-boot-single-startup/src/main/resources/i18n/messages.properties @@ -1,2 +1,6 @@ message=1 -message.operate.error=123{0} \ No newline at end of file +message.operate.error=123{0} +tag.delete.\u5305\u542B\u56FA\u5B9A\u5B57\u6BB5,\u4E0D\u53EF\u5220\u9664=\u5305\u542B\u56FA\u5B9A\u5B57\u6BB5,\u4E0D\u53EF\u5220\u9664 +tag.edit.\u56FA\u5B9A\u5B57\u6BB5,\u4E0D\u53EF\u4FEE\u6539=\u56FA\u5B9A\u5B57\u6BB5,\u4E0D\u53EF\u4FEE\u6539 +tag.edit.\u56FA\u5B9A\u5B57\u6BB5,\u4E0D\u53EF\u5220\u9664=\u56FA\u5B9A\u5B57\u6BB5,\u4E0D\u53EF\u5220\u9664 +tag.edit.\u5C5E\u6027\u5DF2\u5B58\u5728,\u8BF7\u68C0\u67E5=\u5C5E\u6027\u5DF2\u5B58\u5728,\u8BF7\u68C0\u67E5 \ No newline at end of file diff --git a/jero-boot-single-startup/src/main/resources/i18n/messages_en.properties b/jero-boot-single-startup/src/main/resources/i18n/messages_en.properties index c0367056..8a008652 100644 --- a/jero-boot-single-startup/src/main/resources/i18n/messages_en.properties +++ b/jero-boot-single-startup/src/main/resources/i18n/messages_en.properties @@ -1,2 +1,6 @@ message=1 -message.operate.error=123{0} \ No newline at end of file +message.operate.error=123{0} +tag.delete.\u5305\u542B\u56FA\u5B9A\u5B57\u6BB5,\u4E0D\u53EF\u5220\u9664=It contains fixed fields and cannot be deleted. +tag.edit.\u56FA\u5B9A\u5B57\u6BB5,\u4E0D\u53EF\u4FEE\u6539=Fixed field, which cannot be modified. +tag.edit.\u56FA\u5B9A\u5B57\u6BB5,\u4E0D\u53EF\u5220\u9664=Fixed field, cannot be deleted. +tag.edit.\u5C5E\u6027\u5DF2\u5B58\u5728,\u8BF7\u68C0\u67E5=Attribute already exists, please check! \ No newline at end of file diff --git a/jero-boot-single-startup/src/main/resources/i18n/messages_zh.properties b/jero-boot-single-startup/src/main/resources/i18n/messages_zh.properties index c0367056..b9e21dcd 100644 --- a/jero-boot-single-startup/src/main/resources/i18n/messages_zh.properties +++ b/jero-boot-single-startup/src/main/resources/i18n/messages_zh.properties @@ -1,2 +1,6 @@ message=1 -message.operate.error=123{0} \ No newline at end of file +message.operate.error=123{0} +tag.delete.\u5305\u542B\u56FA\u5B9A\u5B57\u6BB5,\u4E0D\u53EF\u5220\u9664=\u5305\u542B\u56FA\u5B9A\u5B57\u6BB5,\u4E0D\u53EF\u5220\u9664 +tag.edit.\u56FA\u5B9A\u5B57\u6BB5,\u4E0D\u53EF\u4FEE\u6539=\u56FA\u5B9A\u5B57\u6BB5,\u4E0D\u53EF\u4FEE\u6539 +tag.edit.\u56FA\u5B9A\u5B57\u6BB5,\u4E0D\u53EF\u5220\u9664=\u56FA\u5B9A\u5B57\u6BB5,\u4E0D\u53EF\u5220\u9664 +tag.edit.\u5C5E\u6027\u5DF2\u5B58\u5728,\u8BF7\u68C0\u67E5=\u5C5E\u6027\u5DF2\u5B58\u5728,\u8BF7\u68C0\u67E5 \ No newline at end of file