前后端分目录

This commit is contained in:
andywang
2022-07-14 12:55:31 +08:00
parent cd72c43d62
commit bb8cf90f53
1155 changed files with 47237 additions and 14446 deletions

View File

@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>ddp-datax</artifactId>
<groupId>com.fibo.ddp</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>ddp-datax-realtime-field</artifactId>
</project>

View File

@@ -0,0 +1,43 @@
package com.fibo.ddp.datax.realtime.controller.cache;
import com.fibo.ddp.common.model.common.ResponseEntityBuilder;
import com.fibo.ddp.common.model.common.ResponseEntityDto;
import com.fibo.ddp.common.service.datax.cache.DataXCacheService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.HashMap;
import java.util.Map;
@RestController
@RequestMapping("/v3/datax/cache")
public class DataXCacheController {
//长轮询间隔时间
private static long REQUEST_INTERVAL_SECONDS = 10;
@Autowired
private DataXCacheService dataXCacheService;
@PostMapping("/setRequestInterval/{interval}")
public ResponseEntityDto setRequestInterval(@PathVariable("interval") long interval) {
if (interval > 0) {
REQUEST_INTERVAL_SECONDS = interval;
}
return ResponseEntityBuilder.buildNormalResponse();
}
@PostMapping("/queryForChange")
public ResponseEntityDto queryForChange(@RequestBody Map<String, String> param) {
Map result = new HashMap();
Map map = dataXCacheService.queryForChange(param,REQUEST_INTERVAL_SECONDS);
if (map != null) {
result = map;
}
return ResponseEntityBuilder.buildNormalResponse(result);
}
@PostMapping("/push")
public ResponseEntityDto push(@RequestBody Map<String, Object> param) {
dataXCacheService.pushRedisSub(null,"");
return ResponseEntityBuilder.buildNormalResponse();
}
}

View File

@@ -0,0 +1,142 @@
package com.fibo.ddp.datax.realtime.controller.datainterface;
import com.fibo.ddp.common.model.common.ResponseEntityBuilder;
import com.fibo.ddp.common.model.common.ResponseEntityDto;
import com.fibo.ddp.common.model.common.enums.ErrorCodeEnum;
import com.fibo.ddp.common.model.common.requestParam.QueryListParam;
import com.fibo.ddp.common.model.datax.consts.DataXCacheConst;
import com.fibo.ddp.common.model.datax.datainterface.InterfaceInfo;
import com.fibo.ddp.common.model.datax.datainterface.request.InterfaceUpdateStatusParam;
import com.fibo.ddp.common.model.datax.datainterface.vo.InterfaceVo;
import com.fibo.ddp.common.service.datax.cache.DataXChange;
import com.fibo.ddp.common.service.datax.datainterface.InterfaceService;
import com.fibo.ddp.common.service.monitor.logger.ArchivesLog;
import com.fibo.ddp.common.utils.constant.OpTypeConst;
import com.fibo.ddp.common.utils.exception.ApiException;
import com.github.pagehelper.PageInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.HashMap;
/**
* 提供interface相关接口
*
* @apiDefine interface 2.接口管理
*/
@RestController
@RequestMapping("v3/interface")
public class InterfaceController {
@Autowired
InterfaceService interfaceService;
@RequestMapping("testInterface")
public String test(){
String str = "{\n" +
" \"status\": \"1\",\n" +
" \"error\": \"00000000\",\n" +
" \"msg\": null,\n" +
" \"data\": {\n" +
" \"name\": \"张三\",\n" +
" \"age\": 25\n" +
" }\n" +
"}";
return str;
}
/**
* @api {POST} /v3/interface/getInterfaceInfo/{userId} 3.19. V3获取Interface信息
* @apiGroup knowledge
* @apiVersion 2.0.0
* @apiParam {Long} userId : 规则id
* @apiSuccess {String} status 状态1成功0失败
* @apiParamExample {json} 请求示例:
* {}
* @apiSuccessExample {json} 成功返回数据示例:
* {"status":"1","error":"00000000","msg":null,"data":{"userId":666,"name":"2021_4_6测试接口","versionCode":"test2021_4_6第二次输入","description":"接口测试","priority":0,"parentId":0,"author":135,"userId":135,"organId":46,"engineId":null,"status":1,"type":1,"isNon":null,"content":"test","created":"2021-04-06T08:38:17.000+00:00","updated":"2021-04-07T05:12:52.000+00:00","ruleType":0,"ruleAudit":2,"score":0,"lastLogical":"","ruleConditionVo":{"userId":14,"logical":"&&","fieldId":null,"operator":null,"fieldValue":null,"ruleId":666,"parentId":0,"conditionType":1,"createTime":"2021-04-06T08:38:26.000+00:00","updateTime":null,"insertTempId":null,"children":[{"userId":15,"logical":null,"fieldId":null,"operator":">","fieldValue":"1000","ruleId":666,"parentId":14,"conditionType":1,"createTime":"2021-04-06T08:38:26.000+00:00","updateTime":null,"insertTempId":null,"children":[],"tempParentId":null},{"userId":16,"logical":null,"fieldId":null,"operator":"<","fieldValue":"10000","ruleId":666,"parentId":14,"conditionType":1,"createTime":"2021-04-06T08:38:26.000+00:00","updateTime":null,"insertTempId":null,"children":[],"tempParentId":null}],"tempParentId":null},"ruleContentInfoList":[{"userId":16,"fieldId":10000,"fieldValue":"test01","ruleId":666},{"userId":17,"fieldId":10000,"fieldValue":"test02","ruleId":666}]}}
*/
@RequestMapping(value = "getInterfaceInfo/{id}", method = RequestMethod.POST)
public ResponseEntityDto<InterfaceVo> getInterfaceById(@PathVariable Long id) {
if (id==null){
throw new ApiException(ErrorCodeEnum.PARAMS_EXCEPTION.getCode(),ErrorCodeEnum.PARAMS_EXCEPTION.getMessage());
}
InterfaceVo interfaceVo = interfaceService.getInterfaceById(id);
ResponseEntityDto<InterfaceVo> ruleResponseEntityDto = ResponseEntityBuilder.buildNormalResponse(interfaceVo);
return ruleResponseEntityDto;
}
//测试http请求并获得响应
@PostMapping("getHttpResponse")
public ResponseEntityDto getHttpResponse(@RequestBody InterfaceInfo interfaceInfo) {
String result = interfaceService.getHttpResponse(interfaceInfo);
ResponseEntityDto interfaceResponseEntityDto = ResponseEntityBuilder.buildNormalResponse(result);
return interfaceResponseEntityDto;
}
//查询所有接口
@PostMapping("getInterfaceList")
public ResponseEntityDto getInterfaceList(@RequestBody QueryListParam<InterfaceInfo> param) {
// PageBean<InterfaceVo> pageBean = interfaceService.pageQuery(inputParam.getPageNo(), inputParam.getPageSize());
// ResponseEntityDto ruleResponseEntityDto = ResponseEntityBuilder.buildNormalResponse(pageBean);
PageInfo pageInfo = interfaceService.queryByEntity(param);
HashMap<String, Object> responseMap = new HashMap<>();
responseMap.put("pageInfo",pageInfo);
responseMap.put("klist",pageInfo.getList());
pageInfo.setList(null);
ResponseEntityDto interfaceResponseEntityDto = ResponseEntityBuilder.buildNormalResponse(responseMap);
return interfaceResponseEntityDto;
}
//添加接口
@PostMapping("addInterface")
@ArchivesLog(operationType = OpTypeConst.ADD_INTERFACE)
@DataXChange(changeName = DataXCacheConst.Type.INTERFACE)
public ResponseEntityDto<InterfaceVo> addInterface(@RequestBody InterfaceVo interfaceVo ) {
InterfaceVo insert = interfaceService.inserInterfaceInfo(interfaceVo);
ResponseEntityDto<InterfaceVo> ruleResponseEntityDto = ResponseEntityBuilder.buildNormalResponse(insert);
return ruleResponseEntityDto;
}
//删除接口
@PostMapping("deleteInterface")
@ArchivesLog(operationType = OpTypeConst.DELETE_INTERFACE)
@DataXChange(changeName = DataXCacheConst.Type.INTERFACE)
public ResponseEntityDto<Boolean> deleteInterface(@RequestBody InterfaceVo interfaceVo ) {
Boolean bool = interfaceService.deleteInterfaceInfo(interfaceVo);
ResponseEntityDto<Boolean> ruleResponseEntityDto = ResponseEntityBuilder.buildNormalResponse(bool);
return ruleResponseEntityDto;
}
//编辑接口
@PostMapping("updateInterface")
@ArchivesLog(operationType = OpTypeConst.UPDATE_INTERFACE)
@DataXChange(changeName = DataXCacheConst.Type.INTERFACE)
public ResponseEntityDto<InterfaceVo> updateInterface(@RequestBody InterfaceVo interfaceVo ) {
InterfaceVo insert = interfaceService.updateInterfaceInfo(interfaceVo);
ResponseEntityDto<InterfaceVo> ruleResponseEntityDto = ResponseEntityBuilder.buildNormalResponse(insert);
return ruleResponseEntityDto;
}
//批量更新接口状态
@PostMapping("updateInterfaceStatus")
@ArchivesLog(operationType = OpTypeConst.UPDATE_INTERFACE_STATUS)
@DataXChange(changeName = DataXCacheConst.Type.INTERFACE)
public ResponseEntityDto updateStatus(@RequestBody InterfaceUpdateStatusParam param) {
Long[] ids = param.getIds();
Integer status = param.getStatus();
if (ids==null||ids.length==0||status==null){
throw new ApiException(ErrorCodeEnum.PARAMS_EXCEPTION.getCode(),ErrorCodeEnum.PARAMS_EXCEPTION.getMessage());
}
boolean updateResult = interfaceService.updateStatus(ids, status);
if (updateResult){
return ResponseEntityBuilder.buildNormalResponse(updateResult);
}else {
return ResponseEntityBuilder.buildErrorResponse(ErrorCodeEnum.SERVER_ERROR);
}
}
}

View File

@@ -0,0 +1,40 @@
package com.fibo.ddp.datax.realtime.controller.datamanage;
import com.fibo.ddp.common.model.common.ResponseEntityBuilder;
import com.fibo.ddp.common.model.common.ResponseEntityDto;
import com.fibo.ddp.common.model.common.requestParam.QueryListParam;
import com.fibo.ddp.common.model.datax.datamanage.FieldCall;
import com.fibo.ddp.common.model.datax.datamanage.request.FieldCallParam;
import com.fibo.ddp.common.service.datax.datamanage.FieldCallLogService;
import com.github.pagehelper.PageInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@RestController
@RequestMapping("/DataX/statistics")
public class FieldCallController {
@Autowired
private FieldCallLogService fieldCallLogService;
@PostMapping("/getFieldCallList")
public ResponseEntityDto getFieldCallList(@RequestBody QueryListParam<FieldCallParam> param){
PageInfo pageInfo = fieldCallLogService.queryFieldCallList(param);
return ResponseEntityBuilder.buildNormalResponse(pageInfo);
}
@PostMapping("/getFieldCallLogList")
public ResponseEntityDto getFieldCallLogList(@RequestBody QueryListParam<FieldCallParam> param){
PageInfo pageInfo = fieldCallLogService.queryFieldCallLogList(param);
return ResponseEntityBuilder.buildNormalResponse(pageInfo);
}
@PostMapping("/getFieldCallCountList")
public ResponseEntityDto getFieldCallLogList(@RequestBody FieldCallParam param){
List<FieldCall> fieldCalls = fieldCallLogService.queryFieldCallCountList(param);
return ResponseEntityBuilder.buildNormalResponse(fieldCalls);
}
}

View File

@@ -0,0 +1,883 @@
package com.fibo.ddp.datax.realtime.controller.datamanage;
import com.alibaba.fastjson.JSONObject;
import com.fibo.ddp.common.model.authx.system.SysUser;
import com.fibo.ddp.common.model.common.ResponseEntityBuilder;
import com.fibo.ddp.common.model.common.ResponseEntityDto;
import com.fibo.ddp.common.model.common.enums.ErrorCodeEnum;
import com.fibo.ddp.common.model.common.requestParam.UpdateFolderParam;
import com.fibo.ddp.common.model.datax.common.ValueType;
import com.fibo.ddp.common.model.datax.consts.DataXCacheConst;
import com.fibo.ddp.common.model.datax.datamanage.Field;
import com.fibo.ddp.common.model.datax.datamanage.FieldCond;
import com.fibo.ddp.common.model.datax.datamanage.FieldType;
import com.fibo.ddp.common.model.datax.datamanage.request.FieldSaveParam;
import com.fibo.ddp.common.model.datax.datamanage.request.FieldTreeParam;
import com.fibo.ddp.common.model.datax.datamanage.vo.FieldEnumVo;
import com.fibo.ddp.common.model.datax.datamanage.vo.FieldFormulaVo;
import com.fibo.ddp.common.model.datax.datamanage.vo.FieldSubCondVo;
import com.fibo.ddp.common.service.common.SessionManager;
import com.fibo.ddp.common.service.datax.cache.DataXChange;
import com.fibo.ddp.common.service.datax.datamanage.FieldService;
import com.fibo.ddp.common.service.datax.datamanage.FieldTypeService;
import com.fibo.ddp.common.service.monitor.logger.ArchivesLog;
import com.fibo.ddp.common.utils.constant.CommonConst;
import com.fibo.ddp.common.utils.constant.OpTypeConst;
import com.fibo.ddp.common.utils.exception.ApiException;
import com.fibo.ddp.common.utils.util.CollectionUtil;
import com.fibo.ddp.common.utils.util.StringUtil;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.io.ClassPathResource;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.multipart.commons.CommonsMultipartResolver;
import javax.servlet.http.HttpServletRequest;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.util.*;
import java.util.regex.Pattern;
/**
* 提供field相关接口
*
* @apiDefine datamanage 2.指标管理
*/
@Controller("fieldControllerV2")
@RequestMapping("/v2/datamanage/field")
@ResponseBody
public class FieldController {
@Autowired
private FieldTypeService fieldTypeService;
@Autowired
private FieldService fieldService;
/**
* @api {POST} /v2/datamanage/datamanage/listTree 2.01. 获取节点树
* @apiGroup datamanage
* @apiVersion 2.0.0
* @apiParam {Integer} parentId parentId, 值为 0或 空字符串都行(此时获取的是所有文件夹目录)
* @apiParamExample {json} 请求示例:
* {}
* @apiSuccessExample {json} Success-Response:
* {"data":[{"userId":135,"organId":46,"status":1,"isCommon":1,"parentId":303,"children":[{"children":[{"children":[],"fieldType":"信用卡","icon":"../resource/images/authority/folder.png","userId":306,"isCommon":1,"isParent":"true","page":0,"parentId":305,"rows":0}],"fieldType":"银行","icon":"../resource/images/authority/folder.png","userId":305,"isCommon":1,"isParent":"true","page":0,"parentId":0,"rows":0},{"children":[{"children":[],"fieldType":"网点余额不足风险","icon":"../resource/images/authority/folder.png","userId":304,"isCommon":1,"isParent":"true","page":0,"parentId":302,"rows":0},{"children":[],"fieldType":"代收货款与到付","icon":"../resource/images/authority/folder.png","userId":303,"isCommon":1,"isParent":"true","page":0,"parentId":302,"rows":0}],"fieldType":"物流","icon":"../resource/images/authority/folder.png","userId":302,"isCommon":1,"isParent":"true","page":0,"parentId":0,"rows":0}],"fieldType":"通用字段","userId":99999999}],"error":"00000000","status":"1"}
*/
@RequestMapping(value = "/listTree", method = RequestMethod.POST)
public ResponseEntityDto<Object> listTree(@RequestBody Map<String, Object> paramMap) {
SysUser loginAccount = SessionManager.getLoginAccount();
paramMap.put("userId", loginAccount.getUserId());
paramMap.put("organId", loginAccount.getOrganId());
paramMap.put("status", 1);
Integer isCommon = 1;
Integer engineId = null;
if (paramMap.containsKey("engineId") && !paramMap.get("engineId").equals("")) {
isCommon = null;
engineId = Integer.valueOf((String) paramMap.get("engineId")).intValue();
paramMap.put("engineId", engineId);
} else {
paramMap.put("engineId", null);
}
paramMap.put("isCommon", isCommon);
List<FieldType> klist = fieldTypeService.getFieldTypeList(paramMap);
for (FieldType fieldTypeVo : klist) {
if (engineId != null && fieldTypeVo.getIsCommon() == 1) {
String fieldType = fieldTypeVo.getFieldType();
fieldTypeVo.setFieldType(fieldType + "(通用)");
}
paramMap.put("parentId", fieldTypeVo.getId());
fieldTypeVo.setChildren(getChildren(paramMap));
}
FieldType[] kArray = new FieldType[klist.size()];
kArray = klist.toArray(kArray);
paramMap.put("children", kArray);
paramMap.put("fieldType", "通用字段");
paramMap.put("id", 99999999);
ArrayList<Map> list = new ArrayList<>();
list.add(paramMap);
return ResponseEntityBuilder.buildNormalResponse(list);
}
@RequestMapping(value = "/newListTree", method = RequestMethod.POST)
public ResponseEntityDto<Object> newListTree(@RequestBody FieldTreeParam param) {
if (param==null||param.getType()==null){
throw new ApiException(ErrorCodeEnum.PARAMS_EXCEPTION.getCode(),ErrorCodeEnum.PARAMS_EXCEPTION.getMessage());
}
List<FieldType> list = fieldTypeService.getTreeList(param);
Map paramMap=new HashMap<>();
paramMap.put("children", list);
paramMap.put("fieldType", "通用字段");
paramMap.put("id", 99999999);
List response= new ArrayList<>();
response.add(paramMap);
return ResponseEntityBuilder.buildNormalResponse(response);
}
/**
* getChildren:(获取树形节点的子节点信息)
*
* @param paramMap
* @return
*/
private FieldType[] getChildren(Map<String, Object> paramMap) {
List<FieldType> klist = fieldTypeService.getFieldTypeList(paramMap);
for (FieldType fieldTreeVo : klist) {
paramMap.put("parentId", fieldTreeVo.getId());
fieldTreeVo.setChildren(getChildren(paramMap));
}
FieldType[] kArray = new FieldType[klist.size()];
kArray = klist.toArray(kArray);
return kArray;
}
/**
* @api {POST} /v2/datamanage/datamanage/addTree 2.02. 添加树节点
* @apiGroup datamanage
* @apiVersion 2.0.0
* @apiParam {String} fieldType 文件夹的名字
* @apiParam {String} parentId parentId
* @apiParam {Integer} [userId] id可传可不传无实际意义
* @apiParamExample {json} Request:
* {
* "parentId": "302",
* "fieldType": "测试类型"
* }
* @apiSuccessExample {json} Success-Response:
* {"status":"1","error":"00000000","msg":null,"data":{"parentId":"302","fieldType":"测试类型","userId":135,"organId":46,"engineId":null,"isCommon":1,"fieldTypeId":365,"userId":2810,"result":1}}
*/
@RequestMapping(value = "/addTree", method = RequestMethod.POST)
@ArchivesLog(operationType = OpTypeConst.SAVE_FILED_TREE)
public ResponseEntityDto<Object> addTree(@RequestBody Map<String, Object> paramMap) {
// fieldTypeId, parentId, userId
SysUser loginAccount = SessionManager.getLoginAccount();
paramMap.put("userId", loginAccount.getUserId());
paramMap.put("organId", loginAccount.getOrganId());
Integer isCommon = 1;
Integer engineId = null;
if (paramMap.containsKey("engineId") && !paramMap.get("engineId").equals("")) {
isCommon = 0;
engineId = Integer.valueOf((String) paramMap.get("engineId")).intValue();
paramMap.put("engineId", engineId);
} else {
isCommon = 1;
paramMap.put("engineId", null);
}
paramMap.put("isCommon", isCommon);
FieldType fieldTypeVo = new FieldType();
fieldTypeVo.setIsCommon(isCommon);
fieldTypeVo.setParentId(Integer.valueOf( paramMap.get("parentId").toString()));
fieldTypeVo.setFieldType((String) paramMap.get("fieldType"));
fieldTypeVo.setType(Integer.valueOf(paramMap.get("type").toString()));
boolean flag = fieldTypeService.createFieldType(fieldTypeVo, paramMap);
if (flag) {
paramMap.put("result", 1);
} else {
paramMap.put("result", -1);
}
return ResponseEntityBuilder.buildNormalResponse(paramMap);
}
/**
* @api {POST} /v2/datamanage/datamanage/updateTree 2.03. 修改树节点
* @apiGroup datamanage
* @apiVersion 2.0.0
* @apiParam {Integer} userId userId
* @apiParam {String} fieldType 文件夹的名称
* @apiParam {Integer} fieldType 文件夹的名称
* @apiParam {String} [status] -1表示删除
* @apiParamExample {json} Request:
* {
* "parentId":302,
* "fieldType": "测试哈哈类型",
* "userId": 365,
* "status": 1
* }
* @apiSuccessExample {json} Success-Response:
* {"status":"1","error":"00000000","msg":null,"data":{"parentId":302,"fieldType":"测试哈哈类型","userId":365,"status":1,"userId":135,"engineId":null,"organId":46,"isCommon":1,"result":1}}
*/
@RequestMapping(value = "/updateTree", method = RequestMethod.POST)
@ArchivesLog(operationType = OpTypeConst.UPDATE_FILED_TREE)
public ResponseEntityDto<Object> updateTree(@RequestBody FieldTreeParam param) {
Integer status = param.getStatus();
boolean b = fieldTypeService.updateFieldType(param);
if (b){
return ResponseEntityBuilder.buildNormalResponse();
}
return ResponseEntityBuilder.buildErrorResponse("修改指标文件夹错误","修改指标文件夹错误");
// int num = this.fieldTypeAjaxValidate(paramMap);
// if (num > 0) {
// throw new ApiException(ErrorCodeEnum.FIELD_TYPE_REPEAT.getVersionCode(), ErrorCodeEnum.FIELD_TYPE_REPEAT.getMessage());
// }
// SysUser loginAccount = SessionManager.getLoginAccount();
// paramMap.put("userId", loginAccount.getUserId());
// paramMap.put("organId", loginAccount.getOrganId());
//
// Integer isCommon = 1;
// Integer engineId = null;
// if (paramMap.containsKey("engineId") && paramMap.get("engineId") != null && !paramMap.get("engineId").equals("")) {
// isCommon = 0;
// engineId = Integer.valueOf((String) paramMap.get("engineId")).intValue();
// paramMap.put("engineId", engineId);
// } else {
// isCommon = 1;
// paramMap.put("engineId", null);
// }
//
// paramMap.put("isCommon", isCommon);
//
// boolean flag = fieldTypeService.updateFieldType(paramMap);
// if (flag) {
// paramMap.put("result", 1);
// } else {
// paramMap.put("result", -1);
// }
}
private int fieldTypeAjaxValidate(Map<String, Object> paramMap) {
Long userId = SessionManager.getLoginAccount().getUserId();
paramMap.put("userId", userId);
if (!paramMap.containsKey("engineId")) {
paramMap.put("engineId", null);
}
return fieldService.isExistsFieldType(paramMap);
}
/**
* @api {POST} /v2/datamanage/datamanage/list 2.04. 获取指标列表
* @apiGroup datamanage
* @apiVersion 2.0.0
* @apiParam {Integer} isCommon isCommon 值为1时查询通用字段 数据库管理不用传isCommon
* @apiParam {String} [fieldTypeId] 指标类型id当fieldTypeId为空或不传时查询的时整个通用字段下面的所有指标
* @apiParam {Integer} pageNo 第几页,默认为 1
* @apiParam {Integer} [pageSize] 每页的条数,默认为 10
* @apiParamExample {json} Request:
* {
* "isCommon": 1,
* "fieldTypeId": 99999999,
* "pageNo": 1,
* "pageSize": 2
* }
* @apiSuccessExample {json} Success-Response:
* {"status":"1","error":"00000000","msg":null,"data":{"fieldVos":[{"page":0,"rows":0,"total":null,"userId":876,"fieldEn":"network_real_amount_derive","fieldCn":"网点余额衍生字段","fieldTypeId":302,"fieldType":"物流","valueType":1,"valueTypeName":null,"valueScope":"[-1,9999999)","isDerivative":1,"isDerivativeName":null,"isOutput":0,"isOutputName":null,"isCommon":1,"formula":"","formulaShow":"","usedFieldId":null,"origFieldId":null,"author":135,"nickName":"管理员","created":1615535468000,"engineId":null,"engineName":null,"status":"1","fieldCondList":null,"fieldRelId":null,"dataSourceId":null,"sqlStatement":null,"useSql":null},{"page":0,"rows":0,"total":null,"userId":873,"fieldEn":"ziduan111733","fieldCn":"字段111733","fieldTypeId":327,"fieldType":"ddd","valueType":2,"valueTypeName":null,"valueScope":"qwer","isDerivative":0,"isDerivativeName":null,"isOutput":0,"isOutputName":null,"isCommon":1,"formula":"","formulaShow":"","usedFieldId":null,"origFieldId":null,"author":135,"nickName":"管理员","created":1615455268000,"engineId":null,"engineName":null,"status":"1","fieldCondList":null,"fieldRelId":null,"dataSourceId":null,"sqlStatement":null,"useSql":null}],"pager":{"pageNum":1,"pageSize":2,"size":2,"startRow":1,"endRow":2,"total":261,"pages":131,"list":[{"page":0,"rows":0,"total":null,"userId":876,"fieldEn":"network_real_amount_derive","fieldCn":"网点余额衍生字段","fieldTypeId":302,"fieldType":"物流","valueType":1,"valueTypeName":null,"valueScope":"[-1,9999999)","isDerivative":1,"isDerivativeName":null,"isOutput":0,"isOutputName":null,"isCommon":1,"formula":"","formulaShow":"","usedFieldId":null,"origFieldId":null,"author":135,"nickName":"管理员","created":1615535468000,"engineId":null,"engineName":null,"status":"1","fieldCondList":null,"fieldRelId":null,"dataSourceId":null,"sqlStatement":null,"useSql":null},{"page":0,"rows":0,"total":null,"userId":873,"fieldEn":"ziduan111733","fieldCn":"字段111733","fieldTypeId":327,"fieldType":"ddd","valueType":2,"valueTypeName":null,"valueScope":"qwer","isDerivative":0,"isDerivativeName":null,"isOutput":0,"isOutputName":null,"isCommon":1,"formula":"","formulaShow":"","usedFieldId":null,"origFieldId":null,"author":135,"nickName":"管理员","created":1615455268000,"engineId":null,"engineName":null,"status":"1","fieldCondList":null,"fieldRelId":null,"dataSourceId":null,"sqlStatement":null,"useSql":null}],"prePage":0,"nextPage":2,"isFirstPage":true,"isLastPage":false,"hasPreviousPage":false,"hasNextPage":true,"navigatePages":8,"navigatepageNums":[1,2,3,4,5,6,7,8],"navigateFirstPage":1,"navigateLastPage":8,"firstPage":1,"lastPage":8},"searchKey":null,"fieldTypeId":null,"engineId":null}}
*/
@RequestMapping(value = "/list", method = RequestMethod.POST)
public ResponseEntityDto<Object> list(@RequestBody HashMap<String, Object> paramMap) {
if (paramMap.get("fieldTypeId") != null && paramMap.get("fieldTypeId").toString().equals("99999999")) {
paramMap.put("fieldTypeId", null);
}
Integer pageNo = paramMap.get("pageNo") == null ? 1 : Integer.valueOf(paramMap.get("pageNo").toString());
Integer pageSize = paramMap.get("pageSize") == null ? 10 : Integer.valueOf(paramMap.get("pageSize").toString());
SysUser loginAccount = SessionManager.getLoginAccount();
paramMap.put("userId", loginAccount.getUserId());
paramMap.put("organId", loginAccount.getOrganId());
String searchKey = (String) paramMap.get("searchKey");
paramMap.put("searchKey", null);
if (!paramMap.containsKey("status"))
paramMap.put("status", null);
if (!paramMap.containsKey("engineId"))
paramMap.put("engineId", null);
PageHelper.startPage(pageNo, pageSize);
List<Field> fieldList = fieldService.findByFieldType(paramMap);
PageInfo<Field> pageInfo = new PageInfo<>(fieldList);
if (fieldList == null) {
return ResponseEntityBuilder.buildNormalResponse(null);
}
HashMap<String, Object> modelMap = new HashMap<>();
modelMap.put("pager", pageInfo);
modelMap.put("engineId", null);
modelMap.put("klist",pageInfo.getList());
modelMap.put("searchKey", searchKey);
return ResponseEntityBuilder.buildNormalResponse(modelMap);
}
/**
* @api {POST} /v2/datamanage/datamanage/updateStatus 2.05. 指标停用、启用、删除
* @apiGroup datamanage
* @apiVersion 2.0.0
* @apiParam {Integer} status 0表示停用 1表示启用 -1表示删除
* @apiParam {String} ids id组成的字符串用逗号分隔
* @apiParam {Integer} fieldTypeId fieldTypeId 文件夹的id
* @apiParamExample {json} 请求示例:
* {"status":0,"ids":"820,819,818","fieldTypeId":303}
* @apiSuccessExample {json} 成功返回数据示例:
* {"status":"1","error":"00000000","msg":null,"data":{"status":0,"ids":"820,819,818","fieldTypeId":"303","userId":135,"organId":46,"engineId":null,"Ids":[820,819,818],"fieldId":818,"fieldIds":[818],"fieldList":[],"listDbList":[],"ruleList":[],"scorecardList":[],"nodelistDbList":[],"beUsed":false,"result":true}}
*/
@RequestMapping(value = "/updateStatus", method = RequestMethod.POST)
@ArchivesLog(operationType = OpTypeConst.UPDATE_FILED_STATUS)
@DataXChange(changeName = DataXCacheConst.Type.FIELD)
public ResponseEntityDto<Object> updateStatus(@RequestBody Map<String, Object> param) {
SysUser loginAccount = SessionManager.getLoginAccount();
param.put("userId", loginAccount.getUserId());
param.put("organId", loginAccount.getOrganId());
param.put("engineId", null);
String idsStr = (String) param.get("ids");
List<Long> Ids = StringUtil.toLongList(idsStr);
param.put("Ids", Ids);
String strFieldTypeId = String.valueOf(param.get("fieldTypeId"));
if (strFieldTypeId == null) {
strFieldTypeId = "";
}
//Long fieldTypeId = fieldService.findFieldTypeId(inputParam);
fieldService.updateStatus(param);
param.put("fieldTypeId", strFieldTypeId);
return ResponseEntityBuilder.buildNormalResponse(param);
}
/**
* @api {POST} /v2/datamanage/datamanage/save 2.06. 添加指标
* @apiGroup datamanage
* @apiVersion 2.0.0
* @apiParam {String} searchKey searchKey
* @apiParam {Long} [userId] 指标ID
* @apiParam {String} formula 衍生字段公式
* @apiParam {String} formulaShow 衍生字段公式回显信息
* @apiParam {Long} engineId 归属的引擎ID
* @apiParam {String} fieldEn 指标英文名:拼接前缀"f_"
* @apiParam {String} fieldCn 指标中文名
* @apiParam {Long} fieldTypeId 字段类型编号
* @apiParam {Integer} valueType 字段存值类型,待选(0),数值型(1),字符型(2),枚举型(3),小数型(4)
* @apiParam {Integer} isDerivative 是否衍生字段0代表不是1代表是
* @apiParam {Integer} isOutput 是否输出字段0代表不是1代表是
* @apiParam {String} valueScope 字段约束范围
* @apiParam {JSONArray} fieldCondList 条件区域内容(传字符串)
* @apiParam (fieldCondList) {String} conditionValue 字段条件值
* @apiParam (fieldCondList) {JSONArray} fieldSubCond 字段列表
* @apiParam (fieldSubCond) {String} fieldId 条件字段编号
* @apiParam (fieldSubCond) {String} operator 条件字段的运算符
* @apiParam (fieldSubCond) {String} fieldValue 条件字段的条件设置值
* @apiParam (fieldSubCond) {String} logical 条件字段间的逻辑符
* @apiParam {JSONArray} formulaHidden 公式编辑、groovy脚本内容传字符串
* @apiParam (formulaHidden) {String} formula 衍生字段公式
* @apiParam (formulaHidden) {String} idx 下标
* @apiParam (formulaHidden) {JSONArray} farr 字段列表
* @apiParam (farr) {String} fieldCN 字段中文名
* @apiParam (farr) {String} fieldCond 字段条件区域
* @apiParam {Boolean} isUseSql 是否使用sql获取指标
* @apiParam {Integer} dataSourceId 使用sql获取指标时对应的数据源
* @apiParam {String} sqlStatement 使用sql获取指标时对应的sql语句
* @apiSuccess {String} status 状态: 1成功, 0失败
* @apiParamExample {json} 请求示例:
* {"searchKey":"","fieldTypeId":"302","userId":"","formula":"","formulaShow":"","engineId":"","fieldEn":"f_f_f_network_real_amount_derive","fieldCn":"网点余额衍生字段","valueType":"1","isDerivative":"1","isOutput":"0","valueScope":"[-1,9999999)","fieldCondList":[{"fieldSubCond":[{"fieldId":"824","operator":">","fieldValue":"2000","logical":"&&"},{"fieldId":"826","operator":"<","fieldValue":"5000"}],"conditionValue":"666"},{"fieldSubCond":[{"fieldId":"824","operator":"<=","fieldValue":"2000","logical":"&&"},{"fieldId":"826","operator":"<","fieldValue":"5000"}],"conditionValue":"888"}],"formulaHidden":[{"fvalue":"","formula":"@同盾_评分@ - @第三方分值@ ","idx":"0","farr":[{"fieldCN":"同盾_评分","fieldCond":""},{"fieldCN":"第三方分值 ","fieldCond":""}]}],"isUseSql":"0","dataSourceId":null,"sqlStatement":""}
* @apiSuccessExample {json} 成功返回数据示例:
* {}
*/
@RequestMapping(value = "/save", method = RequestMethod.POST)
@ArchivesLog(operationType = OpTypeConst.SAVE_FILED)
@DataXChange(changeName = DataXCacheConst.Type.FIELD)
public ResponseEntityDto<Object> save(@RequestBody FieldSaveParam fieldSaveParam) {
Field fieldVo = new Field();
BeanUtils.copyProperties(fieldSaveParam, fieldVo);
fieldVo.setIsUseSql(fieldSaveParam.getIsUseSql());
fieldVo.setIsInterface(fieldSaveParam.getIsInterface());//是否使用接口
Map param = JSONObject.parseObject(JSONObject.toJSONString(fieldSaveParam), Map.class);
fieldService.sqlFieldCheck(param);
// 校验
HashMap<String, Object> fieldEnValidateMap = new HashMap<>();
fieldEnValidateMap.put("fieldEn", param.get("fieldEn"));
fieldEnValidateMap.put("engineId", param.get("engineId"));
fieldEnValidateMap.put("Id", param.get("userId"));
int fieldEnNum = fieldEnAjaxValidate(fieldEnValidateMap);
if (fieldEnNum > 0) {
throw new ApiException(ErrorCodeEnum.FIELD_EN_REPEAT.getCode(), ErrorCodeEnum.FIELD_EN_REPEAT.getMessage());
}
HashMap<String, Object> fieldCnValidateMap = new HashMap<>();
fieldCnValidateMap.put("fieldCn", param.get("fieldCn"));
fieldCnValidateMap.put("engineId", param.get("engineId"));
fieldCnValidateMap.put("Id", param.get("userId"));
int fieldCnNum = fieldCnAjaxValidate(fieldCnValidateMap);
if (fieldCnNum > 0) {
throw new ApiException(ErrorCodeEnum.FIELD_CN_REPEAT.getCode(), ErrorCodeEnum.FIELD_CN_REPEAT.getMessage());
}
Long userId = SessionManager.getLoginAccount().getUserId();
Long organId = SessionManager.getLoginAccount().getOrganId();
param.put("userId", userId);
fieldVo.setAuthor(userId);
fieldVo.setOrganId(organId);
//校验字段英文名命名
String fieldEn = fieldVo.getFieldEn();
Pattern.matches("\\[A-z]|_|d+", fieldEn);
param.put("fieldEn", fieldVo.getFieldEn());
param.put("fieldCn", fieldVo.getFieldCn());
param.put("organId", organId);
param.put("engineId", null);
//组织通用字段
Integer isCommon = 1;
fieldVo.setIsCommon(isCommon);
// String formulaFields = "1,2,3,4";
// inputParam.put("formulaFields", formulaFields);
fieldService.createField(fieldVo, param);
// model.addAttribute("engineId", null);
// model.addAttribute("fieldTypeId", Long.valueOf(fieldVo.getFieldTypeId()));
// model.addAttribute("isCommon", 1);
HashMap<String, Object> modelMap = new HashMap<>();
modelMap.put("engineId", null);
modelMap.put("fieldTypeId", Long.valueOf(fieldVo.getFieldTypeId()));
modelMap.put("isCommon", 1);
return ResponseEntityBuilder.buildNormalResponse(modelMap);
}
/**
* @api {POST} /v2/datamanage/datamanage/getFieldInfo/{userId} 2.07. 获取指标详情
* @apiGroup datamanage
* @apiVersion 2.0.0
* @apiParam {Integer} userId 路径参数{userId}指标的id
* @apiSuccess {String} status 状态: 1成功, 0失败
* @apiParamExample {json} 请求示例:
* {}
* @apiSuccessExample {json} 成功返回数据示例:
* {"status":"1","error":"00000000","msg":null,"data":{"hasGroovy":null,"fieldFormulaList":[],"fieldVo":{"page":0,"rows":0,"total":null,"userId":876,"fieldEn":"network_real_amount_derive","fieldCn":"网点余额衍生字段","fieldTypeId":302,"fieldType":"物流","valueType":1,"valueTypeName":null,"valueScope":"[-1,9999999)","isDerivative":1,"isDerivativeName":null,"isOutput":0,"isOutputName":null,"isCommon":1,"formula":"","formulaShow":"","usedFieldId":"824,826","origFieldId":"824,826","author":null,"nickName":null,"created":null,"engineId":null,"engineName":null,"status":null,"fieldCondList":[{"page":0,"rows":0,"total":null,"userId":null,"fieldId":876,"conditionValue":"777","content":"[{\"fieldId\":\"824\",\"operator\":\">\",\"fieldValue\":\"2000\",\"logical\":\"&&\"},{\"fieldId\":\"826\",\"operator\":\"<\",\"fieldValue\":\"5000\"}]","condFieldId":null,"condFieldOperator":null,"condFieldValue":null,"condFieldLogical":null,"created":null,"fieldSubCond":[{"fieldId":824,"operator":">","fieldValue":"2000","logical":"&&","valueType":1,"valueScope":"[-1,9999999)","values":["[-1,9999999)"],"fieldCn":"网点实际余额"},{"fieldId":826,"operator":"<","fieldValue":"5000","logical":null,"valueType":1,"valueScope":"[-1,9999999)","values":["[-1,9999999)"],"fieldCn":"网点关闭余额"}]},{"page":0,"rows":0,"total":null,"userId":null,"fieldId":876,"conditionValue":"999","content":"[{\"fieldId\":\"824\",\"operator\":\"<=\",\"fieldValue\":\"2000\",\"logical\":\"&&\"},{\"fieldId\":\"826\",\"operator\":\"<\",\"fieldValue\":\"5000\"}]","condFieldId":null,"condFieldOperator":null,"condFieldValue":null,"condFieldLogical":null,"created":null,"fieldSubCond":[{"fieldId":824,"operator":"<=","fieldValue":"2000","logical":"&&","valueType":1,"valueScope":"[-1,9999999)","values":["[-1,9999999)"],"fieldCn":"网点实际余额"},{"fieldId":826,"operator":"<","fieldValue":"5000","logical":null,"valueType":1,"valueScope":"[-1,9999999)","values":["[-1,9999999)"],"fieldCn":"网点关闭余额"}]}],"fieldRelId":null,"dataSourceId":null,"sqlStatement":null,"useSql":null},"scopeList":["[-1","9999999)"],"searchKey":null,"fieldTypeId":302,"hasFormula":null,"engineId":null}}
*/
@RequestMapping(value = "/getFieldInfo/{id}", method = RequestMethod.POST)
public ResponseEntityDto<Object> getFieldInfo(@PathVariable long id, @RequestBody Map<String, Object> param) {
Map<String, Object> paramMap = new HashMap<>();
Long userId = SessionManager.getLoginAccount().getUserId();
Long organId = SessionManager.getLoginAccount().getOrganId();
paramMap.put("userId", userId);
paramMap.put("organId", organId);
paramMap.put("engineId", null);
paramMap.put("id", id);
paramMap.put("searchKey", param.get("searchKey"));
Field fieldVo = fieldService.findByFieldId(paramMap);
String fieldEn = fieldVo.getFieldEn();
if (!fieldEn.equals("") && fieldEn != null) {
// fieldEn = fieldEn.replace("f_", "");
fieldVo.setFieldEn(fieldEn);
}
for (FieldCond f : fieldVo.getFieldCondList()) {
List<FieldSubCondVo> fieldSubCondList = JSONObject.parseArray(f.getContent(), FieldSubCondVo.class);
for (FieldSubCondVo fs : fieldSubCondList) {
Map<String, Object> paramMap2 = new HashMap<String, Object>();
paramMap2.put("userId", userId);
paramMap2.put("organId", organId);
paramMap2.put("id", fs.getFieldId());
Field subField = fieldService.findByFieldId(paramMap2);
fs.setValueType(subField.getValueType());
fs.setValueScope(subField.getValueScope());
fs.setFieldCn(subField.getFieldCn());
}
f.setFieldSubCond(fieldSubCondList);
}
//编辑页面返回字段列表时去掉自己
paramMap.put("fieldId", id);
// List<Field> flist = fieldService.findByUser(paramMap);
String valueScope = fieldVo.getValueScope();
List<String> scopeList = null;
if(StringUtils.isNotBlank(valueScope)){
scopeList = Arrays.asList(valueScope.split(","));
}
List<FieldFormulaVo> fieldFormulaList = new ArrayList<FieldFormulaVo>();
String hasGroovy = null;
if (fieldVo.getFormulaShow() != null && !fieldVo.getFormulaShow().equals("")) {
fieldFormulaList = JSONObject.parseArray(fieldVo.getFormulaShow(), FieldFormulaVo.class);
for (FieldFormulaVo fieldFormulaVo : fieldFormulaList) {
if (fieldFormulaVo.getFormula() != null && fieldFormulaVo.getFormula().contains("def main")) {
hasGroovy = "y";
}
}
}
String hasFormula = null;
if (StringUtils.isNotBlank(fieldVo.getFormula())) {
hasFormula = "y";
}
// model.addAttribute("fieldVo", fieldVo);
// model.addAttribute("hasFormula", hasFormula);
// model.addAttribute("hasGroovy", hasGroovy);
// model.addAttribute("engineId", null);
// model.addAttribute("fieldTypeId", Long.valueOf(fieldVo.getFieldTypeId()));
// model.addAttribute("searchKey", inputParam.get("searchKey"));
// model.addAttribute("flist", flist);
// model.addAttribute("scopeList", scopeList);
// model.addAttribute("fieldFormulaList", fieldFormulaList);
HashMap<String, Object> modelMap = new HashMap<>();
modelMap.put("fieldVo", fieldVo);
modelMap.put("hasFormula", hasFormula);
modelMap.put("hasGroovy", hasGroovy);
modelMap.put("engineId", null);
modelMap.put("fieldTypeId", Long.valueOf(fieldVo.getFieldTypeId()));
modelMap.put("searchKey", param.get("searchKey"));
// modelMap.put("flist", flist);
modelMap.put("scopeList", scopeList);
modelMap.put("fieldFormulaList", fieldFormulaList);
return ResponseEntityBuilder.buildNormalResponse(modelMap);
}
/**
* @api {POST} /v2/datamanage/datamanage/update 2.08. 编辑指标
* @apiGroup datamanage
* @apiVersion 2.0.0
* @apiParam {String} searchKey searchKey
* @apiParam {Long} userId 指标ID
* @apiParam {String} formula 衍生字段公式
* @apiParam {String} formulaShow 衍生字段公式回显信息
* @apiParam {Long} engineId 归属的引擎ID
* @apiParam {String} fieldEn 指标英文名:拼接前缀"f_"
* @apiParam {String} fieldCn 指标中文名
* @apiParam {Long} fieldTypeId 字段类型编号
* @apiParam {Integer} valueType 字段存值类型,待选(0),数值型(1),字符型(2),枚举型(3),小数型(4)
* @apiParam {Integer} isDerivative 是否衍生字段0代表不是1代表是
* @apiParam {Integer} isOutput 是否输出字段0代表不是1代表是
* @apiParam {String} valueScope 字段约束范围
* @apiParam {JSONArray} fieldCondList 条件区域内容(传字符串)
* @apiParam (fieldCondList) {String} conditionValue 字段条件值
* @apiParam (fieldCondList) {JSONArray} fieldSubCond 字段列表
* @apiParam (fieldSubCond) {String} fieldId 条件字段编号
* @apiParam (fieldSubCond) {String} operator 条件字段的运算符
* @apiParam (fieldSubCond) {String} fieldValue 条件字段的条件设置值
* @apiParam (fieldSubCond) {String} logical 条件字段间的逻辑符
* @apiParam {JSONArray} formulaHidden 公式编辑、groovy脚本内容传字符串
* @apiParam (formulaHidden) {String} formula 衍生字段公式
* @apiParam (formulaHidden) {String} idx 下标
* @apiParam (formulaHidden) {JSONArray} farr 字段列表
* @apiParam (farr) {String} fieldCN 字段中文名
* @apiParam (farr) {String} fieldCond 字段条件区域
* @apiParam {Boolean} isUseSql 是否使用sql获取指标
* @apiParam {Integer} dataSourceId 使用sql获取指标时对应的数据源
* @apiParam {String} sqlStatement 使用sql获取指标时对应的sql语句
* @apiSuccess {String} status 状态: 1成功, 0失败
* @apiParamExample {json} 请求示例:
* {"searchKey":"","fieldTypeId":"302","userId":876,"formula":"","formulaShow":"","engineId":"","fieldEn":"f_f_f_network_real_amount_derive","fieldCn":"网点余额衍生字段","valueType":"1","isDerivative":"1","isOutput":"0","valueScope":"[-1,9999999)","fieldCondList":[{"fieldSubCond":[{"fieldId":"824","operator":">","fieldValue":"2000","logical":"&&"},{"fieldId":"826","operator":"<","fieldValue":"5000"}],"conditionValue":"666"},{"fieldSubCond":[{"fieldId":"824","operator":"<=","fieldValue":"2000","logical":"&&"},{"fieldId":"826","operator":"<","fieldValue":"5000"}],"conditionValue":"888"}],"formulaHidden":[{"fvalue":"","formula":"@同盾_评分@ - @第三方分值@ ","idx":"0","farr":[{"fieldCN":"同盾_评分","fieldCond":""},{"fieldCN":"第三方分值 ","fieldCond":""}]}],"isUseSql":"0","dataSourceId":null,"sqlStatement":""}
* @apiSuccessExample {json} 成功返回数据示例:
* {}
*/
@RequestMapping(value = "/update", method = RequestMethod.POST)
@ArchivesLog(operationType = OpTypeConst.UPDATE_FILED)
@DataXChange(changeName = DataXCacheConst.Type.FIELD)
public ResponseEntityDto<Object> update(@RequestBody FieldSaveParam fieldSaveParam) {
Map paramMap = JSONObject.parseObject(JSONObject.toJSONString(fieldSaveParam), Map.class);
// 校验
HashMap<String, Object> fieldEnValidateMap = new HashMap<>();
fieldEnValidateMap.put("fieldEn", paramMap.get("fieldEn"));
fieldEnValidateMap.put("engineId", paramMap.get("engineId"));
fieldEnValidateMap.put("Id", paramMap.get("id"));
int fieldEnNum = fieldEnAjaxValidate(fieldEnValidateMap);
if (fieldEnNum > 0) {
throw new ApiException(ErrorCodeEnum.FIELD_EN_REPEAT.getCode(), ErrorCodeEnum.FIELD_EN_REPEAT.getMessage());
}
fieldService.sqlFieldCheck(paramMap);
HashMap<String, Object> fieldCnValidateMap = new HashMap<>();
fieldCnValidateMap.put("fieldCn", paramMap.get("fieldCn"));
fieldCnValidateMap.put("engineId", paramMap.get("engineId"));
fieldCnValidateMap.put("Id", paramMap.get("id"));
int fieldCnNum = fieldCnAjaxValidate(fieldCnValidateMap);
if (fieldCnNum > 0) {
throw new ApiException(ErrorCodeEnum.FIELD_CN_REPEAT.getCode(), ErrorCodeEnum.FIELD_CN_REPEAT.getMessage());
}
HashMap<String, Object> checkFieldMap = new HashMap<>();
checkFieldMap.put("fieldId", paramMap.get("id").toString());
Map<String, Object> checkFieldresult = checkField(checkFieldMap);
boolean beUsed = (boolean) checkFieldresult.get("beUsed");
if (beUsed) {
throw new ApiException(ErrorCodeEnum.FIELD_BE_USERD.getCode(), ErrorCodeEnum.FIELD_BE_USERD.getMessage());
}
Long userId = SessionManager.getLoginAccount().getUserId();
Long organId = SessionManager.getLoginAccount().getOrganId();
paramMap.put("userId", userId);
paramMap.put("organId", organId);
paramMap.put("engineId", null);
//组织通用字段
Integer isCommon = 1;
paramMap.put("isCommon", isCommon);
// String formulaFields = "50,70,90";
// paramMap.put("formulaFields", formulaFields);
fieldService.updateField(paramMap);
// model.addAttribute("engineId", null);
// model.addAttribute("fieldTypeId", fieldTypeId);
// model.addAttribute("searchKey", paramMap.get("searchKey"));
// model.addAttribute("isCommon", 1);
HashMap<String, Object> modelMap = new HashMap<>();
modelMap.put("engineId", null);
//modelMap.put("fieldTypeId",fieldTypeId);
modelMap.put("searchKey", paramMap.get("searchKey"));
modelMap.put("isCommon", 1);
return ResponseEntityBuilder.buildNormalResponse(modelMap);
}
/**
* @api {POST} /v2/datamanage/datamanage/findFieldByUser 2.09. 获当前用户的所有指标
* @apiGroup datamanage
* @apiVersion 2.0.0
* @apiParam {String} [searchKey] searchKey
* @apiParam {String} [engineId] engineId
* @apiParam {String} [fieldId] fieldId
* @apiSuccess {String} status 状态: 1成功, 0失败
* @apiParamExample {json} 请求示例:
* {}
* @apiSuccessExample {json} 成功返回数据示例:
* {"status":"1","error":"00000000","msg":null,"data":{"organId":46,"isCommon":1,"searchKey":"","userId":135,"fieldList":[{"page":0,"rows":0,"total":null,"userId":587,"fieldEn":"f_hr_age","fieldCn":"年龄准入","fieldTypeId":270,"fieldType":"准入","valueType":1,"valueTypeName":null,"valueScope":"(-1,999999]","isDerivative":null,"isDerivativeName":null,"isOutput":null,"isOutputName":null,"isCommon":null,"formula":null,"formulaShow":null,"usedFieldId":null,"origFieldId":null,"author":null,"nickName":null,"created":null,"engineId":null,"engineName":null,"status":null,"fieldCondList":null,"fieldRelId":8739,"dataSourceId":null,"sqlStatement":null,"useSql":null},{"page":0,"rows":0,"total":null,"userId":871,"fieldEn":"f_ziduan111428","fieldCn":"字段111428","fieldTypeId":362,"fieldType":"3月11日测试","valueType":2,"valueTypeName":null,"valueScope":"qwer","isDerivative":null,"isDerivativeName":null,"isOutput":null,"isOutputName":null,"isCommon":null,"formula":null,"formulaShow":null,"usedFieldId":null,"origFieldId":null,"author":null,"nickName":null,"created":null,"engineId":null,"engineName":null,"status":null,"fieldCondList":null,"fieldRelId":10294,"dataSourceId":null,"sqlStatement":null,"useSql":null},{"page":0,"rows":0,"total":null,"userId":872,"fieldEn":"f_ziduan111518","fieldCn":"字段111518","fieldTypeId":327,"fieldType":"ddd","valueType":2,"valueTypeName":null,"valueScope":"qwer","isDerivative":null,"isDerivativeName":null,"isOutput":null,"isOutputName":null,"isCommon":null,"formula":null,"formulaShow":null,"usedFieldId":null,"origFieldId":null,"author":null,"nickName":null,"created":null,"engineId":null,"engineName":null,"status":null,"fieldCondList":null,"fieldRelId":10295,"dataSourceId":null,"sqlStatement":null,"useSql":null},{"page":0,"rows":0,"total":null,"userId":873,"fieldEn":"f_ziduan111733","fieldCn":"字段111733","fieldTypeId":327,"fieldType":"ddd","valueType":2,"valueTypeName":null,"valueScope":"qwer","isDerivative":null,"isDerivativeName":null,"isOutput":null,"isOutputName":null,"isCommon":null,"formula":null,"formulaShow":null,"usedFieldId":null,"origFieldId":null,"author":null,"nickName":null,"created":null,"engineId":null,"engineName":null,"status":null,"fieldCondList":null,"fieldRelId":10296,"dataSourceId":null,"sqlStatement":null,"useSql":null},{"page":0,"rows":0,"total":null,"userId":876,"fieldEn":"f_f_f_network_real_amount_derive","fieldCn":"网点余额衍生字段","fieldTypeId":302,"fieldType":"物流","valueType":1,"valueTypeName":null,"valueScope":"[-1,9999999)","isDerivative":null,"isDerivativeName":null,"isOutput":null,"isOutputName":null,"isCommon":null,"formula":null,"formulaShow":null,"usedFieldId":null,"origFieldId":null,"author":null,"nickName":null,"created":null,"engineId":null,"engineName":null,"status":null,"fieldCondList":null,"fieldRelId":10299,"dataSourceId":null,"sqlStatement":null,"useSql":null}],"engineId":null,"fieldId":""}}
*/
@RequestMapping(value = "/findFieldByUser", method = RequestMethod.POST)
public ResponseEntityDto<Object> findFieldByUser(@RequestBody HashMap<String, Object> paramMap) {
Long userId = SessionManager.getLoginAccount().getUserId();
Long organId = SessionManager.getLoginAccount().getOrganId();
paramMap.put("userId", userId);
paramMap.put("organId", organId);
Integer isCommon = 1;
Integer engineId = null;
if (paramMap.containsKey("engineId") && !paramMap.get("engineId").equals("")) {
isCommon = 0;
engineId = Integer.valueOf((String) paramMap.get("engineId")).intValue();
paramMap.put("engineId", engineId);
} else {
isCommon = 1;
paramMap.put("engineId", null);
}
paramMap.put("isCommon", isCommon);
if (!paramMap.containsKey("fieldId")) {
paramMap.put("fieldId", null);
}
List<Field> fieldList = fieldService.findByUser(paramMap);
paramMap.put("fieldList", fieldList);
return ResponseEntityBuilder.buildNormalResponse(paramMap);
}
private Map<String, Object> checkField(Map<String, Object> param) {
Long userId = SessionManager.getLoginAccount().getUserId();
Long organId = SessionManager.getLoginAccount().getOrganId();
param.put("userId", userId);
param.put("organId", organId);
param.put("engineId", null);
return fieldService.checkField(param);
}
public int fieldEnAjaxValidate(HashMap<String, Object> paramMap) {
Long userId = SessionManager.getLoginAccount().getUserId();
paramMap.put("userId", userId);
if ("".equals(paramMap.get("engineId"))) {
paramMap.put("engineId", null);
}
if ("".equals(paramMap.get("Id"))) {
paramMap.put("Id", null);
}
paramMap.put("fieldCn", null);
return fieldService.isExists(paramMap);
}
public int fieldCnAjaxValidate(HashMap<String, Object> paramMap) {
Long userId = SessionManager.getLoginAccount().getUserId();
paramMap.put("userId", userId);
if ("".equals(paramMap.get("engineId"))) {
paramMap.put("engineId", null);
}
if ("".equals(paramMap.get("Id"))) {
paramMap.put("Id", null);
}
paramMap.put("fieldEn", null);
return fieldService.isExists(paramMap);
}
/**
* @api {POST} /v2/datamanage/datamanage/downTemplate 2.10. 指标导入模板下载
* @apiGroup datamanage
* @apiVersion 2.0.0
*/
@RequestMapping("downTemplate")
public ResponseEntity<byte[]> downExcelTemplate() throws IOException {
ClassPathResource classPathResource = new ClassPathResource("excleTemplate/datamanage.xlsx");
InputStream inputStream = classPathResource.getInputStream();
HttpHeaders headers = new HttpHeaders();
String fileName = new String("基础指标导入模板.xlsx".getBytes("UTF-8"), "iso-8859-1");//为了解决中文名称乱码问题
headers.setContentDispositionFormData("attachment", fileName);
headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
return new ResponseEntity<byte[]>(IOUtils.toByteArray(inputStream), headers, HttpStatus.CREATED);
}
/**
* @api {POST} /v2/datamanage/datamanage/upload 2.11. 批量导入指标
* @apiGroup datamanage
* @apiVersion 2.0.0
*/
@RequestMapping(value = "upload", method = RequestMethod.POST)
@DataXChange(changeName = DataXCacheConst.Type.FIELD)
public ResponseEntityDto<Object> upload(HttpServletRequest request) throws Exception {
//将当前上下文初始化给 CommonsMutipartResolver (多部分解析器)
CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(request.getSession().getServletContext());
//检查form中是否有enctype="multipart/form-data"
String accessUrl = "";
String fileName = "";
if (multipartResolver.isMultipart(request)) {
//将request变成多部分request
MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest) request;
//获取multiRequest 中所有的文件名
Iterator iter = multiRequest.getFileNames();
while (iter.hasNext()) {
//一次遍历所有文件
MultipartFile file = multiRequest.getFile(iter.next().toString());
if (file != null) {
String uploadDir = request.getSession().getServletContext().getRealPath("/") + "upload/fieldUpload/";
if (!new File(uploadDir).exists()) {
File dir = new File(uploadDir);
dir.mkdirs();
}
fileName = System.currentTimeMillis() + "_" + file.getOriginalFilename();
String path = uploadDir + fileName;
//上传
file.transferTo(new File(path));
accessUrl = path;
}
}
}
Long userId = SessionManager.getLoginAccount().getUserId();
Long organId = SessionManager.getLoginAccount().getOrganId();
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("userId", userId);
paramMap.put("author", userId);
paramMap.put("organId", organId);
Integer isCommon = 0;
if (paramMap.get("engineId") == null) {
isCommon = 1;
} else {
isCommon = 0;
}
paramMap.put("isCommon", isCommon);
Map<String, Object> resultMap = fieldService.importExcel(accessUrl, paramMap);
return ResponseEntityBuilder.buildNormalResponse(resultMap);
}
/**
* @api {POST} /v2/datamanage/datamanage/getEngineFields 2.xx. 获取引擎可用字段
* @apiGroup zzzzz01
* @apiVersion 2.0.0
* @apiParam {Integer} isOutput 是否输出字段0代表不是1代表是默认不是(0)
* @apiParam {Integer} [engineId] 引擎id
* @apiSuccess {String} status 状态1成功0失败
* @apiParamExample {json} 请求示例:
* {"isOutput":0}
* {"isOutput":1}
* {"isOutput":0,"engineId":211}
* {"isOutput":1,"engineId":211}
* @apiSuccessExample {json} 成功返回数据示例:
* {待完善}
*/
@RequestMapping(value = "/getEngineFields", method = RequestMethod.POST)
public ResponseEntityDto<Object> getEngineFields(@RequestBody Map<String, Object> paramMap) {
//通过引擎编号查询可用字段,后面可以放到缓存中
SysUser sysUser = SessionManager.getLoginAccount();
paramMap.put("userId", sysUser.getUserId());
paramMap.put("organId", sysUser.getOrganId());
List<Field> fields = fieldService.getFieldList(paramMap);
if (CollectionUtil.isNotNullOrEmpty(fields)) {
List<FieldEnumVo> fieldEnumVos = new ArrayList<FieldEnumVo>();
FieldEnumVo fieldEnumVo = null;
for (Field field : fields) {
fieldEnumVo = new FieldEnumVo();
fieldEnumVo.setField(field);
if (field.getValueType() == ValueType.Enum.getValue()) {
//如果是枚举
String valueScope = field.getValueScope();
if (StringUtil.isValidStr(valueScope)) {
//获取枚举值
fieldEnumVo.setEnums(Arrays.asList(valueScope.split(CommonConst.SYMBOL_COMMA)));
}
}
fieldEnumVos.add(fieldEnumVo);
}
return ResponseEntityBuilder.buildNormalResponse(fieldEnumVos);
}
return ResponseEntityBuilder.buildNormalResponse(new ArrayList<FieldEnumVo>());
}
@PostMapping(value = "/updateFieldFolder")
@ArchivesLog(operationType = OpTypeConst.UPDATE_FIELD_FOLDER)
@DataXChange(changeName = DataXCacheConst.Type.FIELD)
public ResponseEntityDto<Object> updateFieldFolder(@RequestBody UpdateFolderParam param){
UpdateFolderParam.checkNotNull(param);
int result = fieldService.updateFieldFolder(param);
if (result>0){
return ResponseEntityBuilder.buildNormalResponse("成功移动"+result+"条数据");
}
return ResponseEntityBuilder.buildErrorResponse("移动失败","");
}
}

View File

@@ -0,0 +1,65 @@
package com.fibo.ddp.datax.realtime.controller.datasource;
import com.fibo.ddp.common.model.common.ResponseEntityBuilder;
import com.fibo.ddp.common.model.common.ResponseEntityDto;
import com.fibo.ddp.common.model.datax.consts.DataXCacheConst;
import com.fibo.ddp.common.model.datax.datasource.request.DataSourceListParam;
import com.fibo.ddp.common.model.datax.datasource.vo.DataSourceVo;
import com.fibo.ddp.common.service.datax.cache.DataXChange;
import com.fibo.ddp.common.service.datax.datasource.DataSourceService;
import com.fibo.ddp.common.service.monitor.logger.ArchivesLog;
import com.fibo.ddp.common.utils.constant.OpTypeConst;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.Map;
@RestController
@RequestMapping("/datasource")
public class DataSourceController {
private final Logger logger = LoggerFactory.getLogger(this.getClass());
@Autowired
DataSourceService dataSourceService;
@RequestMapping(value = "save", method = RequestMethod.POST)
@ArchivesLog(operationType = OpTypeConst.DATA_SOURCE_SAVE)
@DataXChange(changeName = DataXCacheConst.Type.DATA_SOURCE)
public ResponseEntityDto<Object> save(@RequestBody DataSourceVo dataSourceVo) {
Integer result = dataSourceService.saveDataSource(dataSourceVo);
return ResponseEntityBuilder.buildNormalResponse(result);
}
@RequestMapping(value = "update", method = RequestMethod.POST)
@ArchivesLog(operationType = OpTypeConst.DATA_SOURCE_MODIFY)
@DataXChange(changeName = DataXCacheConst.Type.DATA_SOURCE)
public ResponseEntityDto<Object> update(@RequestBody DataSourceVo dataSourceVo) {
Integer result = dataSourceService.updateDataSource(dataSourceVo);
return ResponseEntityBuilder.buildNormalResponse(result);
}
@RequestMapping(value = "/getDataSource/{id}", method = RequestMethod.GET)
public ResponseEntityDto<DataSourceVo> getDataSourceById(@PathVariable Integer id) {
DataSourceVo dataSourceVo = dataSourceService.getDataSourceById(id);
return ResponseEntityBuilder.buildNormalResponse(dataSourceVo);
}
@RequestMapping(value = "getDataSourceList", method = RequestMethod.POST)
public ResponseEntityDto<Object> getDataSourceList(@RequestBody DataSourceListParam param) {
Map<String, Object> result = dataSourceService.getDataSourceList(param);
return ResponseEntityBuilder.buildNormalResponse(result);
}
@RequestMapping(value = "/{id}", method = RequestMethod.DELETE)
@ArchivesLog(operationType = OpTypeConst.DATA_SOURCE_DELETE)
@DataXChange(changeName = DataXCacheConst.Type.DATA_SOURCE)
public ResponseEntityDto<Object> deleteDataSourceById(@PathVariable Integer id) {
Integer result = dataSourceService.deleteDataSourceById(id);
return ResponseEntityBuilder.buildNormalResponse(result);
}
}

View File

@@ -0,0 +1,66 @@
package com.fibo.ddp.datax.realtime.controller.datasource;
import com.fibo.ddp.common.model.common.ResponseEntityBuilder;
import com.fibo.ddp.common.model.common.ResponseEntityDto;
import com.fibo.ddp.common.model.common.enums.ErrorCodeEnum;
import com.fibo.ddp.common.model.common.requestParam.QueryListParam;
import com.fibo.ddp.common.model.common.requestParam.UpdateStatusParam;
import com.fibo.ddp.common.model.datax.consts.DataXCacheConst;
import com.fibo.ddp.common.model.datax.datasource.MqSource;
import com.fibo.ddp.common.service.datax.cache.DataXChange;
import com.fibo.ddp.common.service.datax.datasource.MqSourceService;
import com.github.pagehelper.PageInfo;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
/**
* (MqSource)表控制层
*
* @author jgp
* @since 2021-12-20 13:31:51
*/
@RestController
@RequestMapping("/mqSource")
public class MqSourceController {
/**
* 服务对象
*/
@Resource
private MqSourceService mqSourceService;
@PostMapping("/getMqSourceInfo/{id}")
public ResponseEntityDto getInfo(@PathVariable("id") Long id) {
MqSource result = mqSourceService.queryById(id);
return ResponseEntityBuilder.buildNormalResponse(result);
}
@PostMapping("/getMqSourceList")
public ResponseEntityDto getMqSourceList(@RequestBody QueryListParam<MqSource> param) {
PageInfo result = mqSourceService.queryList(param);
return ResponseEntityBuilder.buildNormalResponse(result);
}
@PostMapping("/addMqSource")
@DataXChange(changeName = DataXCacheConst.Type.MQ_SOURCE)
public ResponseEntityDto addMqSource(@RequestBody MqSource param) {
MqSource result = mqSourceService.add(param);
return ResponseEntityBuilder.buildNormalResponse(result);
}
@PostMapping("/updateMqSource")
@DataXChange(changeName = DataXCacheConst.Type.MQ_SOURCE)
public ResponseEntityDto updateMqSource(@RequestBody MqSource param) {
MqSource result = mqSourceService.update(param);
return ResponseEntityBuilder.buildNormalResponse(result);
}
@PostMapping("/updateStatus")
@DataXChange(changeName = DataXCacheConst.Type.MQ_SOURCE)
public ResponseEntityDto updateStatus(@RequestBody UpdateStatusParam param) {
UpdateStatusParam.checkParam(param);
boolean updateResult = mqSourceService.updateStatus(param.getList(),param.getStatus());
if (updateResult){
return ResponseEntityBuilder.buildNormalResponse(updateResult);
}else {
return ResponseEntityBuilder.buildErrorResponse(ErrorCodeEnum.DECISION_TABLES_UPDATE_ERROR);
}
}
}

View File

@@ -0,0 +1,36 @@
package com.fibo.ddp.datax.realtime.controller.home;
import com.fibo.ddp.common.model.common.ResponseEntityBuilder;
import com.fibo.ddp.common.model.common.ResponseEntityDto;
import com.fibo.ddp.common.service.datax.home.HomeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import java.util.HashMap;
import java.util.Map;
@RestController
@RequestMapping("/DataX/home")
public class DataXHomeController {
@Autowired
@Qualifier("dataXService")
HomeService homeService;
@PostMapping("/getIndexInfo")
@ResponseBody
public ResponseEntityDto getIndexInfo(){
Map<String, Object> result = homeService.getIndexInfo();
if (result==null){
result = new HashMap<>();
}
return ResponseEntityBuilder.buildNormalResponse(result);
}
}