!4 数据字典增加支持动态SQL,可以不需要去写接口查询业务数据表。

Merge pull request !4 from thomas/dynamic_dict
This commit is contained in:
阿沐 2022-10-29 09:35:30 +00:00 committed by Gitee
commit 4ac9e33739
No known key found for this signature in database
GPG Key ID: 173E9B9CA92EEF8F
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.framework.common.dao.BaseDao;
import net.maku.system.entity.SysDictDataEntity; import net.maku.system.entity.SysDictDataEntity;
import net.maku.system.vo.SysDictVO;
import org.apache.ibatis.annotations.Mapper; 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 @Mapper
public interface SysDictDataDao extends BaseDao<SysDictDataEntity> { 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; 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.vo.SysDictVO;
import net.maku.system.query.SysDictTypeQuery; import net.maku.system.query.SysDictTypeQuery;
import net.maku.system.vo.SysDictTypeVO; import net.maku.system.vo.SysDictTypeVO;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; 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); dictList.add(dict);
} }

View File

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