Commit b6023e9f authored by 李丛阳's avatar 李丛阳

apo

parent 1f23c68a
......@@ -4,8 +4,8 @@ import io.swagger.annotations.ApiOperation;
import org.rcisoft.code.model.CodeSchema;
import org.rcisoft.code.model.CodeTable;
import org.rcisoft.code.service.CodeService;
import org.rcisoft.common.controller.PaginationController;
import org.rcisoft.core.constant.MessageConstant;
import org.rcisoft.core.controller.PaginationController;
import org.rcisoft.core.model.PersistModel;
import org.rcisoft.core.result.Result;
import org.springframework.beans.factory.annotation.Autowired;
......
package org.rcisoft.code.model;
import org.rcisoft.common.model.DbModel;
import java.io.Serializable;
/**
......
package org.rcisoft.common.model;
package org.rcisoft.code.model;
import lombok.AllArgsConstructor;
import lombok.Data;
......
package org.rcisoft.common.model;
package org.rcisoft.code.model;
/**
* Created by lcy on 17/7/4.
......
package org.rcisoft.common.model;
package org.rcisoft.code.model;
import lombok.AllArgsConstructor;
import lombok.Data;
......
......@@ -8,8 +8,8 @@ import org.rcisoft.code.model.CodeTable;
import org.rcisoft.code.service.CodeService;
import org.rcisoft.common.component.FamilyDbUtils;
import org.rcisoft.common.component.Global;
import org.rcisoft.common.model.DbColumnModel;
import org.rcisoft.common.model.DbTableModel;
import org.rcisoft.code.model.DbColumnModel;
import org.rcisoft.code.model.DbTableModel;
import org.rcisoft.core.service.BaseService;
import org.rcisoft.core.util.DateUtil;
import org.rcisoft.core.util.ZipCompress;
......
package org.rcisoft.config;
import org.apache.poi.ss.formula.functions.T;
import org.rcisoft.core.aop.EntityParamAspect;
import org.rcisoft.core.aop.IdGenAspect;
import org.rcisoft.core.aop.PageUtil;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
* Created by lcy on 18/1/21.
*/
@Configuration
public class AopConfig {
/**
* 分页 bean
* @return
*/
@Bean
public PageUtil<T> pageUtil(){
return new PageUtil<T>();
}
/**
* id bean
* @return
*/
@Bean
public IdGenAspect idGenAspect(){
return new IdGenAspect();
}
/**
* web param validation
* @return
*/
@Bean
public EntityParamAspect entityParamAspect(){
return new EntityParamAspect();
}
}
package org.rcisoft.core.aop;
import lombok.extern.slf4j.Slf4j;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.rcisoft.core.controller.ValidatedController;
import org.rcisoft.core.exception.ServiceException;
import org.rcisoft.core.validate.ValidatedResult;
import org.springframework.validation.BindingResult;
/**
* Created by lcy on 18/1/21.
*/
@Aspect
@Slf4j
public class EntityParamAspect {
/**
* 环绕aop service.*ByPagination 分页拦截
* @param proceedingJoinPoint
* @return
*/
@Around("execution(* org.rcisoft..*.controller.*Controller.add*(..))")
public Object beforeAddValidate(ProceedingJoinPoint proceedingJoinPoint) throws Throwable {
return dealWithParameterValidate(proceedingJoinPoint);
}
@Around("execution(* org.rcisoft..*.controller.*Controller.update*(..))")
public Object beforeUpdateValidate(ProceedingJoinPoint proceedingJoinPoint) throws Throwable {
return dealWithParameterValidate(proceedingJoinPoint);
}
/**
* 处理 增加/修改 方法参数验证
* @param proceedingJoinPoint
* @return
*/
private Object dealWithParameterValidate(ProceedingJoinPoint proceedingJoinPoint) throws Throwable{
try {
/*验证 长度必须大于1*/
if(proceedingJoinPoint.getArgs().length < 2)
return proceedingJoinPoint.proceed();
/*BindingResult 必须写在第二个参数里*/
Object bindResult = proceedingJoinPoint.getArgs()[1];
if(!(bindResult instanceof BindingResult))
return proceedingJoinPoint.proceed();
BindingResult br = (BindingResult)bindResult;
/*有无异常*/
if(ValidatedController.hasErrorsByStatic(br))
throw new ServiceException(4004, ValidatedResult.builder(br).getValidatedMessage().getResponse());
else
return proceedingJoinPoint.proceed();
} catch (Throwable var5) {
log.error(var5.getMessage());
throw var5;
}
}
}
......@@ -2,13 +2,13 @@ package org.rcisoft.core.aop;
import com.github.pagehelper.PageHelper;
import lombok.extern.slf4j.Slf4j;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.rcisoft.common.model.CommonPageGridModel;
import org.rcisoft.common.model.GridModel;
import org.rcisoft.core.model.CommonPageGridModel;
import org.rcisoft.core.model.GridModel;
import org.rcisoft.core.model.PageInfo;
import org.springframework.stereotype.Component;
import java.io.Serializable;
import java.util.List;
......@@ -18,8 +18,8 @@ import java.util.List;
* @author cy
* Created by cy on 16/5/20.
*/
@Component
@Aspect
@Slf4j
public class PageUtil<T> extends PageInfo<T> implements Serializable {
private static final long serialVersionUID = 8730332880750989562L;
......@@ -67,7 +67,7 @@ public class PageUtil<T> extends PageInfo<T> implements Serializable {
* @return
*/
@Around("execution(* org.rcisoft..*.service.impl.*ServiceImpl.*ByPagination(..))")
public List<T> preparedPageHeplerAndloadingPageInfoSetResults(ProceedingJoinPoint proceedingJoinPoint) {
public List<T> preparedPageHeplerAndloadingPageInfoSetResults(ProceedingJoinPoint proceedingJoinPoint) throws Throwable{
PageUtil paginationUtility = (PageUtil)proceedingJoinPoint.getArgs()[0];
PageHelper.startPage(paginationUtility.getPageNum(), paginationUtility.getPageSize(), paginationUtility.getOrderBy());
try {
......@@ -76,8 +76,8 @@ public class PageUtil<T> extends PageInfo<T> implements Serializable {
this.setPageInfo(paginationUtility, pageInfo);
return e;
} catch (Throwable var5) {
var5.printStackTrace();
return null;
log.error(var5.getMessage());
throw var5;
}
}
......
package org.rcisoft.common.component;
package org.rcisoft.core.component;
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
......
package org.rcisoft.common.controller;
package org.rcisoft.core.controller;
import org.apache.log4j.Logger;
import org.springframework.stereotype.Controller;
......
package org.rcisoft.common.controller;
package org.rcisoft.core.controller;
import org.rcisoft.core.util.JwtUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
......
package org.rcisoft.common.controller;
package org.rcisoft.core.controller;
import org.rcisoft.core.aop.PageUtil;
import org.rcisoft.common.model.CommonPageGridModel;
import org.rcisoft.common.model.GridModel;
import org.rcisoft.core.model.CommonPageGridModel;
import org.rcisoft.core.model.GridModel;
import org.springframework.web.bind.annotation.ModelAttribute;
import javax.servlet.http.HttpServletRequest;
......
package org.rcisoft.common.controller;
package org.rcisoft.core.controller;
import org.rcisoft.core.constant.MessageConstant;
import org.springframework.web.servlet.mvc.support.RedirectAttributesModelMap;
/**
......@@ -10,7 +9,7 @@ import org.springframework.web.servlet.mvc.support.RedirectAttributesModelMap;
* Time: 上午8:57
* description: 响应 controller
*/
public class ResponseController extends ValidatedController{
public class ResponseController extends ValidatedController {
/**
* 操作成功
......@@ -26,9 +25,7 @@ public class ResponseController extends ValidatedController{
* 操作成功 重定向 闪存
* @param model
*/
protected void operate_succes_redirect(RedirectAttributesModelMap model){
model.addFlashAttribute("message","操作成功");
model.addFlashAttribute("messageFlag","1");
protected void operateSuccessRedirect(RedirectAttributesModelMap model){
}
......@@ -36,8 +33,6 @@ public class ResponseController extends ValidatedController{
* 操作失败 重定向 闪存
* @param model
*/
protected void operate_failture_redirect(RedirectAttributesModelMap model){
model.addFlashAttribute("message", MessageConstant.MESSAGE_ALERT_ERROR);
model.addFlashAttribute("messageFlag","0");
protected void operateFailtureRedirect(RedirectAttributesModelMap model){
}
}
package org.rcisoft.common.controller;
package org.rcisoft.core.controller;
import org.rcisoft.core.result.ResponseMessage;
import org.rcisoft.core.result.Result;
......@@ -14,6 +14,7 @@ import java.util.Map;
*/
public class ValidatedController extends HttpServletController {
protected static final String VALIDMESSAGESKEY = "validerrors";
private static String ERROR_PAGE = null;
......@@ -26,13 +27,27 @@ public class ValidatedController extends HttpServletController {
public ValidatedController() {
}
/**
* 第一版 验证写在controller里的
* @param br
* @return
*/
public boolean hasErrors(BindingResult br) {
ValidatedResult vr = new ValidatedResult();
vr.dealBindingResult(br);
ValidatedResult vr = ValidatedResult.builder(br);
this.request.setAttribute("validerrors", vr);
return vr.hasErrors().booleanValue();
}
/**
* 第二版写在 aop里的
* @param br
* @return
*/
public static boolean hasErrorsByStatic(BindingResult br) {
ValidatedResult vr = ValidatedResult.builder(br);
return vr.hasErrors().booleanValue();
}
public Map<String, String[]> getErrorsMap() {
ValidatedResult vr = (ValidatedResult)this.request.getAttribute("validerrors");
return vr.getErrorsMap();
......@@ -49,8 +64,7 @@ public class ValidatedController extends HttpServletController {
}
protected void setBindError(BindingResult br, Result result, String message){
ValidatedResult vr = new ValidatedResult();
ValidatedResult vr = ValidatedResult.builder(br);
result.setErrorMessage(message,vr);
}
}
package org.rcisoft.common.model;
package org.rcisoft.core.model;
......@@ -10,6 +10,9 @@ import java.util.List;
* Created by lcy on 16/12/20.
*/
public class CommonPageGridModel implements GridModel {
private static final long serialVersionUID = 2965708654142618918L;
private long total; //总页数
public long getTotal() {
......
package org.rcisoft.common.model;
package org.rcisoft.core.model;
import java.io.Serializable;
......
package org.rcisoft.common.model;
package org.rcisoft.core.model;
/**
* Created with family.
......
package org.rcisoft.core.result;
/**
* Created with family.
* User: cy
* Date: 16/5/20
* Time: 下午1:47
* description:
*/
public class MainStatus implements ResponseMessage {
private static final long serialVersionUID = -7441079017861505376L;
private String status;
public MainStatus() {
}
public String getStatus() {
return this.status;
}
public void setStatus(String status) {
this.status = status;
}
public String getMapperKey() {
return "mainstatus";
}
}
\ No newline at end of file
......@@ -10,5 +10,8 @@ import java.io.Serializable;
* description:
*/
public interface ResponseMessage extends Serializable {
String getMapperKey();
String getResponse();
}
package org.rcisoft.core.result;
import lombok.Data;
import org.apache.commons.lang3.StringUtils;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
......@@ -9,22 +14,41 @@ import java.util.Map;
* Time: 下午1:45
* description:
*/
public class ValidatedMessage extends MainStatus implements ResponseMessage {
@Data
public class ValidatedMessage implements ResponseMessage {
private static final long serialVersionUID = -8037198481805394212L;
private Map<String, String[]> validmessage;
public ValidatedMessage() {
private Map<String, String[]> validMap;
private ValidatedMessage() {
}
@Override
public String getMapperKey(){
return "validatedMessage";
}
public Map<String, String[]> getValidmessage() {
return this.validmessage;
private ValidatedMessage(Map<String, String[]> errorsMap){
this.validMap = errorsMap;
}
public void setValidmessage(Map<String, String[]> validmessage) {
this.validmessage = validmessage;
public static ValidatedMessage builder(Map<String, String[]> errorsMap){
return new ValidatedMessage(errorsMap);
}
public String getMapperKey() {
return "validmessage";
private String validmessage;
/**
* 错误信息
* @return
*/
@Override
public String getResponse(){
List<String> list = new ArrayList<String>();
for(Map.Entry<String,String[]> entry : this.validMap.entrySet()){
list.add(entry.getKey() + " 异常 " + entry.getValue()[0]);
}
return StringUtils.join(list,";");
}
}
......@@ -3,11 +3,9 @@ package org.rcisoft.core.service.impl;
import org.rcisoft.common.component.Global;
import org.rcisoft.core.exception.ServiceException;
import org.rcisoft.core.result.ResultExceptionEnum;
import org.rcisoft.core.result.ResultServiceEnums;
import org.rcisoft.core.service.AuthenticationService;
import org.rcisoft.core.util.JwtUtil;
import org.rcisoft.sys.role.dao.SysRoleRepository;
import org.rcisoft.sys.role.entity.SysRole;
import org.rcisoft.sys.user.dao.SysUserMapper;
import org.rcisoft.sys.user.entity.SysUser;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -73,16 +71,6 @@ public class AuthenticationServiceImpl implements AuthenticationService {
final Authentication authentication = authenticationManager.authenticate(upToken);
final UserDetails userDetails = userDetailsService.loadUserByUsername(username);
List<SysRole> role = sysRoleRepository.queryCodeByUsername(username);
if(role.size()!=0){
if (userType.equals("1")&&!global.getAdminCode().equals(role.get(0).getCode())){//1代表请求后台,只有管理员能够访问
throw new ServiceException(ResultServiceEnums.ROLE_ERROR);
}else if(userType.equals("0")&&global.getAdminCode().equals(role.get(0).getCode())){//代表请求前台,教师和学生可以请求,管理员不可以
throw new ServiceException(ResultServiceEnums.ROLE_ERROR);
}
}else{
throw new ServiceException(ResultServiceEnums.ROLE_ERROR);
}
final String token = JwtUtil.generateToken(userDetails);
SecurityContextHolder.getContext().setAuthentication(authentication);
return token;
......
......@@ -19,7 +19,16 @@ public class ValidatedResult {
private Map<String, String[]> errorsMap;
private BindingResult br;
public ValidatedResult() {
private ValidatedResult() {
}
private ValidatedResult(BindingResult br) {
this.br = br;
this.dealBindingResult();
}
public static ValidatedResult builder(BindingResult br){
return new ValidatedResult(br);
}
public Boolean hasErrors() {
......@@ -34,7 +43,11 @@ public class ValidatedResult {
return this.br;
}
public Map<String, String[]> dealBindingResult(BindingResult br) {
/**
* 生成map
* @return
*/
public Map<String, String[]> dealBindingResult() {
this.br = br;
this.errorsMap = new HashMap();
if(br.hasErrors()) {
......@@ -52,9 +65,6 @@ public class ValidatedResult {
}
public ResponseMessage getValidatedMessage() {
ValidatedMessage vm = new ValidatedMessage();
vm.setStatus("2");
vm.setValidmessage(this.errorsMap);
return vm;
return ValidatedMessage.builder(this.errorsMap);
}
}
......@@ -4,12 +4,11 @@ package org.rcisoft.sys.dept.controller;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.rcisoft.common.controller.ResponseController;
import org.rcisoft.common.model.TreeViewModel;
import org.rcisoft.core.constant.MessageConstant;
import org.rcisoft.core.controller.ResponseController;
import org.rcisoft.core.model.PersistModel;
import org.rcisoft.core.result.Result;
import org.rcisoft.core.validate.ValidatedResult;
import org.rcisoft.sys.dept.entity.SysDept;
import org.rcisoft.sys.dept.service.SysDeptService;
import org.rcisoft.sys.role.entity.SysRole;
......@@ -86,14 +85,6 @@ public class SysDeptController extends ResponseController {
@ApiImplicitParam(name = "remarks", value = "备注", required = false, dataType = "varchar")})
@PostMapping("adminLog/deptAdd")
public Result deptAdd(@Valid SysDept dept, BindingResult br){
if(super.hasErrors(br)){
ValidatedResult vr = new ValidatedResult();
vr.dealBindingResult(br);
return Result.builder(new PersistModel(2),
MessageConstant.MESSAGE_ALERT_SUCCESS,
MessageConstant.MESSAGE_ALERT_INFO_INVALID,
vr);
}
PersistModel persistModel = sysDeptServiceImpl.persistDept(dept,getToken());
return Result.builder(persistModel,
MessageConstant.MESSAGE_ALERT_SUCCESS,
......@@ -115,14 +106,7 @@ public class SysDeptController extends ResponseController {
@ApiImplicitParam(name = "remarks", value = "备注", required = false, dataType = "varchar")})
@PostMapping("adminLog/deptUpdate")
public Result deptUpdate(@Valid SysDept dept, BindingResult br){
if(super.hasErrors(br)){
ValidatedResult vr = new ValidatedResult();
vr.dealBindingResult(br);
return Result.builder(new PersistModel(2),
MessageConstant.MESSAGE_ALERT_SUCCESS,
MessageConstant.MESSAGE_ALERT_INFO_INVALID,
vr);
}
PersistModel persistModel = sysDeptServiceImpl.mergeDept(dept,getToken());
return Result.builder(persistModel,
MessageConstant.MESSAGE_ALERT_SUCCESS,
......
......@@ -4,13 +4,12 @@ package org.rcisoft.sys.menu.controller;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.rcisoft.common.controller.ResponseController;
import org.rcisoft.common.model.CommonMenuModel;
import org.rcisoft.common.model.TreeViewModel;
import org.rcisoft.core.constant.MessageConstant;
import org.rcisoft.core.controller.ResponseController;
import org.rcisoft.core.model.PersistModel;
import org.rcisoft.core.result.Result;
import org.rcisoft.core.validate.ValidatedResult;
import org.rcisoft.sys.menu.entity.SysMenu;
import org.rcisoft.sys.menu.service.SysMenuService;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -83,14 +82,6 @@ public class SysMenuController extends ResponseController {
@ApiImplicitParam(name = "remarks", value = "备注", required = false, dataType = "varchar")})
@PostMapping("adminLog/menuAdd")
public Result menuAdd(@Valid SysMenu menu, BindingResult br){
if(super.hasErrors(br)){
ValidatedResult vr = new ValidatedResult();
vr.dealBindingResult(br);
return Result.builder(new PersistModel(2),
MessageConstant.MESSAGE_ALERT_INFO_INVALID,
MessageConstant.MESSAGE_ALERT_ERROR,
vr);
}
PersistModel persistModel = sysMenuServiceImpl.persistMenu(menu,getToken());
return Result.builder(persistModel,
MessageConstant.MESSAGE_ALERT_SUCCESS,
......@@ -115,14 +106,6 @@ public class SysMenuController extends ResponseController {
@ApiImplicitParam(name = "remarks", value = "备注", required = false, dataType = "varchar")})
@PostMapping("adminLog/menuUpdate")
public Result menuUpdate(@Valid SysMenu menu, BindingResult br){
if(super.hasErrors(br)){
ValidatedResult vr = new ValidatedResult();
vr.dealBindingResult(br);
return Result.builder(new PersistModel(2),
MessageConstant.MESSAGE_ALERT_INFO_INVALID,
MessageConstant.MESSAGE_ALERT_ERROR,
vr);
}
PersistModel persistModel = sysMenuServiceImpl.mergeMenu(menu,getToken());
return Result.builder(persistModel,
MessageConstant.MESSAGE_ALERT_SUCCESS,
......
......@@ -3,12 +3,11 @@ package org.rcisoft.sys.role.controller;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.rcisoft.common.controller.PaginationController;
import org.rcisoft.common.model.GridModel;
import org.rcisoft.core.constant.MessageConstant;
import org.rcisoft.core.controller.PaginationController;
import org.rcisoft.core.model.GridModel;
import org.rcisoft.core.model.PersistModel;
import org.rcisoft.core.result.Result;
import org.rcisoft.core.validate.ValidatedResult;
import org.rcisoft.sys.role.entity.SysRole;
import org.rcisoft.sys.role.service.SysRoleService;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -109,16 +108,6 @@ public class SysRoleController extends PaginationController<SysRole> {
@ApiImplicitParam(name = "remarks", value = "备注", required = false, dataType = "varchar")})
@PostMapping(value = "adminLog/roleUpdate")
public Result roleUpdate(@Valid SysRole sysRole, BindingResult br){
Result result = new Result();
if(super.hasErrors(br)){
ValidatedResult vr = new ValidatedResult();
vr.dealBindingResult(br);
result.setSucessMessage(MessageConstant.MESSAGE_ALERT_INFO_INVALID,vr);
return Result.builder(new PersistModel(2),
MessageConstant.MESSAGE_ALERT_SUCCESS,
MessageConstant.MESSAGE_ALERT_INFO_INVALID,
vr);
}
PersistModel persistModel = sysRoleServiceImpl.mergeRole(sysRole,getToken());
return Result.builder(persistModel,
MessageConstant.MESSAGE_ALERT_SUCCESS,
......
......@@ -40,10 +40,6 @@ public class ${table.entityName}Controller extends PaginationController<${table.
//@ApiImplicitParams({@ApiImplicitParam(name = "businessId", value = "businessId", required = false, dataType = "varchar")})
@PostMapping(value = "/add")
public Result add(@Valid ${table.entityName} ${table.entityName?uncap_first}, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
throw new ServiceException(ResultServiceEnums.PARAMETER_ERROR.getCode(),
bindingResult.getFieldError().getDefaultMessage());
}
${table.entityName?uncap_first}.setToken(getToken());
PersistModel data = ${table.entityName?uncap_first}ServiceImpl.save(${table.entityName?uncap_first});
return Result.builder(data,
......@@ -70,10 +66,6 @@ public class ${table.entityName}Controller extends PaginationController<${table.
@ApiImplicitParams({@ApiImplicitParam(name = "businessId", value = "businessId", required = false, dataType = "varchar")})
@PutMapping("/update/{id:\\w+}")
public Result update(@Valid ${table.entityName} ${table.entityName?uncap_first}, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
throw new ServiceException(ResultServiceEnums.PARAMETER_ERROR.getCode(),
bindingResult.getFieldError().getDefaultMessage());
}
${table.entityName?uncap_first}.setToken(getToken());
PersistModel data = ${table.entityName?uncap_first}ServiceImpl.merge(${table.entityName?uncap_first});
return Result.builder(data,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment