81,092
社区成员
发帖
与我相关
我的任务
分享
@Override
@RequestMapping(value = "/saveDepartment", method = {RequestMethod.POST, RequestMethod.GET})
@SystemLogAfter //自定义注解
public void doSave(Department entity, HttpServletRequest request, HttpServletResponse response) throws IOException {
ExtJSBaseParameter parameter = ((ExtJSBaseParameter) entity);
// 查找所有父节点id相同(即同级节点)结果集
List<Department> departmentList = departmentService.queryByProerties("parentId", entity.getParentId());
System.out.println("entity:" + entity.getDepId());
System.out.println("entity:" + entity.getName());
boolean isExist = false;
// 遍历结果集
if (departmentList.size() > 0) {
for (Department department : departmentList) {
// 查找新增项或修改项的组织机构名是否与其他同级机构同名
System.out.println(department.getDepId());
System.out.println(department.getName());
System.out.println(department.getName().equals(entity.getName()));
System.out.println(department.getDepId().equals(entity.getDepId()));
if (department.getName().equals(entity.getName()) && !department.getDepId().equals(entity.getDepId())) {
isExist = true;
break;
//return;
}
}
}
if (!isExist) {
if (CMD_EDIT.equals(parameter.getCmd())) {
departmentService.update(entity);
} else if (CMD_NEW.equals(parameter.getCmd())) {
departmentService.persist(entity);
}
parameter.setCmd(CMD_EDIT);
parameter.setSuccess(true); //操作成功
}
else{
parameter.setSuccess(false); //操作失败
}
writeJSON(response, parameter); //生成json数据是用的jackson框架
}
Ext.Ajax.request({
url : appBaseUri + '/sys/department/saveDepartment',
params : {
cmd : vals['cmd'],
depId : vals['depId'],
name : vals['name'],
parentId : vals['parentId'],
manager : vals['manager'],
tel : vals['tel'],
sortId : vals['sortId'],
memo : vals['memo']
},
method : "POST",
success : function(response) {
if (response.responseText != '') {
var res = Ext.JSON.decode(response.responseText); //获取response中的json数据
if (res.success) {
globalObject.msgTip('操作成功!');
Ext.getCmp('departmentmanagementgrid').getStore().reload();
Ext.getCmp('departmentTree').getStore().reload();
} else {
globalObject.errTip('当前部门名称已存在!');
}
}
},
failure : function(response) {
globalObject.errTip('操作失败!');
}
});
@Aspect
@Component
public class SystemLogAfterAspect {
@Resource
private SysLogService sysLogService;
@Resource
private AuthorityService authorityService;
// Controller层切点
@Pointcut("@annotation(com.djbh.aop.SystemLogAfter)")
public void controllerAspect() {
}
/**
* 后置通知 用于拦截Controller层记录用户的操作
*
* @param joinPoint 切点
*/
@After("controllerAspect()")
public void doAfter(JoinPoint joinPoint) {
//使用SystemContextUtils工具类获取request response session
HttpServletRequest request = HttpContextUtils.getRequest();
HttpServletResponse response = HttpContextUtils.getResponse();
HttpSession session = HttpContextUtils.getSession();
// 读取session中的用户
SysUser sysUser = (SysUser)session.getAttribute(Constant.SESSION_SYS_USER);
// 读取cmd值,cmd = new 或 edit,用来判断是新增保存还是修改保存
String cmd = request.getParameter("cmd");
String url = request.getRequestURI();
String contextPath = request.getContextPath() + "/";
// 请求的模块
String model = null;
// 请求的动作
String action = null;
System.out.println(url);
if (StringUtils.isNotBlank(url)) {
url = url.replace(contextPath, "");
// 正则表达式
Pattern p = Pattern.compile("[/]+");
// 将url字符串按/分割成字符串数组
String[] urls = p.split(url);
for (int i = 0; i < urls.length; i++) {
System.out.println(i+":" + urls[i]);
}
// 组合需要格式的字符串
StringBuffer sbUrl = new StringBuffer(urls[0]).append(".").append(urls[1]);
System.out.println(sbUrl);
Authority authority = authorityService.getByProerties("url", sbUrl.toString());
model = authority == null ? "其他" : authority.getMenuName();
if (urls[2].startsWith("get")) {
action = "查询(获取)";
}
else if (urls[2].startsWith("save") && "new".equals(cmd)) {
action = "新增";
}
else if (urls[2].startsWith("save") && "edit".equals(cmd)) {
action = "修改";
}
else if (urls[2].startsWith("delete")) {
action = "删除";
}
else if (urls[2].startsWith("login")) {
action = "登录";
}
else if (urls[2].startsWith("logout")) {
action = "注销";
}
else {
action = "其他";
}
}
// 请求的IP
String ip = request.getRemoteAddr();
// 请求的浏览器
String webBrower = request.getHeader("User-Agent");
try {
// *========控制台输出=========*//
System.out.println("=====后置通知开始=====");
System.out.println("用户名:" + sysUser.getUserName());
System.out.println("姓名:" + sysUser.getRealName());
System.out.println("请求IP:" + ip);
System.out.println("浏览器:" + webBrower);
System.out.println("请求方法:"
+ (joinPoint.getTarget().getClass().getName() + "."
+ joinPoint.getSignature().getName() + "()"));
System.out.println("url:" + url);
System.out.println("模块:" + model);
System.out.println("动作:" + action);
System.out.println("cmd:" + cmd);
// *========数据库日志=========*//
SysLog sysLog = new SysLog();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
sysLog.setLogTime(sdf.format(new Date()));
sysLog.setUserName(sysUser.getUserName());
sysLog.setRealName(sysUser.getRealName());
sysLog.setIp(ip);
sysLog.setWebBrower(webBrower);
sysLog.setModel(model);
sysLog.setAction(action);
// 保存数据库
sysLogService.persist(sysLog);
System.out.println("=====后置通知结束=====");
} catch (Exception e) {
// 记录本地异常日志
// logger.error("==前置通知异常==");
// logger.error("异常信息:{}", e.getMessage());
}
}
}