Commit e223c748 authored by “yiyousong”'s avatar “yiyousong”
parents 016dba0a 1de2c28d
......@@ -9569,7 +9569,19 @@ data|object|数据对象
  createTime|Date|创建时间
  updateUserId|Long|更新用户
  updateTime|Date|更新时间
dict|object|字典对象
  appInfoFieldList|array|属性列表|数组
   id|Long|序号,主键,自增长
   datasetId|Long|应用数据集id
   fieldCode|String|字段编码
   fieldName|String|字段名称
   fieldType|String|字段类型(input.单行输入框,textarea.多行输入框,SELECT.下拉选项框,date.日期选择框)
   dataType|String|数据类型(number.数字,string.字符串)
   fieldValue|String|字段值
   fieldLen|Integer|数据长度,默认128
   fieldNull|Integer|是否允许为空,(0.否,1.是)
   isList|Integer|字段是否列表显示(0.否,1.是)
   fieldOrderNo|String|排序号
   remark|String|备注
**响应消息样例:**
......
......@@ -2,6 +2,7 @@ package com.mortals.xhx.module.app.model.vo;
import com.mortals.framework.model.BaseEntityLong;
import com.mortals.xhx.module.app.model.AppDatasetEntity;
import com.mortals.xhx.module.app.model.AppDatasetQuery;
import lombok.Data;
import java.util.ArrayList;
......@@ -33,4 +34,14 @@ public class AppDatasetVo extends BaseEntityLong {
private List<Long> idList;
private List<String> fieldNameList;
private List<String> fieldValueList;
/** OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4) */
private List<AppDatasetQuery> orConditionList;
/** AND条件集合,列表项之间是AND,项内容之间是OR,如:(list[0].1 or list[0].2) and (list[1].3 or list[1].4) */
private List<AppDatasetQuery> andConditionList;
}
\ No newline at end of file
package com.mortals.xhx.module.app.web;
import cn.hutool.core.net.url.UrlBuilder;
import cn.hutool.core.util.ZipUtil;
import com.mortals.framework.common.Rest;
import com.mortals.framework.exception.AppException;
import com.mortals.framework.model.Context;
import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
import com.mortals.xhx.base.system.param.service.ParamService;
import com.mortals.xhx.common.code.AppFieldTypeEnum;
import com.mortals.xhx.common.code.AppTypeEnum;
import com.mortals.xhx.common.code.DataTypeEnum;
import com.mortals.xhx.common.code.YesNoEnum;
import com.mortals.xhx.module.app.model.AppEntity;
import com.mortals.xhx.module.app.model.AppQuery;
......
package com.mortals.xhx.module.app.web;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSON;
import com.mortals.framework.exception.AppException;
import com.mortals.framework.model.PageInfo;
import com.mortals.framework.model.Result;
......@@ -24,15 +25,11 @@ import com.mortals.xhx.module.app.service.AppDatasetService;
import org.apache.commons.lang3.ArrayUtils;
import com.mortals.framework.util.StringUtils;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.stream.Collectors;
import com.alibaba.fastjson.JSONObject;
import java.util.Arrays;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
......@@ -63,6 +60,22 @@ public class AppDatasetController extends BaseCRUDJsonBodyMappingController<AppD
@Override
protected void doListBefore(AppDatasetEntity query, Map<String, Object> model, Context context) throws AppException {
if(!ObjectUtils.isEmpty(query.getOrConditionList())){
AppDatasetQuery appDatasetQuery = new AppDatasetQuery();
appDatasetQuery.setAndConditionList(query.getOrConditionList());
appDatasetQuery.setAppId(query.getAppId());
PageInfo pageInfo = this.buildPageInfo(query);
Result<AppInfoFieldEntity> customResult = this.service.findCustomList(appDatasetQuery, pageInfo, context);
List<Long> datasetIdList = customResult.getList().stream().map(item -> item.getDatasetId()).collect(Collectors.toList());
if (!ObjectUtils.isEmpty(datasetIdList)) {
query.setIdList(datasetIdList);
}
query.setOrConditionList(null);
}
if (!ObjectUtils.isEmpty(query.getFieldCode())||!ObjectUtils.isEmpty(query.getFieldName())) {
AppDatasetQuery appDatasetQuery = new AppDatasetQuery();
appDatasetQuery.setFieldCode(query.getFieldCode());
......@@ -80,4 +93,25 @@ public class AppDatasetController extends BaseCRUDJsonBodyMappingController<AppD
}
super.doListBefore(query, model, context);
}
public static void main(String[] args) {
ArrayList<AppDatasetQuery> list = new ArrayList<>();
AppDatasetQuery condition = new AppDatasetQuery();
condition.setFieldName("制定机关");
condition.setFieldValue("%四川省人民政府%");
list.add(condition);
condition = new AppDatasetQuery();
condition.setFieldName("标题");
condition.setFieldValue("%范性文件%");
list.add(condition);
AppDatasetEntity appDatasetEntity = new AppDatasetEntity();
// appDatasetEntity.setAndConditionList(list);
System.out.println(JSON.toJSONString(appDatasetEntity));
}
}
\ No newline at end of file
......@@ -8,14 +8,16 @@
count( 1 )
FROM
mortals_sys_app_dataset a
LEFT JOIN mortals_sys_app_info_field b ON a.id = b.datasetId
LEFT JOIN mortals_sys_app_info_field b ON b.id = b.datasetId
<trim suffixOverrides="where" suffix="">
where 1=1 and
<trim prefixOverrides="and" prefix="">
<if test="condition.appId!=null and condition.appId!=''">
and a.appId = #{condition.appId,jdbcType=VARCHAR}
</if>
<if test="condition.fieldCode!=null and condition.fieldCode!=''">
<include refid="_second_condition_"/>
<!-- <if test="condition.fieldCode!=null and condition.fieldCode!=''">
and b.fieldCode = #{condition.fieldCode,jdbcType=VARCHAR}
</if>
<if test="condition.fieldName!=null and condition.fieldName!=''">
......@@ -23,7 +25,7 @@
</if>
<if test="condition.fieldValue != null and condition.fieldValue != ''">
and b.fieldValue like #{condition.fieldValue}
</if>
</if>-->
</trim>
</trim>
......@@ -35,13 +37,16 @@
<include refid="_columns_sub"/>
FROM
mortals_sys_app_dataset a
LEFT JOIN mortals_sys_app_info_field b ON a.id = b.datasetId
LEFT JOIN mortals_sys_app_info_field b ON b.id = b.datasetId
<trim suffixOverrides="where" suffix="">
where 1=1 and
<trim prefixOverrides="and" prefix="">
<if test="condition.appId!=null and condition.appId!=''">
and a.appId = #{condition.appId,jdbcType=VARCHAR}
</if>
<include refid="_second_condition_"/>
<!--
<if test="condition.fieldCode!=null and condition.fieldCode!=''">
and b.fieldCode = #{condition.fieldCode,jdbcType=VARCHAR}
</if>
......@@ -50,8 +55,318 @@
</if>
<if test="condition.fieldValue != null and condition.fieldValue != ''">
and b.fieldValue like #{condition.fieldValue}
</if>
</if>-->
</trim>
</trim>
</select>
<!-- 条件映射 -->
<sql id="_second_condition_">
<if test="condition != null and !condition.isEmpty()">
<!-- 条件映射-普通条件 -->
<include refid="_second_condition_param_">
<property name="_conditionParam_" value="condition"/>
<property name="_conditionType_" value="and"/>
</include>
<!-- 条件映射-集合之间使用AND,集合中元素使用OR-(list[0].1 or list[0].2) and (list[1].3 or list[1].4) -->
<if test="condition.containsKey('andConditionList') and !condition.andConditionList.isEmpty()">
and
<foreach collection="condition.andConditionList" open="(" close=")" index="index" item="andCondition" separator=" and ">
<trim prefixOverrides="or" prefix="(" suffix=")">
<include refid="_second_condition_param_">
<property name="_conditionParam_" value="andCondition"/>
<property name="_conditionType_" value="or"/>
</include>
</trim>
</foreach>
</if>
<!-- 条件映射-集合之间使用OR,集合中元素使用AND-(list[0].1 and list[0].2) or (list[1].3 and list[1].4) -->
<if test="condition.containsKey('orConditionList') and !condition.orConditionList.isEmpty()">
and
<foreach collection="condition.orConditionList" open="(" close=")" index="index" item="orCondition" separator=" or ">
<trim prefixOverrides="and" prefix="(" suffix=")">
<include refid="_second_condition_param_">
<property name="_conditionParam_" value="orCondition"/>
<property name="_conditionType_" value="and"/>
</include>
</trim>
</foreach>
</if>
</if>
</sql>
<!-- 条件映射-代参数 -->
<sql id="_second_condition_param_">
<bind name="conditionParamRef" value="${_conditionParam_}"/>
<if test="conditionParamRef.containsKey('datasetId')">
<if test="conditionParamRef.datasetId != null ">
${_conditionType_} b.datasetId = #{${_conditionParam_}.datasetId}
</if>
<if test="conditionParamRef.datasetId == null">
${_conditionType_} b.datasetId is null
</if>
</if>
<if test="conditionParamRef.containsKey('datasetIdList')">
${_conditionType_} b.datasetId in
<foreach collection="conditionParamRef.datasetIdList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('datasetIdStart') and conditionParamRef.datasetIdStart != null">
${_conditionType_} b.datasetId <![CDATA[ >= ]]> #{${_conditionParam_}.datasetIdStart}
</if>
<if test="conditionParamRef.containsKey('datasetIdEnd') and conditionParamRef.datasetIdEnd != null">
${_conditionType_} b.datasetId <![CDATA[ <= ]]> #{${_conditionParam_}.datasetIdEnd}
</if>
<if test="conditionParamRef.containsKey('fieldCode')">
<if test="conditionParamRef.fieldCode != null and conditionParamRef.fieldCode != ''">
${_conditionType_} b.fieldCode like #{${_conditionParam_}.fieldCode}
</if>
<if test="conditionParamRef.fieldCode == null">
${_conditionType_} b.fieldCode is null
</if>
</if>
<if test="conditionParamRef.containsKey('fieldCodeList')">
${_conditionType_} b.fieldCode in
<foreach collection="conditionParamRef.fieldCodeList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('fieldName')">
<if test="conditionParamRef.fieldName != null and conditionParamRef.fieldName != ''">
${_conditionType_} b.fieldName like #{${_conditionParam_}.fieldName}
</if>
<if test="conditionParamRef.fieldName == null">
${_conditionType_} b.fieldName is null
</if>
</if>
<if test="conditionParamRef.containsKey('fieldNameList')">
${_conditionType_} b.fieldName in
<foreach collection="conditionParamRef.fieldNameList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('fieldType')">
<if test="conditionParamRef.fieldType != null and conditionParamRef.fieldType != ''">
${_conditionType_} b.fieldType like #{${_conditionParam_}.fieldType}
</if>
<if test="conditionParamRef.fieldType == null">
${_conditionType_} b.fieldType is null
</if>
</if>
<if test="conditionParamRef.containsKey('fieldTypeList')">
${_conditionType_} b.fieldType in
<foreach collection="conditionParamRef.fieldTypeList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('dataType')">
<if test="conditionParamRef.dataType != null and conditionParamRef.dataType != ''">
${_conditionType_} b.dataType like #{${_conditionParam_}.dataType}
</if>
<if test="conditionParamRef.dataType == null">
${_conditionType_} b.dataType is null
</if>
</if>
<if test="conditionParamRef.containsKey('dataTypeList')">
${_conditionType_} b.dataType in
<foreach collection="conditionParamRef.dataTypeList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('fieldValue')">
<if test="conditionParamRef.fieldValue != null and conditionParamRef.fieldValue != ''">
${_conditionType_} b.fieldValue like #{${_conditionParam_}.fieldValue}
</if>
<if test="conditionParamRef.fieldValue == null">
${_conditionType_} b.fieldValue is null
</if>
</if>
<if test="conditionParamRef.containsKey('fieldValueList')">
${_conditionType_} b.fieldValue in
<foreach collection="conditionParamRef.fieldValueList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('fieldLen')">
<if test="conditionParamRef.fieldLen != null ">
${_conditionType_} b.fieldLen = #{${_conditionParam_}.fieldLen}
</if>
<if test="conditionParamRef.fieldLen == null">
${_conditionType_} b.fieldLen is null
</if>
</if>
<if test="conditionParamRef.containsKey('fieldLenList')">
${_conditionType_} b.fieldLen in
<foreach collection="conditionParamRef.fieldLenList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('fieldLenStart') and conditionParamRef.fieldLenStart != null">
${_conditionType_} b.fieldLen <![CDATA[ >= ]]> #{${_conditionParam_}.fieldLenStart}
</if>
<if test="conditionParamRef.containsKey('fieldLenEnd') and conditionParamRef.fieldLenEnd != null">
${_conditionType_} b.fieldLen <![CDATA[ <= ]]> #{${_conditionParam_}.fieldLenEnd}
</if>
<if test="conditionParamRef.containsKey('fieldNull')">
<if test="conditionParamRef.fieldNull != null ">
${_conditionType_} b.fieldNull = #{${_conditionParam_}.fieldNull}
</if>
<if test="conditionParamRef.fieldNull == null">
${_conditionType_} b.fieldNull is null
</if>
</if>
<if test="conditionParamRef.containsKey('fieldNullList')">
${_conditionType_} b.fieldNull in
<foreach collection="conditionParamRef.fieldNullList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('fieldNullStart') and conditionParamRef.fieldNullStart != null">
${_conditionType_} b.fieldNull <![CDATA[ >= ]]> #{${_conditionParam_}.fieldNullStart}
</if>
<if test="conditionParamRef.containsKey('fieldNullEnd') and conditionParamRef.fieldNullEnd != null">
${_conditionType_} b.fieldNull <![CDATA[ <= ]]> #{${_conditionParam_}.fieldNullEnd}
</if>
<if test="conditionParamRef.containsKey('isList')">
<if test="conditionParamRef.isList != null ">
${_conditionType_} b.isList = #{${_conditionParam_}.isList}
</if>
<if test="conditionParamRef.isList == null">
${_conditionType_} b.isList is null
</if>
</if>
<if test="conditionParamRef.containsKey('isListList')">
${_conditionType_} b.isList in
<foreach collection="conditionParamRef.isListList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('isListStart') and conditionParamRef.isListStart != null">
${_conditionType_} b.isList <![CDATA[ >= ]]> #{${_conditionParam_}.isListStart}
</if>
<if test="conditionParamRef.containsKey('isListEnd') and conditionParamRef.isListEnd != null">
${_conditionType_} b.isList <![CDATA[ <= ]]> #{${_conditionParam_}.isListEnd}
</if>
<if test="conditionParamRef.containsKey('fieldOrderNo')">
<if test="conditionParamRef.fieldOrderNo != null ">
${_conditionType_} b.fieldOrderNo = #{${_conditionParam_}.fieldOrderNo}
</if>
<if test="conditionParamRef.fieldOrderNo == null">
${_conditionType_} b.fieldOrderNo is null
</if>
</if>
<if test="conditionParamRef.containsKey('fieldOrderNoList')">
${_conditionType_} b.fieldOrderNo in
<foreach collection="conditionParamRef.fieldOrderNoList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('fieldOrderNoStart') and conditionParamRef.fieldOrderNoStart != null">
${_conditionType_} b.fieldOrderNo <![CDATA[ >= ]]> #{${_conditionParam_}.fieldOrderNoStart}
</if>
<if test="conditionParamRef.containsKey('fieldOrderNoEnd') and conditionParamRef.fieldOrderNoEnd != null">
${_conditionType_} b.fieldOrderNo <![CDATA[ <= ]]> #{${_conditionParam_}.fieldOrderNoEnd}
</if>
<if test="conditionParamRef.containsKey('remark')">
<if test="conditionParamRef.remark != null and conditionParamRef.remark != ''">
${_conditionType_} b.remark like #{${_conditionParam_}.remark}
</if>
<if test="conditionParamRef.remark == null">
${_conditionType_} b.remark is null
</if>
</if>
<if test="conditionParamRef.containsKey('remarkList')">
${_conditionType_} b.remark in
<foreach collection="conditionParamRef.remarkList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('createTime')">
<if test="conditionParamRef.createTime != null ">
${_conditionType_} b.createTime = #{${_conditionParam_}.createTime}
</if>
<if test="conditionParamRef.createTime == null">
${_conditionType_} b.createTime is null
</if>
</if>
<if test="conditionParamRef.containsKey('createTimeStart') and conditionParamRef.createTimeStart != null and conditionParamRef.createTimeStart!=''">
${_conditionType_} b.createTime <![CDATA[ >= ]]> STR_TO_DATE(left(concat(#{${_conditionParam_}.createTimeStart},' 00:00:00'),19),'%Y-%m-%d %k:%i:%s')
</if>
<if test="conditionParamRef.containsKey('createTimeEnd') and conditionParamRef.createTimeEnd != null and conditionParamRef.createTimeEnd!=''">
${_conditionType_} b.createTime <![CDATA[ <= ]]> STR_TO_DATE(left(concat(#{${_conditionParam_}.createTimeEnd},' 23:59:59'),19),'%Y-%m-%d %k:%i:%s')
</if>
<if test="conditionParamRef.containsKey('createUserId')">
<if test="conditionParamRef.createUserId != null ">
${_conditionType_} b.createUserId = #{${_conditionParam_}.createUserId}
</if>
<if test="conditionParamRef.createUserId == null">
${_conditionType_} b.createUserId is null
</if>
</if>
<if test="conditionParamRef.containsKey('createUserIdList')">
${_conditionType_} b.createUserId in
<foreach collection="conditionParamRef.createUserIdList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('createUserIdStart') and conditionParamRef.createUserIdStart != null">
${_conditionType_} b.createUserId <![CDATA[ >= ]]> #{${_conditionParam_}.createUserIdStart}
</if>
<if test="conditionParamRef.containsKey('createUserIdEnd') and conditionParamRef.createUserIdEnd != null">
${_conditionType_} b.createUserId <![CDATA[ <= ]]> #{${_conditionParam_}.createUserIdEnd}
</if>
<if test="conditionParamRef.containsKey('updateTime')">
<if test="conditionParamRef.updateTime != null ">
${_conditionType_} b.updateTime = #{${_conditionParam_}.updateTime}
</if>
<if test="conditionParamRef.updateTime == null">
${_conditionType_} b.updateTime is null
</if>
</if>
<if test="conditionParamRef.containsKey('updateTimeStart') and conditionParamRef.updateTimeStart != null and conditionParamRef.updateTimeStart!=''">
${_conditionType_} b.updateTime <![CDATA[ >= ]]> STR_TO_DATE(left(concat(#{${_conditionParam_}.updateTimeStart},' 00:00:00'),19),'%Y-%m-%d %k:%i:%s')
</if>
<if test="conditionParamRef.containsKey('updateTimeEnd') and conditionParamRef.updateTimeEnd != null and conditionParamRef.updateTimeEnd!=''">
${_conditionType_} b.updateTime <![CDATA[ <= ]]> STR_TO_DATE(left(concat(#{${_conditionParam_}.updateTimeEnd},' 23:59:59'),19),'%Y-%m-%d %k:%i:%s')
</if>
<if test="conditionParamRef.containsKey('updateUserId')">
<if test="conditionParamRef.updateUserId != null ">
${_conditionType_} b.updateUserId = #{${_conditionParam_}.updateUserId}
</if>
<if test="conditionParamRef.updateUserId == null">
${_conditionType_} b.updateUserId is null
</if>
</if>
<if test="conditionParamRef.containsKey('updateUserIdList')">
${_conditionType_} b.updateUserId in
<foreach collection="conditionParamRef.updateUserIdList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('updateUserIdStart') and conditionParamRef.updateUserIdStart != null">
${_conditionType_} b.updateUserId <![CDATA[ >= ]]> #{${_conditionParam_}.updateUserIdStart}
</if>
<if test="conditionParamRef.containsKey('updateUserIdEnd') and conditionParamRef.updateUserIdEnd != null">
${_conditionType_} b.updateUserId <![CDATA[ <= ]]> #{${_conditionParam_}.updateUserIdEnd}
</if>
</sql>
</mapper>
\ No newline at end of file
......@@ -3,9 +3,9 @@ POST {{baseUrl}}/login/login
Content-Type: application/json
{
"loginName":"admin",
"password":"admin",
"securityCode":"8888"
"loginName": "admin",
"password": "admin",
"securityCode": "8888"
}
> {%
......@@ -15,15 +15,30 @@ client.global.set("authToken", JSON.parse(response.body).data.token);
###自助终端应用数据集列表
POST {{baseUrl}}/app/dataset/list
Authorization: {{authToken}}
Content-Type: application/json
{
"appId":20,
"fieldName": "标题",
"fieldValue": "管理办法",
"page":1,
"size":10
"appId": 20,
"fieldName": "标题",
"fieldValue": "管理办法",
"page": 1,
"size": 10
}
###自助终端应用数据集列表1
POST {{baseUrl}}/app/dataset/list
Content-Type: application/json
{
"appId": 20,
"orConditionList": [
{
"fieldName": "制定机关",
"fieldValue": "%四川省人民政府%"
}
],
"page": 1,
"size": 10
}
......@@ -33,8 +48,8 @@ Authorization: {{authToken}}
Content-Type: application/json
{
"appId":1,
"appInfoFieldList":[
"appId": 1,
"appInfoFieldList": [
{
"fieldCode": "title5",
"fieldName": "标题5",
......@@ -60,7 +75,6 @@ Content-Type: application/json
"remark": "22222222222222"
}
]
}
> {%
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment