@Log(message="修改了{0}模块的信息。")
@RequiresPermissions("Module:edit")
@RequestMapping(value="/update", method=RequestMethod.POST)
public @ResponseBody String update(@Valid Module module) {
Module oldModule = moduleService.get(module.getId());
oldModule.setName(module.getName());
oldModule.setPriority(module.getPriority());
oldModule.setDescription(module.getDescription());
oldModule.setSn(module.getSn());
oldModule.setUrl(module.getUrl());
oldModule.setParent(module.getParent());
oldModule.setClassName(module.getClassName());
// 模块自定义权限,删除过后新增报错,会有validate的验证错误。hibernate不能copy到permission的值,导致。
for (Permission permission : module.getPermissions()) {
if (StringUtils.isNotBlank(permission.getSn())) {// 已选中的
if (permission.getId() == null) {//新增
permission.setModule(oldModule);
oldModule.getPermissions().add(permission);
permissionService.saveOrUpdate(permission);
}
} else {// 未选中的
if (permission.getId() != null) {//删除
for (Permission oldPermission : oldModule.getPermissions()) {
if (oldPermission.getId().equals(permission.getId())) {
oldPermission.setModule(null);
permission = oldPermission;
break;
}
}
permissionService.delete(permission.getId());
oldModule.getPermissions().remove(permission);
}
}
}
moduleService.saveOrUpdate(oldModule);
LogUitls.putArgs(LogMessageObject.newWrite().setObjects(new Object[]{oldModule.getName()}));
return AjaxObject.newOk("修改模块成功!").toString();
}