2023年4月15日 修复问题

This commit is contained in:
bai 2023-04-15 15:50:14 +08:00
parent fa70cfcbb1
commit 58be92defa
7 changed files with 73 additions and 9 deletions

View File

@ -194,6 +194,22 @@ public class KcTingke implements Serializable {
private java.lang.String pj; private java.lang.String pj;
/**
* 分页
*/
@TableField(exist = false)
private Integer pageSize;
/**
* 开始时间搜索
*/
@TableField(exist = false)
private String startDate;
/**
* 结束时间搜索
*/
@TableField(exist = false)
private String endDate;
// private java.lang.String tingketime; // private java.lang.String tingketime;
} }

View File

@ -432,6 +432,7 @@
</if> </if>
ORDER BY tk.tingketime DESC ORDER BY tk.tingketime DESC
LIMIT 3 LIMIT 3
) tk ) tk
LEFT JOIN ( LEFT JOIN (
SELECT SELECT
@ -454,19 +455,33 @@
) ev ON tk.ketangbiaoid = ev.ketangbiaoid ) ev ON tk.ketangbiaoid = ev.ketangbiaoid
<where> <where>
<if test="startDate != null and startDate != ''">
and tkrq >= #{startDate}
</if>
<if test="endDate != null and endDate != ''">
and tkrq <![CDATA[<=]]> #{endDate}
<!-- tkrq &lt;= #{endDate}-->
</if>
<if test="searchInput != null and searchInput != ''"> <if test="searchInput != null and searchInput != ''">
(kcmc like CONCAT('%',searchInput,'%') or skjs like CONCAT('%',searchInput,'%')) and (kcmc like CONCAT('%',#{searchInput},'%') or skjs like CONCAT('%',#{searchInput},'%'))
</if> </if>
<if test="pj != null and pj != ''"> <if test="pj != null and pj != ''">
<if test="pj == '0'"> <if test="pj == '0'">
score is null and score is null
</if> </if>
<if test="pj == '1'"> <if test="pj == '1'">
score is not null and score is not null
</if> </if>
</if> </if>
</where> </where>
<if test="pageSize != -1 and pageSize != null">
LIMIT #{pageSize}
</if>
<if test="pageSize != -1 and pageSize != null">
LIMIT #{pageSize}
</if>
</select> </select>

View File

@ -87,6 +87,8 @@ public interface SysDictMapper extends BaseMapper<SysDict> {
@Deprecated @Deprecated
public List<DictModel> queryTableDictItemsByCodeAndFilter(@Param("table") String table,@Param("text") String text,@Param("code") String code,@Param("filterSql") String filterSql); public List<DictModel> queryTableDictItemsByCodeAndFilter(@Param("table") String table,@Param("text") String text,@Param("code") String code,@Param("filterSql") String filterSql);
List<DictModel> queryTableDictItemsByCodeAndFilterAndOrderBy(@Param("table") String table,@Param("text") String text,@Param("code") String code,@Param("filterSql") String filterSql, @Param("orderByList") List orderByList);
/** /**
* 通过查询指定table的 text code 获取字典 * 通过查询指定table的 text code 获取字典
* @param table * @param table
@ -272,4 +274,5 @@ public interface SysDictMapper extends BaseMapper<SysDict> {
*/ */
@InterceptorIgnore(tenantLine = "true") @InterceptorIgnore(tenantLine = "true")
List<SysDict> getDictListByLowAppId(@Param("lowAppId") String lowAppId, @Param("tenantId") Integer tenantId); List<SysDict> getDictListByLowAppId(@Param("lowAppId") String lowAppId, @Param("tenantId") Integer tenantId);
} }

View File

@ -74,6 +74,19 @@
where ${filterSql} where ${filterSql}
</if> </if>
</select> </select>
<select id="queryTableDictItemsByCodeAndFilterAndOrderBy" resultType="org.jeecg.common.system.vo.DictModel">
select ${text} as "text",${code} as "value" from ${table}
<if test="filterSql != null and filterSql != ''">
where ${filterSql}
</if>
<if test="orderByList != null and orderByList != ''">
<foreach item="item" index="index" collection="orderByList" open="order by" separator="," close="">
#{item}
</foreach>
</if>
</select>
<!--通过查询指定table的 text code key 获取字典值--> <!--通过查询指定table的 text code key 获取字典值-->
<select id="queryTableDictTextByKey" parameterType="String" resultType="String"> <select id="queryTableDictTextByKey" parameterType="String" resultType="String">

View File

@ -86,6 +86,8 @@ public interface ISysDictService extends IService<SysDict> {
*/ */
Map<String, List<DictModel>> queryManyDictByKeys(List<String> dictCodeList, List<String> keys); Map<String, List<DictModel>> queryManyDictByKeys(List<String> dictCodeList, List<String> keys);
List<DictModel> queryTableDictItemsByCodeAndFilterAndOrderBy(String table, String text, String code, String filterSql, List orderBy);
/** /**
* 通过查询指定table的 text code key 获取字典值 * 通过查询指定table的 text code key 获取字典值
* @param table * @param table

View File

@ -13,7 +13,6 @@ import org.jeecg.common.constant.DataBaseConstant;
import org.jeecg.common.constant.SymbolConstant; import org.jeecg.common.constant.SymbolConstant;
import org.jeecg.common.exception.JeecgBootException; import org.jeecg.common.exception.JeecgBootException;
import org.jeecg.common.system.query.QueryGenerator; import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.common.system.util.JwtUtil;
import org.jeecg.common.system.util.ResourceUtil; import org.jeecg.common.system.util.ResourceUtil;
import org.jeecg.common.system.vo.DictModel; import org.jeecg.common.system.vo.DictModel;
import org.jeecg.common.system.vo.DictModelMany; import org.jeecg.common.system.vo.DictModelMany;
@ -170,6 +169,12 @@ public class SysDictServiceImpl extends ServiceImpl<SysDictMapper, SysDict> impl
return sysDictMapper.queryTableDictItemsByCodeAndFilter(table,text,code,filterSql); return sysDictMapper.queryTableDictItemsByCodeAndFilter(table,text,code,filterSql);
} }
@Override
public List<DictModel> queryTableDictItemsByCodeAndFilterAndOrderBy(String table, String text, String code, String filterSql, List orderByList) {
log.debug("无缓存dictTableList的时候调用这里");
return sysDictMapper.queryTableDictItemsByCodeAndFilterAndOrderBy(table,text,code,filterSql,orderByList);
}
/** /**
* 通过查询指定table的 text code 获取字典值text * 通过查询指定table的 text code 获取字典值text
* dictTableCache采用redis缓存有效期10分钟 * dictTableCache采用redis缓存有效期10分钟
@ -427,7 +432,13 @@ public class SysDictServiceImpl extends ServiceImpl<SysDictMapper, SysDict> impl
//update-end-author:taoyan date:2022-7-4 for: issues/I5BNY9 指定带过滤条件的字典table在生成代码后失效 //update-end-author:taoyan date:2022-7-4 for: issues/I5BNY9 指定带过滤条件的字典table在生成代码后失效
//issues/3713字典接口存在SQL注入风险 //issues/3713字典接口存在SQL注入风险
SqlInjectionUtil.filterContent(sqlInjCheck); SqlInjectionUtil.filterContent(sqlInjCheck);
if (params.length == 4) { if (params.length == 5) {
// SQL注入校验查询条件SQL 特殊check此方法仅供此处使用
SqlInjectionUtil.specialFilterContentForDictSql(params[3]);
String orderByStr = params[4];
String[] orderByArray = orderByStr.split("\\|");//排序分隔符
ls = this.queryTableDictItemsByCodeAndFilterAndOrderBy(params[0], params[1], params[2], params[3],Arrays.asList(orderByArray));
} else if (params.length == 4) {
// SQL注入校验查询条件SQL 特殊check此方法仅供此处使用 // SQL注入校验查询条件SQL 特殊check此方法仅供此处使用
SqlInjectionUtil.specialFilterContentForDictSql(params[3]); SqlInjectionUtil.specialFilterContentForDictSql(params[3]);
ls = this.queryTableDictItemsByCodeAndFilter(params[0], params[1], params[2], params[3]); ls = this.queryTableDictItemsByCodeAndFilter(params[0], params[1], params[2], params[3]);

View File

@ -138,6 +138,10 @@
<artifactId>pegdown</artifactId> <artifactId>pegdown</artifactId>
<version>${pegdown.version}</version> <version>${pegdown.version}</version>
</dependency> </dependency>
<dependency>
<groupId>org.jeecgframework.boot</groupId>
<artifactId>jeecg-boot-base-core</artifactId>
</dependency>
</dependencies> </dependencies>