mirror of
https://github.com/weizhiqiang1995/erp-pro.git
synced 2025-03-01 01:43:45 +08:00
【高级查询】表格高级查询配置功能迁移,方便微服务拆分
This commit is contained in:
parent
ab67182eca
commit
436f4bbe23
6 changed files with 320 additions and 2 deletions
|
@ -5,6 +5,7 @@
|
|||
package com.skyeye.eve.controller;
|
||||
|
||||
import com.skyeye.annotation.api.Api;
|
||||
import com.skyeye.annotation.api.ApiImplicitParam;
|
||||
import com.skyeye.annotation.api.ApiImplicitParams;
|
||||
import com.skyeye.annotation.api.ApiOperation;
|
||||
import com.skyeye.common.object.InputObject;
|
||||
|
@ -30,6 +31,36 @@ public class SearchConfigController {
|
|||
@Autowired
|
||||
private SearchConfigService searchConfigService;
|
||||
|
||||
/**
|
||||
* 根据urlId以及appId获取高级查询的参数配置信息----用于前台使用
|
||||
*
|
||||
* @param inputObject 入参以及用户信息等获取对象
|
||||
* @param outputObject 出参以及提示信息的返回值对象
|
||||
*/
|
||||
@ApiOperation(id = "querySearchParamsConfigToHtml", value = "根据urlId以及appId获取高级查询的参数配置信息----用于前台使用", method = "POST", allUse = "0")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(id = "urlId", name = "urlId", value = "接口的urlId", required = "required"),
|
||||
@ApiImplicitParam(id = "appId", name = "appId", value = "微服务的APPID", required = "required")})
|
||||
@RequestMapping("/post/SearchConfigController/querySearchParamsConfigToHtml")
|
||||
public void querySearchParamsConfigToHtml(InputObject inputObject, OutputObject outputObject) {
|
||||
searchConfigService.querySearchParamsConfigToHtml(inputObject, outputObject);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据urlId以及appId获取高级查询的参数配置信息----用于后台使用
|
||||
*
|
||||
* @param inputObject 入参以及用户信息等获取对象
|
||||
* @param outputObject 出参以及提示信息的返回值对象
|
||||
*/
|
||||
@ApiOperation(id = "querySearchParamsConfig", value = "根据urlId以及appId获取高级查询的参数配置信息----用于后台使用", method = "POST", allUse = "0")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(id = "urlId", name = "urlId", value = "接口的urlId", required = "required"),
|
||||
@ApiImplicitParam(id = "appId", name = "appId", value = "微服务的APPID", required = "required")})
|
||||
@RequestMapping("/post/SearchConfigController/querySearchParamsConfig")
|
||||
public void querySearchParamsConfig(InputObject inputObject, OutputObject outputObject) {
|
||||
searchConfigService.querySearchParamsConfig(inputObject, outputObject);
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增/编辑高级查询配置
|
||||
*
|
||||
|
@ -43,5 +74,4 @@ public class SearchConfigController {
|
|||
searchConfigService.writeSearchConfigMation(inputObject, outputObject);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -0,0 +1,18 @@
|
|||
/*******************************************************************************
|
||||
* Copyright 卫志强 QQ:598748873@qq.com Inc. All rights reserved. 开源地址:https://gitee.com/doc_wei01/skyeye
|
||||
******************************************************************************/
|
||||
|
||||
package com.skyeye.eve.dao;
|
||||
|
||||
import com.skyeye.eve.entity.search.SearchMation;
|
||||
|
||||
/**
|
||||
* @ClassName: SearchDao
|
||||
* @Description: 高级查询属性配置管理数据交互层
|
||||
* @author: skyeye云系列--卫志强
|
||||
* @date: 2022/6/30 22:31
|
||||
* @Copyright: 2022 https://gitee.com/doc_wei01/skyeye Inc. All rights reserved.
|
||||
* 注意:本内容仅限购买后使用.禁止私自外泄以及用于其他的商业目的
|
||||
*/
|
||||
public interface SearchDao extends SkyeyeBaseMapper<SearchMation> {
|
||||
}
|
|
@ -0,0 +1,53 @@
|
|||
/*******************************************************************************
|
||||
* Copyright 卫志强 QQ:598748873@qq.com Inc. All rights reserved. 开源地址:https://gitee.com/doc_wei01/skyeye
|
||||
******************************************************************************/
|
||||
|
||||
package com.skyeye.eve.entity.search;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.skyeye.annotation.api.ApiModel;
|
||||
import com.skyeye.annotation.api.ApiModelProperty;
|
||||
import com.skyeye.common.entity.CommonOperatorUserInfo;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @ClassName: SearchMation
|
||||
* @Description: 高级查询配置实体类
|
||||
* @author: skyeye云系列--卫志强
|
||||
* @date: 2022/7/12 11:01
|
||||
* @Copyright: 2022 https://gitee.com/doc_wei01/skyeye Inc. All rights reserved.
|
||||
* 注意:本内容仅限购买后使用.禁止私自外泄以及用于其他的商业目的
|
||||
*/
|
||||
@Data
|
||||
@TableName(value = "sys_search")
|
||||
@ApiModel("高级查询配置实体类")
|
||||
public class SearchMation extends CommonOperatorUserInfo implements Serializable {
|
||||
|
||||
@TableId("id")
|
||||
@ApiModelProperty(value = "主键id。为空时新增,不为空时编辑")
|
||||
private String id;
|
||||
|
||||
@TableField("app_id")
|
||||
@ApiModelProperty(value = "APPID", required = "required")
|
||||
private String appId;
|
||||
|
||||
@TableField("url_id")
|
||||
@ApiModelProperty(value = "接口对应的url的id", required = "required")
|
||||
private String urlId;
|
||||
|
||||
@TableField(exist = false)
|
||||
@ApiModelProperty(value = "参数配置信息", required = "required")
|
||||
private Map<String, SearchParamsConfigMation> paramsConfig;
|
||||
|
||||
/**
|
||||
* 参数配置信息json字符串
|
||||
*/
|
||||
@TableField("params_config")
|
||||
private String paramsConfigStr;
|
||||
|
||||
}
|
|
@ -0,0 +1,48 @@
|
|||
/*******************************************************************************
|
||||
* Copyright 卫志强 QQ:598748873@qq.com Inc. All rights reserved. 开源地址:https://gitee.com/doc_wei01/skyeye
|
||||
******************************************************************************/
|
||||
|
||||
package com.skyeye.eve.service;
|
||||
|
||||
import com.skyeye.common.object.InputObject;
|
||||
import com.skyeye.common.object.OutputObject;
|
||||
import com.skyeye.eve.entity.search.SearchMation;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
public interface SearchConfigService {
|
||||
|
||||
void querySearchParamsConfigToHtml(InputObject inputObject, OutputObject outputObject);
|
||||
|
||||
/**
|
||||
* 根据urlId以及appId获取高级查询的参数配置信息----用于前台使用
|
||||
*
|
||||
* @param urlId urlId
|
||||
* @param appId appId
|
||||
* @return 高级查询的参数配置信息
|
||||
*/
|
||||
Map<String, Object> querySearchParamsConfigToHtml(String urlId, String appId);
|
||||
|
||||
void querySearchParamsConfig(InputObject inputObject, OutputObject outputObject);
|
||||
|
||||
/**
|
||||
* 根据urlId以及appId获取高级查询的参数配置信息----用于后台使用
|
||||
*
|
||||
* @param urlId urlId
|
||||
* @param appId appId
|
||||
* @return 高级查询的参数配置信息
|
||||
*/
|
||||
Map<String, Object> querySearchParamsConfig(String urlId, String appId);
|
||||
|
||||
void writeSearchConfigMation(InputObject inputObject, OutputObject outputObject);
|
||||
|
||||
/**
|
||||
* 根据urlId以及appId获取高级查询信息
|
||||
*
|
||||
* @param urlId urlId
|
||||
* @param appId appId
|
||||
* @return 高级查询信息
|
||||
*/
|
||||
SearchMation querySearchMation(String urlId, String appId);
|
||||
|
||||
}
|
|
@ -0,0 +1,169 @@
|
|||
/*******************************************************************************
|
||||
* Copyright 卫志强 QQ:598748873@qq.com Inc. All rights reserved. 开源地址:https://gitee.com/doc_wei01/skyeye
|
||||
******************************************************************************/
|
||||
|
||||
package com.skyeye.eve.service.impl;
|
||||
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.skyeye.common.constans.CommonConstants;
|
||||
import com.skyeye.common.constans.CommonNumConstants;
|
||||
import com.skyeye.common.object.InputObject;
|
||||
import com.skyeye.common.object.OutputObject;
|
||||
import com.skyeye.common.util.DataCommonUtil;
|
||||
import com.skyeye.common.util.mybatisplus.MybatisPlusUtil;
|
||||
import com.skyeye.eve.dao.SearchDao;
|
||||
import com.skyeye.eve.entity.search.SearchMation;
|
||||
import com.skyeye.eve.entity.search.SearchOperatorMation;
|
||||
import com.skyeye.eve.entity.search.SearchParamsConfigMation;
|
||||
import com.skyeye.eve.service.SearchConfigService;
|
||||
import net.sf.json.JSONObject;
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.util.ObjectUtils;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@Service
|
||||
public class SearchConfigServiceImpl implements SearchConfigService {
|
||||
|
||||
private static final Logger LOGGER = LoggerFactory.getLogger(SearchConfigServiceImpl.class);
|
||||
|
||||
@Autowired
|
||||
private SearchDao searchDao;
|
||||
|
||||
/**
|
||||
* 根据urlId以及appId获取高级查询的参数配置信息----用于前台使用
|
||||
*
|
||||
* @param inputObject 入参以及用户信息等获取对象
|
||||
* @param outputObject 出参以及提示信息的返回值对象
|
||||
*/
|
||||
@Override
|
||||
public void querySearchParamsConfigToHtml(InputObject inputObject, OutputObject outputObject) {
|
||||
Map<String, Object> params = inputObject.getParams();
|
||||
String urlId = params.get("urlId").toString();
|
||||
String appId = params.get("appId").toString();
|
||||
Map<String, Object> result = this.querySearchParamsConfigToHtml(urlId, appId);
|
||||
outputObject.setBean(result);
|
||||
outputObject.settotal(CommonNumConstants.NUM_ONE);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据urlId以及appId获取高级查询的参数配置信息----用于前台使用
|
||||
*
|
||||
* @param urlId urlId
|
||||
* @param appId appId
|
||||
* @return 高级查询的参数配置信息
|
||||
*/
|
||||
@Override
|
||||
public Map<String, Object> querySearchParamsConfigToHtml(String urlId, String appId) {
|
||||
Map<String, Object> result = querySearchParamsConfig(urlId, appId);
|
||||
if (result != null) {
|
||||
result.forEach((key, value) -> {
|
||||
Map classMap = new HashMap();
|
||||
classMap.put("searchCondition", SearchOperatorMation.class);
|
||||
SearchParamsConfigMation searchParamsConfigMation = (SearchParamsConfigMation) JSONObject.toBean((JSONObject) value,
|
||||
SearchParamsConfigMation.class, classMap);
|
||||
// 获取筛选条件
|
||||
List<SearchOperatorMation> searchCondition = searchParamsConfigMation.getSearchCondition();
|
||||
if (CollectionUtils.isNotEmpty(searchCondition)) {
|
||||
searchCondition.forEach(bean -> {
|
||||
bean.setMySql(null);
|
||||
bean.setOracle(null);
|
||||
bean.setPgSql(null);
|
||||
bean.setSqlServer(null);
|
||||
});
|
||||
}
|
||||
result.put(key, searchParamsConfigMation);
|
||||
});
|
||||
return result;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据urlId以及appId获取高级查询的参数配置信息----用于后台使用
|
||||
*
|
||||
* @param inputObject 入参以及用户信息等获取对象
|
||||
* @param outputObject 出参以及提示信息的返回值对象
|
||||
*/
|
||||
@Override
|
||||
public void querySearchParamsConfig(InputObject inputObject, OutputObject outputObject) {
|
||||
Map<String, Object> params = inputObject.getParams();
|
||||
String urlId = params.get("urlId").toString();
|
||||
String appId = params.get("appId").toString();
|
||||
Map<String, Object> result = this.querySearchParamsConfig(urlId, appId);
|
||||
outputObject.setBean(result);
|
||||
outputObject.settotal(CommonNumConstants.NUM_ONE);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据urlId以及appId获取高级查询的参数配置信息----用于后台使用
|
||||
*
|
||||
* @param urlId urlId
|
||||
* @param appId appId
|
||||
* @return 高级查询的参数配置信息
|
||||
*/
|
||||
@Override
|
||||
public Map<String, Object> querySearchParamsConfig(String urlId, String appId) {
|
||||
SearchMation searchMation = querySearchMation(urlId, appId);
|
||||
if (searchMation != null) {
|
||||
Map<String, Object> result = JSONObject.fromObject(searchMation.getParamsConfigStr());
|
||||
return result;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增/编辑高级查询配置
|
||||
*
|
||||
* @param inputObject 入参以及用户信息等获取对象
|
||||
* @param outputObject 出参以及提示信息的返回值对象
|
||||
*/
|
||||
@Override
|
||||
@Transactional(value = "transactionManager", rollbackFor = Exception.class)
|
||||
public void writeSearchConfigMation(InputObject inputObject, OutputObject outputObject) {
|
||||
SearchMation searchMation = inputObject.getParams(SearchMation.class);
|
||||
// 1.根据appId和urlId进行校验
|
||||
QueryWrapper<SearchMation> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.eq(MybatisPlusUtil.getDeclaredFieldsInfo2(SearchMation.class, "appId"), searchMation.getAppId());
|
||||
queryWrapper.eq(MybatisPlusUtil.getDeclaredFieldsInfo2(SearchMation.class, "urlId"), searchMation.getUrlId());
|
||||
if (StringUtils.isNotEmpty(searchMation.getId())) {
|
||||
queryWrapper.ne(CommonConstants.ID, searchMation.getId());
|
||||
}
|
||||
SearchMation checkSearchMation = searchDao.selectOne(queryWrapper);
|
||||
if (ObjectUtils.isEmpty(checkSearchMation)) {
|
||||
String userId = inputObject.getLogParams().get("id").toString();
|
||||
searchMation.setParamsConfigStr(JSONUtil.toJsonStr(searchMation.getParamsConfig()));
|
||||
// 2.新增/编辑数据
|
||||
if (StringUtils.isNotEmpty(searchMation.getId())) {
|
||||
LOGGER.info("update searchConfig data, id is {}", searchMation.getId());
|
||||
DataCommonUtil.setCommonLastUpdateDataByGenericity(searchMation, userId);
|
||||
searchDao.updateById(searchMation);
|
||||
} else {
|
||||
DataCommonUtil.setCommonDataByGenericity(searchMation, userId);
|
||||
LOGGER.info("insert searchConfig data, id is {}", searchMation.getId());
|
||||
searchDao.insert(searchMation);
|
||||
}
|
||||
outputObject.setBean(searchMation);
|
||||
} else {
|
||||
outputObject.setreturnMessage("this data is non-existent.");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public SearchMation querySearchMation(String urlId, String appId) {
|
||||
QueryWrapper<SearchMation> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.eq(MybatisPlusUtil.getDeclaredFieldsInfo2(SearchMation.class, "urlId"), urlId);
|
||||
queryWrapper.eq(MybatisPlusUtil.getDeclaredFieldsInfo2(SearchMation.class, "appId"), appId);
|
||||
return searchDao.selectOne(queryWrapper);
|
||||
}
|
||||
|
||||
}
|
|
@ -116,7 +116,7 @@ public class ScheduleDayController {
|
|||
* @param inputObject 入参以及用户信息等获取对象
|
||||
* @param outputObject 出参以及提示信息的返回值对象
|
||||
*/
|
||||
@ApiOperation(id = "insertScheduleMationByOtherModule", value = "其他模块同步到日程", method = "POST", allUse = "2")
|
||||
@ApiOperation(id = "insertScheduleMationByOtherModule", value = "其他模块同步到日程", method = "POST", allUse = "0")
|
||||
@ApiImplicitParams(classBean = OtherModuleScheduleMation.class)
|
||||
@RequestMapping("/post/ScheduleDayController/insertScheduleMationByOtherModule")
|
||||
public void insertScheduleMationByOtherModule(InputObject inputObject, OutputObject outputObject) {
|
||||
|
|
Loading…
Reference in a new issue