[修改] bug 50140 关于逻辑删除的新增编辑的数据判断
This commit is contained in:
+52
-7
@@ -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<OnlCgformTag, IOnlCgf
|
||||
@PostMapping(value = "/add")
|
||||
@RequiresPermissions("tag:add")
|
||||
public Result<?> add(@Validated @RequestBody OnlCgformTag onlCgformTag) {
|
||||
Result<OnlCgformTag> result=new Result<>();
|
||||
//校验--不能向数据库添加重复数据
|
||||
Integer countTableData=onlCgformTagService.queryExitTableData(onlCgformTag);
|
||||
if(countTableData>0){
|
||||
return Result.error("已存在该数据,请勿重复添加");
|
||||
QueryWrapper<OnlCgformTag> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.eq("db_field_txt",onlCgformTag.getDbFieldTxt());
|
||||
List<OnlCgformTag> 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<OnlCgformTag, IOnlCgf
|
||||
if (FixedFieldEnum.FIXED_FIELD_ENUM.getValue().equals(onlCgformTag.getIsReadOnly()) || FixedFieldEnum.CONFIGURABLE_FIELD.getValue().equals(onlCgformTag.getIsReadOnly())) {
|
||||
return Result.error("固定字段,不可修改");
|
||||
}else {
|
||||
onlCgformTagService.editById(onlCgformTag);
|
||||
//onlCgformApiController.h(String.valueOf(FileTableIdEnum.FILE_TABLE_ID),"normal");
|
||||
QueryWrapper<OnlCgformTag> queryWrapper=new QueryWrapper<>();
|
||||
queryWrapper.eq("db_Field_txt",onlCgformTag.getDbFieldTxt());
|
||||
List<OnlCgformTag> 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("编辑成功!");
|
||||
}
|
||||
}
|
||||
|
||||
+1
-2
@@ -82,9 +82,8 @@ public interface IOnlCgformTagService extends IService<OnlCgformTag> {
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
Integer queryExitData(OnlCgformTag onlCgformTag) ;
|
||||
Integer queryExitData(OnlCgformTag onlCgformTag) ;
|
||||
|
||||
Integer queryExitTableData(OnlCgformTag onlCgformTag);
|
||||
|
||||
/**
|
||||
* 若区域下有标签字段 则无法删除
|
||||
|
||||
+30
-32
@@ -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<OnlCgformTagMapper, Onl
|
||||
if (onlCgformTag.getDbLength() == null){
|
||||
onlCgformTag.setDbLength(100);
|
||||
}
|
||||
|
||||
//设置标签存入数据库的字段类型
|
||||
if(onlCgformTag.getFieldShowType().equals(FieldTypeEnum.TEXT_NUMBER.getValue())){
|
||||
onlCgformTag.setDbType("int");
|
||||
}else if(onlCgformTag.getFieldShowType().equals(FieldTypeEnum.DATE_SINGLE.getValue())){
|
||||
onlCgformTag.setDbType("Date");
|
||||
}else{
|
||||
onlCgformTag.setDbType("String");
|
||||
if(onlCgformTag.getFieldShowType().equals(FieldTypeEnum.PULL_SINGLE.getValue())){
|
||||
onlCgformTag.setDbLength(36); //单个ID的最大长度是36,所以单选默认设置为36
|
||||
}else if(onlCgformTag.getFieldShowType().equals(FieldTypeEnum.PULL_MORE.getValue())){
|
||||
onlCgformTag.setDbLength(2000); // 多选默认设置为2000,即可选择2000/36=55个属性
|
||||
}
|
||||
}
|
||||
onlCgformTag.setIsDelete(CommonConstant.DEL_FLAG_0);
|
||||
onlCgformTag.setCgformHeadId(FileTableIdEnum.FILE_TABLE_ID.getValue());//设置文档库-表id
|
||||
onlCgformTag.setDbIsKey(Integer.valueOf(YesOrNoEnum.NO.getValue()));
|
||||
@@ -96,35 +107,6 @@ public class OnlCgformTagServiceImpl extends ServiceImpl<OnlCgformTagMapper, Onl
|
||||
save(onlCgformTag);
|
||||
}
|
||||
|
||||
/**
|
||||
* 校验名字,类型,长度完全相同的数据,不能加进数据库
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public Integer queryExitTableData(OnlCgformTag onlCgformTag) {
|
||||
//设置标签存入数据库的字段类型
|
||||
if(onlCgformTag.getFieldShowType().equals(FieldTypeEnum.TEXT_NUMBER.getValue())){
|
||||
onlCgformTag.setDbType("int");
|
||||
}else if(onlCgformTag.getFieldShowType().equals(FieldTypeEnum.DATE_SINGLE.getValue())){
|
||||
onlCgformTag.setDbType("Date");
|
||||
}else{
|
||||
onlCgformTag.setDbType("String");
|
||||
if(onlCgformTag.getFieldShowType().equals(FieldTypeEnum.PULL_SINGLE.getValue())){
|
||||
onlCgformTag.setDbLength(36); //单个ID的最大长度是36,所以单选默认设置为36
|
||||
}else if(onlCgformTag.getFieldShowType().equals(FieldTypeEnum.PULL_MORE.getValue())){
|
||||
onlCgformTag.setDbLength(2000); // 多选默认设置为2000,即可选择2000/36=55个属性
|
||||
}
|
||||
}
|
||||
QueryWrapper<OnlCgformTag> 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<OnlCgformTagMapper, Onl
|
||||
if(StringUtils.isNotBlank(onlCgformTag.getDbFieldEnName())){
|
||||
onlCgformTag.setDbFieldEnName(onlCgformTag.getDbFieldEnName().replace(" ","_"));
|
||||
}
|
||||
//处理DBLength为null的情况,默认为100
|
||||
if (onlCgformTag.getDbLength() == null){
|
||||
onlCgformTag.setDbLength(100);
|
||||
}
|
||||
Date now = new Date();
|
||||
onlCgformTag.setUpdateTime(now);
|
||||
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
@@ -156,6 +142,18 @@ public class OnlCgformTagServiceImpl extends ServiceImpl<OnlCgformTagMapper, Onl
|
||||
onlCgformTag.setDbLength(2000); // 多选默认设置为2000,即可选择2000/36=55个属性
|
||||
}
|
||||
}
|
||||
onlCgformTag.setIsDelete(CommonConstant.DEL_FLAG_0);
|
||||
onlCgformTag.setCgformHeadId(FileTableIdEnum.FILE_TABLE_ID.getValue());//设置文档库-表id
|
||||
onlCgformTag.setDbIsKey(Integer.valueOf(YesOrNoEnum.NO.getValue()));
|
||||
onlCgformTag.setDbIsNull(Integer.valueOf(YesOrNoEnum.YES.getValue()));
|
||||
onlCgformTag.setDbPointLength(0); //默认为0
|
||||
onlCgformTag.setIsReadOnly(Integer.valueOf(FixedFieldEnum.NON_FIXED_FIELD_ENUM.getValue()));
|
||||
onlCgformTag.setIsShowForm(Integer.valueOf(YesOrNoEnum.YES.getValue()));
|
||||
|
||||
// 数据库的字段名称必须以字母开头,若不以字母开头加上固定的grp前缀
|
||||
if (!Validator.isMatchRegex("^[a-zA-Z].*$", onlCgformTag.getDbFieldName())){
|
||||
onlCgformTag.setDbFieldName("grp_" + onlCgformTag.getDbFieldName());
|
||||
}
|
||||
saveOrUpdate(onlCgformTag);
|
||||
}
|
||||
|
||||
@@ -251,7 +249,7 @@ public class OnlCgformTagServiceImpl extends ServiceImpl<OnlCgformTagMapper, Onl
|
||||
queryWrapper.eq(OnlCgformTag::getIsModel, onlCgformTag.getIsModel())
|
||||
.eq(OnlCgformTag::getDbFieldTxt, onlCgformTag.getDbFieldTxt())
|
||||
.eq(OnlCgformTag::getDbFieldEnName, onlCgformTag.getDbFieldEnName())
|
||||
.eq(OnlCgformTag::getIsDelete,0);
|
||||
.eq(OnlCgformTag::getIsDelete,0);
|
||||
}
|
||||
Integer count = onlCgformTagMapper.selectCount(queryWrapper);
|
||||
return count;
|
||||
|
||||
Reference in New Issue
Block a user