From 925219ebfda2a480df99ca06a13033c78ae8d81f Mon Sep 17 00:00:00 2001 From: huliguo <2023611923@qq.com> Date: 星期五, 30 五月 2025 18:08:16 +0800 Subject: [PATCH] 权限管理+用户管理 --- ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysMenuMapper.java | 6 ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDeptMapper.java | 13 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java | 33 + ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml | 52 ++ ruoyi-common/src/main/java/com/ruoyi/common/utils/SecurityUtils.java | 10 ruoyi-system/src/main/java/com/ruoyi/system/pojo/dto/EditSysRoleDTO.java | 14 ruoyi-system/src/main/java/com/ruoyi/system/pojo/vo/SysDeptPageVO.java | 15 ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/AppUserController.java | 45 + ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml | 28 + ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java | 17 ruoyi-system/src/main/java/com/ruoyi/system/pojo/vo/SysRoleVO.java | 18 ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java | 21 ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java | 13 ruoyi-system/src/main/java/com/ruoyi/system/pojo/dto/AddSysUserDTO.java | 26 + ruoyi-system/src/main/java/com/ruoyi/system/pojo/vo/MenuTreeVO.java | 28 + ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java | 177 +++++- ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java | 73 ++ ruoyi-system/src/main/resources/mapper/system/SysRoleMapper.xml | 14 ruoyi-system/src/main/java/com/ruoyi/system/mapper/AppUserMapper.java | 16 ruoyi-system/src/main/java/com/ruoyi/system/pojo/dto/EditSysUserDTO.java | 17 ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysRoleMapper.java | 9 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/AppUserServiceImpl.java | 31 + ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysRoleMenuMapper.java | 7 ruoyi-system/src/main/java/com/ruoyi/system/service/AppUserService.java | 14 ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDeptService.java | 11 ruoyi-system/src/main/java/com/ruoyi/system/pojo/vo/SysUserVO.java | 16 ruoyi-system/src/main/java/com/ruoyi/system/pojo/dto/AppUserPageDTO.java | 30 + ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserRoleMapper.java | 8 ruoyi-system/src/main/java/com/ruoyi/system/pojo/vo/SysRolePageVO.java | 17 ruoyi-system/src/main/java/com/ruoyi/system/pojo/vo/AppUserPageVO.java | 34 + ruoyi-system/src/main/resources/mapper/system/SysUserRoleMapper.xml | 13 ruoyi-system/src/main/java/com/ruoyi/system/pojo/dto/AddSysRoleDTO.java | 19 ruoyi-system/src/main/resources/mapper/system/SysRoleMenuMapper.xml | 17 ruoyi-system/src/main/java/com/ruoyi/system/service/ISysRoleService.java | 18 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java | 120 ++++ ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRoleController.java | 159 ++++- ruoyi-system/src/main/java/com/ruoyi/system/pojo/dto/UpdatePwdDTO.java | 18 ruoyi-system/src/main/resources/mapper/system/AppUserMapper.xml | 21 ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDeptController.java | 107 +++ ruoyi-system/src/main/java/com/ruoyi/system/service/ISysMenuService.java | 3 ruoyi-system/src/main/java/com/ruoyi/system/pojo/vo/SysUserPageListVO.java | 24 ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysProfileController.java | 25 ruoyi-common/src/main/java/com/ruoyi/common/constant/UserConstants.java | 2 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java | 83 +++ ruoyi-system/src/main/resources/mapper/system/SysMenuMapper.xml | 12 45 files changed, 1,325 insertions(+), 129 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/AppUserController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/AppUserController.java new file mode 100644 index 0000000..5a15051 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/AppUserController.java @@ -0,0 +1,45 @@ +package com.ruoyi.web.controller.system; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.ruoyi.common.core.domain.R; +import com.ruoyi.system.pojo.dto.AppUserPageDTO; +import com.ruoyi.system.pojo.vo.AppUserPageVO; +import com.ruoyi.system.pojo.vo.BannerPageVO; +import com.ruoyi.system.service.AppUserService; +import com.ruoyi.system.service.BannerService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; + +@Slf4j +@RestController +@RequestMapping("/system/appUser") +@Api( tags = "后台-系统设置-用户管理") +public class AppUserController { + + @Resource + private AppUserService appUserService; + + /** + * 分页查询 + */ + @PostMapping("/getAppUserPage") + @ApiOperation(value = "appUser分页") + @PreAuthorize("@ss.hasPermi('appuser:manage')") + public R<IPage<AppUserPageVO>> getAppUserPage(@RequestBody AppUserPageDTO getAppUserPage) { + return R.ok(appUserService.getAppUserPage(getAppUserPage)); + } + + /** + * 查看详情 + */ + + /** + * 冻结/解冻 + */ + +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDeptController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDeptController.java index 59e7588..9db8a61 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDeptController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDeptController.java @@ -1,18 +1,18 @@ package com.ruoyi.web.controller.system; import java.util.List; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.ruoyi.common.core.domain.R; +import com.ruoyi.common.exception.ServiceException; +import com.ruoyi.system.pojo.vo.SysDeptPageVO; +import io.swagger.annotations.ApiOperation; import org.apache.commons.lang3.ArrayUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.constant.UserConstants; import com.ruoyi.common.core.controller.BaseController; @@ -37,41 +37,41 @@ /** * 获取部门列表 */ - @PreAuthorize("@ss.hasPermi('system:dept:list')") + /* @PreAuthorize("@ss.hasPermi('system:dept:list')") @GetMapping("/list") public AjaxResult list(SysDept dept) { List<SysDept> depts = deptService.selectDeptList(dept); return success(depts); - } + }*/ /** * 查询部门列表(排除节点) */ - @PreAuthorize("@ss.hasPermi('system:dept:list')") + /* @PreAuthorize("@ss.hasPermi('system:dept:list')") @GetMapping("/list/exclude/{deptId}") public AjaxResult excludeChild(@PathVariable(value = "deptId", required = false) Long deptId) { List<SysDept> depts = deptService.selectDeptList(new SysDept()); depts.removeIf(d -> d.getDeptId().intValue() == deptId || ArrayUtils.contains(StringUtils.split(d.getAncestors(), ","), deptId + "")); return success(depts); - } + }*/ /** * 根据部门编号获取详细信息 */ - @PreAuthorize("@ss.hasPermi('system:dept:query')") + /* @PreAuthorize("@ss.hasPermi('system:dept:query')") @GetMapping(value = "/{deptId}") public AjaxResult getInfo(@PathVariable Long deptId) { deptService.checkDeptDataScope(deptId); return success(deptService.selectDeptById(deptId)); - } + }*/ /** * 新增部门 */ - @PreAuthorize("@ss.hasPermi('system:dept:add')") + /* @PreAuthorize("@ss.hasPermi('system:dept:add')") @Log(title = "部门管理", businessType = BusinessType.INSERT) @PostMapping public AjaxResult add(@Validated @RequestBody SysDept dept) @@ -82,12 +82,12 @@ } dept.setCreateBy(getUsername()); return toAjax(deptService.insertDept(dept)); - } + }*/ /** * 修改部门 */ - @PreAuthorize("@ss.hasPermi('system:dept:edit')") + /*@PreAuthorize("@ss.hasPermi('system:dept:edit')") @Log(title = "部门管理", businessType = BusinessType.UPDATE) @PutMapping public AjaxResult edit(@Validated @RequestBody SysDept dept) @@ -108,12 +108,12 @@ } dept.setUpdateBy(getUsername()); return toAjax(deptService.updateDept(dept)); - } + }*/ /** * 删除部门 */ - @PreAuthorize("@ss.hasPermi('system:dept:remove')") + /* @PreAuthorize("@ss.hasPermi('system:dept:remove')") @Log(title = "部门管理", businessType = BusinessType.DELETE) @DeleteMapping("/{deptId}") public AjaxResult remove(@PathVariable Long deptId) @@ -128,5 +128,74 @@ } deptService.checkDeptDataScope(deptId); return toAjax(deptService.deleteDeptById(deptId)); + }*/ + + /** + * 部门分页 + */ + + @GetMapping("/page") + @PreAuthorize("@ss.hasPermi('permission:dept')") + @ApiOperation(value = "部门管理-分页列表", tags = "系统后台-权限管理") + public R<IPage<SysDeptPageVO>> page(@RequestParam(value = "pageNum",defaultValue = "0")Integer pageNum, + @RequestParam(value = "pageSize",defaultValue="10")Integer pageSize, + @RequestParam(value = "name",required = false)String name) { + IPage<SysDeptPageVO> iPage = new Page<>(pageNum, pageSize); + return R.ok(deptService.page(iPage,name)); + } + /** + * 回显 + */ + @PreAuthorize("@ss.hasPermi('permission:dept')") + @ApiOperation(value = "部门管理-查看部门(回显)", tags = "系统后台-权限管理") + @GetMapping("/{deptId}") + public AjaxResult detail(@PathVariable("deptId") Long deptId) { + SysDept sysDept = deptService.selectDeptById(deptId); + return success(sysDept); + } + + /** + * 新增 + */ + /** + * 新增部门 + */ + @PreAuthorize("@ss.hasPermi('permission:dept')") + @Log(title = "部门管理", businessType = BusinessType.INSERT) + @ApiOperation(value = "部门管理-新增部门", tags = "系统后台-权限管理") + @GetMapping("/add") + public AjaxResult add(@RequestParam("name")String name) { + deptService.add(name); + return success(); + } + + /** + * 编辑 + */ + @PreAuthorize("@ss.hasPermi('permission:dept')") + @Log(title = "部门管理", businessType = BusinessType.UPDATE) + @ApiOperation(value = "部门管理-修改部门", tags = "系统后台-权限管理") + @PutMapping("/edit") + public AjaxResult edit(@RequestParam("id")Long id, + @RequestParam("name")String name) { + //查看id是否存在 + SysDept sysDept = deptService.selectDeptById(id); + if (sysDept==null){ + throw new ServiceException("该部门未找到"); + } + //修改部门名称 + sysDept.setDeptName(name); + deptService.updateDeptName(sysDept); + return success(); + } + /** + * 删除部门 + */ + @PreAuthorize("@ss.hasPermi('permission:dept')") + @Log(title = "部门管理", businessType = BusinessType.DELETE) + @ApiOperation(value = "部门管理-删除部门", tags = "系统后台-权限管理") + @DeleteMapping("/{deptId}") + public AjaxResult remove(@PathVariable Long deptId) { + return toAjax(deptService.deleteDeptById(deptId)); } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java index 8be0f0e..92ec449 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java @@ -3,11 +3,12 @@ import java.util.Date; import java.util.List; import java.util.Set; + +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; 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.RequestBody; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import com.ruoyi.common.constant.Constants; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.entity.SysMenu; @@ -29,6 +30,9 @@ * * @author ruoyi */ +@Slf4j +@RequestMapping("/system") +@Api( tags = "后台-登录控制器") @RestController public class SysLoginController { @@ -54,6 +58,7 @@ * @return 结果 */ @PostMapping("/login") + @ApiOperation(value = "登录") public AjaxResult login(@RequestBody LoginBody loginBody) { AjaxResult ajax = AjaxResult.success(); @@ -87,8 +92,8 @@ ajax.put("user", user); ajax.put("roles", roles); ajax.put("permissions", permissions); - ajax.put("isDefaultModifyPwd", initPasswordIsModify(user.getPwdUpdateDate())); - ajax.put("isPasswordExpired", passwordIsExpiration(user.getPwdUpdateDate())); +/* ajax.put("isDefaultModifyPwd", initPasswordIsModify(user.getPwdUpdateDate())); + ajax.put("isPasswordExpired", passwordIsExpiration(user.getPwdUpdateDate()));*/ return ajax; } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysProfileController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysProfileController.java index cf3eafe..f6d7bce 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysProfileController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysProfileController.java @@ -1,6 +1,11 @@ package com.ruoyi.web.controller.system; import java.util.Map; + +import com.ruoyi.system.pojo.dto.UpdatePwdDTO; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; @@ -25,12 +30,16 @@ import com.ruoyi.framework.web.service.TokenService; import com.ruoyi.system.service.ISysUserService; +import javax.validation.Valid; + /** * 个人信息 业务处理 * * @author ruoyi */ @RestController +@Slf4j +@Api( tags = "后台-个人信息") @RequestMapping("/system/user/profile") public class SysProfileController extends BaseController { @@ -44,6 +53,7 @@ * 个人信息 */ @GetMapping + @ApiOperation(value = "个人信息") public AjaxResult profile() { LoginUser loginUser = getLoginUser(); @@ -57,7 +67,7 @@ /** * 修改用户 */ - @Log(title = "个人信息", businessType = BusinessType.UPDATE) + /* @Log(title = "个人信息", businessType = BusinessType.UPDATE) @PutMapping public AjaxResult updateProfile(@RequestBody SysUser user) { @@ -82,17 +92,18 @@ return success(); } return error("修改个人信息异常,请联系管理员"); - } + }*/ /** * 重置密码 */ @Log(title = "个人信息", businessType = BusinessType.UPDATE) @PutMapping("/updatePwd") - public AjaxResult updatePwd(@RequestBody Map<String, String> params) + @ApiOperation(value = "修改密码") + public AjaxResult updatePwd(@RequestBody @Valid UpdatePwdDTO updatePwdDTO) { - String oldPassword = params.get("oldPassword"); - String newPassword = params.get("newPassword"); + String oldPassword = updatePwdDTO.getOldPassword(); + String newPassword = updatePwdDTO.getNewPassword(); LoginUser loginUser = getLoginUser(); String userName = loginUser.getUsername(); String password = loginUser.getPassword(); @@ -119,7 +130,7 @@ /** * 头像上传 */ - @Log(title = "用户头像", businessType = BusinessType.UPDATE) + /*@Log(title = "用户头像", businessType = BusinessType.UPDATE) @PostMapping("/avatar") public AjaxResult avatar(@RequestParam("avatarfile") MultipartFile file) throws Exception { @@ -138,5 +149,5 @@ } } return error("上传图片异常,请联系管理员"); - } + }*/ } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRoleController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRoleController.java index 42d9e8f..4b00660 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRoleController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRoleController.java @@ -2,17 +2,23 @@ import java.util.List; import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.ruoyi.common.core.domain.R; +import com.ruoyi.system.pojo.dto.AddSysRoleDTO; +import com.ruoyi.system.pojo.dto.EditSysRoleDTO; +import com.ruoyi.system.pojo.vo.MenuTreeVO; +import com.ruoyi.system.pojo.vo.SysRolePageVO; +import com.ruoyi.system.pojo.vo.SysRoleVO; +import com.ruoyi.system.service.ISysMenuService; +import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.domain.AjaxResult; @@ -55,16 +61,16 @@ @Autowired private ISysDeptService deptService; - @PreAuthorize("@ss.hasPermi('system:role:list')") + /* @PreAuthorize("@ss.hasPermi('system:role:list')") @GetMapping("/list") public TableDataInfo list(SysRole role) { startPage(); List<SysRole> list = roleService.selectRoleList(role); return getDataTable(list); - } + }*/ - @Log(title = "角色管理", businessType = BusinessType.EXPORT) + /* @Log(title = "角色管理", businessType = BusinessType.EXPORT) @PreAuthorize("@ss.hasPermi('system:role:export')") @PostMapping("/export") public void export(HttpServletResponse response, SysRole role) @@ -72,23 +78,23 @@ List<SysRole> list = roleService.selectRoleList(role); ExcelUtil<SysRole> util = new ExcelUtil<SysRole>(SysRole.class); util.exportExcel(response, list, "角色数据"); - } + }*/ /** * 根据角色编号获取详细信息 */ - @PreAuthorize("@ss.hasPermi('system:role:query')") + /* @PreAuthorize("@ss.hasPermi('system:role:query')") @GetMapping(value = "/{roleId}") public AjaxResult getInfo(@PathVariable Long roleId) { roleService.checkRoleDataScope(roleId); return success(roleService.selectRoleById(roleId)); } - +*/ /** * 新增角色 */ - @PreAuthorize("@ss.hasPermi('system:role:add')") + /* @PreAuthorize("@ss.hasPermi('system:role:add')") @Log(title = "角色管理", businessType = BusinessType.INSERT) @PostMapping public AjaxResult add(@Validated @RequestBody SysRole role) @@ -104,12 +110,12 @@ role.setCreateBy(getUsername()); return toAjax(roleService.insertRole(role)); - } + }*/ /** * 修改保存角色 */ - @PreAuthorize("@ss.hasPermi('system:role:edit')") + /* @PreAuthorize("@ss.hasPermi('system:role:edit')") @Log(title = "角色管理", businessType = BusinessType.UPDATE) @PutMapping public AjaxResult edit(@Validated @RequestBody SysRole role) @@ -139,12 +145,12 @@ return success(); } return error("修改角色'" + role.getRoleName() + "'失败,请联系管理员"); - } + }*/ /** * 修改保存数据权限 */ - @PreAuthorize("@ss.hasPermi('system:role:edit')") + /*@PreAuthorize("@ss.hasPermi('system:role:edit')") @Log(title = "角色管理", businessType = BusinessType.UPDATE) @PutMapping("/dataScope") public AjaxResult dataScope(@RequestBody SysRole role) @@ -152,12 +158,12 @@ roleService.checkRoleAllowed(role); roleService.checkRoleDataScope(role.getRoleId()); return toAjax(roleService.authDataScope(role)); - } + }*/ /** * 状态修改 */ - @PreAuthorize("@ss.hasPermi('system:role:edit')") + /*@PreAuthorize("@ss.hasPermi('system:role:edit')") @Log(title = "角色管理", businessType = BusinessType.UPDATE) @PutMapping("/changeStatus") public AjaxResult changeStatus(@RequestBody SysRole role) @@ -166,45 +172,45 @@ roleService.checkRoleDataScope(role.getRoleId()); role.setUpdateBy(getUsername()); return toAjax(roleService.updateRoleStatus(role)); - } + }*/ /** * 删除角色 */ - @PreAuthorize("@ss.hasPermi('system:role:remove')") + /* @PreAuthorize("@ss.hasPermi('system:role:remove')") @Log(title = "角色管理", businessType = BusinessType.DELETE) @DeleteMapping("/{roleIds}") public AjaxResult remove(@PathVariable Long[] roleIds) { return toAjax(roleService.deleteRoleByIds(roleIds)); - } + }*/ /** * 获取角色选择框列表 */ - @PreAuthorize("@ss.hasPermi('system:role:query')") + /* @PreAuthorize("@ss.hasPermi('system:role:query')") @GetMapping("/optionselect") public AjaxResult optionselect() { return success(roleService.selectRoleAll()); - } + }*/ /** * 查询已分配用户角色列表 */ - @PreAuthorize("@ss.hasPermi('system:role:list')") + /* @PreAuthorize("@ss.hasPermi('system:role:list')") @GetMapping("/authUser/allocatedList") public TableDataInfo allocatedList(SysUser user) { startPage(); List<SysUser> list = userService.selectAllocatedList(user); return getDataTable(list); - } + }*/ /** * 查询未分配用户角色列表 */ - @PreAuthorize("@ss.hasPermi('system:role:list')") + /* @PreAuthorize("@ss.hasPermi('system:role:list')") @GetMapping("/authUser/unallocatedList") public TableDataInfo unallocatedList(SysUser user) { @@ -212,45 +218,45 @@ List<SysUser> list = userService.selectUnallocatedList(user); return getDataTable(list); } - +*/ /** * 取消授权用户 */ - @PreAuthorize("@ss.hasPermi('system:role:edit')") + /*@PreAuthorize("@ss.hasPermi('system:role:edit')") @Log(title = "角色管理", businessType = BusinessType.GRANT) @PutMapping("/authUser/cancel") public AjaxResult cancelAuthUser(@RequestBody SysUserRole userRole) { return toAjax(roleService.deleteAuthUser(userRole)); } - +*/ /** * 批量取消授权用户 */ - @PreAuthorize("@ss.hasPermi('system:role:edit')") + /* @PreAuthorize("@ss.hasPermi('system:role:edit')") @Log(title = "角色管理", businessType = BusinessType.GRANT) @PutMapping("/authUser/cancelAll") public AjaxResult cancelAuthUserAll(Long roleId, Long[] userIds) { return toAjax(roleService.deleteAuthUsers(roleId, userIds)); - } + }*/ /** * 批量选择用户授权 */ - @PreAuthorize("@ss.hasPermi('system:role:edit')") + /* @PreAuthorize("@ss.hasPermi('system:role:edit')") @Log(title = "角色管理", businessType = BusinessType.GRANT) @PutMapping("/authUser/selectAll") public AjaxResult selectAuthUserAll(Long roleId, Long[] userIds) { roleService.checkRoleDataScope(roleId); return toAjax(roleService.insertAuthUsers(roleId, userIds)); - } + }*/ /** * 获取对应角色部门树列表 */ - @PreAuthorize("@ss.hasPermi('system:role:query')") + /* @PreAuthorize("@ss.hasPermi('system:role:query')") @GetMapping(value = "/deptTree/{roleId}") public AjaxResult deptTree(@PathVariable("roleId") Long roleId) { @@ -258,5 +264,84 @@ ajax.put("checkedKeys", deptService.selectDeptListByRoleId(roleId)); ajax.put("depts", deptService.selectDeptTreeList(new SysDept())); return ajax; + }*/ + + /** + * 分页查询 + */ + + @GetMapping("/page") + @PreAuthorize("@ss.hasPermi('permission:role')") + @ApiOperation(value = "角色管理-分页列表", tags = "系统后台-权限管理") + public R<IPage<SysRolePageVO>> page(@RequestParam(value = "pageNum",defaultValue = "0")Integer pageNum, + @RequestParam(value = "pageSize",defaultValue="10")Integer pageSize, + @RequestParam(value = "name",required = false)String name) { + IPage<SysRolePageVO> iPage = new Page<>(pageNum, pageSize); + return R.ok(roleService.page(iPage,name)); + } + + @Autowired + private ISysMenuService menuService; + /** + * 菜单项结构(下拉框) + */ + @GetMapping("/tree") + @ApiOperation(value = "角色管理-菜单列表树", tags = {"系统后台-权限管理","系统后台-首页"}) + public R<List<MenuTreeVO>> tree() { + LoginUser loginUser = (LoginUser) SecurityContextHolder.getContext().getAuthentication().getPrincipal(); + return R.ok(menuService.tree(loginUser.getUserId())); + } + /** + * 新增 + */ + @ApiOperation(value = "新增角色", tags = "系统后台-权限管理") + @PreAuthorize("@ss.hasPermi('permission:role')") + @Log(title = "角色管理", businessType = BusinessType.INSERT) + @PostMapping("/add") + public R<Void> add(@Valid @RequestBody AddSysRoleDTO dto) { + roleService.add(dto); + return R.ok(); + + } + + /** + * 查看详情 + */ + @ApiOperation(value = "查看详情", tags = "系统后台-权限管理") + @PreAuthorize("@ss.hasPermi('permission:role')") + @Log(title = "角色管理", businessType = BusinessType.DELETE) + @GetMapping("/{roleId}") + public R<SysRoleVO> getById(@PathVariable Long roleId) { + + return R.ok(roleService.getById(roleId)); + } + /** + * 修改 + */ + @ApiOperation(value = "修改角色", tags = "系统后台-权限管理") + @PreAuthorize("@ss.hasPermi('permission:role')") + @Log(title = "角色管理", businessType = BusinessType.INSERT) + @PutMapping("/edit") + public R<Void> edit(@Valid @RequestBody EditSysRoleDTO dto) { + roleService.edit(dto); + // 更新缓存用户权限 + LoginUser loginUser = getLoginUser(); + if (StringUtils.isNotNull(loginUser.getUser()) && !loginUser.getUser().isAdmin()) { + loginUser.setUser(userService.selectUserByUserName(loginUser.getUser().getUserName())); + loginUser.setPermissions(permissionService.getMenuPermission(loginUser.getUser())); + tokenService.setLoginUser(loginUser); + } + return R.ok(); + } + /** + * 删除角色 + */ + @ApiOperation(value = "删除角色", tags = "系统后台-权限管理") + @PreAuthorize("@ss.hasPermi('permission:role')") + @Log(title = "角色管理", businessType = BusinessType.DELETE) + @DeleteMapping("/{roleId}") + public R<Void> remove(@PathVariable Long roleId) { + roleService.deleteRoleById(roleId); + return R.ok(); } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java index 130c438..914d6e7 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java @@ -1,20 +1,26 @@ package com.ruoyi.web.controller.system; import java.util.List; +import java.util.Objects; import java.util.stream.Collectors; import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.ruoyi.common.core.domain.R; +import com.ruoyi.system.pojo.dto.AddSysUserDTO; +import com.ruoyi.system.pojo.dto.EditSysUserDTO; +import com.ruoyi.system.pojo.vo.SysDeptPageVO; +import com.ruoyi.system.pojo.vo.SysRoleVO; +import com.ruoyi.system.pojo.vo.SysUserPageListVO; +import com.ruoyi.system.pojo.vo.SysUserVO; +import io.swagger.annotations.ApiOperation; import org.apache.commons.lang3.ArrayUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.core.controller.BaseController; @@ -56,16 +62,16 @@ /** * 获取用户列表 */ - @PreAuthorize("@ss.hasPermi('system:user:list')") + /*@PreAuthorize("@ss.hasPermi('system:user:list')") @GetMapping("/list") public TableDataInfo list(SysUser user) { startPage(); List<SysUser> list = userService.selectUserList(user); return getDataTable(list); - } + }*/ - @Log(title = "用户管理", businessType = BusinessType.EXPORT) +/* @Log(title = "用户管理", businessType = BusinessType.EXPORT) @PreAuthorize("@ss.hasPermi('system:user:export')") @PostMapping("/export") public void export(HttpServletResponse response, SysUser user) @@ -73,8 +79,9 @@ List<SysUser> list = userService.selectUserList(user); ExcelUtil<SysUser> util = new ExcelUtil<SysUser>(SysUser.class); util.exportExcel(response, list, "用户数据"); - } + }*/ +/* @Log(title = "用户管理", businessType = BusinessType.IMPORT) @PreAuthorize("@ss.hasPermi('system:user:import')") @PostMapping("/importData") @@ -86,18 +93,19 @@ String message = userService.importUser(userList, updateSupport, operName); return success(message); } +*/ - @PostMapping("/importTemplate") + /* @PostMapping("/importTemplate") public void importTemplate(HttpServletResponse response) { ExcelUtil<SysUser> util = new ExcelUtil<SysUser>(SysUser.class); util.importTemplateExcel(response, "用户数据"); } - +*/ /** * 根据用户编号获取详细信息 */ - @PreAuthorize("@ss.hasPermi('system:user:query')") + /* @PreAuthorize("@ss.hasPermi('system:user:query')") @GetMapping(value = { "/", "/{userId}" }) public AjaxResult getInfo(@PathVariable(value = "userId", required = false) Long userId) { @@ -114,12 +122,12 @@ ajax.put("roles", SysUser.isAdmin(userId) ? roles : roles.stream().filter(r -> !r.isAdmin()).collect(Collectors.toList())); ajax.put("posts", postService.selectPostAll()); return ajax; - } + }*/ /** * 新增用户 */ - @PreAuthorize("@ss.hasPermi('system:user:add')") +/* @PreAuthorize("@ss.hasPermi('system:user:add')") @Log(title = "用户管理", businessType = BusinessType.INSERT) @PostMapping public AjaxResult add(@Validated @RequestBody SysUser user) @@ -141,12 +149,12 @@ user.setCreateBy(getUsername()); user.setPassword(SecurityUtils.encryptPassword(user.getPassword())); return toAjax(userService.insertUser(user)); - } + }*/ /** * 修改用户 */ - @PreAuthorize("@ss.hasPermi('system:user:edit')") + /* @PreAuthorize("@ss.hasPermi('system:user:edit')") @Log(title = "用户管理", businessType = BusinessType.UPDATE) @PutMapping public AjaxResult edit(@Validated @RequestBody SysUser user) @@ -169,12 +177,12 @@ } user.setUpdateBy(getUsername()); return toAjax(userService.updateUser(user)); - } + }*/ /** * 删除用户 */ - @PreAuthorize("@ss.hasPermi('system:user:remove')") + /*@PreAuthorize("@ss.hasPermi('system:user:remove')") @Log(title = "用户管理", businessType = BusinessType.DELETE) @DeleteMapping("/{userIds}") public AjaxResult remove(@PathVariable Long[] userIds) @@ -185,11 +193,11 @@ } return toAjax(userService.deleteUserByIds(userIds)); } - +*/ /** * 重置密码 */ - @PreAuthorize("@ss.hasPermi('system:user:resetPwd')") + /* @PreAuthorize("@ss.hasPermi('system:user:resetPwd')") @Log(title = "用户管理", businessType = BusinessType.UPDATE) @PutMapping("/resetPwd") public AjaxResult resetPwd(@RequestBody SysUser user) @@ -199,12 +207,12 @@ user.setPassword(SecurityUtils.encryptPassword(user.getPassword())); user.setUpdateBy(getUsername()); return toAjax(userService.resetPwd(user)); - } + }*/ /** * 状态修改 */ - @PreAuthorize("@ss.hasPermi('system:user:edit')") + /* @PreAuthorize("@ss.hasPermi('system:user:edit')") @Log(title = "用户管理", businessType = BusinessType.UPDATE) @PutMapping("/changeStatus") public AjaxResult changeStatus(@RequestBody SysUser user) @@ -213,12 +221,12 @@ userService.checkUserDataScope(user.getUserId()); user.setUpdateBy(getUsername()); return toAjax(userService.updateUserStatus(user)); - } + }*/ /** * 根据用户编号获取授权角色 */ - @PreAuthorize("@ss.hasPermi('system:user:query')") + /* @PreAuthorize("@ss.hasPermi('system:user:query')") @GetMapping("/authRole/{userId}") public AjaxResult authRole(@PathVariable("userId") Long userId) { @@ -228,11 +236,11 @@ ajax.put("user", user); ajax.put("roles", SysUser.isAdmin(userId) ? roles : roles.stream().filter(r -> !r.isAdmin()).collect(Collectors.toList())); return ajax; - } + }*/ /** * 用户授权角色 - */ + /* *//* @PreAuthorize("@ss.hasPermi('system:user:edit')") @Log(title = "用户管理", businessType = BusinessType.GRANT) @PutMapping("/authRole") @@ -242,15 +250,122 @@ roleService.checkRoleDataScope(roleIds); userService.insertUserAuth(userId, roleIds); return success(); - } + }*/ /** * 获取部门树列表 */ - @PreAuthorize("@ss.hasPermi('system:user:list')") + /* @PreAuthorize("@ss.hasPermi('system:user:list')") @GetMapping("/deptTree") public AjaxResult deptTree(SysDept dept) { return success(deptService.selectDeptTreeList(dept)); + }*/ + + /** + * 分页 + */ + @ApiOperation(value = "账号管理-获取账号分页列表", tags = "系统后台-权限管理") + @PreAuthorize("@ss.hasPermi('permission:account')") + @GetMapping("/list") + public R<IPage<SysUserPageListVO>> getSysUserPageList(@RequestParam("pageNum")Integer pageNum, + @RequestParam("pageSize")Integer pageSize, + @RequestParam("nickName")String nickName, + @RequestParam("phone")Integer phone, + @RequestParam("status")String status) { + IPage<SysUserPageListVO> page=new Page<>(pageNum,pageSize); + return R.ok(userService.getSysUserPageList(page,nickName,phone,status)); + } + + /** + * 角色下拉框 + */ + @ApiOperation(value = "账号管理-获取角色下拉框", tags = "系统后台-权限管理") + @PreAuthorize("@ss.hasPermi('permission:account')") + @GetMapping("/getOptionSelect") + public R<List<SysRoleVO>> getOptionSelect() { + return R.ok(roleService.getOptionSelect()); + } + + /** + * 部门下拉框 + */ + @PreAuthorize("@ss.hasPermi('permission:account')") + @ApiOperation(value = "账号管理-部门选择框", tags = "系统后台-权限管理") + @GetMapping("/list") + public AjaxResult list() { + List<SysDeptPageVO> list = deptService.getDeptList(); + return success(list); + } + /** + * 根据用户编号回显 + */ + @ApiOperation(value = "账号管理-查看详情(回显)", tags = "系统后台-权限管理") + @PreAuthorize("@ss.hasPermi('permission:account')") + @GetMapping(value ="/{userId}") + public R<SysUserVO> getInfo(@PathVariable(value = "userId") Long userId) { + return userService.getInfo(userId); + + } + /** + * 新增 + */ + @ApiOperation(value = "账号管理-查看详情(回显)", tags = "系统后台-权限管理") + @PreAuthorize("@ss.hasPermi('permission:account')") + @Log(title = "账号管理", businessType = BusinessType.INSERT) + @PostMapping("/add") + public R<Void> add(@Valid @RequestBody AddSysUserDTO dto) { + userService.add(dto); + return R.ok(); + } + /** + * 编辑 + */ + @ApiOperation(value = "账号管理-修改用户", tags = "系统后台-权限管理") + @PreAuthorize("@ss.hasPermi('permission:account')") + @Log(title = "账号管理", businessType = BusinessType.UPDATE) + @PostMapping("/edit") + public R<Void> edit(@Valid @RequestBody EditSysUserDTO dto) { + userService.edit(dto); + return R.ok(); + } + /** + * 冻结 + */ + @ApiOperation(value = "账号管理-状态修改", tags = "系统后台-权限管理") + @PreAuthorize("@ss.hasPermi('permission:account')") + @Log(title = "账号管理", businessType = BusinessType.UPDATE) + @PutMapping("/changeStatus/{userId}") + public R<Void> changeStatus(@PathVariable("userId") Long userId) { + if (Objects.equals(userId, getUserId())) { + return R.fail("当前用户不能操作"); + } + userService.changeStatus(userId); + return R.ok(); + } + /** + * 删除 + */ + @ApiOperation(value = "账号管理-删除用户", tags = "系统后台-权限管理") + @PreAuthorize("@ss.hasPermi('permission:account')") + @Log(title = "账号管理", businessType = BusinessType.DELETE) + @DeleteMapping("/{userId}") + public R remove(@PathVariable("userId") Long userId) { + if (Objects.equals(userId, getUserId())) { + return R.fail("当前用户不能删除"); + } + return R.ok(userService.deleteUserById(userId)); + } + + /** + * 重置密码 + */ + @ApiOperation(value = "账号管理-重置密码", tags = "系统后台-权限管理") + @PreAuthorize("@ss.hasPermi('permission:account')") + @Log(title = "账号管理", businessType = BusinessType.UPDATE) + @PutMapping("/resetPassword/{userId}") + public R<Void> resetPassword(@PathVariable("userId") Long userId) { + userService.resetPassword(userId); + return R.ok(); } } diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/constant/UserConstants.java b/ruoyi-common/src/main/java/com/ruoyi/common/constant/UserConstants.java index 8dc7faa..c5d1429 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/constant/UserConstants.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/constant/UserConstants.java @@ -77,5 +77,5 @@ * 密码长度限制 */ public static final int PASSWORD_MIN_LENGTH = 5; - public static final int PASSWORD_MAX_LENGTH = 20; + public static final int PASSWORD_MAX_LENGTH = 32; } diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/SecurityUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/SecurityUtils.java index 0d3ac5f..7bcc2ea 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/SecurityUtils.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/SecurityUtils.java @@ -3,6 +3,8 @@ import java.util.Collection; import java.util.List; import java.util.stream.Collectors; + +import com.ruoyi.common.utils.sign.Md5Utils; import org.springframework.security.core.Authentication; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; @@ -175,4 +177,12 @@ .anyMatch(x -> Constants.SUPER_ADMIN.equals(x) || PatternMatchUtils.simpleMatch(x, role)); } + public static void main(String[] args) { + String hash = Md5Utils.hash("123456"); + System.out.println(hash); + System.out.println(encryptPassword(hash)); + + System.out.println(matchesPassword(hash, "$2a$10$VhdvkOtOTUq1NndvwPC36./D9bPVhDJWbt.tVWtGdqW3.sA07Ikx.")); + } + } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/AppUserMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/AppUserMapper.java new file mode 100644 index 0000000..bf2fa53 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/AppUserMapper.java @@ -0,0 +1,16 @@ +package com.ruoyi.system.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.ruoyi.system.domain.Agreement; +import com.ruoyi.system.domain.User; +import com.ruoyi.system.pojo.dto.AppUserPageDTO; +import com.ruoyi.system.pojo.vo.AppUserPageVO; +import com.ruoyi.system.pojo.vo.SysDeptPageVO; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +@Mapper +public interface AppUserMapper extends BaseMapper<User> { + IPage<AppUserPageVO> getAppUserPage(@Param("page") IPage<SysDeptPageVO> iPage, @Param("dto") AppUserPageDTO dto); +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDeptMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDeptMapper.java index 384a9b6..1769f56 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDeptMapper.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDeptMapper.java @@ -1,6 +1,9 @@ package com.ruoyi.system.mapper; import java.util.List; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.ruoyi.system.pojo.vo.SysDeptPageVO; import org.apache.ibatis.annotations.Param; import com.ruoyi.common.core.domain.entity.SysDept; @@ -114,5 +117,13 @@ * @param deptId 部门ID * @return 结果 */ - public int deleteDeptById(Long deptId); + public int deleteDeptById(@Param("deptId")Long deptId); + + IPage<SysDeptPageVO> page(@Param("page")IPage<SysDeptPageVO> page, @Param("name")String name); + + SysDept selectDeptByName(@Param("name")String name); + + void updateDeptName(@Param("sysDept")SysDept sysDept); + + List<SysDeptPageVO> getDeptList(); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysMenuMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysMenuMapper.java index 99c0c50..5ae6e43 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysMenuMapper.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysMenuMapper.java @@ -1,6 +1,8 @@ package com.ruoyi.system.mapper; import java.util.List; + +import com.ruoyi.system.pojo.vo.MenuTreeVO; import org.apache.ibatis.annotations.Param; import com.ruoyi.common.core.domain.entity.SysMenu; @@ -122,4 +124,8 @@ * @return 结果 */ public SysMenu checkMenuNameUnique(@Param("menuName") String menuName, @Param("parentId") Long parentId); + + List<MenuTreeVO> selectMenusByParentId(@Param("menuId")Long menuId); + + List<MenuTreeVO> getAllRootMenu(); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysRoleMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysRoleMapper.java index cf2bd8c..7ae9261 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysRoleMapper.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysRoleMapper.java @@ -1,7 +1,12 @@ package com.ruoyi.system.mapper; import java.util.List; + +import com.baomidou.mybatisplus.core.metadata.IPage; import com.ruoyi.common.core.domain.entity.SysRole; +import com.ruoyi.system.pojo.vo.SysRolePageVO; +import com.ruoyi.system.pojo.vo.SysRoleVO; +import org.apache.ibatis.annotations.Param; /** * 角色表 数据层 @@ -104,4 +109,8 @@ * @return 结果 */ public int deleteRoleByIds(Long[] roleIds); + + IPage<SysRolePageVO> page(@Param("page")IPage<SysRolePageVO> page, @Param("name")String name); + + List<SysRoleVO> getOptionSelect(); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysRoleMenuMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysRoleMenuMapper.java index 6602bee..c4db918 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysRoleMenuMapper.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysRoleMenuMapper.java @@ -2,6 +2,9 @@ import java.util.List; import com.ruoyi.system.domain.SysRoleMenu; +import org.apache.ibatis.annotations.Param; + +import javax.validation.constraints.NotEmpty; /** * 角色与菜单关联表 数据层 @@ -41,4 +44,8 @@ * @return 结果 */ public int batchRoleMenu(List<SysRoleMenu> roleMenuList); + + List<Long> selectMenuIdsByRoleIds(@Param("roleList") List<Long> roleList); + + void insert(@Param("roleId") Long roleId, @Param("menuIds") List<Long> menuIds); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java index 76e1c79..66137bb 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java @@ -1,8 +1,15 @@ package com.ruoyi.system.mapper; import java.util.List; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.ruoyi.common.core.domain.R; +import com.ruoyi.system.pojo.vo.SysUserPageListVO; +import com.ruoyi.system.pojo.vo.SysUserVO; import org.apache.ibatis.annotations.Param; import com.ruoyi.common.core.domain.entity.SysUser; + +import javax.validation.constraints.NotEmpty; /** * 用户表 数据层 @@ -124,4 +131,10 @@ * @return 结果 */ public SysUser checkEmailUnique(String email); + + IPage<SysUserPageListVO> getSysUserPageList(@Param("page") IPage<SysUserPageListVO> page, @Param("nickName") String nickName,@Param("phone") Integer phone, @Param("status") String status); + + R<SysUserVO> getSysUserVO(@Param("userId") Long userId); + + SysUser selectuserByPhone(@Param("phonenumber") String phonenumber); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserRoleMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserRoleMapper.java index 3143ec8..eb50a20 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserRoleMapper.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserRoleMapper.java @@ -1,8 +1,12 @@ package com.ruoyi.system.mapper; import java.util.List; + +import com.ruoyi.common.core.domain.entity.SysRole; import org.apache.ibatis.annotations.Param; import com.ruoyi.system.domain.SysUserRole; + +import javax.validation.constraints.NotNull; /** * 用户与角色关联表 数据层 @@ -59,4 +63,8 @@ * @return 结果 */ public int deleteUserRoleInfos(@Param("roleId") Long roleId, @Param("userIds") Long[] userIds); + + void insert(@Param("userId")Long userId, @Param("roleId")Long roleId); + + SysRole selectRoleByUserId(@Param("userId")Long userId); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/pojo/dto/AddSysRoleDTO.java b/ruoyi-system/src/main/java/com/ruoyi/system/pojo/dto/AddSysRoleDTO.java new file mode 100644 index 0000000..5cba81a --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/pojo/dto/AddSysRoleDTO.java @@ -0,0 +1,19 @@ +package com.ruoyi.system.pojo.dto; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotEmpty; +import java.util.List; + +@Data +@ApiModel("添加角色DTO") +public class AddSysRoleDTO { + @ApiModelProperty("角色名称") + @NotEmpty(message = "角色名称不能为空") + private String roleName; + @ApiModelProperty("菜单权限集合") + @NotEmpty(message = "菜单权限集合不能为空") + private List<Long> menuIds; +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/pojo/dto/AddSysUserDTO.java b/ruoyi-system/src/main/java/com/ruoyi/system/pojo/dto/AddSysUserDTO.java new file mode 100644 index 0000000..ef10001 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/pojo/dto/AddSysUserDTO.java @@ -0,0 +1,26 @@ +package com.ruoyi.system.pojo.dto; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; + +@Data +@ApiModel("添加用户DTO") +public class AddSysUserDTO{ + @ApiModelProperty(value = "姓名") + @NotEmpty(message = "姓名不能为空") + private String nickName; + @ApiModelProperty(value = "联系电话") + @NotEmpty(message = "联系电话不能为空") + private String phonenumber; + @ApiModelProperty(value = "所在部门id") + @NotNull(message = "所在部门不能为空") + private Long deptId; + @ApiModelProperty(value = "所属角色id") + @NotNull(message = "所属角色不能为空") + private Long roleId; + +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/pojo/dto/AppUserPageDTO.java b/ruoyi-system/src/main/java/com/ruoyi/system/pojo/dto/AppUserPageDTO.java new file mode 100644 index 0000000..550bed8 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/pojo/dto/AppUserPageDTO.java @@ -0,0 +1,30 @@ +package com.ruoyi.system.pojo.dto; + +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.time.LocalDateTime; + +@Data +@ApiModel("app用户分页DTO") +public class AppUserPageDTO { + @ApiModelProperty("页码") + private Integer pageNum=0; + @ApiModelProperty("分页大小") + private Integer pageSize=10; + @ApiModelProperty("用户姓名") + private String username; + @ApiModelProperty("联系电话") + private String phone; + @ApiModelProperty("状态") + private Integer status; + @ApiModelProperty("起始时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime startTime; + @ApiModelProperty("结束时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime endTime; + +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/pojo/dto/EditSysRoleDTO.java b/ruoyi-system/src/main/java/com/ruoyi/system/pojo/dto/EditSysRoleDTO.java new file mode 100644 index 0000000..9129085 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/pojo/dto/EditSysRoleDTO.java @@ -0,0 +1,14 @@ +package com.ruoyi.system.pojo.dto; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +@ApiModel("编辑角色DTO") +public class EditSysRoleDTO extends AddSysRoleDTO { + @ApiModelProperty("角色id") + private Long roleId; +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/pojo/dto/EditSysUserDTO.java b/ruoyi-system/src/main/java/com/ruoyi/system/pojo/dto/EditSysUserDTO.java new file mode 100644 index 0000000..dee3e8d --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/pojo/dto/EditSysUserDTO.java @@ -0,0 +1,17 @@ +package com.ruoyi.system.pojo.dto; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +import javax.validation.constraints.NotNull; + +@Getter +@Setter +@ApiModel("编辑用户DTO") +public class EditSysUserDTO extends AddSysUserDTO { + @ApiModelProperty(value = "用户id") + @NotNull(message = "用户id不能为空") + private Long userId; +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/pojo/dto/UpdatePwdDTO.java b/ruoyi-system/src/main/java/com/ruoyi/system/pojo/dto/UpdatePwdDTO.java new file mode 100644 index 0000000..372f15e --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/pojo/dto/UpdatePwdDTO.java @@ -0,0 +1,18 @@ +package com.ruoyi.system.pojo.dto; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotEmpty; + +@Data +@ApiModel("修改密码DTO") +public class UpdatePwdDTO { + @NotEmpty(message = "旧密码不能为空") + @ApiModelProperty("旧密码") + private String oldPassword; + @NotEmpty(message = "新密码不能为空") + @ApiModelProperty("新密码") + private String newPassword; +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/pojo/vo/AppUserPageVO.java b/ruoyi-system/src/main/java/com/ruoyi/system/pojo/vo/AppUserPageVO.java new file mode 100644 index 0000000..4c5674a --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/pojo/vo/AppUserPageVO.java @@ -0,0 +1,34 @@ +package com.ruoyi.system.pojo.vo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; +import java.time.LocalDateTime; + +@Data +@ApiModel("appUser分页VO") +public class AppUserPageVO { + @ApiModelProperty("用户id") + private String id; + @ApiModelProperty("用户名") + private String userName; + @ApiModelProperty("联系电话") + private String phone; + @ApiModelProperty("注册时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime createTime; + @ApiModelProperty("账户余额") + private BigDecimal balance; + @ApiModelProperty("已绑定用户数") + private Integer bingDingUser; + @ApiModelProperty("买公司完成次数") + private Integer buyNum; + @ApiModelProperty("卖公司完成次数") + private Integer sellNum; + @ApiModelProperty("状态(1正常 2冻结 3注销) ") + private Integer status; + +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/pojo/vo/MenuTreeVO.java b/ruoyi-system/src/main/java/com/ruoyi/system/pojo/vo/MenuTreeVO.java new file mode 100644 index 0000000..9752898 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/pojo/vo/MenuTreeVO.java @@ -0,0 +1,28 @@ +package com.ruoyi.system.pojo.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.ArrayList; +import java.util.List; + +@Data +@ApiModel("菜单树VO") +public class MenuTreeVO { + /** 菜单ID */ + @ApiModelProperty("菜单ID") + private Long menuId; + /** 菜单名称 */ + @ApiModelProperty("菜单名称") + private String menuName; + /** 路由地址 */ + @ApiModelProperty("路由地址") + private String path; + /** 类型(M目录 C菜单 F按钮) */ + @ApiModelProperty("类型(M目录 C菜单 F按钮)") + private String menuType; + /** 子菜单 */ + @ApiModelProperty("子菜单") + private List<MenuTreeVO> children = new ArrayList<MenuTreeVO>(); +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/pojo/vo/SysDeptPageVO.java b/ruoyi-system/src/main/java/com/ruoyi/system/pojo/vo/SysDeptPageVO.java new file mode 100644 index 0000000..ba7ac7d --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/pojo/vo/SysDeptPageVO.java @@ -0,0 +1,15 @@ +package com.ruoyi.system.pojo.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel("部门分页VO") +public class SysDeptPageVO { + @ApiModelProperty("部门id") + private Long deptId; + + @ApiModelProperty("部门名称") + private String deptName; +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/pojo/vo/SysRolePageVO.java b/ruoyi-system/src/main/java/com/ruoyi/system/pojo/vo/SysRolePageVO.java new file mode 100644 index 0000000..1489a55 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/pojo/vo/SysRolePageVO.java @@ -0,0 +1,17 @@ +package com.ruoyi.system.pojo.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel("角色分页列表") +public class SysRolePageVO { + @ApiModelProperty("角色序号") + private Long roleId; + + @ApiModelProperty("角色名称") + private String roleName; + + +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/pojo/vo/SysRoleVO.java b/ruoyi-system/src/main/java/com/ruoyi/system/pojo/vo/SysRoleVO.java new file mode 100644 index 0000000..d55fc93 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/pojo/vo/SysRoleVO.java @@ -0,0 +1,18 @@ +package com.ruoyi.system.pojo.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +@Data +@ApiModel("查看角色详情VO") +public class SysRoleVO { + @ApiModelProperty("角色id") + private Long roleId; + @ApiModelProperty("角色名称") + private String roleName; + @ApiModelProperty("菜单权限集合") + private List<Long> menuIdList; +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/pojo/vo/SysUserPageListVO.java b/ruoyi-system/src/main/java/com/ruoyi/system/pojo/vo/SysUserPageListVO.java new file mode 100644 index 0000000..0563437 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/pojo/vo/SysUserPageListVO.java @@ -0,0 +1,24 @@ +package com.ruoyi.system.pojo.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel("用户账号分页列表VO") +public class SysUserPageListVO { + @ApiModelProperty(value = "用户id") + private Long userId; + @ApiModelProperty(value = "用户名称") + private String nickName; + @ApiModelProperty(value = "联系电话") + private String phonenumber; + + @ApiModelProperty(value = "所在部门") + private String deptName; + + @ApiModelProperty(value = "所属角色") + private String roleName; + @ApiModelProperty(value = "账号状态 0=正常,1=停用") + private String status; +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/pojo/vo/SysUserVO.java b/ruoyi-system/src/main/java/com/ruoyi/system/pojo/vo/SysUserVO.java new file mode 100644 index 0000000..6780183 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/pojo/vo/SysUserVO.java @@ -0,0 +1,16 @@ +package com.ruoyi.system.pojo.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +@ApiModel("用户账号分页列表VO") +public class SysUserVO extends SysUserPageListVO{ + @ApiModelProperty(value = "所在部门id") + private Long deptId; + @ApiModelProperty(value = "所属角色id") + private Long roleId; +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/AppUserService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/AppUserService.java new file mode 100644 index 0000000..6b1fffa --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/AppUserService.java @@ -0,0 +1,14 @@ +package com.ruoyi.system.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.IService; +import com.ruoyi.system.domain.Agreement; +import com.ruoyi.system.domain.User; +import com.ruoyi.system.pojo.dto.AddAgreementDTO; +import com.ruoyi.system.pojo.dto.AppUserPageDTO; +import com.ruoyi.system.pojo.vo.AppUserPageVO; + + +public interface AppUserService extends IService<User> { + IPage<AppUserPageVO> getAppUserPage(AppUserPageDTO getAppUserPage); +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDeptService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDeptService.java index f228208..c9dd201 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDeptService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDeptService.java @@ -1,8 +1,11 @@ package com.ruoyi.system.service; import java.util.List; + +import com.baomidou.mybatisplus.core.metadata.IPage; import com.ruoyi.common.core.domain.TreeSelect; import com.ruoyi.common.core.domain.entity.SysDept; +import com.ruoyi.system.pojo.vo.SysDeptPageVO; /** * 部门管理 服务层 @@ -121,4 +124,12 @@ * @return 结果 */ public int deleteDeptById(Long deptId); + + IPage<SysDeptPageVO> page(IPage<SysDeptPageVO> iPage, String name); + + void add(String name); + + void updateDeptName(SysDept sysDept); + + List<SysDeptPageVO> getDeptList(); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysMenuService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysMenuService.java index 7d60696..9b68794 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysMenuService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysMenuService.java @@ -5,6 +5,7 @@ import com.ruoyi.common.core.domain.TreeSelect; import com.ruoyi.common.core.domain.entity.SysMenu; import com.ruoyi.system.domain.vo.RouterVo; +import com.ruoyi.system.pojo.vo.MenuTreeVO; /** * 菜单 业务层 @@ -141,4 +142,6 @@ * @return 结果 */ public boolean checkMenuNameUnique(SysMenu menu); + + List<MenuTreeVO> tree(Long userId); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysRoleService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysRoleService.java index 9185cce..036a46e 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysRoleService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysRoleService.java @@ -2,8 +2,16 @@ import java.util.List; import java.util.Set; + +import com.baomidou.mybatisplus.core.metadata.IPage; import com.ruoyi.common.core.domain.entity.SysRole; import com.ruoyi.system.domain.SysUserRole; +import com.ruoyi.system.pojo.dto.AddSysRoleDTO; +import com.ruoyi.system.pojo.dto.EditSysRoleDTO; +import com.ruoyi.system.pojo.vo.SysRolePageVO; +import com.ruoyi.system.pojo.vo.SysRoleVO; + +import javax.validation.Valid; /** * 角色业务层 @@ -170,4 +178,14 @@ * @return 结果 */ public int insertAuthUsers(Long roleId, Long[] userIds); + + IPage<SysRolePageVO> page(IPage<SysRolePageVO> iPage, String name); + + void add( AddSysRoleDTO dto); + + SysRoleVO getById(Long roleId); + + void edit(EditSysRoleDTO dto); + + List<SysRoleVO> getOptionSelect(); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java index 10bc2ab..6b71ba9 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java @@ -1,7 +1,16 @@ package com.ruoyi.system.service; import java.util.List; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.domain.entity.SysUser; +import com.ruoyi.system.pojo.dto.AddSysUserDTO; +import com.ruoyi.system.pojo.dto.EditSysUserDTO; +import com.ruoyi.system.pojo.vo.SysUserPageListVO; +import com.ruoyi.system.pojo.vo.SysUserVO; + +import javax.validation.Valid; /** * 用户 业务层 @@ -203,4 +212,16 @@ * @return 结果 */ public String importUser(List<SysUser> userList, Boolean isUpdateSupport, String operName); + + IPage<SysUserPageListVO> getSysUserPageList(IPage<SysUserPageListVO> page, String nickName, Integer phone, String status); + + R<SysUserVO> getInfo(Long userId); + + void add( AddSysUserDTO dto); + + void edit( EditSysUserDTO dto); + + void changeStatus(Long userId); + + void resetPassword(Long userId); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/AppUserServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/AppUserServiceImpl.java new file mode 100644 index 0000000..49bf2ad --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/AppUserServiceImpl.java @@ -0,0 +1,31 @@ +package com.ruoyi.system.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ruoyi.system.domain.Agreement; +import com.ruoyi.system.domain.User; +import com.ruoyi.system.mapper.AgreementMapper; +import com.ruoyi.system.mapper.AppUserMapper; +import com.ruoyi.system.pojo.dto.AddAgreementDTO; +import com.ruoyi.system.pojo.dto.AppUserPageDTO; +import com.ruoyi.system.pojo.vo.AppUserPageVO; +import com.ruoyi.system.pojo.vo.SysDeptPageVO; +import com.ruoyi.system.service.AgreementService; +import com.ruoyi.system.service.AppUserService; +import org.springframework.beans.BeanUtils; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; + +@Service +public class AppUserServiceImpl extends ServiceImpl<AppUserMapper, User> implements AppUserService { + + + @Override + public IPage<AppUserPageVO> getAppUserPage(AppUserPageDTO dto) { + IPage<SysDeptPageVO> iPage = new Page<>(dto.getPageNum(), dto.getPageSize()); + return this.baseMapper.getAppUserPage(iPage,dto); + } +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java index 54b605d..c0730dc 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java @@ -1,9 +1,13 @@ package com.ruoyi.system.service.impl; import java.util.ArrayList; +import java.util.Collections; import java.util.Iterator; import java.util.List; import java.util.stream.Collectors; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.ruoyi.system.pojo.vo.SysDeptPageVO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.ruoyi.common.annotation.DataScope; @@ -293,6 +297,8 @@ return deptMapper.deleteDeptById(deptId); } + + /** * 递归列表 */ @@ -335,4 +341,31 @@ { return getChildList(list, t).size() > 0; } + + + @Override + public IPage<SysDeptPageVO> page(IPage<SysDeptPageVO> iPage, String name) { + return deptMapper.page(iPage,name); + } + + @Override + public void add(String name) { + SysDept sysDept=deptMapper.selectDeptByName(name); + if (sysDept != null){ + throw new ServiceException("该部门已存在"); + } + sysDept=new SysDept(); + sysDept.setDeptName(name); + deptMapper.insertDept(sysDept); + } + + @Override + public void updateDeptName(SysDept sysDept) { + deptMapper.updateDeptName(sysDept); + } + + @Override + public List<SysDeptPageVO> getDeptList() { + return deptMapper.getDeptList(); + } } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java index b11c281..caf0287 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java @@ -1,13 +1,10 @@ package com.ruoyi.system.service.impl; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.HashSet; -import java.util.Iterator; -import java.util.LinkedList; -import java.util.List; -import java.util.Set; +import java.util.*; import java.util.stream.Collectors; + +import com.ruoyi.system.pojo.vo.MenuTreeVO; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.ruoyi.common.constant.Constants; @@ -540,4 +537,66 @@ return StringUtils.replaceEach(path, new String[] { Constants.HTTP, Constants.HTTPS, Constants.WWW, ".", ":" }, new String[] { "", "", "", "/", "/" }); } + + @Override + public List<MenuTreeVO> tree(Long userId) { + // 构建菜单树 + return buildMenuTree(userId); + } + + /** + * 构建菜单树(递归实现) + * @return 菜单树列表 + */ + public List<MenuTreeVO> buildMenuTree(Long userId) { + // 1. 根据用户ID查询角色ID集合 + List<Long> roleList = roleMapper.selectRoleListByUserId(userId); + // 2. 查询角色关联的菜单ID + List<Long> menuIds = roleMenuMapper.selectMenuIdsByRoleIds(roleList); + // 获取所有菜单 + List<MenuTreeVO> rootMenus = menuMapper.getAllRootMenu(); + // 递归构建子菜单 + List<MenuTreeVO> list = rootMenus.stream() + .map(x -> convertToMenuTreeVO(x,menuIds)) + .collect(Collectors.toList()); + return list.stream().filter(this::shouldIncludeMenu).collect(Collectors.toList()); + + } + + /** + * 递归转换菜单并构建子菜单树 + */ + private MenuTreeVO convertToMenuTreeVO(MenuTreeVO menu,List<Long> menuIds) { + MenuTreeVO vo = new MenuTreeVO(); + BeanUtils.copyProperties(menu, vo, "children"); // 复制基本属性,忽略children字段 + + // 获取当前菜单的子菜单 + List<MenuTreeVO> childMenus = menuMapper.selectMenusByParentId(menu.getMenuId()); + + // 递归处理子菜单 + if (!childMenus.isEmpty()) { + childMenus = childMenus.stream() + .filter(x -> !("C".equals(x.getMenuType()) && !menuIds.contains(x.getMenuId()))) + .collect(Collectors.toList()); + + List<MenuTreeVO> filteredChildren = childMenus.stream() + .map(x -> convertToMenuTreeVO(x,menuIds)) + .filter(this::shouldIncludeMenu) // 过滤子菜单 + .collect(Collectors.toList()); + + vo.setChildren(filteredChildren); + } + + return vo; + } + + /** + * 判断菜单是否应该被包含在结果中 + * - 如果是M类型且没有子菜单,则不包含 + * - 否则包含 + */ + private boolean shouldIncludeMenu(MenuTreeVO menu) { + // 如果菜单类型是M(目录)且没有子菜单,则过滤掉 + return !("M".equals(menu.getMenuType()) && (menu.getChildren() == null || menu.getChildren().isEmpty())); + } } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java index e432bb1..7ad7bd7 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java @@ -1,11 +1,16 @@ package com.ruoyi.system.service.impl; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.HashSet; -import java.util.List; -import java.util.Set; +import java.util.*; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.ruoyi.common.core.domain.model.LoginUser; +import com.ruoyi.common.utils.DateUtils; +import com.ruoyi.system.pojo.dto.AddSysRoleDTO; +import com.ruoyi.system.pojo.dto.EditSysRoleDTO; +import com.ruoyi.system.pojo.vo.SysRolePageVO; +import com.ruoyi.system.pojo.vo.SysRoleVO; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import com.ruoyi.common.annotation.DataScope; @@ -347,7 +352,7 @@ // 删除角色与菜单关联 roleMenuMapper.deleteRoleMenuByRoleId(roleId); // 删除角色与部门关联 - roleDeptMapper.deleteRoleDeptByRoleId(roleId); +// roleDeptMapper.deleteRoleDeptByRoleId(roleId); return roleMapper.deleteRoleById(roleId); } @@ -424,4 +429,70 @@ } return userRoleMapper.batchUserRole(list); } + + @Override + public IPage<SysRolePageVO> page(IPage<SysRolePageVO> page, String name) { + return roleMapper.page(page,name); + } + + @Override + public void add(AddSysRoleDTO dto) { + //判断角色名称是否存在 + SysRole sysRole = new SysRole(); + sysRole.setRoleName(dto.getRoleName()); + List<SysRole> sysRoles = roleMapper.selectRoleList(sysRole); + if (sysRoles!=null && !sysRoles.isEmpty()){ + throw new ServiceException("该角色名称重复"); + } + //添加角色 + sysRole.setStatus("0"); + LoginUser loginUser = (LoginUser) SecurityContextHolder.getContext().getAuthentication().getPrincipal(); + sysRole.setCreateBy(loginUser.getUsername()); + sysRole.setCreateTime(DateUtils.getNowDate()); + roleMapper.insertRole(sysRole); + //添加角色菜单 + roleMenuMapper.insert(sysRole.getRoleId(),dto.getMenuIds()); + } + + @Override + public SysRoleVO getById(Long roleId) { + SysRoleVO sysRoleVO = new SysRoleVO(); + SysRole sysRole = roleMapper.selectRoleById(roleId); + if (sysRole==null||sysRole.getDelFlag().equals("1")){ + throw new ServiceException("该角色不存在"); + } + sysRoleVO.setRoleName(sysRole.getRoleName()); + sysRoleVO.setRoleId(roleId); + ArrayList<Long> roleIds = new ArrayList<>(); + roleIds.add(roleId); + List<Long> menuIds = roleMenuMapper.selectMenuIdsByRoleIds(roleIds); + sysRoleVO.setMenuIdList(menuIds); + return sysRoleVO; + } + + @Override + public void edit(EditSysRoleDTO dto) { + //判断角色id是否存在 + SysRole sysRole1 = roleMapper.selectRoleById(dto.getRoleId()); + if (sysRole1==null||sysRole1.getDelFlag().equals("1")){ + throw new ServiceException("该角色不存在"); + } + //判断角色名称是否存在 + SysRole sysRole = new SysRole(); + sysRole.setRoleName(dto.getRoleName()); + List<SysRole> sysRoles = roleMapper.selectRoleList(sysRole); + if (sysRoles!=null && !sysRoles.isEmpty()){ + throw new ServiceException("该角色名称重复"); + } + //删除之前的 + roleMenuMapper.deleteRoleMenuByRoleId(dto.getRoleId()); + //添加角色菜单 + roleMenuMapper.insert(sysRole.getRoleId(),dto.getMenuIds()); + } + + @Override + public List<SysRoleVO> getOptionSelect() { + return roleMapper.getOptionSelect(); + + } } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java index 0aa82fb..ed505eb 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java @@ -2,8 +2,18 @@ import java.util.ArrayList; import java.util.List; +import java.util.Objects; import java.util.stream.Collectors; import javax.validation.Validator; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.ruoyi.common.core.domain.R; +import com.ruoyi.common.core.domain.entity.SysDept; +import com.ruoyi.common.utils.sign.Md5Utils; +import com.ruoyi.system.pojo.dto.AddSysUserDTO; +import com.ruoyi.system.pojo.dto.EditSysUserDTO; +import com.ruoyi.system.pojo.vo.SysUserPageListVO; +import com.ruoyi.system.pojo.vo.SysUserVO; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -448,7 +458,7 @@ // 删除用户与角色关联 userRoleMapper.deleteUserRoleByUserId(userId); // 删除用户与岗位表 - userPostMapper.deleteUserPostByUserId(userId); +// userPostMapper.deleteUserPostByUserId(userId); return userMapper.deleteUserById(userId); } @@ -547,4 +557,112 @@ } return successMsg.toString(); } + + @Override + public IPage<SysUserPageListVO> getSysUserPageList(IPage<SysUserPageListVO> page, String nickName, Integer phone, String status) { + return userMapper.getSysUserPageList(page,nickName,phone,status); + } + + @Override + public R<SysUserVO> getInfo(Long userId) { + return userMapper.getSysUserVO(userId); + } + + @Override + public void add(AddSysUserDTO dto) { + //检查手机号是否重复 + SysUser sysUser= userMapper.selectuserByPhone(dto.getPhonenumber()); + if (sysUser != null){ + throw new ServiceException("手机号重复"); + } + //部门是否存在 + SysDept sysDept = deptService.selectDeptById(dto.getDeptId()); + if (sysDept == null){ + throw new ServiceException("部门不存在"); + } + //角色是否存在 + SysRole sysRole = roleMapper.selectRoleById(dto.getRoleId()); + if (sysRole == null){ + throw new ServiceException("角色不存在"); + } + //手机号作为登录 + sysUser = new SysUser(); + sysUser.setUserName(dto.getPhonenumber()); + sysUser.setPhonenumber(dto.getPhonenumber()); + sysUser.setNickName(dto.getNickName()); + //后六位为默认密码 + sysUser.setPassword(SecurityUtils.encryptPassword(Md5Utils.hash(dto.getPhonenumber().substring(6,12)))); + sysUser.setStatus("0"); + sysUser.setDeptId(dto.getDeptId()); //添加用户-部门关系 + userMapper.insertUser(sysUser); + //添加用户-角色关系 + userRoleMapper.insert(sysUser.getUserId(),dto.getRoleId()); + } + + @Override + public void edit(EditSysUserDTO dto) { + //检查用户是否存在 + SysUser sysUser = userMapper.selectUserById(dto.getUserId()); + if (sysUser==null){ + throw new ServiceException("该用户不存在"); + } + + if (!Objects.equals(dto.getPhonenumber(), sysUser.getPhonenumber())){ + //修改手机号 + //检查手机号是否重复 + SysUser phoneUser= userMapper.selectuserByPhone(dto.getPhonenumber()); + if (phoneUser != null){ + throw new ServiceException("手机号重复"); + } + sysUser.setPhonenumber(dto.getPhonenumber()); + sysUser.setUserName(dto.getPhonenumber()); + } + + if (!Objects.equals(dto.getDeptId(), sysUser.getDeptId())){ + //部门是否存在 + SysDept sysDept = deptService.selectDeptById(dto.getDeptId()); + if (sysDept == null){ + throw new ServiceException("部门不存在"); + } + sysUser.setDeptId(dto.getDeptId()); + } + + SysRole sysRole= userRoleMapper.selectRoleByUserId(dto.getUserId()); + if (!Objects.equals(sysRole.getRoleId(), dto.getRoleId())){ + //角色是否存在 + SysRole selectRole = roleMapper.selectRoleById(dto.getRoleId()); + if (selectRole == null){ + throw new ServiceException("角色不存在"); + } + sysUser.setRoleId(dto.getRoleId()); + //修改用户-角色关系 + userRoleMapper.deleteUserRoleByUserId(dto.getUserId()); + userRoleMapper.insert(sysUser.getUserId(),dto.getRoleId()); + } + sysUser.setNickName(dto.getNickName()); + userMapper.updateUser(sysUser); + } + + @Override + public void changeStatus(Long userId) { + //检查用户是否存在 + SysUser sysUser = userMapper.selectUserById(userId); + if (sysUser==null){ + throw new ServiceException("该用户不存在"); + } + sysUser.setStatus(Objects.equals(sysUser.getStatus(), "1") ?"0":"1"); + userMapper.updateUser(sysUser); + } + + @Override + public void resetPassword(Long userId) { + //重置密码 + //检查用户是否存在 + SysUser sysUser = userMapper.selectUserById(userId); + if (sysUser==null){ + throw new ServiceException("该用户不存在"); + } + sysUser.setPassword(SecurityUtils.encryptPassword(Md5Utils.hash(sysUser.getPassword().substring(6,12)))); + userMapper.updateUser(sysUser); + } } diff --git a/ruoyi-system/src/main/resources/mapper/system/AppUserMapper.xml b/ruoyi-system/src/main/resources/mapper/system/AppUserMapper.xml new file mode 100644 index 0000000..be3036d --- /dev/null +++ b/ruoyi-system/src/main/resources/mapper/system/AppUserMapper.xml @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.ruoyi.system.mapper.AppUserMapper"> + + + <select id="getAppUserPage" resultType="com.ruoyi.system.pojo.vo.AppUserPageVO"> + select + tbu.id, + tbu.user_name, + tbu.phone, + tbu.create_time, + tbu.balance, + tbu.status, + ifnull(bingding.num , 0) as bingDingUser, + ifnull(buy.num , 0) as buyNum, + ifnull(sell.num , 0) as sellNum + from tb_user tbu + LEFT JOIN tb_user u2 ON u1.id = u2.invite_id + left join (select user_id, count(1) as num from tb_order where status = 6 group by user_id) buy on tbu.id=buy.user_id + </select> +</mapper> \ No newline at end of file diff --git a/ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml index cf439f6..7eb5d87 100644 --- a/ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml @@ -62,7 +62,7 @@ select d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.phone, d.email, d.status, (select dept_name from sys_dept where dept_id = d.parent_id) parent_name from sys_dept d - where d.dept_id = #{deptId} + where d.dept_id = #{deptId} and del_flag = '0' </select> <select id="checkDeptExistUser" parameterType="Long" resultType="int"> @@ -86,7 +86,28 @@ <include refid="selectDeptVo"/> where dept_name=#{deptName} and parent_id = #{parentId} and del_flag = '0' limit 1 </select> - + <select id="page" resultType="com.ruoyi.system.pojo.vo.SysDeptPageVO"> + select + dept_id,dept_name + from sys_dept + where + del_flag='0' + <if test="name!=null and name!='' "> + and `dept_name` like concat('%',#{name},'%') + </if> + </select> + <select id="selectDeptByName" resultType="com.ruoyi.common.core.domain.entity.SysDept"> + select dept_id from sys_dept where del_flag='0' and dept_name like #{name} + </select> + <select id="getDeptList" resultType="com.ruoyi.system.pojo.vo.SysDeptPageVO"> + select + dept_id,dept_name + from sys_dept + where + del_flag='0' + + </select> + <insert id="insertDept" parameterType="SysDept"> insert into sys_dept( <if test="deptId != null and deptId != 0">dept_id,</if> @@ -151,7 +172,8 @@ #{deptId} </foreach> </update> - + <update id="updateDeptName">update sys_dept set dept_name = #{sysDept.deptName} where dept_id = #{sysDept.deptId}</update> + <delete id="deleteDeptById" parameterType="Long"> update sys_dept set del_flag = '2' where dept_id = #{deptId} </delete> diff --git a/ruoyi-system/src/main/resources/mapper/system/SysMenuMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysMenuMapper.xml index 84e87c9..0b2a2d1 100644 --- a/ruoyi-system/src/main/resources/mapper/system/SysMenuMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/SysMenuMapper.xml @@ -132,7 +132,17 @@ <include refid="selectMenuVo"/> where menu_name=#{menuName} and parent_id = #{parentId} limit 1 </select> - + <select id="selectMenusByParentId" resultType="com.ruoyi.system.pojo.vo.MenuTreeVO"> + select menu_id,menu_name,path,menu_type from sys_menu + where parent_id = #{menuId} order by order_num asc + </select> + <select id="getAllRootMenu" resultType="com.ruoyi.system.pojo.vo.MenuTreeVO"> + select distinct sm.menu_id,sm.menu_name,sm.path,sm.menu_type + from sys_menu sm + where + sm.parent_id = 0 order by sm.order_num asc + </select> + <update id="updateMenu" parameterType="SysMenu"> update sys_menu <set> diff --git a/ruoyi-system/src/main/resources/mapper/system/SysRoleMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysRoleMapper.xml index 955d4ee..c63b11a 100644 --- a/ruoyi-system/src/main/resources/mapper/system/SysRoleMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/SysRoleMapper.xml @@ -92,8 +92,18 @@ <include refid="selectRoleVo"/> where r.role_key=#{roleKey} and r.del_flag = '0' limit 1 </select> - - <insert id="insertRole" parameterType="SysRole" useGeneratedKeys="true" keyProperty="roleId"> + <select id="page" resultType="com.ruoyi.system.pojo.vo.SysRolePageVO"> + select role_id, role_name from sys_role where del_flag=0 + <if test="name!=null and name!='' "> + and `role_name` like concat('%',#{name},'%') + </if> + order by role_sort asc + </select> + <select id="getOptionSelect" resultType="com.ruoyi.system.pojo.vo.SysRoleVO"> + select role_id,role_name from sys_role where del_flag=0 + </select> + + <insert id="insertRole" parameterType="SysRole" useGeneratedKeys="true" keyProperty="roleId"> insert into sys_role( <if test="roleId != null and roleId != 0">role_id,</if> <if test="roleName != null and roleName != ''">role_name,</if> diff --git a/ruoyi-system/src/main/resources/mapper/system/SysRoleMenuMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysRoleMenuMapper.xml index cb60a85..3dc43fc 100644 --- a/ruoyi-system/src/main/resources/mapper/system/SysRoleMenuMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/SysRoleMenuMapper.xml @@ -12,8 +12,14 @@ <select id="checkMenuExistRole" resultType="Integer"> select count(1) from sys_role_menu where menu_id = #{menuId} </select> + <select id="selectMenuIdsByRoleIds" resultType="java.lang.Long"> + select menu_id from sys_role_menu where role_id in + <foreach collection="roleList" item="roleId" open="(" separator="," close=")"> + #{roleId} + </foreach> + </select> - <delete id="deleteRoleMenuByRoleId" parameterType="Long"> + <delete id="deleteRoleMenuByRoleId" parameterType="Long"> delete from sys_role_menu where role_id=#{roleId} </delete> @@ -30,5 +36,12 @@ (#{item.roleId},#{item.menuId}) </foreach> </insert> - + <insert id="insert"> + INSERT INTO sys_role_menu (role_id, menu_id) + VALUES + <foreach collection="menuIds" item="menuId" separator=","> + (#{roleId}, #{menuId}) + </foreach> + </insert> + </mapper> \ No newline at end of file diff --git a/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml index fea14de..8d1b8a7 100644 --- a/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml @@ -48,7 +48,7 @@ </resultMap> <sql id="selectUserVo"> - select u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.avatar, u.phonenumber, u.password, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.pwd_update_date, u.create_by, u.create_time, u.remark, + select u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.avatar, u.phonenumber, u.password, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.pwd_update_date, u.create_by, u.create_time, u.remark, d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.status as dept_status, r.role_id, r.role_name, r.role_key, r.role_sort, r.data_scope, r.status as role_status from sys_user u @@ -142,7 +142,55 @@ <select id="checkEmailUnique" parameterType="String" resultMap="SysUserResult"> select user_id, email from sys_user where email = #{email} and del_flag = '0' limit 1 </select> - + <select id="getSysUserPageList" resultType="com.ruoyi.system.pojo.vo.SysUserPageListVO"> + select + su.user_id, + su.nick_name, + su.phonenumber, + sd.dept_id, + sd.dept_name, + sr.role_id, + sr.role_name, + su.status + from sys_user su + + left join sys_dept sd on su.dept_id = sd.dept_id + left join sys_user_role sur on su.user_id = sur.user_id + left join sys_role sr on sur.role_id =sr.role_id + where + su.del_flag='0' + <if test="nickName!=null and nickName!= '' "> + and su.nick_name like concat('%',#{nickName},'%') + </if> + <if test="phone!=null and phone!= '' "> + and su.phonenumber like concat('%',#{phone},'%') + </if> + <if test="status!=null and status!= '' "> + and su.status =#{status} + </if> + </select> + <select id="getSysUserVO" resultType="com.ruoyi.system.pojo.vo.SysUserVO"> + select + su.user_id, + su.nick_name, + su.phonenumber, + sd.dept_id, + sd.dept_name, + sr.role_id, + sr.role_name, + su.status + from sys_user su + left join sys_dept sd on su.dept_id = sd.dept_id + left join sys_user_role sur on su.user_id = sur.user_id + left join sys_role sr on sur.role_id =sr.role_id + where + su.del_flag='0' + and su.user_id=#{userId} + </select> + <select id="selectuserByPhone" resultType="com.ruoyi.common.core.domain.entity.SysUser"> + select * from sys_user where del_flag='0' and phonenumber =#{phonenumber} + </select> + <insert id="insertUser" parameterType="SysUser" useGeneratedKeys="true" keyProperty="userId"> insert into sys_user( <if test="userId != null and userId != 0">user_id,</if> diff --git a/ruoyi-system/src/main/resources/mapper/system/SysUserRoleMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysUserRoleMapper.xml index dd72689..8fadc85 100644 --- a/ruoyi-system/src/main/resources/mapper/system/SysUserRoleMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/SysUserRoleMapper.xml @@ -16,7 +16,10 @@ <select id="countUserRoleByRoleId" resultType="Integer"> select count(1) from sys_user_role where role_id=#{roleId} </select> - + <select id="selectRoleByUserId" resultType="com.ruoyi.common.core.domain.entity.SysRole"> + select * from sys_user_role where user_id=#{userId} + </select> + <delete id="deleteUserRole" parameterType="Long"> delete from sys_user_role where user_id in <foreach collection="array" item="userId" open="(" separator="," close=")"> @@ -30,8 +33,12 @@ (#{item.userId},#{item.roleId}) </foreach> </insert> - - <delete id="deleteUserRoleInfo" parameterType="SysUserRole"> + <insert id="insert"> + insert into sys_user_role(user_id, role_id) value + (#{userId},#{roleId}) + </insert> + + <delete id="deleteUserRoleInfo" parameterType="SysUserRole"> delete from sys_user_role where user_id=#{userId} and role_id=#{roleId} </delete> -- Gitblit v1.7.1