diff --git a/README.md b/README.md
index a16d02658..166fe6210 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,5 @@
-
+
diff --git a/pigx-common/pigx-common-core/pom.xml b/pigx-common/pigx-common-core/pom.xml
index fe33c5a5c..6074f0c68 100644
--- a/pigx-common/pigx-common-core/pom.xml
+++ b/pigx-common/pigx-common-core/pom.xml
@@ -50,11 +50,6 @@
javax.servlet
javax.servlet-api
-
-
- com.fasterxml.jackson.datatype
- jackson-datatype-jsr310
-
com.baomidou
@@ -70,5 +65,15 @@
org.springframework.cloud
spring-cloud-starter-openfeign
+
+
+ org.springframework.boot
+ spring-boot-starter-validation
+
+
+
+ com.fasterxml.jackson.datatype
+ jackson-datatype-jsr310
+
diff --git a/pigx-common/pigx-common-core/src/main/java/com/pig4cloud/pigx/common/core/exception/GlobalExceptionHandler.java b/pigx-common/pigx-common-core/src/main/java/com/pig4cloud/pigx/common/core/exception/GlobalExceptionHandler.java
index 84e520e81..bedd98d3f 100644
--- a/pigx-common/pigx-common-core/src/main/java/com/pig4cloud/pigx/common/core/exception/GlobalExceptionHandler.java
+++ b/pigx-common/pigx-common-core/src/main/java/com/pig4cloud/pigx/common/core/exception/GlobalExceptionHandler.java
@@ -20,11 +20,15 @@ package com.pig4cloud.pigx.common.core.exception;
import com.pig4cloud.pigx.common.core.util.R;
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.HttpStatus;
+import org.springframework.validation.BindException;
+import org.springframework.validation.FieldError;
+import org.springframework.web.bind.MethodArgumentNotValidException;
import org.springframework.web.bind.annotation.ExceptionHandler;
-import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.ResponseStatus;
import org.springframework.web.bind.annotation.RestControllerAdvice;
+import java.util.List;
+
/**
* @author lengleng
* @date 2018/8/30
@@ -41,9 +45,25 @@ public class GlobalExceptionHandler {
*/
@ExceptionHandler(Exception.class)
@ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR)
- @ResponseBody
public R exception(Exception e) {
- log.info("全局异常信息 ex={}", e.getMessage(), e);
+ log.error("全局异常信息 ex={}", e.getMessage(), e);
return new R<>(e);
}
+
+ /**
+ * validation Exception
+ *
+ * @param exception
+ * @return R
+ */
+ @ExceptionHandler({MethodArgumentNotValidException.class, BindException.class})
+ @ResponseStatus(HttpStatus.BAD_REQUEST)
+ public R bodyValidExceptionHandler(MethodArgumentNotValidException exception) {
+ List fieldErrors = exception.getBindingResult().getFieldErrors();
+ R result = new R();
+ result.setMsg(fieldErrors.get(0).getDefaultMessage());
+ log.warn(fieldErrors.get(0).getDefaultMessage());
+ return result;
+ }
+
}
diff --git a/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysDept.java b/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysDept.java
index db89f6aa7..6deb1d922 100644
--- a/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysDept.java
+++ b/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysDept.java
@@ -27,6 +27,7 @@ import com.baomidou.mybatisplus.enums.IdType;
import lombok.Data;
import lombok.EqualsAndHashCode;
+import javax.validation.constraints.NotBlank;
import java.io.Serializable;
import java.time.LocalDateTime;
@@ -50,6 +51,7 @@ public class SysDept extends Model {
/**
* 部门名称
*/
+ @NotBlank(message = "部门名称不能为空")
private String name;
/**
* 排序
diff --git a/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysDict.java b/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysDict.java
index ca238b93b..f470e91f4 100644
--- a/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysDict.java
+++ b/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysDict.java
@@ -27,6 +27,7 @@ import com.baomidou.mybatisplus.enums.IdType;
import lombok.Data;
import lombok.EqualsAndHashCode;
+import javax.validation.constraints.NotBlank;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
@@ -54,14 +55,17 @@ public class SysDict extends Model {
/**
* 数据值
*/
+ @NotBlank(message = "字典项数据值不能为空")
private String value;
/**
* 标签名
*/
+ @NotBlank(message = "字典项标签不能为空")
private String label;
/**
* 类型
*/
+ @NotBlank(message = "字典项数据类型不能为空")
private String type;
/**
* 描述
diff --git a/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysLog.java b/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysLog.java
index dd1b897ef..90e60d16a 100644
--- a/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysLog.java
+++ b/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysLog.java
@@ -24,6 +24,7 @@ import com.baomidou.mybatisplus.annotations.TableLogic;
import com.baomidou.mybatisplus.enums.IdType;
import lombok.Data;
+import javax.validation.constraints.NotBlank;
import java.io.Serializable;
import java.time.LocalDateTime;
@@ -48,10 +49,12 @@ public class SysLog implements Serializable {
/**
* 日志类型
*/
+ @NotBlank(message = "日志类型不能为空")
private String type;
/**
* 日志标题
*/
+ @NotBlank(message = "日志标题不能为空")
private String title;
/**
* 创建者
diff --git a/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysMenu.java b/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysMenu.java
index d399b482b..7027d2f90 100644
--- a/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysMenu.java
+++ b/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysMenu.java
@@ -27,6 +27,8 @@ import com.baomidou.mybatisplus.enums.IdType;
import lombok.Data;
import lombok.EqualsAndHashCode;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.time.LocalDateTime;
@@ -48,11 +50,13 @@ public class SysMenu extends Model {
/**
* 菜单ID
*/
+ @NotNull(message = "菜单ID不能为空")
@TableId(value = "menu_id", type = IdType.INPUT)
private Integer menuId;
/**
* 菜单名称
*/
+ @NotBlank(message = "菜单名称不能为空")
private String name;
/**
* 菜单权限标识
diff --git a/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysOauthClientDetails.java b/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysOauthClientDetails.java
index 39963748c..cd996636e 100644
--- a/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysOauthClientDetails.java
+++ b/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysOauthClientDetails.java
@@ -26,6 +26,7 @@ import com.baomidou.mybatisplus.enums.IdType;
import lombok.Data;
import lombok.EqualsAndHashCode;
+import javax.validation.constraints.NotBlank;
import java.io.Serializable;
/**
@@ -43,17 +44,57 @@ public class SysOauthClientDetails extends Model {
private static final long serialVersionUID = 1L;
+ /**
+ * 客户端ID
+ */
+ @NotBlank(message = "client_id 不能为空")
@TableId(value = "client_id", type = IdType.INPUT)
private String clientId;
- private String resourceIds;
+
+ /**
+ * 客户端密钥
+ */
+ @NotBlank(message = "client_secret 不能为空")
private String clientSecret;
+
+ /**
+ * 资源ID
+ */
+ private String resourceIds;
+
+ /**
+ * 作用域
+ */
+ @NotBlank(message = "scope 不能为空")
private String scope;
+
+ /**
+ * 授权方式(A,B,C)
+ */
private String authorizedGrantTypes;
+
private String webServerRedirectUri;
+
private String authorities;
+
+ /**
+ * 请求令牌有效时间
+ */
private Integer accessTokenValidity;
+
+ /**
+ * 刷新令牌有效时间
+ */
private Integer refreshTokenValidity;
+
+ /**
+ * 扩展信息
+ */
private String additionalInformation;
+
+ /**
+ * 是否自动放行
+ */
private String autoapprove;
@Override
diff --git a/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysRole.java b/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysRole.java
index c3a19ca48..62a1cc4aa 100644
--- a/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysRole.java
+++ b/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysRole.java
@@ -27,6 +27,7 @@ import com.baomidou.mybatisplus.enums.IdType;
import lombok.Data;
import lombok.EqualsAndHashCode;
+import javax.validation.constraints.NotBlank;
import java.io.Serializable;
import java.time.LocalDateTime;
@@ -47,9 +48,16 @@ public class SysRole extends Model {
@TableId(value = "role_id", type = IdType.AUTO)
private Integer roleId;
+
+ @NotBlank(message = "角色名称 不能为空")
private String roleName;
+
+ @NotBlank(message = "角色标识 不能为空")
private String roleCode;
+
+ @NotBlank(message = "角色描述 不能为空")
private String roleDesc;
+
private LocalDateTime createTime;
private LocalDateTime updateTime;
/**
diff --git a/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysSocialDetails.java b/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysSocialDetails.java
index ff67a65d7..cc1b1e644 100755
--- a/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysSocialDetails.java
+++ b/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysSocialDetails.java
@@ -24,6 +24,7 @@ import com.baomidou.mybatisplus.annotations.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
+import javax.validation.constraints.NotBlank;
import java.io.Serializable;
import java.time.LocalDateTime;
@@ -47,6 +48,7 @@ public class SysSocialDetails extends Model {
/**
* 类型
*/
+ @NotBlank(message = "类型不能为空")
private String type;
/**
* 描述
@@ -55,10 +57,12 @@ public class SysSocialDetails extends Model {
/**
* appid
*/
+ @NotBlank(message = "账号不能为空")
private String appId;
/**
* app_secret
*/
+ @NotBlank(message = "密钥不能为空")
private String appSecret;
/**
* 回调地址
diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/DeptController.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/DeptController.java
index 246e9eb89..b5bc36efe 100644
--- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/DeptController.java
+++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/DeptController.java
@@ -29,6 +29,7 @@ import lombok.AllArgsConstructor;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
+import javax.validation.Valid;
import java.time.LocalDateTime;
import java.util.List;
@@ -78,7 +79,7 @@ public class DeptController {
*/
@PostMapping
@PreAuthorize("@pms.hasPermission('sys_dept_add')")
- public R add(@RequestBody SysDept sysDept) {
+ public R add(@Valid @RequestBody SysDept sysDept) {
return new R<>(sysDeptService.insertDept(sysDept));
}
@@ -102,7 +103,7 @@ public class DeptController {
*/
@PutMapping
@PreAuthorize("@pms.hasPermission('sys_dept_edit')")
- public Boolean edit(@RequestBody SysDept sysDept) {
+ public Boolean edit(@Valid @RequestBody SysDept sysDept) {
sysDept.setUpdateTime(LocalDateTime.now());
return sysDeptService.updateDeptById(sysDept);
}
diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/DictController.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/DictController.java
index aedf3f15c..b0a0953af 100644
--- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/DictController.java
+++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/DictController.java
@@ -34,6 +34,7 @@ import org.springframework.cache.annotation.Cacheable;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
+import javax.validation.Valid;
import java.util.List;
import java.util.Map;
@@ -99,7 +100,7 @@ public class DictController {
@PostMapping
@CacheEvict(value = "dict_details", key = "#sysDict.type")
@PreAuthorize("@pms.hasPermission('sys_dict_add')")
- public R dict(@RequestBody SysDict sysDict) {
+ public R dict(@Valid @RequestBody SysDict sysDict) {
return new R<>(sysDictService.insert(sysDict));
}
@@ -128,7 +129,7 @@ public class DictController {
@SysLog("修改字典")
@CacheEvict(value = "dict_details", key = "#sysDict.type")
@PreAuthorize("@pms.hasPermission('sys_dict_edit')")
- public R editDict(@RequestBody SysDict sysDict) {
+ public R editDict(@Valid @RequestBody SysDict sysDict) {
return new R<>(sysDictService.updateById(sysDict));
}
}
diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/LogController.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/LogController.java
index ddbf6aa2e..52b1629bc 100644
--- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/LogController.java
+++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/LogController.java
@@ -32,6 +32,7 @@ import lombok.AllArgsConstructor;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
+import javax.validation.Valid;
import java.util.List;
import java.util.Map;
@@ -80,7 +81,7 @@ public class LogController {
* @return success/false
*/
@PostMapping
- public R save(@RequestBody SysLog sysLog) {
+ public R save(@Valid @RequestBody SysLog sysLog) {
return new R<>(sysLogService.insert(sysLog));
}
diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/MenuController.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/MenuController.java
index 6799a3d5e..b6b5b499d 100644
--- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/MenuController.java
+++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/MenuController.java
@@ -33,6 +33,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
+import javax.validation.Valid;
import java.util.*;
/**
@@ -123,7 +124,7 @@ public class MenuController {
*/
@PostMapping
@PreAuthorize("@pms.hasPermission('sys_menu_add')")
- public R menu(@RequestBody SysMenu sysMenu) {
+ public R menu(@Valid @RequestBody SysMenu sysMenu) {
return new R<>(sysMenuService.insert(sysMenu));
}
@@ -142,7 +143,7 @@ public class MenuController {
@PutMapping
@PreAuthorize("@pms.hasPermission('sys_menu_edit')")
- public R menuUpdate(@RequestBody SysMenu sysMenu) {
+ public R menuUpdate(@Valid @RequestBody SysMenu sysMenu) {
return new R<>(sysMenuService.updateMenuById(sysMenu));
}
diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/OauthClientDetailsController.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/OauthClientDetailsController.java
index 522ebd202..63f4cd797 100644
--- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/OauthClientDetailsController.java
+++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/OauthClientDetailsController.java
@@ -29,6 +29,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
+import javax.validation.Valid;
import java.util.Map;
/**
@@ -76,7 +77,7 @@ public class OauthClientDetailsController {
*/
@PostMapping
@PreAuthorize("@pms.hasPermission('sys_client_add')")
- public R add(@RequestBody SysOauthClientDetails sysOauthClientDetails) {
+ public R add(@Valid @RequestBody SysOauthClientDetails sysOauthClientDetails) {
return new R<>(sysOauthClientDetailsService.insert(sysOauthClientDetails));
}
@@ -102,7 +103,7 @@ public class OauthClientDetailsController {
*/
@PutMapping
@PreAuthorize("@pms.hasPermission('sys_client_edit')")
- public R edit(@RequestBody SysOauthClientDetails sysOauthClientDetails) {
+ public R edit(@Valid @RequestBody SysOauthClientDetails sysOauthClientDetails) {
return new R<>(sysOauthClientDetailsService.updateById(sysOauthClientDetails));
}
}
diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/SysSocialDetailsController.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/SysSocialDetailsController.java
index c25b3996f..7244a0c7d 100755
--- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/SysSocialDetailsController.java
+++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/SysSocialDetailsController.java
@@ -28,7 +28,7 @@ import com.pig4cloud.pigx.common.core.util.R;
import lombok.AllArgsConstructor;
import org.springframework.web.bind.annotation.*;
-import java.util.Arrays;
+import javax.validation.Valid;
import java.util.Map;
@@ -77,7 +77,7 @@ public class SysSocialDetailsController {
* @return R
*/
@PostMapping
- public R save(@RequestBody SysSocialDetails sysSocialDetails) {
+ public R save(@Valid @RequestBody SysSocialDetails sysSocialDetails) {
sysSocialDetailsService.insert(sysSocialDetails);
return new R<>(Boolean.TRUE);
}
@@ -89,7 +89,7 @@ public class SysSocialDetailsController {
* @return R
*/
@PutMapping
- public R update(@RequestBody SysSocialDetails sysSocialDetails) {
+ public R update(@Valid @RequestBody SysSocialDetails sysSocialDetails) {
sysSocialDetailsService.updateById(sysSocialDetails);
return new R<>(Boolean.TRUE);
}
@@ -101,7 +101,7 @@ public class SysSocialDetailsController {
* @return R
*/
@DeleteMapping("/{id}")
- public R delete(@PathVariable Integer id ) {
+ public R delete(@PathVariable Integer id) {
return new R<>(sysSocialDetailsService.deleteById(id));
}
@@ -113,7 +113,7 @@ public class SysSocialDetailsController {
*/
@GetMapping("/info/{inStr}")
public R social(@PathVariable String inStr) {
- Map result = sysSocialDetailsService.findOpenId(inStr);
+ Map result = sysSocialDetailsService.findOpenId(inStr);
return new R<>(sysUserService.findUserInfo(result.get("type"), result.get("openId")));
}
diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/UserController.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/UserController.java
index 0b2e0814b..66f657eea 100644
--- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/UserController.java
+++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/UserController.java
@@ -43,6 +43,7 @@ import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.web.bind.annotation.*;
+import javax.validation.Valid;
import java.util.Map;
/**
@@ -117,8 +118,8 @@ public class UserController {
@PreAuthorize("@pms.hasPermission('sys_user_add')")
public R user(@RequestBody UserDTO userDto) {
SysUser deletedUser = userService.selectDeletedUserByUsername(userDto.getUsername());
- if ( deletedUser!= null) {
- userService.deleteSysUserByUsernameAndUserId(userDto.getUsername(),deletedUser.getUserId());
+ if (deletedUser != null) {
+ userService.deleteSysUserByUsernameAndUserId(userDto.getUsername(), deletedUser.getUserId());
}
SysUser sysUser = new SysUser();
BeanUtils.copyProperties(userDto, sysUser);
@@ -142,7 +143,7 @@ public class UserController {
*/
@PutMapping
@PreAuthorize("@pms.hasPermission('sys_user_edit')")
- public R userUpdate(@RequestBody UserDTO userDto) {
+ public R userUpdate(@Valid @RequestBody UserDTO userDto) {
SysUser user = userService.selectById(userDto.getUserId());
return new R<>(userService.updateUser(userDto, user.getUsername()));
}
@@ -165,7 +166,7 @@ public class UserController {
* @return success/false
*/
@PutMapping("/editInfo")
- public R editInfo(@RequestBody UserDTO userDto) {
+ public R editInfo(@Valid @RequestBody UserDTO userDto) {
return userService.updateUserInfo(userDto, SecurityUtils.getUser().getUsername());
}
}