数据字典支持动态sql,免去查询业务接口的麻烦

This commit is contained in:
thomas 2022-10-29 17:20:03 +08:00
parent 1ed63fc4ab
commit 266dbaaac8
4 changed files with 35 additions and 0 deletions

View File

@ -2,7 +2,12 @@ package net.maku.system.dao;
import net.maku.framework.common.dao.BaseDao;
import net.maku.system.entity.SysDictDataEntity;
import net.maku.system.vo.SysDictVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import java.util.List;
/**
* 字典数据
@ -12,4 +17,7 @@ import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface SysDictDataDao extends BaseDao<SysDictDataEntity> {
@Select("${sql}")
List<SysDictVO.DictData> selectListForSql(@Param("sql") String sql);
}

View File

@ -30,4 +30,12 @@ public class SysDictTypeEntity extends BaseEntity {
* 排序
*/
private Integer sort;
/**
* 类型1 静态常量 2 动态SQL
*/
private Integer type;
/**
* 动态sql
*/
private String sourceSql;
}

View File

@ -18,6 +18,7 @@ import net.maku.system.service.SysDictTypeService;
import net.maku.system.vo.SysDictVO;
import net.maku.system.query.SysDictTypeQuery;
import net.maku.system.vo.SysDictTypeVO;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -92,6 +93,18 @@ public class SysDictTypeServiceImpl extends BaseServiceImpl<SysDictTypeDao, SysD
}
}
if(type.getType() == 2){
// 增加动态列表
String sql = type.getSourceSql();
if(StringUtils.isNotBlank(sql)){
try {
dict.setDataList(sysDictDataDao.selectListForSql(sql));
} catch (Exception e) {
log.error("增加动态字典异常: type=" + type, e);
}
}
}
dictList.add(dict);
}

View File

@ -45,4 +45,10 @@ public class SysDictTypeVO implements Serializable {
@Schema(description = "更新时间")
@JsonFormat(pattern = DateUtils.DATE_TIME_PATTERN)
private Date updateTime;
@Schema(description = "类型1 静态常量 2 动态SQL")
private Integer type;
@Schema(description = "动态sql")
private String sourceSql;
}