diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/tag/controller/OnlCgformTagController.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/tag/controller/OnlCgformTagController.java index 13c343753..de84a39ee 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/tag/controller/OnlCgformTagController.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/tag/controller/OnlCgformTagController.java @@ -1,12 +1,13 @@ package com.jero.modules.tag.controller; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.jero.common.api.vo.Result; import com.jero.common.aspect.annotation.AutoLog; import com.jero.common.constant.CommonConstant; +import com.jero.common.exception.JeroBootException; import com.jero.common.system.base.controller.JeroController; import com.jero.generater.modules.online.cgform.controller.OnlCgformApiController; -import com.jero.generater.modules.online.cgform.util.CgformUtil; import com.jero.modules.enums.FixedFieldEnum; import com.jero.modules.system.service.impl.SysDictItemServiceImpl; import com.jero.modules.tag.entity.OnlCgformArea; @@ -89,15 +90,38 @@ public class OnlCgformTagController extends JeroController add(@Validated @RequestBody OnlCgformTag onlCgformTag) { + Result result=new Result<>(); //校验--不能向数据库添加重复数据 - Integer countTableData=onlCgformTagService.queryExitTableData(onlCgformTag); - if(countTableData>0){ - return Result.error("已存在该数据,请勿重复添加"); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("db_field_txt",onlCgformTag.getDbFieldTxt()); + List existCgformTagList = this.onlCgformTagService.list(queryWrapper); + + if(!existCgformTagList.isEmpty()){ + OnlCgformTag onlCgformTagDB = existCgformTagList.get(0); + //存在重复同名标签,且已删 + if(onlCgformTagDB.getIsDelete() == CommonConstant.DEL_FLAG_1){ + //判断属性类型是否一样 + if (onlCgformTagDB.getFieldShowType().equals(onlCgformTag.getFieldShowType())){ + //属性类型一样,恢复 + this.onlCgformTagService.updateDictDelFlag(CommonConstant.DEL_FLAG_0, onlCgformTagDB.getId()); + onlCgformTag.setId(onlCgformTagDB.getId()); + this.onlCgformTagService.editById(onlCgformTag);//更新数据 + }else{ + //类不同, 删除原标签.再加回来新的 + this.onlCgformTagService.deleteById(onlCgformTagDB.getId()); + this.onlCgformTagService.add(onlCgformTag); + } + + this.onlCgformApiController.h(String.valueOf(FileTableIdEnum.FILE_TABLE_ID), "normal"); + }else{ + throw new JeroBootException("属性已存在,请检查"); + } }else { onlCgformTagService.add(onlCgformTag); onlCgformApiController.h(String.valueOf(FileTableIdEnum.FILE_TABLE_ID), "normal"); - return Result.OK("添加成功!"); + return result.success("添加成功!"); } + return result; } /** @@ -114,8 +138,29 @@ public class OnlCgformTagController extends JeroController queryWrapper=new QueryWrapper<>(); + queryWrapper.eq("db_Field_txt",onlCgformTag.getDbFieldTxt()); + List existCgformTagList=onlCgformTagService.list(queryWrapper); + if(!existCgformTagList.isEmpty()){//有同名数据 + if(existCgformTagList.get(0).getId().equals(onlCgformTag.getId())){//已存在同名的数据,就是正在编辑的这个 + onlCgformTagService.editById(onlCgformTag); + onlCgformApiController.h(String.valueOf(FileTableIdEnum.FILE_TABLE_ID),"normal"); + + }else{//已存在同名的数据,不是正在编辑的这个 + OnlCgformTag onlCgformTagDB = existCgformTagList.get(0); + if(onlCgformTagDB.getIsDelete()==CommonConstant.DEL_FLAG_1){//有已删数据,恢复 + onlCgformTagService.updateDictDelFlag(CommonConstant.DEL_FLAG_0,onlCgformTagDB.getId()); + onlCgformTag.setId(onlCgformTagDB.getId()); + onlCgformTagService.editById(onlCgformTag); + onlCgformApiController.h(String.valueOf(FileTableIdEnum.FILE_TABLE_ID),"normal"); + }else {//有未删数据,报错 + return Result.error("属性已存在,请检查"); + } + } + }else{ + onlCgformTagService.editById(onlCgformTag); + onlCgformApiController.h(String.valueOf(FileTableIdEnum.FILE_TABLE_ID),"normal"); + } return Result.OK("编辑成功!"); } } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/tag/service/IOnlCgformTagService.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/tag/service/IOnlCgformTagService.java index 9ab8f0035..0d38afbbe 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/tag/service/IOnlCgformTagService.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/tag/service/IOnlCgformTagService.java @@ -82,9 +82,8 @@ public interface IOnlCgformTagService extends IService { * * @return */ - Integer queryExitData(OnlCgformTag onlCgformTag) ; + Integer queryExitData(OnlCgformTag onlCgformTag) ; - Integer queryExitTableData(OnlCgformTag onlCgformTag); /** * 若区域下有标签字段 则无法删除 diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/tag/service/impl/OnlCgformTagServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/tag/service/impl/OnlCgformTagServiceImpl.java index 55e876930..83fdb1ad7 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/tag/service/impl/OnlCgformTagServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/tag/service/impl/OnlCgformTagServiceImpl.java @@ -2,7 +2,6 @@ package com.jero.modules.tag.service.impl; import cn.hutool.core.lang.Validator; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -67,7 +66,19 @@ public class OnlCgformTagServiceImpl extends ServiceImpl queryWrapper = new QueryWrapper<>(); - if (StringUtils.isNotBlank(onlCgformTag.getDbFieldName())) { - queryWrapper.eq("db_field_txt", onlCgformTag.getDbFieldTxt())//字段中文名称 - .eq("field_show_type", onlCgformTag.getFieldShowType())//字段类型 - .eq("db_length",onlCgformTag.getDbLength());//字段长度 - } - Integer countTableData = onlCgformTagMapper.selectCount(queryWrapper); - return countTableData; - } /** * 更新 * @@ -139,6 +121,10 @@ public class OnlCgformTagServiceImpl extends ServiceImpl