禅道#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
@@ -47,14 +47,17 @@ public class PlateGoodDO extends BaseDO {
/**
* 纹路
*/
@TableField(updateStrategy = FieldStrategy.ALWAYS)
private Boolean texture;
/**
* 宽度
*/
@TableField(updateStrategy = FieldStrategy.ALWAYS)
private Double width;
/**
* 高度
*/
@TableField(updateStrategy = FieldStrategy.ALWAYS)
private Double height;
/**
* 厚度
@@ -63,18 +66,22 @@ public class PlateGoodDO extends BaseDO {
/**
* 价格
*/
@TableField(updateStrategy = FieldStrategy.ALWAYS)
private Double price;
/**
* 品牌
*/
@TableField(updateStrategy = FieldStrategy.ALWAYS)
private String brand;
/**
* 规格
*/
@TableField(updateStrategy = FieldStrategy.ALWAYS)
private String spec;
/**
* 备注
*/
@TableField(updateStrategy = FieldStrategy.ALWAYS)
private String remark;
/**
@@ -100,26 +100,11 @@ public class PlateManageServiceImpl implements PlateManageService {
throw exception(ErrorCodeConstants.PLATE_NOT_EXISTS);
}
validatePlateExists(updateReqVO.getId(), organId);
PlateGoodDO updateObj = BeanUtils.toBean(updateReqVO, PlateGoodDO.class);
// 校验板材goods_id是否相同
if (plateGoodMapper.isByGoodIDAndId(updateReqVO.getGoodsId(), organId, Long.valueOf(updateReqVO.getId()))) {
throw exception(PLATE_GOODS_ID_NOT_SAME);
}
PlateGoodDO updateObj = PlateGoodDO.builder()
.id(updateReqVO.getId())
.goodsId(updateReqVO.getGoodsId())
.goodsName(updateReqVO.getGoodsName())
.material(updateReqVO.getMaterial())
.color(updateReqVO.getColor())
.texture(ObjectUtil.isNull(updateReqVO.getTexture()) ? false : updateReqVO.getTexture())
.width(getZeroDouble(updateReqVO.getWidth()))
.height(getZeroDouble(updateReqVO.getHeight()))
.thickness(getZeroDouble(updateReqVO.getThickness()))
.price(getZeroDouble(updateReqVO.getPrice()))
.brand(getEmpty(updateReqVO.getBrand()))
.spec(getEmpty(updateReqVO.getSpec()))
.remark(getEmpty(updateReqVO.getRemark()))
.build();
plateGoodMapper.updateById(updateObj);
}
@@ -1,5 +1,7 @@
package com.cf.imes.module.system.dal.dataobject.dept;
import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.TableField;
import com.cf.imes.framework.common.enums.CommonStatusEnum;
import com.cf.imes.framework.organ.core.db.OrganBaseDO;
import com.cf.imes.module.system.dal.dataobject.user.AdminUserDO;
@@ -47,6 +49,7 @@ public class DeptDO extends OrganBaseDO {
*
* 关联 {@link AdminUserDO#getId()}
*/
@TableField(updateStrategy = FieldStrategy.ALWAYS)
private String leader;
/**
* 联系电话
@@ -51,6 +51,7 @@ public class DictDataDO extends BaseDO {
*
* 对应到 element-ui 为 default、primary、success、info、warning、danger
*/
@TableField(updateStrategy = FieldStrategy.ALWAYS)
private String colorType;
/**
* css 样式
@@ -60,6 +61,7 @@ public class DictDataDO extends BaseDO {
/**
* 备注
*/
@TableField(updateStrategy = FieldStrategy.ALWAYS)
private String remark;
}
@@ -1,5 +1,7 @@
package com.cf.imes.module.system.dal.dataobject.dict;
import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.TableField;
import com.cf.imes.framework.common.enums.CommonStatusEnum;
import com.cf.imes.framework.mybatis.core.dataobject.BaseDO;
import com.baomidou.mybatisplus.annotation.KeySequence;
@@ -46,6 +48,7 @@ public class DictTypeDO extends BaseDO {
/**
* 备注
*/
@TableField(updateStrategy = FieldStrategy.ALWAYS)
private String remark;
/**
@@ -1,5 +1,6 @@
package com.cf.imes.module.system.dal.dataobject.notify;
import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.cf.imes.framework.common.enums.CommonStatusEnum;
import com.cf.imes.framework.mybatis.core.dataobject.BaseDO;
import com.baomidou.mybatisplus.annotation.KeySequence;
@@ -67,6 +68,7 @@ public class NotifyTemplateDO extends BaseDO {
/**
* 备注
*/
@TableField(updateStrategy = FieldStrategy.ALWAYS)
private String remark;
}
@@ -1,5 +1,7 @@
package com.cf.imes.module.system.dal.dataobject.organ;
import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.TableField;
import com.cf.imes.framework.common.enums.CommonStatusEnum;
import com.cf.imes.framework.mybatis.core.dataobject.BaseDO;
import com.cf.imes.module.system.dal.dataobject.user.AdminUserDO;
@@ -40,6 +42,7 @@ public class OrganizationDO extends BaseDO {
/**
* 组织代码
*/
@TableField(updateStrategy = FieldStrategy.ALWAYS)
private String code;
/**
* 拼音首字母
@@ -52,6 +55,7 @@ public class OrganizationDO extends BaseDO {
/**
* 地址
*/
@TableField(updateStrategy = FieldStrategy.ALWAYS)
private String address;
/**
* 联系人的用户编号
@@ -76,6 +80,7 @@ public class OrganizationDO extends BaseDO {
/**
* 绑定域名
*/
@TableField(updateStrategy = FieldStrategy.ALWAYS)
private String website;
/**
* 组织套餐编号
@@ -1,5 +1,6 @@
package com.cf.imes.module.system.dal.dataobject.organ;
import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.cf.imes.framework.common.enums.CommonStatusEnum;
import com.cf.imes.framework.mybatis.core.dataobject.BaseDO;
import com.cf.imes.framework.mybatis.core.type.JsonLongSetTypeHandler;
@@ -42,6 +43,7 @@ public class TenantPackageDO extends BaseDO {
/**
* 备注
*/
@TableField(updateStrategy = FieldStrategy.ALWAYS)
private String remark;
/**
* 关联的菜单编号
@@ -1,5 +1,7 @@
package com.cf.imes.module.system.dal.dataobject.permission;
import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.TableField;
import com.cf.imes.framework.common.enums.CommonStatusEnum;
import com.cf.imes.framework.mybatis.core.dataobject.BaseDO;
import com.cf.imes.module.system.enums.permission.MenuTypeEnum;
@@ -68,6 +70,7 @@ public class MenuDO extends BaseDO {
/**
* 菜单图标
*/
@TableField(updateStrategy = FieldStrategy.ALWAYS)
private String icon;
/**
* 组件路径
@@ -1,10 +1,10 @@
package com.cf.imes.module.system.dal.dataobject.permission;
import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.cf.imes.framework.common.enums.CommonStatusEnum;
import com.cf.imes.framework.mybatis.core.dataobject.BaseDO;
import com.cf.imes.framework.mybatis.core.type.JsonLongSetTypeHandler;
import com.cf.imes.module.system.enums.permission.DataScopeEnum;
import com.cf.imes.framework.organ.core.db.OrganBaseDO;
import com.cf.imes.module.system.enums.permission.RoleTypeEnum;
import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableField;
@@ -60,6 +60,7 @@ public class RoleDO extends BaseDO {
/**
* 备注
*/
@TableField(updateStrategy = FieldStrategy.ALWAYS)
private String remark;
/**
@@ -1,5 +1,6 @@
package com.cf.imes.module.system.dal.dataobject.sms;
import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.cf.imes.module.system.enums.sms.SmsTemplateTypeEnum;
import com.cf.imes.framework.common.enums.CommonStatusEnum;
import com.cf.imes.framework.mybatis.core.dataobject.BaseDO;
@@ -67,6 +68,7 @@ public class SmsTemplateDO extends BaseDO {
/**
* 备注
*/
@TableField(updateStrategy = FieldStrategy.ALWAYS)
private String remark;
/**
* 短信 API 的模板编号
@@ -56,6 +56,7 @@ public class TokenConfigDO extends BaseDO {
/**
* 备注
*/
@TableField(updateStrategy = FieldStrategy.ALWAYS)
private String remark;
/**
@@ -1,5 +1,6 @@
package com.cf.imes.module.system.dal.dataobject.user;
import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.cf.imes.framework.common.enums.CommonStatusEnum;
import com.cf.imes.framework.mybatis.core.type.JsonLongSetTypeHandler;
import com.cf.imes.framework.organ.core.db.OrganBaseDO;
@@ -50,6 +51,7 @@ public class AdminUserDO extends OrganBaseDO {
/**
* 备注
*/
@TableField(updateStrategy = FieldStrategy.ALWAYS)
private String remark;
/**
* 部门 ID
@@ -63,6 +65,7 @@ public class AdminUserDO extends OrganBaseDO {
/**
* 用户邮箱
*/
@TableField(updateStrategy = FieldStrategy.ALWAYS)
private String email;
/**
* 手机号码
@@ -73,6 +76,7 @@ public class AdminUserDO extends OrganBaseDO {
*
* 枚举类 {@link SexEnum}
*/
@TableField(updateStrategy = FieldStrategy.ALWAYS)
private Integer sex;
/**
* 用户头像