mirror of
http://192.168.1.205:9980/cf_devdept2/cf_imes_server.git
synced 2026-08-12 21:02:08 +08:00
禅道#1439问题修复 & 基础、系统配置非必填字段无法重置问题修复
This commit is contained in:
+51
-4
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user