提交 f9cd3177 authored 作者: ww1xhqc's avatar ww1xhqc

Merge remote-tracking branch 'origin/master'

......@@ -3,6 +3,8 @@ package com.tykj.workflowcore.api.controller;
import com.tykj.workflowcore.api.entity.ClassInfo;
import com.tykj.workflowcore.api.entity.InvokeRequest;
import com.tykj.workflowcore.api.service.ApiService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
......@@ -11,7 +13,7 @@ import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@Api(tags = "函数管理接口")
@RestController("/api/info")
public class ApiController {
......@@ -21,11 +23,13 @@ public class ApiController {
this.apiService = apiService;
}
@ApiOperation(value = "查询所有可调用函数信息")
@GetMapping
public ResponseEntity<List<ClassInfo>> findAll() {
return ResponseEntity.ok(apiService.findAll());
}
@ApiOperation(value = "调用指定函数")
@PostMapping
public void invoke(@RequestBody InvokeRequest invokeRequest) {
apiService.invoke(invokeRequest.getClassName(),invokeRequest.getName(),invokeRequest.getParams());
......
package com.tykj.workflowcore.api.entity;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
......@@ -11,11 +12,13 @@ import java.util.List;
@AllArgsConstructor
@NoArgsConstructor
public class ApiInfo {
@ApiModelProperty(value = "所属类名")
private String className;
@ApiModelProperty(value = "参数信息")
private List<EntityInfo> params;
@ApiModelProperty(value = "返回信息")
private EntityInfo ret;
}
package com.tykj.workflowcore.api.entity;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
......@@ -11,8 +12,10 @@ import java.util.List;
@NoArgsConstructor
public class ClassInfo {
@ApiModelProperty(value = "类名")
private String className;
@ApiModelProperty(value = "函数信息")
private List<ApiInfo> apiInfos;
}
package com.tykj.workflowcore.api.entity;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
......@@ -11,10 +12,13 @@ import java.util.List;
@NoArgsConstructor
public class EntityInfo {
@ApiModelProperty(value = "类名")
private String className;
@ApiModelProperty(value = "参数名")
private String name;
@ApiModelProperty(value = "变量信息")
private List<EntityInfo> fields;
}
package com.tykj.workflowcore.api.entity;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
......@@ -11,10 +12,13 @@ import java.util.List;
@NoArgsConstructor
public class InvokeRequest {
@ApiModelProperty(value = "类名")
private String className;
@ApiModelProperty(value = "函数名")
private String name;
@ApiModelProperty(value = "参数信息")
private List<Parameter> params;
}
package com.tykj.workflowcore.api.entity;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
......@@ -14,12 +15,14 @@ public class Parameter {
/**
* 类名
*/
@ApiModelProperty(value = "类名")
private String className;
/**
* Map形式的实例对象
* key为字段名 value为字段值
*/
@ApiModelProperty(value = "实例对象")
private Map<String,Object> instance;
}
......@@ -18,8 +18,8 @@ public class ResultUtil<T> {
*
* @param data 获取的数据
*/
public static <T> ResponseEntity<ResultObj<T>> success(T data) {
return ResponseEntity.ok(new ResultObj<>(data));
public static <T> ResponseEntity<ResultObj<T>> success(T data,String message) {
return ResponseEntity.ok(new ResultObj<>(data,message));
}
/**
......
......@@ -84,9 +84,9 @@ public class FlowsInfoController {
// return xml;
// }
@GetMapping("/deploy/{id}")
@GetMapping("/deploy")
@ApiOperation(value = "部署流程",notes = "0 部署成功")
public Integer deploy(@PathVariable("id") Long id) throws FileNotFoundException {
public Integer deploy(Long id) throws FileNotFoundException {
//根据id 查询出flowsInfo
FlowsInfo flowsInfo = flowInfoService.findById(id);
if (flowsInfo.getState() == 0){
......
package com.tykj.workflowcore.workflow_editer.controller;
import com.tykj.workflowcore.base.result.ResultObj;
import com.tykj.workflowcore.base.result.ResultUtil;
import com.tykj.workflowcore.model_layer.model.TableInfo;
import com.tykj.workflowcore.workflow_editer.entity.FormPage;
import com.tykj.workflowcore.workflow_editer.entity.PageEntity;
//import com.tykj.workflowcore.workflow_editer.entity.PageEntity;
import com.tykj.workflowcore.workflow_editer.service.FormPageService;
import com.tykj.workflowcore.workflow_editer.service.PageEntityService;
//import com.tykj.workflowcore.workflow_editer.service.PageEntityService;
import com.tykj.workflowcore.workflow_editer.vo.InFormPageVo;
import com.tykj.workflowcore.workflow_editer.vo.OutFormPageVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import java.util.List;
......@@ -28,26 +32,25 @@ public class FormPageController {
@Autowired
private FormPageService formPageService;
@Autowired
private PageEntityService pageEntityService;
// @Autowired
// private PageEntityService pageEntityService;
@ApiOperation("保存页面")
@PostMapping("/savePage")
public Long savePage(@RequestBody InFormPageVo inFormPageVo){
List<String> entityIds = inFormPageVo.getEntityIds();
for (String entityId : entityIds) {
PageEntity pageEntity = new PageEntity();
pageEntity.setEntityId(entityId);
pageEntity.setPageId(formPageService.savePage(inFormPageVo));
pageEntityService.savePageEntity(pageEntity);
public ResponseEntity savePage(@RequestBody InFormPageVo inFormPageVo){
if (inFormPageVo.getId() == null){
Long pageId = formPageService.savePage(inFormPageVo);
return ResultUtil.success(pageId,"页面保存成功");
}else {
//修改
FormPage formPage = inFormPageVo.toEntity();
formPageService.update(formPage);
return ResultUtil.success(inFormPageVo.getId(),"页面保存成功");
}
return formPageService.savePage(inFormPageVo);
}
@ApiOperation("回显页面")
@GetMapping("/EchoPage/{id}")
public FormPage EchoPage(@PathVariable("id") Long id){
@GetMapping("/EchoPage")
public FormPage EchoPage(Long id){
return formPageService.getPage(id);
}
......@@ -58,9 +61,14 @@ public class FormPageController {
}
@ApiOperation("删除页面")
@DeleteMapping("deletePage/{id}")
public void deletePage(@PathVariable("id") Long id){
@DeleteMapping("deletePage")
public void deletePage(Long id){
formPageService.deletePage(id);
}
@PostMapping("/findByPages")
public List<TableInfo> findByPages(@RequestBody List<Long> pageIds){
return formPageService.findByPageIds(pageIds);
}
}
package com.tykj.workflowcore.workflow_editer.controller;
import com.tykj.workflowcore.model_layer.model.TableInfo;
import com.tykj.workflowcore.workflow_editer.entity.PageEntity;
import com.tykj.workflowcore.workflow_editer.service.PageEntityService;
import io.swagger.annotations.Api;
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;
/**
* ClassName: PageEntityController
* Package: com.tykj.controller
* Description:
* Datetime: 2021/3/4 9:50
*
* @Author: zsp
*/
@RestController
@RequestMapping("/pageEntity")
@Api("页面跟实体的管理")
public class PageEntityController {
@Autowired
private PageEntityService pageEntityService;
@PostMapping("/savePageEntity")
public void savePageEntity(@RequestBody PageEntity pageEntity){
pageEntityService.savePageEntity(pageEntity);
}
@PostMapping("/findByPages")
public List<TableInfo> findByPages(List<Integer> pageIds){
return pageEntityService.findByPageIds(pageIds);
}
}
//package com.tykj.workflowcore.workflow_editer.controller;
//
//import com.tykj.workflowcore.model_layer.model.TableInfo;
//import com.tykj.workflowcore.workflow_editer.entity.PageEntity;
//import com.tykj.workflowcore.workflow_editer.service.PageEntityService;
//import io.swagger.annotations.Api;
//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;
//
///**
// * ClassName: PageEntityController
// * Package: com.tykj.controller
// * Description:
// * Datetime: 2021/3/4 9:50
// *
// * @Author: zsp
// */
//@RestController
//@RequestMapping("/pageEntity")
//@Api("页面跟实体的管理")
//
//public class PageEntityController {
//
// @Autowired
// private PageEntityService pageEntityService;
//
// @PostMapping("/savePageEntity")
// public void savePageEntity(@RequestBody PageEntity pageEntity){
// pageEntityService.savePageEntity(pageEntity);
// }
//
// @PostMapping("/findByPages")
// public List<TableInfo> findByPages(List<Integer> pageIds){
//
// return pageEntityService.findByPageIds(pageIds);
// }
//}
......@@ -91,9 +91,9 @@ public class WorkFlowController {
workFlowService.suspendOrActivateProcessDefinitionByKey(suspendVo);
}
@DeleteMapping("/deleteFlow/{deployId}")
@DeleteMapping("/deleteFlow")
@ApiOperation("是否删除")
public void deleteFlow(@PathVariable("deployId") String deployId){
public void deleteFlow(String deployId){
//根据流程id查询出flowsInfo
FlowsInfo flowsInfo = flowInfoService.findByDeployId(deployId);
//删除flowsInfo
......
......@@ -59,6 +59,9 @@ public class FormPage {
@ApiModelProperty("json描述文件")
private String descFile;
@ApiModelProperty("实体类id")
private String entityId;
public OutFormPageVo toEntityVo(){
OutFormPageVo outFormPageVo = new OutFormPageVo();
BeanUtils.copyProperties(this,outFormPageVo);
......
package com.tykj.workflowcore.workflow_editer.entity;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import java.util.ArrayList;
import java.util.List;
/**
* ClassName: PageEntity
* Package: com.tykj.entity
* Description:
* Datetime: 2021/3/3 10:51
*
* @Author: zsp
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Entity
@Api("页面实体关系")
public class PageEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@ApiModelProperty("主键id")
private Long id;
@ApiModelProperty("页面Id")
private Long pageId;
@ApiModelProperty("实体类Id")
private String entityId;
}
//package com.tykj.workflowcore.workflow_editer.entity;
//
//import io.swagger.annotations.Api;
//import io.swagger.annotations.ApiModelProperty;
//import lombok.AllArgsConstructor;
//import lombok.Data;
//import lombok.NoArgsConstructor;
//
//import javax.persistence.Entity;
//import javax.persistence.GeneratedValue;
//import javax.persistence.GenerationType;
//import javax.persistence.Id;
//import java.util.ArrayList;
//import java.util.List;
//
///**
// * ClassName: PageEntity
// * Package: com.tykj.entity
// * Description:
// * Datetime: 2021/3/3 10:51
// *
// * @Author: zsp
// */
//@Data
//@AllArgsConstructor
//@NoArgsConstructor
//@Entity
//@Api("页面实体关系")
//public class PageEntity {
//
// @Id
// @GeneratedValue(strategy = GenerationType.IDENTITY)
// @ApiModelProperty("主键id")
// private Long id;
//
// @ApiModelProperty("页面Id")
// private Long pageId;
//
// @ApiModelProperty("实体类Id")
// private String entityId;
//}
package com.tykj.workflowcore.workflow_editer.entity;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* ClassName: Result
* Package: com.tykj.entity
* Description: 返回类型
* Datetime: 2021/2/23 10:18
*
* @Author: zsp
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Api("统一返回结果集")
public class Result {
@ApiModelProperty("返回状态")
private Integer status;
@ApiModelProperty("返回信息")
private String message;
}
package com.tykj.workflowcore.workflow_editer.mapper;
import com.tykj.workflowcore.model_layer.model.TableInfo;
import com.tykj.workflowcore.workflow_editer.entity.PageEntity;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import java.util.List;
/**
* ClassName: PageEntityMapper
* Package: com.tykj.mapper
* Description:
* Datetime: 2021/3/4 9:53
*
* @Author: zsp
*/
public interface PageEntityMapper extends JpaRepository<PageEntity,Long>, JpaSpecificationExecutor<PageEntity> {
/**
* 根据页面id查询
* @param pageId 页面id
* @return
*/
PageEntity findByPageId(Integer pageId);
}
//package com.tykj.workflowcore.workflow_editer.mapper;
//
//import com.tykj.workflowcore.model_layer.model.TableInfo;
//import com.tykj.workflowcore.workflow_editer.entity.PageEntity;
//import org.springframework.data.jpa.repository.JpaRepository;
//import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
//
//import java.util.List;
//
///**
// * ClassName: PageEntityMapper
// * Package: com.tykj.mapper
// * Description:
// * Datetime: 2021/3/4 9:53
// *
// * @Author: zsp
// */
//public interface PageEntityMapper extends JpaRepository<PageEntity,Long>, JpaSpecificationExecutor<PageEntity> {
//
// /**
// * 根据页面id查询
// * @param pageId 页面id
// * @return
// */
// PageEntity findByPageId(Integer pageId);
//}
//
package com.tykj.workflowcore.workflow_editer.service;
import com.tykj.workflowcore.model_layer.model.TableInfo;
import com.tykj.workflowcore.workflow_editer.entity.FormPage;
import com.tykj.workflowcore.workflow_editer.vo.InFormPageVo;
import com.tykj.workflowcore.workflow_editer.vo.OutFormPageVo;
......@@ -25,6 +26,12 @@ public interface FormPageService {
*/
Long savePage(@RequestBody InFormPageVo inFormPageVo);
/**
* 保存页面
* @param formPage 页面实体
* @return 主键id
*/
void update(FormPage formPage);
/**
* 根据页面id来进行回显
* @param id 页面id
......@@ -44,4 +51,10 @@ public interface FormPageService {
*/
List<OutFormPageVo> getAllPages();
/**
* 根据页面id查询tableInfo
* @param pageIds 页面id
* @return
*/
List<TableInfo> findByPageIds(List<Long> pageIds);
}
package com.tykj.workflowcore.workflow_editer.service;
import com.tykj.workflowcore.model_layer.model.TableInfo;
import com.tykj.workflowcore.workflow_editer.entity.PageEntity;
import java.util.List;
/**
* ClassName: PageEntityService
* Package: com.tykj.service
* Description:
* Datetime: 2021/3/4 9:52
*
* @Author: zsp
*/
public interface PageEntityService {
/**
* 保存
* @param pageEntity 页面实体之间关系
*/
void savePageEntity(PageEntity pageEntity);
/**
* 根据页面id查询tableInfo
* @param pageIds 页面id
* @return
*/
List<TableInfo> findByPageIds(List<Integer> pageIds);
}
//package com.tykj.workflowcore.workflow_editer.service;
//
//import com.tykj.workflowcore.model_layer.model.TableInfo;
//import com.tykj.workflowcore.workflow_editer.entity.PageEntity;
//
//import java.util.List;
//
///**
// * ClassName: PageEntityService
// * Package: com.tykj.service
// * Description:
// * Datetime: 2021/3/4 9:52
// *
// * @Author: zsp
// */
//public interface PageEntityService {
//
// /**
// * 保存
// * @param pageEntity 页面实体之间关系
// */
// void savePageEntity(PageEntity pageEntity);
//
// /**
// * 根据页面id查询tableInfo
// * @param pageIds 页面id
// * @return
// */
// List<TableInfo> findByPageIds(List<Integer> pageIds);
//
//
//}
package com.tykj.workflowcore.workflow_editer.service.impl;
import com.github.wenhao.jpa.PredicateBuilder;
import com.github.wenhao.jpa.Specifications;
import com.tykj.workflowcore.model_layer.dao.TableInfoDao;
import com.tykj.workflowcore.model_layer.model.TableInfo;
import com.tykj.workflowcore.workflow_editer.entity.FormPage;
import com.tykj.workflowcore.workflow_editer.mapper.FormPageMapper;
import com.tykj.workflowcore.workflow_editer.service.FormPageService;
......@@ -28,7 +32,8 @@ public class FormPageServiceImpl implements FormPageService {
@Autowired
private FormPageMapper formPageMapper;
@Autowired
private TableInfoDao tableInfoDao;
@Override
public Long savePage(@RequestBody InFormPageVo inFormPageVo) {
inFormPageVo.setCreateTime(new Date());
......@@ -38,6 +43,11 @@ public class FormPageServiceImpl implements FormPageService {
return id;
}
@Override
public void update(FormPage formPage) {
formPageMapper.save(formPage);
}
@Override
public FormPage getPage(@PathVariable("id") Long id) {
......@@ -66,5 +76,19 @@ public class FormPageServiceImpl implements FormPageService {
return formPageVos;
}
@Override
public List<TableInfo> findByPageIds(List<Long> pageIds) {
ArrayList<TableInfo> list = new ArrayList<>();
for (Long pageId : pageIds) {
//通过pageId 查询出表id
String entityId = formPageMapper.findById(pageId).get().getEntityId();
//根据entityId查询出表
PredicateBuilder<TableInfo> builder = Specifications.and();
builder.eq("id",entityId);
List<TableInfo> tableInfoList = tableInfoDao.findAll(builder.build());
list.addAll(tableInfoList);
}
return list;
}
}
package com.tykj.workflowcore.workflow_editer.service.impl;
import com.tykj.workflowcore.model_layer.dao.TableInfoDao;
import com.tykj.workflowcore.model_layer.model.TableInfo;
import com.tykj.workflowcore.workflow_editer.entity.PageEntity;
import com.tykj.workflowcore.workflow_editer.mapper.PageEntityMapper;
import com.tykj.workflowcore.workflow_editer.service.PageEntityService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
/**
* ClassName: PageEntityServiceImpl
* Package: com.tykj.service.impl
* Description:
* Datetime: 2021/3/4 9:55
*
* @Author: zsp
*/
@Service
public class PageEntityServiceImpl implements PageEntityService {
@Autowired
private PageEntityMapper pageEntityMapper;
@Autowired
private TableInfoDao tableInfoDao;
@Override
public void savePageEntity(PageEntity pageEntity) {
pageEntityMapper.save(pageEntity);
}
@Override
public List<TableInfo> findByPageIds(List<Integer> pageIds) {
ArrayList<TableInfo> list = new ArrayList<>();
for (Integer pageId : pageIds) {
Long entityId = pageEntityMapper.findByPageId(pageId).getEntityId();
//根据entityId查询出实体类
TableInfo tableInfo = tableInfoDao.findById(entityId).get();
list.add(tableInfo);
}
return list;
}
}
//package com.tykj.workflowcore.workflow_editer.service.impl;
//
//import com.github.wenhao.jpa.PredicateBuilder;
//import com.github.wenhao.jpa.Specifications;
//import com.tykj.workflowcore.model_layer.dao.TableInfoDao;
//import com.tykj.workflowcore.model_layer.model.TableInfo;
//import com.tykj.workflowcore.workflow_editer.entity.PageEntity;
//import com.tykj.workflowcore.workflow_editer.mapper.PageEntityMapper;
//import com.tykj.workflowcore.workflow_editer.service.PageEntityService;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.stereotype.Service;
//import java.util.ArrayList;
//import java.util.List;
//
///**
// * ClassName: PageEntityServiceImpl
// * Package: com.tykj.service.impl
// * Description:
// * Datetime: 2021/3/4 9:55
// *
// * @Author: zsp
// */
//@Service
//public class PageEntityServiceImpl implements PageEntityService {
//
// @Autowired
// private PageEntityMapper pageEntityMapper;
// @Autowired
// private TableInfoDao tableInfoDao;
// @Override
// public void savePageEntity(PageEntity pageEntity) {
// pageEntityMapper.save(pageEntity);
// }
//
// @Override
// public List<TableInfo> findByPageIds(List<Integer> pageIds) {
// ArrayList<TableInfo> list = new ArrayList<>();
// for (Integer pageId : pageIds) {
// String entityId = pageEntityMapper.findByPageId(pageId).getEntityId();
// //根据entityId查询出表
// PredicateBuilder<TableInfo> builder = Specifications.and();
// builder.eq("id",entityId);
// List<TableInfo> tableInfoList = tableInfoDao.findAll(builder.build());
// list.addAll(tableInfoList);
// }
// return list;
// }
//}
package com.tykj.workflowcore.workflow_editer.util;
import org.springframework.http.ResponseEntity;
/**
* 全局错误处理类,用于处理一些不容易定义的错误
*
* @author HuangXiahao
**/
public class ApiException extends RuntimeException {
private ResponseEntity responseEntity;
public ApiException(ResponseEntity responseEntity) {
this.responseEntity = responseEntity;
}
public ApiException(String message) {
this.responseEntity = ResponseEntity.status(400).body(new ResultObj(message));
}
public ApiException(String message, Object data) {
this.responseEntity = ResponseEntity.status(400).body(new ResultObj(data, message));
}
public ResponseEntity getResponseEntity() {
return responseEntity;
}
public void setResponseEntity(ResponseEntity responseEntity) {
this.responseEntity = responseEntity;
}
}
package com.tykj.workflowcore.workflow_editer.util;
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.validation.BindException;
import org.springframework.validation.BindingResult;
import org.springframework.validation.FieldError;
import org.springframework.web.bind.MethodArgumentNotValidException;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.ResponseStatus;
/**
* 错误处理类
* 所有的报错信息都会通过本层的方法向外界返回
*
* @author HuangXiahao
**/
@ControllerAdvice
@Slf4j
public class GlobalExceptionHandler {
/**
* 报错信息都会通过这个方法处理并通过统一的返回方式进行返回
*
* @param e 报错信息
*/
@ResponseBody
@ExceptionHandler(Exception.class)
public ResponseEntity errorMessage(Exception e) {
log.error("[其他异常] {}", e.toString());
e.printStackTrace();
return ResultUtil.failed(e.getMessage());
}
/**
* 参数校验错误
* @param e 报错信息
*/
@ResponseBody
@ExceptionHandler(MethodArgumentNotValidException.class)
@ResponseStatus(HttpStatus.BAD_REQUEST)
public ResponseEntity errorMessage(MethodArgumentNotValidException e) {
BindingResult bindingResult = e.getBindingResult();
String errorMesssage = "参数校验失败:";
for (FieldError fieldError : bindingResult.getFieldErrors()) {
errorMesssage += fieldError.getDefaultMessage() + ", ";
}
log.error("[参数校验异常] {}", errorMesssage);
e.printStackTrace();
return ResultUtil.failed(errorMesssage);
}
/**
* 业务错误
*
* @param e 报错信息
*/
@ResponseBody
@ExceptionHandler(ApiException.class)
public ResponseEntity errorMessage(ApiException e) {
log.warn("[自定义异常] {}", e.toString());
if (e.getResponseEntity() != null) {
return e.getResponseEntity();
}
return ResultUtil.failed(e.getMessage());
}
/**
* 数据合法性验证报错会通过这个方法处理并通过统一的返回方式进行返回
*
* @param e 报错信息
*/
@ResponseBody
@ExceptionHandler(BindException.class)
public ResponseEntity errorMessage(BindException e) {
log.error("[参数异常] 检测到用户访问接口没有提供正确的参数 {}", e.toString());
e.printStackTrace();
BindingResult bindingResult = e.getBindingResult();
String message = null;
if (bindingResult.hasErrors()) {
FieldError fieldError = bindingResult.getFieldError();
if (fieldError != null) {
message = fieldError.getField() + fieldError.getDefaultMessage();
}
}
return ResultUtil.failed(message);
}
}
package com.tykj.workflowcore.workflow_editer.util;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @author dengdiyi
* @description 接口返回统一标准类
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@JsonPropertyOrder(value = {"message", "data"})
public class ResultObj<T> {
private T data;
private String message;
public ResultObj(T o) {
this.data = o;
this.message = "no message";
}
public ResultObj(String m) {
this.message = m;
}
}
package com.tykj.workflowcore.workflow_editer.util;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
/**
* @author HuangXiahao
* @version V1.0
* @class ResultMessage
* @packageName com.example.hello.demo.resultObject
**/
public class ResultUtil<T> {
/**
* 成功返回结果
*
* @param data 获取的数据
*/
public static <T> ResponseEntity<ResultObj<T>> success(T data,String message) {
return ResponseEntity.ok(new ResultObj<>(data,message));
}
/**
* 成功返回结果
*
* @param data 获取的数据
*/
public static <T> ResponseEntity success(T data, HttpHeaders headers) {
return new ResponseEntity(new ResultObj(data), headers, HttpStatus.OK);
}
/**
* 失败返回结果
*/
public static <T> ResponseEntity failed() {
return ResponseEntity.status(500).body(new ResultObj("服务器内部发生错误"));
}
/**
* 失败返回结果
*/
public static <T> ResponseEntity failed(T content) {
return new ResponseEntity(new ResultObj(content), HttpStatus.INTERNAL_SERVER_ERROR);
}
/**
* 失败返回结果
*/
public static <T> ResponseEntity failed(HttpStatus httpStatus) {
return new ResponseEntity(httpStatus);
}
/**
* 失败返回结果
*/
public static <T> ResponseEntity failed(HttpStatus httpStatus, T content) {
return new ResponseEntity(new ResultObj(content), httpStatus);
}
/**
* 参数验证失败返回结果
*/
public static <T> ResponseEntity validateFailed(T content) {
return failed(HttpStatus.INTERNAL_SERVER_ERROR, content);
}
/**
* 未登录返回结果
*/
public static <T> ResponseEntity unauthorized() {
return failed(HttpStatus.UNAUTHORIZED);
}
/**
* 未授权返回结果
*/
public static <T> ResponseEntity forbidden() {
return failed(HttpStatus.FORBIDDEN);
}
}
......@@ -24,6 +24,8 @@ import java.util.List;
@NoArgsConstructor
public class InFormPageVo {
@ApiModelProperty("页面id")
private Long id;
@ApiModelProperty("页面名称")
private String pageName;
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论