瀏覽代碼

阶段提交

laowo 3 年之前
父節點
當前提交
ed9e0a8deb
共有 24 個文件被更改,包括 579 次插入334 次删除
  1. 7 6
      src/main/java/com/usky/config/shiro/MyRealm.java
  2. 83 7
      src/main/java/com/usky/controller/sys/DeptController.java
  3. 2 6
      src/main/java/com/usky/controller/sys/MenuController.java
  4. 131 9
      src/main/java/com/usky/controller/sys/RoleController.java
  5. 22 11
      src/main/java/com/usky/controller/sys/UserController.java
  6. 3 3
      src/main/java/com/usky/entity/sys/SysDeptDTO.java
  7. 1 0
      src/main/java/com/usky/entity/sys/SysMenuDTO.java
  8. 0 154
      src/main/java/com/usky/entity/sys/SysPostDTO.java
  9. 1 0
      src/main/java/com/usky/entity/sys/SysRoleDTO.java
  10. 0 51
      src/main/java/com/usky/entity/sys/SysUserPostDTO.java
  11. 14 4
      src/main/java/com/usky/entity/sys/vo/SysRoleVO.java
  12. 0 23
      src/main/java/com/usky/service/dept/DeptService.java
  13. 31 0
      src/main/java/com/usky/service/sys/RoleService.java
  14. 113 4
      src/main/java/com/usky/service/sys/RoleServiceImpl.java
  15. 0 16
      src/main/java/com/usky/service/sys/SysService.java
  16. 0 21
      src/main/java/com/usky/service/sys/SysServiceImpl.java
  17. 54 0
      src/main/java/com/usky/service/sys/dept/DeptService.java
  18. 54 4
      src/main/java/com/usky/service/sys/dept/DeptServiceImpl.java
  19. 1 1
      src/main/java/com/usky/service/sys/menuService/MenuService.java
  20. 1 1
      src/main/java/com/usky/service/sys/menuService/MenuServiceImpl.java
  21. 1 4
      src/main/java/com/usky/service/sys/user/LoginService.java
  22. 1 5
      src/main/java/com/usky/service/sys/user/LoginServiceImpl.java
  23. 21 2
      src/main/java/com/usky/service/sys/user/UserService.java
  24. 38 2
      src/main/java/com/usky/service/sys/user/UserServiceImpl.java

+ 7 - 6
src/main/java/com/usky/config/shiro/MyRealm.java

@@ -2,9 +2,10 @@ package com.usky.config.shiro;
 
 
 import com.usky.entity.sys.vo.SysUserVO;
-import com.usky.service.menuService.MenuService;
-import com.usky.service.user.LoginService;
-import com.usky.service.user.UserService;
+
+import com.usky.service.sys.menuService.MenuService;
+import com.usky.service.sys.user.LoginService;
+import com.usky.service.sys.user.UserService;
 import com.usky.utils.ShiroUtils;
 import org.apache.shiro.authc.*;
 import org.apache.shiro.authz.AuthorizationInfo;
@@ -27,13 +28,13 @@ import java.util.Set;
 public class MyRealm extends AuthorizingRealm {
 
     @Autowired
-    @Lazy
+ //   @Lazy
     private LoginService loginService;
     @Autowired
-    @Lazy
+  //  @Lazy
     private UserService userService;
     @Autowired
-    @Lazy
+ //   @Lazy
     private MenuService menuService;
     //获取权限信息的方法
     @Override

+ 83 - 7
src/main/java/com/usky/controller/sys/DeptController.java

@@ -1,19 +1,21 @@
 package com.usky.controller.sys;
 
 import com.usky.entity.sys.SysDeptDTO;
-import com.usky.entity.sys.SysUserDTO;
 import com.usky.entity.sys.vo.SysDeptVO;
 import com.usky.entity.ztree.Ztree;
-import com.usky.service.dept.DeptService;
-import com.usky.service.user.UserService;
+import com.usky.service.sys.dept.DeptService;
+import com.usky.service.sys.user.UserService;
+import com.usky.utils.ListUtil;
 import com.usky.utils.Result;
+import com.usky.utils.StringUtils;
 import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
 
 import java.util.List;
 
@@ -29,11 +31,85 @@ import java.util.List;
 public class DeptController {
     @Autowired
     private DeptService deptService;
+    @Autowired
+    private UserService userService;
+    private String prefix = "/system/dept";
+
+    @ApiOperation(value = "部门管理页面鉴权")
+    @RequiresPermissions("system:dept:view")
+    @GetMapping()
+    public String dept() {
+        return prefix + "/dept";
+    }
 
+    @RequiresPermissions("system:dept:list")
     @ApiOperation(value = "系统-部门数据加载")
     @GetMapping("list")
     public Result<List<Ztree>> list() {
         List<Ztree> data = deptService.list(new SysDeptVO());
         return Result.OK(data);
     }
+
+
+    @ApiOperation(value = "新增部门")
+    @RequiresPermissions("system:dept:add")
+    @PostMapping("/add")
+    @ResponseBody
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "parentId", value = "父级部门id", required = true, paramType = "query"),
+            @ApiImplicitParam(name = "orderNum", value = "部门排序", required = true, paramType = "query"),
+            @ApiImplicitParam(name = "deptName", value = "部门名称", required = true, paramType = "query"),
+            @ApiImplicitParam(name = "status", value = "部门状态 0 正常 1停用", required = true, paramType = "query")
+    })
+    public Result<?> add(@Validated SysDeptDTO dept) {
+        List<SysDeptDTO> data = deptService.queryDeptByNameAndParentId(dept);
+        if (ListUtil.isNotBlank(data)) {
+            return Result.error("部门名称已存在!");
+        }
+        return deptService.add(dept);
+    }
+
+    @ApiOperation(value = "修改部门")
+    @RequiresPermissions("system:dept:edit")
+    @PostMapping("/edit")
+    @ResponseBody
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "parentId", value = "父级部门id", required = true, paramType = "query"),
+            @ApiImplicitParam(name = "orderNum", value = "部门排序", required = true, paramType = "query"),
+            @ApiImplicitParam(name = "deptName", value = "部门名称", required = true, paramType = "query"),
+            @ApiImplicitParam(name = "status", value = "部门状态 0 正常 1停用", required = true, paramType = "query")
+    })
+    public Result<?> editSave(@Validated SysDeptDTO dept) {
+        List<SysDeptDTO> data = deptService.queryDeptByNameAndParentId(dept);
+        if (ListUtil.isNotBlank(data)) {
+            return Result.error("部门名称已存在!");
+        } else if (dept.getParentId().equals(dept.getDeptId())) {
+            return Result.error("部门上级不能是自己!");
+        } else if (StringUtils.equals("1", dept.getStatus())
+                && deptService.queryDeptChildByid(dept.getDeptId()) > 0) {
+            return Result.error("该部门包含未停用的子部门!");
+        }
+        return Result.OK();
+    }
+
+    /**
+     * 删除
+     */
+    @ApiOperation(value = "删除部门")
+    @RequiresPermissions("system:dept:remove")
+    @GetMapping("/remove/{deptId}")
+    @ResponseBody
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "deptId", value = "部门id", required = true, paramType = "query")
+    })
+    public Result<?> remove(@PathVariable("deptId") Integer deptId) {
+        if (deptService.selectDeptCount(deptId).size() > 0) {
+            return Result.error("存在下级部门,不允许删除");
+        }
+        if (ListUtil.isNotBlank(userService.queryuserByDepID(deptId))) {
+            return Result.error("部门存在用户,不允许删除");
+        }
+        deptService.remove(deptId);
+        return Result.OK();
+    }
 }

+ 2 - 6
src/main/java/com/usky/controller/sys/MenuController.java

@@ -3,10 +3,9 @@ package com.usky.controller.sys;
 
 import com.usky.annotion.AutoLog;
 import com.usky.entity.sys.SysMenuDTO;
-import com.usky.entity.sys.SysUserDTO;
 import com.usky.entity.sys.vo.SysMenuVO;
 import com.usky.entity.sys.vo.SysUserVO;
-import com.usky.service.menuService.MenuService;
+import com.usky.service.sys.menuService.MenuService;
 import com.usky.utils.AuthorizationUtils;
 import com.usky.utils.ListUtil;
 import com.usky.utils.Result;
@@ -15,10 +14,7 @@ import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
-import lombok.extern.java.Log;
-import org.apache.shiro.authz.AuthorizationInfo;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
-import org.apache.shiro.cache.Cache;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
@@ -35,7 +31,7 @@ import java.util.List;
 @Api(tags = "系统-菜单")
 @RequestMapping("sys/menu")
 public class MenuController {
-    private final String prefix = "sys/menu";
+    private  String prefix = "sys/menu";
 
     @ApiOperation(value = "菜单-页面鉴权")
     @RequiresPermissions("system:menu:view")

+ 131 - 9
src/main/java/com/usky/controller/sys/RoleController.java

@@ -1,17 +1,12 @@
 package com.usky.controller.sys;
 
-/**
- * @author laowo
- * @version v1.0
- * @date 2021/8/27 14:37
- * @description TODO
- **/
-
+import com.usky.entity.sys.SysRoleDTO;
+import com.usky.entity.sys.SysUserRoleDTO;
 import com.usky.entity.sys.vo.SysDeptVO;
 import com.usky.entity.sys.vo.SysRoleVO;
 import com.usky.service.sys.RoleService;
-import com.usky.utils.Page;
-import com.usky.utils.Result;
+import com.usky.service.sys.user.UserService;
+import com.usky.utils.*;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
@@ -19,6 +14,12 @@ import io.swagger.annotations.ApiOperation;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
+/**
+ * @author laowo
+ * @version v1.0
+ * @date 2021/8/27 14:37
+ * @description TODO
+ **/
 
 import java.util.List;
 
@@ -31,6 +32,9 @@ public class RoleController {
     @Autowired
     private RoleService roleService;
 
+    @Autowired
+    private UserService userService;
+
     @RequiresPermissions("system:role:view")
     @GetMapping()
     @ApiOperation(value = "页面权限")
@@ -69,5 +73,123 @@ public class RoleController {
         return Result.OK(roleVOList);
     }
 
+    /**
+     * 新增保存角色
+     */
+    @ApiOperation(value = "角色新增")
+    @RequiresPermissions("system:role:add")
+    @PostMapping("/add")
+    @ResponseBody
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "roleName", value = "角色名称", required = true, paramType = "query"),
+            @ApiImplicitParam(name = "menuIds", value = "菜单组", required = false, paramType = "query"),
+            @ApiImplicitParam(name = "deptIds", value = "部门", required = false, paramType = "query"),
+            @ApiImplicitParam(name = "roleKey", value = "角色权限字符", required = true, paramType = "query"),
+            @ApiImplicitParam(name = "roleSort", value = "排序", required = true, paramType = "query"),
+            @ApiImplicitParam(name = "dataScope", value = "数据范围(1:全部数据权限 2:自定数据权限 3:本部门数据权限 4本部门及以下数据权限)", required = true, paramType = "query"),
+            @ApiImplicitParam(name = "status", value = "角色状态(0正常 1停用)", required = true, paramType = "query"),
+            @ApiImplicitParam(name = "remark", value = "备注", required = false, paramType = "query"),
+    })
+    public Result<?> addSave(
+            @RequestParam("roleName") String roleName,
+            @RequestParam(value = "menuIds", required = false) Integer[] menuIds,
+            @RequestParam(value = "deptIds", required = false) Integer[] deptIds,
+            @RequestParam("roleKey") String roleKey,
+            @RequestParam("roleSort") Integer roleSort,
+            @RequestParam("dataScope") String dataScope,
+            @RequestParam("status") String status,
+            @RequestParam(value = "remark", required = false) String remark
+    ) {
+        //新增角色名称校验
+        SysRoleVO roleVO = new SysRoleVO();
+        roleVO.setRoleName(roleName);
+        roleVO.setRoleKey(roleKey);
+        roleVO.setRoleSort(roleSort);
+        roleVO.setDataScope(dataScope);
+        roleVO.setStatus(status);
+        roleVO.setRemark(remark);
+        roleVO.setMenuIds(menuIds);
+        roleVO.setDeptIds(deptIds);
+        SysRoleDTO roleDTO = roleService.queryRoleByName(roleVO);
+        if (roleDTO != null) {
+            return Result.error("角色名称不能重复!");
+        }
+        //权限字符校验
+        SysRoleDTO roleKeyDto = roleService.queryRoleByKey(roleVO);
+        if (roleKeyDto != null) {
+            return Result.error("权限字符不能重复!");
+        }
+        AuthorizationUtils.clearAllCachedAuthorizationInfo();
+        roleService.addRole(roleVO);
+        return Result.OK();
+    }
 
+
+    @ApiOperation(value = "角色信息修改")
+    @RequiresPermissions("system:role:edit")
+    @PostMapping("/edit")
+    @ResponseBody
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "roleId", value = "角色id", required = true, paramType = "query"),
+            @ApiImplicitParam(name = "roleName", value = "角色名称", required = true, paramType = "query"),
+            @ApiImplicitParam(name = "menuIds", value = "菜单组", required = false, paramType = "query"),
+            @ApiImplicitParam(name = "deptIds", value = "部门", required = false, paramType = "query"),
+            @ApiImplicitParam(name = "roleKey", value = "角色权限字符", required = true, paramType = "query"),
+            @ApiImplicitParam(name = "roleSort", value = "排序", required = true, paramType = "query"),
+            @ApiImplicitParam(name = "dataScope", value = "数据范围(1:全部数据权限 2:自定数据权限 3:本部门数据权限 4本部门及以下数据权限)", required = true, paramType = "query"),
+            @ApiImplicitParam(name = "status", value = "角色状态(0正常 1停用)", required = true, paramType = "query"),
+            @ApiImplicitParam(name = "remark", value = "备注", required = false, paramType = "query"),
+    })
+    public Result<?> edit(
+            @RequestParam("roleName") String roleName,
+            @RequestParam("roleId") Integer roleId,
+            @RequestParam(value = "menuIds", required = false) Integer[] menuIds,
+            @RequestParam(value = "deptIds", required = false) Integer[] deptIds,
+            @RequestParam("roleKey") String roleKey,
+            @RequestParam("roleSort") Integer roleSort,
+            @RequestParam("dataScope") String dataScope,
+            @RequestParam("status") String status,
+            @RequestParam(value = "remark", required = false) String remark
+    ) {
+
+        //新增角色名称校验
+        SysRoleVO roleVO = new SysRoleVO();
+        roleVO.setRoleName(roleName);
+        roleVO.setRoleKey(roleKey);
+        roleVO.setRoleId(roleId);
+        roleVO.setRoleSort(roleSort);
+        roleVO.setDataScope(dataScope);
+        roleVO.setStatus(status);
+        roleVO.setRemark(remark);
+        roleVO.setMenuIds(menuIds);
+        roleVO.setDeptIds(deptIds);
+        SysRoleDTO roleDTO = roleService.queryRoleByName(roleVO);
+        if (roleDTO != null) {
+            return Result.error("角色名称不能重复!");
+        }
+        //权限字符校验
+        SysRoleDTO roleKeyDto = roleService.queryRoleByKey(roleVO);
+        if (roleKeyDto != null) {
+            return Result.error("权限字符不能重复!");
+        }
+        AuthorizationUtils.clearAllCachedAuthorizationInfo();
+        roleService.edit(roleVO);
+        return Result.OK();
+    }
+
+
+    @ApiOperation(value = "角色删除")
+    @RequiresPermissions("system:role:remove")
+    @PostMapping("/remove")
+    @ResponseBody
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "roleId", value = "角色id", required = true, paramType = "query")})
+    public Result<?> remove(@RequestParam("roleId") Integer roleId) {
+        List<SysUserRoleDTO> sysUserRoleDTOS = userService.queryUserByRoleId(roleId);
+        if (ListUtil.isNotBlank(sysUserRoleDTOS)) {
+            return Result.error("角色已被分配无法删除");
+        }
+        userService.remove(roleId);
+        return Result.OK();
+    }
 }

+ 22 - 11
src/main/java/com/usky/controller/sys/UserController.java

@@ -1,27 +1,20 @@
 package com.usky.controller.sys;
 
-import com.usky.entity.sys.SysRoleDTO;
 import com.usky.entity.sys.SysUserDTO;
-import com.usky.entity.sys.vo.SysDeptVO;
-import com.usky.entity.sys.vo.SysRoleVO;
 import com.usky.entity.sys.vo.SysUserVO;
 import com.usky.service.sys.RoleService;
-import com.usky.service.user.UserService;
+import com.usky.service.sys.user.UserService;
 import com.usky.utils.*;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
-import lombok.extern.java.Log;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
-import org.aspectj.weaver.ast.Var;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
 import java.util.List;
-import java.util.stream.Collectors;
 
 /**
  * @author laowo
@@ -33,14 +26,12 @@ import java.util.stream.Collectors;
 @RestController
 @RequestMapping("sys/user")
 public class UserController {
-
-
     @Autowired
     private UserService userService;
     @Autowired
     private RoleService roleService;
 
-    private final String prefix = "sys/user";
+    private String prefix = "sys/user";
 
     @ApiOperation("用户管理-页面鉴权")
     @RequiresPermissions("system:user:view")
@@ -187,4 +178,24 @@ public class UserController {
         userService.updateUser(user);
         return Result.OK();
     }
+
+
+    @ApiOperation("密码重置")
+    @RequiresPermissions("system:user:resetPwd")
+    @PostMapping("/resetPwd")
+    @ResponseBody
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "password", value = "密码", required = true, paramType = "query"),
+            @ApiImplicitParam(name = "userId", value = "用户id", required = true, paramType = "query")
+    })
+    public Result<?> resetPwdSave(@RequestParam("password") String password,
+                                  @RequestParam("password") Integer userId) {
+        if (userId == 1) {
+            return Result.error("管理员账户不允许修改!");
+        }
+        userService.reSetPW(password, userId);
+        return Result.OK();
+    }
+
+
 }

+ 3 - 3
src/main/java/com/usky/entity/sys/SysDeptDTO.java

@@ -1,6 +1,5 @@
 package com.usky.entity.sys;
 
-import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 
@@ -40,15 +39,16 @@ public class SysDeptDTO {
     private String delFlag;
     @ApiModelProperty("创建人")
     private String createBy;
-    @ApiModelProperty("创建时间")
+    @ApiModelProperty(value = "创建时间",hidden = true)
     private Timestamp createTime;
     @ApiModelProperty("更新人")
     private String updateBy;
-    @ApiModelProperty("更新时间")
+    @ApiModelProperty(value = "更新时间",hidden = true)
     private Timestamp updateTime;
 
     @Id
     @Column(name = "dept_id", nullable = false)
+    @GeneratedValue(strategy=GenerationType.IDENTITY)
     public Integer getDeptId() {
         return deptId;
     }

+ 1 - 0
src/main/java/com/usky/entity/sys/SysMenuDTO.java

@@ -52,6 +52,7 @@ public class SysMenuDTO {
 
     @Id
     @Column(name = "menu_id", nullable = false)
+    @GeneratedValue(strategy=GenerationType.IDENTITY)
     public Integer getMenuId() {
         return menuId;
     }

+ 0 - 154
src/main/java/com/usky/entity/sys/SysPostDTO.java

@@ -1,154 +0,0 @@
-package com.usky.entity.sys;
-
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-
-import javax.persistence.*;
-import java.sql.Timestamp;
-import java.util.Objects;
-
-/**
- * @author laowo
- * @version v1.0
- * @date 2021/8/19 14:03
- * @description TODO
- **/
-@Entity
-@Table(name = "sys_post", schema = "jx_cover", catalog = "")
-@ApiModel(value = "系统-岗位信息DTO")
-public class SysPostDTO {
-    @ApiModelProperty("岗位id")
-    private Integer postId;
-    @ApiModelProperty("岗位编码")
-    private String postCode;
-    @ApiModelProperty("岗位名称")
-    private String postName;
-    @ApiModelProperty("岗位显示顺序")
-    private int postSort;
-    @ApiModelProperty("状态 0 正常 1 停用")
-    private String status;
-    @ApiModelProperty("创建人")
-    private String createBy;
-    @ApiModelProperty("创建时间")
-    private Timestamp createTime;
-    @ApiModelProperty("更新人")
-    private String updateBy;
-    @ApiModelProperty("更新时间")
-    private Timestamp updateTime;
-    @ApiModelProperty("备注")
-    private String remark;
-
-    @Id
-    @Column(name = "post_id", nullable = false)
-    public Integer getPostId() {
-        return postId;
-    }
-
-    public void setPostId(Integer postId) {
-        this.postId = postId;
-    }
-
-    @Basic
-    @Column(name = "post_code", nullable = false, length = 64)
-    public String getPostCode() {
-        return postCode;
-    }
-
-    public void setPostCode(String postCode) {
-        this.postCode = postCode;
-    }
-
-    @Basic
-    @Column(name = "post_name", nullable = false, length = 50)
-    public String getPostName() {
-        return postName;
-    }
-
-    public void setPostName(String postName) {
-        this.postName = postName;
-    }
-
-    @Basic
-    @Column(name = "post_sort", nullable = false)
-    public int getPostSort() {
-        return postSort;
-    }
-
-    public void setPostSort(int postSort) {
-        this.postSort = postSort;
-    }
-
-    @Basic
-    @Column(name = "status", nullable = false, length = 1)
-    public String getStatus() {
-        return status;
-    }
-
-    public void setStatus(String status) {
-        this.status = status;
-    }
-
-    @Basic
-    @Column(name = "create_by", nullable = true, length = 64)
-    public String getCreateBy() {
-        return createBy;
-    }
-
-    public void setCreateBy(String createBy) {
-        this.createBy = createBy;
-    }
-
-    @Basic
-    @Column(name = "create_time", nullable = true)
-    public Timestamp getCreateTime() {
-        return createTime;
-    }
-
-    public void setCreateTime(Timestamp createTime) {
-        this.createTime = createTime;
-    }
-
-    @Basic
-    @Column(name = "update_by", nullable = true, length = 64)
-    public String getUpdateBy() {
-        return updateBy;
-    }
-
-    public void setUpdateBy(String updateBy) {
-        this.updateBy = updateBy;
-    }
-
-    @Basic
-    @Column(name = "update_time", nullable = true)
-    public Timestamp getUpdateTime() {
-        return updateTime;
-    }
-
-    public void setUpdateTime(Timestamp updateTime) {
-        this.updateTime = updateTime;
-    }
-
-    @Basic
-    @Column(name = "remark", nullable = true, length = 500)
-    public String getRemark() {
-        return remark;
-    }
-
-    public void setRemark(String remark) {
-        this.remark = remark;
-    }
-
-    @Override
-    public boolean equals(Object o) {
-        if (this == o) return true;
-        if (o == null || getClass() != o.getClass()) return false;
-        SysPostDTO that = (SysPostDTO) o;
-        return postId == that.postId && postSort == that.postSort && Objects.equals(postCode, that.postCode) && Objects.equals(postName, that.postName) && Objects.equals(status, that.status) && Objects.equals(createBy, that.createBy) && Objects.equals(createTime, that.createTime) && Objects.equals(updateBy, that.updateBy) && Objects.equals(updateTime, that.updateTime) && Objects.equals(remark, that.remark);
-    }
-
-    @Override
-    public int hashCode() {
-        return Objects.hash(postId, postCode, postName, postSort, status, createBy, createTime, updateBy, updateTime, remark);
-    }
-}

+ 1 - 0
src/main/java/com/usky/entity/sys/SysRoleDTO.java

@@ -45,6 +45,7 @@ public class SysRoleDTO implements Serializable {
 
     @Id
     @Column(name = "role_id", nullable = false)
+    @GeneratedValue(strategy=GenerationType.IDENTITY)
     public Integer getRoleId() {
         return roleId;
     }

+ 0 - 51
src/main/java/com/usky/entity/sys/SysUserPostDTO.java

@@ -1,51 +0,0 @@
-package com.usky.entity.sys;
-
-import javax.persistence.*;
-import java.io.Serializable;
-import java.util.Objects;
-
-/**
- * @author laowo
- * @version v1.0
- * @date 2021/8/19 14:03
- * @description TODO
- **/
-@Entity
-@Table(name = "sys_user_post", schema = "jx_cover", catalog = "")
-public class SysUserPostDTO implements Serializable {
-    private Integer userId;
-    private Integer postId;
-
-    @Id
-    @Column(name = "user_id", nullable = false)
-    public Integer getUserId() {
-        return userId;
-    }
-
-    public void setUserId(Integer userId) {
-        this.userId = userId;
-    }
-
-    @Id
-    @Column(name = "post_id", nullable = false)
-    public Integer getPostId() {
-        return postId;
-    }
-
-    public void setPostId(Integer postId) {
-        this.postId = postId;
-    }
-
-    @Override
-    public boolean equals(Object o) {
-        if (this == o) return true;
-        if (o == null || getClass() != o.getClass()) return false;
-        SysUserPostDTO that = (SysUserPostDTO) o;
-        return userId == that.userId && postId == that.postId;
-    }
-
-    @Override
-    public int hashCode() {
-        return Objects.hash(userId, postId);
-    }
-}

+ 14 - 4
src/main/java/com/usky/entity/sys/vo/SysRoleVO.java

@@ -6,6 +6,9 @@ import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 import javax.persistence.*;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Size;
 import java.io.Serializable;
 import java.sql.Timestamp;
 import java.util.Objects;
@@ -22,12 +25,15 @@ public class SysRoleVO extends BaseEntity implements Serializable {
     @ApiModelProperty("角色id")
     private Integer roleId;
     @ApiModelProperty("角色名称")
+    @NotBlank(message = "角色名称不能为空")
+    @Size(min = 0, max = 10, message = "角色名称不能超过10个字符")
     private String roleName;
     @ApiModelProperty("角色权限字符")
     private String roleKey;
     @ApiModelProperty("角色显示排序")
     private int roleSort;
     @ApiModelProperty("数据范围(1:全部数据权限 2:自定数据权限 3:本部门数据权限 4:本部门及以下数据权限)")
+    @NotBlank(message = "数据范围不能为空")
     private String dataScope;
     @ApiModelProperty("角色状态(0正常 1停用)")
     private String status;
@@ -44,14 +50,18 @@ public class SysRoleVO extends BaseEntity implements Serializable {
     @ApiModelProperty("备注")
     private String remark;
 
-    public boolean isAdmin()
-    {
+    public boolean isAdmin() {
         return isAdmin(this.roleId);
     }
 
-    public static boolean isAdmin(Integer roleId)
-    {
+    public static boolean isAdmin(Integer roleId) {
         return roleId != null && 1 == roleId;
     }
+    /** 菜单组 */
+    @ApiModelProperty("菜单")
+    private Integer[] menuIds;
 
+    /** 部门组(数据权限) */
+    @ApiModelProperty("部门")
+    private Integer[] deptIds;
 }

+ 0 - 23
src/main/java/com/usky/service/dept/DeptService.java

@@ -1,23 +0,0 @@
-package com.usky.service.dept;
-
-import com.usky.entity.sys.vo.SysDeptVO;
-import com.usky.entity.ztree.Ztree;
-
-import java.util.List;
-
-/**
- * @author laowo
- * @version v1.0
- * @date 2021/8/26 15:52
- * @description TODO
- **/
-public interface DeptService {
-    /**
-     * 部门树加载
-     *
-     * @return
-     * @param sysDeptVO
-     */
-    public List<Ztree> list(SysDeptVO sysDeptVO);
-}
-

+ 31 - 0
src/main/java/com/usky/service/sys/RoleService.java

@@ -1,5 +1,6 @@
 package com.usky.service.sys;
 
+import com.usky.entity.sys.SysRoleDTO;
 import com.usky.entity.sys.vo.SysDeptVO;
 import com.usky.entity.sys.vo.SysRoleVO;
 import com.usky.utils.Page;
@@ -22,4 +23,34 @@ public interface RoleService {
      * @return
      */
     List<SysRoleVO> querRoleList(SysRoleVO sysRoleVO);
+
+    /**
+     * 通过角色名称查询角色
+     *
+     * @param role
+     * @return
+     */
+    SysRoleDTO queryRoleByName(SysRoleVO role);
+
+    /**
+     * 权限字符校验
+     *
+     * @param role
+     * @return
+     */
+    SysRoleDTO queryRoleByKey(SysRoleVO role);
+
+    /**
+     * 新增角色
+     *
+     * @param roleVO
+     */
+    void addRole(SysRoleVO roleVO);
+
+    /**
+     * 角色修改
+     *
+     * @param roleVO
+     */
+    void edit(SysRoleVO roleVO);
 }

+ 113 - 4
src/main/java/com/usky/service/sys/RoleServiceImpl.java

@@ -1,19 +1,28 @@
 package com.usky.service.sys;
 
+import com.sun.org.apache.xpath.internal.operations.Gte;
 import com.usky.annotion.DataScope;
 import com.usky.dao.impl.BaseDaoImpl;
 import com.usky.entity.BaseEntity;
 import com.usky.entity.sys.SysDeptDTO;
 import com.usky.entity.sys.SysRoleDTO;
+import com.usky.entity.sys.SysRoleDeptDTO;
+import com.usky.entity.sys.SysRoleMenuDTO;
 import com.usky.entity.sys.vo.SysDeptVO;
 import com.usky.entity.sys.vo.SysRoleVO;
+import com.usky.utils.BeanHelp;
 import com.usky.utils.Page;
 
+import com.usky.utils.ShiroUtils;
+import io.swagger.models.auth.In;
 import org.apache.commons.lang3.StringUtils;
 import org.hibernate.query.NativeQuery;
 import org.hibernate.transform.Transformers;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
+import java.sql.Timestamp;
+import java.util.ArrayList;
 import java.util.List;
 
 /**
@@ -28,7 +37,7 @@ public class RoleServiceImpl extends BaseDaoImpl implements RoleService {
     @DataScope(deptAlias = "d")
     public Page<SysRoleVO> list(SysDeptVO sysDeptVO, String roleName, String status, String startTime, String endTime, Integer pageSize, Integer pageNo) {
         String dataScope = (String) sysDeptVO.getParams().get("dataScope");
-        StringBuffer sb = new StringBuffer();
+        StringBuilder sb = new StringBuilder();
         sb.append("SELECT DISTINCT\n" +
                 "\tr.role_id AS roleId,\n" +
                 "\tr.role_name AS roleName,\n" +
@@ -73,7 +82,7 @@ public class RoleServiceImpl extends BaseDaoImpl implements RoleService {
     @DataScope(deptAlias = "d")
     public List<SysRoleVO> querRoleList(SysRoleVO sysRoleVO) {
         String dataScope = (String) sysRoleVO.getParams().get("dataScope");
-        StringBuffer sb = new StringBuffer();
+        StringBuilder sb = new StringBuilder();
         sb.append("SELECT DISTINCT\n" +
                 "\tr.role_id AS roleId,\n" +
                 "\tr.role_name AS roleName,\n" +
@@ -92,8 +101,108 @@ public class RoleServiceImpl extends BaseDaoImpl implements RoleService {
         if (StringUtils.isNotBlank(dataScope)) {
             sb.append(dataScope);
         }
-        List<SysRoleVO> date = getSession().createSQLQuery(sb.toString()).setResultTransformer(Transformers.aliasToBean(SysRoleVO.class)).list();
 
-        return date;
+        return (List<SysRoleVO>) getSession().createSQLQuery(sb.toString()).setResultTransformer(Transformers.aliasToBean(SysRoleVO.class)).list();
     }
+
+    @Override
+    public SysRoleDTO queryRoleByName(SysRoleVO role) {
+        return (SysRoleDTO) getSession().createQuery("from SysRoleDTO t where t.roleName='" + role.getRoleName() + "'").uniqueResult();
+    }
+
+    @Override
+    public SysRoleDTO queryRoleByKey(SysRoleVO role) {
+        return (SysRoleDTO) getSession().createQuery("from SysRoleDTO t where t.roleKey='" + role.getRoleKey() + "'").uniqueResult();
+    }
+
+    @Override
+    @Transactional
+    public void addRole(SysRoleVO roleVO) {
+        SysRoleDTO roleDTO = BeanHelp.copyProperties(roleVO, SysRoleDTO.class);
+        roleDTO.setCreateBy(ShiroUtils.getLoginName());
+        roleDTO.setCreateTime(new Timestamp(System.currentTimeMillis()));
+        getSession().save(roleDTO);
+        Integer roleId = roleDTO.getRoleId();
+        insertRoleMenu(roleVO, roleId);
+        roleVO.setRoleId(roleId);
+        insertRoleDept(roleVO);
+    }
+
+    /**
+     * 角色修改
+     *
+     * @param roleVO
+     */
+    @Override
+    @Transactional
+    public void edit(SysRoleVO roleVO) {
+        SysRoleDTO roleDTO = (SysRoleDTO) getSession().createQuery("from SysRoleDTO t where t.roleId=" + roleVO.getRoleId() + "").uniqueResult();
+        if (StringUtils.isNotBlank(roleVO.getRoleKey())) {
+            roleDTO.setRoleKey(roleVO.getRoleKey());
+        }
+        if (StringUtils.isNotBlank(roleVO.getRemark())) {
+            roleDTO.setRemark(roleVO.getRemark());
+        }
+        if (StringUtils.isNotBlank(roleVO.getRoleName())) {
+            roleDTO.setRoleKey(roleVO.getRoleKey());
+        }
+        if (StringUtils.isNotBlank(roleVO.getStatus())) {
+            roleDTO.setStatus(roleVO.getStatus());
+        }
+        roleDTO.setRoleSort(roleVO.getRoleSort());
+        roleDTO.setUpdateBy(ShiroUtils.getLoginName());
+        roleDTO.setUpdateTime(new Timestamp(System.currentTimeMillis()));
+        getSession().saveOrUpdate(roleDTO);
+        delRoleMenuByRoleId(roleVO.getRoleId());
+        insertRoleMenu(roleVO, roleVO.getRoleId());
+        //删除角色和部门关联
+        delRoleDept(roleVO.getRoleId());
+        insertRoleDept(roleVO);
+    }
+
+    /**
+     * 删除角色菜单关联
+     *
+     * @param roleId
+     */
+    public void delRoleMenuByRoleId(Integer roleId) {
+        getSession().createSQLQuery("delete from sys_role_menu where role_id=" + roleId + "").executeUpdate();
+
+    }
+
+    public void insertRoleMenu(SysRoleVO role, Integer roleId) {
+        if (null != role.getMenuIds() && role.getMenuIds().length != 0) {
+            List<SysRoleMenuDTO> list = new ArrayList<SysRoleMenuDTO>();
+            for (Integer menuId : role.getMenuIds()) {
+                SysRoleMenuDTO rm = new SysRoleMenuDTO();
+                rm.setRoleId(roleId);
+                rm.setMenuId(menuId);
+                getSession().save(rm);
+                getSession().flush();
+                getSession().clear();
+            }
+        }
+
+    }
+
+    public void insertRoleDept(SysRoleVO role) {
+        // 新增角色与部门(数据权限)管理
+        if (null != role.getMenuIds() && role.getMenuIds().length != 0) {
+            for (Integer deptId : role.getDeptIds()) {
+                SysRoleDeptDTO rd = new SysRoleDeptDTO();
+                rd.setRoleId(role.getRoleId());
+                rd.setDeptId(deptId);
+                getSession().save(rd);
+                getSession().flush();
+                getSession().clear();
+            }
+        }
+
+    }
+
+    public void delRoleDept(Integer roleId) {
+        getSession().createSQLQuery("delete from sys_role_dept where role_id=" + roleId + "").executeUpdate();
+    }
+
+
 }

+ 0 - 16
src/main/java/com/usky/service/sys/SysService.java

@@ -1,16 +0,0 @@
-package com.usky.service.sys;
-
-import com.usky.entity.sys.SysDeptDTO;
-
-import java.util.List;
-
-/**
- * @author laowo
- */
-public interface SysService {
-    /**
-     * 测试
-     * @return
-     */
-    List<SysDeptDTO> test();
-}

+ 0 - 21
src/main/java/com/usky/service/sys/SysServiceImpl.java

@@ -1,21 +0,0 @@
-package com.usky.service.sys;
-
-import com.usky.dao.impl.BaseDaoImpl;
-import com.usky.entity.sys.SysDeptDTO;
-import org.springframework.stereotype.Service;
-
-import java.util.List;
-
-/**
- * @author laowo
- * @version v1.0
- * @date 2021/8/19 14:53
- * @description TODO
- **/
-@Service
-public class SysServiceImpl extends BaseDaoImpl implements SysService {
-    @Override
-    public List<SysDeptDTO> test() {
-        return getSession().createQuery("from SysDeptDTO ").list();
-    }
-}

+ 54 - 0
src/main/java/com/usky/service/sys/dept/DeptService.java

@@ -0,0 +1,54 @@
+package com.usky.service.sys.dept;
+
+import com.usky.entity.sys.SysDeptDTO;
+import com.usky.entity.sys.vo.SysDeptVO;
+import com.usky.entity.ztree.Ztree;
+import com.usky.utils.Result;
+
+import java.util.List;
+
+/**
+ * @author laowo
+ * @version v1.0
+ * @date 2021/8/26 15:52
+ * @description TODO
+ **/
+public interface DeptService {
+    /**
+     * 部门树加载
+     *
+     * @param sysDeptVO
+     * @return
+     */
+    public List<Ztree> list(SysDeptVO sysDeptVO);
+
+    /**
+     * 根据父级id和部门名称查询部门
+     *
+     * @param dept
+     * @return
+     */
+    List<SysDeptDTO> queryDeptByNameAndParentId(SysDeptDTO dept);
+
+    /**
+     * 新增部门
+     *
+     * @param dept
+     * @return
+     */
+    Result<?> add(SysDeptDTO dept);
+
+    /**
+     * 根据父级id查询子部门
+     *
+     * @param deptId
+     * @return
+     */
+    int queryDeptChildByid(Integer deptId);
+
+
+    List selectDeptCount(Integer deptId);
+
+    void remove(Integer deptId);
+}
+

+ 54 - 4
src/main/java/com/usky/service/dept/DeptServiceImpl.java → src/main/java/com/usky/service/sys/dept/DeptServiceImpl.java

@@ -1,12 +1,12 @@
-package com.usky.service.dept;
+package com.usky.service.sys.dept;
 
 import com.usky.annotion.DataScope;
 import com.usky.dao.impl.BaseDaoImpl;
-import com.usky.entity.mqtt.TbDeviceInfoDTO;
 import com.usky.entity.sys.SysDeptDTO;
 import com.usky.entity.sys.vo.SysDeptVO;
 import com.usky.entity.ztree.Ztree;
 import com.usky.utils.ListUtil;
+import com.usky.utils.Result;
 import org.apache.commons.lang3.StringUtils;
 import org.hibernate.transform.Transformers;
 import org.springframework.stereotype.Service;
@@ -29,10 +29,10 @@ public class DeptServiceImpl extends BaseDaoImpl implements DeptService {
         System.out.println("dataScope = " + dataScope);
         StringBuffer sb = new StringBuffer();
         sb.append("SELECT t.dept_id AS deptId,t.parent_id AS parentId,t.ancestors,t.dept_name AS deptName,t.order_num AS orderNum,t.leader,t.phone,t.email,t.`status`,t.del_flag AS delFlag,t.create_by AS createBy  FROM sys_dept t where t.del_flag = '0'");
-        if (StringUtils.isNotBlank(dataScope)){
+        if (StringUtils.isNotBlank(dataScope)) {
             sb.append(dataScope);
             sb.append(" order by t.parent_id, t.order_num");
-        }else {
+        } else {
             sb.append(" order by t.parent_id, t.order_num");
         }
         List<SysDeptDTO> list = getSession().createSQLQuery(sb.toString()).setResultTransformer(Transformers.aliasToBean(SysDeptDTO.class)).list();
@@ -40,6 +40,56 @@ public class DeptServiceImpl extends BaseDaoImpl implements DeptService {
         return ztrees;
     }
 
+
+    @Override
+    public List<SysDeptDTO> queryDeptByNameAndParentId(SysDeptDTO dept) {
+        return (List<SysDeptDTO>) getSession().createQuery("from SysDeptDTO t where t.deptName='" + dept.getDeptName() + "' and t.parentId=" + dept.getDeptId() + "").list();
+    }
+
+    /**
+     * 部门新增
+     *
+     * @param dept
+     * @return
+     */
+    @Override
+    public Result<?> add(SysDeptDTO dept) {
+        SysDeptDTO parent = queryDeptById(dept.getParentId());
+        if ("1".equals(parent.getStatus())) {
+            Result.error("部门已停用无法添加!");
+        }
+        dept.setAncestors(parent.getAncestors() + "," + dept.getParentId());
+        getSession().save(dept);
+        return Result.OK();
+    }
+
+    @Override
+    public int queryDeptChildByid(Integer deptId) {
+        List lis = getSession().createSQLQuery("select count(*) from sys_dept where status = 0 and del_flag = '0' and find_in_set(#{deptId}, ancestors)").list();
+        lis.get(0);
+
+
+        return 0;
+    }
+
+
+    @Override
+    public List selectDeptCount(Integer deptId) {
+
+        return getSession().createSQLQuery("select count(1) from sys_dept where del_flag = '0' and parent_id = " + deptId + "").list();
+    }
+
+    @Override
+    public void remove(Integer deptId) {
+        getSession().createSQLQuery("update sys_dept set del_flag = '1' where dept_id = " + deptId + "");
+    }
+
+
+    public SysDeptDTO queryDeptById(Integer deptId) {
+
+        return (SysDeptDTO) getSession().createQuery("from SysDeptDTO t where t.deptId=" + deptId + "").uniqueResult();
+    }
+
     /**
      * 对象转部门树
      *

+ 1 - 1
src/main/java/com/usky/service/menuService/MenuService.java → src/main/java/com/usky/service/sys/menuService/MenuService.java

@@ -1,4 +1,4 @@
-package com.usky.service.menuService;
+package com.usky.service.sys.menuService;
 
 
 import com.usky.entity.sys.SysMenuDTO;

+ 1 - 1
src/main/java/com/usky/service/menuService/MenuServiceImpl.java → src/main/java/com/usky/service/sys/menuService/MenuServiceImpl.java

@@ -1,4 +1,4 @@
-package com.usky.service.menuService;
+package com.usky.service.sys.menuService;
 
 import com.usky.annotion.DataScope;
 import com.usky.dao.impl.BaseDaoImpl;

+ 1 - 4
src/main/java/com/usky/service/user/LoginService.java → src/main/java/com/usky/service/sys/user/LoginService.java

@@ -1,10 +1,7 @@
-package com.usky.service.user;
+package com.usky.service.sys.user;
 
-import com.usky.entity.sys.SysUserDTO;
 import com.usky.entity.sys.vo.SysUserVO;
 
-import java.util.Set;
-
 /**
  * @author laowo
  */

+ 1 - 5
src/main/java/com/usky/service/user/LoginServiceImpl.java → src/main/java/com/usky/service/sys/user/LoginServiceImpl.java

@@ -1,4 +1,4 @@
-package com.usky.service.user;
+package com.usky.service.sys.user;
 
 
 import com.usky.dao.impl.BaseDaoImpl;
@@ -8,14 +8,10 @@ import com.usky.entity.sys.vo.SysUserVO;
 import com.usky.exception.user.UserPasswordNotMatchException;
 import com.usky.utils.BeanHelp;
 import com.usky.utils.ListUtil;
-import org.apache.commons.lang.StringUtils;
 import org.hibernate.transform.Transformers;
 import org.springframework.stereotype.Service;
 
-import java.util.Arrays;
-import java.util.HashSet;
 import java.util.List;
-import java.util.Set;
 
 /**
  * @author laowo

+ 21 - 2
src/main/java/com/usky/service/user/UserService.java → src/main/java/com/usky/service/sys/user/UserService.java

@@ -1,9 +1,9 @@
-package com.usky.service.user;
+package com.usky.service.sys.user;
 
 import com.usky.entity.sys.SysUserDTO;
+import com.usky.entity.sys.SysUserRoleDTO;
 import com.usky.entity.sys.vo.SysUserVO;
 import com.usky.utils.Page;
-import com.usky.utils.Result;
 
 import java.util.List;
 import java.util.Set;
@@ -12,6 +12,8 @@ import java.util.Set;
  * @author laowo
  */
 public interface UserService {
+
+
     /**
      * 用户添加
      *
@@ -71,4 +73,21 @@ public interface UserService {
      * @param user
      */
     void updateUser(SysUserVO user);
+
+    /**
+     * 根据角色id查询用户
+     * @param roleId
+     * @return
+     */
+    List<SysUserRoleDTO> queryUserByRoleId(Integer roleId);
+
+    /**
+     * 删除角色
+     * @param roleId
+     */
+    void remove(Integer roleId);
+
+    List<SysUserDTO> queryuserByDepID(Integer deptId);
+
+    void reSetPW(String password, Integer userId);
 }

+ 38 - 2
src/main/java/com/usky/service/user/UserServiceImpl.java → src/main/java/com/usky/service/sys/user/UserServiceImpl.java

@@ -1,4 +1,4 @@
-package com.usky.service.user;
+package com.usky.service.sys.user;
 
 import com.usky.annotion.DataScope;
 import com.usky.dao.impl.BaseDaoImpl;
@@ -39,6 +39,9 @@ public class UserServiceImpl extends BaseDaoImpl implements UserService {
         Md5Hash md5Hash = new Md5Hash(password, salt); //模拟md5加密一次
         sysUserDTO.setPassword(md5Hash.toString());
         sysUserDTO.setStatus("0");
+        //用户类型
+        sysUserDTO.setUserType("01");
+        sysUserDTO.setDelFlag("0");
         sysUserDTO.setCreateBy(ShiroUtils.getLoginName());
         sysUserDTO.setCreateTime(new Timestamp(System.currentTimeMillis()));
         getSession().save(sysUserDTO);
@@ -203,8 +206,41 @@ public class UserServiceImpl extends BaseDaoImpl implements UserService {
         getSession().update(o);
     }
 
+    @Override
+    public List<SysUserRoleDTO> queryUserByRoleId(Integer roleId) {
+
+        return (List<SysUserRoleDTO>) getSession().createQuery("from SysUserRoleDTO t where t.roleId=" + roleId + "").list();
+    }
+
+    /**
+     * 角色删除
+     *
+     * @param roleId
+     */
+    @Override
+    public void remove(Integer roleId) {
+        getSession().createSQLQuery("delete from sys_role where role_id=" + roleId + "").executeUpdate();
+    }
+
+    @Override
+    public List<SysUserDTO> queryuserByDepID(Integer deptId) {
+
+        return (List<SysUserDTO>) getSession().createQuery("from  SysUserDTO t where t.deptId=" + deptId + " and delFlag='0'").list();
+    }
+
+    @Override
+    public void reSetPW(String password, Integer userId) {
+        SysUserDTO user = (SysUserDTO) getSession().createQuery("from SysUserDTO t where t.userId=" + userId + "").uniqueResult();
+        String salt = RandomStringUtils.randomNumeric(6, 8);
+        user.setSalt(salt);
+        user.setPassword(new Md5Hash(password, salt).toString());
+        user.setUpdateBy(ShiroUtils.getLoginName());
+        user.setUpdateTime(new Timestamp(System.currentTimeMillis()));
+        getSession().saveOrUpdate(user);
+    }
+
     public void delUserRolerByUserId(Integer userId) {
-        getSession().createSQLQuery("delete sys_user_role t where t.user_id= " + userId + "");
+        getSession().createSQLQuery("delete from sys_user_role where user_id=" + userId + "").executeUpdate();
     }