1.给菜单类添加类型转换器功能解决mysql迁库pg的问题

This commit is contained in:
panbaolin 2025-08-15 09:07:39 +08:00
parent e5ad6fd156
commit 061f8d8211
4 changed files with 68 additions and 10 deletions

View File

@ -0,0 +1,59 @@
package org.jeecg.config.mybatis;
import lombok.val;
import org.apache.ibatis.type.BaseTypeHandler;
import org.apache.ibatis.type.JdbcType;
import java.sql.CallableStatement;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class CustomBooleanToInt2TypeHandler extends BaseTypeHandler<Boolean> {
/**
* @param ps
* @param i
* @param parameter
* @param jdbcType
* @throws SQLException
*/
@Override
public void setNonNullParameter(PreparedStatement ps, int i, Boolean parameter, JdbcType jdbcType) throws SQLException {
ps.setInt(i,parameter==true?1:0);
}
/**
* @param rs
* @param columnName
* @return
* @throws SQLException
*/
@Override
public Boolean getNullableResult(ResultSet rs, String columnName) throws SQLException {
int value = rs.getInt(columnName);
return value==1;
}
/**
* @param rs
* @param columnIndex
* @return
* @throws SQLException
*/
@Override
public Boolean getNullableResult(ResultSet rs, int columnIndex) throws SQLException {
return null;
}
/**
* @param cs
* @param columnIndex
* @return
* @throws SQLException
*/
@Override
public Boolean getNullableResult(CallableStatement cs, int columnIndex) throws SQLException {
return null;
}
}

View File

@ -1,16 +1,10 @@
package org.jeecg.config; package org.jeecg.config;
import feign.Feign;
import feign.RequestTemplate; import feign.RequestTemplate;
import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletRequest;
import org.apache.http.HttpHeaders;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes; import org.springframework.web.context.request.ServletRequestAttributes;
import feign.Logger;
import feign.RequestInterceptor; import feign.RequestInterceptor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;

View File

@ -9,6 +9,7 @@ import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors; import lombok.experimental.Accessors;
import org.jeecg.common.aspect.annotation.Dict; import org.jeecg.common.aspect.annotation.Dict;
import org.jeecg.config.mybatis.CustomBooleanToInt2TypeHandler;
import org.jeecg.modules.system.constant.DefIndexConst; import org.jeecg.modules.system.constant.DefIndexConst;
/** /**
@ -89,20 +90,20 @@ public class SysPermission implements Serializable {
/** /**
* 是否叶子节点: 1: 0:不是 * 是否叶子节点: 1: 0:不是
*/ */
@TableField(value="is_leaf") @TableField(value="is_leaf",typeHandler = CustomBooleanToInt2TypeHandler.class)
private boolean leaf; private boolean leaf;
/** /**
* 是否路由菜单: 0:不是 1:默认值1 * 是否路由菜单: 0:不是 1:默认值1
*/ */
@TableField(value="is_route") @TableField(value="is_route",typeHandler = CustomBooleanToInt2TypeHandler.class)
private boolean route; private boolean route;
/** /**
* 是否缓存页面: 0:不是 1:默认值1 * 是否缓存页面: 0:不是 1:默认值1
*/ */
@TableField(value="keep_alive") @TableField(value="keep_alive",typeHandler = CustomBooleanToInt2TypeHandler.class)
private boolean keepAlive; private boolean keepAlive;
/** /**
@ -128,11 +129,13 @@ public class SysPermission implements Serializable {
/** /**
* 是否隐藏路由菜单: 0否,1是默认值0 * 是否隐藏路由菜单: 0否,1是默认值0
*/ */
@TableField(value="hidden",typeHandler = CustomBooleanToInt2TypeHandler.class)
private boolean hidden; private boolean hidden;
/** /**
* 是否隐藏Tab: 0否,1是默认值0 * 是否隐藏Tab: 0否,1是默认值0
*/ */
@TableField(value="hide_tab",typeHandler = CustomBooleanToInt2TypeHandler.class)
private boolean hideTab; private boolean hideTab;
/** /**
@ -154,10 +157,12 @@ public class SysPermission implements Serializable {
private java.lang.String status; private java.lang.String status;
/**alwaysShow*/ /**alwaysShow*/
@TableField(value = "always_show",typeHandler = CustomBooleanToInt2TypeHandler.class)
private boolean alwaysShow; private boolean alwaysShow;
/*update_begin author:wuxianquan date:20190908 for:实体增加字段 */ /*update_begin author:wuxianquan date:20190908 for:实体增加字段 */
/** 外链菜单打开方式 0/内部打开 1/外部打开 */ /** 外链菜单打开方式 0/内部打开 1/外部打开 */
@TableField(value = "internal_or_external",typeHandler = CustomBooleanToInt2TypeHandler.class)
private boolean internalOrExternal; private boolean internalOrExternal;
/*update_end author:wuxianquan date:20190908 for:实体增加字段 */ /*update_end author:wuxianquan date:20190908 for:实体增加字段 */

View File

@ -311,7 +311,7 @@ public class SysPermissionServiceImpl extends ServiceImpl<SysPermissionMapper, S
@Override @Override
public boolean checkPermDuplication(String id, String url,Boolean alwaysShow) { public boolean checkPermDuplication(String id, String url,Boolean alwaysShow) {
QueryWrapper<SysPermission> qw=new QueryWrapper(); QueryWrapper<SysPermission> qw=new QueryWrapper();
qw.lambda().eq(true,SysPermission::getUrl,url).ne(oConvertUtils.isNotEmpty(id),SysPermission::getId,id).eq(true,SysPermission::isAlwaysShow,alwaysShow); qw.lambda().eq(true,SysPermission::getUrl,url).ne(oConvertUtils.isNotEmpty(id),SysPermission::getId,id).eq(true,SysPermission::isAlwaysShow,alwaysShow==true?1:0);
return count(qw)==0; return count(qw)==0;
} }