关注JEECG发展历程 关注最新动态和版本, 记录JEECG成长点滴 更新日志 - 技术支持 - 招聘英才

JEECG最新版本下载 JEECG智能开发平台 - 显著提高开发效率 常见问题 - 入门视频 - 参与开源团队

商务QQ: 69893005、3102411850 商务热线(5*8小时): 010-64808099 官方邮箱: jeecgos@163.com

查看: 9305|回复: 4

[代码生成器] V3.4.3删除用户bug

[复制链接]
发表于 2014-5-6 16:26:30 | 显示全部楼层 |阅读模式
当添加用户登录系统后,就会产生外键关键删除报错情况,查看了下,是用户主键关联了日志表(t_s_log)造成的。手动删除相关用户的日志,即可顺利删除用户。

 楼主| 发表于 2014-5-6 17:17:59 | 显示全部楼层
  1. /**
  2.      * 用户信息录入和更新
  3.      *
  4.      * @param user
  5.      * @param req
  6.      * @return
  7.      */
  8.     @RequestMapping(params = "del")
  9.     @ResponseBody
  10.     public AjaxJson del(TSUser user, HttpServletRequest req) {
  11.         AjaxJson j = new AjaxJson();
  12.         if ("admin".equals(user.getUserName())) {
  13.             message = "超级管理员[admin]不可删除";
  14.             j.setMsg(message);
  15.             return j;
  16.         }

  17.         user = systemService.getEntity(TSUser.class, user.getId());

  18.         List<TSRoleUser> roleUser = systemService.findByProperty(TSRoleUser.class,
  19.                                                                  "TSUser.id",
  20.                                                                  user.getId());

  21.         List<TSLog> logUser = systemService.findByProperty(TSLog.class, "TSUser.id", user.getId());
  22.         if (!user.getStatus().equals(Globals.User_ADMIN)) {
  23.             if (roleUser.size() > 0) {

  24.                 // 删除用户时先删除用户和角色关系表
  25.                 delRoleUser(user);
  26.                 userService.delete(user);
  27.                 message = "用户:" + user.getUserName() + "删除成功";
  28.                 systemService.addLog(message, Globals.Log_Type_DEL, Globals.Log_Leavel_INFO);

  29.             } else if (logUser.size() > 0) {

  30.                 // 删除用户时先删除用户日志
  31.                 delLogUser(user);
  32.                 userService.delete(user);
  33.                 message = "用户:" + user.getUserName() + "删除成功";
  34.                 systemService.addLog(message, Globals.Log_Type_DEL, Globals.Log_Leavel_INFO);

  35.             } else {

  36.                 userService.delete(user);
  37.                 message = "用户:" + user.getUserName() + "删除成功";

  38.             }
  39.         } else {
  40.             message = "超级管理员不可删除";
  41.         }

  42.         j.setMsg(message);
  43.         return j;
  44.     }

  45.     // 同步删除用户角色关联表
  46.     public void delRoleUser(TSUser user) {
  47.         List<TSRoleUser> roleUserList = systemService.findByProperty(TSRoleUser.class,
  48.                                                                      "TSUser.id",
  49.                                                                      user.getId());
  50.         if (roleUserList.size() >= 1) {
  51.             for (TSRoleUser tRoleUser : roleUserList) {
  52.                 systemService.delete(tRoleUser);
  53.             }
  54.         }
  55.     }

  56.     // 同步删除用户关联日志
  57.     public void delLogUser(TSUser user) {
  58.         List<TSLog> logUserLisst = systemService.findByProperty(TSLog.class,
  59.                                                                 "TSUser.id",
  60.                                                                 user.getId());

  61.         if (logUserLisst.size() >= 1) {
  62.             for (TSLog tSLog : logUserLisst) {
  63.                 systemService.delete(tSLog);
  64.             }
  65.         }

  66.     }
复制代码
 楼主| 发表于 2014-5-6 17:19:00 | 显示全部楼层
我修复了这个bug,代码贴在上方了,请更新UserController.java这个文件,Good luck
发表于 2014-9-4 15:30:38 | 显示全部楼层
楼主英明
发表于 2014-9-4 19:12:15 | 显示全部楼层
不对,操作日志不能删除。要保留
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表