禅道#1439问题修复 & 基础、系统配置非必填字段无法重置问题修复

This commit is contained in:
gaoqr
2025-03-28 15:07:55 +08:00
parent c3368a65b0
commit d72d6961aa
14 changed files with 88 additions and 21 deletions
@@ -1,6 +1,8 @@
package com.cf.imes.framework.mybatis.core.handler;
import cn.hutool.core.text.CharSequenceUtil;
import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.core.metadata.TableFieldInfo;
import com.cf.imes.framework.common.util.json.JsonUtils;
import com.cf.imes.framework.mybatis.OAuth2AccessTokenDO;
import com.cf.imes.framework.mybatis.core.dataobject.BaseDO;
@@ -13,7 +15,9 @@ import org.springframework.util.StringUtils;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Objects;
@@ -82,10 +86,10 @@ public class DefaultDBFieldHandler implements MetaObjectHandler {
OAuth2AccessTokenDO oAuth2AccessTokenDO = get(authorization);
organId = oAuth2AccessTokenDO.getOrganId();
}catch (Exception e){
} catch (Exception e) {
}
this.strictInsertFill(metaObject, "organId", Long.class, organId );
this.strictInsertFill(metaObject, "organId", Long.class, organId);
}
@@ -122,14 +126,57 @@ public class DefaultDBFieldHandler implements MetaObjectHandler {
organId = oAuth2AccessTokenDO.getOrganId();
}catch (Exception e){
} catch (Exception e) {
}
this.strictUpdateFill(metaObject, "organId", Long.class, organId );
this.strictUpdateFill(metaObject, "organId", Long.class, organId);
// 更新update.always字段为空时的默认值
this.updateFillNullWhenUpdateAlways(metaObject);
}
/**
* 当更新时,字段是updateStrategy = FieldStrategy.ALWAYS标记下为空,更新为默认值
*
* @param metaObject
*/
private void updateFillNullWhenUpdateAlways(MetaObject metaObject) {
List<TableFieldInfo> fieldList = findTableInfo(metaObject).getFieldList();
fieldList.forEach(f -> {
if (FieldStrategy.ALWAYS.equals(f.getUpdateStrategy())) {
String columnName = f.getProperty();
if (metaObject.getValue(columnName) == null) {
getDefaultFromPropertyType(metaObject, columnName, f.getPropertyType());
}
}
});
}
/**
* 根据字段类型获取相应的默认值
*
* @param metaObject
* @param columnName
* @param propertyType
*/
private void getDefaultFromPropertyType(MetaObject metaObject, String columnName, Class<?> propertyType) {
if (propertyType.equals(Double.class)) {
metaObject.setValue(columnName, 0.0);
}
if (propertyType.equals(Boolean.class)) {
metaObject.setValue(columnName, false);
}
if (propertyType.equals(Integer.class)) {
metaObject.setValue(columnName, 0);
}
if (propertyType.equals(BigDecimal.class)) {
metaObject.setValue(columnName, BigDecimal.ZERO);
}
if (propertyType.equals(String.class)) {
metaObject.setValue(columnName, "");
}
}
// 从请求中获取到 token