From 392b42c4891cf2e6beda57ab32c51598f290f4b7 Mon Sep 17 00:00:00 2001 From: mitao <2763622819@qq.com> Date: 星期五, 14 三月 2025 20:56:27 +0800 Subject: [PATCH] bug修改 --- ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java | 145 ++++++++++++++++++++++++++++++++++++------------ 1 files changed, 108 insertions(+), 37 deletions(-) diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java index 2fa729a..0ff62de 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java @@ -2,8 +2,12 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.ruoyi.common.core.constant.CacheConstants; +import com.ruoyi.common.core.constant.SecurityConstants; import com.ruoyi.common.core.domain.R; +import com.ruoyi.common.core.exception.ServiceException; import com.ruoyi.common.core.utils.StringUtils; +import com.ruoyi.common.core.utils.page.BeanUtils; import com.ruoyi.common.core.utils.page.PageDTO; import com.ruoyi.common.core.utils.poi.ExcelUtil; import com.ruoyi.common.core.web.controller.BaseController; @@ -11,16 +15,23 @@ import com.ruoyi.common.core.web.page.PageInfo; import com.ruoyi.common.log.annotation.Log; import com.ruoyi.common.log.enums.BusinessType; +import com.ruoyi.common.redis.service.RedisService; import com.ruoyi.common.security.annotation.InnerAuth; import com.ruoyi.common.security.annotation.RequiresPermissions; import com.ruoyi.common.security.utils.SecurityUtils; import com.ruoyi.system.api.domain.SysDept; import com.ruoyi.system.api.domain.SysRole; import com.ruoyi.system.api.domain.SysUser; +import com.ruoyi.system.api.feignClient.AuthClient; import com.ruoyi.system.api.model.LoginUser; +import com.ruoyi.system.api.validate.InsertGroup; +import com.ruoyi.system.api.validate.UpdateGroup; import com.ruoyi.system.domain.SysUserRole; +import com.ruoyi.system.domain.dto.ResetPwdDTO; import com.ruoyi.system.domain.dto.SupplierDTO; import com.ruoyi.system.domain.dto.SupplierQuery; +import com.ruoyi.system.domain.dto.SysUserDTO; +import com.ruoyi.system.domain.dto.SysUserQuery; import com.ruoyi.system.domain.vo.SupplierVO; import com.ruoyi.system.service.ISysConfigService; import com.ruoyi.system.service.ISysDeptService; @@ -31,6 +42,7 @@ import com.ruoyi.system.service.ISysUserService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; import java.io.IOException; import java.util.Date; import java.util.List; @@ -40,6 +52,7 @@ import javax.servlet.http.HttpServletResponse; import org.apache.commons.lang3.ArrayUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; @@ -85,24 +98,33 @@ @Autowired private ISysUserRoleService sysUserRoleService; + @Autowired + private AuthClient authClient; + @Autowired + private RedisService redisService; /** * 获取用户列表 */ - @GetMapping("/list") - @ApiOperation("管理员列表") - public AjaxResult list(String phonenumber, int pageNumber, int pageSize) { - PageInfo<SysUser> pageInfo = new PageInfo<>(pageNumber, pageSize); - PageInfo<SysUser> page = userService.getList(pageInfo, phonenumber); + @PostMapping("/list") + @ApiOperation("账号管理列表") + public AjaxResult list(@Validated @RequestBody SysUserQuery query) { + PageInfo<SysUser> pageInfo = new PageInfo<>(query.getPageCurr(), query.getPageSize()); + PageInfo<SysUser> page = userService.getList(pageInfo, query.getNickName(), + query.getPhonenumber(), query.getStatus()); return AjaxResult.success(page); } /** * 新增用户 */ - @Log(title = "用户管理", businessType = BusinessType.INSERT) + @Log(title = "账号管理", businessType = BusinessType.INSERT) @PostMapping("/add") - @ApiOperation("添加管理员") - public AjaxResult add(@Validated @RequestBody SysUser user) { + @ApiOperation("添加账号") + @Transactional(rollbackFor = Exception.class) + public AjaxResult add(@Validated(InsertGroup.class) @RequestBody SysUserDTO dto) { + SysUser user = BeanUtils.copyBean(dto, SysUser.class); + user.setUserId(null); + user.setUserType(dto.getIsAuctioneer() == 1 ? "00" : "01"); user.setUserName(user.getPhonenumber()); if(!org.springframework.util.StringUtils.hasLength(user.getNickName())){ user.setNickName(user.getPhonenumber()); @@ -111,23 +133,24 @@ return error("手机号已开通账号"); } user.setCreateBy(SecurityUtils.getUsername()); - user.setPassword(SecurityUtils.encryptPassword(user.getPassword())); + user.setPassword(SecurityUtils.encryptPassword("123456")); user.setRoleType(1); int i = userService.insertUser(user); SysUserRole sysUserRole = new SysUserRole(); - sysUserRole.setRoleId(1l); + sysUserRole.setRoleId(dto.getRoleId()); sysUserRole.setUserId(user.getUserId()); int i1 = userRoleService.insertSysUserRole(sysUserRole); - return AjaxResult.success(i1); + return AjaxResult.success(); } /** * 根据用户编号获取详细信息 */ - @ApiOperation("管理员详情") - @GetMapping(value = {"/", "/{userId}"}) - public AjaxResult getInfo(@PathVariable(value = "userId", required = false) Long userId) { + @ApiOperation("账号详情") + @GetMapping("/{userId}") + public AjaxResult getInfo( + @ApiParam(value = "用户ID", required = true) @PathVariable(value = "userId", required = true) Long userId) { userService.checkUserDataScope(userId); AjaxResult ajax = AjaxResult.success(); List<SysRole> roles = roleService.selectRoleAll(); @@ -146,11 +169,11 @@ /** * 修改用户 */ - @Log(title = "用户管理", businessType = BusinessType.UPDATE) + @Log(title = "账号管理", businessType = BusinessType.UPDATE) @PutMapping("/update") - @ApiOperation("编辑管理员") - public AjaxResult edit(@Validated @RequestBody SysUser user) { - + @ApiOperation("编辑账号") + public AjaxResult edit(@Validated(UpdateGroup.class) @RequestBody SysUserDTO dto) { + SysUser user = BeanUtils.copyBean(dto, SysUser.class); user.setUserName(user.getPhonenumber()); if(!org.springframework.util.StringUtils.hasLength(user.getNickName())){ user.setNickName(user.getPhonenumber()); @@ -159,13 +182,14 @@ Integer data = admin.getData(); if(data == null || data != 1){ SysUserRole one = sysUserRoleService.getOne(new LambdaQueryWrapper<SysUserRole>().eq(SysUserRole::getUserId, user.getUserId())); - one.setRoleId(user.getRoleId()); + one.setRoleId(dto.getRoleId()); sysUserRoleService.updateSysUserRole(one); } userService.checkUserAllowed(user); userService.checkUserDataScope(user.getUserId()); SysUser sysUser = userService.getOne(Wrappers.lambdaQuery(SysUser.class) .eq(SysUser::getPhonenumber, user.getPhonenumber()) + .in(SysUser::getUserType, "00", "01", "04") .eq(SysUser::getDelFlag,0) .last("LIMIT 1")); @@ -180,6 +204,7 @@ if (user.getPhonenumber() != null) { user.setUserName(user.getPhonenumber()); } + user.setUserType(dto.getIsAuctioneer() == 1 ? "00" : "01"); user.setPassword(null); user.setUpdateBy(SecurityUtils.getUsername()); user.setUpdateTime(new Date()); @@ -190,9 +215,9 @@ /** * 删除用户 */ - @Log(title = "用户管理", businessType = BusinessType.DELETE) + @Log(title = "账号管理", businessType = BusinessType.DELETE) @DeleteMapping("/{userIds}") - @ApiOperation("删除管理员") + @ApiOperation("删除账号") public AjaxResult remove(@PathVariable Long[] userIds) { if (ArrayUtils.contains(userIds, SecurityUtils.getUserId())) { return error("当前用户不能删除"); @@ -200,21 +225,29 @@ return toAjax(userService.deleteUserByIds(userIds)); } - @PostMapping("/shopUserStart") - @ApiOperation("账号管理--停用/启用") - public AjaxResult shopUserStart(Long userId) { + @PostMapping("/updStatus/{userId}") + @ApiOperation("账号管理--冻结/解冻") + public AjaxResult updStatus( + @ApiParam(value = "账号ID", required = true) @PathVariable("userId") Long userId) { if (userId == null) { return AjaxResult.error("userId不能为空"); } SysUser sysUser = userService.selectUserById(userId); if (sysUser.getStatus().equals("0")) { sysUser.setStatus("1"); + Object tokenObj = redisService.getCacheObject(getUserTokenKey(userId)); + if (Objects.nonNull(tokenObj)) { + authClient.logout(tokenObj.toString(), SecurityConstants.INNER); + } } else { sysUser.setStatus("0"); } return toAjax(userService.updateUser(sysUser)); } + private String getUserTokenKey(Long userId) { + return CacheConstants.USER_TOKEN_KEY + userId; + } @Autowired private ISysUserRoleService iSysUserRoleService; @@ -293,15 +326,16 @@ if (StringUtils.isNull(sysUser)) { return R.fail("用户名或密码错误"); } - // 角色集合 - Set<String> roles = permissionService.getRolePermission(sysUser); - // 权限集合 - Set<String> permissions = permissionService.getMenuPermission(sysUser); LoginUser sysUserVo = new LoginUser(); sysUserVo.setSysUser(sysUser); - sysUserVo.setRoles(roles); - sysUserVo.setPermissions(permissions); - + if (sysUser.getUserType().equals("00")) { + // 角色集合 + Set<String> roles = permissionService.getRolePermission(sysUser); + // 权限集合 + Set<String> permissions = permissionService.getMenuPermission(sysUser); + sysUserVo.setRoles(roles); + sysUserVo.setPermissions(permissions); + } return R.ok(sysUserVo); } @@ -351,13 +385,19 @@ /** * 重置密码 */ - @RequiresPermissions("system:user:edit") + @ApiOperation("重置密码") @Log(title = "用户管理", businessType = BusinessType.UPDATE) - @PutMapping("/resetPwd") - public AjaxResult resetPwd(@RequestBody SysUser user) { + @PostMapping("/resetPwd") + public AjaxResult resetPwd(@RequestBody ResetPwdDTO dto) { + SysUser user = userService.lambdaQuery().eq(SysUser::getUserId, dto.getUserId()) + .in(SysUser::getUserType, "00", "01").one(); + if (StringUtils.isNull(user)) { + throw new ServiceException("账号不存在"); + } + userService.checkUserAllowed(user); userService.checkUserDataScope(user.getUserId()); - user.setPassword(SecurityUtils.encryptPassword(user.getPassword())); + user.setPassword(SecurityUtils.encryptPassword(dto.getPassword())); user.setUpdateBy(SecurityUtils.getUsername()); return toAjax(userService.resetPwd(user)); } @@ -470,7 +510,15 @@ public R<List<SysUser>> queryUserByPhoneList(@RequestBody List<String> phoneList){ List<SysUser> list = userService.list(Wrappers.lambdaQuery(SysUser.class) .in(SysUser::getPhonenumber, phoneList) - .ne(SysUser::getDelFlag,2)); + .eq(SysUser::getUserType,"01") + .eq(SysUser::getDelFlag,0)); + return R.ok(list); + } + + @PostMapping("/queryUserByPhoneList1") + public R<List<SysUser>> queryUserByPhoneList1(@RequestBody List<String> phoneList){ + List<SysUser> list = userService.list(Wrappers.lambdaQuery(SysUser.class) + .in(SysUser::getPhonenumber, phoneList)); return R.ok(list); } @@ -483,9 +531,31 @@ public R<SysUser> queryUserByPhone(@RequestBody String phone){ SysUser user = userService.getOne(Wrappers.lambdaQuery(SysUser.class) .eq(SysUser::getPhonenumber, phone) + .eq(SysUser::getUserType,"01") + .eq(SysUser::getStatus,0) + .eq(SysUser::getDelFlag,0) + .last("LIMIT 1")); + return R.ok(user); + + } + + @PostMapping("/queryUserByPhone1") + public R<SysUser> queryUserByPhone1(@RequestBody String phone) { + SysUser user = userService.getOne(Wrappers.lambdaQuery(SysUser.class) + .eq(SysUser::getPhonenumber, phone) + .eq(SysUser::getDelFlag, 0) + .eq(SysUser::getUserType,"01") .last("LIMIT 1")); return R.ok(user); } +// @PostMapping("/queryUserByPhone1") +// public R<SysUser> queryUserByPhone1(@RequestBody String phone){ +// SysUser user = userService.getOne(Wrappers.lambdaQuery(SysUser.class) +// .eq(SysUser::getPhonenumber, phone) +// .eq(SysUser::get, phone) +// .last("LIMIT 1")); +// return R.ok(user); +// } /** @@ -497,6 +567,7 @@ public R<SysUser> queryUserByUserName(@RequestBody String userName){ SysUser user = userService.getOne(Wrappers.lambdaQuery(SysUser.class) .eq(SysUser::getUserName, userName) + .eq(SysUser::getDelFlag, "0") .last("LIMIT 1")); return R.ok(user); } @@ -539,7 +610,7 @@ } @InnerAuth - @GetMapping("/list-by-name") + @PostMapping("/list-by-name") R<List<SysUser>> getUserListByName(@RequestBody SysUser sysUser) { List<SysUser> list = userService.lambdaQuery() .like(StringUtils.isNotBlank(sysUser.getNickName()), SysUser::getNickName, -- Gitblit v1.7.1