Browse Source

20211125修改异常类返回格式

yanyuan
zy_Java 4 years ago
parent
commit
cc8f7d45be
  1. 72
      signin/src/main/java/com/ccsens/signin/service/ProjectService.java
  2. 4
      signin/src/main/resources/application.yml
  3. 37
      util/src/main/java/com/ccsens/util/config/ControllerExceptionHandler.java

72
signin/src/main/java/com/ccsens/signin/service/ProjectService.java

@ -34,7 +34,7 @@ import java.util.stream.Collectors;
@Slf4j
@Service
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
public class ProjectService implements IProjectService{
public class ProjectService implements IProjectService {
@Resource
private ProjectDao projectDao;
@Resource
@ -67,7 +67,7 @@ public class ProjectService implements IProjectService{
for (ProjectVo.QueryProject queryProject : projectList) {
List<ProjectVo.QueryProject> sonList = new ArrayList<>();
for (ProjectVo.QueryProject sonProject : sonProjectList) {
if (queryProject.getId().equals(sonProject.getParentId())){
if (queryProject.getId().equals(sonProject.getParentId())) {
sonList.add(sonProject);
}
}
@ -83,7 +83,7 @@ public class ProjectService implements IProjectService{
SysProjectListExample projectListExample = new SysProjectListExample();
projectListExample.createCriteria().andProjectIdEqualTo(projectDto.getId());
List<SysProjectList> sysProjectLists = projectListMapper.selectByExample(projectListExample);
if(CollectionUtil.isNotEmpty(sysProjectLists)){
if (CollectionUtil.isNotEmpty(sysProjectLists)) {
//存在则修改
SysProjectList project = sysProjectLists.get(0);
project.setName(projectDto.getName());
@ -93,12 +93,12 @@ public class ProjectService implements IProjectService{
// project.setUrl(projectDto.getUrl());
projectListMapper.updateByPrimaryKeySelective(project);
//修改用户项目关联表,
if(CollectionUtil.isNotEmpty(projectDto.getUserIdList())){
if (CollectionUtil.isNotEmpty(projectDto.getUserIdList())) {
//如果用户列表不为空,删除旧数据重新关联项目
SysUserProjectExample userProjectExample = new SysUserProjectExample();
userProjectExample.createCriteria().andProjectIdEqualTo(projectDto.getId());
List<SysUserProject> sysUserProjects = userProjectMapper.selectByExample(userProjectExample);
if(CollectionUtil.isNotEmpty(sysUserProjects)){
if (CollectionUtil.isNotEmpty(sysUserProjects)) {
sysUserProjects.forEach(userProject -> {
userProject.setRecStatus((byte) 2);
userProjectMapper.updateByPrimaryKeySelective(userProject);
@ -113,17 +113,17 @@ public class ProjectService implements IProjectService{
userProjectMapper.insertSelective(userProject);
});
}
}else {
} else {
//根据code找到模板信息
SysTemplate template;
SysTemplateExample sysTemplateExample = new SysTemplateExample();
if(projectDto.getCode() == null){
if (projectDto.getCode() == null) {
sysTemplateExample.createCriteria().andUrlEqualTo(projectDto.getUrl());
}else {
} else {
sysTemplateExample.createCriteria().andTemplateCodeEqualTo(projectDto.getCode());
}
List<SysTemplate> sysTemplates = sysTemplateMapper.selectByExample(sysTemplateExample);
if(CollectionUtil.isEmpty(sysTemplates)){
if (CollectionUtil.isEmpty(sysTemplates)) {
throw new BaseException(CodeEnum.NOT_TEMPLATE);
}
template = sysTemplates.get(0);
@ -139,7 +139,7 @@ public class ProjectService implements IProjectService{
project.setTemplateId(template.getId());
projectListMapper.insertSelective(project);
//添加项目用户关联信息
if(CollectionUtil.isNotEmpty(projectDto.getUserIdList())){
if (CollectionUtil.isNotEmpty(projectDto.getUserIdList())) {
projectDto.getUserIdList().forEach(userId -> {
SysUserProject userProject = new SysUserProject();
userProject.setId(snowflake.nextId());
@ -160,7 +160,7 @@ public class ProjectService implements IProjectService{
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
Date startTimeParam = new Date(param.getStartTime());
Date endTimeParam = new Date(param.getEndTime());
long dayDifference = DateUtil.betweenDay(startTimeParam, endTimeParam, false)+1;
long dayDifference = DateUtil.betweenDay(startTimeParam, endTimeParam, false) + 1;
Long realStartTime = null;
Long realEndTime = null;
@ -177,12 +177,12 @@ public class ProjectService implements IProjectService{
realStartTime = maxStartTime >= param.getStartTime() ? maxStartTime : param.getStartTime();
realEndTime = maxEndTime >= param.getEndTime() ? param.getEndTime() : maxEndTime;
realDifference = DateUtil.betweenDay(new Date(realStartTime),new Date(realEndTime),false)+1;
realDifference = DateUtil.betweenDay(new Date(realStartTime), new Date(realEndTime), false) + 1;
GregorianCalendar calendar = new GregorianCalendar();
calendar.setTime(new Date(realStartTime));
realDateList.add(format.format(new Date(realStartTime)));
for (int i = 1; i < realDifference; i++) {
calendar.add(Calendar.DATE,1);
calendar.add(Calendar.DATE, 1);
Date time = calendar.getTime();
realDateList.add(format.format(time));
}
@ -193,7 +193,7 @@ public class ProjectService implements IProjectService{
List<String> dateList = new ArrayList<>();
dateList.add(format.format(startTimeParam));
for (int i = 1; i < dayDifference; i++) {
calendar.add(Calendar.DATE,1);
calendar.add(Calendar.DATE, 1);
Date time = calendar.getTime();
dateList.add(format.format(time));
}
@ -217,7 +217,7 @@ public class ProjectService implements IProjectService{
@Override
public void setProjectRelation(ProjectDto.SetProjectRelation param, Long userId) {
SysProjectList sonProject = projectDao.selectByProjectId(param.getId());
if (ObjectUtil.isNull(sonProject)){
if (ObjectUtil.isNull(sonProject)) {
throw new BaseException(CodeEnum.NOT_PROJECT);
}
SysProjectList parentProject = projectDao.selectByProjectId(param.getParentId());
@ -226,14 +226,14 @@ public class ProjectService implements IProjectService{
}
String sonUrl = sonProject.getUrl().substring(sonProject.getUrl().lastIndexOf(TallConstant.GATEWAY) + 7);
String parentUrl = parentProject.getUrl().substring(parentProject.getUrl().lastIndexOf(TallConstant.GATEWAY) + 7);
if (!sonUrl.equals(parentUrl)){
if (!sonUrl.equals(parentUrl)) {
throw new BaseException(CodeEnum.PROJECT_REGION_NO_SAME);
}
String httpUrl = sonProject.getUrl()+PropUtil.queryPowerAddress;
String httpUrl = sonProject.getUrl() + PropUtil.queryPowerAddress;
ProjectDto.QueryPower queryPower = new ProjectDto.QueryPower();
queryPower.setProjectId(param.getId());
queryPower.setUserId(userId);
log.info("httpURl:{}----{}",httpUrl,queryPower);
log.info("httpURl:{}----{}", httpUrl, queryPower);
String postBody = RestTemplateUtil.postBody(httpUrl, queryPower);
JSONObject jsonObject = JSONObject.parseObject(postBody);
Integer power = jsonObject.getInteger("data");
@ -246,7 +246,7 @@ public class ProjectService implements IProjectService{
projectListExample.createCriteria().andProjectIdEqualTo(param.getId());
SysProjectList sysProjectList = new SysProjectList();
sysProjectList.setParentProjectId(param.getParentId());
projectListMapper.updateByExampleSelective(sysProjectList,projectListExample);
projectListMapper.updateByExampleSelective(sysProjectList, projectListExample);
}
@ -265,20 +265,20 @@ public class ProjectService implements IProjectService{
userProjectExample.createCriteria().andProjectIdEqualTo(projectAndSort.getProjectId()).andUserIdEqualTo(userId);
SysUserProject userProject = new SysUserProject();
userProject.setSort(projectAndSort.getSort());
userProjectMapper.updateByExampleSelective(userProject,userProjectExample);
userProjectMapper.updateByExampleSelective(userProject, userProjectExample);
}
}
@Override
public void saveUserProject(ProjectDto.SaveUserProject saveUserProject) {
if(CollectionUtil.isNotEmpty(saveUserProject.getProjectId())){
saveUserProject.getProjectId().forEach(pId ->{
if(CollectionUtil.isNotEmpty(saveUserProject.getUserId())){
if (CollectionUtil.isNotEmpty(saveUserProject.getProjectId())) {
saveUserProject.getProjectId().forEach(pId -> {
if (CollectionUtil.isNotEmpty(saveUserProject.getUserId())) {
saveUserProject.getUserId().forEach(userId -> {
SysUserProjectExample userProjectExample = new SysUserProjectExample();
userProjectExample.createCriteria().andUserIdEqualTo(userId).andProjectIdEqualTo(pId);
List<SysUserProject> sysUserProjects = userProjectMapper.selectByExample(userProjectExample);
if (CollectionUtil.isNotEmpty(sysUserProjects)){
if (CollectionUtil.isNotEmpty(sysUserProjects)) {
return;
}
SysUserProject userProject = new SysUserProject();
@ -296,27 +296,23 @@ public class ProjectService implements IProjectService{
public void deleteProject(ProjectDto.ProjectId param, Long userId) {
//查找项目
SysProjectList projectList = projectDao.selectByProjectId(param.getProjectId());
if(ObjectUtil.isNotNull(projectList)){
projectList.setRecStatus((byte)2);
if (ObjectUtil.isNotNull(projectList)) {
projectList.setRecStatus((byte) 2);
projectListMapper.updateByPrimaryKeySelective(projectList);
//TODO 删除成员项目关联表
projectDao.delUserProjectByProjectId(param.getProjectId());
//调用业务系统删除项目
param.setUserId(userId);
String url = projectList.getUrl() + "/project/tallDelProject";
try {
log.info("调用业务系统的接口合并用户:{}--{}",url,param);
String postBody = RestTemplateUtil.postBody(url, param);
System.out.println(postBody);
JSONObject jsonObject = JSONObject.parseObject(postBody);
Integer code = jsonObject.getInteger("code");
if(code == null || code != 200){
throw new BaseException(jsonObject.getString("date"));
}
}catch (Exception e){
log.error("接口调用异常",e);
throw new BaseException(CodeEnum.DELETE_PROJECT_ERROR);
log.info("调用业务系统的接口合并用户:{}--{}", url, param);
String postBody = RestTemplateUtil.postBody(url, param);
System.out.println(postBody);
JSONObject jsonObject = JSONObject.parseObject(postBody);
Integer code = jsonObject.getInteger("code");
if (code == null || code != 200) {
throw new BaseException(jsonObject.getString("msg"));
}
}

4
signin/src/main/resources/application.yml

@ -1,5 +1,5 @@
spring:
profiles:
active: dev
include: util-dev,common
active: test
include: util-test,common

37
util/src/main/java/com/ccsens/util/config/ControllerExceptionHandler.java

@ -38,9 +38,9 @@ public class ControllerExceptionHandler {
// }
@ExceptionHandler(value = MethodArgumentNotValidException.class)
@ResponseBody
public JsonResponse validateExceptionHandlero(HttpServletRequest req,
MethodArgumentNotValidException e){
// @ResponseBody
public void validateExceptionHandlero(HttpServletRequest req,HttpServletResponse response,
MethodArgumentNotValidException e){
BindingResult bindingResult = e.getBindingResult();
// StringBuilder errorMesssage = new StringBuilder();
// for (FieldError fieldError : bindingResult.getFieldErrors()) {
@ -51,26 +51,29 @@ public class ControllerExceptionHandler {
// errorMesssage.append(bindingResult.getFieldErrors().get(0).getDefaultMessage());
// e.printStackTrace();
log.error("MethodArgumentNotValidException",e);
return JsonResponse.newInstance().fail(CodeEnum.PARAM_NULL.getCode(),bindingResult.getFieldError().getDefaultMessage());
// return JsonResponse.newInstance().fail(CodeEnum.PARAM_NULL.getCode(),bindingResult.getFieldError().getDefaultMessage());
responseError(response, JsonResponse.newInstance().fail(-1,e.getMessage()));
}
@ExceptionHandler(value = BindException.class)
@ResponseBody
public JsonResponse handleBindException(BindException e) {
// @ResponseBody
public void handleBindException(HttpServletResponse response, BindException e) {
// ex.getFieldError():随机返回一个对象属性的异常信息。如果要一次性返回所有对象属性异常信息,则调用ex.getAllErrors()
FieldError fieldError = e.getFieldError();
StringBuilder sb = new StringBuilder();
sb.append(fieldError.getField()).append("=[").append(fieldError.getRejectedValue()).append("]")
.append(fieldError.getDefaultMessage());
log.error("BindException", e);
return JsonResponse.newInstance().fail(-11,sb.toString());
responseError(response, JsonResponse.newInstance().fail(-1,e.getMessage()));
// return JsonResponse.newInstance().fail(-11,sb.toString());
}
@ExceptionHandler(value = HttpMessageNotReadableException.class)
@ResponseBody
public JsonResponse handleHttpMessageNotReadableException(HttpMessageNotReadableException e) {
// @ResponseBody
public void handleHttpMessageNotReadableException(HttpServletResponse response, HttpMessageNotReadableException e) {
log.error("HttpMessageNotReadableException", e);
return JsonResponse.newInstance().fail(-12,e.getMessage());
// return JsonResponse.newInstance().fail(-12,e.getMessage());
responseError(response, JsonResponse.newInstance().fail(-1,e.getMessage()));
}
@ExceptionHandler(value = BaseException.class)
@ -83,18 +86,24 @@ public class ControllerExceptionHandler {
} else {
ok = JsonResponse.newInstance().fail(e.getCode(),e.getMessage());
}
responseError(response, ok);
}
private void responseError(HttpServletResponse response, JsonResponse ok) {
try {
HttpServletUtil.responseJson(response,
JacksonUtil.beanToJson(ok));
} catch (Exception e1) {
log.error("返回异常出错:", e);
log.error("返回异常出错:", e1);
}
}
@ExceptionHandler(value = Exception.class)
@ResponseBody
public JsonResponse jsonExceptionHandler(HttpServletRequest req, Exception e) {
// @ResponseBody
public void jsonExceptionHandler(HttpServletRequest req, HttpServletResponse response, Exception e) {
log.error("Exception",e);
return JsonResponse.newInstance().fail(-1,e.getMessage());
responseError(response, JsonResponse.newInstance().fail(-1,e.getMessage()));
// return JsonResponse.newInstance().fail(-1,e.getMessage());
}
}
Loading…
Cancel
Save